├── .editorconfig ├── .gitattributes ├── .github ├── empty.json └── workflows │ ├── build-test-webeditor.yml │ ├── check.yml │ ├── deploy-webeditor.yml │ ├── deploy.yml │ ├── markdownlint.yml │ ├── release-code-checker.yml │ ├── release-code-merger.yml │ ├── release-repo-cleaner.yml │ ├── release.yml │ └── update-star-distribution.yml ├── .gitignore ├── .gitmodules ├── .markdownlint.yaml ├── LICENSE ├── Pitfalls.md ├── README.md ├── build.gradle.kts ├── buildSrc ├── build.gradle.kts ├── settings.gradle.kts └── src │ └── main │ ├── java │ └── com │ │ └── bytelegend │ │ └── buildsrc │ │ └── json2java │ │ ├── Json2JavaConversion.java │ │ ├── Json2JavaPlugin.java │ │ └── Json2JavaTask.java │ └── kotlin │ ├── com │ └── bytelegend │ │ └── buildsupport │ │ ├── BuildGameResourcesPlugin.kt │ │ ├── DeploymentPlugin.kt │ │ ├── MapHierarchyReader.kt │ │ ├── OpenSourceLibrary.kt │ │ ├── SetupBuildVersionPlugin.kt │ │ ├── ShadowReleasePlugin.kt │ │ ├── UpdateVersionsJsonTask.kt │ │ └── Utils.kt │ ├── configure-kotlin-js.gradle.kts │ ├── configure-kotlin.gradle.kts │ ├── configure-ktlint.gradle.kts │ ├── dependencies.gradle.kts │ └── generate-karma-config.gradle.kts ├── client ├── client.gradle.kts ├── common │ ├── common.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── com │ │ │ └── bytelegend │ │ │ └── app │ │ │ └── client │ │ │ ├── misc │ │ │ ├── AStar.kt │ │ │ ├── GitHubRegex.kt │ │ │ └── Utils.kt │ │ │ └── ui │ │ │ └── bootstrap │ │ │ ├── BootstrapAccordion.kt │ │ │ ├── BootstrapAccordionComponents.kt │ │ │ ├── BootstrapAlert.kt │ │ │ ├── BootstrapAlertLink.kt │ │ │ ├── BootstrapBadge.kt │ │ │ ├── BootstrapButton.kt │ │ │ ├── BootstrapButtonGroup.kt │ │ │ ├── BootstrapButtonProps.kt │ │ │ ├── BootstrapButtonToolbar.kt │ │ │ ├── BootstrapCard.kt │ │ │ ├── BootstrapCardComponents.kt │ │ │ ├── BootstrapCol.kt │ │ │ ├── BootstrapContainer.kt │ │ │ ├── BootstrapDropdown.kt │ │ │ ├── BootstrapDropdownButton.kt │ │ │ ├── BootstrapDropdownMenuItems.kt │ │ │ ├── BootstrapForm.kt │ │ │ ├── BootstrapFormControl.kt │ │ │ ├── BootstrapForms.kt │ │ │ ├── BootstrapInputGroup.kt │ │ │ ├── BootstrapInputGroups.kt │ │ │ ├── BootstrapListGroup.kt │ │ │ ├── BootstrapListGroupItem.kt │ │ │ ├── BootstrapModal.kt │ │ │ ├── BootstrapModalBody.kt │ │ │ ├── BootstrapModalFooter.kt │ │ │ ├── BootstrapModalHeader.kt │ │ │ ├── BootstrapModalTitle.kt │ │ │ ├── BootstrapNav.kt │ │ │ ├── BootstrapNavItems.kt │ │ │ ├── BootstrapOverlay.kt │ │ │ ├── BootstrapOverlayTrigger.kt │ │ │ ├── BootstrapPagination.kt │ │ │ ├── BootstrapPaginationComponents.kt │ │ │ ├── BootstrapPaginationItem.kt │ │ │ ├── BootstrapProgressBar.kt │ │ │ ├── BootstrapRow.kt │ │ │ ├── BootstrapSpinner.kt │ │ │ ├── BootstrapSplitButton.kt │ │ │ ├── BootstrapSwitchButton.kt │ │ │ ├── BootstrapTab.kt │ │ │ ├── BootstrapTabContainer.kt │ │ │ ├── BootstrapTabContent.kt │ │ │ ├── BootstrapTabPane.kt │ │ │ ├── BootstrapTable.kt │ │ │ ├── BootstrapTabs.kt │ │ │ ├── BootstrapToast.kt │ │ │ ├── BootstrapToastBody.kt │ │ │ ├── BootstrapToastHeader.kt │ │ │ ├── BootstrapToggleButton.kt │ │ │ ├── BootstrapToggleButtonGroup.kt │ │ │ ├── BootstrapTooltip.kt │ │ │ └── ExtraClassAwareProps.kt │ │ └── test │ │ └── kotlin │ │ ├── AStartBrowserTest.kt │ │ ├── EvictingListTest.kt │ │ └── GitHubRegexBrowserTest.kt ├── game-AlgorithmIsland │ ├── game-AlgorithmIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── AlgorithmIsland.kt ├── game-DataStructureIsland │ ├── game-DataStructureIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── DataStructureIsland.kt ├── game-DatabaseIsland │ ├── game-DatabaseIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── DatabaseIsland.kt ├── game-GitIsland │ ├── game-GitIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── GitIsland.kt ├── game-GopherIsland │ ├── game-GopherIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── GradleIsland.kt ├── game-GradleIsland │ ├── game-GradleIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── GradleIsland.kt ├── game-JavaIsland │ ├── game-JavaIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ ├── JavaIsland.kt │ │ └── JavaIslandAnimations.kt ├── game-JavaIslandCommentDungeon │ ├── game-JavaIslandCommentDungeon.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── JavaIslandCommentDungeon.kt ├── game-JavaIslandConcurrencyDungeon │ ├── game-JavaIslandConcurrencyDungeon.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── JavaIslandConcurrencyDungeon.kt ├── game-JavaIslandDebuggerDungeon │ ├── game-JavaIslandDebuggerDungeon.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── JavaIslandDebuggerDungeon.kt ├── game-JavaIslandMavenDungeon │ ├── game-JavaIslandMavenDungeon.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── JavaIslandMavenDungeon.kt ├── game-JavaIslandNewbieVillagePub │ ├── game-JavaIslandNewbieVillagePub.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── JavaIslandNewbieVillagePub.kt ├── game-JavaIslandSeniorJavaCastle │ ├── game-JavaIslandSeniorJavaCastle.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── JavaIslandSeniorJavaCastle.kt ├── game-JavaIslandSpringDungeon │ ├── game-JavaIslandSpringDungeon.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── JavaIslandSpringDungeon.kt ├── game-KotlinIsland │ ├── game-GradleIsland │ │ ├── game-GradleIsland.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── kotlin │ │ │ └── GradleIsland.kt │ ├── game-KotlinIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── KotlinIsland.kt ├── game-PythonIsland │ ├── game-PythonIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── GradleIsland.kt ├── game-ShellIsland │ ├── game-ShellIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── ShellIsland.kt ├── game-WebIsland │ ├── game-WebIsland.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── WebIsland.kt ├── game-api │ ├── game-api.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── com │ │ │ └── bytelegend │ │ │ └── app │ │ │ └── client │ │ │ └── api │ │ │ ├── Animation.kt │ │ │ ├── Character.kt │ │ │ ├── EventBus.kt │ │ │ ├── Events.kt │ │ │ ├── HasBouncingTitle.kt │ │ │ ├── Resource.kt │ │ │ ├── Scripts.kt │ │ │ ├── Sprite.kt │ │ │ ├── Timestamp.kt │ │ │ ├── api.kt │ │ │ └── dsl │ │ │ └── dsl.kt │ │ └── test │ │ └── kotlin │ │ └── com │ │ └── bytelegend │ │ └── app │ │ └── client │ │ └── api │ │ └── FramePlayingAnimationTest.kt ├── game-page │ ├── game-page.gradle.kts │ ├── src │ │ ├── main │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── bytelegend │ │ │ │ └── client │ │ │ │ ├── app │ │ │ │ ├── engine │ │ │ │ │ ├── BrowserConsoleLogger.kt │ │ │ │ │ ├── DefaultChallengeAnswersContainer.kt │ │ │ │ │ ├── DefaultGameCanvasState.kt │ │ │ │ │ ├── DefaultGameMission.kt │ │ │ │ │ ├── DefaultGameObjectContainer.kt │ │ │ │ │ ├── DefaultGameScene.kt │ │ │ │ │ ├── DefaultGameSceneContainer.kt │ │ │ │ │ ├── DefaultGameSceneMatrixElement.kt │ │ │ │ │ ├── DefaultItemAchievementManager.kt │ │ │ │ │ ├── DefaultResourceLoader.kt │ │ │ │ │ ├── Events.kt │ │ │ │ │ ├── Game.kt │ │ │ │ │ ├── GameControl.kt │ │ │ │ │ ├── GameIds.kt │ │ │ │ │ ├── GlobalEventHandler.kt │ │ │ │ │ ├── MainMapCanvasRenderer.kt │ │ │ │ │ ├── MissionModalDataContainer.kt │ │ │ │ │ ├── PlayerContainer.kt │ │ │ │ │ ├── resource │ │ │ │ │ │ ├── GameMapResource.kt │ │ │ │ │ │ └── ResourceImpl.kt │ │ │ │ │ └── util │ │ │ │ │ │ └── LocaledTimeFormat.kt │ │ │ │ ├── external │ │ │ │ │ ├── Confetti.kt │ │ │ │ │ ├── PrismCodeBlock.kt │ │ │ │ │ └── TextareaAutosize.kt │ │ │ │ ├── obj │ │ │ │ │ ├── AbstractSprite.kt │ │ │ │ │ ├── BouncingTitleObject.kt │ │ │ │ │ ├── DefaultAnimationSprite.kt │ │ │ │ │ ├── DefaultDynamicSprite.kt │ │ │ │ │ ├── EmptySprite.kt │ │ │ │ │ ├── GameCurveSprite.kt │ │ │ │ │ ├── GameMapEntrance.kt │ │ │ │ │ ├── GameTextSprite.kt │ │ │ │ │ ├── MapTileSprite.kt │ │ │ │ │ ├── RectangleOuterGlowEffect.kt │ │ │ │ │ ├── Utils.kt │ │ │ │ │ └── character │ │ │ │ │ │ ├── AnimationSet.kt │ │ │ │ │ │ ├── CharacterSprite.kt │ │ │ │ │ │ ├── HeroCharacter.kt │ │ │ │ │ │ ├── NPC.kt │ │ │ │ │ │ └── PlayerSprite.kt │ │ │ │ ├── page │ │ │ │ │ ├── GamePage.kt │ │ │ │ │ └── LoadingPage.kt │ │ │ │ ├── script │ │ │ │ │ ├── DefaultGameDirector.kt │ │ │ │ │ └── effect │ │ │ │ │ │ └── Effects.kt │ │ │ │ ├── ui │ │ │ │ │ ├── AbstractIncrementAnimatableWidget.kt │ │ │ │ │ ├── AudioSwitchWidget.kt │ │ │ │ │ ├── CoinCountWidget.kt │ │ │ │ │ ├── CoinHistoryModal.kt │ │ │ │ │ ├── DefaultBannerController.kt │ │ │ │ │ ├── DefaultToastController.kt │ │ │ │ │ ├── EChartsMinimap.kt │ │ │ │ │ ├── FpsCounter.kt │ │ │ │ │ ├── GameModal.kt │ │ │ │ │ ├── GameScriptWidgetDisplayLayer.kt │ │ │ │ │ ├── GameUIComponentInternal.kt │ │ │ │ │ ├── HeroControlButton.kt │ │ │ │ │ ├── HeroIndicatorWidget.kt │ │ │ │ │ ├── HistoryModal.kt │ │ │ │ │ ├── ICPServerLocationWidget.kt │ │ │ │ │ ├── Layer.kt │ │ │ │ │ ├── LayeredGameUIComponent.kt │ │ │ │ │ ├── LivestreamIndicators.kt │ │ │ │ │ ├── LocaleSelectionDropdown.kt │ │ │ │ │ ├── MainMapCanvasLayer.kt │ │ │ │ │ ├── MapCoordinateTitleWidget.kt │ │ │ │ │ ├── MapNameWidget.kt │ │ │ │ │ ├── MapSelectionDropdown.kt │ │ │ │ │ ├── MiniMapCanvas.kt │ │ │ │ │ ├── MissionItemButtons.kt │ │ │ │ │ ├── OnlineCounter.kt │ │ │ │ │ ├── PieMenu.kt │ │ │ │ │ ├── PlayerNames.kt │ │ │ │ │ ├── ProgressBar.kt │ │ │ │ │ ├── ReputationCountWidget.kt │ │ │ │ │ ├── RightSideBar.kt │ │ │ │ │ ├── ScrollButtonsLayer.kt │ │ │ │ │ ├── StarCountWidget.kt │ │ │ │ │ ├── TileCursorWidget.kt │ │ │ │ │ ├── UserAvatarWidget.kt │ │ │ │ │ ├── UserMouseInteractionLayer.kt │ │ │ │ │ ├── Utils.kt │ │ │ │ │ ├── achievement │ │ │ │ │ │ └── AchievementWidget.kt │ │ │ │ │ ├── heronoticeboard │ │ │ │ │ │ ├── AvatarTooltip.kt │ │ │ │ │ │ └── JavaIslandHeroNoticeboard.kt │ │ │ │ │ ├── invitationcode │ │ │ │ │ │ └── InvitationCodeModal.kt │ │ │ │ │ ├── item │ │ │ │ │ │ ├── ItemOrAchievementModal.kt │ │ │ │ │ │ └── ItemsWidget.kt │ │ │ │ │ ├── menu │ │ │ │ │ │ ├── AsyncLoadingTable.kt │ │ │ │ │ │ ├── CreditsModal.kt │ │ │ │ │ │ ├── GameMaterialTable.kt │ │ │ │ │ │ ├── LeaderboardTable.kt │ │ │ │ │ │ ├── MenuItem.kt │ │ │ │ │ │ └── OpenSourceSoftwareTable.kt │ │ │ │ │ ├── minimap │ │ │ │ │ │ └── MinimapEChartsOptions.kt │ │ │ │ │ ├── mission │ │ │ │ │ │ ├── AbstractBouncingTitleWidget.kt │ │ │ │ │ │ ├── AbstractWebEditorButton.kt │ │ │ │ │ │ ├── AskForHelpButton.kt │ │ │ │ │ │ ├── BouncingTitleWidget.kt │ │ │ │ │ │ ├── BouncingTitles.kt │ │ │ │ │ │ ├── DefaultPullRequestLogContainer.kt │ │ │ │ │ │ ├── LiveLogStreamEffect.kt │ │ │ │ │ │ ├── MissionModal.kt │ │ │ │ │ │ ├── MissionTitle.kt │ │ │ │ │ │ ├── ModalCloseButton.kt │ │ │ │ │ │ ├── OpenTutorialsButton.kt │ │ │ │ │ │ ├── PullRequestChallengeTab.kt │ │ │ │ │ │ ├── PullRequestLogModal.kt │ │ │ │ │ │ ├── QuestionChallengeTab.kt │ │ │ │ │ │ ├── StarChallengeTab.kt │ │ │ │ │ │ ├── SubmitAnswerButton.kt │ │ │ │ │ │ ├── TitleStarCounter.kt │ │ │ │ │ │ ├── WebEditor.kt │ │ │ │ │ │ └── WebEditorButtonGroup.kt │ │ │ │ │ ├── roadmap │ │ │ │ │ │ └── RoadmapModal.kt │ │ │ │ │ └── script │ │ │ │ │ │ └── Widget.kt │ │ │ │ └── web │ │ │ │ │ ├── MissionModalHttpClient.kt │ │ │ │ │ └── WebSocketClient.kt │ │ │ │ └── utils │ │ │ │ ├── JSArrayBackedList.kt │ │ │ │ ├── JSObjectBackedMap.kt │ │ │ │ ├── JSObjectBackedStringSet.kt │ │ │ │ └── JsonMappers.kt │ │ └── test │ │ │ └── kotlin │ │ │ └── com │ │ │ └── bytelegend │ │ │ └── client │ │ │ └── utils │ │ │ └── JsonMapperTest.kt │ └── webpack.config.d │ │ └── assert-fallback.js └── game-utils │ ├── game-utils.gradle.kts │ └── src │ └── main │ └── kotlin │ └── com │ └── bytelegend │ └── app │ └── client │ └── utils │ ├── DynamicSprites.kt │ └── GameScriptHelpers.kt ├── docs ├── en │ ├── CONTRIBUTING.md │ ├── create-new-game-map.md │ ├── game-code-contributor-guide.md │ ├── game-map-contributor-guide.md │ └── i18n.md ├── images │ ├── add-or-fix-i18n.png │ ├── add-tutorials-to-yaml-file.png │ ├── create-tutorials.png │ ├── index-page-en.png │ ├── index-page-zh.png │ ├── open-i18n-yaml.png │ ├── qq-group.png │ ├── run-local-development-server.png │ ├── same-name-folder-with-yaml-file.png │ ├── search-in-game-data.png │ └── switch-then-edit.png └── zh_hans │ ├── CONTRIBUTING.md │ ├── create-new-game-map.md │ ├── game-code-contributor-guide.md │ ├── game-map-contributor-guide.md │ ├── game-tutorials-contributor-guide.md │ └── i18n.md ├── gradle.properties ├── gradle ├── kotlin-project.gradle.kts └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── livestream-data.json ├── resources ├── README.md ├── cooked │ ├── audio │ │ ├── GoldSwordAudio.mp3 │ │ ├── SwingWeapon.mp3 │ │ ├── TeslaCoilExplosion.mp3 │ │ ├── ThunderCurrentAudio.mp3 │ │ ├── achievement.mp3 │ │ ├── coin-loss.mp3 │ │ ├── coin.mp3 │ │ ├── disappear.mp3 │ │ ├── forest.ogg │ │ ├── popup.mp3 │ │ ├── starfly.mp3 │ │ ├── tada.mp3 │ │ └── wilhelm-scream.wav │ ├── css │ │ └── common.css │ ├── img │ │ ├── achievement │ │ │ ├── first-star-medal.png │ │ │ ├── git-amulet.png │ │ │ ├── gold-git-medal.png │ │ │ └── silver-git-medal.png │ │ ├── attribution │ │ │ └── google-translate.png │ │ ├── icon │ │ │ ├── favicon.ico │ │ │ └── server.png │ │ ├── item │ │ │ ├── coffee-icon.png │ │ │ ├── dagger.png │ │ │ ├── door-key.png │ │ │ ├── gold-sword.png │ │ │ ├── iron-sword.png │ │ │ ├── key.png │ │ │ └── silver-sword.png │ │ ├── logo │ │ │ └── logo.png │ │ └── ui │ │ │ ├── avatar-border.png │ │ │ ├── border.png │ │ │ ├── help.png │ │ │ ├── hero.png │ │ │ ├── item-btn-pressed.png │ │ │ ├── item-btn.png │ │ │ ├── login.png │ │ │ ├── menu-about.png │ │ │ ├── menu-credits.png │ │ │ ├── menu-github.png │ │ │ ├── menu-help.png │ │ │ ├── menu-notification.png │ │ │ ├── menu-ranking.png │ │ │ ├── menu-settings.png │ │ │ ├── minimap-border.png │ │ │ ├── minimap.png │ │ │ ├── speech-bubble.png │ │ │ ├── tutorial-locked.png │ │ │ ├── tutorial-open.png │ │ │ └── webeditor-button-bg.png │ ├── lib │ │ ├── astar │ │ │ └── astar.js │ │ ├── bootstrap │ │ │ └── 4.6.0 │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.css.map │ │ ├── echarts │ │ │ └── 5.1.2 │ │ │ │ └── echarts.min.js │ │ ├── fireworks │ │ │ └── fireworks.js │ │ ├── gsap │ │ │ └── 3.6.0 │ │ │ │ └── gsap.min.js │ │ ├── prism │ │ │ ├── prism.css │ │ │ └── prism.js │ │ └── starFly.js │ └── misc │ │ ├── achievement-metadata.json │ │ ├── item-metadata.json │ │ └── material.json └── raw │ ├── animation-jsons │ ├── GoldSwordAttack.json │ ├── IronSwordAttack.json │ ├── KillEvil.json │ ├── SilverSwordAttack.json │ ├── TeslaCoilDestroyed.json │ ├── ThunderCurrent.json │ └── e-shock.json │ ├── animations │ ├── GoldSwordAttack.png │ ├── IronSwordAttack.png │ ├── KillEvil.png │ ├── SilverSwordAttack.png │ ├── TeslaCoilDestroyed.png │ ├── ThunderCurrent.png │ └── e-shock.png │ ├── credits │ └── credits.txt │ ├── design │ ├── bytelegend-logo (1).psd │ ├── bytelegend-logo-ico.psd │ ├── bytelegend-logo-small.psd │ ├── bytelegend-logo.png │ ├── bytelegend-logo.psd │ ├── bytelegend-logo_128x128.png │ ├── bytelegend-logo_512x512.png │ ├── menu-github.psd │ ├── menu.psd │ ├── sea-animation.psd │ ├── sea_animation_32x32.psd │ ├── star.psd │ └── ui.psd │ ├── maps │ ├── AlgorithmIsland │ │ └── AlgorithmIsland.json │ ├── DataStructureIsland │ │ └── DataStructureIsland.json │ ├── DatabaseIsland │ │ └── DatabaseIsland.json │ ├── GitIsland │ │ └── GitIsland.json │ ├── GopherIsland │ │ └── GopherIsland.json │ ├── GradleIsland │ │ └── GradleIsland.json │ ├── JavaIsland │ │ └── JavaIsland.json │ ├── JavaIslandCommentDungeon │ │ └── JavaIslandCommentDungeon.json │ ├── JavaIslandConcurrencyDungeon │ │ └── JavaIslandConcurrencyDungeon.json │ ├── JavaIslandDebuggerDungeon │ │ └── JavaIslandDebuggerDungeon.json │ ├── JavaIslandMavenDungeon │ │ └── JavaIslandMavenDungeon.json │ ├── JavaIslandNewbieVillagePub │ │ └── JavaIslandNewbieVillagePub.json │ ├── JavaIslandSeniorJavaCastle │ │ └── JavaIslandSeniorJavaCastle.json │ ├── JavaIslandSpringDungeon │ │ └── JavaIslandSpringDungeon.json │ ├── KotlinIsland │ │ └── KotlinIsland.json │ ├── PythonIsland │ │ └── PythonIsland.json │ ├── README.md │ ├── ShellIsland │ │ └── ShellIsland.json │ └── WebIsland │ │ └── WebIsland.json │ ├── player-animations │ ├── 1.png │ ├── 10.png │ ├── 100.png │ ├── 101.png │ ├── 102.png │ ├── 103.png │ ├── 104.png │ ├── 105.png │ ├── 106.png │ ├── 107.png │ ├── 108.png │ ├── 109.png │ ├── 11.png │ ├── 110.png │ ├── 111.png │ ├── 112.png │ ├── 113.png │ ├── 114.png │ ├── 115.png │ ├── 116.png │ ├── 117.png │ ├── 118.png │ ├── 119.png │ ├── 12.png │ ├── 120.png │ ├── 121.png │ ├── 122.png │ ├── 123.png │ ├── 124.png │ ├── 125.png │ ├── 126.png │ ├── 127.png │ ├── 128.png │ ├── 129.png │ ├── 13.png │ ├── 130.png │ ├── 131.png │ ├── 132.png │ ├── 133.png │ ├── 134.png │ ├── 135.png │ ├── 136.png │ ├── 137.png │ ├── 138.png │ ├── 139.png │ ├── 14.png │ ├── 140.png │ ├── 141.png │ ├── 142.png │ ├── 143.png │ ├── 144.png │ ├── 145.png │ ├── 146.png │ ├── 147.png │ ├── 148.png │ ├── 149.png │ ├── 15.png │ ├── 150.png │ ├── 151.png │ ├── 152.png │ ├── 153.png │ ├── 154.png │ ├── 155.png │ ├── 156.png │ ├── 157.png │ ├── 158.png │ ├── 159.png │ ├── 16.png │ ├── 160.png │ ├── 161.png │ ├── 162.png │ ├── 163.png │ ├── 164.png │ ├── 165.png │ ├── 166.png │ ├── 167.png │ ├── 168.png │ ├── 169.png │ ├── 17.png │ ├── 170.png │ ├── 171.png │ ├── 172.png │ ├── 173.png │ ├── 174.png │ ├── 175.png │ ├── 176.png │ ├── 177.png │ ├── 178.png │ ├── 179.png │ ├── 18.png │ ├── 180.png │ ├── 181.png │ ├── 182.png │ ├── 183.png │ ├── 184.png │ ├── 185.png │ ├── 186.png │ ├── 187.png │ ├── 188.png │ ├── 189.png │ ├── 19.png │ ├── 190.png │ ├── 191.png │ ├── 192.png │ ├── 193.png │ ├── 194.png │ ├── 195.png │ ├── 196.png │ ├── 197.png │ ├── 198.png │ ├── 199.png │ ├── 2.png │ ├── 20.png │ ├── 21.png │ ├── 22.png │ ├── 23.png │ ├── 24.png │ ├── 25.png │ ├── 26.png │ ├── 27.png │ ├── 28.png │ ├── 29.png │ ├── 3.png │ ├── 30.png │ ├── 31.png │ ├── 32.png │ ├── 33.png │ ├── 34.png │ ├── 35.png │ ├── 36.png │ ├── 37.png │ ├── 38.png │ ├── 39.png │ ├── 4.png │ ├── 40.png │ ├── 41.png │ ├── 42.png │ ├── 43.png │ ├── 44.png │ ├── 45.png │ ├── 46.png │ ├── 47.png │ ├── 48.png │ ├── 49.png │ ├── 5.png │ ├── 50.png │ ├── 51.png │ ├── 52.png │ ├── 53.png │ ├── 54.png │ ├── 55.png │ ├── 56.png │ ├── 57.png │ ├── 58.png │ ├── 59.png │ ├── 6.png │ ├── 60.png │ ├── 61.png │ ├── 62.png │ ├── 63.png │ ├── 64.png │ ├── 65.png │ ├── 66.png │ ├── 67.png │ ├── 68.png │ ├── 69.png │ ├── 7.png │ ├── 70.png │ ├── 71.png │ ├── 72.png │ ├── 73.png │ ├── 74.png │ ├── 75.png │ ├── 76.png │ ├── 77.png │ ├── 78.png │ ├── 79.png │ ├── 8.png │ ├── 80.png │ ├── 81.png │ ├── 82.png │ ├── 83.png │ ├── 84.png │ ├── 85.png │ ├── 86.png │ ├── 87.png │ ├── 88.png │ ├── 89.png │ ├── 9.png │ ├── 90.png │ ├── 91.png │ ├── 92.png │ ├── 93.png │ ├── 94.png │ ├── 95.png │ ├── 96.png │ ├── 97.png │ ├── 98.png │ └── 99.png │ ├── references │ ├── BoAs6CQ.png │ ├── QQ20201118-234336@2x.png │ ├── big-village.jpg │ ├── castle-ground.png │ ├── castle.png │ ├── castle2.png │ ├── center.png │ ├── great-wood-village.jpg │ ├── indoor.png │ ├── large-village.jpg │ ├── midtownfarmsmap1_by_champgaming_d80ts23-fullview.jpg │ ├── moutain.jpg │ ├── palace.png │ ├── smallvillage.png │ ├── town.jpg │ ├── village.png │ └── worldmap.png │ ├── tileset-jsons │ ├── BrowserQuest_32x32.json │ ├── Crystal.json │ ├── JavaIslandNewbieVillageOldMan.json │ ├── JavaIslandNewbieVillagePubBartender.json │ ├── JavaIslandNewbieVillagePubGirl.json │ ├── JavaIslandNewbieVillagePubGuard.json │ ├── JavaIslandNewbieVillagePubTestEngineer.json │ ├── Misc_WallInteriorIcon_32x32.json │ ├── Outside_CBlue.json │ ├── RoyalAddOn.json │ ├── TeslaCoil.json │ ├── TeslaCoilAttack.json │ ├── TileB_32x32.json │ ├── Tileset.json │ ├── WaterFall_32x32.json │ ├── Water_32x32.json │ ├── autumn.json │ ├── big-village.json │ ├── blood-letter-number.json │ ├── book-bottle-coffee.json │ ├── castle.json │ ├── castle2.json │ ├── castle5.json │ ├── colorful-tree-flowers.json │ ├── doors.json │ ├── dungeon-furniture-skeleton.json │ ├── floating island.json │ ├── floating-box.json │ ├── gems.json │ ├── golang-logo.json │ ├── gradle-logo.json │ ├── huge-tileset.json │ ├── java-flag.json │ ├── kotlin-island.json │ ├── misc1.json │ ├── misc3.json │ ├── misc5.json │ ├── misc7.json │ ├── misc8.json │ ├── mountain_landscape.json │ ├── oasis-body.json │ ├── portal-door.json │ ├── pub-interior.json │ ├── pub-long-table.json │ ├── python-logo.json │ ├── restaurant-crate.json │ ├── sea_animation_32x32.json │ ├── storefront-animation.json │ └── vehicle-animation.json │ └── tilesets │ ├── BrowserQuest_32x32.png │ ├── Crystal.png │ ├── Flame.png │ ├── Furniture.png │ ├── Hexagram.png │ ├── JavaIslandNewbieVillageOldMan.png │ ├── JavaIslandNewbieVillagePubBartender.png │ ├── JavaIslandNewbieVillagePubGirl.png │ ├── JavaIslandNewbieVillagePubGuard.png │ ├── JavaIslandNewbieVillagePubTestEngineer.png │ ├── Misc_WallInteriorIcon_32x32.png │ ├── Outside_CAqua.png │ ├── Outside_CBlue.png │ ├── Outside_CGold.png │ ├── Outside_CGreen.png │ ├── Outside_CLime.png │ ├── Outside_CPink.png │ ├── Outside_CPurple.png │ ├── Outside_CTurq.png │ ├── RoyalAddOn.png │ ├── TeslaCoil.png │ ├── TeslaCoilAttack.png │ ├── TileB_32x32.png │ ├── Tileset.png │ ├── WaterFall_32x32.png │ ├── Water_32x32.png │ ├── arab-palace.png │ ├── autumn.png │ ├── beds.png │ ├── big-village.jpg │ ├── blood-letter-number.png │ ├── book-bottle-coffee.png │ ├── bulletin-wanted.png │ ├── castle-exterior.png │ ├── castle-exterior2.png │ ├── castle.png │ ├── castle2-s.png │ ├── castle2.png │ ├── castle3.png │ ├── castle4.png │ ├── castle5.png │ ├── castle6.png │ ├── castle7.png │ ├── christmas.png │ ├── colorful-tree-flowers.png │ ├── doors.png │ ├── doors2.png │ ├── dungeon-furniture-skeleton.png │ ├── floating island.png │ ├── floating-box.png │ ├── forest-castle-flower.png │ ├── forest-plant-flower.png │ ├── forest-plant.png │ ├── furniture12.png │ ├── furniture13.png │ ├── furniture2.png │ ├── furniture3.png │ ├── furniture4.png │ ├── furniture5.png │ ├── furniture6.png │ ├── furniture7.png │ ├── furniture8.png │ ├── furniture9.png │ ├── furnitures11.png │ ├── gems.png │ ├── golang-logo.png │ ├── gradle-logo.png │ ├── ground.png │ ├── ground2.png │ ├── huge-tileset.png │ ├── indoor-altar-furniture.png │ ├── indoor-bench-pumpkin.png │ ├── java-flag.png │ ├── kotlin-island.png │ ├── matalbars.png │ ├── misc-ground-interior.png │ ├── misc1.png │ ├── misc10.png │ ├── misc11.png │ ├── misc12.png │ ├── misc2.png │ ├── misc3.png │ ├── misc4.png │ ├── misc5.png │ ├── misc6.png │ ├── misc7.png │ ├── misc8.png │ ├── misc9.png │ ├── mountain_landscape.png │ ├── oasis-body.png │ ├── outdoor-park-tree-flower.png │ ├── player14.gif │ ├── playground.png │ ├── portal-door.png │ ├── prensent.png │ ├── pub-interior.png │ ├── pub-long-table.png │ ├── python-logo.png │ ├── restaurant-crate.png │ ├── sea_animation_32x32.png │ ├── storefront-animation.png │ ├── swimming-pool.png │ ├── texture1.png │ ├── texture2.png │ ├── textures3.png │ ├── textures4.png │ ├── traffic-sign-street-lamp.png │ ├── vehicle-animation.png │ ├── window2.png │ ├── windows.png │ └── wooden-floor.png ├── server-opensource ├── server-opensource.gradle.kts └── src │ ├── main │ └── kotlin │ │ └── com │ │ └── bytelegend │ │ └── app │ │ └── opensourceserver │ │ └── GameApp.kt │ └── test │ └── kotlin │ └── com │ └── bytelegend │ └── app │ └── opensourceserver │ └── AppBrowserSmokeTest.kt ├── server-shared ├── common │ ├── common.gradle.kts │ └── src │ │ └── main │ │ ├── kotlin │ │ └── com │ │ │ └── bytelegend │ │ │ └── app │ │ │ └── servershared │ │ │ ├── AbstractIndexPageRenderer.kt │ │ │ ├── AbstractRRBDResourceProvider.kt │ │ │ ├── JsonMapper.kt │ │ │ ├── PullRequestEnvironment.kt │ │ │ ├── ServerCoordinator.kt │ │ │ ├── WebSocketMessageDeserializer.kt │ │ │ ├── codechecker │ │ │ ├── Constants.kt │ │ │ └── WhitelistChecker.kt │ │ │ ├── dal │ │ │ ├── Mvcc.kt │ │ │ ├── Session.kt │ │ │ └── StoredInPlayerTable.kt │ │ │ ├── mock │ │ │ └── Mocks.kt │ │ │ └── utils │ │ │ ├── RandomUtils.kt │ │ │ └── Shell.kt │ │ └── resources │ │ └── index.html ├── json-model │ ├── json-model.gradle.kts │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── bytelegend │ │ │ └── app │ │ │ └── jsonmodel │ │ │ ├── event │ │ │ └── GitHubEvent.java │ │ │ ├── generated │ │ │ ├── event │ │ │ │ ├── CheckRunGitHubEvent.java │ │ │ │ ├── CommitStatusGitHubEvent.java │ │ │ │ ├── PullRequestGitHubEvent.java │ │ │ │ ├── StarGitHubEvent.java │ │ │ │ ├── WorkflowJobGitHubEvent.java │ │ │ │ └── WorkflowRunGitHubEvent.java │ │ │ ├── query │ │ │ │ ├── ApiGithubComUser.java │ │ │ │ ├── ApiGithubComUserEmail.java │ │ │ │ ├── GetFileContentResponse.java │ │ │ │ ├── GitHubAppAccessToken.java │ │ │ │ ├── ListOpenPullRequestsResponse.java │ │ │ │ ├── MergePullRequestErrorResponse.java │ │ │ │ ├── MergePullRequestSuccessResponse.java │ │ │ │ ├── PullRequestMergeResponse.java │ │ │ │ └── PullRequestWithCommentsResponse.java │ │ │ ├── release │ │ │ │ ├── CreateReleaseResponse.java │ │ │ │ ├── GetReleaseAssetResponse.java │ │ │ │ ├── GetReleaseResponse.java │ │ │ │ ├── ListReleasesResponse.java │ │ │ │ └── UploadReleaseAssetResponse.java │ │ │ ├── response │ │ │ │ ├── CreatePullRequestResponse.java │ │ │ │ ├── CreateReleaseResponse.java │ │ │ │ ├── GetPullRequestResponse.java │ │ │ │ ├── GetReleaseAssetResponse.java │ │ │ │ ├── GetReleaseResponse.java │ │ │ │ ├── GetWorkflowJobResponse.java │ │ │ │ ├── ListReleasesResponse.java │ │ │ │ ├── UploadReleaseAssetResponse.java │ │ │ │ └── WhoAmIResponse.java │ │ │ └── stream │ │ │ │ ├── GitHubActionsOutputStreamEvent.java │ │ │ │ ├── LiveLogsResponse.java │ │ │ │ ├── PipelinesAuthenticatedUrlResponse.java │ │ │ │ ├── StreamWebSocketSentArguments.java │ │ │ │ └── StreamWebSocketSentProtocolVersion.java │ │ │ └── review │ │ │ ├── PullRequestReviewThreadResponse.java │ │ │ ├── PullRequestWithReviewThreads.java │ │ │ └── RepositoryQueryResponse.java │ │ ├── kotlin │ │ └── com │ │ │ └── bytelegend │ │ │ └── app │ │ │ └── jsonmodel │ │ │ ├── CheckRun.kt │ │ │ └── PullRequestMergeRequest.kt │ │ └── resources │ │ └── json │ │ ├── event │ │ ├── CheckRunGitHubEvent.json │ │ ├── CommitStatusGitHubEvent.json │ │ ├── PullRequestGitHubEvent.json │ │ ├── StarGitHubEvent.json │ │ ├── WorkflowJobGitHubEvent.json │ │ └── WorkflowRunGitHubEvent.json │ │ ├── query │ │ ├── ApiGithubComUser.json │ │ ├── ApiGithubComUserEmail.json │ │ ├── GetFileContentResponse.json │ │ ├── GitHubAppAccessToken.json │ │ ├── ListOpenPullRequestsResponse.json │ │ ├── MergePullRequestErrorResponse.json │ │ ├── MergePullRequestSuccessResponse.json │ │ ├── PullRequestMergeResponse.json │ │ └── PullRequestWithCommentsResponse.json │ │ ├── response │ │ ├── CreatePullRequestResponse.json │ │ ├── CreateReleaseResponse.json │ │ ├── GetPullRequestResponse.json │ │ ├── GetReleaseAssetResponse.json │ │ ├── GetReleaseResponse.json │ │ ├── GetWorkflowJobResponse.json │ │ ├── ListReleasesResponse.json │ │ ├── UploadReleaseAssetResponse.json │ │ └── WhoAmIResponse.json │ │ └── stream │ │ ├── GitHubActionsOutputStreamEvent.json │ │ ├── LiveLogsResponse.json │ │ ├── PipelinesAuthenticatedUrlResponse.json │ │ ├── StreamWebSocketSentArguments.json │ │ └── StreamWebSocketSentProtocolVersion.json ├── server-shared.gradle.kts └── test-fixtures │ ├── src │ └── main │ │ ├── kotlin │ │ └── com │ │ │ └── bytelegend │ │ │ └── app │ │ │ └── testfixtures │ │ │ ├── AbstractBrowserTest.kt │ │ │ ├── ExecUtils.kt │ │ │ ├── GameObjectContainerForTest.kt │ │ │ ├── JUnit5VncRecorder.kt │ │ │ ├── MockServerCoordinator.kt │ │ │ ├── ResourceLoaderFixture.kt │ │ │ ├── Utils.kt │ │ │ └── WebDriverUtils.kt │ │ └── resources │ │ └── StarGitHubEvent.json │ └── test-fixtures.gradle.kts ├── settings.gradle.kts ├── shared ├── shared.gradle.kts └── src │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── bytelegend │ │ └── app │ │ └── shared │ │ ├── AnimationSet.kt │ │ ├── Common.kt │ │ ├── EvictingList.kt │ │ ├── GameInitData.kt │ │ ├── GameMap.kt │ │ ├── HumanReadableCoordinate.kt │ │ ├── InvitationCodeConstants.kt │ │ ├── Layers.kt │ │ ├── Maps.kt │ │ ├── Missions.kt │ │ ├── RGBA.kt │ │ ├── StaticGameMap.kt │ │ ├── annotations │ │ └── Annotations.kt │ │ ├── codegen │ │ └── CommonDefinitions.kt │ │ ├── entities │ │ ├── BasePlayer.kt │ │ ├── ChallengeAnswer.kt │ │ ├── ChallengeAnswers.kt │ │ ├── ChallengeCodeAnswer.kt │ │ ├── HistoryRecord.kt │ │ ├── LivestreamData.kt │ │ ├── MapChallengeStates.kt │ │ ├── Mission.kt │ │ ├── MissionModalData.kt │ │ ├── Player.kt │ │ ├── PullRequestAnswer.kt │ │ └── mission │ │ │ ├── ChallengeSpec.kt │ │ │ ├── ChangeSpec.kt │ │ │ ├── DiscussionsSpec.kt │ │ │ ├── HeroNoticeboardTilesData.kt │ │ │ ├── MapMissionSpec.kt │ │ │ ├── MissionSpec.kt │ │ │ ├── Pagination.kt │ │ │ └── Tutorial.kt │ │ ├── enums │ │ └── ServerLocation.kt │ │ ├── i18n │ │ └── Locale.kt │ │ ├── math │ │ └── Math.kt │ │ ├── objects │ │ ├── GameMapAnimation.kt │ │ ├── GameMapCurve.kt │ │ ├── GameMapDynamicSprite.kt │ │ ├── GameMapMission.kt │ │ ├── GameMapObjects.kt │ │ ├── GameMapPoint.kt │ │ ├── GameMapRegion.kt │ │ ├── GameMapText.kt │ │ └── GameObject.kt │ │ ├── protocol │ │ ├── GameServerProtocol.kt │ │ ├── PlayerSpeechEventData.kt │ │ ├── Sentences.kt │ │ └── UnicastEventData.kt │ │ └── util │ │ ├── BiMap.kt │ │ └── Utils.kt │ ├── commonTest │ └── kotlin │ │ └── com │ │ └── bytelegend │ │ └── app │ │ └── shared │ │ └── HumanReadableCoordinateTest.kt │ ├── jsMain │ └── kotlin │ │ └── com │ │ └── bytelegend │ │ └── app │ │ └── shared │ │ ├── annotations │ │ └── JSAnnotationBindings.kt │ │ └── util │ │ └── Utils.kt │ └── jvmMain │ └── kotlin │ └── com │ └── bytelegend │ └── app │ └── shared │ ├── annotations │ ├── JVMAnnotationBindings.kt │ └── ReadOnly.kt │ └── util │ └── JvmUtils.kt ├── utils ├── README.md ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── bytelegend │ │ │ │ └── github │ │ │ │ └── utils │ │ │ │ └── generated │ │ │ │ ├── TiledMap.java │ │ │ │ └── TiledTileset.java │ │ └── kotlin │ │ │ └── com │ │ │ └── bytelegend │ │ │ └── utils │ │ │ ├── AddLicenses.kt │ │ │ ├── AddTilesetToMap.kt │ │ │ ├── CheckLicenses.kt │ │ │ ├── CreateEmptyMissionYamls.kt │ │ │ ├── CreateNewMap.kt │ │ │ ├── CutLargePlayerAnimationSheet.kt │ │ │ ├── GameMapObjectReader.kt │ │ │ ├── GenerateJwtToken.kt │ │ │ ├── GenerateTileset.kt │ │ │ ├── I18nGenerator.kt │ │ │ ├── ImageUtils.kt │ │ │ ├── JacksonConstantPoolSerializer.kt │ │ │ ├── MapGenerator.kt │ │ │ ├── MarkdownRenderer.kt │ │ │ ├── MissionDataReader.kt │ │ │ ├── PlayerAnimationSetGenerator.kt │ │ │ ├── RoadmapJsonGenerator.kt │ │ │ ├── RoadmapSvgGenerator.kt │ │ │ └── Translators.kt │ └── test │ │ ├── kotlin │ │ └── com │ │ │ └── bytelegend │ │ │ └── utils │ │ │ └── ImageReaderTest.kt │ │ └── resources │ │ └── animation-set-0.png └── utils.gradle.kts └── versions.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*.{kt,kts}] 5 | disabled_rules=import-ordering,no-wildcard-imports,indent 6 | 7 | [*] 8 | charset = utf-8 9 | indent_size = 4 10 | indent_style = space 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | end_of_line = lf 14 | 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | 18 | [*.{yml,yaml,json,xml}] 19 | indent_style = space 20 | indent_size = 2 21 | 22 | [*.java] 23 | align_multiline_chained_methods=true 24 | align_multiline_parameters=true 25 | align_multiline_parameters_in_calls=true 26 | align_multiline_ternary_operation=true 27 | align_subsequent_simple_methods=true 28 | 29 | [*.{java,kt}] 30 | wildcard_import_limit = 999 31 | ij_kotlin_name_count_to_use_star_import = 999 32 | ij_kotlin_name_count_to_use_star_import_for_members = 999 33 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # 2 | # https://help.github.com/articles/dealing-with-line-endings/ 3 | # 4 | # These are explicitly windows files and should use crlf 5 | *.bat text eol=crlf 6 | 7 | -------------------------------------------------------------------------------- /.github/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "3", 3 | "sources": [], 4 | "names": [] 5 | } 6 | -------------------------------------------------------------------------------- /.github/workflows/markdownlint.yml: -------------------------------------------------------------------------------- 1 | name: Markdown Lint 2 | 3 | on: 4 | push: 5 | branches-ignore: 6 | - release 7 | pull_request: 8 | branches-ignore: 9 | - release 10 | 11 | jobs: 12 | markdown-lint: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v3 16 | with: 17 | submodules: false 18 | 19 | - name: Fetch game-data 20 | run: git submodule update --init -- game-data 21 | 22 | - name: markdownlint 23 | uses: nosborn/github-action-markdown-cli@v3.0.1 24 | with: 25 | files: "." 26 | config_file: .markdownlint.yaml 27 | -------------------------------------------------------------------------------- /.github/workflows/release-code-checker.yml: -------------------------------------------------------------------------------- 1 | name: release-code-checker 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | check-and-release: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v3 11 | with: 12 | submodules: recursive 13 | token: ${{ secrets.BYTELEGENDBOT_TOKEN }} 14 | - name: Check and Release 15 | uses: gradle/gradle-build-action@v2 16 | with: 17 | arguments: :server:github-release:uploadCodeCheckerToGitHubRelease -DgitHubToken=${{ secrets.BYTELEGENDBOT_TOKEN }} -DagreePublicBuildScanTermOfService=yes 18 | -------------------------------------------------------------------------------- /.github/workflows/release-code-merger.yml: -------------------------------------------------------------------------------- 1 | name: release-code-merger 2 | 3 | on: workflow_dispatch 4 | 5 | jobs: 6 | check-and-release: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v3 10 | with: 11 | submodules: recursive 12 | token: ${{ secrets.BYTELEGENDBOT_TOKEN }} 13 | - name: Check and Release 14 | uses: gradle/gradle-build-action@v2 15 | with: 16 | arguments: :server:github-release:uploadCodeMergerToGitHubRelease -DgitHubToken=${{ secrets.BYTELEGENDBOT_TOKEN }} -DagreePublicBuildScanTermOfService=yes 17 | -------------------------------------------------------------------------------- /.github/workflows/release-repo-cleaner.yml: -------------------------------------------------------------------------------- 1 | name: Release repo-cleaner 2 | on: workflow_dispatch 3 | 4 | jobs: 5 | check-and-release: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v3 9 | with: 10 | submodules: recursive 11 | token: ${{ secrets.BYTELEGENDBOT_TOKEN }} 12 | - name: Check and Release 13 | uses: gradle/gradle-build-action@v2 14 | with: 15 | arguments: :server:github-release:uploadRepoCleanerToGitHubRelease -DgitHubToken=${{ secrets.BYTELEGENDBOT_TOKEN }} -DagreePublicBuildScanTermOfService=yes 16 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: release 2 | 3 | on: 4 | push: 5 | branches: 6 | - release 7 | 8 | jobs: 9 | release: 10 | runs-on: ubuntu-latest 11 | if: github.repository == 'ByteLegend/ByteLegend' 12 | steps: 13 | - uses: actions/checkout@v3 14 | with: 15 | submodules: recursive 16 | token: ${{ secrets.BYTELEGENDBOT_TOKEN }} 17 | - name: Set up JDK 11 18 | uses: actions/setup-java@v3 19 | with: 20 | distribution: 'zulu' 21 | java-version: 11 22 | - name: "Release to ECR and S3" 23 | uses: gradle/gradle-build-action@v2 24 | with: 25 | arguments: release -PupdateVersions -DagreePublicBuildScanTermOfService=yes 26 | env: 27 | ACCESS_KEY_ID_BEIJING: ${{ secrets.ACCESS_KEY_ID_BEIJING }} 28 | SECRET_ACCESS_KEY_BEIJING: ${{ secrets.SECRET_ACCESS_KEY_BEIJING }} 29 | ACCESS_KEY_ID_SEOUL: ${{ secrets.ACCESS_KEY_ID_SEOUL }} 30 | SECRET_ACCESS_KEY_SEOUL: ${{ secrets.SECRET_ACCESS_KEY_SEOUL }} 31 | GITHUB_TOKEN: ${{ secrets.BYTELEGENDBOT_TOKEN }} 32 | -------------------------------------------------------------------------------- /.github/workflows/update-star-distribution.yml: -------------------------------------------------------------------------------- 1 | name: update-star-distribution 2 | on: 3 | workflow_dispatch: 4 | schedule: 5 | - cron: '54 22 * * *' 6 | 7 | jobs: 8 | deploy: 9 | name: Update star distribution 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v3 13 | with: 14 | repository: ByteLegend/ByteLegend 15 | submodules: recursive 16 | token: ${{ secrets.BYTELEGENDBOT_TOKEN }} 17 | - name: Gradle build 18 | uses: gradle/gradle-build-action@v2 19 | with: 20 | arguments: server:dal-dynamodb:updateStarDistribution -Ddynamodb.serverLocation=Seoul -Ddynamodb.accessKeyId=${{ secrets.DYNAMODB_ADMIN_ACCESS_KEY_ID }} -Ddynamodb.secretAccessKey=${{ secrets.DYNAMODB_ADMIN_SECRET_ACCESS_KEY }} -DagreePublicBuildScanTermOfService=yes 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore Gradle project-specific cache directory 2 | .gradle 3 | 4 | # Ignore Gradle build output directory 5 | build/ 6 | .idea/ 7 | out/ 8 | *.log 9 | *.tiled-session 10 | *.tiled-project 11 | kotlin-js-store/ 12 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "server"] 2 | path = server 3 | url = https://github.com/ByteLegend/server 4 | [submodule "game-data"] 5 | path = game-data 6 | url = https://github.com/ByteLegend/game-data 7 | [submodule "github1s"] 8 | path = github1s 9 | url = https://github.com/ByteLegend/github1s 10 | -------------------------------------------------------------------------------- /.markdownlint.yaml: -------------------------------------------------------------------------------- 1 | default: true 2 | 3 | # MD013/line-length - Line length 4 | MD013: 5 | # Number of characters 6 | line_length: 8120 7 | 8 | # MD025/single-title/single-h1 - Multiple top-level headings in the same document 9 | MD025: false 10 | 11 | # MD033/no-inline-html - Inline HTML 12 | MD033: 13 | # Allowed elements 14 | allowed_elements: 15 | - details 16 | - summary 17 | 18 | # MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading 19 | MD041: 20 | # Heading level 21 | level: 1 22 | -------------------------------------------------------------------------------- /Pitfalls.md: -------------------------------------------------------------------------------- 1 | # 2021-07-14 2 | 3 | - Try to use `echarts-for-react`: 4 | - `echarts-for-reacts` depends on `tslib`, which introduces 1M+ extra distribution size (1.7M->2.7M) 5 | - It's difficult to construct a complex native JS object in kotlin 6 | -------------------------------------------------------------------------------- /buildSrc/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | -------------------------------------------------------------------------------- /client/client.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | subprojects { 17 | repositories { 18 | maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-js-wrappers/") 19 | maven("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven") 20 | 21 | mavenCentral() 22 | jcenter() 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /client/common/src/main/kotlin/com/bytelegend/app/client/ui/bootstrap/BootstrapButton.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @file:JsModule("react-bootstrap/Button") 17 | @file:JsNonModule 18 | 19 | package com.bytelegend.app.client.ui.bootstrap 20 | 21 | import react.ElementType 22 | 23 | @JsName("default") 24 | external val BootstrapButton: ElementType<BootstrapButtonProps> 25 | -------------------------------------------------------------------------------- /client/common/src/main/kotlin/com/bytelegend/app/client/ui/bootstrap/BootstrapCardComponents.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.client.ui.bootstrap 17 | 18 | import react.ElementType 19 | import react.Props 20 | 21 | val BootstrapCardHeader: ElementType<Props> = BootstrapCard.asDynamic().Header 22 | val BootstrapCardBody: ElementType<Props> = BootstrapCard.asDynamic().Body 23 | -------------------------------------------------------------------------------- /client/common/src/main/kotlin/com/bytelegend/app/client/ui/bootstrap/ExtraClassAwareProps.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.client.ui.bootstrap 17 | 18 | import react.Props 19 | 20 | external interface ExtraClassAwareProps : Props { 21 | var className: String 22 | } 23 | -------------------------------------------------------------------------------- /client/game-AlgorithmIsland/game-AlgorithmIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-AlgorithmIsland/src/main/kotlin/AlgorithmIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import com.bytelegend.app.client.api.GameRuntime 18 | import kotlinx.browser.window 19 | 20 | val gameRuntime = window.asDynamic().gameRuntime.unsafeCast<GameRuntime>() 21 | 22 | fun main() { 23 | gameRuntime.sceneContainer.getSceneById("AlgorithmIsland").apply { 24 | objects { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/game-DataStructureIsland/game-DataStructureIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-DataStructureIsland/src/main/kotlin/DataStructureIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import com.bytelegend.app.client.api.GameRuntime 18 | import kotlinx.browser.window 19 | 20 | val gameRuntime = window.asDynamic().gameRuntime.unsafeCast<GameRuntime>() 21 | 22 | fun main() { 23 | gameRuntime.sceneContainer.getSceneById("DataStructureIsland").apply { 24 | objects { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/game-DatabaseIsland/game-DatabaseIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-DatabaseIsland/src/main/kotlin/DatabaseIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import com.bytelegend.app.client.api.GameRuntime 18 | import kotlinx.browser.window 19 | 20 | val gameRuntime = window.asDynamic().gameRuntime.unsafeCast<GameRuntime>() 21 | 22 | fun main() { 23 | gameRuntime.sceneContainer.getSceneById("DatabaseIsland").apply { 24 | objects { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/game-GitIsland/game-GitIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | 20 | dependencies { 21 | implementation(project(":client:game-utils")) 22 | } 23 | -------------------------------------------------------------------------------- /client/game-GopherIsland/game-GopherIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | 20 | dependencies { 21 | implementation(project(":client:game-utils")) 22 | } 23 | -------------------------------------------------------------------------------- /client/game-GopherIsland/src/main/kotlin/GradleIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | fun main() {} 17 | -------------------------------------------------------------------------------- /client/game-GradleIsland/game-GradleIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | 20 | dependencies { 21 | implementation(project(":client:game-utils")) 22 | } 23 | -------------------------------------------------------------------------------- /client/game-GradleIsland/src/main/kotlin/GradleIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | fun main() {} 17 | -------------------------------------------------------------------------------- /client/game-JavaIsland/game-JavaIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | 20 | dependencies { 21 | "implementation"(project(":client:game-utils")) 22 | } 23 | -------------------------------------------------------------------------------- /client/game-JavaIslandCommentDungeon/game-JavaIslandCommentDungeon.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | 20 | dependencies { 21 | implementation(project(":client:game-utils")) 22 | } 23 | -------------------------------------------------------------------------------- /client/game-JavaIslandConcurrencyDungeon/game-JavaIslandConcurrencyDungeon.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-JavaIslandConcurrencyDungeon/src/main/kotlin/JavaIslandConcurrencyDungeon.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import com.bytelegend.app.client.api.GameRuntime 18 | import kotlinx.browser.window 19 | 20 | val gameRuntime = window.asDynamic().gameRuntime.unsafeCast<GameRuntime>() 21 | 22 | fun main() { 23 | gameRuntime.sceneContainer.getSceneById("JavaIslandConcurrencyDungeon").apply { 24 | objects { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/game-JavaIslandDebuggerDungeon/game-JavaIslandDebuggerDungeon.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | 20 | dependencies { 21 | implementation(project(":client:game-utils")) 22 | } 23 | -------------------------------------------------------------------------------- /client/game-JavaIslandMavenDungeon/game-JavaIslandMavenDungeon.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-JavaIslandMavenDungeon/src/main/kotlin/JavaIslandMavenDungeon.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import com.bytelegend.app.client.api.GameRuntime 18 | import kotlinx.browser.window 19 | 20 | val gameRuntime = window.asDynamic().gameRuntime.unsafeCast<GameRuntime>() 21 | 22 | fun main() { 23 | gameRuntime.sceneContainer.getSceneById("JavaIslandMavenDungeon").apply { 24 | objects { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/game-JavaIslandNewbieVillagePub/game-JavaIslandNewbieVillagePub.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | dependencies { 20 | implementation(project(":client:game-utils")) 21 | } 22 | -------------------------------------------------------------------------------- /client/game-JavaIslandSeniorJavaCastle/game-JavaIslandSeniorJavaCastle.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-JavaIslandSpringDungeon/game-JavaIslandSpringDungeon.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-JavaIslandSpringDungeon/src/main/kotlin/JavaIslandSpringDungeon.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import com.bytelegend.app.client.api.GameRuntime 18 | import kotlinx.browser.window 19 | 20 | val gameRuntime = window.asDynamic().gameRuntime.unsafeCast<GameRuntime>() 21 | 22 | fun main() { 23 | gameRuntime.sceneContainer.getSceneById("JavaIslandSpringDungeon").apply { 24 | objects { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/game-KotlinIsland/game-GradleIsland/game-GradleIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | kotlin("js") 18 | id("configure-ktlint") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-api")) 23 | } 24 | 25 | kotlin { 26 | js { 27 | browser { 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /client/game-KotlinIsland/game-GradleIsland/src/main/kotlin/GradleIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | fun main() {} 17 | -------------------------------------------------------------------------------- /client/game-KotlinIsland/game-KotlinIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | 20 | dependencies { 21 | implementation(project(":client:game-utils")) 22 | } 23 | -------------------------------------------------------------------------------- /client/game-PythonIsland/game-PythonIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | 20 | dependencies { 21 | implementation(project(":client:game-utils")) 22 | } 23 | -------------------------------------------------------------------------------- /client/game-PythonIsland/src/main/kotlin/GradleIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | fun main() {} 17 | -------------------------------------------------------------------------------- /client/game-ShellIsland/game-ShellIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-ShellIsland/src/main/kotlin/ShellIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import com.bytelegend.app.client.api.GameRuntime 18 | import kotlinx.browser.window 19 | 20 | val gameRuntime = window.asDynamic().gameRuntime.unsafeCast<GameRuntime>() 21 | 22 | fun main() { 23 | gameRuntime.sceneContainer.getSceneById("ShellIsland").apply { 24 | objects { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/game-WebIsland/game-WebIsland.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id("configure-kotlin-js") 19 | } 20 | 21 | dependencies { 22 | implementation(project(":client:game-utils")) 23 | } 24 | -------------------------------------------------------------------------------- /client/game-WebIsland/src/main/kotlin/WebIsland.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import com.bytelegend.app.client.api.GameRuntime 18 | import kotlinx.browser.window 19 | 20 | val gameRuntime = window.asDynamic().gameRuntime.unsafeCast<GameRuntime>() 21 | 22 | fun main() { 23 | gameRuntime.sceneContainer.getSceneById("WebIsland").apply { 24 | objects { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/game-api/src/main/kotlin/com/bytelegend/app/client/api/HasBouncingTitle.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.bytelegend.app.client.api 18 | 19 | import react.ChildrenBuilder 20 | 21 | interface HasBouncingTitle { 22 | var bouncingTitleEnabled: Boolean 23 | fun renderBouncingTitle(builder: ChildrenBuilder) 24 | } 25 | -------------------------------------------------------------------------------- /client/game-page/src/main/kotlin/com/bytelegend/client/app/engine/GameIds.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.client.app.engine 17 | 18 | fun characterObjectId() { 19 | } 20 | fun chracterSpriteId() { 21 | } 22 | -------------------------------------------------------------------------------- /client/game-page/src/main/kotlin/com/bytelegend/client/app/external/Confetti.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @file:JsModule("canvas-confetti") 17 | @file:JsNonModule 18 | 19 | package com.bytelegend.client.app.external 20 | 21 | @JsName("default") 22 | external fun confetti(options: dynamic) 23 | -------------------------------------------------------------------------------- /client/game-page/webpack.config.d/assert-fallback.js: -------------------------------------------------------------------------------- 1 | // /* 2 | // Module not found: Error: Can't resolve 'assert' in '/Users/zhb/Projects/ByteLegend/build/js/node_modules/micromark-core-commonmark/dev/lib' 3 | // 4 | // BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. 5 | // This is no longer the case. Verify if you need this module and configure a polyfill for it. 6 | // 7 | // If you want to include a polyfill, you need to: 8 | // - add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }' 9 | // - install 'assert' 10 | // If you don't want to include a polyfill, you can use an empty module like this: 11 | // resolve.fallback: { "assert": false } 12 | // 13 | // */ 14 | // config.resolve.fallback = {"assert": require.resolve("assert")} 15 | -------------------------------------------------------------------------------- /client/game-utils/game-utils.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | plugins { 17 | id("configure-kotlin-js") 18 | } 19 | -------------------------------------------------------------------------------- /docs/images/add-or-fix-i18n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/add-or-fix-i18n.png -------------------------------------------------------------------------------- /docs/images/add-tutorials-to-yaml-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/add-tutorials-to-yaml-file.png -------------------------------------------------------------------------------- /docs/images/create-tutorials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/create-tutorials.png -------------------------------------------------------------------------------- /docs/images/index-page-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/index-page-en.png -------------------------------------------------------------------------------- /docs/images/index-page-zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/index-page-zh.png -------------------------------------------------------------------------------- /docs/images/open-i18n-yaml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/open-i18n-yaml.png -------------------------------------------------------------------------------- /docs/images/qq-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/qq-group.png -------------------------------------------------------------------------------- /docs/images/run-local-development-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/run-local-development-server.png -------------------------------------------------------------------------------- /docs/images/same-name-folder-with-yaml-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/same-name-folder-with-yaml-file.png -------------------------------------------------------------------------------- /docs/images/search-in-game-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/search-in-game-data.png -------------------------------------------------------------------------------- /docs/images/switch-then-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/docs/images/switch-then-edit.png -------------------------------------------------------------------------------- /docs/zh_hans/create-new-game-map.md: -------------------------------------------------------------------------------- 1 | # 创建新的游戏地图 2 | 3 | 我们使用[`Tiled`](https://www.mapeditor.org/)维护游戏的地图。 4 | 5 | 要创建新的游戏地图,您需要: 6 | 7 | 1. 运行`./gradlew utils:createNewMap -DmapId=<mapId> -DmapGridWidth=<mapWidth> -DmapGridHeight=<mapHeight>` 8 | 2. 编辑`game-data/hierarchy.yml`,添加新地图。 9 | 3. 编辑`settings.gradle.kts`,include新的`client/game-<mapId>`子项目. 10 | 4. 在`game-data/i18n-common.yml`中加入: 11 | 12 | ```yaml 13 | - id: «YourNewMapId» 14 | data: 15 | EN: «The display name of that map» 16 | ``` 17 | 18 | 注意您必须至少提供英文版的文本。 19 | 20 | 5. 点击IDEA的Gradle window里的"Reload All Gradle Projects"。 21 | 22 | 现在您应该能够: 23 | 24 | - 在本机上启动游戏并且在地图选择下拉菜单中看到新的地图。 25 | - 在`Tiled`编辑生成的地图文件`resources/raw/maps/«mapId»/«mapId».json`。请先阅读[游戏地图贡献者指南](https://github.com/ByteLegend/ByteLegend/blob/master/docs/zh_hans/game-map-contributor-guide.md)。 26 | - 编辑`client/game-«YourNewMap»`中的游戏脚本。 27 | 28 | ## TBD 29 | -------------------------------------------------------------------------------- /docs/zh_hans/game-tutorials-contributor-guide.md: -------------------------------------------------------------------------------- 1 | # 游戏教程贡献者指南 2 | 3 | 进入**游戏挑战页面**,切换到**教程**选项卡,点击**贡献更好的教程**。如果提示 fork 项目,请点击 fork。 4 | 5 | 在`missions`的同级目录中打开`docs`目录(如果没有请创建),在其中创建与`YAML`文件名相同的目录。 6 | 7 |  8 | 9 | 在新创建的目录中创建**对应的教程文档**,教程文档后请加入**语言代码**。图片文件请放入与文件名对应的目录中,如果为各语言通用图片,可不加入**语言代码**。 10 | 11 | ⚠️ 注意:图片 URL 建议设置为对应的`https://raw.githubusercontent.com`链接。 12 | 13 |  14 | 15 | 返回`YAML`文件,在`tutorials`节点中添加新的**教程**。 16 | 17 |  18 | 19 | 下面列举几个已有的**类型**(type): 20 | 21 | | 文本 | 对应值 | 22 | | -------------- | ------------- | 23 | | text/markdown | Markdown 文本 | 24 | | video/youtube | YouTube 视频 | 25 | | video/bilibili | Bilibili 视频 | 26 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /livestream-data.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "daily-20210926", 4 | "title": "日常开发直播", 5 | "url": "https://live.bilibili.com/23554645", 6 | "startEpochMs": 1632632400000, 7 | "endEpochMs": 1632650400000 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /resources/cooked/audio/GoldSwordAudio.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/GoldSwordAudio.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/SwingWeapon.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/SwingWeapon.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/TeslaCoilExplosion.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/TeslaCoilExplosion.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/ThunderCurrentAudio.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/ThunderCurrentAudio.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/achievement.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/achievement.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/coin-loss.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/coin-loss.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/coin.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/coin.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/disappear.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/disappear.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/forest.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/forest.ogg -------------------------------------------------------------------------------- /resources/cooked/audio/popup.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/popup.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/starfly.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/starfly.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/tada.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/tada.mp3 -------------------------------------------------------------------------------- /resources/cooked/audio/wilhelm-scream.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/audio/wilhelm-scream.wav -------------------------------------------------------------------------------- /resources/cooked/img/achievement/first-star-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/achievement/first-star-medal.png -------------------------------------------------------------------------------- /resources/cooked/img/achievement/git-amulet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/achievement/git-amulet.png -------------------------------------------------------------------------------- /resources/cooked/img/achievement/gold-git-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/achievement/gold-git-medal.png -------------------------------------------------------------------------------- /resources/cooked/img/achievement/silver-git-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/achievement/silver-git-medal.png -------------------------------------------------------------------------------- /resources/cooked/img/attribution/google-translate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/attribution/google-translate.png -------------------------------------------------------------------------------- /resources/cooked/img/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/icon/favicon.ico -------------------------------------------------------------------------------- /resources/cooked/img/icon/server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/icon/server.png -------------------------------------------------------------------------------- /resources/cooked/img/item/coffee-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/item/coffee-icon.png -------------------------------------------------------------------------------- /resources/cooked/img/item/dagger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/item/dagger.png -------------------------------------------------------------------------------- /resources/cooked/img/item/door-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/item/door-key.png -------------------------------------------------------------------------------- /resources/cooked/img/item/gold-sword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/item/gold-sword.png -------------------------------------------------------------------------------- /resources/cooked/img/item/iron-sword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/item/iron-sword.png -------------------------------------------------------------------------------- /resources/cooked/img/item/key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/item/key.png -------------------------------------------------------------------------------- /resources/cooked/img/item/silver-sword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/item/silver-sword.png -------------------------------------------------------------------------------- /resources/cooked/img/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/logo/logo.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/avatar-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/avatar-border.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/border.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/help.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/hero.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/item-btn-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/item-btn-pressed.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/item-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/item-btn.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/login.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/menu-about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/menu-about.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/menu-credits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/menu-credits.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/menu-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/menu-github.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/menu-help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/menu-help.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/menu-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/menu-notification.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/menu-ranking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/menu-ranking.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/menu-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/menu-settings.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/minimap-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/minimap-border.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/minimap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/minimap.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/speech-bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/speech-bubble.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/tutorial-locked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/tutorial-locked.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/tutorial-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/tutorial-open.png -------------------------------------------------------------------------------- /resources/cooked/img/ui/webeditor-button-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/cooked/img/ui/webeditor-button-bg.png -------------------------------------------------------------------------------- /resources/cooked/misc/achievement-metadata.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "iconId": "bronze-git-medal", 4 | "iconUrl": "/img/achievement/git-amulet.png", 5 | "nameTextId": "git-amulet-name", 6 | "descTextId": "git-amulet-desc" 7 | }, 8 | { 9 | "iconId": "silver-git-medal", 10 | "iconUrl": "/img/achievement/silver-git-medal.png", 11 | "nameTextId": "silver-git-medal-name", 12 | "descTextId": "silver-git-medal-desc" 13 | }, 14 | { 15 | "iconId": "gold-git-medal", 16 | "iconUrl": "/img/achievement/gold-git-medal.png", 17 | "nameTextId": "gold-git-medal-name", 18 | "descTextId": "gold-git-medal-desc" 19 | }, 20 | { 21 | "iconId": "first-star-medal", 22 | "iconUrl": "/img/achievement/first-star-medal.png", 23 | "nameTextId": "first-star-medal-name", 24 | "descTextId": "first-star-medal-desc" 25 | } 26 | ] 27 | -------------------------------------------------------------------------------- /resources/raw/animation-jsons/GoldSwordAttack.json: -------------------------------------------------------------------------------- 1 | { 2 | "columns" : 8, 3 | "image" : "../animations/GoldSwordAttack.png", 4 | "imageheight" : 211, 5 | "imagewidth" : 1600, 6 | "margin" : 0, 7 | "name" : "GoldSwordAttack", 8 | "tilecount" : 8, 9 | "tiledversion" : "1.7.2", 10 | "tileheight" : 211, 11 | "objectalignment" : "topleft", 12 | "tiles" : [ { 13 | "animation" : [ { 14 | "duration" : 500, 15 | "tileid" : 0 16 | }, { 17 | "duration" : 500, 18 | "tileid" : 1 19 | }, { 20 | "duration" : 500, 21 | "tileid" : 2 22 | }, { 23 | "duration" : 500, 24 | "tileid" : 3 25 | }, { 26 | "duration" : 500, 27 | "tileid" : 4 28 | }, { 29 | "duration" : 500, 30 | "tileid" : 5 31 | }, { 32 | "duration" : 500, 33 | "tileid" : 6 34 | }, { 35 | "duration" : 500, 36 | "tileid" : 7 37 | } ], 38 | "id" : 0 39 | } ], 40 | "tilewidth" : 200, 41 | "type" : "tileset", 42 | "version" : "1.6" 43 | } -------------------------------------------------------------------------------- /resources/raw/animation-jsons/KillEvil.json: -------------------------------------------------------------------------------- 1 | { 2 | "columns" : 7, 3 | "image" : "../animations/KillEvil.png", 4 | "imageheight" : 73, 5 | "imagewidth" : 700, 6 | "margin" : 0, 7 | "name" : "KillEvil", 8 | "tilecount" : 7, 9 | "tiledversion" : "1.7.2", 10 | "tileheight" : 73, 11 | "objectalignment" : "topleft", 12 | "tiles" : [ { 13 | "animation" : [ { 14 | "duration" : 500, 15 | "tileid" : 0 16 | }, { 17 | "duration" : 500, 18 | "tileid" : 1 19 | }, { 20 | "duration" : 500, 21 | "tileid" : 2 22 | }, { 23 | "duration" : 500, 24 | "tileid" : 3 25 | }, { 26 | "duration" : 500, 27 | "tileid" : 4 28 | }, { 29 | "duration" : 500, 30 | "tileid" : 5 31 | }, { 32 | "duration" : 500, 33 | "tileid" : 6 34 | } ], 35 | "id" : 0 36 | } ], 37 | "tilewidth" : 100, 38 | "type" : "tileset", 39 | "version" : "1.6" 40 | } -------------------------------------------------------------------------------- /resources/raw/animation-jsons/SilverSwordAttack.json: -------------------------------------------------------------------------------- 1 | { 2 | "columns" : 8, 3 | "image" : "../animations/SilverSwordAttack.png", 4 | "imageheight" : 247, 5 | "imagewidth" : 1600, 6 | "margin" : 0, 7 | "name" : "SilverSwordAttack", 8 | "tilecount" : 8, 9 | "tiledversion" : "1.7.2", 10 | "tileheight" : 247, 11 | "objectalignment" : "topleft", 12 | "tiles" : [ { 13 | "animation" : [ { 14 | "duration" : 500, 15 | "tileid" : 0 16 | }, { 17 | "duration" : 500, 18 | "tileid" : 1 19 | }, { 20 | "duration" : 500, 21 | "tileid" : 2 22 | }, { 23 | "duration" : 500, 24 | "tileid" : 3 25 | }, { 26 | "duration" : 500, 27 | "tileid" : 4 28 | }, { 29 | "duration" : 500, 30 | "tileid" : 5 31 | }, { 32 | "duration" : 500, 33 | "tileid" : 6 34 | }, { 35 | "duration" : 500, 36 | "tileid" : 7 37 | } ], 38 | "id" : 0 39 | } ], 40 | "tilewidth" : 200, 41 | "type" : "tileset", 42 | "version" : "1.6" 43 | } -------------------------------------------------------------------------------- /resources/raw/animation-jsons/ThunderCurrent.json: -------------------------------------------------------------------------------- 1 | { 2 | "columns" : 6, 3 | "image" : "../animations/ThunderCurrent.png", 4 | "imageheight" : 197, 5 | "imagewidth" : 600, 6 | "margin" : 0, 7 | "name" : "ThunderCurrent", 8 | "tilecount" : 6, 9 | "tiledversion" : "1.7.2", 10 | "tileheight" : 197, 11 | "objectalignment" : "topleft", 12 | "tiles" : [ { 13 | "animation" : [ { 14 | "duration" : 500, 15 | "tileid" : 0 16 | }, { 17 | "duration" : 500, 18 | "tileid" : 1 19 | }, { 20 | "duration" : 500, 21 | "tileid" : 2 22 | }, { 23 | "duration" : 500, 24 | "tileid" : 3 25 | }, { 26 | "duration" : 500, 27 | "tileid" : 4 28 | }, { 29 | "duration" : 500, 30 | "tileid" : 5 31 | } ], 32 | "id" : 0 33 | } ], 34 | "tilewidth" : 100, 35 | "type" : "tileset", 36 | "version" : "1.6" 37 | } 38 | -------------------------------------------------------------------------------- /resources/raw/animation-jsons/e-shock.json: -------------------------------------------------------------------------------- 1 | { 2 | "columns" : 8, 3 | "image" : "../animations/e-shock.png", 4 | "imageheight" : 62, 5 | "imagewidth" : 496, 6 | "margin" : 0, 7 | "name" : "e-shock", 8 | "tilecount" : 8, 9 | "tiledversion" : "1.7.2", 10 | "tileheight" : 62, 11 | "objectalignment" : "topleft", 12 | "tiles" : [ { 13 | "animation" : [ { 14 | "duration" : 500, 15 | "tileid" : 0 16 | }, { 17 | "duration" : 500, 18 | "tileid" : 1 19 | }, { 20 | "duration" : 500, 21 | "tileid" : 2 22 | }, { 23 | "duration" : 500, 24 | "tileid" : 3 25 | }, { 26 | "duration" : 500, 27 | "tileid" : 4 28 | }, { 29 | "duration" : 500, 30 | "tileid" : 5 31 | }, { 32 | "duration" : 500, 33 | "tileid" : 6 34 | }, { 35 | "duration" : 500, 36 | "tileid" : 7 37 | } ], 38 | "id" : 0 39 | } ], 40 | "tilewidth" : 62, 41 | "type" : "tileset", 42 | "version" : "1.6" 43 | } 44 | -------------------------------------------------------------------------------- /resources/raw/animations/GoldSwordAttack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/animations/GoldSwordAttack.png -------------------------------------------------------------------------------- /resources/raw/animations/IronSwordAttack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/animations/IronSwordAttack.png -------------------------------------------------------------------------------- /resources/raw/animations/KillEvil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/animations/KillEvil.png -------------------------------------------------------------------------------- /resources/raw/animations/SilverSwordAttack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/animations/SilverSwordAttack.png -------------------------------------------------------------------------------- /resources/raw/animations/TeslaCoilDestroyed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/animations/TeslaCoilDestroyed.png -------------------------------------------------------------------------------- /resources/raw/animations/ThunderCurrent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/animations/ThunderCurrent.png -------------------------------------------------------------------------------- /resources/raw/animations/e-shock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/animations/e-shock.png -------------------------------------------------------------------------------- /resources/raw/credits/credits.txt: -------------------------------------------------------------------------------- 1 | http://downloads.rpg-palace.com/details.php?id=103 -------------------------------------------------------------------------------- /resources/raw/design/bytelegend-logo (1).psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/bytelegend-logo (1).psd -------------------------------------------------------------------------------- /resources/raw/design/bytelegend-logo-ico.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/bytelegend-logo-ico.psd -------------------------------------------------------------------------------- /resources/raw/design/bytelegend-logo-small.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/bytelegend-logo-small.psd -------------------------------------------------------------------------------- /resources/raw/design/bytelegend-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/bytelegend-logo.png -------------------------------------------------------------------------------- /resources/raw/design/bytelegend-logo.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/bytelegend-logo.psd -------------------------------------------------------------------------------- /resources/raw/design/bytelegend-logo_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/bytelegend-logo_128x128.png -------------------------------------------------------------------------------- /resources/raw/design/bytelegend-logo_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/bytelegend-logo_512x512.png -------------------------------------------------------------------------------- /resources/raw/design/menu-github.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/menu-github.psd -------------------------------------------------------------------------------- /resources/raw/design/menu.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/menu.psd -------------------------------------------------------------------------------- /resources/raw/design/sea-animation.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/sea-animation.psd -------------------------------------------------------------------------------- /resources/raw/design/sea_animation_32x32.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/sea_animation_32x32.psd -------------------------------------------------------------------------------- /resources/raw/design/star.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/star.psd -------------------------------------------------------------------------------- /resources/raw/design/ui.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/design/ui.psd -------------------------------------------------------------------------------- /resources/raw/maps/README.md: -------------------------------------------------------------------------------- 1 | # Conventions regarding maps 2 | 3 | ```text 4 | rootProject/tiled/maps 5 | | 6 | |---- JavaIsland 7 | | |---- JavaIsland.json 8 | | |---- JavaIslandNewbieVillagePub.json 9 | | |---- JavaIslandDungeon.json 10 | | 11 | |---- GitIsland 12 | | |---- GitIsland.json 13 | ``` 14 | 15 | This means there are two "main" island: `JavaIsland` and `GitIsland`, on which there might be sub maps. 16 | 17 | This convention is used by: 18 | 19 | ## Resource processing in build 20 | 21 | There's one frontend subproject for each map(submap). For example, in the example above, there will be: 22 | 23 | ```text 24 | rootProject/client/ 25 | |----- game-JavaIsland 26 | |----- game-JavaIslandNewbieVillagePub 27 | |----- game-GitIsland 28 | ``` 29 | 30 | ## Backend server 31 | 32 | The hierarchy 33 | 34 | Backend server uses this information to render a tree-like dropdown box in the game. 35 | -------------------------------------------------------------------------------- /resources/raw/player-animations/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/1.png -------------------------------------------------------------------------------- /resources/raw/player-animations/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/10.png -------------------------------------------------------------------------------- /resources/raw/player-animations/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/100.png -------------------------------------------------------------------------------- /resources/raw/player-animations/101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/101.png -------------------------------------------------------------------------------- /resources/raw/player-animations/102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/102.png -------------------------------------------------------------------------------- /resources/raw/player-animations/103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/103.png -------------------------------------------------------------------------------- /resources/raw/player-animations/104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/104.png -------------------------------------------------------------------------------- /resources/raw/player-animations/105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/105.png -------------------------------------------------------------------------------- /resources/raw/player-animations/106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/106.png -------------------------------------------------------------------------------- /resources/raw/player-animations/107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/107.png -------------------------------------------------------------------------------- /resources/raw/player-animations/108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/108.png -------------------------------------------------------------------------------- /resources/raw/player-animations/109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/109.png -------------------------------------------------------------------------------- /resources/raw/player-animations/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/11.png -------------------------------------------------------------------------------- /resources/raw/player-animations/110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/110.png -------------------------------------------------------------------------------- /resources/raw/player-animations/111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/111.png -------------------------------------------------------------------------------- /resources/raw/player-animations/112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/112.png -------------------------------------------------------------------------------- /resources/raw/player-animations/113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/113.png -------------------------------------------------------------------------------- /resources/raw/player-animations/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/114.png -------------------------------------------------------------------------------- /resources/raw/player-animations/115.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/115.png -------------------------------------------------------------------------------- /resources/raw/player-animations/116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/116.png -------------------------------------------------------------------------------- /resources/raw/player-animations/117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/117.png -------------------------------------------------------------------------------- /resources/raw/player-animations/118.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/118.png -------------------------------------------------------------------------------- /resources/raw/player-animations/119.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/119.png -------------------------------------------------------------------------------- /resources/raw/player-animations/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/12.png -------------------------------------------------------------------------------- /resources/raw/player-animations/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/120.png -------------------------------------------------------------------------------- /resources/raw/player-animations/121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/121.png -------------------------------------------------------------------------------- /resources/raw/player-animations/122.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/122.png -------------------------------------------------------------------------------- /resources/raw/player-animations/123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/123.png -------------------------------------------------------------------------------- /resources/raw/player-animations/124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/124.png -------------------------------------------------------------------------------- /resources/raw/player-animations/125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/125.png -------------------------------------------------------------------------------- /resources/raw/player-animations/126.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/126.png -------------------------------------------------------------------------------- /resources/raw/player-animations/127.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/127.png -------------------------------------------------------------------------------- /resources/raw/player-animations/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/128.png -------------------------------------------------------------------------------- /resources/raw/player-animations/129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/129.png -------------------------------------------------------------------------------- /resources/raw/player-animations/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/13.png -------------------------------------------------------------------------------- /resources/raw/player-animations/130.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/130.png -------------------------------------------------------------------------------- /resources/raw/player-animations/131.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/131.png -------------------------------------------------------------------------------- /resources/raw/player-animations/132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/132.png -------------------------------------------------------------------------------- /resources/raw/player-animations/133.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/133.png -------------------------------------------------------------------------------- /resources/raw/player-animations/134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/134.png -------------------------------------------------------------------------------- /resources/raw/player-animations/135.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/135.png -------------------------------------------------------------------------------- /resources/raw/player-animations/136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/136.png -------------------------------------------------------------------------------- /resources/raw/player-animations/137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/137.png -------------------------------------------------------------------------------- /resources/raw/player-animations/138.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/138.png -------------------------------------------------------------------------------- /resources/raw/player-animations/139.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/139.png -------------------------------------------------------------------------------- /resources/raw/player-animations/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/14.png -------------------------------------------------------------------------------- /resources/raw/player-animations/140.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/140.png -------------------------------------------------------------------------------- /resources/raw/player-animations/141.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/141.png -------------------------------------------------------------------------------- /resources/raw/player-animations/142.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/142.png -------------------------------------------------------------------------------- /resources/raw/player-animations/143.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/143.png -------------------------------------------------------------------------------- /resources/raw/player-animations/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/144.png -------------------------------------------------------------------------------- /resources/raw/player-animations/145.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/145.png -------------------------------------------------------------------------------- /resources/raw/player-animations/146.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/146.png -------------------------------------------------------------------------------- /resources/raw/player-animations/147.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/147.png -------------------------------------------------------------------------------- /resources/raw/player-animations/148.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/148.png -------------------------------------------------------------------------------- /resources/raw/player-animations/149.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/149.png -------------------------------------------------------------------------------- /resources/raw/player-animations/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/15.png -------------------------------------------------------------------------------- /resources/raw/player-animations/150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/150.png -------------------------------------------------------------------------------- /resources/raw/player-animations/151.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/151.png -------------------------------------------------------------------------------- /resources/raw/player-animations/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/152.png -------------------------------------------------------------------------------- /resources/raw/player-animations/153.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/153.png -------------------------------------------------------------------------------- /resources/raw/player-animations/154.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/154.png -------------------------------------------------------------------------------- /resources/raw/player-animations/155.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/155.png -------------------------------------------------------------------------------- /resources/raw/player-animations/156.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/156.png -------------------------------------------------------------------------------- /resources/raw/player-animations/157.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/157.png -------------------------------------------------------------------------------- /resources/raw/player-animations/158.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/158.png -------------------------------------------------------------------------------- /resources/raw/player-animations/159.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/159.png -------------------------------------------------------------------------------- /resources/raw/player-animations/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/16.png -------------------------------------------------------------------------------- /resources/raw/player-animations/160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/160.png -------------------------------------------------------------------------------- /resources/raw/player-animations/161.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/161.png -------------------------------------------------------------------------------- /resources/raw/player-animations/162.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/162.png -------------------------------------------------------------------------------- /resources/raw/player-animations/163.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/163.png -------------------------------------------------------------------------------- /resources/raw/player-animations/164.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/164.png -------------------------------------------------------------------------------- /resources/raw/player-animations/165.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/165.png -------------------------------------------------------------------------------- /resources/raw/player-animations/166.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/166.png -------------------------------------------------------------------------------- /resources/raw/player-animations/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/167.png -------------------------------------------------------------------------------- /resources/raw/player-animations/168.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/168.png -------------------------------------------------------------------------------- /resources/raw/player-animations/169.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/169.png -------------------------------------------------------------------------------- /resources/raw/player-animations/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/17.png -------------------------------------------------------------------------------- /resources/raw/player-animations/170.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/170.png -------------------------------------------------------------------------------- /resources/raw/player-animations/171.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/171.png -------------------------------------------------------------------------------- /resources/raw/player-animations/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/172.png -------------------------------------------------------------------------------- /resources/raw/player-animations/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/173.png -------------------------------------------------------------------------------- /resources/raw/player-animations/174.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/174.png -------------------------------------------------------------------------------- /resources/raw/player-animations/175.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/175.png -------------------------------------------------------------------------------- /resources/raw/player-animations/176.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/176.png -------------------------------------------------------------------------------- /resources/raw/player-animations/177.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/177.png -------------------------------------------------------------------------------- /resources/raw/player-animations/178.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/178.png -------------------------------------------------------------------------------- /resources/raw/player-animations/179.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/179.png -------------------------------------------------------------------------------- /resources/raw/player-animations/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/18.png -------------------------------------------------------------------------------- /resources/raw/player-animations/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/180.png -------------------------------------------------------------------------------- /resources/raw/player-animations/181.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/181.png -------------------------------------------------------------------------------- /resources/raw/player-animations/182.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/182.png -------------------------------------------------------------------------------- /resources/raw/player-animations/183.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/183.png -------------------------------------------------------------------------------- /resources/raw/player-animations/184.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/184.png -------------------------------------------------------------------------------- /resources/raw/player-animations/185.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/185.png -------------------------------------------------------------------------------- /resources/raw/player-animations/186.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/186.png -------------------------------------------------------------------------------- /resources/raw/player-animations/187.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/187.png -------------------------------------------------------------------------------- /resources/raw/player-animations/188.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/188.png -------------------------------------------------------------------------------- /resources/raw/player-animations/189.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/189.png -------------------------------------------------------------------------------- /resources/raw/player-animations/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/19.png -------------------------------------------------------------------------------- /resources/raw/player-animations/190.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/190.png -------------------------------------------------------------------------------- /resources/raw/player-animations/191.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/191.png -------------------------------------------------------------------------------- /resources/raw/player-animations/192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/192.png -------------------------------------------------------------------------------- /resources/raw/player-animations/193.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/193.png -------------------------------------------------------------------------------- /resources/raw/player-animations/194.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/194.png -------------------------------------------------------------------------------- /resources/raw/player-animations/195.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/195.png -------------------------------------------------------------------------------- /resources/raw/player-animations/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/196.png -------------------------------------------------------------------------------- /resources/raw/player-animations/197.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/197.png -------------------------------------------------------------------------------- /resources/raw/player-animations/198.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/198.png -------------------------------------------------------------------------------- /resources/raw/player-animations/199.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/199.png -------------------------------------------------------------------------------- /resources/raw/player-animations/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/2.png -------------------------------------------------------------------------------- /resources/raw/player-animations/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/20.png -------------------------------------------------------------------------------- /resources/raw/player-animations/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/21.png -------------------------------------------------------------------------------- /resources/raw/player-animations/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/22.png -------------------------------------------------------------------------------- /resources/raw/player-animations/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/23.png -------------------------------------------------------------------------------- /resources/raw/player-animations/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/24.png -------------------------------------------------------------------------------- /resources/raw/player-animations/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/25.png -------------------------------------------------------------------------------- /resources/raw/player-animations/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/26.png -------------------------------------------------------------------------------- /resources/raw/player-animations/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/27.png -------------------------------------------------------------------------------- /resources/raw/player-animations/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/28.png -------------------------------------------------------------------------------- /resources/raw/player-animations/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/29.png -------------------------------------------------------------------------------- /resources/raw/player-animations/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/3.png -------------------------------------------------------------------------------- /resources/raw/player-animations/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/30.png -------------------------------------------------------------------------------- /resources/raw/player-animations/31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/31.png -------------------------------------------------------------------------------- /resources/raw/player-animations/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/32.png -------------------------------------------------------------------------------- /resources/raw/player-animations/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/33.png -------------------------------------------------------------------------------- /resources/raw/player-animations/34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/34.png -------------------------------------------------------------------------------- /resources/raw/player-animations/35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/35.png -------------------------------------------------------------------------------- /resources/raw/player-animations/36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/36.png -------------------------------------------------------------------------------- /resources/raw/player-animations/37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/37.png -------------------------------------------------------------------------------- /resources/raw/player-animations/38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/38.png -------------------------------------------------------------------------------- /resources/raw/player-animations/39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/39.png -------------------------------------------------------------------------------- /resources/raw/player-animations/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/4.png -------------------------------------------------------------------------------- /resources/raw/player-animations/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/40.png -------------------------------------------------------------------------------- /resources/raw/player-animations/41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/41.png -------------------------------------------------------------------------------- /resources/raw/player-animations/42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/42.png -------------------------------------------------------------------------------- /resources/raw/player-animations/43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/43.png -------------------------------------------------------------------------------- /resources/raw/player-animations/44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/44.png -------------------------------------------------------------------------------- /resources/raw/player-animations/45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/45.png -------------------------------------------------------------------------------- /resources/raw/player-animations/46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/46.png -------------------------------------------------------------------------------- /resources/raw/player-animations/47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/47.png -------------------------------------------------------------------------------- /resources/raw/player-animations/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/48.png -------------------------------------------------------------------------------- /resources/raw/player-animations/49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/49.png -------------------------------------------------------------------------------- /resources/raw/player-animations/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/5.png -------------------------------------------------------------------------------- /resources/raw/player-animations/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/50.png -------------------------------------------------------------------------------- /resources/raw/player-animations/51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/51.png -------------------------------------------------------------------------------- /resources/raw/player-animations/52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/52.png -------------------------------------------------------------------------------- /resources/raw/player-animations/53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/53.png -------------------------------------------------------------------------------- /resources/raw/player-animations/54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/54.png -------------------------------------------------------------------------------- /resources/raw/player-animations/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/55.png -------------------------------------------------------------------------------- /resources/raw/player-animations/56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/56.png -------------------------------------------------------------------------------- /resources/raw/player-animations/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/57.png -------------------------------------------------------------------------------- /resources/raw/player-animations/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/58.png -------------------------------------------------------------------------------- /resources/raw/player-animations/59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/59.png -------------------------------------------------------------------------------- /resources/raw/player-animations/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/6.png -------------------------------------------------------------------------------- /resources/raw/player-animations/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/60.png -------------------------------------------------------------------------------- /resources/raw/player-animations/61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/61.png -------------------------------------------------------------------------------- /resources/raw/player-animations/62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/62.png -------------------------------------------------------------------------------- /resources/raw/player-animations/63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/63.png -------------------------------------------------------------------------------- /resources/raw/player-animations/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/64.png -------------------------------------------------------------------------------- /resources/raw/player-animations/65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/65.png -------------------------------------------------------------------------------- /resources/raw/player-animations/66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/66.png -------------------------------------------------------------------------------- /resources/raw/player-animations/67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/67.png -------------------------------------------------------------------------------- /resources/raw/player-animations/68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/68.png -------------------------------------------------------------------------------- /resources/raw/player-animations/69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/69.png -------------------------------------------------------------------------------- /resources/raw/player-animations/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/7.png -------------------------------------------------------------------------------- /resources/raw/player-animations/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/70.png -------------------------------------------------------------------------------- /resources/raw/player-animations/71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/71.png -------------------------------------------------------------------------------- /resources/raw/player-animations/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/72.png -------------------------------------------------------------------------------- /resources/raw/player-animations/73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/73.png -------------------------------------------------------------------------------- /resources/raw/player-animations/74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/74.png -------------------------------------------------------------------------------- /resources/raw/player-animations/75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/75.png -------------------------------------------------------------------------------- /resources/raw/player-animations/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/76.png -------------------------------------------------------------------------------- /resources/raw/player-animations/77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/77.png -------------------------------------------------------------------------------- /resources/raw/player-animations/78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/78.png -------------------------------------------------------------------------------- /resources/raw/player-animations/79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/79.png -------------------------------------------------------------------------------- /resources/raw/player-animations/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/8.png -------------------------------------------------------------------------------- /resources/raw/player-animations/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/80.png -------------------------------------------------------------------------------- /resources/raw/player-animations/81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/81.png -------------------------------------------------------------------------------- /resources/raw/player-animations/82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/82.png -------------------------------------------------------------------------------- /resources/raw/player-animations/83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/83.png -------------------------------------------------------------------------------- /resources/raw/player-animations/84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/84.png -------------------------------------------------------------------------------- /resources/raw/player-animations/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/85.png -------------------------------------------------------------------------------- /resources/raw/player-animations/86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/86.png -------------------------------------------------------------------------------- /resources/raw/player-animations/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/87.png -------------------------------------------------------------------------------- /resources/raw/player-animations/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/88.png -------------------------------------------------------------------------------- /resources/raw/player-animations/89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/89.png -------------------------------------------------------------------------------- /resources/raw/player-animations/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/9.png -------------------------------------------------------------------------------- /resources/raw/player-animations/90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/90.png -------------------------------------------------------------------------------- /resources/raw/player-animations/91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/91.png -------------------------------------------------------------------------------- /resources/raw/player-animations/92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/92.png -------------------------------------------------------------------------------- /resources/raw/player-animations/93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/93.png -------------------------------------------------------------------------------- /resources/raw/player-animations/94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/94.png -------------------------------------------------------------------------------- /resources/raw/player-animations/95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/95.png -------------------------------------------------------------------------------- /resources/raw/player-animations/96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/96.png -------------------------------------------------------------------------------- /resources/raw/player-animations/97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/97.png -------------------------------------------------------------------------------- /resources/raw/player-animations/98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/98.png -------------------------------------------------------------------------------- /resources/raw/player-animations/99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/player-animations/99.png -------------------------------------------------------------------------------- /resources/raw/references/BoAs6CQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/BoAs6CQ.png -------------------------------------------------------------------------------- /resources/raw/references/QQ20201118-234336@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/QQ20201118-234336@2x.png -------------------------------------------------------------------------------- /resources/raw/references/big-village.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/big-village.jpg -------------------------------------------------------------------------------- /resources/raw/references/castle-ground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/castle-ground.png -------------------------------------------------------------------------------- /resources/raw/references/castle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/castle.png -------------------------------------------------------------------------------- /resources/raw/references/castle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/castle2.png -------------------------------------------------------------------------------- /resources/raw/references/center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/center.png -------------------------------------------------------------------------------- /resources/raw/references/great-wood-village.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/great-wood-village.jpg -------------------------------------------------------------------------------- /resources/raw/references/indoor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/indoor.png -------------------------------------------------------------------------------- /resources/raw/references/large-village.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/large-village.jpg -------------------------------------------------------------------------------- /resources/raw/references/midtownfarmsmap1_by_champgaming_d80ts23-fullview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/midtownfarmsmap1_by_champgaming_d80ts23-fullview.jpg -------------------------------------------------------------------------------- /resources/raw/references/moutain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/moutain.jpg -------------------------------------------------------------------------------- /resources/raw/references/palace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/palace.png -------------------------------------------------------------------------------- /resources/raw/references/smallvillage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/smallvillage.png -------------------------------------------------------------------------------- /resources/raw/references/town.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/town.jpg -------------------------------------------------------------------------------- /resources/raw/references/village.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/village.png -------------------------------------------------------------------------------- /resources/raw/references/worldmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/references/worldmap.png -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/BrowserQuest_32x32.json: -------------------------------------------------------------------------------- 1 | { "columns":20, 2 | "image":"..\/tilesets\/BrowserQuest_32x32.png", 3 | "imageheight":3232, 4 | "imagewidth":640, 5 | "margin":0, 6 | "name":"BrowserQuest_32x32", 7 | "spacing":0, 8 | "tilecount":2020, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/Misc_WallInteriorIcon_32x32.json: -------------------------------------------------------------------------------- 1 | { "columns":8, 2 | "image":"..\/tilesets\/Misc_WallInteriorIcon_32x32.png", 3 | "imageheight":4256, 4 | "imagewidth":256, 5 | "margin":0, 6 | "name":"Misc_WallInteriorIcon_32x32", 7 | "objectalignment":"topleft", 8 | "spacing":0, 9 | "tilecount":1064, 10 | "tiledversion":"1.7.2", 11 | "tileheight":32, 12 | "tiles":[ 13 | { 14 | "animation":[ 15 | { 16 | "duration":500, 17 | "tileid":862 18 | }, 19 | { 20 | "duration":500, 21 | "tileid":870 22 | }], 23 | "id":862 24 | }], 25 | "tilewidth":32, 26 | "type":"tileset", 27 | "version":"1.6" 28 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/Outside_CBlue.json: -------------------------------------------------------------------------------- 1 | { "columns":24, 2 | "image":"..\/tilesets\/Outside_CBlue.png", 3 | "imageheight":768, 4 | "imagewidth":768, 5 | "margin":0, 6 | "name":"Outside_CBlue", 7 | "spacing":0, 8 | "tilecount":576, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/RoyalAddOn.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/RoyalAddOn.png", 3 | "imageheight":1280, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"RoyalAddOn", 7 | "objectalignment":"topleft", 8 | "spacing":0, 9 | "tilecount":640, 10 | "tiledversion":"1.7.2", 11 | "tileheight":32, 12 | "tilewidth":32, 13 | "type":"tileset", 14 | "version":"1.6" 15 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/TileB_32x32.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/TileB_32x32.png", 3 | "imageheight":512, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"TileB_32x32", 7 | "spacing":0, 8 | "tilecount":256, 9 | "tiledversion":"1.7.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":"1.6" 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/Tileset.json: -------------------------------------------------------------------------------- 1 | { "columns":32, 2 | "image":"..\/tilesets\/Tileset.png", 3 | "imageheight":2016, 4 | "imagewidth":1024, 5 | "margin":0, 6 | "name":"Tileset", 7 | "spacing":0, 8 | "tilecount":2016, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/autumn.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/autumn.png", 3 | "imageheight":512, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"autumn", 7 | "spacing":0, 8 | "tilecount":256, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/big-village.json: -------------------------------------------------------------------------------- 1 | { "columns":40, 2 | "image":"..\/tilesets\/big-village.jpg", 3 | "imageheight":5120, 4 | "imagewidth":1280, 5 | "margin":0, 6 | "name":"big-village", 7 | "spacing":0, 8 | "tilecount":6400, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/blood-letter-number.json: -------------------------------------------------------------------------------- 1 | { "columns":12, 2 | "image":"..\/tilesets\/blood-letter-number.png", 3 | "imageheight":256, 4 | "imagewidth":384, 5 | "margin":0, 6 | "name":"blood-letter-number", 7 | "spacing":0, 8 | "tilecount":96, 9 | "tiledversion":"1.7.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":"1.6" 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/castle.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/castle.png", 3 | "imageheight":512, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"castle", 7 | "spacing":0, 8 | "tilecount":256, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/castle2.json: -------------------------------------------------------------------------------- 1 | { "columns":15, 2 | "image":"..\/tilesets\/castle2.png", 3 | "imageheight":256, 4 | "imagewidth":480, 5 | "margin":0, 6 | "name":"castle2", 7 | "spacing":0, 8 | "tilecount":120, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/castle5.json: -------------------------------------------------------------------------------- 1 | { "columns":15, 2 | "image":"..\/tilesets\/castle5.png", 3 | "imageheight":256, 4 | "imagewidth":480, 5 | "margin":0, 6 | "name":"castle5", 7 | "spacing":0, 8 | "tilecount":120, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/colorful-tree-flowers.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/colorful-tree-flowers.png", 3 | "imageheight":512, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"colorful-tree-flowers", 7 | "spacing":0, 8 | "tilecount":256, 9 | "tiledversion":"1.5.0", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.5 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/dungeon-furniture-skeleton.json: -------------------------------------------------------------------------------- 1 | { "columns":8, 2 | "image":"..\/tilesets\/dungeon-furniture-skeleton.png", 3 | "imageheight":11000, 4 | "imagewidth":256, 5 | "margin":0, 6 | "name":"dungeon-furniture-skeleton", 7 | "spacing":0, 8 | "tilecount":2744, 9 | "tiledversion":"1.7.1", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":"1.6" 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/gems.json: -------------------------------------------------------------------------------- 1 | { "columns":19, 2 | "image":"..\/tilesets\/gems.png", 3 | "imageheight":288, 4 | "imagewidth":624, 5 | "margin":0, 6 | "name":"gems", 7 | "spacing":0, 8 | "tilecount":171, 9 | "tiledversion":"1.7.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":"1.6" 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/golang-logo.json: -------------------------------------------------------------------------------- 1 | { "columns":50, 2 | "image":"..\/tilesets\/golang-logo.png", 3 | "imageheight":1600, 4 | "imagewidth":1600, 5 | "margin":0, 6 | "name":"golang-logo", 7 | "spacing":0, 8 | "tilecount":2500, 9 | "tiledversion":"1.5.0", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.5 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/gradle-logo.json: -------------------------------------------------------------------------------- 1 | { "columns":50, 2 | "image":"..\/tilesets\/gradle-logo.png", 3 | "imageheight":1600, 4 | "imagewidth":1600, 5 | "margin":0, 6 | "name":"gradle-logo", 7 | "spacing":0, 8 | "tilecount":2500, 9 | "tiledversion":"1.5.0", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.5 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/huge-tileset.json: -------------------------------------------------------------------------------- 1 | { "columns":63, 2 | "image":"..\/tilesets\/huge-tileset.png", 3 | "imageheight":1088, 4 | "imagewidth":2016, 5 | "margin":0, 6 | "name":"huge-tileset", 7 | "spacing":0, 8 | "tilecount":2142, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/kotlin-island.json: -------------------------------------------------------------------------------- 1 | { "columns":50, 2 | "image":"..\/tilesets\/kotlin-island.png", 3 | "imageheight":1600, 4 | "imagewidth":1600, 5 | "margin":0, 6 | "name":"kotlin-island", 7 | "spacing":0, 8 | "tilecount":2500, 9 | "tiledversion":"1.5.0", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.5 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/misc1.json: -------------------------------------------------------------------------------- 1 | { "columns":8, 2 | "image":"..\/tilesets\/misc1.png", 3 | "imageheight":6176, 4 | "imagewidth":256, 5 | "margin":0, 6 | "name":"misc1", 7 | "spacing":0, 8 | "tilecount":1544, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/misc3.json: -------------------------------------------------------------------------------- 1 | { "columns":8, 2 | "image":"..\/tilesets\/misc3.png", 3 | "imageheight":4992, 4 | "imagewidth":256, 5 | "margin":0, 6 | "name":"misc3", 7 | "spacing":0, 8 | "tilecount":1248, 9 | "tiledversion":"1.5.0", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.5 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/misc5.json: -------------------------------------------------------------------------------- 1 | { "columns":8, 2 | "image":"..\/tilesets\/misc5.png", 3 | "imageheight":4832, 4 | "imagewidth":256, 5 | "margin":0, 6 | "name":"misc5", 7 | "spacing":0, 8 | "tilecount":1208, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/misc7.json: -------------------------------------------------------------------------------- 1 | { "columns":8, 2 | "image":"..\/tilesets\/misc7.png", 3 | "imageheight":1952, 4 | "imagewidth":256, 5 | "margin":0, 6 | "name":"misc7", 7 | "spacing":0, 8 | "tilecount":488, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/mountain_landscape.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/mountain_landscape.png", 3 | "imageheight":512, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"mountain_landscape", 7 | "spacing":0, 8 | "tilecount":256, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/oasis-body.json: -------------------------------------------------------------------------------- 1 | { "columns":6, 2 | "image":"..\/tilesets\/oasis-body.png", 3 | "imageheight":256, 4 | "imagewidth":192, 5 | "margin":0, 6 | "name":"oasis-body", 7 | "spacing":0, 8 | "tilecount":48, 9 | "tiledversion":"1.7.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":"1.6" 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/pub-interior.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/pub-interior.png", 3 | "imageheight":512, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"pub-interior", 7 | "spacing":0, 8 | "tilecount":256, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/pub-long-table.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/pub-long-table.png", 3 | "imageheight":512, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"pub-long-table", 7 | "spacing":0, 8 | "tilecount":256, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/python-logo.json: -------------------------------------------------------------------------------- 1 | { "columns":50, 2 | "image":"..\/tilesets\/python-logo.png", 3 | "imageheight":1600, 4 | "imagewidth":1600, 5 | "margin":0, 6 | "name":"python-logo", 7 | "spacing":0, 8 | "tilecount":2500, 9 | "tiledversion":"1.5.0", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.5 14 | } -------------------------------------------------------------------------------- /resources/raw/tileset-jsons/restaurant-crate.json: -------------------------------------------------------------------------------- 1 | { "columns":16, 2 | "image":"..\/tilesets\/restaurant-crate.png", 3 | "imageheight":512, 4 | "imagewidth":512, 5 | "margin":0, 6 | "name":"restaurant-crate", 7 | "spacing":0, 8 | "tilecount":576, 9 | "tiledversion":"1.4.2", 10 | "tileheight":32, 11 | "tilewidth":32, 12 | "type":"tileset", 13 | "version":1.4 14 | } -------------------------------------------------------------------------------- /resources/raw/tilesets/BrowserQuest_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/BrowserQuest_32x32.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Crystal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Crystal.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Flame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Flame.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Furniture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Furniture.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Hexagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Hexagram.png -------------------------------------------------------------------------------- /resources/raw/tilesets/JavaIslandNewbieVillageOldMan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/JavaIslandNewbieVillageOldMan.png -------------------------------------------------------------------------------- /resources/raw/tilesets/JavaIslandNewbieVillagePubBartender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/JavaIslandNewbieVillagePubBartender.png -------------------------------------------------------------------------------- /resources/raw/tilesets/JavaIslandNewbieVillagePubGirl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/JavaIslandNewbieVillagePubGirl.png -------------------------------------------------------------------------------- /resources/raw/tilesets/JavaIslandNewbieVillagePubGuard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/JavaIslandNewbieVillagePubGuard.png -------------------------------------------------------------------------------- /resources/raw/tilesets/JavaIslandNewbieVillagePubTestEngineer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/JavaIslandNewbieVillagePubTestEngineer.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Misc_WallInteriorIcon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Misc_WallInteriorIcon_32x32.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Outside_CAqua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Outside_CAqua.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Outside_CBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Outside_CBlue.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Outside_CGold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Outside_CGold.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Outside_CGreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Outside_CGreen.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Outside_CLime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Outside_CLime.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Outside_CPink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Outside_CPink.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Outside_CPurple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Outside_CPurple.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Outside_CTurq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Outside_CTurq.png -------------------------------------------------------------------------------- /resources/raw/tilesets/RoyalAddOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/RoyalAddOn.png -------------------------------------------------------------------------------- /resources/raw/tilesets/TeslaCoil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/TeslaCoil.png -------------------------------------------------------------------------------- /resources/raw/tilesets/TeslaCoilAttack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/TeslaCoilAttack.png -------------------------------------------------------------------------------- /resources/raw/tilesets/TileB_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/TileB_32x32.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Tileset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Tileset.png -------------------------------------------------------------------------------- /resources/raw/tilesets/WaterFall_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/WaterFall_32x32.png -------------------------------------------------------------------------------- /resources/raw/tilesets/Water_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/Water_32x32.png -------------------------------------------------------------------------------- /resources/raw/tilesets/arab-palace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/arab-palace.png -------------------------------------------------------------------------------- /resources/raw/tilesets/autumn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/autumn.png -------------------------------------------------------------------------------- /resources/raw/tilesets/beds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/beds.png -------------------------------------------------------------------------------- /resources/raw/tilesets/big-village.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/big-village.jpg -------------------------------------------------------------------------------- /resources/raw/tilesets/blood-letter-number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/blood-letter-number.png -------------------------------------------------------------------------------- /resources/raw/tilesets/book-bottle-coffee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/book-bottle-coffee.png -------------------------------------------------------------------------------- /resources/raw/tilesets/bulletin-wanted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/bulletin-wanted.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle-exterior.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle-exterior.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle-exterior2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle-exterior2.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle2-s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle2-s.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle2.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle3.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle4.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle5.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle6.png -------------------------------------------------------------------------------- /resources/raw/tilesets/castle7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/castle7.png -------------------------------------------------------------------------------- /resources/raw/tilesets/christmas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/christmas.png -------------------------------------------------------------------------------- /resources/raw/tilesets/colorful-tree-flowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/colorful-tree-flowers.png -------------------------------------------------------------------------------- /resources/raw/tilesets/doors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/doors.png -------------------------------------------------------------------------------- /resources/raw/tilesets/doors2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/doors2.png -------------------------------------------------------------------------------- /resources/raw/tilesets/dungeon-furniture-skeleton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/dungeon-furniture-skeleton.png -------------------------------------------------------------------------------- /resources/raw/tilesets/floating island.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/floating island.png -------------------------------------------------------------------------------- /resources/raw/tilesets/floating-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/floating-box.png -------------------------------------------------------------------------------- /resources/raw/tilesets/forest-castle-flower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/forest-castle-flower.png -------------------------------------------------------------------------------- /resources/raw/tilesets/forest-plant-flower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/forest-plant-flower.png -------------------------------------------------------------------------------- /resources/raw/tilesets/forest-plant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/forest-plant.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture12.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture13.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture2.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture3.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture4.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture5.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture6.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture7.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture8.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furniture9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furniture9.png -------------------------------------------------------------------------------- /resources/raw/tilesets/furnitures11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/furnitures11.png -------------------------------------------------------------------------------- /resources/raw/tilesets/gems.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/gems.png -------------------------------------------------------------------------------- /resources/raw/tilesets/golang-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/golang-logo.png -------------------------------------------------------------------------------- /resources/raw/tilesets/gradle-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/gradle-logo.png -------------------------------------------------------------------------------- /resources/raw/tilesets/ground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/ground.png -------------------------------------------------------------------------------- /resources/raw/tilesets/ground2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/ground2.png -------------------------------------------------------------------------------- /resources/raw/tilesets/huge-tileset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/huge-tileset.png -------------------------------------------------------------------------------- /resources/raw/tilesets/indoor-altar-furniture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/indoor-altar-furniture.png -------------------------------------------------------------------------------- /resources/raw/tilesets/indoor-bench-pumpkin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/indoor-bench-pumpkin.png -------------------------------------------------------------------------------- /resources/raw/tilesets/java-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/java-flag.png -------------------------------------------------------------------------------- /resources/raw/tilesets/kotlin-island.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/kotlin-island.png -------------------------------------------------------------------------------- /resources/raw/tilesets/matalbars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/matalbars.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc-ground-interior.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc-ground-interior.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc1.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc10.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc11.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc12.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc2.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc3.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc4.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc5.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc6.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc7.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc8.png -------------------------------------------------------------------------------- /resources/raw/tilesets/misc9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/misc9.png -------------------------------------------------------------------------------- /resources/raw/tilesets/mountain_landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/mountain_landscape.png -------------------------------------------------------------------------------- /resources/raw/tilesets/oasis-body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/oasis-body.png -------------------------------------------------------------------------------- /resources/raw/tilesets/outdoor-park-tree-flower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/outdoor-park-tree-flower.png -------------------------------------------------------------------------------- /resources/raw/tilesets/player14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/player14.gif -------------------------------------------------------------------------------- /resources/raw/tilesets/playground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/playground.png -------------------------------------------------------------------------------- /resources/raw/tilesets/portal-door.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/portal-door.png -------------------------------------------------------------------------------- /resources/raw/tilesets/prensent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/prensent.png -------------------------------------------------------------------------------- /resources/raw/tilesets/pub-interior.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/pub-interior.png -------------------------------------------------------------------------------- /resources/raw/tilesets/pub-long-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/pub-long-table.png -------------------------------------------------------------------------------- /resources/raw/tilesets/python-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/python-logo.png -------------------------------------------------------------------------------- /resources/raw/tilesets/restaurant-crate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/restaurant-crate.png -------------------------------------------------------------------------------- /resources/raw/tilesets/sea_animation_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/sea_animation_32x32.png -------------------------------------------------------------------------------- /resources/raw/tilesets/storefront-animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/storefront-animation.png -------------------------------------------------------------------------------- /resources/raw/tilesets/swimming-pool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/swimming-pool.png -------------------------------------------------------------------------------- /resources/raw/tilesets/texture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/texture1.png -------------------------------------------------------------------------------- /resources/raw/tilesets/texture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/texture2.png -------------------------------------------------------------------------------- /resources/raw/tilesets/textures3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/textures3.png -------------------------------------------------------------------------------- /resources/raw/tilesets/textures4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/textures4.png -------------------------------------------------------------------------------- /resources/raw/tilesets/traffic-sign-street-lamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/traffic-sign-street-lamp.png -------------------------------------------------------------------------------- /resources/raw/tilesets/vehicle-animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/vehicle-animation.png -------------------------------------------------------------------------------- /resources/raw/tilesets/window2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/window2.png -------------------------------------------------------------------------------- /resources/raw/tilesets/windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/windows.png -------------------------------------------------------------------------------- /resources/raw/tilesets/wooden-floor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/resources/raw/tilesets/wooden-floor.png -------------------------------------------------------------------------------- /server-shared/common/src/main/kotlin/com/bytelegend/app/servershared/codechecker/Constants.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.bytelegend.app.servershared.codechecker 18 | 19 | const val INTERNAL_API_SECRET_HEADER_NAME = "Internal-Api-Secret" 20 | -------------------------------------------------------------------------------- /server-shared/common/src/main/kotlin/com/bytelegend/app/servershared/dal/Mvcc.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.servershared.dal 17 | 18 | interface Mvcc { 19 | /** 20 | * VersionedRecordExtension recognizes `null` as initial value. 21 | */ 22 | val version: Int? 23 | } 24 | -------------------------------------------------------------------------------- /server-shared/common/src/main/kotlin/com/bytelegend/app/servershared/utils/RandomUtils.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.servershared.utils 17 | 18 | import java.util.UUID 19 | 20 | fun randomString() = UUID.randomUUID().toString().replace("-", "") 21 | -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/query/ApiGithubComUserEmail.json: -------------------------------------------------------------------------------- 1 | { 2 | "email": "bo@gradle.com", 3 | "primary": true, 4 | "verified": true, 5 | "visibility": "public" 6 | } 7 | -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/query/GitHubAppAccessToken.json: -------------------------------------------------------------------------------- 1 | { 2 | "token": "", 3 | "expires_at": "2020-11-03T06:52:47Z", 4 | "permissions": { 5 | "actions": "write", 6 | "checks": "write", 7 | "contents": "write", 8 | "deployments": "write", 9 | "metadata": "read", 10 | "pull_requests": "write", 11 | "statuses": "write" 12 | }, 13 | "repository_selection": "all" 14 | } 15 | -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/query/MergePullRequestErrorResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "mergePullRequest": null 4 | }, 5 | "errors": [ 6 | { 7 | "type": "UNPROCESSABLE", 8 | "path": [ 9 | "mergePullRequest" 10 | ], 11 | "locations": [ 12 | { 13 | "line": 2, 14 | "column": 7 15 | } 16 | ], 17 | "message": "Head branch was modified. Review and try the merge again." 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/query/MergePullRequestSuccessResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "mergePullRequest": { 4 | "pullRequest": { 5 | "commits": { 6 | "nodes": [ 7 | { 8 | "commit": { 9 | "oid": "a28b9ec31acac0fc5f49153524264d061f9fc76b" 10 | } 11 | } 12 | ] 13 | } 14 | } 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/query/PullRequestMergeResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", 3 | "merged": true, 4 | "message": "Pull Request successfully merged" 5 | } -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/stream/GitHubActionsOutputStreamEvent.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": 1, 3 | "target": "logConsoleLines", 4 | "arguments": [ 5 | { 6 | "runId": 64, 7 | "timelineId": "c34a1c53-51e0-4807-8242-2adb20ba9aaa", 8 | "timelineRecordId": "be919a0f-c709-5b1d-488a-d5e7ec449945", 9 | "stepRecordId": "c1bbce7a-e250-5fdf-d71d-17e75f6db718", 10 | "startLine": 248, 11 | "lines": [ 12 | "Fetched data from 0 at 2015-03-30 00:00:00-23:59:59", 13 | "Fetched data from 100 at 2015-03-30 00:00:00-23:59:59", 14 | "Saved 117 changesets to /home/runner/work/aosp-changesets-statistics/aosp-changesets-statistics/build/2015-03-30.json" 15 | ] 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/stream/LiveLogsResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "success": true, 3 | "errors": [], 4 | "data": { 5 | "authenticated_url": "https://pipelines.actions.githubusercontent.com/a5FwH1ZtG1Cq9G7KvUHx22MVjPT4RNUsSCY5Q109mgk8aKNZf7/_apis/pipelines/1/runs/66/live?api-version=5.2-preview.1&urlExpires=2021-06-24T00%3A12%3A34.2524038Z&urlSigningMethod=HMACV1&urlSignature=KFFO81xiuRigMYB383g1nvSa2URy3KZUCBa2XFmRTMQ%3D" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/stream/PipelinesAuthenticatedUrlResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "logStreamWebSocketUrl": "wss://pipelines.actions.githubusercontent.com/a5FwH1ZtG1Cq9G7KvUHx22MVjPT4RNUsSCY5Q109mgk8aKNZf7/ActionsHub?runId=66&tenantId=8915c40f-7420-4adc-a07d-204965709a18&urlExpires=2021-06-24T00%3A31%3A39.8189163Z&urlSigningMethod=HMACV1&urlSignature=Vx5Y81JaFo1QYzKpnt2YZezu%2Bops5iCmwGAuL9H5hwY%3D" 3 | } 4 | -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/stream/StreamWebSocketSentArguments.json: -------------------------------------------------------------------------------- 1 | { 2 | "arguments": [ 3 | "8915c40f-7420-4adc-a07d-204965709a18", 4 | 66 5 | ], 6 | "target": "WatchRunAsync", 7 | "type": 1 8 | } 9 | -------------------------------------------------------------------------------- /server-shared/json-model/src/main/resources/json/stream/StreamWebSocketSentProtocolVersion.json: -------------------------------------------------------------------------------- 1 | { 2 | "protocol": "json", 3 | "version": 1 4 | } 5 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/Layers.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared 17 | 18 | const val PLAYER_LAYER = 0 19 | const val INVISIBLE_OBJECT_LAYER = 0 20 | const val LOG_STREAM_EFFECT_LAYER = 100 21 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/Missions.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared 17 | 18 | const val FIRST_PULL_REQUEST_MISSION_ID = "remember-brave-people" 19 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/StaticGameMap.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared 17 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/codegen/CommonDefinitions.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared.codegen 17 | 18 | interface ToKotlinCode { 19 | fun toKotlinCode(): String 20 | } 21 | 22 | fun List<ToKotlinCode>.toKotlinCode() = joinToString(",\n") { it.toKotlinCode() } 23 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/entities/LivestreamData.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.bytelegend.app.shared.entities 18 | 19 | data class LivestreamData( 20 | val id: String, 21 | val title: String, 22 | val url: String, 23 | val startEpochMs: Long, 24 | val endEpochMs: Long 25 | ) 26 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/entities/mission/DiscussionsSpec.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared.entities.mission 17 | 18 | data class DiscussionsSpec( 19 | val url: String 20 | ) 21 | 22 | val DEFAULT_DISCUSSIONS_SPEC = DiscussionsSpec("https://github.com/ByteLegend/ByteLegend/discussions") 23 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/entities/mission/Pagination.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared.entities.mission 17 | 18 | data class Pagination<T>( 19 | val items: List<T>, 20 | val totalPages: Int, 21 | val pageNumber: Int, 22 | val pageSize: Int 23 | ) 24 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/protocol/PlayerSpeechEventData.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared.protocol 17 | 18 | import com.bytelegend.app.shared.annotations.JsonIgnore 19 | 20 | data class PlayerSpeechEventData( 21 | val playerId: String, 22 | val sentenceId: String 23 | ) { 24 | @JsonIgnore 25 | fun isOnymous(): Boolean = !playerId.startsWith("anon#") 26 | } 27 | -------------------------------------------------------------------------------- /shared/src/commonMain/kotlin/com/bytelegend/app/shared/protocol/Sentences.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared.protocol 17 | 18 | val sentences = linkedSetOf( 19 | "HelloWorld", 20 | "NiceDayHuh", 21 | "GamesAreTheLadder" 22 | ) 23 | -------------------------------------------------------------------------------- /shared/src/jsMain/kotlin/com/bytelegend/app/shared/util/Utils.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.app.shared.util 17 | 18 | import kotlin.js.Date 19 | 20 | actual fun currentTimeMillis(): Long = Date().getTime().toLong() 21 | actual fun currentTimeIso8601(): String = Date().toISOString() 22 | actual fun Long.toIso8601(): String = Date(this).toISOString() 23 | actual fun String.iso8601ToEpochMs(): Long = Date(this).getTime().toLong() 24 | -------------------------------------------------------------------------------- /utils/README.md: -------------------------------------------------------------------------------- 1 | # ByteLegend map conventions 2 | 3 | - Tiles are placed in layers. All visible tile layers will be displayed on the game map as they are, with the following exceptions: 4 | - Layer `Blockers` are used to place blocker signs. They are not displayed on the game map. 5 | - Layer `Player` is a special marker layer. Layers above this layer are displayed above the players in the game, 6 | layers below this layer are displayed under the players in the map. 7 | - Layers in `DynamicSprites` are not directly displayed. They're usually dynamically added by game scripts. 8 | - Each such layer should only contain a single sprite. The layer name is used as `GameMapDynamicSprite.id`. 9 | - Object layers are used to store `GameMapObject`s. See class `TiledObjectType`. 10 | -------------------------------------------------------------------------------- /utils/src/main/kotlin/com/bytelegend/utils/ImageUtils.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 ByteLegend Technologies and the original author or authors. 3 | * 4 | * Licensed under the GNU Affero General Public License v3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/ByteLegend/ByteLegend/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.bytelegend.utils 17 | 18 | import com.bytelegend.app.shared.RGBA 19 | import java.awt.Color 20 | import java.awt.image.BufferedImage 21 | 22 | fun BufferedImage.getRGBA(x: Int, y: Int): RGBA { 23 | return getRGB(x, y).let { 24 | val color = Color(it, true) 25 | RGBA(color.red, color.green, color.blue, color.alpha) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /utils/src/test/resources/animation-set-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ByteLegend/ByteLegend/b1e831a83b4d3d43182014e2bf8064973d1ccf00/utils/src/test/resources/animation-set-0.png --------------------------------------------------------------------------------