first commmit

This commit is contained in:
jakciehan
2026-05-06 08:17:32 +08:00
commit 427a33c55b
269 changed files with 20906 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
placeholder
+14
View File
@@ -0,0 +1,14 @@
[
{
"id": "shuang_huan_fang",
"displayName": "双幻坊",
"hp": 3,
"butterflyReveal": true,
"princessCutsceneAtHpRatio": 0.5,
"phases": [
{ "hpThreshold": 1.0, "mode": "pair_pincer", "actionIntervalSec": 2.2 },
{ "hpThreshold": 0.66, "mode": "fireball_spread", "actionIntervalSec": 1.8 },
{ "hpThreshold": 0.33, "mode": "clone_confuse", "actionIntervalSec": 1.4 }
]
}
]
+11
View File
@@ -0,0 +1,11 @@
{
"ver": "2.0.1",
"importer": "json",
"imported": true,
"uuid": "8e13e1cc-c9ca-440e-8fa2-3d52b15e1688",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}
+48
View File
@@ -0,0 +1,48 @@
[
{
"id": "qing_ren",
"displayName": "青忍",
"size": { "w": 16, "h": 16 },
"moveSpeed": 60,
"attackIntervalSec": 2.0,
"attacks": ["shuriken", "sword"],
"hp": 1,
"drops": []
},
{
"id": "chi_ren",
"displayName": "赤忍",
"size": { "w": 16, "h": 16 },
"moveSpeed": 120,
"attackIntervalSec": 1.5,
"attacks": ["smoke_bomb"],
"hp": 1,
"drops": [
{ "item": "dian_wan", "afterKills": 3, "probability": 0.25 },
{ "item": "shu_wan", "afterKills": 3, "probability": 0.25 }
]
},
{
"id": "hei_ren",
"displayName": "黑忍",
"size": { "w": 20, "h": 24 },
"moveSpeed": 80,
"attackIntervalSec": 2.5,
"attacks": ["sword", "shuriken"],
"hp": 2,
"drops": [
{ "item": "mo_di", "probability": 1.0 }
]
},
{
"id": "yao_fang",
"displayName": "妖坊",
"size": { "w": 18, "h": 20 },
"moveSpeed": 0,
"attackIntervalSec": 3.0,
"attacks": ["fireball"],
"hp": 1,
"killObjective": 3,
"drops": []
}
]
@@ -0,0 +1,11 @@
{
"ver": "2.0.1",
"importer": "json",
"imported": true,
"uuid": "ffaf0523-84a3-4c88-97a3-fb14b41c07cc",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}
+36
View File
@@ -0,0 +1,36 @@
[
{
"id": "crystal_jade",
"displayName": "水晶玉",
"icon": "items/crystal_jade",
"lifetimeSec": 16
},
{
"id": "dian_wan",
"displayName": "点丸",
"icon": "items/dian_wan",
"durationSec": 30,
"magnitude": 0.5,
"lifetimeSec": 20
},
{
"id": "shu_wan",
"displayName": "术丸",
"icon": "items/shu_wan",
"durationSec": 20,
"magnitude": 0.3,
"lifetimeSec": 20
},
{
"id": "mo_di",
"displayName": "魔笛",
"icon": "items/mo_di",
"lifetimeSec": 60
},
{
"id": "zeng_wan",
"displayName": "增丸",
"icon": "items/zeng_wan",
"lifetimeSec": 30
}
]
+11
View File
@@ -0,0 +1,11 @@
{
"ver": "2.0.1",
"importer": "json",
"imported": true,
"uuid": "c58ff9ce-2645-44ff-8df9-4f9bfc68b585",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}
+84
View File
@@ -0,0 +1,84 @@
[
{
"id": "1-1",
"chapter": 1,
"displayName": "初始森林",
"sceneTheme": "forest",
"scrollDirection": "horizontal",
"timeLimitSec": 75,
"objective": { "kind": "kill_count", "enemy": "yao_fang", "count": 3 },
"levelLengthPx": 3840,
"bgm": "bgm_forest",
"enemySpawns": [
{ "type": "yao_fang", "atPx": 900 },
{ "type": "qing_ren", "atPx": 1400, "count": 2 },
{ "type": "yao_fang", "atPx": 2100 },
{ "type": "chi_ren", "atPx": 2600, "count": 2 },
{ "type": "yao_fang", "atPx": 3200 }
]
},
{
"id": "1-2",
"chapter": 1,
"displayName": "森林深处",
"sceneTheme": "forest",
"scrollDirection": "horizontal",
"timeLimitSec": 85,
"objective": { "kind": "kill_count", "enemy": "yao_fang", "count": 1 },
"levelLengthPx": 4200,
"bgm": "bgm_forest",
"enemySpawns": [
{ "type": "qing_ren", "atPx": 800, "count": 2 },
{ "type": "chi_ren", "atPx": 1600, "count": 3 },
{ "type": "qing_ren", "atPx": 2400, "count": 2 },
{ "type": "yao_fang", "atPx": 3600 }
]
},
{
"id": "1-3",
"chapter": 1,
"displayName": "洞穴水路",
"sceneTheme": "cave",
"scrollDirection": "horizontal_bi",
"timeLimitSec": 100,
"objective": { "kind": "kill_count", "enemy": "qing_ren", "count": 10 },
"levelLengthPx": 4800,
"bgm": "bgm_forest",
"enemySpawns": [
{ "type": "qing_ren", "atPx": 600, "count": 2 },
{ "type": "qing_ren", "atPx": 1400, "count": 3 },
{ "type": "chi_ren", "atPx": 2200, "count": 1 },
{ "type": "qing_ren", "atPx": 3000, "count": 3 },
{ "type": "qing_ren", "atPx": 4000, "count": 2 }
]
},
{
"id": "1-4",
"chapter": 1,
"displayName": "城壁",
"sceneTheme": "castle_wall",
"scrollDirection": "vertical",
"timeLimitSec": 95,
"objective": { "kind": "reach_top" },
"levelLengthPx": 3240,
"bgm": "bgm_castle",
"enemySpawns": [
{ "type": "hei_ren", "atPx": 800 },
{ "type": "qing_ren", "atPx": 1400, "count": 2 },
{ "type": "hei_ren", "atPx": 2000 },
{ "type": "chi_ren", "atPx": 2600, "count": 2 }
]
},
{
"id": "1-5",
"chapter": 1,
"displayName": "魔城天守阁",
"sceneTheme": "demon_castle",
"scrollDirection": "horizontal",
"timeLimitSec": 120,
"objective": { "kind": "defeat_boss", "bossId": "shuang_huan_fang" },
"levelLengthPx": 1920,
"bgm": "bgm_boss",
"enemySpawns": []
}
]
+11
View File
@@ -0,0 +1,11 @@
{
"ver": "2.0.1",
"importer": "json",
"imported": true,
"uuid": "0e151ff6-b2d3-4841-abd6-8286943549d9",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}
+24
View File
@@ -0,0 +1,24 @@
[
{
"id": "chapter_1_intro",
"bgm": "bgm_story",
"maxDurationSec": 30,
"pages": [
{
"index": 1,
"illustration": "story/ch1_page1_ninja",
"text": "在月影摇曳的古国,有一位代代相传的忍者——影。他身着赤红忍装,精通手里剑与忍者刀,守护着这片宁静的土地。"
},
{
"index": 2,
"illustration": "story/ch1_page2_princess",
"text": "然而在一个暴雨之夜,青忍的黑影撕开了宫殿的夜幕,公主被青忍的爪牙掳走,消失在魔城方向的天际。"
},
{
"index": 3,
"illustration": "story/ch1_page3_depart",
"text": "为了将公主从邪恶的双幻坊手中救出,影踏上了穿越森林、洞穴、城壁、直入魔城天守阁的征程。"
}
]
}
]
@@ -0,0 +1,11 @@
{
"ver": "2.0.1",
"importer": "json",
"imported": true,
"uuid": "3f7c2a22-337f-4729-ab7e-7e0655527ef3",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}
+18
View File
@@ -0,0 +1,18 @@
[
{
"id": "shuriken",
"displayName": "手里剑",
"baseIntervalSec": 0.3,
"upgradedIntervalSec": 0.25,
"damage": 1,
"canParry": false,
"burstMax": 3
},
{
"id": "ninja_sword",
"displayName": "忍者刀",
"baseIntervalSec": 0.5,
"damage": 2,
"canParry": true
}
]
@@ -0,0 +1,11 @@
{
"ver": "2.0.1",
"importer": "json",
"imported": true,
"uuid": "765a1200-970d-4b01-bbb2-dde9fa04929d",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}