evomeme 0.1.9 → 0.1.10
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/canvas-public/app.js +509 -5999
- package/dist/canvas-public/assets/presets/catalog.json +47 -0
- package/dist/canvas-public/assets/presets/tiles/A_01_CaoDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_02_ShaMo.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_03_TianKong.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_04_ShuiBo.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_05_HaiMian.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_06_MuDiBan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_07_ShiZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_08_AnRongYan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_09_QingTaiShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_10_ShenHai.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_11_HuiYanShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_12_HongTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_13_GengDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_14_HuoShanYan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_15_NiTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_16_HuangSha.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_17_CongLin.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_18_ZiYanShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_19_MoGuTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_20_HuaDian.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_21_HaiLang.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_22_GanTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_23_QingTaiShiBan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_24_XingKong.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_25_MoFaFuWen.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_26_ShiTuYeDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_27_LanZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_28_HongZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_29_YueQiu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_30_JinShuGe.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_31_JinShuJingGai.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_32_ShuZiChuang.png +0 -0
- package/dist/canvas-public/canvas/actions.js +143 -0
- package/dist/canvas-public/canvas/camera.js +28 -0
- package/dist/canvas-public/canvas/chrome.js +13 -0
- package/dist/canvas-public/canvas/data.js +123 -0
- package/dist/canvas-public/canvas/dependencies.js +19 -0
- package/dist/canvas-public/canvas/interactions.js +544 -0
- package/dist/canvas-public/canvas/panel-resize.js +5 -0
- package/dist/canvas-public/canvas/renderer.js +297 -0
- package/dist/canvas-public/canvas/selection.js +62 -0
- package/dist/canvas-public/canvas/serialization.js +118 -0
- package/dist/canvas-public/canvas/sync.js +202 -0
- package/dist/canvas-public/core/api.js +27 -0
- package/dist/canvas-public/core/feature-registry.js +29 -0
- package/dist/canvas-public/core/feature-state.js +228 -0
- package/dist/canvas-public/core/layout.js +133 -0
- package/dist/canvas-public/core/operations.js +38 -0
- package/dist/canvas-public/core/project.js +203 -0
- package/dist/canvas-public/core/state.js +27 -0
- package/dist/canvas-public/dialogs/context-menu.js +118 -0
- package/dist/canvas-public/elements/base.js +100 -0
- package/dist/canvas-public/elements/connections.js +105 -0
- package/dist/canvas-public/elements/drag.js +53 -0
- package/dist/canvas-public/elements/image.js +259 -0
- package/dist/canvas-public/elements/loading-recovery.js +5 -0
- package/dist/canvas-public/elements/loading.js +21 -0
- package/dist/canvas-public/elements/map.js +64 -0
- package/dist/canvas-public/elements/registry.js +58 -0
- package/dist/canvas-public/elements/replacement.js +78 -0
- package/dist/canvas-public/elements/resize.js +210 -0
- package/dist/canvas-public/elements/task-pipeline.js +234 -0
- package/dist/canvas-public/elements/types.js +21 -0
- package/dist/canvas-public/elements/ui.js +14 -0
- package/dist/canvas-public/elements/video.js +64 -0
- package/dist/canvas-public/features/assets/local-assets.js +72 -0
- package/dist/canvas-public/features/assets/official-assets.js +538 -0
- package/dist/canvas-public/features/editing/canvas-size.js +532 -0
- package/dist/canvas-public/features/editing/color-key.js +469 -0
- package/dist/canvas-public/features/editing/cutout.js +20 -0
- package/dist/canvas-public/features/editing/interactive-image-editing.js +981 -0
- package/dist/canvas-public/features/editing/layer-decomposition.js +44 -0
- package/dist/canvas-public/features/editing/manual-split.js +114 -0
- package/dist/canvas-public/features/editing/perfect-pixel.js +336 -0
- package/dist/canvas-public/features/editing/scroll-preview.js +129 -0
- package/dist/canvas-public/features/editing/scroll-seam-elimination.js +71 -0
- package/dist/canvas-public/features/editing/seam-elimination.js +46 -0
- package/dist/canvas-public/features/editing/smart-split.js +48 -0
- package/dist/canvas-public/features/editing/source-preview.js +43 -0
- package/dist/canvas-public/features/editing/video-cycle.js +49 -0
- package/dist/canvas-public/features/editing/video-frames.js +35 -0
- package/dist/canvas-public/features/frame-editor/frame-editing.js +755 -0
- package/dist/canvas-public/features/frame-editor/frame-model.js +63 -0
- package/dist/canvas-public/features/frame-editor/playback.js +83 -0
- package/dist/canvas-public/features/frame-editor/preview.js +149 -0
- package/dist/canvas-public/features/generation/animation.js +272 -0
- package/dist/canvas-public/features/generation/asset-batch.js +102 -0
- package/dist/canvas-public/features/generation/direction.js +163 -0
- package/dist/canvas-public/features/generation/fields.js +73 -0
- package/dist/canvas-public/features/generation/game-ui.js +64 -0
- package/dist/canvas-public/features/generation/image.js +83 -0
- package/dist/canvas-public/features/generation/scroll-image.js +157 -0
- package/dist/canvas-public/features/generation/seamless-tile.js +52 -0
- package/dist/canvas-public/features/generation/tile-transition-atlas.js +79 -0
- package/dist/canvas-public/features/generation/video.js +105 -0
- package/dist/canvas-public/features/map/creation.js +73 -0
- package/dist/canvas-public/features/map/tile-map-editor.js +2518 -0
- package/dist/canvas-public/features/registry.js +59 -0
- package/dist/canvas-public/index.html +84 -259
- package/dist/canvas-public/inspector/controls.js +49 -0
- package/dist/canvas-public/inspector/frame-preview.js +11 -0
- package/dist/canvas-public/inspector/inspector.js +190 -0
- package/dist/canvas-public/inspector/media-inspector.js +517 -0
- package/dist/canvas-public/inspector/media-preview.js +56 -0
- package/dist/canvas-public/inspector/number-stepper.js +96 -0
- package/dist/canvas-public/inspector/resize.js +88 -0
- package/dist/canvas-public/inspector/scroll-preview.js +11 -0
- package/dist/canvas-public/inspector/ui-inspector.js +14 -0
- package/dist/canvas-public/language/en-US.js +1059 -0
- package/dist/canvas-public/language/index.js +79 -0
- package/dist/canvas-public/language/zh-CN.js +1059 -0
- package/dist/canvas-public/map/export.js +9 -0
- package/dist/canvas-public/map/inspector.js +8 -0
- package/dist/canvas-public/map/model.js +409 -0
- package/dist/canvas-public/map/tile-map-editor.js +2 -0
- package/dist/canvas-public/media/metadata.js +183 -0
- package/dist/canvas-public/media/support.js +183 -0
- package/dist/canvas-public/styles/base.css +49 -0
- package/dist/canvas-public/styles/canvas.css +127 -0
- package/dist/canvas-public/styles/controls.css +203 -0
- package/dist/canvas-public/styles/dialogs.css +521 -0
- package/dist/canvas-public/styles/feature-form.css +409 -0
- package/dist/canvas-public/styles/inspector.css +441 -0
- package/dist/canvas-public/styles/layout.css +344 -0
- package/dist/canvas-public/styles/map.css +11 -0
- package/dist/canvas-public/styles/nodes.css +636 -0
- package/dist/canvas-public/styles.css +9 -2247
- package/dist/canvas-public/ui/controls.js +222 -0
- package/dist/canvas-public/ui/elements.js +9 -0
- package/dist/canvas-public/ui/feature-controller.js +296 -0
- package/dist/canvas-public/ui/feature-form.js +401 -0
- package/dist/canvas-public/ui/settings.js +83 -0
- package/dist/canvas-public/ui/toolbar.js +55 -0
- package/dist/canvas-public/vendor/pixi-tilemap.js +126 -0
- package/dist/canvas-public/vendor/pixi.min.js +2340 -0
- package/dist/canvas-public/workers/color-key-worker.js +289 -0
- package/dist/canvas-public/workers/perfect-pixel-worker.js +510 -0
- package/dist/index.js +42236 -13382
- package/dist/skills/en-US/evomeme-canvas/SKILL.md +52 -0
- package/dist/skills/en-US/evomeme-canvas/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-cloud-fs/SKILL.md +176 -0
- package/dist/skills/en-US/evomeme-cloud-fs/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-cover/SKILL.md +132 -0
- package/dist/skills/en-US/evomeme-cover/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-game-maker/SKILL.md +288 -0
- package/dist/skills/en-US/evomeme-game-maker/agents/openai.yaml +4 -0
- package/dist/skills/en-US/evomeme-login/SKILL.md +92 -0
- package/dist/skills/en-US/evomeme-login/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-native-bridge-sdk/SKILL.md +286 -0
- package/dist/skills/en-US/evomeme-native-bridge-sdk/agents/openai.yaml +8 -0
- package/dist/skills/en-US/evomeme-tos-upload/SKILL.md +47 -0
- package/dist/skills/en-US/evomeme-tos-upload/agents/openai.yaml +5 -0
- package/dist/skills/en-US/evomeme-ui/SKILL.md +123 -0
- package/dist/skills/en-US/evomeme-ui/agents/openai.yaml +4 -0
- package/dist/skills/en-US/evomeme-ui/references/host-layout.md +69 -0
- package/dist/skills/en-US/game-art/SKILL.md +121 -0
- package/dist/skills/en-US/game-art/agents/openai.yaml +8 -0
- package/dist/skills/en-US/game-asset-align/SKILL.md +45 -0
- package/dist/skills/en-US/game-asset-align/agents/openai.yaml +8 -0
- package/dist/skills/en-US/game-asset-align/references/alignment-contract.md +61 -0
- package/dist/skills/en-US/game-asset-align/references/blender-scene-pipeline.md +45 -0
- package/dist/skills/en-US/game-asset-align/references/canonical-package.md +26 -0
- package/dist/skills/en-US/game-asset-align/references/engine-capabilities.md +14 -0
- package/dist/skills/en-US/game-asset-align/references/lightweight-review.md +32 -0
- package/dist/skills/en-US/game-asset-align/references/repair-policy.md +30 -0
- package/dist/skills/en-US/game-asset-align/references/tool-contract.md +39 -0
- package/dist/skills/en-US/game-asset-align/references/visual-review.md +26 -0
- package/dist/skills/en-US/game-asset-image-generator/SKILL.md +104 -0
- package/dist/skills/en-US/game-asset-image-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-asset-image-generator/references/background.md +32 -0
- package/dist/skills/en-US/game-asset-image-generator/references/static-game-assets.md +38 -0
- package/dist/skills/en-US/game-audio/SKILL.md +82 -0
- package/dist/skills/en-US/game-audio/agents/openai.yaml +4 -0
- package/dist/skills/en-US/game-demo/SKILL.md +103 -0
- package/dist/skills/en-US/game-demo/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-maker/SKILL.md +111 -0
- package/dist/skills/en-US/game-maker/agents/openai.yaml +4 -0
- package/dist/skills/en-US/game-test/SKILL.md +58 -0
- package/dist/skills/en-US/game-test/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-ui/SKILL.md +177 -0
- package/dist/skills/en-US/game-ui/agents/openai.yaml +4 -0
- package/dist/skills/en-US/godot-3d-game/SKILL.md +39 -0
- package/dist/skills/en-US/godot-3d-game/agents/openai.yaml +8 -0
- package/dist/skills/en-US/godot-3d-game/references/alignment-gates.md +26 -0
- package/dist/skills/en-US/godot-3d-game/references/appearance-alignment.md +52 -0
- package/dist/skills/en-US/godot-3d-game/references/build-and-qa.md +22 -0
- package/dist/skills/en-US/godot-3d-game/references/canonical-asset-runtime.md +27 -0
- package/dist/skills/en-US/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
- package/dist/skills/en-US/godot-3d-game/references/physics-colliders.md +13 -0
- package/dist/skills/en-US/godot-3d-game/references/project-structure.md +22 -0
- package/dist/skills/en-US/godot-3d-game/references/skeleton-animation.md +16 -0
- package/dist/skills/en-US/phaser-2d-game/SKILL.md +127 -0
- package/dist/skills/en-US/phaser-2d-game/agents/openai.yaml +8 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-performance.md +64 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-physics.md +139 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-runtime.md +129 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-spritesheets.md +99 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-tilemaps.md +80 -0
- package/dist/skills/en-US/phaser-2d-game/references/file-structure.md +94 -0
- package/dist/skills/en-US/phaser-2d-graphics-builder/SKILL.md +68 -0
- package/dist/skills/en-US/phaser-2d-graphics-builder/agents/openai.yaml +7 -0
- package/dist/skills/en-US/threejs-3d-game/SKILL.md +117 -0
- package/dist/skills/en-US/threejs-3d-game/agents/openai.yaml +7 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-asset-pipeline.md +153 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-audio.md +70 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-input-camera.md +84 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-performance.md +96 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-physics.md +142 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-runtime.md +199 -0
- package/dist/skills/en-US/threejs-3d-game/references/file-structure.md +353 -0
- package/dist/skills/en-US/threejs-aaa-graphics-builder/SKILL.md +62 -0
- package/dist/skills/en-US/threejs-aaa-graphics-builder/agents/openai.yaml +7 -0
- package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/SKILL.md +4 -4
- package/{skills → dist/skills/zh-CN}/evomeme-cover/SKILL.md +1 -1
- package/{skills → dist/skills/zh-CN}/evomeme-game-maker/SKILL.md +91 -88
- package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/SKILL.md +6 -5
- package/dist/skills/zh-CN/evomeme-ui/SKILL.md +123 -0
- package/dist/skills/zh-CN/evomeme-ui/agents/openai.yaml +4 -0
- package/dist/skills/zh-CN/evomeme-ui/references/host-layout.md +69 -0
- package/dist/skills/zh-CN/game-asset-align/SKILL.md +45 -0
- package/dist/skills/zh-CN/game-asset-align/agents/openai.yaml +8 -0
- package/dist/skills/zh-CN/game-asset-align/references/alignment-contract.md +61 -0
- package/dist/skills/zh-CN/game-asset-align/references/blender-scene-pipeline.md +45 -0
- package/dist/skills/zh-CN/game-asset-align/references/canonical-package.md +26 -0
- package/dist/skills/zh-CN/game-asset-align/references/engine-capabilities.md +14 -0
- package/dist/skills/zh-CN/game-asset-align/references/lightweight-review.md +32 -0
- package/dist/skills/zh-CN/game-asset-align/references/repair-policy.md +30 -0
- package/dist/skills/zh-CN/game-asset-align/references/tool-contract.md +39 -0
- package/dist/skills/zh-CN/game-asset-align/references/visual-review.md +26 -0
- package/{skills → dist/skills/zh-CN}/game-asset-image-generator/SKILL.md +1 -1
- package/dist/skills/zh-CN/game-audio/references/bgm-cdn.md +127 -0
- package/dist/skills/zh-CN/game-audio/references/sfx-cdn.md +77 -0
- package/dist/skills/zh-CN/game-test/references/checklists/playtest-qa.md +12 -0
- package/{skills → dist/skills/zh-CN}/game-ui/SKILL.md +9 -1
- package/dist/skills/zh-CN/game-ui/references/checklists/game-ui-quality.md +14 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/hud-readability.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/mobile-input.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/responsive-ui-fit.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/ui-patterns.md +140 -0
- package/dist/skills/zh-CN/game-ui/references/ui-prompt-templates.md +63 -0
- package/dist/skills/zh-CN/godot-3d-game/SKILL.md +39 -0
- package/dist/skills/zh-CN/godot-3d-game/agents/openai.yaml +8 -0
- package/dist/skills/zh-CN/godot-3d-game/references/alignment-gates.md +26 -0
- package/dist/skills/zh-CN/godot-3d-game/references/appearance-alignment.md +52 -0
- package/dist/skills/zh-CN/godot-3d-game/references/build-and-qa.md +22 -0
- package/dist/skills/zh-CN/godot-3d-game/references/canonical-asset-runtime.md +27 -0
- package/dist/skills/zh-CN/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
- package/dist/skills/zh-CN/godot-3d-game/references/physics-colliders.md +13 -0
- package/dist/skills/zh-CN/godot-3d-game/references/project-structure.md +22 -0
- package/dist/skills/zh-CN/godot-3d-game/references/skeleton-animation.md +16 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/compose-quality.md +10 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +15 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +10 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/compose-recipes.md +71 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +33 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/implementation-blueprint.md +82 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/sprite-recipes.md +90 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/technical-art.md +67 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/vfx-recipes.md +67 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/visual-scorecard.md +129 -0
- package/{skills → dist/skills/zh-CN}/threejs-3d-game/SKILL.md +6 -2
- package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-asset-pipeline.md +52 -15
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +23 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +19 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +14 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +14 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +15 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +17 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +236 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/implementation-blueprint.md +161 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/model-recipes.md +146 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/render-recipes.md +90 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/shader-cookbook.md +292 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/technical-art.md +167 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/visual-scorecard.md +147 -0
- package/dist/stage-blender/bake_materials.py +102 -0
- package/dist/stage-blender/export_scene.py +275 -0
- package/dist/stage-blender/preview_camera.py +90 -0
- package/dist/stage-blender/repair_mesh.py +112 -0
- package/dist/stage-public/app.js +759 -0
- package/dist/stage-public/baked/bakePilot.js +44 -0
- package/dist/stage-public/baked/bakedScene.js +129 -0
- package/dist/stage-public/baked/sceneAppearance.js +225 -0
- package/dist/stage-public/baked/sceneCamera.js +45 -0
- package/dist/stage-public/comparison-contract.js +28 -0
- package/dist/stage-public/delivery.html +4 -0
- package/dist/stage-public/delivery.js +17 -0
- package/dist/stage-public/godot/appearance.gd +170 -0
- package/dist/stage-public/godot/preview.gd +79 -0
- package/dist/stage-public/index.html +141 -0
- package/dist/stage-public/review-app.js +289 -0
- package/dist/stage-public/review-runtime.js +63 -0
- package/dist/stage-public/review.css +24 -0
- package/dist/stage-public/review.html +47 -0
- package/dist/stage-public/scene-runtime.js +212 -0
- package/dist/stage-public/sceneContractRuntime.js +235 -0
- package/dist/stage-public/styles.css +328 -0
- package/dist/stage-public/three-appearance.js +104 -0
- package/dist/stage-public/vendor/three170/LICENSE +21 -0
- package/dist/stage-public/vendor/three170/build/three.module.js +54571 -0
- package/dist/stage-public/vendor/three170/examples/jsm/controls/OrbitControls.js +1523 -0
- package/dist/stage-public/vendor/three170/examples/jsm/environments/RoomEnvironment.js +144 -0
- package/dist/stage-public/vendor/three170/examples/jsm/libs/fflate.module.js +2672 -0
- package/dist/stage-public/vendor/three170/examples/jsm/loaders/EXRLoader.js +2563 -0
- package/dist/stage-public/vendor/three170/examples/jsm/loaders/GLTFLoader.js +4727 -0
- package/dist/stage-public/vendor/three170/examples/jsm/utils/BufferGeometryUtils.js +1373 -0
- package/dist/tile-transition-mask.svg +40 -0
- package/package.json +21 -7
- package/dist/canvas-public/cycle-detect.js +0 -166
- package/dist/canvas-public/smart-split.js +0 -185
- /package/{skills → dist/skills/en-US}/game-audio/references/bgm-cdn.md +0 -0
- /package/{skills → dist/skills/en-US}/game-audio/references/sfx-cdn.md +0 -0
- /package/{skills → dist/skills/en-US}/game-test/references/checklists/playtest-qa.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/game-ui-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/hud-readability.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/mobile-input.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/responsive-ui-fit.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/ui-patterns.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/ui-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/compose-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/compose-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/implementation-blueprint.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/sprite-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/technical-art.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/vfx-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/implementation-blueprint.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/model-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/render-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/shader-cookbook.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/technical-art.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-canvas/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-canvas/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-cover/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-game-maker/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-login/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-login/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-art/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-art/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/background.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/static-game-assets.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-audio/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-audio/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-demo/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-demo/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-maker/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-maker/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-test/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-test/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-ui/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-performance.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-physics.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-runtime.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-spritesheets.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-tilemaps.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/file-structure.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-audio.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-input-camera.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-performance.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-physics.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-runtime.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/file-structure.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/agents/openai.yaml +0 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: evomeme-game-maker
|
|
3
|
+
description: Guide the Agent in creating evomeme mobile-platform games, applying portrait touch controls, project structure, public/config.json, asset hosting, and production build requirements during development, and using platform capabilities such as publishing, covers, native capabilities, and login recovery as needed by the game. Use when creating, migrating, extending, or publishing mobile games for evomeme.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# evomeme Mobile Game Creation
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Guide the Agent in creating portrait touch-control mobile games that meet evomeme platform requirements, and in selecting corresponding platform capabilities during development according to current needs.
|
|
11
|
+
|
|
12
|
+
**Concrete game development plan**: when formulating, breaking down, or updating a concrete game development plan, MUST refer to the `game-maker` development skill. This skill provides only evomeme platform-specific requirements for games. If the user needs to publish to the EvoMeme platform, the game MUST meet the requirements in this skill.
|
|
13
|
+
|
|
14
|
+
**Required platform UI and responsive-layout reading**: When developing any game intended to run, launch, or be published on evomeme, MUST read and follow [`evomeme-ui`](../evomeme-ui/SKILL.md). Before designing or coding game UI or responsive adaptation, the Agent MUST load that skill and follow its container sizing, safe-area rules, and test matrix.
|
|
15
|
+
|
|
16
|
+
## Platform Requirements
|
|
17
|
+
|
|
18
|
+
### Game Form
|
|
19
|
+
|
|
20
|
+
The evomeme platform supports ONLY portrait mobile games. Developed games MUST adapt to portrait UI layout and support touch controls.
|
|
21
|
+
|
|
22
|
+
#### Portrait Full-Screen Adaptation
|
|
23
|
+
|
|
24
|
+
The mobile gameplay interface MUST adapt to the different portrait WebView sizes and aspect ratios provided by the host, and always fill the actual game container. "Full-screen" means the available WebView area; MUST NOT lay out the game using the phone's full screen height or subtract host bars and safe areas again. Follow [`evomeme-ui`](../evomeme-ui/SKILL.md) for implementation and acceptance checks:
|
|
25
|
+
|
|
26
|
+
- MUST NOT use fixed-aspect-ratio containers, black borders, top/bottom or left/right letterboxing, or similar methods to maintain the design-draft ratio.
|
|
27
|
+
- The game root container, render canvas, and background MUST cover the entire WebView game area; the page MUST NOT produce uncovered areas due to default margins, fixed dimensions, or parent-container constraints.
|
|
28
|
+
- When the screen aspect ratio differs from the design draft, complete adaptation through responsive layout, camera scaling, background `cover`, or expandable regions that allow cropping; MUST NOT uniformly shrink the entire gameplay image and leave black borders.
|
|
29
|
+
- HUD, buttons, and key interaction content MUST lay out dynamically according to the actual container dimensions. Internal game padding is allowed, but MUST NOT subtract phone safe areas already handled by the host or shrink the coverage of the game image or background.
|
|
30
|
+
- The Web page SHOULD set the correct mobile viewport and maintain a complete `100%` height chain through `html`, `body`, the app root node, and the game container. When the container changes size, update the layout, rendering dimensions, and input mapping together.
|
|
31
|
+
- After development, MUST verify across multiple portrait sizes and aspect ratios: gameplay area covers the full screen, no black borders, no page scrollbars, and key UI is not clipped or obscured.
|
|
32
|
+
|
|
33
|
+
### Demo Image Assets
|
|
34
|
+
|
|
35
|
+
When making an evomeme game Demo, all required game image assets MUST be obtained through image generation and actually integrated:
|
|
36
|
+
|
|
37
|
+
- MUST NOT use any SVG assets, including SVG files, inline SVG, and `data:image/svg+xml`.
|
|
38
|
+
- MUST NOT use Canvas, Phaser, or CSS lines, geometric outlines, or procedural drawing to impersonate game image assets such as characters, scenes, props, icons, or effects.
|
|
39
|
+
- MUST NOT use large solid-color blocks or solid-color backgrounds as formal game assets or visual placeholders.
|
|
40
|
+
- Backgrounds, characters, enemies, props, tiles, decorations, icons, visual effects, and other image assets required by the Demo MUST use image generation. Code work may proceed in parallel with image generation, but the required generated images MUST be integrated before the first visible delivery.
|
|
41
|
+
- If assets are not yet complete, continue generating or reduce the Demo asset scope. MUST NOT temporarily substitute SVG, line drawing, or large solid colors.
|
|
42
|
+
- The first batch of generated images may be used as iterative assets, then gradually replaced later while keeping asset configuration and loading interfaces stable.
|
|
43
|
+
|
|
44
|
+
### Project Structure
|
|
45
|
+
|
|
46
|
+
The submitted game project contains the following files and directories:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
/
|
|
50
|
+
├── dist/
|
|
51
|
+
├── public/
|
|
52
|
+
│ └── config.json
|
|
53
|
+
├── src/
|
|
54
|
+
└── index.html
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
- `dist/`: stores the latest production build artifacts and is submitted together with the game project.
|
|
58
|
+
- `public/config.json`: centrally records binary asset links used by the game and other runtime configuration.
|
|
59
|
+
- `src/`: stores the main development code.
|
|
60
|
+
- `index.html`: serves as the web entry for the game project.
|
|
61
|
+
|
|
62
|
+
#### Code Dependencies and Publication Paths
|
|
63
|
+
|
|
64
|
+
**Mandatory delivery gate:** The game task is considered complete ONLY when the production build command (usually `npm run build`) completes with exit code `0`, generates a real and non-empty `dist/` containing `dist/index.html` and all referenced local files, and passes the post-build path checks in this section. Merely modifying source code, having the development server run, having a normal screenshot, or guessing that it "should build" MUST NOT be used as delivery results. If any condition is not met, MUST continue fixing, rebuild, and recheck.
|
|
65
|
+
|
|
66
|
+
The final `dist/` may be deployed under any URL subpath and is not guaranteed to be at the domain root. All local runtime references MUST be relative to the current document or build artifact:
|
|
67
|
+
|
|
68
|
+
- In-project code dependencies use `./` or `../`; MUST NOT write local-machine absolute paths, workspace absolute paths, `file://` addresses, or source URLs that can only be resolved by the development server.
|
|
69
|
+
- Local `src`, `href`, `poster`, and `srcset` in HTML, local `url(...)` in CSS, and JavaScript `fetch()`, dynamic `import()`, Worker, audio, and other local resource addresses MUST use `./...` or equivalent relative paths.
|
|
70
|
+
- Any local root-absolute path starting with a single `/`, such as `/assets/...`, `/asset/...`, `/config.json`, or `/src/...`, is strictly forbidden. They should be written as `./assets/...`, `./asset/...`, `./config.json`, `./src/...`, respectively.
|
|
71
|
+
- MUST NOT reconstruct root-absolute local addresses through `location.origin`, `new URL(path, location.origin)`, or other string-concatenation methods.
|
|
72
|
+
- Publicly accessible `http://` and `https://` remote URLs are not restricted by the local relative-path rules.
|
|
73
|
+
- When modifying an existing project, preserve architecture unrelated to the task, but as long as the final `dist/` still contains root-absolute local references, MUST make the minimal fix and MUST NOT deliver.
|
|
74
|
+
|
|
75
|
+
##### Vite Base (Mandatory)
|
|
76
|
+
|
|
77
|
+
New Vite projects MUST create a Vite configuration and explicitly set `base: './'`; MUST NOT rely on Vite's default value `/`. React project example:
|
|
78
|
+
|
|
79
|
+
```js
|
|
80
|
+
import { defineConfig } from 'vite';
|
|
81
|
+
import react from '@vitejs/plugin-react';
|
|
82
|
+
|
|
83
|
+
export default defineConfig({
|
|
84
|
+
plugins: [react()],
|
|
85
|
+
base: './',
|
|
86
|
+
});
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Other build tools MUST set an equivalent relative publication base path.
|
|
90
|
+
|
|
91
|
+
##### Complete `index.html` for New React + Vite Projects (Mandatory)
|
|
92
|
+
|
|
93
|
+
New React + Vite projects MUST use the following source entry format. JavaScript projects use `./src/main.jsx`; TypeScript projects replace ONLY that with `./src/main.tsx`. The entry is forbidden from being written as `/src/main.jsx` or `/src/main.tsx`.
|
|
94
|
+
|
|
95
|
+
```html
|
|
96
|
+
<!doctype html>
|
|
97
|
+
<html lang="zh-CN">
|
|
98
|
+
<head>
|
|
99
|
+
<meta charset="UTF-8" />
|
|
100
|
+
<meta
|
|
101
|
+
name="viewport"
|
|
102
|
+
content="width=device-width,initial-scale=1,viewport-fit=cover,user-scalable=no"
|
|
103
|
+
/>
|
|
104
|
+
<meta name="theme-color" content="#000000" />
|
|
105
|
+
<title>Game Name</title>
|
|
106
|
+
</head>
|
|
107
|
+
<body>
|
|
108
|
+
<div id="root"></div>
|
|
109
|
+
<script type="module" src="./src/main.jsx"></script>
|
|
110
|
+
</body>
|
|
111
|
+
</html>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
CSS SHOULD be imported from the entry module through a relative path such as `import './style.css'`; DO NOT prewrite or guess hashed build filenames in source `index.html`. The `dist/index.html` after Vite build MUST use relative build asset paths, for example:
|
|
115
|
+
|
|
116
|
+
```html
|
|
117
|
+
<script type="module" crossorigin src="./assets/index-HASH.js"></script>
|
|
118
|
+
<link rel="stylesheet" crossorigin href="./assets/index-HASH.css">
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`HASH` represents the hash actually generated by Vite and MUST NOT be hard-coded.
|
|
122
|
+
|
|
123
|
+
##### `dist/` Integrity and Path Checks (Blocks Delivery)
|
|
124
|
+
|
|
125
|
+
After every production build completes and before announcing success, MUST directly check `dist/index.html` and the JavaScript, CSS, and other text artifacts it references:
|
|
126
|
+
|
|
127
|
+
1. Confirm the build command exit code is `0`.
|
|
128
|
+
2. Confirm `dist/` truly exists and is non-empty, and confirm `dist/index.html` exists.
|
|
129
|
+
3. Parse or check one by one the local references in `dist/index.html`, and confirm each target file truly exists inside `dist/`.
|
|
130
|
+
4. Scan `dist/index.html`, built JavaScript, and CSS. MUST NOT contain local-resource references in `src="/`, `src='/`, `href="/`, `href='/`, `poster="/`, `poster='/`, `url(/`, `fetch('/`, `fetch("/`, `import('/`, `import("/`, `new Worker('/`, `new Worker("/`, or equivalent root-absolute forms.
|
|
131
|
+
5. Explicitly check and forbid `/assets/...`, `/asset/...`, `/config.json`, `/src/...`; they MUST be changed to `./assets/...`, `./asset/...`, `./config.json`, `./src/...`, or another correct relative path.
|
|
132
|
+
6. Check that `dist/` contains no runtime dependencies on `src/`, `public/`, the project root, workspace files, `localhost`, the Vite development server, `.ts`, `.tsx`, or other unbuilt source.
|
|
133
|
+
7. If any violating reference, missing file, or incomplete artifact is found, the build is judged invalid; after fixing, MUST run the production build again and recheck from step 1. MUST NOT skip rechecking just because the build command previously exited with code `0`.
|
|
134
|
+
|
|
135
|
+
`dist/` MUST be a complete runtime directory that can be deployed independently. `dist/index.html`, built JavaScript, CSS, and configuration may depend ONLY on files inside `dist/` or public remote URLs. Images, videos, audio, fonts, models, and other binary files are forbidden inside `dist/`; these assets MUST be integrated through public URLs. MUST NOT bypass the build by copying source code into `dist/`; source dependencies MUST be correctly resolved and bundled in the production build.
|
|
136
|
+
|
|
137
|
+
Before publication, MUST also start a preview with `dist/` as the static service root, and verify startup, resource loading, and the complete core flow at that address. The development server may be used for development, but MUST NOT be used as publication acceptance evidence.
|
|
138
|
+
|
|
139
|
+
#### `/public/config.json` Rules
|
|
140
|
+
|
|
141
|
+
`/public/config.json` is the external runtime configuration file for the game. After build, it is output unchanged as `/dist/config.json`.
|
|
142
|
+
|
|
143
|
+
##### Storage Rules
|
|
144
|
+
|
|
145
|
+
1. Write all user-adjustable colors, gameplay parameters, balance values, and asset URLs to `/public/config.json` or `game/content`.
|
|
146
|
+
2. Game code reads configuration through `fetch("./config.json")` or the project's wrapped `loadConfig()`.
|
|
147
|
+
3. Keep `/public/config.json` as a runtime external file; code in `src` accesses configuration only through runtime loading.
|
|
148
|
+
4. Centralize user-adjustable values in a single configuration source, and have React, Phaser, and CSS use the same configuration data.
|
|
149
|
+
|
|
150
|
+
##### Visible Parameters
|
|
151
|
+
|
|
152
|
+
Keys that do not start with `_` are exposed for user editing and remain flat:
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
"player_speed": {
|
|
156
|
+
"value": 220,
|
|
157
|
+
"type": "int",
|
|
158
|
+
"label": "Move Speed",
|
|
159
|
+
"max": 400,
|
|
160
|
+
"min": 50
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Rules:
|
|
165
|
+
|
|
166
|
+
- `type` values are `int`, `float`, `color`, `bool`, `string`, `audio`, `image`, `video`.
|
|
167
|
+
- `label` uses the user's language and is no longer than 10 characters.
|
|
168
|
+
- `max` and `min` are dedicated to `int` and `float` types.
|
|
169
|
+
- `type: "color"` uses a hexadecimal color string.
|
|
170
|
+
- `type: "image"` MUST declare `image_type: "Asset"`.
|
|
171
|
+
- `image_type: "Asset"` MUST additionally declare `size`, in the format `"widthxheight"`, for example `"1440x2560"`.
|
|
172
|
+
|
|
173
|
+
##### Parameter Type Examples
|
|
174
|
+
|
|
175
|
+
Visible parameters in `/public/config.json` are written according to the following structure. Actual projects choose parameter types and keys as needed, and keep the same schema when generating configuration.
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"_game_name": "Example Game",
|
|
180
|
+
"_config_version": 1,
|
|
181
|
+
"move_speed": {
|
|
182
|
+
"value": 220,
|
|
183
|
+
"type": "int",
|
|
184
|
+
"label": "Move Speed",
|
|
185
|
+
"min": 50,
|
|
186
|
+
"max": 400
|
|
187
|
+
},
|
|
188
|
+
"gravity_scale": {
|
|
189
|
+
"value": 1.2,
|
|
190
|
+
"type": "float",
|
|
191
|
+
"label": "Grav Scale",
|
|
192
|
+
"min": 0.2,
|
|
193
|
+
"max": 3
|
|
194
|
+
},
|
|
195
|
+
"theme_background_color": {
|
|
196
|
+
"value": "#10131f",
|
|
197
|
+
"type": "color",
|
|
198
|
+
"label": "BG Color"
|
|
199
|
+
},
|
|
200
|
+
"enable_shake": {
|
|
201
|
+
"value": true,
|
|
202
|
+
"type": "bool",
|
|
203
|
+
"label": "Shake"
|
|
204
|
+
},
|
|
205
|
+
"start_button_text": {
|
|
206
|
+
"value": "Start Game",
|
|
207
|
+
"type": "string",
|
|
208
|
+
"label": "Start Text"
|
|
209
|
+
},
|
|
210
|
+
"bgm_main": {
|
|
211
|
+
"value": "https://example.com/bgm.mp3",
|
|
212
|
+
"type": "audio",
|
|
213
|
+
"label": "BGM"
|
|
214
|
+
},
|
|
215
|
+
"image_background": {
|
|
216
|
+
"value": "https://example.com/background.png",
|
|
217
|
+
"type": "image",
|
|
218
|
+
"image_type": "Asset",
|
|
219
|
+
"size": "1440x2560",
|
|
220
|
+
"label": "BG Image"
|
|
221
|
+
},
|
|
222
|
+
"image_player": {
|
|
223
|
+
"value": "https://example.com/player.png",
|
|
224
|
+
"type": "image",
|
|
225
|
+
"image_type": "Asset",
|
|
226
|
+
"size": "1024x1024",
|
|
227
|
+
"label": "Character"
|
|
228
|
+
},
|
|
229
|
+
"video_intro": {
|
|
230
|
+
"value": "https://example.com/intro.mp4",
|
|
231
|
+
"type": "video",
|
|
232
|
+
"label": "Intro Vid"
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
When generating official project configuration:
|
|
238
|
+
|
|
239
|
+
- `value` for `audio`, `image`, and `video` uses real URLs. When an image is generated asynchronously upstream, a URL briefly returning 404 does not mean the asset is invalid.
|
|
240
|
+
- `image` types specify size metadata. `Asset` uses `size`, allowing Codex to infer display dimensions when it cannot read the real image.
|
|
241
|
+
- `string` is used for user-editable copy, theme names, asset keys, and other short text.
|
|
242
|
+
- `bool` is used for switches, with values `true` or `false`.
|
|
243
|
+
- `int` uses integers, and `float` can use decimals; both include `min` and `max`.
|
|
244
|
+
- Internal fields such as `_game_name`, `_config_version`, and `_comment` store internal values directly and do not use the visible-parameter schema.
|
|
245
|
+
|
|
246
|
+
##### Invisible Parameters
|
|
247
|
+
|
|
248
|
+
Keys starting with `_` are used for internal configuration, asset mappings, version numbers, and debug switches, and are not exposed for user editing.
|
|
249
|
+
|
|
250
|
+
### File Submission
|
|
251
|
+
|
|
252
|
+
The submitted file collection consists of UTF-8 text files. Binary assets such as images, audio, video, fonts, models, and archives are integrated into the game through evomeme TOS links and referenced through `public/config.json`. The corresponding local binary file paths are recorded in `.evomemeignore`.
|
|
253
|
+
|
|
254
|
+
`dist/` is always within submission scope and contains the latest production build after asset-link replacement is complete.
|
|
255
|
+
|
|
256
|
+
### Pre-Publication Check
|
|
257
|
+
|
|
258
|
+
Check the following ONLY when preparing to submit or publish the game:
|
|
259
|
+
|
|
260
|
+
- [ ] The game uses a portrait UI layout and supports touch controls.
|
|
261
|
+
- [ ] `evomeme-ui` has been read and followed, including validation at game container sizes of 375×524, 402×646, and 412×732 and during a runtime size change.
|
|
262
|
+
- [ ] Across different portrait sizes and aspect ratios, the gameplay interface fills the host WebView without black borders or uncovered areas. Native bars and safe areas are not deducted twice, and key UI remains visible and operable.
|
|
263
|
+
- [ ] The Demo contains no SVG, line drawing, or large solid-color game assets; all required game images have been obtained through image generation and actually integrated.
|
|
264
|
+
- [ ] The root directory contains `dist/`, `public/config.json`, `src/`, and `index.html`.
|
|
265
|
+
- [ ] `public/config.json` parses, conforms to the configuration schema, and is output unchanged as `dist/config.json` after build.
|
|
266
|
+
- [ ] `public/config.json` records binary assets used by the game as public links.
|
|
267
|
+
- [ ] Local binary file paths have been added to `.evomemeignore`.
|
|
268
|
+
- [ ] `.evomemeignore` keeps `dist/` within submission scope.
|
|
269
|
+
- [ ] `dist/` comes from the latest production build after asset-link replacement is complete.
|
|
270
|
+
- [ ] The production build command completes with exit code `0`, and `dist/` is non-empty and contains `dist/index.html`.
|
|
271
|
+
- [ ] New Vite projects explicitly set `base: './'`; source `index.html` uses `./src/main.jsx` or `./src/main.tsx`.
|
|
272
|
+
- [ ] Every local file referenced in `dist/index.html` truly exists inside `dist/`.
|
|
273
|
+
- [ ] `dist/index.html` and its referenced JavaScript and CSS have been scanned; there is no `src="/`, `href="/`, `url(/`, `fetch('/`, `fetch("/`, `/assets/`, `/asset/`, `/config.json`, `/src/`, or equivalent root-absolute local reference.
|
|
274
|
+
- [ ] The build uses a relative publication base path; runtime configuration and assets use `./...` or equivalent relative URLs, do not depend on the domain root path, and do not reconstruct the root path through `location.origin`.
|
|
275
|
+
- [ ] `dist/` can be deployed independently, and it has no runtime dependencies on `src/`, `public/`, the project root, `localhost`, development server, or unbuilt source.
|
|
276
|
+
- [ ] Preview has been completed with `dist/` as the static service root, and the game can start, load resources, and run through the core flow.
|
|
277
|
+
- [ ] The submitted file collection contains only UTF-8 text files.
|
|
278
|
+
- [ ] The publication process follows `evomeme-cloud-fs`.
|
|
279
|
+
|
|
280
|
+
## Platform Capabilities
|
|
281
|
+
|
|
282
|
+
Select required capabilities according to the current task. Each capability takes effect independently:
|
|
283
|
+
|
|
284
|
+
- **Binary asset hosting**: when local images, audio, video, fonts, or models need to be converted to public links, load and follow [`evomeme-tos-upload`](../evomeme-tos-upload/SKILL.md). The obtained `asset_url` can be written to `public/config.json`, and local binary file paths can be written to `.evomemeignore`.
|
|
285
|
+
- **Game publication**: when preparing the workspace, checking submission contents, or publishing the game, load and follow [`evomeme-cloud-fs`](../evomeme-cloud-fs/SKILL.md).
|
|
286
|
+
- **Game cover**: when adding a game cover or providing `cover_url`, load and follow [`evomeme-cover`](../evomeme-cover/SKILL.md).
|
|
287
|
+
- **Mobile native capabilities**: when the game needs to use camera, album, microphone, gyroscope, vibration, or other host capabilities, load and follow [`evomeme-native-bridge-sdk`](../evomeme-native-bridge-sdk/SKILL.md).
|
|
288
|
+
- **Login recovery**: after an evomeme operation returns a login or authentication error, load and follow [`evomeme-login`](../evomeme-login/SKILL.md), then continue the original operation after login is restored.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "evomemeGame Maker"
|
|
3
|
+
short_description: "Create portrait touch-control mobile games that follow platform specifications, with project configuration and publication adaptation complete"
|
|
4
|
+
default_prompt: "Use $evomeme-game-maker to create a portrait touch-control mobile game for me, including the required project configuration, asset integration, and platform adaptation."
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: evomeme-login
|
|
3
|
+
description: Restore evomeme authentication after an evomeme_* MCP or init login / token error. Use ONLY after authentication has already failed; DO NOT load preventively before calling business tools.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# evomeme Login Recovery
|
|
7
|
+
|
|
8
|
+
## When to Use (Gate)
|
|
9
|
+
|
|
10
|
+
Load this skill and execute the flow below **ONLY after a login / authentication-related failure has already occurred**.
|
|
11
|
+
|
|
12
|
+
Typical triggers (when a tool returns `isError` or the error body contains the following meanings):
|
|
13
|
+
|
|
14
|
+
- token invalid or expired (business error code **40100**, text such as "token invalid" or "please log in again")
|
|
15
|
+
- login session timed out or was rejected (**40010**, text such as "login session has expired or was rejected")
|
|
16
|
+
- MCP / init explicitly says not logged in, credentials are invalid, or login again is required
|
|
17
|
+
- `evomeme_login` itself fails (timeout, user did not complete login in the browser, etc.)
|
|
18
|
+
|
|
19
|
+
**DO NOT** load this skill or proactively call the login tool in the following situations:
|
|
20
|
+
|
|
21
|
+
- "preventively checking login" before normal startup, image generation, upload, submission, or model creation
|
|
22
|
+
- proactively running login once when the user has not encountered any authentication error
|
|
23
|
+
- treating login as a routine step in the game creation flow
|
|
24
|
+
|
|
25
|
+
For normal business work, call the `evomeme_*` tools directly; the client will handle credentials itself when needed. Use this skill ONLY after an error occurs.
|
|
26
|
+
|
|
27
|
+
## Goal
|
|
28
|
+
|
|
29
|
+
Guide the user to complete evomeme re-login in the system browser so subsequent `evomeme_*` tools can continue to be used, then **return to the original failed business operation** and retry it once.
|
|
30
|
+
|
|
31
|
+
## Guide the User to Log In Again (Execute in Order)
|
|
32
|
+
|
|
33
|
+
### 1. Explain the Situation to the User (Say It Before Acting)
|
|
34
|
+
|
|
35
|
+
Tell the user briefly in natural language, for example:
|
|
36
|
+
|
|
37
|
+
> The evomeme cloud operation just failed because the login credentials are invalid. Next we need to log in again: the system will open a browser. Please complete login on the page, then come back here and I will continue the previous operation.
|
|
38
|
+
|
|
39
|
+
MUST explain three points:
|
|
40
|
+
|
|
41
|
+
1. **Why**: the previous operation was interrupted due to login/authentication failure
|
|
42
|
+
2. **What will happen**: the **system default browser** will open, and the user needs to complete login on the page
|
|
43
|
+
3. **What happens afterward**: after login succeeds, the step that just failed will be retried
|
|
44
|
+
|
|
45
|
+
DO NOT call `evomeme_login` before completing the explanation above.
|
|
46
|
+
|
|
47
|
+
### 2. (Optional) Confirm Current Status
|
|
48
|
+
|
|
49
|
+
If the error message is not clear enough, first call the read-only tool **`evomeme_check_login`** (**does not** open the browser):
|
|
50
|
+
|
|
51
|
+
- Returns "logged in" -> this may be a transient/other error; tell the user the original error text, DO NOT force-open the browser again, and you may directly retry the original business tool once
|
|
52
|
+
- Returns "not logged in" or "credentials invalid" -> continue to step 3
|
|
53
|
+
|
|
54
|
+
### 3. Start Re-Login
|
|
55
|
+
|
|
56
|
+
Call **`evomeme_login`** (no arguments).
|
|
57
|
+
|
|
58
|
+
- It will force the full browser login flow and overwrite `~/.evomeme/auth.json`
|
|
59
|
+
- Ask the user to complete login on the opened page; the Agent waits for the tool to return
|
|
60
|
+
|
|
61
|
+
### 4. Branch by Result
|
|
62
|
+
|
|
63
|
+
**Login succeeded**
|
|
64
|
+
|
|
65
|
+
1. Confirm briefly: "Login is complete."
|
|
66
|
+
2. **Immediately retry** the business MCP that just failed (image generation / upload / submission / model, etc.); DO NOT stop at "logged in".
|
|
67
|
+
3. If the original flow requires delivery wrap-up, continue the original flow after the retry succeeds, and complete the necessary `evomeme_submit_game_code` according to `../evomeme-cloud-fs/SKILL.md`.
|
|
68
|
+
|
|
69
|
+
**Login failed** (timeout, rejection, network error, etc.)
|
|
70
|
+
|
|
71
|
+
1. Show the user the **exact original error text** returned by the tool
|
|
72
|
+
2. Ask the user to confirm whether it is convenient to try again (for example, whether the browser was blocked or whether they clicked reject)
|
|
73
|
+
3. After the user agrees, tell them "the browser will open again", then call `evomeme_login` again
|
|
74
|
+
4. **DO NOT** loop browser popups without telling the user and getting confirmation
|
|
75
|
+
|
|
76
|
+
## Tool Notes
|
|
77
|
+
|
|
78
|
+
| Tool | Purpose | Opens Browser? |
|
|
79
|
+
| --- | --- | --- |
|
|
80
|
+
| `evomeme_check_login` | Read-only check of whether local credentials are still valid | No |
|
|
81
|
+
| `evomeme_login` | Force browser login and write `~/.evomeme/auth.json` | Yes (MUST tell the user before calling) |
|
|
82
|
+
|
|
83
|
+
## Non-Goals
|
|
84
|
+
|
|
85
|
+
- Does not replace `npx -y evomeme@latest init` (workspace ignore rules / copying skills, etc. still follow `../evomeme-cloud-fs/SKILL.md`)
|
|
86
|
+
- Does not expand game planning, image generation, or submission flows inside this skill; after login recovery, return to the original task skill and continue
|
|
87
|
+
- Does not treat every "network connection failed" as a login problem; use this skill ONLY when the error clearly points to authentication / login
|
|
88
|
+
|
|
89
|
+
## References
|
|
90
|
+
|
|
91
|
+
- Main entry: `../game-director/SKILL.md`
|
|
92
|
+
- Cloud file system (init / submission / upload): `../evomeme-cloud-fs/SKILL.md`
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "evomemeLogin"
|
|
3
|
+
short_description: "Guide re-login after a cloud operation has a login or credential error, then continue the original task"
|
|
4
|
+
default_prompt: "Use $evomeme-login to restore the login state that just failed, then continue the original cloud operation after login completes."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: false
|