Initial Godot tactical RPG prototype
This commit is contained in:
267
data/scenarios/005_puyang_raid.json
Normal file
267
data/scenarios/005_puyang_raid.json
Normal file
@@ -0,0 +1,267 @@
|
||||
{
|
||||
"id": "005_puyang_raid",
|
||||
"name": "Puyang Raid",
|
||||
"objectives": {
|
||||
"victory": "Defeat Lu Bu's forward guard.",
|
||||
"defeat": "Cao Cao is defeated or the battle reaches Turn 11."
|
||||
},
|
||||
"conditions": {
|
||||
"victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "turn_3_lu_bu_arrives" },
|
||||
"defeat": [
|
||||
{ "type": "any_officer_defeated", "team": "player", "officer_ids": ["cao_cao"] },
|
||||
{ "type": "turn_reached", "turn": 11, "team": "player" }
|
||||
]
|
||||
},
|
||||
"briefing": {
|
||||
"title": "Puyang Raid",
|
||||
"location": "Puyang, 194 CE",
|
||||
"lines": [
|
||||
"Lu Bu has seized momentum in Yan Province.",
|
||||
"Cao Cao launches a night raid near Puyang to break the forward guard before the main cavalry can gather.",
|
||||
"Dian Wei joins the front line as Cao Cao's personal shield."
|
||||
]
|
||||
},
|
||||
"shop": {
|
||||
"items": [
|
||||
"bean",
|
||||
"wine",
|
||||
"iron_sword",
|
||||
"training_spear",
|
||||
"short_bow",
|
||||
"hand_axe",
|
||||
"iron_armor"
|
||||
]
|
||||
},
|
||||
"roster": {
|
||||
"max_units": 4,
|
||||
"required_officers": ["cao_cao", "dian_wei"]
|
||||
},
|
||||
"formation": {
|
||||
"cells": [[1, 3], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5], [3, 4]]
|
||||
},
|
||||
"map": {
|
||||
"width": 14,
|
||||
"height": 10,
|
||||
"terrain": [
|
||||
"GGGGGHHGGGGGGG",
|
||||
"GGGFFHHGGGFFGG",
|
||||
"GGGFFRRRRRFFGG",
|
||||
"GGGGGRGGGRGGGG",
|
||||
"RRRRRRRRRRRRRR",
|
||||
"GGGGGRGGGRGGGG",
|
||||
"GGFFFRRRRRFFGG",
|
||||
"GGFFFHHGGGFFGG",
|
||||
"GGGGGHHGGGWWGG",
|
||||
"GGGGGGGGGGWWGG"
|
||||
]
|
||||
},
|
||||
"deployments": [
|
||||
{
|
||||
"unit_id": "cao_cao_ch5",
|
||||
"officer_id": "cao_cao",
|
||||
"team": "player",
|
||||
"pos": [1, 4]
|
||||
},
|
||||
{
|
||||
"unit_id": "dian_wei_ch5",
|
||||
"officer_id": "dian_wei",
|
||||
"team": "player",
|
||||
"requires_joined": true,
|
||||
"pos": [2, 4]
|
||||
},
|
||||
{
|
||||
"unit_id": "xiahou_dun_ch5",
|
||||
"officer_id": "xiahou_dun",
|
||||
"team": "player",
|
||||
"pos": [1, 5]
|
||||
},
|
||||
{
|
||||
"unit_id": "xiahou_yuan_ch5",
|
||||
"officer_id": "xiahou_yuan",
|
||||
"team": "player",
|
||||
"requires_joined": true,
|
||||
"pos": [2, 3]
|
||||
},
|
||||
{
|
||||
"unit_id": "cao_ren_ch5",
|
||||
"officer_id": "cao_ren",
|
||||
"team": "player",
|
||||
"requires_joined": true,
|
||||
"pos": [2, 5]
|
||||
},
|
||||
{
|
||||
"unit_id": "zhang_liao_vanguard",
|
||||
"name": "Zhang Liao Vanguard",
|
||||
"class_id": "cavalry",
|
||||
"team": "enemy",
|
||||
"level": 5,
|
||||
"pos": [10, 4],
|
||||
"base": { "hp": 48, "atk": 16, "def": 8, "agi": 10 }
|
||||
},
|
||||
{
|
||||
"unit_id": "gao_shun_guard",
|
||||
"name": "Gao Shun Guard",
|
||||
"class_id": "infantry",
|
||||
"team": "enemy",
|
||||
"level": 5,
|
||||
"pos": [9, 3],
|
||||
"base": { "hp": 44, "atk": 14, "def": 9 }
|
||||
},
|
||||
{
|
||||
"unit_id": "puyang_cavalry_1",
|
||||
"name": "Puyang Rider",
|
||||
"class_id": "cavalry",
|
||||
"team": "enemy",
|
||||
"level": 5,
|
||||
"pos": [11, 3],
|
||||
"base": { "hp": 38, "atk": 13, "def": 7 }
|
||||
},
|
||||
{
|
||||
"unit_id": "puyang_cavalry_2",
|
||||
"name": "Puyang Rider",
|
||||
"class_id": "cavalry",
|
||||
"team": "enemy",
|
||||
"level": 5,
|
||||
"pos": [11, 5],
|
||||
"base": { "hp": 38, "atk": 13, "def": 7 }
|
||||
},
|
||||
{
|
||||
"unit_id": "puyang_archer",
|
||||
"name": "Puyang Archer",
|
||||
"class_id": "archer",
|
||||
"team": "enemy",
|
||||
"level": 5,
|
||||
"pos": [10, 2],
|
||||
"base": { "hp": 30, "atk": 12, "def": 5 }
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
{
|
||||
"id": "opening",
|
||||
"once": true,
|
||||
"when": { "type": "battle_start" },
|
||||
"actions": [
|
||||
{ "type": "log", "text": "Cao Cao's raiding force slips toward Puyang under cover of darkness." }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "opening_dialogue",
|
||||
"once": true,
|
||||
"when": { "type": "battle_begin" },
|
||||
"actions": [
|
||||
{
|
||||
"type": "dialogue",
|
||||
"lines": [
|
||||
{ "speaker": "Cao Cao", "text": "Lu Bu's cavalry is dangerous once it gathers speed. We strike before the whole camp wakes." },
|
||||
{ "speaker": "Dian Wei", "text": "Stay behind me, my lord. Any rider who reaches you answers to my axe." },
|
||||
{ "speaker": "Xiahou Dun", "text": "Good. We cut open their guard and withdraw before dawn." }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "turn_2_alarm",
|
||||
"once": true,
|
||||
"when": { "type": "turn_start", "team": "enemy", "turn": 2 },
|
||||
"actions": [
|
||||
{ "type": "log", "text": "Puyang's forward camp sounds the alarm." },
|
||||
{
|
||||
"type": "dialogue",
|
||||
"lines": [
|
||||
{ "speaker": "Zhang Liao", "text": "Cao Cao comes in the night. Riders, close the road and pin him here." },
|
||||
{ "speaker": "Cao Cao", "text": "The alarm is raised. Break their line before Lu Bu himself arrives." }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "turn_3_lu_bu_arrives",
|
||||
"once": true,
|
||||
"when": { "type": "turn_start", "team": "enemy", "turn": 3 },
|
||||
"actions": [
|
||||
{ "type": "log", "text": "Lu Bu's banner appears beyond the eastern road." },
|
||||
{
|
||||
"type": "dialogue",
|
||||
"lines": [
|
||||
{ "speaker": "Lu Bu", "text": "Cao Cao dares raid Puyang? Then let him see how fast my riders wake." },
|
||||
{ "speaker": "Dian Wei", "text": "That one has a loud voice. I will hold the road while you finish the guard." }
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "set_objective",
|
||||
"victory": "Defeat Zhang Liao's guard and the arriving riders.",
|
||||
"defeat": "Cao Cao is defeated or the battle reaches Turn 11."
|
||||
},
|
||||
{
|
||||
"type": "spawn_deployments",
|
||||
"deployments": [
|
||||
{
|
||||
"unit_id": "lu_bu_banner",
|
||||
"name": "Lu Bu Banner Guard",
|
||||
"class_id": "elite_cavalry",
|
||||
"team": "enemy",
|
||||
"level": 6,
|
||||
"pos": [13, 4],
|
||||
"base": { "hp": 54, "atk": 18, "def": 9, "agi": 12 }
|
||||
},
|
||||
{
|
||||
"unit_id": "lu_bu_rider_north",
|
||||
"name": "Lu Bu Rider",
|
||||
"class_id": "cavalry",
|
||||
"team": "enemy",
|
||||
"level": 5,
|
||||
"pos": [12, 2],
|
||||
"base": { "hp": 38, "atk": 14, "def": 7 }
|
||||
},
|
||||
{
|
||||
"unit_id": "lu_bu_rider_south",
|
||||
"name": "Lu Bu Rider",
|
||||
"class_id": "cavalry",
|
||||
"team": "enemy",
|
||||
"level": 5,
|
||||
"pos": [12, 6],
|
||||
"base": { "hp": 38, "atk": 14, "def": 7 }
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "turn_5_pressure",
|
||||
"once": true,
|
||||
"when": { "type": "turn_start", "team": "player", "turn": 5 },
|
||||
"actions": [
|
||||
{
|
||||
"type": "dialogue",
|
||||
"lines": [
|
||||
{ "speaker": "Dian Wei", "text": "Their riders hit hard, but their line bends. Give the word and I will split it." },
|
||||
{ "speaker": "Cao Cao", "text": "Press them. We leave Puyang with their vanguard broken." }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"rewards": {
|
||||
"gold": 900,
|
||||
"items": ["bean", "wine", "iron_sword"]
|
||||
},
|
||||
"post_battle_dialogue": [
|
||||
{ "speaker": "Xiahou Dun", "text": "Lu Bu's men still hold Puyang, but their forward guard will remember tonight." },
|
||||
{ "speaker": "Dian Wei", "text": "They came fast. Next time, let them come closer." },
|
||||
{ "speaker": "Cao Cao", "text": "We have measured their strength. Now we choose whether to fortify Yan Province or strike again." }
|
||||
],
|
||||
"post_battle_choices": [
|
||||
{
|
||||
"id": "fortify_yan_province",
|
||||
"label": "Fortify Yan Province",
|
||||
"description": "Secure supply roads before another clash with Lu Bu.",
|
||||
"set_flags": { "fortified_yan_province": true, "pressed_lu_bu": false }
|
||||
},
|
||||
{
|
||||
"id": "press_lu_bu",
|
||||
"label": "Press Lu Bu",
|
||||
"description": "Keep pressure on Puyang while Lu Bu's guard is shaken.",
|
||||
"set_flags": { "fortified_yan_province": false, "pressed_lu_bu": true }
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user