Initial Godot tactical RPG prototype

This commit is contained in:
2026-06-17 23:06:18 +09:00
commit b08c2ac37e
37 changed files with 13792 additions and 0 deletions

203
data/defs/classes.json Normal file
View File

@@ -0,0 +1,203 @@
{
"hero": {
"name": "Hero",
"tier": 1,
"move_type": "foot",
"move": 4,
"attack_range": [1, 1],
"skills": ["spark", "fire_tactic", "mend"],
"growth": { "hp": "B", "mp": "B", "atk": "B", "def": "B", "int": "A", "agi": "B" },
"base_bonus": { "hp": 0, "atk": 0, "def": 0 },
"equipment_slots": {
"weapon": ["sword"],
"armor": ["robe", "light_armor"],
"accessory": ["accessory"]
},
"promotion": { "level": 15, "to": "commander" }
},
"commander": {
"name": "Commander",
"tier": 2,
"move_type": "foot",
"move": 5,
"attack_range": [1, 1],
"skills": ["spark", "fire_tactic", "mend", "great_mend"],
"growth": { "hp": "A", "mp": "B", "atk": "A", "def": "B", "int": "A", "agi": "B" },
"base_bonus": { "hp": 4, "atk": 1, "def": 1, "int": 1 },
"equipment_slots": {
"weapon": ["sword"],
"armor": ["robe", "light_armor"],
"accessory": ["accessory"]
}
},
"cavalry": {
"name": "Cavalry",
"tier": 1,
"move_type": "mounted",
"move": 5,
"attack_range": [1, 1],
"skills": [],
"growth": { "hp": "A", "mp": "D", "atk": "A", "def": "B", "int": "D", "agi": "B" },
"base_bonus": { "hp": 2, "atk": 0, "def": 0 },
"equipment_slots": {
"weapon": ["spear", "sword"],
"armor": ["light_armor", "heavy_armor"],
"accessory": ["accessory"]
},
"promotion": { "level": 15, "to": "elite_cavalry" }
},
"elite_cavalry": {
"name": "Elite Cavalry",
"tier": 2,
"move_type": "mounted",
"move": 6,
"attack_range": [1, 1],
"skills": [],
"growth": { "hp": "A", "mp": "D", "atk": "A", "def": "A", "int": "D", "agi": "A" },
"base_bonus": { "hp": 5, "atk": 2, "def": 1 },
"equipment_slots": {
"weapon": ["spear", "sword"],
"armor": ["light_armor", "heavy_armor"],
"accessory": ["accessory"]
}
},
"infantry": {
"name": "Infantry",
"tier": 1,
"move_type": "foot",
"move": 4,
"attack_range": [1, 1],
"skills": [],
"growth": { "hp": "B", "mp": "D", "atk": "B", "def": "B", "int": "D", "agi": "C" },
"base_bonus": { "hp": 0, "atk": 0, "def": 0 },
"equipment_slots": {
"weapon": ["sword", "spear"],
"armor": ["light_armor", "heavy_armor"],
"accessory": ["accessory"]
},
"promotion": { "level": 15, "to": "guard_captain" }
},
"guard_captain": {
"name": "Guard Captain",
"tier": 2,
"move_type": "foot",
"move": 5,
"attack_range": [1, 1],
"skills": [],
"growth": { "hp": "A", "mp": "D", "atk": "B", "def": "A", "int": "D", "agi": "C" },
"base_bonus": { "hp": 4, "atk": 1, "def": 2 },
"equipment_slots": {
"weapon": ["sword", "spear"],
"armor": ["light_armor", "heavy_armor"],
"accessory": ["accessory"]
}
},
"warrior": {
"name": "Warrior",
"tier": 1,
"move_type": "foot",
"move": 4,
"attack_range": [1, 1],
"skills": [],
"growth": { "hp": "A", "mp": "E", "atk": "A", "def": "B", "int": "E", "agi": "C" },
"base_bonus": { "hp": 4, "atk": 2, "def": 1, "int": -2 },
"equipment_slots": {
"weapon": ["axe", "sword"],
"armor": ["light_armor", "heavy_armor"],
"accessory": ["accessory"]
},
"promotion": { "level": 15, "to": "champion" }
},
"champion": {
"name": "Champion",
"tier": 2,
"move_type": "foot",
"move": 5,
"attack_range": [1, 1],
"skills": [],
"growth": { "hp": "A", "mp": "E", "atk": "A", "def": "A", "int": "E", "agi": "B" },
"base_bonus": { "hp": 6, "atk": 2, "def": 2, "int": -2 },
"equipment_slots": {
"weapon": ["axe", "sword"],
"armor": ["light_armor", "heavy_armor"],
"accessory": ["accessory"]
}
},
"archer": {
"name": "Archer",
"tier": 1,
"move_type": "archer",
"move": 4,
"attack_range": [2, 2],
"skills": [],
"growth": { "hp": "C", "mp": "D", "atk": "B", "def": "C", "int": "D", "agi": "A" },
"base_bonus": { "hp": 0, "atk": 0, "def": 0 },
"equipment_slots": {
"weapon": ["bow"],
"armor": ["robe", "light_armor"],
"accessory": ["accessory"]
},
"promotion": { "level": 15, "to": "marksman" }
},
"marksman": {
"name": "Marksman",
"tier": 2,
"move_type": "archer",
"move": 5,
"attack_range": [2, 2],
"skills": [],
"growth": { "hp": "B", "mp": "D", "atk": "A", "def": "C", "int": "D", "agi": "A" },
"base_bonus": { "hp": 3, "atk": 2, "agi": 1 },
"equipment_slots": {
"weapon": ["bow"],
"armor": ["robe", "light_armor"],
"accessory": ["accessory"]
}
},
"strategist": {
"name": "Strategist",
"tier": 1,
"move_type": "foot",
"move": 4,
"attack_range": [1, 1],
"skills": ["spark", "fire_tactic", "mend"],
"growth": { "hp": "C", "mp": "A", "atk": "E", "def": "D", "int": "A", "agi": "C" },
"base_bonus": { "hp": -2, "mp": 8, "atk": -2, "def": -1, "int": 2 },
"equipment_slots": {
"weapon": ["sword"],
"armor": ["robe", "light_armor"],
"accessory": ["accessory"]
},
"promotion": { "level": 15, "to": "military_advisor" }
},
"military_advisor": {
"name": "Military Advisor",
"tier": 2,
"move_type": "foot",
"move": 4,
"attack_range": [1, 1],
"skills": ["spark", "fire_tactic", "mend", "great_mend"],
"growth": { "hp": "B", "mp": "A", "atk": "E", "def": "C", "int": "A", "agi": "C" },
"base_bonus": { "hp": 2, "mp": 6, "atk": -2, "def": 1, "int": 2 },
"equipment_slots": {
"weapon": ["sword"],
"armor": ["robe", "light_armor"],
"accessory": ["accessory"]
}
},
"bandit": {
"name": "Bandit",
"tier": 1,
"move_type": "foot",
"move": 4,
"attack_range": [1, 1],
"skills": [],
"growth": { "hp": "B", "mp": "E", "atk": "B", "def": "C", "int": "E", "agi": "B" },
"base_bonus": { "hp": 0, "atk": 0, "def": 0 },
"equipment_slots": {
"weapon": ["sword", "axe"],
"armor": ["light_armor"],
"accessory": ["accessory"]
}
}
}

110
data/defs/items.json Normal file
View File

@@ -0,0 +1,110 @@
{
"bronze_sword": {
"name": "Bronze Sword",
"kind": "weapon",
"weapon_type": "sword",
"range": [1, 1],
"bonuses": { "atk": 3 },
"effects": [],
"price": 300
},
"iron_sword": {
"name": "Iron Sword",
"kind": "weapon",
"weapon_type": "sword",
"range": [1, 1],
"bonuses": { "atk": 5 },
"effects": [],
"price": 520
},
"training_spear": {
"name": "Training Spear",
"kind": "weapon",
"weapon_type": "spear",
"range": [1, 1],
"bonuses": { "atk": 4 },
"effects": [],
"price": 360
},
"short_bow": {
"name": "Short Bow",
"kind": "weapon",
"weapon_type": "bow",
"range": [2, 2],
"bonuses": { "atk": 3 },
"effects": [],
"price": 320
},
"hand_axe": {
"name": "Hand Axe",
"kind": "weapon",
"weapon_type": "axe",
"range": [1, 1],
"bonuses": { "atk": 4 },
"effects": [],
"price": 340
},
"war_axe": {
"name": "War Axe",
"kind": "weapon",
"weapon_type": "axe",
"range": [1, 1],
"bonuses": { "atk": 6 },
"effects": [],
"price": 680
},
"cloth_robe": {
"name": "Cloth Robe",
"kind": "armor",
"armor_type": "robe",
"bonuses": { "def": 1 },
"effects": [],
"price": 120
},
"leather_armor": {
"name": "Leather Armor",
"kind": "armor",
"armor_type": "light_armor",
"bonuses": { "def": 1 },
"effects": [],
"price": 180
},
"iron_armor": {
"name": "Iron Armor",
"kind": "armor",
"armor_type": "heavy_armor",
"bonuses": { "def": 3 },
"effects": [],
"price": 520
},
"war_drum": {
"name": "War Drum",
"kind": "accessory",
"accessory_type": "accessory",
"bonuses": { "atk": 1, "agi": 1 },
"effects": [],
"price": 640
},
"imperial_seal": {
"name": "Imperial Seal",
"kind": "accessory",
"accessory_type": "accessory",
"bonuses": { "mp": 4, "int": 1 },
"effects": [],
"price": 900
},
"bean": {
"name": "Bean",
"kind": "consumable",
"uses": 1,
"effects": [{ "type": "heal_hp", "amount": 20 }],
"price": 50
},
"wine": {
"name": "Wine",
"kind": "consumable",
"uses": 1,
"effects": [{ "type": "heal_mp", "amount": 8 }],
"price": 120
}
}

72
data/defs/officers.json Normal file
View File

@@ -0,0 +1,72 @@
{
"cao_cao": {
"name": "Cao Cao",
"faction": "wei",
"class_id": "hero",
"level": 1,
"exp": 0,
"base": { "hp": 38, "mp": 10, "atk": 10, "def": 7, "int": 12, "agi": 8 },
"growth_bonus": { "atk": 1, "int": 1 },
"equipment": { "weapon": "bronze_sword", "armor": "cloth_robe", "accessory": null }
},
"xiahou_dun": {
"name": "Xiahou Dun",
"faction": "wei",
"class_id": "cavalry",
"level": 1,
"exp": 0,
"base": { "hp": 40, "mp": 4, "atk": 11, "def": 6, "int": 5, "agi": 9 },
"growth_bonus": { "hp": 1, "atk": 1 },
"equipment": { "weapon": "training_spear", "armor": "leather_armor", "accessory": null }
},
"xiahou_yuan": {
"name": "Xiahou Yuan",
"faction": "wei",
"class_id": "archer",
"level": 1,
"exp": 0,
"base": { "hp": 32, "mp": 4, "atk": 9, "def": 5, "int": 6, "agi": 12 },
"growth_bonus": { "agi": 1 },
"equipment": { "weapon": "short_bow", "armor": "leather_armor", "accessory": null }
},
"cao_ren": {
"name": "Cao Ren",
"faction": "wei",
"class_id": "infantry",
"level": 1,
"exp": 0,
"base": { "hp": 36, "mp": 3, "atk": 10, "def": 8, "int": 5, "agi": 7 },
"growth_bonus": { "def": 1 },
"equipment": { "weapon": "bronze_sword", "armor": "leather_armor", "accessory": null }
},
"dian_wei": {
"name": "Dian Wei",
"faction": "wei",
"class_id": "warrior",
"level": 3,
"exp": 0,
"base": { "hp": 42, "mp": 2, "atk": 13, "def": 8, "int": 3, "agi": 7 },
"growth_bonus": { "hp": 1, "atk": 1 },
"equipment": { "weapon": "hand_axe", "armor": "leather_armor", "accessory": null }
},
"guo_jia": {
"name": "Guo Jia",
"faction": "wei",
"class_id": "strategist",
"level": 8,
"exp": 0,
"base": { "hp": 30, "mp": 18, "atk": 5, "def": 5, "int": 14, "agi": 9 },
"growth_bonus": { "mp": 1, "int": 1 },
"equipment": { "weapon": "bronze_sword", "armor": "cloth_robe", "accessory": null }
},
"zhang_he": {
"name": "Zhang He",
"faction": "wei",
"class_id": "elite_cavalry",
"level": 12,
"exp": 0,
"base": { "hp": 48, "mp": 6, "atk": 15, "def": 10, "int": 7, "agi": 14 },
"growth_bonus": { "atk": 1, "agi": 1 },
"equipment": { "weapon": "training_spear", "armor": "iron_armor", "accessory": null }
}
}

47
data/defs/skills.json Normal file
View File

@@ -0,0 +1,47 @@
{
"spark": {
"name": "Spark",
"kind": "damage",
"target": "enemy",
"mp_cost": 2,
"range": [1, 2],
"power": 5,
"stat": "int"
},
"fire_tactic": {
"name": "Fire",
"kind": "damage",
"target": "enemy",
"mp_cost": 4,
"range": [1, 3],
"power": 8,
"stat": "int"
},
"blaze": {
"name": "Blaze",
"kind": "damage",
"target": "enemy",
"mp_cost": 7,
"range": [1, 3],
"power": 13,
"stat": "int"
},
"mend": {
"name": "Mend",
"kind": "heal",
"target": "ally",
"mp_cost": 4,
"range": [0, 2],
"power": 12,
"stat": "int"
},
"great_mend": {
"name": "Great Mend",
"kind": "heal",
"target": "ally",
"mp_cost": 7,
"range": [0, 2],
"power": 20,
"stat": "int"
}
}

43
data/defs/terrain.json Normal file
View File

@@ -0,0 +1,43 @@
{
"G": {
"id": "plain",
"name": "Plain",
"color": "#6d9e4f",
"defense": 0,
"avoid": 0,
"move_cost": { "foot": 1, "mounted": 1, "archer": 1, "water": 99 }
},
"F": {
"id": "forest",
"name": "Forest",
"color": "#33733a",
"defense": 2,
"avoid": 10,
"move_cost": { "foot": 2, "mounted": 3, "archer": 2, "water": 99 }
},
"H": {
"id": "hill",
"name": "Hill",
"color": "#8c8057",
"defense": 1,
"avoid": 5,
"move_cost": { "foot": 2, "mounted": 3, "archer": 2, "water": 99 }
},
"R": {
"id": "road",
"name": "Road",
"color": "#a38c6b",
"defense": 0,
"avoid": 0,
"move_cost": { "foot": 1, "mounted": 1, "archer": 1, "water": 99 }
},
"W": {
"id": "water",
"name": "Water",
"color": "#2e5c9e",
"defense": 0,
"avoid": 0,
"move_cost": { "foot": 99, "mounted": 99, "archer": 99, "water": 1 }
}
}