Add Wei succession scenario

This commit is contained in:
2026-06-18 01:46:56 +09:00
parent 55abe21806
commit 7b67f7ad22
5 changed files with 372 additions and 4 deletions

View File

@@ -4,7 +4,7 @@ Godot 4 tactical RPG prototype inspired by classic turn-based Romance of the Thr
## Current Slice
- Forty-nine campaign scenarios.
- Fifty campaign scenarios.
- Grid movement.
- Unit selection.
- Move, attack, wait, end turn.
@@ -70,6 +70,7 @@ Godot 4 tactical RPG prototype inspired by classic turn-based Romance of the Thr
- Maicheng Pursuit consumes the Jingzhou Supply Line branch flags and seals Guan Yu's retreat road toward Maicheng.
- Jing Province Settlement consumes the Maicheng Pursuit branch flags and settles the Jing Province command post before the next court summons.
- Luoyang Summons consumes the Jing Province Settlement branch flags and opens the court road toward Wei's next transition.
- Wei Succession consumes the Luoyang Summons branch flags and secures the succession dais before the next frontier decision.
- Post-battle choices can save campaign flags that branch later briefing text, shop stock, and scenario events.
- Scenario post-battle dialogue can play before the victory result panel.
- Basic battle EXP, level-ups, and core first-tier class promotion routes.

View File

@@ -248,6 +248,11 @@
"id": "049_luoyang_summons",
"title": "Luoyang Summons",
"path": "res://data/scenarios/049_luoyang_summons.json"
},
{
"id": "050_wei_succession",
"title": "Wei Succession",
"path": "res://data/scenarios/050_wei_succession.json"
}
]
}

View File

@@ -0,0 +1,359 @@
{
"id": "050_wei_succession",
"name": "Wei Succession",
"objectives": {
"victory": "Reach the Wei succession dais with Cao Cao, then defeat the court loyalists.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18."
},
"conditions": {
"victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "wei_succession_dais_reached" },
"defeat": [
{ "type": "any_officer_defeated", "team": "player", "officer_ids": ["cao_cao"] },
{ "type": "turn_reached", "turn": 18, "team": "player" }
]
},
"briefing": {
"title": "Wei Succession",
"location": "Luoyang Court Dais, 220 CE",
"lines": [
"The court road is open, but Luoyang's halls still tremble between imperial ceremony, Wei authority, and soldiers who understand both too well.",
"Cao Cao moves to secure the succession dais before court loyalists can turn hesitation into a capital crisis."
],
"conditional_lines": [
{
"campaign_flags": { "secured_luoyang_court": true },
"lines": [
"Securing Luoyang's court order gives Cao Cao a formal path to the dais, though the loyalists still gather behind the outer screen."
]
},
{
"campaign_flags": { "prepared_wei_succession": true },
"lines": [
"Preparing Wei's succession has made the court transition swift, but speed also gives anxious loyalists a reason to draw steel."
]
}
]
},
"shop": {
"items": [
"bean",
"wine",
"iron_sword",
"training_spear",
"short_bow",
"hand_axe",
"war_axe",
"leather_armor",
"iron_armor"
],
"conditional_items": [
{
"campaign_flags": { "secured_luoyang_court": true },
"items": ["imperial_seal"]
},
{
"campaign_flags": { "prepared_wei_succession": true },
"items": ["war_drum"]
}
]
},
"roster": {
"max_units": 7,
"required_officers": ["cao_cao", "guo_jia"]
},
"formation": {
"cells": [[1, 3], [1, 4], [1, 5], [2, 2], [2, 3], [2, 4], [2, 5], [2, 6], [3, 2], [3, 3], [3, 4], [3, 5], [3, 6]]
},
"map": {
"width": 18,
"height": 11,
"terrain": [
"GGGGHHGGGGGGHHGGGG",
"GGFFHHGGRRGGHHFFGG",
"GGRRRRGGFFGGRRRRGG",
"GGGFGHGGGGRRGGGGGG",
"RRRRRRRRRRRRRRRRRR",
"GGGGGHHGGGRRGFFGGG",
"GGHHGFFFGGFFFGGHHG",
"GGHHGFFFGGFFFGGHHG",
"GGGGGGFFGGHHHGGGGG",
"GGFFGGGGGGHHHFFGGG",
"GGGGGGGGGGGGGGGGGG"
]
},
"deployments": [
{
"unit_id": "cao_cao_ch50",
"officer_id": "cao_cao",
"team": "player",
"pos": [1, 4]
},
{
"unit_id": "guo_jia_ch50",
"officer_id": "guo_jia",
"team": "player",
"requires_joined": true,
"pos": [2, 4]
},
{
"unit_id": "zhang_he_ch50",
"officer_id": "zhang_he",
"team": "player",
"requires_joined": true,
"pos": [2, 3]
},
{
"unit_id": "xiahou_dun_ch50",
"officer_id": "xiahou_dun",
"team": "player",
"pos": [1, 5]
},
{
"unit_id": "dian_wei_ch50",
"officer_id": "dian_wei",
"team": "player",
"requires_joined": true,
"pos": [2, 5]
},
{
"unit_id": "xiahou_yuan_ch50",
"officer_id": "xiahou_yuan",
"team": "player",
"requires_joined": true,
"pos": [3, 3]
},
{
"unit_id": "cao_ren_ch50",
"officer_id": "cao_ren",
"team": "player",
"requires_joined": true,
"pos": [3, 4]
},
{
"unit_id": "wei_succession_loyalist_commander",
"name": "Wei Succession Loyalist",
"class_id": "commander",
"team": "enemy",
"level": 47,
"pos": [14, 4],
"base": { "hp": 158, "mp": 74, "atk": 50, "def": 41, "int": 39, "agi": 26 }
},
{
"unit_id": "court_screen_captain",
"name": "Court Screen Captain",
"class_id": "guard_captain",
"team": "enemy",
"level": 47,
"pos": [12, 4],
"base": { "hp": 128, "atk": 49, "def": 42 }
},
{
"unit_id": "imperial_oath_champion",
"name": "Imperial Oath Champion",
"class_id": "champion",
"team": "enemy",
"level": 47,
"pos": [15, 3],
"base": { "hp": 156, "mp": 12, "atk": 51, "def": 37, "int": 14, "agi": 33 }
},
{
"unit_id": "succession_court_advisor",
"name": "Succession Court Advisor",
"class_id": "military_advisor",
"team": "enemy",
"level": 47,
"pos": [13, 5],
"skills": ["blaze", "great_mend"],
"base": { "hp": 114, "mp": 98, "atk": 8, "def": 28, "int": 50, "agi": 24 }
},
{
"unit_id": "succession_spear_north",
"name": "Succession Spear",
"class_id": "infantry",
"team": "enemy",
"level": 47,
"pos": [12, 3],
"base": { "hp": 116, "atk": 48, "def": 38 }
},
{
"unit_id": "succession_spear_south",
"name": "Succession Spear",
"class_id": "infantry",
"team": "enemy",
"level": 47,
"pos": [12, 5],
"base": { "hp": 116, "atk": 48, "def": 38 }
},
{
"unit_id": "succession_crossbow_guard",
"name": "Succession Crossbow Guard",
"class_id": "marksman",
"team": "enemy",
"level": 47,
"pos": [13, 2],
"base": { "hp": 108, "atk": 49, "def": 24, "agi": 36 }
}
],
"events": [
{
"id": "opening",
"once": true,
"when": { "type": "battle_start" },
"actions": [
{ "type": "log", "text": "Cao Cao advances through Luoyang's inner court to secure the Wei succession dais." }
]
},
{
"id": "opening_dialogue",
"once": true,
"when": { "type": "battle_begin" },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Ren", "text": "The court road opened, but the inner dais still bristles with loyalist spears." },
{ "speaker": "Guo Jia", "text": "Ceremony is just another battlefield when every bow decides which way history kneels." },
{ "speaker": "Cao Cao", "text": "Then we cross it with order. Wei's future will not be left to frightened hands." }
]
}
]
},
{
"id": "secured_court_formal_path",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 2, "campaign_flags": { "secured_luoyang_court": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Guo Jia", "text": "The secured court order gives us the formal path. Their resistance must now explain itself to every watching clerk." },
{ "speaker": "Cao Cao", "text": "A written order can be sharper than a blade when men still pretend to obey it." }
]
}
]
},
{
"id": "prepared_succession_draws_loyalist_riders",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 2, "campaign_flags": { "prepared_wei_succession": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Wei Succession Loyalist", "text": "Wei moves too quickly. Riders, cut across the court road before the dais changes hands." },
{ "speaker": "Zhang He", "text": "They fear speed because it leaves them no time to choose a better lie." }
]
},
{
"type": "spawn_deployment",
"deployment": {
"unit_id": "succession_loyalist_riders",
"name": "Succession Loyalist Riders",
"class_id": "cavalry",
"team": "enemy",
"level": 47,
"pos": [16, 3],
"base": { "hp": 106, "atk": 44, "def": 28, "agi": 34 }
}
}
]
},
{
"id": "turn_4_dais_pressure",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 4 },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Succession Court Advisor", "text": "Hold the screen. If Cao Cao reaches the dais, every seal in Luoyang will know which hand directs it." },
{ "speaker": "Guo Jia", "text": "The seals already know. The men holding them are slower." }
]
}
]
},
{
"id": "wei_succession_dais_reached",
"once": true,
"when": { "type": "unit_reaches_tile", "team": "player", "officer_ids": ["cao_cao"], "pos": [10, 4] },
"actions": [
{
"type": "set_objective",
"victory": "The Wei succession dais is reached. Defeat the court loyalists.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18."
},
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Cao", "text": "The dais is reached. Let the court see that order stands here, not panic." },
{ "speaker": "Wei Succession Loyalist", "text": "A dais is not authority while loyal blades still stand between it and the court." }
]
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "succession_inner_screen_guard",
"name": "Succession Inner Screen Guard",
"class_id": "guard_captain",
"team": "enemy",
"level": 47,
"pos": [16, 4],
"base": { "hp": 124, "atk": 48, "def": 41 }
},
{
"unit_id": "succession_arrow_screen",
"name": "Succession Arrow Screen",
"class_id": "archer",
"team": "enemy",
"level": 47,
"pos": [16, 5],
"base": { "hp": 100, "atk": 47, "def": 21, "agi": 35 }
}
]
}
]
},
{
"id": "turn_9_succession_settles",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 9 },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Xiahou Dun", "text": "Their screen is cracking. Even the court scribes are starting to look past them." },
{ "speaker": "Cao Cao", "text": "Then let the record show the last doubt falling." }
]
}
]
}
],
"rewards": {
"gold": 9800,
"items": ["bean", "wine", "war_drum"]
},
"post_battle_dialogue": [
{ "speaker": "Guo Jia", "text": "The succession dais is secure. Luoyang's seals now move with fewer trembling hands." },
{ "speaker": "Cao Ren", "text": "We can proclaim Wei's authority from the capital, or prepare the eastern front before Wu tests the transition." },
{ "speaker": "Cao Cao", "text": "Authority written in Luoyang must still be defended on the rivers. Choose where tomorrow hears it first." }
],
"post_battle_choices": [
{
"id": "proclaim_wei_authority",
"label": "Proclaim Wei",
"description": "Cao Cao proclaims Wei authority from Luoyang before turning back to the frontiers.",
"set_flags": { "proclaimed_wei_authority": true, "prepared_eastern_front": false },
"gold": 1750,
"items": ["imperial_seal"]
},
{
"id": "prepare_eastern_front",
"label": "Eastern Front",
"description": "Cao Cao prepares the eastern front before Wu can test the court transition.",
"set_flags": { "proclaimed_wei_authority": false, "prepared_eastern_front": true },
"gold": 1550,
"items": ["war_drum"]
}
]
}

View File

@@ -60,6 +60,7 @@ data/scenarios/046_jingzhou_supply_line.json
data/scenarios/047_maicheng_pursuit.json
data/scenarios/048_jing_province_settlement.json
data/scenarios/049_luoyang_summons.json
data/scenarios/050_wei_succession.json
```
## Campaign
@@ -121,7 +122,8 @@ The campaign file defines scenario order, resource paths, and officers who are a
{ "id": "046_jingzhou_supply_line", "title": "Jingzhou Supply Line", "path": "res://data/scenarios/046_jingzhou_supply_line.json" },
{ "id": "047_maicheng_pursuit", "title": "Maicheng Pursuit", "path": "res://data/scenarios/047_maicheng_pursuit.json" },
{ "id": "048_jing_province_settlement", "title": "Jing Province Settlement", "path": "res://data/scenarios/048_jing_province_settlement.json" },
{ "id": "049_luoyang_summons", "title": "Luoyang Summons", "path": "res://data/scenarios/049_luoyang_summons.json" }
{ "id": "049_luoyang_summons", "title": "Luoyang Summons", "path": "res://data/scenarios/049_luoyang_summons.json" },
{ "id": "050_wei_succession", "title": "Wei Succession", "path": "res://data/scenarios/050_wei_succession.json" }
]
}
```

View File

@@ -21,7 +21,7 @@
- Destination victory conditions and objective map markers exist.
- Turn-limit conditions and HUD turn-limit display exist.
- Victory reward summary is visible.
- Next-battle flow exists across the current forty-nine-scenario campaign.
- Next-battle flow exists across the current fifty-scenario campaign.
- Campaign completion and new-campaign reset exist.
- Reward inventory can be brought into the next battle.
@@ -52,7 +52,7 @@
- Party roster persistence has a first save-file skeleton.
- Level, experience, and equipment persistence.
- Chapter selection and save/load.
- Linear forty-nine-scenario campaign order exists.
- Linear fifty-scenario campaign order exists.
- Save reset exists.
- Victory rewards, consumable counts, equipment stock, and equipped gear persist.
- A basic pre-battle shop with scenario-specific stock exists. Sell-back and richer item management are still planned.
@@ -109,6 +109,7 @@
- Forty-seventh-scenario content exists with Maicheng pursuit pressure, Guan Yu's retreat guard, Fancheng-line or rearguard-pursuit branch reactions, and Wu encirclement or Xiangfan front follow-up flags.
- Forty-eighth-scenario content exists with Jing Province settlement pressure, command-post remnants, Wu encirclement or Xiangfan front branch reactions, and Jing stabilization or Luoyang summons follow-up flags.
- Forty-ninth-scenario content exists with Luoyang court-road pressure, outer court guards, Jing stabilization or fast-summons branch reactions, and Luoyang court or Wei succession follow-up flags.
- Fiftieth-scenario content exists with Wei succession pressure, court loyalists, Luoyang court or Wei succession branch reactions, and Wei authority or eastern front follow-up flags.
## Milestone 5: Presentation