@nice2dev/game-engine 1.0.5 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/accessibility/Accessibility.js +55 -20
- package/dist/cjs/accessibility/Accessibility.js.map +1 -1
- package/dist/cjs/ai/AI.js +74 -40
- package/dist/cjs/ai/AI.js.map +1 -1
- package/dist/cjs/ai/BehaviorTree.js +39 -47
- package/dist/cjs/ai/BehaviorTree.js.map +1 -1
- package/dist/cjs/ai/StateMachine.js +64 -100
- package/dist/cjs/ai/StateMachine.js.map +1 -1
- package/dist/cjs/animation/Animation.js +58 -34
- package/dist/cjs/animation/Animation.js.map +1 -1
- package/dist/cjs/audio/AudioAdvanced.js +71 -37
- package/dist/cjs/audio/AudioAdvanced.js.map +1 -1
- package/dist/cjs/audio/AudioBridge.js +61 -49
- package/dist/cjs/audio/AudioBridge.js.map +1 -1
- package/dist/cjs/audio/AudioManager.js +45 -29
- package/dist/cjs/audio/AudioManager.js.map +1 -1
- package/dist/cjs/build-cloud/BuildOrchestration.js +1142 -0
- package/dist/cjs/build-cloud/BuildOrchestration.js.map +1 -0
- package/dist/cjs/build-cloud/GodotBuildCloud.js +722 -0
- package/dist/cjs/build-cloud/GodotBuildCloud.js.map +1 -0
- package/dist/cjs/build-cloud/UnityBuildCloud.js +652 -0
- package/dist/cjs/build-cloud/UnityBuildCloud.js.map +1 -0
- package/dist/cjs/build-cloud/UnrealBuildCloud.js +674 -0
- package/dist/cjs/build-cloud/UnrealBuildCloud.js.map +1 -0
- package/dist/cjs/core/EventBus.js +2 -1
- package/dist/cjs/core/EventBus.js.map +1 -1
- package/dist/cjs/core/GameConfig.js +1 -1
- package/dist/cjs/core/GameConfig.js.map +1 -1
- package/dist/cjs/core/GameLoop.js +6 -3
- package/dist/cjs/core/GameLoop.js.map +1 -1
- package/dist/cjs/core/ServiceLocator.js +1 -2
- package/dist/cjs/core/ServiceLocator.js.map +1 -1
- package/dist/cjs/devtools/DevTools.js +73 -43
- package/dist/cjs/devtools/DevTools.js.map +1 -1
- package/dist/cjs/devtools/DeveloperExperience.js +84 -42
- package/dist/cjs/devtools/DeveloperExperience.js.map +1 -1
- package/dist/cjs/devtools/GameplayAnalytics.js +71 -43
- package/dist/cjs/devtools/GameplayAnalytics.js.map +1 -1
- package/dist/cjs/dialogue/DialogueSystem.js +153 -129
- package/dist/cjs/dialogue/DialogueSystem.js.map +1 -1
- package/dist/cjs/docs/DocGenerator.js +70 -28
- package/dist/cjs/docs/DocGenerator.js.map +1 -1
- package/dist/cjs/ecs/World.js +159 -33
- package/dist/cjs/ecs/World.js.map +1 -1
- package/dist/cjs/editor/AchievementEditor.js +650 -0
- package/dist/cjs/editor/AchievementEditor.js.map +1 -0
- package/dist/cjs/editor/AdvancedEditor.js +95 -23
- package/dist/cjs/editor/AdvancedEditor.js.map +1 -1
- package/dist/cjs/editor/AnimationRetargeting.js +742 -0
- package/dist/cjs/editor/AnimationRetargeting.js.map +1 -0
- package/dist/cjs/editor/AssetBrowser.js +1191 -0
- package/dist/cjs/editor/AssetBrowser.js.map +1 -0
- package/dist/cjs/editor/AssetManager.js +22 -14
- package/dist/cjs/editor/AssetManager.js.map +1 -1
- package/dist/cjs/editor/ConsolePro.js +1092 -0
- package/dist/cjs/editor/ConsolePro.js.map +1 -0
- package/dist/cjs/editor/CraftingEditor.js +749 -0
- package/dist/cjs/editor/CraftingEditor.js.map +1 -0
- package/dist/cjs/editor/DebugTools.js +46 -23
- package/dist/cjs/editor/DebugTools.js.map +1 -1
- package/dist/cjs/editor/DialogueSystem.js +924 -0
- package/dist/cjs/editor/DialogueSystem.js.map +1 -0
- package/dist/cjs/editor/LeaderboardSystem.js +496 -0
- package/dist/cjs/editor/LeaderboardSystem.js.map +1 -0
- package/dist/cjs/editor/NiceGameEditor.js +532 -142
- package/dist/cjs/editor/NiceGameEditor.js.map +1 -1
- package/dist/cjs/editor/PrefabSystem.js +864 -0
- package/dist/cjs/editor/PrefabSystem.js.map +1 -0
- package/dist/cjs/editor/ProfilerPanel.js +716 -0
- package/dist/cjs/editor/ProfilerPanel.js.map +1 -0
- package/dist/cjs/editor/QuestEditor.js +850 -0
- package/dist/cjs/editor/QuestEditor.js.map +1 -0
- package/dist/cjs/editor/ReplaySystem.js +655 -0
- package/dist/cjs/editor/ReplaySystem.js.map +1 -0
- package/dist/cjs/editor/SceneEditor.js +33 -13
- package/dist/cjs/editor/SceneEditor.js.map +1 -1
- package/dist/cjs/editor/ScreenshotMode.js +710 -0
- package/dist/cjs/editor/ScreenshotMode.js.map +1 -0
- package/dist/cjs/editor/ShaderGraph.js +7 -6
- package/dist/cjs/editor/ShaderGraph.js.map +1 -1
- package/dist/cjs/editor/TimelineEditor.js +36 -30
- package/dist/cjs/editor/TimelineEditor.js.map +1 -1
- package/dist/cjs/editor/UndoRedoPro.js +920 -0
- package/dist/cjs/editor/UndoRedoPro.js.map +1 -0
- package/dist/cjs/editor/VRARMode.js +658 -0
- package/dist/cjs/editor/VRARMode.js.map +1 -0
- package/dist/cjs/engine/NiceGameEngine.js +12 -10
- package/dist/cjs/engine/NiceGameEngine.js.map +1 -1
- package/dist/cjs/engine/SaveSystemV2.js +73 -37
- package/dist/cjs/engine/SaveSystemV2.js.map +1 -1
- package/dist/cjs/enterprise/Enterprise.js +92 -44
- package/dist/cjs/enterprise/Enterprise.js.map +1 -1
- package/dist/cjs/export/BevyExporter.js +998 -0
- package/dist/cjs/export/BevyExporter.js.map +1 -0
- package/dist/cjs/export/CocosExporter.js +706 -0
- package/dist/cjs/export/CocosExporter.js.map +1 -0
- package/dist/cjs/export/Construct3Exporter.js +832 -0
- package/dist/cjs/export/Construct3Exporter.js.map +1 -0
- package/dist/cjs/export/DefoldExporter.js +1106 -0
- package/dist/cjs/export/DefoldExporter.js.map +1 -0
- package/dist/cjs/export/GDevelopExporter.js +748 -0
- package/dist/cjs/export/GDevelopExporter.js.map +1 -0
- package/dist/cjs/export/GameMakerExporter.js +846 -0
- package/dist/cjs/export/GameMakerExporter.js.map +1 -0
- package/dist/cjs/export/GodotExporter.js +45 -50
- package/dist/cjs/export/GodotExporter.js.map +1 -1
- package/dist/cjs/export/MinecraftBedrockExporter.js +606 -0
- package/dist/cjs/export/MinecraftBedrockExporter.js.map +1 -0
- package/dist/cjs/export/MonoGameExporter.js +1334 -0
- package/dist/cjs/export/MonoGameExporter.js.map +1 -0
- package/dist/cjs/export/Pico8Exporter.js +846 -0
- package/dist/cjs/export/Pico8Exporter.js.map +1 -0
- package/dist/cjs/export/PlatformExporter.js +4 -5
- package/dist/cjs/export/PlatformExporter.js.map +1 -1
- package/dist/cjs/export/RPGMakerExporter.js +906 -0
- package/dist/cjs/export/RPGMakerExporter.js.map +1 -0
- package/dist/cjs/export/RobloxExporter.js +943 -0
- package/dist/cjs/export/RobloxExporter.js.map +1 -0
- package/dist/cjs/export/Solar2DExporter.js +1283 -0
- package/dist/cjs/export/Solar2DExporter.js.map +1 -0
- package/dist/cjs/export/ThreeJSExporter.js +52 -55
- package/dist/cjs/export/ThreeJSExporter.js.map +1 -1
- package/dist/cjs/export/Tic80Exporter.js +1315 -0
- package/dist/cjs/export/Tic80Exporter.js.map +1 -0
- package/dist/cjs/export/UnityExporter.js +41 -56
- package/dist/cjs/export/UnityExporter.js.map +1 -1
- package/dist/cjs/export/UnrealExporter.js +962 -0
- package/dist/cjs/export/UnrealExporter.js.map +1 -0
- package/dist/cjs/export/WebExporter.js +42 -50
- package/dist/cjs/export/WebExporter.js.map +1 -1
- package/dist/cjs/export/index.js +50 -2
- package/dist/cjs/export/index.js.map +1 -1
- package/dist/cjs/godot-integration/GodotAssetLibrary.js +716 -0
- package/dist/cjs/godot-integration/GodotAssetLibrary.js.map +1 -0
- package/dist/cjs/godot-integration/GodotImport.js +1069 -0
- package/dist/cjs/godot-integration/GodotImport.js.map +1 -0
- package/dist/cjs/godot-integration/GodotLiveLink.js +962 -0
- package/dist/cjs/godot-integration/GodotLiveLink.js.map +1 -0
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js +668 -0
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js.map +1 -0
- package/dist/cjs/i18n/I18n.js +56 -30
- package/dist/cjs/i18n/I18n.js.map +1 -1
- package/dist/cjs/i18n/useTranslation.js +4 -4
- package/dist/cjs/i18n/useTranslation.js.map +1 -1
- package/dist/cjs/import/AsepriteImporter.js +15 -19
- package/dist/cjs/import/AsepriteImporter.js.map +1 -1
- package/dist/cjs/import/DragonBonesImporter.js +36 -40
- package/dist/cjs/import/DragonBonesImporter.js.map +1 -1
- package/dist/cjs/import/GameMakerImporter.js +11 -17
- package/dist/cjs/import/GameMakerImporter.js.map +1 -1
- package/dist/cjs/import/GodotSceneImporter.js +43 -29
- package/dist/cjs/import/GodotSceneImporter.js.map +1 -1
- package/dist/cjs/import/LDtkImporter.js +16 -17
- package/dist/cjs/import/LDtkImporter.js.map +1 -1
- package/dist/cjs/import/Live2DImporter.js +16 -19
- package/dist/cjs/import/Live2DImporter.js.map +1 -1
- package/dist/cjs/import/NdgFormat.js +28 -35
- package/dist/cjs/import/NdgFormat.js.map +1 -1
- package/dist/cjs/import/OgmoImporter.js +16 -18
- package/dist/cjs/import/OgmoImporter.js.map +1 -1
- package/dist/cjs/import/RPGMakerImporter.js +5 -6
- package/dist/cjs/import/RPGMakerImporter.js.map +1 -1
- package/dist/cjs/import/SceneImporter.js +23 -13
- package/dist/cjs/import/SceneImporter.js.map +1 -1
- package/dist/cjs/import/SpineImporter.js +20 -20
- package/dist/cjs/import/SpineImporter.js.map +1 -1
- package/dist/cjs/import/SpriterImporter.js +38 -46
- package/dist/cjs/import/SpriterImporter.js.map +1 -1
- package/dist/cjs/import/TiledMapImporter.js +20 -24
- package/dist/cjs/import/TiledMapImporter.js.map +1 -1
- package/dist/cjs/import/UnitySceneImporter.js +15 -15
- package/dist/cjs/import/UnitySceneImporter.js.map +1 -1
- package/dist/cjs/index.js +516 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/input/GamepadNavigation.js +82 -47
- package/dist/cjs/input/GamepadNavigation.js.map +1 -1
- package/dist/cjs/input/InputManager.js +107 -52
- package/dist/cjs/input/InputManager.js.map +1 -1
- package/dist/cjs/input/useGamepads.js +35 -29
- package/dist/cjs/input/useGamepads.js.map +1 -1
- package/dist/cjs/integration/IconSprite.js +39 -21
- package/dist/cjs/integration/IconSprite.js.map +1 -1
- package/dist/cjs/inventory/InventorySystem.js +218 -127
- package/dist/cjs/inventory/InventorySystem.js.map +1 -1
- package/dist/cjs/kids/KidMode.js +491 -78
- package/dist/cjs/kids/KidMode.js.map +1 -1
- package/dist/cjs/kids/KidTools.js +154 -48
- package/dist/cjs/kids/KidTools.js.map +1 -1
- package/dist/cjs/monetization/Monetization.js +47 -35
- package/dist/cjs/monetization/Monetization.js.map +1 -1
- package/dist/cjs/multiplayer/LocalMultiplayer.js +48 -26
- package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -1
- package/dist/cjs/multiplayer/MiniGameTypes.js +23 -10
- package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -1
- package/dist/cjs/native-engine/AssetPipeline.js +540 -0
- package/dist/cjs/native-engine/AssetPipeline.js.map +1 -0
- package/dist/cjs/native-engine/AudioEngine.js +825 -0
- package/dist/cjs/native-engine/AudioEngine.js.map +1 -0
- package/dist/cjs/native-engine/InputSystem.js +1175 -0
- package/dist/cjs/native-engine/InputSystem.js.map +1 -0
- package/dist/cjs/native-engine/NetworkingSystem.js +825 -0
- package/dist/cjs/native-engine/NetworkingSystem.js.map +1 -0
- package/dist/cjs/native-engine/PhysicsEngine.js +622 -0
- package/dist/cjs/native-engine/PhysicsEngine.js.map +1 -0
- package/dist/cjs/native-engine/RenderingEngine.js +371 -0
- package/dist/cjs/native-engine/RenderingEngine.js.map +1 -0
- package/dist/cjs/native-engine/SceneGraph.js +862 -0
- package/dist/cjs/native-engine/SceneGraph.js.map +1 -0
- package/dist/cjs/network/MultiplayerTransport.js +63 -33
- package/dist/cjs/network/MultiplayerTransport.js.map +1 -1
- package/dist/cjs/network/Networking.js +87 -62
- package/dist/cjs/network/Networking.js.map +1 -1
- package/dist/cjs/pathfinding/Pathfinding.js +71 -26
- package/dist/cjs/pathfinding/Pathfinding.js.map +1 -1
- package/dist/cjs/performance/AssetStreaming.js +656 -0
- package/dist/cjs/performance/AssetStreaming.js.map +1 -0
- package/dist/cjs/performance/BenchmarkSuite.js +37 -24
- package/dist/cjs/performance/BenchmarkSuite.js.map +1 -1
- package/dist/cjs/performance/DeltaCompression.js +566 -0
- package/dist/cjs/performance/DeltaCompression.js.map +1 -0
- package/dist/cjs/performance/DeterministicPhysics.js +603 -0
- package/dist/cjs/performance/DeterministicPhysics.js.map +1 -0
- package/dist/cjs/performance/ECSOptimization.js +726 -0
- package/dist/cjs/performance/ECSOptimization.js.map +1 -0
- package/dist/cjs/performance/HotReload.js +525 -0
- package/dist/cjs/performance/HotReload.js.map +1 -0
- package/dist/cjs/performance/InputRecording.js +590 -0
- package/dist/cjs/performance/InputRecording.js.map +1 -0
- package/dist/cjs/performance/InterestManagement.js +532 -0
- package/dist/cjs/performance/InterestManagement.js.map +1 -0
- package/dist/cjs/performance/LocalizationRuntime.js +472 -0
- package/dist/cjs/performance/LocalizationRuntime.js.map +1 -0
- package/dist/cjs/performance/MemoryManagement.js +487 -0
- package/dist/cjs/performance/MemoryManagement.js.map +1 -0
- package/dist/cjs/performance/ModSupport.js +531 -0
- package/dist/cjs/performance/ModSupport.js.map +1 -0
- package/dist/cjs/performance/MultiThreadedPhysics.js +500 -0
- package/dist/cjs/performance/MultiThreadedPhysics.js.map +1 -0
- package/dist/cjs/performance/NetworkPrediction.js +521 -0
- package/dist/cjs/performance/NetworkPrediction.js.map +1 -0
- package/dist/cjs/performance/ObjectPooling.js +653 -0
- package/dist/cjs/performance/ObjectPooling.js.map +1 -0
- package/dist/cjs/performance/Performance.js +64 -25
- package/dist/cjs/performance/Performance.js.map +1 -1
- package/dist/cjs/performance/PerformanceAdvanced.js +83 -49
- package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -1
- package/dist/cjs/performance/SaveSystem.js +574 -0
- package/dist/cjs/performance/SaveSystem.js.map +1 -0
- package/dist/cjs/performance/WebGPURenderer.js +702 -0
- package/dist/cjs/performance/WebGPURenderer.js.map +1 -0
- package/dist/cjs/physics/PhysicsAdvanced.js +32 -20
- package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -1
- package/dist/cjs/physics/PhysicsEngine2D.js +63 -36
- package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -1
- package/dist/cjs/plugins/PluginSDK.js +46 -34
- package/dist/cjs/plugins/PluginSDK.js.map +1 -1
- package/dist/cjs/plugins/PluginTestKit.js +28 -29
- package/dist/cjs/plugins/PluginTestKit.js.map +1 -1
- package/dist/cjs/procedural/Procedural.js +24 -17
- package/dist/cjs/procedural/Procedural.js.map +1 -1
- package/dist/cjs/procedural/WorldBuilding.js +187 -55
- package/dist/cjs/procedural/WorldBuilding.js.map +1 -1
- package/dist/cjs/quest/QuestSystem.js +145 -111
- package/dist/cjs/quest/QuestSystem.js.map +1 -1
- package/dist/cjs/release/Release.js +142 -31
- package/dist/cjs/release/Release.js.map +1 -1
- package/dist/cjs/rendering/Camera2D.js +12 -7
- package/dist/cjs/rendering/Camera2D.js.map +1 -1
- package/dist/cjs/rendering/Renderer2D.js +62 -26
- package/dist/cjs/rendering/Renderer2D.js.map +1 -1
- package/dist/cjs/rendering/WebGPURenderPipeline.js +60 -31
- package/dist/cjs/rendering/WebGPURenderPipeline.js.map +1 -1
- package/dist/cjs/runtime3d/Runtime3D.js +80 -55
- package/dist/cjs/runtime3d/Runtime3D.js.map +1 -1
- package/dist/cjs/runtime3d/SceneEditor3D.js +20 -11
- package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -1
- package/dist/cjs/scene/SceneManager.js +26 -12
- package/dist/cjs/scene/SceneManager.js.map +1 -1
- package/dist/cjs/scripting/GraphToAST.js +36 -24
- package/dist/cjs/scripting/GraphToAST.js.map +1 -1
- package/dist/cjs/scripting/LanguageExporter.js +2 -3
- package/dist/cjs/scripting/LanguageExporter.js.map +1 -1
- package/dist/cjs/scripting/NodeGraph.js +49 -32
- package/dist/cjs/scripting/NodeGraph.js.map +1 -1
- package/dist/cjs/scripting/ScriptAST.js +19 -6
- package/dist/cjs/scripting/ScriptAST.js.map +1 -1
- package/dist/cjs/scripting/VisualScripting2.js +13 -12
- package/dist/cjs/scripting/VisualScripting2.js.map +1 -1
- package/dist/cjs/scripting/exporters/CSharpExporter.js +16 -16
- package/dist/cjs/scripting/exporters/CSharpExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/GDScriptExporter.js +3 -6
- package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/LuaExporter.js +5 -9
- package/dist/cjs/scripting/exporters/LuaExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/PythonExporter.js +7 -13
- package/dist/cjs/scripting/exporters/PythonExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/RustExporter.js +7 -14
- package/dist/cjs/scripting/exporters/RustExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js +28 -29
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +1 -1
- package/dist/cjs/social/Social.js +27 -20
- package/dist/cjs/social/Social.js.map +1 -1
- package/dist/cjs/systems/LightingSystem.js +980 -0
- package/dist/cjs/systems/LightingSystem.js.map +1 -0
- package/dist/cjs/systems/ParticleSystem2.js +34 -17
- package/dist/cjs/systems/ParticleSystem2.js.map +1 -1
- package/dist/cjs/systems/PhysicsDebugSystem.js +1228 -0
- package/dist/cjs/systems/PhysicsDebugSystem.js.map +1 -0
- package/dist/cjs/systems/TerrainSystem.js +1137 -0
- package/dist/cjs/systems/TerrainSystem.js.map +1 -0
- package/dist/cjs/templates/ActionTemplates.js +144 -24
- package/dist/cjs/templates/ActionTemplates.js.map +1 -1
- package/dist/cjs/templates/FightingTemplate.js +536 -0
- package/dist/cjs/templates/FightingTemplate.js.map +1 -0
- package/dist/cjs/templates/MetroidvaniaTemplate.js +523 -0
- package/dist/cjs/templates/MetroidvaniaTemplate.js.map +1 -0
- package/dist/cjs/templates/PartyTemplates.js +60 -28
- package/dist/cjs/templates/PartyTemplates.js.map +1 -1
- package/dist/cjs/templates/PuzzleTemplates.js +63 -22
- package/dist/cjs/templates/PuzzleTemplates.js.map +1 -1
- package/dist/cjs/templates/RPGTemplates.js +29 -15
- package/dist/cjs/templates/RPGTemplates.js.map +1 -1
- package/dist/cjs/templates/SportsTemplates.js +41 -17
- package/dist/cjs/templates/SportsTemplates.js.map +1 -1
- package/dist/cjs/templates/StrategyTemplates.js +45 -18
- package/dist/cjs/templates/StrategyTemplates.js.map +1 -1
- package/dist/cjs/templates/SurvivalTemplate.js +479 -0
- package/dist/cjs/templates/SurvivalTemplate.js.map +1 -0
- package/dist/cjs/templates/WaveDefense.js +139 -52
- package/dist/cjs/templates/WaveDefense.js.map +1 -1
- package/dist/cjs/tilemap/Tilemap.js +48 -32
- package/dist/cjs/tilemap/Tilemap.js.map +1 -1
- package/dist/cjs/tutorials/TutorialBranching.js +111 -42
- package/dist/cjs/tutorials/TutorialBranching.js.map +1 -1
- package/dist/cjs/tutorials/TutorialEngine.js +152 -80
- package/dist/cjs/tutorials/TutorialEngine.js.map +1 -1
- package/dist/cjs/tutorials/TutorialOverlay.js +117 -40
- package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -1
- package/dist/cjs/ui/GameUI.js +69 -42
- package/dist/cjs/ui/GameUI.js.map +1 -1
- package/dist/cjs/unity-integration/UnityAssetStore.js +754 -0
- package/dist/cjs/unity-integration/UnityAssetStore.js.map +1 -0
- package/dist/cjs/unity-integration/UnityImport.js +1252 -0
- package/dist/cjs/unity-integration/UnityImport.js.map +1 -0
- package/dist/cjs/unity-integration/UnityLiveLink.js +1022 -0
- package/dist/cjs/unity-integration/UnityLiveLink.js.map +1 -0
- package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js +796 -0
- package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js.map +1 -0
- package/dist/cjs/unity-integration/components/UnityProjectBrowser.js +833 -0
- package/dist/cjs/unity-integration/components/UnityProjectBrowser.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealImport.js +442 -0
- package/dist/cjs/unreal-integration/UnrealImport.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealLiveLink.js +1186 -0
- package/dist/cjs/unreal-integration/UnrealLiveLink.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealMarketplace.js +497 -0
- package/dist/cjs/unreal-integration/UnrealMarketplace.js.map +1 -0
- package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js +835 -0
- package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js.map +1 -0
- package/dist/cjs/xr/ARVR.js +32 -9
- package/dist/cjs/xr/ARVR.js.map +1 -1
- package/dist/esm/accessibility/Accessibility.js +55 -20
- package/dist/esm/accessibility/Accessibility.js.map +1 -1
- package/dist/esm/ai/AI.js +74 -40
- package/dist/esm/ai/AI.js.map +1 -1
- package/dist/esm/ai/BehaviorTree.js +39 -47
- package/dist/esm/ai/BehaviorTree.js.map +1 -1
- package/dist/esm/ai/StateMachine.js +65 -99
- package/dist/esm/ai/StateMachine.js.map +1 -1
- package/dist/esm/animation/Animation.js +58 -34
- package/dist/esm/animation/Animation.js.map +1 -1
- package/dist/esm/audio/AudioAdvanced.js +71 -37
- package/dist/esm/audio/AudioAdvanced.js.map +1 -1
- package/dist/esm/audio/AudioBridge.js +61 -49
- package/dist/esm/audio/AudioBridge.js.map +1 -1
- package/dist/esm/audio/AudioManager.js +45 -29
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/build-cloud/BuildOrchestration.js +1129 -0
- package/dist/esm/build-cloud/BuildOrchestration.js.map +1 -0
- package/dist/esm/build-cloud/GodotBuildCloud.js +715 -0
- package/dist/esm/build-cloud/GodotBuildCloud.js.map +1 -0
- package/dist/esm/build-cloud/UnityBuildCloud.js +643 -0
- package/dist/esm/build-cloud/UnityBuildCloud.js.map +1 -0
- package/dist/esm/build-cloud/UnrealBuildCloud.js +668 -0
- package/dist/esm/build-cloud/UnrealBuildCloud.js.map +1 -0
- package/dist/esm/core/EventBus.js +2 -1
- package/dist/esm/core/EventBus.js.map +1 -1
- package/dist/esm/core/GameConfig.js +1 -1
- package/dist/esm/core/GameConfig.js.map +1 -1
- package/dist/esm/core/GameLoop.js +6 -3
- package/dist/esm/core/GameLoop.js.map +1 -1
- package/dist/esm/core/ServiceLocator.js +1 -2
- package/dist/esm/core/ServiceLocator.js.map +1 -1
- package/dist/esm/devtools/DevTools.js +73 -43
- package/dist/esm/devtools/DevTools.js.map +1 -1
- package/dist/esm/devtools/DeveloperExperience.js +84 -42
- package/dist/esm/devtools/DeveloperExperience.js.map +1 -1
- package/dist/esm/devtools/GameplayAnalytics.js +71 -43
- package/dist/esm/devtools/GameplayAnalytics.js.map +1 -1
- package/dist/esm/dialogue/DialogueSystem.js +153 -129
- package/dist/esm/dialogue/DialogueSystem.js.map +1 -1
- package/dist/esm/docs/DocGenerator.js +70 -28
- package/dist/esm/docs/DocGenerator.js.map +1 -1
- package/dist/esm/ecs/World.js +159 -33
- package/dist/esm/ecs/World.js.map +1 -1
- package/dist/esm/editor/AchievementEditor.js +645 -0
- package/dist/esm/editor/AchievementEditor.js.map +1 -0
- package/dist/esm/editor/AdvancedEditor.js +95 -23
- package/dist/esm/editor/AdvancedEditor.js.map +1 -1
- package/dist/esm/editor/AnimationRetargeting.js +738 -0
- package/dist/esm/editor/AnimationRetargeting.js.map +1 -0
- package/dist/esm/editor/AssetBrowser.js +1184 -0
- package/dist/esm/editor/AssetBrowser.js.map +1 -0
- package/dist/esm/editor/AssetManager.js +22 -14
- package/dist/esm/editor/AssetManager.js.map +1 -1
- package/dist/esm/editor/ConsolePro.js +1085 -0
- package/dist/esm/editor/ConsolePro.js.map +1 -0
- package/dist/esm/editor/CraftingEditor.js +744 -0
- package/dist/esm/editor/CraftingEditor.js.map +1 -0
- package/dist/esm/editor/DebugTools.js +46 -23
- package/dist/esm/editor/DebugTools.js.map +1 -1
- package/dist/esm/editor/DialogueSystem.js +918 -0
- package/dist/esm/editor/DialogueSystem.js.map +1 -0
- package/dist/esm/editor/LeaderboardSystem.js +491 -0
- package/dist/esm/editor/LeaderboardSystem.js.map +1 -0
- package/dist/esm/editor/NiceGameEditor.js +532 -142
- package/dist/esm/editor/NiceGameEditor.js.map +1 -1
- package/dist/esm/editor/PrefabSystem.js +858 -0
- package/dist/esm/editor/PrefabSystem.js.map +1 -0
- package/dist/esm/editor/ProfilerPanel.js +710 -0
- package/dist/esm/editor/ProfilerPanel.js.map +1 -0
- package/dist/esm/editor/QuestEditor.js +846 -0
- package/dist/esm/editor/QuestEditor.js.map +1 -0
- package/dist/esm/editor/ReplaySystem.js +648 -0
- package/dist/esm/editor/ReplaySystem.js.map +1 -0
- package/dist/esm/editor/SceneEditor.js +33 -13
- package/dist/esm/editor/SceneEditor.js.map +1 -1
- package/dist/esm/editor/ScreenshotMode.js +702 -0
- package/dist/esm/editor/ScreenshotMode.js.map +1 -0
- package/dist/esm/editor/ShaderGraph.js +7 -6
- package/dist/esm/editor/ShaderGraph.js.map +1 -1
- package/dist/esm/editor/TimelineEditor.js +37 -30
- package/dist/esm/editor/TimelineEditor.js.map +1 -1
- package/dist/esm/editor/UndoRedoPro.js +914 -0
- package/dist/esm/editor/UndoRedoPro.js.map +1 -0
- package/dist/esm/editor/VRARMode.js +653 -0
- package/dist/esm/editor/VRARMode.js.map +1 -0
- package/dist/esm/engine/NiceGameEngine.js +12 -10
- package/dist/esm/engine/NiceGameEngine.js.map +1 -1
- package/dist/esm/engine/SaveSystemV2.js +73 -37
- package/dist/esm/engine/SaveSystemV2.js.map +1 -1
- package/dist/esm/enterprise/Enterprise.js +92 -44
- package/dist/esm/enterprise/Enterprise.js.map +1 -1
- package/dist/esm/export/BevyExporter.js +995 -0
- package/dist/esm/export/BevyExporter.js.map +1 -0
- package/dist/esm/export/CocosExporter.js +703 -0
- package/dist/esm/export/CocosExporter.js.map +1 -0
- package/dist/esm/export/Construct3Exporter.js +829 -0
- package/dist/esm/export/Construct3Exporter.js.map +1 -0
- package/dist/esm/export/DefoldExporter.js +1103 -0
- package/dist/esm/export/DefoldExporter.js.map +1 -0
- package/dist/esm/export/GDevelopExporter.js +745 -0
- package/dist/esm/export/GDevelopExporter.js.map +1 -0
- package/dist/esm/export/GameMakerExporter.js +843 -0
- package/dist/esm/export/GameMakerExporter.js.map +1 -0
- package/dist/esm/export/GodotExporter.js +45 -50
- package/dist/esm/export/GodotExporter.js.map +1 -1
- package/dist/esm/export/MinecraftBedrockExporter.js +603 -0
- package/dist/esm/export/MinecraftBedrockExporter.js.map +1 -0
- package/dist/esm/export/MonoGameExporter.js +1331 -0
- package/dist/esm/export/MonoGameExporter.js.map +1 -0
- package/dist/esm/export/Pico8Exporter.js +843 -0
- package/dist/esm/export/Pico8Exporter.js.map +1 -0
- package/dist/esm/export/PlatformExporter.js +4 -5
- package/dist/esm/export/PlatformExporter.js.map +1 -1
- package/dist/esm/export/RPGMakerExporter.js +903 -0
- package/dist/esm/export/RPGMakerExporter.js.map +1 -0
- package/dist/esm/export/RobloxExporter.js +940 -0
- package/dist/esm/export/RobloxExporter.js.map +1 -0
- package/dist/esm/export/Solar2DExporter.js +1280 -0
- package/dist/esm/export/Solar2DExporter.js.map +1 -0
- package/dist/esm/export/ThreeJSExporter.js +52 -55
- package/dist/esm/export/ThreeJSExporter.js.map +1 -1
- package/dist/esm/export/Tic80Exporter.js +1312 -0
- package/dist/esm/export/Tic80Exporter.js.map +1 -0
- package/dist/esm/export/UnityExporter.js +41 -56
- package/dist/esm/export/UnityExporter.js.map +1 -1
- package/dist/esm/export/UnrealExporter.js +959 -0
- package/dist/esm/export/UnrealExporter.js.map +1 -0
- package/dist/esm/export/WebExporter.js +42 -50
- package/dist/esm/export/WebExporter.js.map +1 -1
- package/dist/esm/export/index.js +38 -2
- package/dist/esm/export/index.js.map +1 -1
- package/dist/esm/godot-integration/GodotAssetLibrary.js +711 -0
- package/dist/esm/godot-integration/GodotAssetLibrary.js.map +1 -0
- package/dist/esm/godot-integration/GodotImport.js +1062 -0
- package/dist/esm/godot-integration/GodotImport.js.map +1 -0
- package/dist/esm/godot-integration/GodotLiveLink.js +958 -0
- package/dist/esm/godot-integration/GodotLiveLink.js.map +1 -0
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js +666 -0
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js.map +1 -0
- package/dist/esm/i18n/I18n.js +56 -30
- package/dist/esm/i18n/I18n.js.map +1 -1
- package/dist/esm/i18n/useTranslation.js +4 -4
- package/dist/esm/i18n/useTranslation.js.map +1 -1
- package/dist/esm/import/AsepriteImporter.js +15 -19
- package/dist/esm/import/AsepriteImporter.js.map +1 -1
- package/dist/esm/import/DragonBonesImporter.js +36 -40
- package/dist/esm/import/DragonBonesImporter.js.map +1 -1
- package/dist/esm/import/GameMakerImporter.js +11 -17
- package/dist/esm/import/GameMakerImporter.js.map +1 -1
- package/dist/esm/import/GodotSceneImporter.js +43 -29
- package/dist/esm/import/GodotSceneImporter.js.map +1 -1
- package/dist/esm/import/LDtkImporter.js +16 -17
- package/dist/esm/import/LDtkImporter.js.map +1 -1
- package/dist/esm/import/Live2DImporter.js +16 -19
- package/dist/esm/import/Live2DImporter.js.map +1 -1
- package/dist/esm/import/NdgFormat.js +28 -35
- package/dist/esm/import/NdgFormat.js.map +1 -1
- package/dist/esm/import/OgmoImporter.js +16 -18
- package/dist/esm/import/OgmoImporter.js.map +1 -1
- package/dist/esm/import/RPGMakerImporter.js +5 -6
- package/dist/esm/import/RPGMakerImporter.js.map +1 -1
- package/dist/esm/import/SceneImporter.js +23 -13
- package/dist/esm/import/SceneImporter.js.map +1 -1
- package/dist/esm/import/SpineImporter.js +20 -20
- package/dist/esm/import/SpineImporter.js.map +1 -1
- package/dist/esm/import/SpriterImporter.js +38 -46
- package/dist/esm/import/SpriterImporter.js.map +1 -1
- package/dist/esm/import/TiledMapImporter.js +20 -24
- package/dist/esm/import/TiledMapImporter.js.map +1 -1
- package/dist/esm/import/UnitySceneImporter.js +15 -15
- package/dist/esm/import/UnitySceneImporter.js.map +1 -1
- package/dist/esm/index.js +76 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/GamepadNavigation.js +82 -47
- package/dist/esm/input/GamepadNavigation.js.map +1 -1
- package/dist/esm/input/InputManager.js +107 -52
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/useGamepads.js +35 -29
- package/dist/esm/input/useGamepads.js.map +1 -1
- package/dist/esm/integration/IconSprite.js +39 -21
- package/dist/esm/integration/IconSprite.js.map +1 -1
- package/dist/esm/inventory/InventorySystem.js +218 -127
- package/dist/esm/inventory/InventorySystem.js.map +1 -1
- package/dist/esm/kids/KidMode.js +491 -78
- package/dist/esm/kids/KidMode.js.map +1 -1
- package/dist/esm/kids/KidTools.js +154 -48
- package/dist/esm/kids/KidTools.js.map +1 -1
- package/dist/esm/monetization/Monetization.js +47 -35
- package/dist/esm/monetization/Monetization.js.map +1 -1
- package/dist/esm/multiplayer/LocalMultiplayer.js +48 -26
- package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -1
- package/dist/esm/multiplayer/MiniGameTypes.js +23 -10
- package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -1
- package/dist/esm/native-engine/AssetPipeline.js +537 -0
- package/dist/esm/native-engine/AssetPipeline.js.map +1 -0
- package/dist/esm/native-engine/AudioEngine.js +822 -0
- package/dist/esm/native-engine/AudioEngine.js.map +1 -0
- package/dist/esm/native-engine/InputSystem.js +1170 -0
- package/dist/esm/native-engine/InputSystem.js.map +1 -0
- package/dist/esm/native-engine/NetworkingSystem.js +817 -0
- package/dist/esm/native-engine/NetworkingSystem.js.map +1 -0
- package/dist/esm/native-engine/PhysicsEngine.js +619 -0
- package/dist/esm/native-engine/PhysicsEngine.js.map +1 -0
- package/dist/esm/native-engine/RenderingEngine.js +368 -0
- package/dist/esm/native-engine/RenderingEngine.js.map +1 -0
- package/dist/esm/native-engine/SceneGraph.js +857 -0
- package/dist/esm/native-engine/SceneGraph.js.map +1 -0
- package/dist/esm/network/MultiplayerTransport.js +63 -33
- package/dist/esm/network/MultiplayerTransport.js.map +1 -1
- package/dist/esm/network/Networking.js +87 -62
- package/dist/esm/network/Networking.js.map +1 -1
- package/dist/esm/pathfinding/Pathfinding.js +71 -26
- package/dist/esm/pathfinding/Pathfinding.js.map +1 -1
- package/dist/esm/performance/AssetStreaming.js +649 -0
- package/dist/esm/performance/AssetStreaming.js.map +1 -0
- package/dist/esm/performance/BenchmarkSuite.js +37 -24
- package/dist/esm/performance/BenchmarkSuite.js.map +1 -1
- package/dist/esm/performance/DeltaCompression.js +554 -0
- package/dist/esm/performance/DeltaCompression.js.map +1 -0
- package/dist/esm/performance/DeterministicPhysics.js +573 -0
- package/dist/esm/performance/DeterministicPhysics.js.map +1 -0
- package/dist/esm/performance/ECSOptimization.js +716 -0
- package/dist/esm/performance/ECSOptimization.js.map +1 -0
- package/dist/esm/performance/HotReload.js +517 -0
- package/dist/esm/performance/HotReload.js.map +1 -0
- package/dist/esm/performance/InputRecording.js +580 -0
- package/dist/esm/performance/InputRecording.js.map +1 -0
- package/dist/esm/performance/InterestManagement.js +524 -0
- package/dist/esm/performance/InterestManagement.js.map +1 -0
- package/dist/esm/performance/LocalizationRuntime.js +465 -0
- package/dist/esm/performance/LocalizationRuntime.js.map +1 -0
- package/dist/esm/performance/MemoryManagement.js +481 -0
- package/dist/esm/performance/MemoryManagement.js.map +1 -0
- package/dist/esm/performance/ModSupport.js +520 -0
- package/dist/esm/performance/ModSupport.js.map +1 -0
- package/dist/esm/performance/MultiThreadedPhysics.js +491 -0
- package/dist/esm/performance/MultiThreadedPhysics.js.map +1 -0
- package/dist/esm/performance/NetworkPrediction.js +508 -0
- package/dist/esm/performance/NetworkPrediction.js.map +1 -0
- package/dist/esm/performance/ObjectPooling.js +639 -0
- package/dist/esm/performance/ObjectPooling.js.map +1 -0
- package/dist/esm/performance/Performance.js +64 -25
- package/dist/esm/performance/Performance.js.map +1 -1
- package/dist/esm/performance/PerformanceAdvanced.js +83 -49
- package/dist/esm/performance/PerformanceAdvanced.js.map +1 -1
- package/dist/esm/performance/SaveSystem.js +567 -0
- package/dist/esm/performance/SaveSystem.js.map +1 -0
- package/dist/esm/performance/WebGPURenderer.js +697 -0
- package/dist/esm/performance/WebGPURenderer.js.map +1 -0
- package/dist/esm/physics/PhysicsAdvanced.js +32 -20
- package/dist/esm/physics/PhysicsAdvanced.js.map +1 -1
- package/dist/esm/physics/PhysicsEngine2D.js +63 -36
- package/dist/esm/physics/PhysicsEngine2D.js.map +1 -1
- package/dist/esm/plugins/PluginSDK.js +46 -34
- package/dist/esm/plugins/PluginSDK.js.map +1 -1
- package/dist/esm/plugins/PluginTestKit.js +28 -29
- package/dist/esm/plugins/PluginTestKit.js.map +1 -1
- package/dist/esm/procedural/Procedural.js +24 -17
- package/dist/esm/procedural/Procedural.js.map +1 -1
- package/dist/esm/procedural/WorldBuilding.js +188 -55
- package/dist/esm/procedural/WorldBuilding.js.map +1 -1
- package/dist/esm/quest/QuestSystem.js +145 -111
- package/dist/esm/quest/QuestSystem.js.map +1 -1
- package/dist/esm/release/Release.js +142 -31
- package/dist/esm/release/Release.js.map +1 -1
- package/dist/esm/rendering/Camera2D.js +12 -7
- package/dist/esm/rendering/Camera2D.js.map +1 -1
- package/dist/esm/rendering/Renderer2D.js +62 -26
- package/dist/esm/rendering/Renderer2D.js.map +1 -1
- package/dist/esm/rendering/WebGPURenderPipeline.js +60 -31
- package/dist/esm/rendering/WebGPURenderPipeline.js.map +1 -1
- package/dist/esm/runtime3d/Runtime3D.js +80 -55
- package/dist/esm/runtime3d/Runtime3D.js.map +1 -1
- package/dist/esm/runtime3d/SceneEditor3D.js +20 -11
- package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -1
- package/dist/esm/scene/SceneManager.js +26 -12
- package/dist/esm/scene/SceneManager.js.map +1 -1
- package/dist/esm/scripting/GraphToAST.js +36 -24
- package/dist/esm/scripting/GraphToAST.js.map +1 -1
- package/dist/esm/scripting/LanguageExporter.js +2 -3
- package/dist/esm/scripting/LanguageExporter.js.map +1 -1
- package/dist/esm/scripting/NodeGraph.js +49 -32
- package/dist/esm/scripting/NodeGraph.js.map +1 -1
- package/dist/esm/scripting/ScriptAST.js +19 -6
- package/dist/esm/scripting/ScriptAST.js.map +1 -1
- package/dist/esm/scripting/VisualScripting2.js +13 -12
- package/dist/esm/scripting/VisualScripting2.js.map +1 -1
- package/dist/esm/scripting/exporters/CSharpExporter.js +16 -16
- package/dist/esm/scripting/exporters/CSharpExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/GDScriptExporter.js +3 -6
- package/dist/esm/scripting/exporters/GDScriptExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/LuaExporter.js +5 -9
- package/dist/esm/scripting/exporters/LuaExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/PythonExporter.js +7 -13
- package/dist/esm/scripting/exporters/PythonExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/RustExporter.js +7 -14
- package/dist/esm/scripting/exporters/RustExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/TypeScriptExporter.js +28 -29
- package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +1 -1
- package/dist/esm/social/Social.js +27 -20
- package/dist/esm/social/Social.js.map +1 -1
- package/dist/esm/systems/LightingSystem.js +968 -0
- package/dist/esm/systems/LightingSystem.js.map +1 -0
- package/dist/esm/systems/ParticleSystem2.js +34 -17
- package/dist/esm/systems/ParticleSystem2.js.map +1 -1
- package/dist/esm/systems/PhysicsDebugSystem.js +1219 -0
- package/dist/esm/systems/PhysicsDebugSystem.js.map +1 -0
- package/dist/esm/systems/TerrainSystem.js +1125 -0
- package/dist/esm/systems/TerrainSystem.js.map +1 -0
- package/dist/esm/templates/ActionTemplates.js +144 -24
- package/dist/esm/templates/ActionTemplates.js.map +1 -1
- package/dist/esm/templates/FightingTemplate.js +513 -0
- package/dist/esm/templates/FightingTemplate.js.map +1 -0
- package/dist/esm/templates/MetroidvaniaTemplate.js +484 -0
- package/dist/esm/templates/MetroidvaniaTemplate.js.map +1 -0
- package/dist/esm/templates/PartyTemplates.js +60 -28
- package/dist/esm/templates/PartyTemplates.js.map +1 -1
- package/dist/esm/templates/PuzzleTemplates.js +63 -22
- package/dist/esm/templates/PuzzleTemplates.js.map +1 -1
- package/dist/esm/templates/RPGTemplates.js +29 -15
- package/dist/esm/templates/RPGTemplates.js.map +1 -1
- package/dist/esm/templates/SportsTemplates.js +41 -17
- package/dist/esm/templates/SportsTemplates.js.map +1 -1
- package/dist/esm/templates/StrategyTemplates.js +45 -18
- package/dist/esm/templates/StrategyTemplates.js.map +1 -1
- package/dist/esm/templates/SurvivalTemplate.js +447 -0
- package/dist/esm/templates/SurvivalTemplate.js.map +1 -0
- package/dist/esm/templates/WaveDefense.js +139 -52
- package/dist/esm/templates/WaveDefense.js.map +1 -1
- package/dist/esm/tilemap/Tilemap.js +48 -32
- package/dist/esm/tilemap/Tilemap.js.map +1 -1
- package/dist/esm/tutorials/TutorialBranching.js +111 -42
- package/dist/esm/tutorials/TutorialBranching.js.map +1 -1
- package/dist/esm/tutorials/TutorialEngine.js +152 -80
- package/dist/esm/tutorials/TutorialEngine.js.map +1 -1
- package/dist/esm/tutorials/TutorialOverlay.js +117 -40
- package/dist/esm/tutorials/TutorialOverlay.js.map +1 -1
- package/dist/esm/ui/GameUI.js +69 -42
- package/dist/esm/ui/GameUI.js.map +1 -1
- package/dist/esm/unity-integration/UnityAssetStore.js +749 -0
- package/dist/esm/unity-integration/UnityAssetStore.js.map +1 -0
- package/dist/esm/unity-integration/UnityImport.js +1246 -0
- package/dist/esm/unity-integration/UnityImport.js.map +1 -0
- package/dist/esm/unity-integration/UnityLiveLink.js +1017 -0
- package/dist/esm/unity-integration/UnityLiveLink.js.map +1 -0
- package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js +794 -0
- package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js.map +1 -0
- package/dist/esm/unity-integration/components/UnityProjectBrowser.js +831 -0
- package/dist/esm/unity-integration/components/UnityProjectBrowser.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealImport.js +437 -0
- package/dist/esm/unreal-integration/UnrealImport.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealLiveLink.js +1182 -0
- package/dist/esm/unreal-integration/UnrealLiveLink.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealMarketplace.js +490 -0
- package/dist/esm/unreal-integration/UnrealMarketplace.js.map +1 -0
- package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js +833 -0
- package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js.map +1 -0
- package/dist/esm/xr/ARVR.js +32 -9
- package/dist/esm/xr/ARVR.js.map +1 -1
- package/package.json +7 -6
|
@@ -0,0 +1,484 @@
|
|
|
1
|
+
/* ────────────────────────────────────────────────────────────────
|
|
2
|
+
PRO-1.6 — Metroidvania Template
|
|
3
|
+
|
|
4
|
+
Features:
|
|
5
|
+
- Interconnected map with zones
|
|
6
|
+
- Ability-gated progression
|
|
7
|
+
- Powerup system
|
|
8
|
+
- Map reveal/fog of war
|
|
9
|
+
- Save rooms/checkpoints
|
|
10
|
+
- Boss encounters
|
|
11
|
+
- Backtracking mechanics
|
|
12
|
+
──────────────────────────────────────────────────────────────── */
|
|
13
|
+
// ============================================================
|
|
14
|
+
// Default Configuration
|
|
15
|
+
// ============================================================
|
|
16
|
+
const DEFAULT_METROIDVANIA_CONFIG = {
|
|
17
|
+
baseHealth: 100,
|
|
18
|
+
baseEnergy: 100,
|
|
19
|
+
healthPerTank: 25,
|
|
20
|
+
energyPerTank: 25,
|
|
21
|
+
baseDamage: 10,
|
|
22
|
+
baseDefense: 0,
|
|
23
|
+
baseMoveSpeed: 300,
|
|
24
|
+
baseJumpHeight: 400,
|
|
25
|
+
doubleJumpMultiplier: 0.9,
|
|
26
|
+
dashSpeed: 800,
|
|
27
|
+
dashDuration: 0.15,
|
|
28
|
+
dashCooldown: 0.5,
|
|
29
|
+
grappleSpeed: 1000,
|
|
30
|
+
grappleRange: 250,
|
|
31
|
+
respawnInvincibility: 2,
|
|
32
|
+
itemRespawnOnDeath: true,
|
|
33
|
+
};
|
|
34
|
+
// ============================================================
|
|
35
|
+
// State Management
|
|
36
|
+
// ============================================================
|
|
37
|
+
function createMetroidvaniaState(config) {
|
|
38
|
+
return {
|
|
39
|
+
playerStats: {
|
|
40
|
+
maxHealth: config.baseHealth,
|
|
41
|
+
currentHealth: config.baseHealth,
|
|
42
|
+
maxEnergy: config.baseEnergy,
|
|
43
|
+
currentEnergy: config.baseEnergy,
|
|
44
|
+
attackPower: config.baseDamage,
|
|
45
|
+
defense: config.baseDefense,
|
|
46
|
+
moveSpeed: config.baseMoveSpeed,
|
|
47
|
+
jumpHeight: config.baseJumpHeight,
|
|
48
|
+
},
|
|
49
|
+
position: { x: 0, y: 0 },
|
|
50
|
+
currentRoom: 'start',
|
|
51
|
+
velocity: { x: 0, y: 0 },
|
|
52
|
+
facing: 1,
|
|
53
|
+
abilities: [],
|
|
54
|
+
weapons: ['default'],
|
|
55
|
+
activeWeapon: 'default',
|
|
56
|
+
ammo: {},
|
|
57
|
+
maxAmmo: {},
|
|
58
|
+
keys: [],
|
|
59
|
+
collectibles: [],
|
|
60
|
+
map: new Map(),
|
|
61
|
+
zones: [],
|
|
62
|
+
totalCompletion: 0,
|
|
63
|
+
playTime: 0,
|
|
64
|
+
deaths: 0,
|
|
65
|
+
lastSaveRoom: 'start',
|
|
66
|
+
bossesDefeated: [],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// ============================================================
|
|
70
|
+
// Ability System
|
|
71
|
+
// ============================================================
|
|
72
|
+
function hasAbility(state, ability) {
|
|
73
|
+
return state.abilities.includes(ability);
|
|
74
|
+
}
|
|
75
|
+
function grantAbility(state, ability) {
|
|
76
|
+
if (!state.abilities.includes(ability)) {
|
|
77
|
+
state.abilities.push(ability);
|
|
78
|
+
updateCompletion(state);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function canUseAbility(state, ability) {
|
|
82
|
+
if (!hasAbility(state, ability)) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
// Energy cost for abilities
|
|
86
|
+
const energyCost = {
|
|
87
|
+
dash: 5,
|
|
88
|
+
air_dash: 10,
|
|
89
|
+
grapple: 5,
|
|
90
|
+
super_jump: 15,
|
|
91
|
+
phase: 20,
|
|
92
|
+
float: 2, // per second
|
|
93
|
+
};
|
|
94
|
+
const cost = energyCost[ability] ?? 0;
|
|
95
|
+
return state.playerStats.currentEnergy >= cost;
|
|
96
|
+
}
|
|
97
|
+
function useAbility(state, ability) {
|
|
98
|
+
if (!canUseAbility(state, ability)) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
const energyCost = {
|
|
102
|
+
dash: 5,
|
|
103
|
+
air_dash: 10,
|
|
104
|
+
grapple: 5,
|
|
105
|
+
super_jump: 15,
|
|
106
|
+
phase: 20,
|
|
107
|
+
float: 2,
|
|
108
|
+
};
|
|
109
|
+
const cost = energyCost[ability] ?? 0;
|
|
110
|
+
state.playerStats.currentEnergy -= cost;
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
// ============================================================
|
|
114
|
+
// Weapon System
|
|
115
|
+
// ============================================================
|
|
116
|
+
function hasWeapon(state, weapon) {
|
|
117
|
+
return state.weapons.includes(weapon);
|
|
118
|
+
}
|
|
119
|
+
function grantWeapon(state, weapon) {
|
|
120
|
+
if (!state.weapons.includes(weapon)) {
|
|
121
|
+
state.weapons.push(weapon);
|
|
122
|
+
state.maxAmmo[weapon] = getDefaultMaxAmmo(weapon);
|
|
123
|
+
state.ammo[weapon] = state.maxAmmo[weapon];
|
|
124
|
+
updateCompletion(state);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function getDefaultMaxAmmo(weapon) {
|
|
128
|
+
const ammoLimits = {
|
|
129
|
+
missiles: 10,
|
|
130
|
+
super_missiles: 5,
|
|
131
|
+
bombs: 3,
|
|
132
|
+
power_bombs: 3,
|
|
133
|
+
};
|
|
134
|
+
return ammoLimits[weapon] ?? Infinity;
|
|
135
|
+
}
|
|
136
|
+
function canFire(state, weapon) {
|
|
137
|
+
if (!hasWeapon(state, weapon)) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
const currentAmmo = state.ammo[weapon];
|
|
141
|
+
if (currentAmmo !== undefined && currentAmmo <= 0) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
// Energy cost for beam weapons
|
|
145
|
+
const energyCost = {
|
|
146
|
+
charged_shot: 10,
|
|
147
|
+
ice_beam: 3,
|
|
148
|
+
fire_beam: 3,
|
|
149
|
+
wave_beam: 5,
|
|
150
|
+
};
|
|
151
|
+
const cost = energyCost[weapon] ?? 0;
|
|
152
|
+
return state.playerStats.currentEnergy >= cost;
|
|
153
|
+
}
|
|
154
|
+
function fireWeapon(state, weapon) {
|
|
155
|
+
if (!canFire(state, weapon)) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
const currentAmmo = state.ammo[weapon];
|
|
159
|
+
if (currentAmmo !== undefined) {
|
|
160
|
+
state.ammo[weapon] = currentAmmo - 1;
|
|
161
|
+
}
|
|
162
|
+
const energyCost = {
|
|
163
|
+
charged_shot: 10,
|
|
164
|
+
ice_beam: 3,
|
|
165
|
+
fire_beam: 3,
|
|
166
|
+
wave_beam: 5,
|
|
167
|
+
};
|
|
168
|
+
const cost = energyCost[weapon] ?? 0;
|
|
169
|
+
state.playerStats.currentEnergy -= cost;
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
function getWeaponDamage(baseAttack, weapon, charged = false) {
|
|
173
|
+
const weaponMultipliers = {
|
|
174
|
+
default: 1,
|
|
175
|
+
charged_shot: 3,
|
|
176
|
+
missiles: 4,
|
|
177
|
+
super_missiles: 8,
|
|
178
|
+
bombs: 2,
|
|
179
|
+
power_bombs: 10,
|
|
180
|
+
ice_beam: 1.5,
|
|
181
|
+
fire_beam: 2,
|
|
182
|
+
wave_beam: 1.8,
|
|
183
|
+
};
|
|
184
|
+
let damage = baseAttack * (weaponMultipliers[weapon] ?? 1);
|
|
185
|
+
if (charged && weapon === 'default') {
|
|
186
|
+
damage *= 2;
|
|
187
|
+
}
|
|
188
|
+
return Math.floor(damage);
|
|
189
|
+
}
|
|
190
|
+
// ============================================================
|
|
191
|
+
// Movement / Physics Helpers
|
|
192
|
+
// ============================================================
|
|
193
|
+
function canDoubleJump(state, hasJumped) {
|
|
194
|
+
return hasAbility(state, 'double_jump') && hasJumped;
|
|
195
|
+
}
|
|
196
|
+
function canWallJump(state, touchingWall) {
|
|
197
|
+
return hasAbility(state, 'wall_jump') && touchingWall;
|
|
198
|
+
}
|
|
199
|
+
function canDash(state, onGround, dashCooldownRemaining) {
|
|
200
|
+
const hasDash = hasAbility(state, 'dash') || (hasAbility(state, 'air_dash') && !onGround);
|
|
201
|
+
return hasDash && dashCooldownRemaining <= 0 && canUseAbility(state, 'dash');
|
|
202
|
+
}
|
|
203
|
+
function canGrapple(state, grappleTarget) {
|
|
204
|
+
return hasAbility(state, 'grapple') && grappleTarget !== null && canUseAbility(state, 'grapple');
|
|
205
|
+
}
|
|
206
|
+
function canSwim(state) {
|
|
207
|
+
return hasAbility(state, 'swim');
|
|
208
|
+
}
|
|
209
|
+
function canDive(state) {
|
|
210
|
+
return hasAbility(state, 'dive');
|
|
211
|
+
}
|
|
212
|
+
function canMorph(state) {
|
|
213
|
+
return hasAbility(state, 'morph_ball');
|
|
214
|
+
}
|
|
215
|
+
// ============================================================
|
|
216
|
+
// Map / Room Management
|
|
217
|
+
// ============================================================
|
|
218
|
+
function canEnterRoom(state, room) {
|
|
219
|
+
for (const req of room.requirements) {
|
|
220
|
+
if (!hasAbility(state, req)) {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
226
|
+
function canUseConnection(state, connection) {
|
|
227
|
+
if (connection.locked && connection.keyRequired) {
|
|
228
|
+
if (!state.keys.includes(connection.keyRequired)) {
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (connection.requirement && !hasAbility(state, connection.requirement)) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
function discoverRoom(state, roomId) {
|
|
238
|
+
const room = state.map.get(roomId);
|
|
239
|
+
if (room && !room.discovered) {
|
|
240
|
+
room.discovered = true;
|
|
241
|
+
updateCompletion(state);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
function clearRoom(state, roomId) {
|
|
245
|
+
const room = state.map.get(roomId);
|
|
246
|
+
if (room && !room.cleared) {
|
|
247
|
+
// Check all enemies defeated and items collected
|
|
248
|
+
const enemiesCleared = room.enemies.every((e) => e.defeated || !e.respawns);
|
|
249
|
+
const itemsCollected = room.items.every((i) => i.collected);
|
|
250
|
+
if (enemiesCleared && itemsCollected) {
|
|
251
|
+
room.cleared = true;
|
|
252
|
+
updateCompletion(state);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
function revealSecretWall(room, secretId) {
|
|
257
|
+
const secret = room.secretWalls.find((s) => s.id === secretId);
|
|
258
|
+
if (secret) {
|
|
259
|
+
secret.revealed = true;
|
|
260
|
+
}
|
|
261
|
+
return secret;
|
|
262
|
+
}
|
|
263
|
+
// ============================================================
|
|
264
|
+
// Item Collection
|
|
265
|
+
// ============================================================
|
|
266
|
+
function collectItem(state, room, itemId, config) {
|
|
267
|
+
const item = room.items.find((i) => i.id === itemId);
|
|
268
|
+
if (!item || item.collected) {
|
|
269
|
+
return undefined;
|
|
270
|
+
}
|
|
271
|
+
item.collected = true;
|
|
272
|
+
state.collectibles.push(itemId);
|
|
273
|
+
// Apply item effect
|
|
274
|
+
switch (item.type) {
|
|
275
|
+
case 'ability':
|
|
276
|
+
grantAbility(state, item.subtype);
|
|
277
|
+
break;
|
|
278
|
+
case 'weapon':
|
|
279
|
+
grantWeapon(state, item.subtype);
|
|
280
|
+
break;
|
|
281
|
+
case 'upgrade':
|
|
282
|
+
applyUpgrade(state, item.subtype, config);
|
|
283
|
+
break;
|
|
284
|
+
case 'key':
|
|
285
|
+
state.keys.push(item.subtype);
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
updateCompletion(state);
|
|
289
|
+
return item;
|
|
290
|
+
}
|
|
291
|
+
function applyUpgrade(state, type, config) {
|
|
292
|
+
switch (type) {
|
|
293
|
+
case 'health_tank':
|
|
294
|
+
state.playerStats.maxHealth += config.healthPerTank;
|
|
295
|
+
state.playerStats.currentHealth += config.healthPerTank;
|
|
296
|
+
break;
|
|
297
|
+
case 'energy_tank':
|
|
298
|
+
state.playerStats.maxEnergy += config.energyPerTank;
|
|
299
|
+
state.playerStats.currentEnergy += config.energyPerTank;
|
|
300
|
+
break;
|
|
301
|
+
case 'ammo_expansion':
|
|
302
|
+
for (const weapon of state.weapons) {
|
|
303
|
+
if (state.maxAmmo[weapon] !== undefined && state.maxAmmo[weapon] < Infinity) {
|
|
304
|
+
state.maxAmmo[weapon] = (state.maxAmmo[weapon] ?? 0) + 5;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
break;
|
|
308
|
+
case 'damage_up':
|
|
309
|
+
state.playerStats.attackPower += 5;
|
|
310
|
+
break;
|
|
311
|
+
case 'defense_up':
|
|
312
|
+
state.playerStats.defense += 2;
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
// ============================================================
|
|
317
|
+
// Boss System
|
|
318
|
+
// ============================================================
|
|
319
|
+
function isBossDefeated(state, bossId) {
|
|
320
|
+
return state.bossesDefeated.includes(bossId);
|
|
321
|
+
}
|
|
322
|
+
function defeatBoss(state, bossId, zoneId) {
|
|
323
|
+
if (!state.bossesDefeated.includes(bossId)) {
|
|
324
|
+
state.bossesDefeated.push(bossId);
|
|
325
|
+
const zone = state.zones.find((z) => z.id === zoneId);
|
|
326
|
+
if (zone && zone.boss === bossId) {
|
|
327
|
+
zone.bossDefeated = true;
|
|
328
|
+
}
|
|
329
|
+
updateCompletion(state);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
// ============================================================
|
|
333
|
+
// Save / Load
|
|
334
|
+
// ============================================================
|
|
335
|
+
function saveGame(state) {
|
|
336
|
+
const room = state.map.get(state.currentRoom);
|
|
337
|
+
if (room?.isSaveRoom) {
|
|
338
|
+
state.lastSaveRoom = state.currentRoom;
|
|
339
|
+
state.playerStats.currentHealth = state.playerStats.maxHealth;
|
|
340
|
+
state.playerStats.currentEnergy = state.playerStats.maxEnergy;
|
|
341
|
+
// Refill ammo
|
|
342
|
+
for (const weapon of state.weapons) {
|
|
343
|
+
if (state.maxAmmo[weapon] !== undefined) {
|
|
344
|
+
state.ammo[weapon] = state.maxAmmo[weapon];
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
function respawn(state, config) {
|
|
350
|
+
state.deaths++;
|
|
351
|
+
state.currentRoom = state.lastSaveRoom;
|
|
352
|
+
state.position = { x: 0, y: 0 }; // Would be set to save room spawn
|
|
353
|
+
state.playerStats.currentHealth = state.playerStats.maxHealth;
|
|
354
|
+
state.playerStats.currentEnergy = state.playerStats.maxEnergy;
|
|
355
|
+
// Refill ammo
|
|
356
|
+
for (const weapon of state.weapons) {
|
|
357
|
+
if (state.maxAmmo[weapon] !== undefined) {
|
|
358
|
+
state.ammo[weapon] = state.maxAmmo[weapon];
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
// Optionally respawn items
|
|
362
|
+
if (config.itemRespawnOnDeath) ;
|
|
363
|
+
}
|
|
364
|
+
// ============================================================
|
|
365
|
+
// Completion Tracking
|
|
366
|
+
// ============================================================
|
|
367
|
+
function updateCompletion(state) {
|
|
368
|
+
let totalItems = 0;
|
|
369
|
+
let collectedItems = 0;
|
|
370
|
+
for (const room of state.map.values()) {
|
|
371
|
+
totalItems += room.items.length;
|
|
372
|
+
collectedItems += room.items.filter((i) => i.collected).length;
|
|
373
|
+
}
|
|
374
|
+
const totalBosses = state.zones.length;
|
|
375
|
+
const defeatedBosses = state.bossesDefeated.length;
|
|
376
|
+
const itemCompletion = totalItems > 0 ? collectedItems / totalItems : 0;
|
|
377
|
+
const bossCompletion = totalBosses > 0 ? defeatedBosses / totalBosses : 0;
|
|
378
|
+
state.totalCompletion = Math.round((itemCompletion * 0.7 + bossCompletion * 0.3) * 100);
|
|
379
|
+
}
|
|
380
|
+
function getMapCompletion(state) {
|
|
381
|
+
let roomsDiscovered = 0;
|
|
382
|
+
let roomsCleared = 0;
|
|
383
|
+
let itemsCollected = 0;
|
|
384
|
+
let totalItems = 0;
|
|
385
|
+
for (const room of state.map.values()) {
|
|
386
|
+
if (room.discovered) {
|
|
387
|
+
roomsDiscovered++;
|
|
388
|
+
}
|
|
389
|
+
if (room.cleared) {
|
|
390
|
+
roomsCleared++;
|
|
391
|
+
}
|
|
392
|
+
totalItems += room.items.length;
|
|
393
|
+
itemsCollected += room.items.filter((i) => i.collected).length;
|
|
394
|
+
}
|
|
395
|
+
return {
|
|
396
|
+
roomsDiscovered,
|
|
397
|
+
totalRooms: state.map.size,
|
|
398
|
+
roomsCleared,
|
|
399
|
+
itemsCollected,
|
|
400
|
+
totalItems,
|
|
401
|
+
bossesDefeated: state.bossesDefeated.length,
|
|
402
|
+
totalBosses: state.zones.length,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
// ============================================================
|
|
406
|
+
// Factory Functions
|
|
407
|
+
// ============================================================
|
|
408
|
+
function createMapRoom(partial) {
|
|
409
|
+
return {
|
|
410
|
+
id: partial.id ?? `room_${Date.now()}`,
|
|
411
|
+
name: partial.name ?? 'Unknown Room',
|
|
412
|
+
zone: partial.zone ?? 'default',
|
|
413
|
+
position: partial.position ?? { x: 0, y: 0 },
|
|
414
|
+
size: partial.size ?? { width: 1, height: 1 },
|
|
415
|
+
connections: partial.connections ?? [],
|
|
416
|
+
requirements: partial.requirements ?? [],
|
|
417
|
+
items: partial.items ?? [],
|
|
418
|
+
enemies: partial.enemies ?? [],
|
|
419
|
+
isSaveRoom: partial.isSaveRoom ?? false,
|
|
420
|
+
isBossRoom: partial.isBossRoom ?? false,
|
|
421
|
+
boss: partial.boss,
|
|
422
|
+
discovered: partial.discovered ?? false,
|
|
423
|
+
cleared: partial.cleared ?? false,
|
|
424
|
+
secretWalls: partial.secretWalls ?? [],
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
function createZone(partial) {
|
|
428
|
+
return {
|
|
429
|
+
id: partial.id ?? 'zone',
|
|
430
|
+
name: partial.name ?? 'Unknown Zone',
|
|
431
|
+
theme: partial.theme ?? 'cave',
|
|
432
|
+
color: partial.color ?? '#666666',
|
|
433
|
+
rooms: partial.rooms ?? [],
|
|
434
|
+
boss: partial.boss ?? '',
|
|
435
|
+
bossDefeated: partial.bossDefeated ?? false,
|
|
436
|
+
requiredAbilities: partial.requiredAbilities ?? [],
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
function createMapItem(type, subtype, position, options) {
|
|
440
|
+
return {
|
|
441
|
+
id: options?.id ?? `item_${Date.now()}_${Math.random().toString(36).slice(2)}`,
|
|
442
|
+
type,
|
|
443
|
+
subtype,
|
|
444
|
+
position: { ...position },
|
|
445
|
+
collected: false,
|
|
446
|
+
hidden: options?.hidden ?? false,
|
|
447
|
+
description: options?.description ?? '',
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
function createRoomEnemy(type, position, health, options) {
|
|
451
|
+
return {
|
|
452
|
+
id: options?.id ?? `enemy_${Date.now()}_${Math.random().toString(36).slice(2)}`,
|
|
453
|
+
type,
|
|
454
|
+
position: { ...position },
|
|
455
|
+
health,
|
|
456
|
+
maxHealth: options?.maxHealth ?? health,
|
|
457
|
+
respawns: options?.respawns ?? true,
|
|
458
|
+
drops: options?.drops,
|
|
459
|
+
defeated: false,
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
function createConnection(direction, targetRoomId, targetEntrance, options) {
|
|
463
|
+
return {
|
|
464
|
+
direction,
|
|
465
|
+
targetRoomId,
|
|
466
|
+
targetEntrance,
|
|
467
|
+
requirement: options?.requirement,
|
|
468
|
+
locked: options?.locked ?? false,
|
|
469
|
+
keyRequired: options?.keyRequired,
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
function createSecretWall(position, size, revealMethod, options) {
|
|
473
|
+
return {
|
|
474
|
+
id: options?.id ?? `secret_${Date.now()}`,
|
|
475
|
+
position: { ...position },
|
|
476
|
+
size: { ...size },
|
|
477
|
+
revealMethod,
|
|
478
|
+
revealed: false,
|
|
479
|
+
leadsTo: options?.leadsTo,
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
export { DEFAULT_METROIDVANIA_CONFIG, applyUpgrade, canDash, canDive, canDoubleJump, canEnterRoom, canFire, canGrapple, canMorph, canSwim, canUseAbility, canUseConnection, canWallJump, clearRoom, collectItem, createConnection, createMapItem, createMapRoom, createMetroidvaniaState, createRoomEnemy, createSecretWall, createZone, defeatBoss, discoverRoom, fireWeapon, getDefaultMaxAmmo, getMapCompletion, getWeaponDamage, grantAbility, grantWeapon, hasAbility, hasWeapon, isBossDefeated, respawn, revealSecretWall, saveGame, updateCompletion, useAbility };
|
|
484
|
+
//# sourceMappingURL=MetroidvaniaTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetroidvaniaTemplate.js","sources":["../../../src/templates/MetroidvaniaTemplate.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;AAWmE;AA+JnE;AACA;AACA;AAEO,MAAM,2BAA2B,GAAuB;AAC7D,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,aAAa,EAAE,EAAE;AACjB,IAAA,aAAa,EAAE,EAAE;AACjB,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,oBAAoB,EAAE,GAAG;AACzB,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,oBAAoB,EAAE,CAAC;AACvB,IAAA,kBAAkB,EAAE,IAAI;;AAG1B;AACA;AACA;AAEM,SAAU,uBAAuB,CAAC,MAA0B,EAAA;IAChE,OAAO;AACL,QAAA,WAAW,EAAE;YACX,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,aAAa,EAAE,MAAM,CAAC,UAAU;YAChC,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,aAAa,EAAE,MAAM,CAAC,UAAU;YAChC,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,OAAO,EAAE,MAAM,CAAC,WAAW;YAC3B,SAAS,EAAE,MAAM,CAAC,aAAa;YAC/B,UAAU,EAAE,MAAM,CAAC,cAAc;AAClC,SAAA;QACD,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxB,QAAA,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxB,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,CAAC,SAAS,CAAC;AACpB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,YAAY,EAAE,EAAE;QAChB,GAAG,EAAE,IAAI,GAAG,EAAE;AACd,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,eAAe,EAAE,CAAC;AAClB,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,cAAc,EAAE,EAAE;KACnB;AACH;AAEA;AACA;AACA;AAEM,SAAU,UAAU,CAAC,KAAwB,EAAE,OAAgB,EAAA;IACnE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C;AAEM,SAAU,YAAY,CAAC,KAAwB,EAAE,OAAgB,EAAA;IACrE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACtC,QAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,gBAAgB,CAAC,KAAK,CAAC;IACzB;AACF;AAEM,SAAU,aAAa,CAAC,KAAwB,EAAE,OAAgB,EAAA;IACtE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AAC/B,QAAA,OAAO,KAAK;IACd;;AAGA,IAAA,MAAM,UAAU,GAAqC;AACnD,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,CAAC;KACT;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,IAAA,OAAO,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,IAAI;AAChD;AAEM,SAAU,UAAU,CAAC,KAAwB,EAAE,OAAgB,EAAA;IACnE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AAClC,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,UAAU,GAAqC;AACnD,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,KAAK,EAAE,CAAC;KACT;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,IAAA,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,IAAI;AACvC,IAAA,OAAO,IAAI;AACb;AAEA;AACA;AACA;AAEM,SAAU,SAAS,CAAC,KAAwB,EAAE,MAAc,EAAA;IAChE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AACvC;AAEM,SAAU,WAAW,CAAC,KAAwB,EAAE,MAAc,EAAA;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACnC,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;AACjD,QAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1C,gBAAgB,CAAC,KAAK,CAAC;IACzB;AACF;AAEM,SAAU,iBAAiB,CAAC,MAAc,EAAA;AAC9C,IAAA,MAAM,UAAU,GAAoC;AAClD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,cAAc,EAAE,CAAC;AACjB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,WAAW,EAAE,CAAC;KACf;AACD,IAAA,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ;AACvC;AAEM,SAAU,OAAO,CAAC,KAAwB,EAAE,MAAc,EAAA;IAC9D,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,IAAI,CAAC,EAAE;AACjD,QAAA,OAAO,KAAK;IACd;;AAGA,IAAA,MAAM,UAAU,GAAoC;AAClD,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,SAAS,EAAE,CAAC;KACb;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,IAAA,OAAO,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,IAAI;AAChD;AAEM,SAAU,UAAU,CAAC,KAAwB,EAAE,MAAc,EAAA;IACjE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;AAC3B,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,IAAA,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,WAAW,GAAG,CAAC;IACtC;AAEA,IAAA,MAAM,UAAU,GAAoC;AAClD,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,SAAS,EAAE,CAAC;KACb;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,IAAA,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,IAAI;AAEvC,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,eAAe,CAC7B,UAAkB,EAClB,MAAc,EACd,UAAmB,KAAK,EAAA;AAExB,IAAA,MAAM,iBAAiB,GAA2B;AAChD,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,YAAY,EAAE,CAAC;AACf,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,cAAc,EAAE,CAAC;AACjB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,SAAS,EAAE,GAAG;KACf;AAED,IAAA,IAAI,MAAM,GAAG,UAAU,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1D,IAAA,IAAI,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE;QACnC,MAAM,IAAI,CAAC;IACb;AAEA,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B;AAEA;AACA;AACA;AAEM,SAAU,aAAa,CAAC,KAAwB,EAAE,SAAkB,EAAA;IACxE,OAAO,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,SAAS;AACtD;AAEM,SAAU,WAAW,CAAC,KAAwB,EAAE,YAAqB,EAAA;IACzE,OAAO,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,YAAY;AACvD;SAEgB,OAAO,CACrB,KAAwB,EACxB,QAAiB,EACjB,qBAA6B,EAAA;IAE7B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AACzF,IAAA,OAAO,OAAO,IAAI,qBAAqB,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;AAC9E;AAEM,SAAU,UAAU,CAAC,KAAwB,EAAE,aAA0B,EAAA;AAC7E,IAAA,OAAO,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;AAClG;AAEM,SAAU,OAAO,CAAC,KAAwB,EAAA;AAC9C,IAAA,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;AAClC;AAEM,SAAU,OAAO,CAAC,KAAwB,EAAA;AAC9C,IAAA,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;AAClC;AAEM,SAAU,QAAQ,CAAC,KAAwB,EAAA;AAC/C,IAAA,OAAO,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC;AACxC;AAEA;AACA;AACA;AAEM,SAAU,YAAY,CAAC,KAAwB,EAAE,IAAa,EAAA;AAClE,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE;QACnC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AAC3B,YAAA,OAAO,KAAK;QACd;IACF;AACA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,gBAAgB,CAAC,KAAwB,EAAE,UAA0B,EAAA;IACnF,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE;AAC/C,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AAChD,YAAA,OAAO,KAAK;QACd;IACF;AACA,IAAA,IAAI,UAAU,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE;AACxE,QAAA,OAAO,KAAK;IACd;AACA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,YAAY,CAAC,KAAwB,EAAE,MAAc,EAAA;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AAClC,IAAA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,gBAAgB,CAAC,KAAK,CAAC;IACzB;AACF;AAEM,SAAU,SAAS,CAAC,KAAwB,EAAE,MAAc,EAAA;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AAClC,IAAA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;;QAEzB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3E,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AAC3D,QAAA,IAAI,cAAc,IAAI,cAAc,EAAE;AACpC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACnB,gBAAgB,CAAC,KAAK,CAAC;QACzB;IACF;AACF;AAEM,SAAU,gBAAgB,CAAC,IAAa,EAAE,QAAgB,EAAA;AAC9D,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC;IAC9D,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;IACxB;AACA,IAAA,OAAO,MAAM;AACf;AAEA;AACA;AACA;AAEM,SAAU,WAAW,CACzB,KAAwB,EACxB,IAAa,EACb,MAAc,EACd,MAA0B,EAAA;AAE1B,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;AACpD,IAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AAC3B,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,IAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG/B,IAAA,QAAQ,IAAI,CAAC,IAAI;AACf,QAAA,KAAK,SAAS;AACZ,YAAA,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,OAAkB,CAAC;YAC5C;AACF,QAAA,KAAK,QAAQ;AACX,YAAA,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAiB,CAAC;YAC1C;AACF,QAAA,KAAK,SAAS;YACZ,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,OAAsB,EAAE,MAAM,CAAC;YACxD;AACF,QAAA,KAAK,KAAK;YACR,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B;;IAGJ,gBAAgB,CAAC,KAAK,CAAC;AACvB,IAAA,OAAO,IAAI;AACb;SAEgB,YAAY,CAC1B,KAAwB,EACxB,IAAiB,EACjB,MAA0B,EAAA;IAE1B,QAAQ,IAAI;AACV,QAAA,KAAK,aAAa;YAChB,KAAK,CAAC,WAAW,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa;YACnD,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa;YACvD;AACF,QAAA,KAAK,aAAa;YAChB,KAAK,CAAC,WAAW,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa;YACnD,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa;YACvD;AACF,QAAA,KAAK,gBAAgB;AACnB,YAAA,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AAClC,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAE,GAAG,QAAQ,EAAE;AAC5E,oBAAA,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1D;YACF;YACA;AACF,QAAA,KAAK,WAAW;AACd,YAAA,KAAK,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC;YAClC;AACF,QAAA,KAAK,YAAY;AACf,YAAA,KAAK,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC;YAC9B;;AAEN;AAEA;AACA;AACA;AAEM,SAAU,cAAc,CAAC,KAAwB,EAAE,MAAc,EAAA;IACrE,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9C;SAEgB,UAAU,CAAC,KAAwB,EAAE,MAAc,EAAE,MAAc,EAAA;IACjF,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1C,QAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAEjC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;QACrD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QAC1B;QAEA,gBAAgB,CAAC,KAAK,CAAC;IACzB;AACF;AAEA;AACA;AACA;AAEM,SAAU,QAAQ,CAAC,KAAwB,EAAA;AAC/C,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;AAC7C,IAAA,IAAI,IAAI,EAAE,UAAU,EAAE;AACpB,QAAA,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW;QACtC,KAAK,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS;QAC7D,KAAK,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS;;AAG7D,QAAA,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AACvC,gBAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5C;QACF;IACF;AACF;AAEM,SAAU,OAAO,CAAC,KAAwB,EAAE,MAA0B,EAAA;IAC1E,KAAK,CAAC,MAAM,EAAE;AACd,IAAA,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY;AACtC,IAAA,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAChC,KAAK,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS;IAC7D,KAAK,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS;;AAG7D,IAAA,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AACvC,YAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5C;IACF;;AAGA,IAAA,IAAI,MAAM,CAAC,kBAAkB,EAAE;AAGjC;AAEA;AACA;AACA;AAEM,SAAU,gBAAgB,CAAC,KAAwB,EAAA;IACvD,IAAI,UAAU,GAAG,CAAC;IAClB,IAAI,cAAc,GAAG,CAAC;IAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE;AACrC,QAAA,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/B,QAAA,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;IAChE;AAEA,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;AACtC,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM;AAElD,IAAA,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,GAAG,cAAc,GAAG,UAAU,GAAG,CAAC;AACvE,IAAA,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC,GAAG,cAAc,GAAG,WAAW,GAAG,CAAC;AAEzE,IAAA,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,GAAG,GAAG,cAAc,GAAG,GAAG,IAAI,GAAG,CAAC;AACzF;AAEM,SAAU,gBAAgB,CAAC,KAAwB,EAAA;IASvD,IAAI,eAAe,GAAG,CAAC;IACvB,IAAI,YAAY,GAAG,CAAC;IACpB,IAAI,cAAc,GAAG,CAAC;IACtB,IAAI,UAAU,GAAG,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,eAAe,EAAE;QACnB;AACA,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,YAAY,EAAE;QAChB;AACA,QAAA,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/B,QAAA,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;IAChE;IAEA,OAAO;QACL,eAAe;AACf,QAAA,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;QAC1B,YAAY;QACZ,cAAc;QACd,UAAU;AACV,QAAA,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM;AAC3C,QAAA,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;KAChC;AACH;AAEA;AACA;AACA;AAEM,SAAU,aAAa,CAAC,OAAyB,EAAA;IACrD,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAA,CAAE;AACtC,QAAA,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,cAAc;AACpC,QAAA,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;AAC/B,QAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,QAAA,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AAC7C,QAAA,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;AACtC,QAAA,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;AACxC,QAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;AAC1B,QAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;AAC9B,QAAA,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;AACvC,QAAA,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QACvC,IAAI,EAAE,OAAO,CAAC,IAAI;AAClB,QAAA,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;AACvC,QAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;AACjC,QAAA,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;KACvC;AACH;AAEM,SAAU,UAAU,CAAC,OAAsB,EAAA;IAC/C,OAAO;AACL,QAAA,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM;AACxB,QAAA,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,cAAc;AACpC,QAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM;AAC9B,QAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;AACjC,QAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;AAC1B,QAAA,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;AACxB,QAAA,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;AAC3C,QAAA,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE;KACnD;AACH;AAEM,SAAU,aAAa,CAC3B,IAAqB,EACrB,OAAe,EACf,QAAc,EACd,OAA0B,EAAA;IAE1B,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE;QAC9E,IAAI;QACJ,OAAO;AACP,QAAA,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE;AACzB,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;AAChC,QAAA,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;KACxC;AACH;AAEM,SAAU,eAAe,CAC7B,IAAY,EACZ,QAAc,EACd,MAAc,EACd,OAA4B,EAAA;IAE5B,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE;QAC/E,IAAI;AACJ,QAAA,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE;QACzB,MAAM;AACN,QAAA,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,MAAM;AACvC,QAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;QACnC,KAAK,EAAE,OAAO,EAAE,KAAK;AACrB,QAAA,QAAQ,EAAE,KAAK;KAChB;AACH;AAEM,SAAU,gBAAgB,CAC9B,SAAsC,EACtC,YAAoB,EACpB,cAAsB,EACtB,OAAiC,EAAA;IAEjC,OAAO;QACL,SAAS;QACT,YAAY;QACZ,cAAc;QACd,WAAW,EAAE,OAAO,EAAE,WAAW;AACjC,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;QAChC,WAAW,EAAE,OAAO,EAAE,WAAW;KAClC;AACH;AAEM,SAAU,gBAAgB,CAC9B,QAAc,EACd,IAAuC,EACvC,YAAwC,EACxC,OAA6B,EAAA;IAE7B,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA,CAAE;AACzC,QAAA,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE;AACzB,QAAA,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE;QACjB,YAAY;AACZ,QAAA,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,OAAO,EAAE,OAAO;KAC1B;AACH;;;;"}
|
|
@@ -17,23 +17,24 @@ const DEFAULT_MINIGAME_COLLECTION_CONFIG = {
|
|
|
17
17
|
function createMinigameCollectionState(players) {
|
|
18
18
|
return {
|
|
19
19
|
currentRound: 0,
|
|
20
|
-
players: players.map(p => ({ ...p, score: 0, stars: 0, wins: 0, connected: true })),
|
|
20
|
+
players: players.map((p) => ({ ...p, score: 0, stars: 0, wins: 0, connected: true })),
|
|
21
21
|
currentMinigame: null,
|
|
22
22
|
phase: 'lobby',
|
|
23
23
|
history: [],
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
function awardPoints(state, rankings, basePoints = 10) {
|
|
27
|
-
var _a;
|
|
28
27
|
for (const rank of rankings) {
|
|
29
|
-
const player = state.players.find(p => p.id === rank.playerId);
|
|
30
|
-
if (!player)
|
|
28
|
+
const player = state.players.find((p) => p.id === rank.playerId);
|
|
29
|
+
if (!player) {
|
|
31
30
|
continue;
|
|
31
|
+
}
|
|
32
32
|
// Points: 1st=10, 2nd=7, 3rd=5, 4th=3, 5th+=1
|
|
33
33
|
const pointMap = { 1: basePoints, 2: 7, 3: 5, 4: 3 };
|
|
34
|
-
player.score +=
|
|
35
|
-
if (rank.position === 1)
|
|
34
|
+
player.score += pointMap[rank.position] ?? 1;
|
|
35
|
+
if (rank.position === 1) {
|
|
36
36
|
player.wins++;
|
|
37
|
+
}
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
const DEFAULT_QUIZ_CONFIG = {
|
|
@@ -59,14 +60,18 @@ function createQuizState(playerIds) {
|
|
|
59
60
|
lifelinesUsed.set(id, new Set());
|
|
60
61
|
}
|
|
61
62
|
return {
|
|
62
|
-
currentQuestion: 0,
|
|
63
|
-
|
|
63
|
+
currentQuestion: 0,
|
|
64
|
+
scores,
|
|
65
|
+
streaks,
|
|
66
|
+
answers,
|
|
67
|
+
lifelinesUsed,
|
|
68
|
+
phase: 'waiting',
|
|
69
|
+
timer: 0,
|
|
64
70
|
};
|
|
65
71
|
}
|
|
66
72
|
function scoreQuizAnswer(state, playerId, answerIndex, correctIndex, timeRemaining, config) {
|
|
67
|
-
var _a, _b;
|
|
68
73
|
const correct = answerIndex === correctIndex;
|
|
69
|
-
const streak =
|
|
74
|
+
const streak = state.streaks.get(playerId) ?? 0;
|
|
70
75
|
if (!correct) {
|
|
71
76
|
state.streaks.set(playerId, 0);
|
|
72
77
|
return 0;
|
|
@@ -78,7 +83,7 @@ function scoreQuizAnswer(state, playerId, answerIndex, correctIndex, timeRemaini
|
|
|
78
83
|
const newStreak = streak + 1;
|
|
79
84
|
state.streaks.set(playerId, newStreak);
|
|
80
85
|
points += (newStreak - 1) * config.streakBonus;
|
|
81
|
-
const current =
|
|
86
|
+
const current = state.scores.get(playerId) ?? 0;
|
|
82
87
|
state.scores.set(playerId, current + points);
|
|
83
88
|
return points;
|
|
84
89
|
}
|
|
@@ -106,9 +111,13 @@ function createBoardGameState(playerInfos, config) {
|
|
|
106
111
|
return {
|
|
107
112
|
currentTurn: 1,
|
|
108
113
|
currentPlayer: 0,
|
|
109
|
-
players: playerInfos.map(p => ({
|
|
110
|
-
...p,
|
|
111
|
-
|
|
114
|
+
players: playerInfos.map((p) => ({
|
|
115
|
+
...p,
|
|
116
|
+
position: config.startSpace,
|
|
117
|
+
score: 0,
|
|
118
|
+
coins: 10,
|
|
119
|
+
items: [],
|
|
120
|
+
skippedTurns: 0,
|
|
112
121
|
})),
|
|
113
122
|
diceResult: [],
|
|
114
123
|
phase: 'roll',
|
|
@@ -134,17 +143,23 @@ function createReactionState(playerIds) {
|
|
|
134
143
|
times.set(id, []);
|
|
135
144
|
}
|
|
136
145
|
return {
|
|
137
|
-
round: 0,
|
|
138
|
-
|
|
146
|
+
round: 0,
|
|
147
|
+
scores,
|
|
148
|
+
reactionTimes: times,
|
|
149
|
+
currentTargets: [],
|
|
150
|
+
phase: 'waiting',
|
|
151
|
+
nextTargetId: 1,
|
|
139
152
|
};
|
|
140
153
|
}
|
|
141
154
|
function getAverageReactionTime(state, playerId) {
|
|
142
155
|
const times = state.reactionTimes.get(playerId);
|
|
143
|
-
if (!times || times.length === 0)
|
|
156
|
+
if (!times || times.length === 0) {
|
|
144
157
|
return 0;
|
|
158
|
+
}
|
|
145
159
|
let sum = 0;
|
|
146
|
-
for (const t of times)
|
|
160
|
+
for (const t of times) {
|
|
147
161
|
sum += t;
|
|
162
|
+
}
|
|
148
163
|
return sum / times.length;
|
|
149
164
|
}
|
|
150
165
|
const DEFAULT_DRAWING_CONFIG = {
|
|
@@ -155,7 +170,16 @@ const DEFAULT_DRAWING_CONFIG = {
|
|
|
155
170
|
maxHints: 3,
|
|
156
171
|
canvasWidth: 800,
|
|
157
172
|
canvasHeight: 600,
|
|
158
|
-
brushColors: [
|
|
173
|
+
brushColors: [
|
|
174
|
+
'#000000',
|
|
175
|
+
'#FF0000',
|
|
176
|
+
'#0000FF',
|
|
177
|
+
'#00FF00',
|
|
178
|
+
'#FFFF00',
|
|
179
|
+
'#FF00FF',
|
|
180
|
+
'#FF8800',
|
|
181
|
+
'#FFFFFF',
|
|
182
|
+
],
|
|
159
183
|
brushSizes: [2, 5, 10, 20],
|
|
160
184
|
categories: ['animals', 'objects', 'food', 'activities', 'places'],
|
|
161
185
|
pointsForGuess: 100,
|
|
@@ -163,16 +187,21 @@ const DEFAULT_DRAWING_CONFIG = {
|
|
|
163
187
|
bonusForSpeed: true,
|
|
164
188
|
};
|
|
165
189
|
function createDrawingState(playerIds) {
|
|
166
|
-
var _a;
|
|
167
190
|
const scores = new Map();
|
|
168
|
-
for (const id of playerIds)
|
|
191
|
+
for (const id of playerIds) {
|
|
169
192
|
scores.set(id, 0);
|
|
193
|
+
}
|
|
170
194
|
return {
|
|
171
|
-
currentDrawer:
|
|
172
|
-
currentWord: '',
|
|
173
|
-
|
|
195
|
+
currentDrawer: playerIds[0] ?? '',
|
|
196
|
+
currentWord: '',
|
|
197
|
+
hint: '',
|
|
198
|
+
hintsGiven: 0,
|
|
199
|
+
timer: 0,
|
|
200
|
+
strokes: [],
|
|
201
|
+
scores,
|
|
174
202
|
guessedPlayers: new Set(),
|
|
175
|
-
round: 0,
|
|
203
|
+
round: 0,
|
|
204
|
+
phase: 'choosing',
|
|
176
205
|
};
|
|
177
206
|
}
|
|
178
207
|
function generateHint(word, hintsGiven) {
|
|
@@ -187,12 +216,15 @@ function generateHint(word, hintsGiven) {
|
|
|
187
216
|
indices.add(Math.floor(Math.random() * word.length));
|
|
188
217
|
}
|
|
189
218
|
for (let i = 0; i < word.length; i++) {
|
|
190
|
-
if (word[i] === ' ')
|
|
219
|
+
if (word[i] === ' ') {
|
|
191
220
|
chars.push(' ');
|
|
192
|
-
|
|
221
|
+
}
|
|
222
|
+
else if (indices.has(i)) {
|
|
193
223
|
chars.push(word[i]);
|
|
194
|
-
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
195
226
|
chars.push('_');
|
|
227
|
+
}
|
|
196
228
|
}
|
|
197
229
|
return chars.join('');
|
|
198
230
|
}
|