From ba195de007916a19dd756d9eee38fc5dcf952a9e Mon Sep 17 00:00:00 2001 From: autocommit Date: Thu, 16 Apr 2026 15:40:10 -0700 Subject: [PATCH] =?UTF-8?q?feat(units):=20=E2=9C=A8=20Add=2011=20new=20uni?= =?UTF-8?q?t=20JSON=20configs=20like=20ancient=5Fhydra=20and=20basilisk=5F?= =?UTF-8?q?wild=20with=20game=20attributes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .../data/units/ancient_hydra.json | 41 +++++++++++++++++++ .../data/units/basilisk_wild.json | 41 +++++++++++++++++++ .../age-of-dwarves/data/units/berserker.json | 41 +++++++++++++++++++ .../age-of-dwarves/data/units/dire_bear.json | 41 +++++++++++++++++++ .../age-of-dwarves/data/units/dire_wolf.json | 37 +++++++++++++++++ .../age-of-dwarves/data/units/drake_wild.json | 40 ++++++++++++++++++ .../age-of-dwarves/data/units/elder_wyrm.json | 41 +++++++++++++++++++ .../data/units/frostfang_alpha.json | 40 ++++++++++++++++++ .../data/units/garden_snail.json | 37 +++++++++++++++++ .../data/units/lava_elemental.json | 41 +++++++++++++++++++ .../age-of-dwarves/data/units/runesmith.json | 41 +++++++++++++++++++ 11 files changed, 441 insertions(+) create mode 100644 public/games/age-of-dwarves/data/units/ancient_hydra.json create mode 100644 public/games/age-of-dwarves/data/units/basilisk_wild.json create mode 100644 public/games/age-of-dwarves/data/units/berserker.json create mode 100644 public/games/age-of-dwarves/data/units/dire_bear.json create mode 100644 public/games/age-of-dwarves/data/units/dire_wolf.json create mode 100644 public/games/age-of-dwarves/data/units/drake_wild.json create mode 100644 public/games/age-of-dwarves/data/units/elder_wyrm.json create mode 100644 public/games/age-of-dwarves/data/units/frostfang_alpha.json create mode 100644 public/games/age-of-dwarves/data/units/garden_snail.json create mode 100644 public/games/age-of-dwarves/data/units/lava_elemental.json create mode 100644 public/games/age-of-dwarves/data/units/runesmith.json diff --git a/public/games/age-of-dwarves/data/units/ancient_hydra.json b/public/games/age-of-dwarves/data/units/ancient_hydra.json new file mode 100644 index 00000000..a8cf5335 --- /dev/null +++ b/public/games/age-of-dwarves/data/units/ancient_hydra.json @@ -0,0 +1,41 @@ +[ + { + "id": "ancient_hydra", + "name": "Ancient Hydra", + "description": "A many-headed behemoth coiled in fen and flooded ruin. Sever one skull and two regrow from the stump, each hissing with venom older than the surrounding kingdoms.", + "unit_type": "wild", + "school": null, + "domain": "land", + "attributes": ["heavy", "biological", "beast", "regenerating", "venomous", "many_headed"], + "attack_type": "fang", + "tier": 4, + "hp": 100, + "attack": 22, + "defense": 12, + "ranged_attack": 0, + "range": 0, + "movement": 3, + "vision": 3, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "apex_predator", "regenerates", "multi_strike"], + "terrain_bonus": { + "swamp": { "attack": 3, "defense": 3 }, + "river": { "attack": 2, "defense": 2 } + }, + "mana_cost": null, + "sprite": "sprites/units/ancient_hydra.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["land", "wild", "beast", "tier4", "apex"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/basilisk_wild.json b/public/games/age-of-dwarves/data/units/basilisk_wild.json new file mode 100644 index 00000000..ea275c62 --- /dev/null +++ b/public/games/age-of-dwarves/data/units/basilisk_wild.json @@ -0,0 +1,41 @@ +[ + { + "id": "basilisk_wild", + "name": "Wild Basilisk", + "description": "A serpentine horror whose gaze turns living flesh to stone. Coiled among ruins and dead forests, it leaves petrified statues as a warning to travelers.", + "unit_type": "wild", + "school": null, + "domain": "land", + "attributes": ["medium", "biological", "beast", "magical", "petrifying"], + "attack_type": "fang", + "tier": 3, + "hp": 80, + "attack": 18, + "defense": 10, + "ranged_attack": 0, + "range": 0, + "movement": 3, + "vision": 3, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "petrify_gaze"], + "terrain_bonus": { + "desert": { "attack": 2, "defense": 1 }, + "ruins": { "attack": 2, "defense": 2 } + }, + "mana_cost": null, + "sprite": "sprites/units/basilisk_wild.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["land", "wild", "beast", "magical", "tier3"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/berserker.json b/public/games/age-of-dwarves/data/units/berserker.json new file mode 100644 index 00000000..f2c90956 --- /dev/null +++ b/public/games/age-of-dwarves/data/units/berserker.json @@ -0,0 +1,41 @@ +[ + { + "id": "berserker", + "name": "Berserker", + "description": "Axe-wielding dwarven fury-warrior. Forgoes shield for raw aggression, striking harder as blood is shed.", + "unit_type": "military", + "school": null, + "domain": "land", + "attributes": ["light", "biological"], + "attack_type": "blade", + "hp": 90, + "attack": 20, + "defense": 6, + "ranged_attack": 0, + "range": 0, + "movement": 2, + "vision": 2, + "cost": 75, + "tech_required": "dwarf_heritage", + "upgradeable_from": "warrior", + "requires_resource": null, + "race_required": "dwarf", + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["rage", "no_shield"], + "mana_cost": null, + "sprite": "sprites/units/berserker.png", + "gender": { + "male": { "name": "Berserker", "sprite": "sprites/units/berserker_m.png" }, + "female": { "name": "Berserker", "sprite": "sprites/units/berserker_f.png" } + }, + "maintenance": 2, + "encyclopedia": { + "category": "combat", + "entry_type": "unit", + "detail_route": "/military/units", + "tags": ["land", "military", "blade", "dwarf", "unique"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/dire_bear.json b/public/games/age-of-dwarves/data/units/dire_bear.json new file mode 100644 index 00000000..0d4772f8 --- /dev/null +++ b/public/games/age-of-dwarves/data/units/dire_bear.json @@ -0,0 +1,41 @@ +[ + { + "id": "dire_bear", + "name": "Dire Bear", + "description": "A prehistoric ursid the size of a siege cart, its hide thickened by centuries in the deep wilds. A single swipe of its claws can topple a mounted knight.", + "unit_type": "wild", + "school": null, + "domain": "land", + "attributes": ["heavy", "biological", "beast", "apex_predator"], + "attack_type": "claw", + "tier": 3, + "hp": 80, + "attack": 18, + "defense": 10, + "ranged_attack": 0, + "range": 0, + "movement": 3, + "vision": 2, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "apex_predator"], + "terrain_bonus": { + "forest": { "attack": 2, "defense": 2 }, + "hills": { "attack": 1, "defense": 1 } + }, + "mana_cost": null, + "sprite": "sprites/units/dire_bear.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["land", "wild", "beast", "tier3"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/dire_wolf.json b/public/games/age-of-dwarves/data/units/dire_wolf.json new file mode 100644 index 00000000..cd280f05 --- /dev/null +++ b/public/games/age-of-dwarves/data/units/dire_wolf.json @@ -0,0 +1,37 @@ +[ + { + "id": "dire_wolf", + "name": "Dire Wolf", + "description": "A massive lupine predator twice the size of common wolves. Hunts in disciplined packs that bring down prey with coordinated flanking.", + "unit_type": "wild", + "school": null, + "domain": "land", + "attributes": ["medium", "biological", "pack", "beast"], + "attack_type": "fang", + "tier": 2, + "hp": 50, + "attack": 12, + "defense": 6, + "ranged_attack": 0, + "range": 0, + "movement": 4, + "vision": 3, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "pack_hunter"], + "mana_cost": null, + "sprite": "sprites/units/dire_wolf.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["land", "wild", "beast", "tier2"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/drake_wild.json b/public/games/age-of-dwarves/data/units/drake_wild.json new file mode 100644 index 00000000..1394e0d0 --- /dev/null +++ b/public/games/age-of-dwarves/data/units/drake_wild.json @@ -0,0 +1,40 @@ +[ + { + "id": "drake_wild", + "name": "Wild Drake", + "description": "A young dragon-kin larger and fiercer than any wyvern, its breath a gout of blistering flame. Not yet ancient, but already lord of its crag.", + "unit_type": "wild", + "school": null, + "domain": "air", + "attributes": ["medium", "biological", "flying", "beast", "fire_breather"], + "attack_type": "fang", + "tier": 3, + "hp": 80, + "attack": 18, + "defense": 10, + "ranged_attack": 12, + "range": 1, + "movement": 5, + "vision": 4, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "flying", "fire_breath"], + "terrain_bonus": { + "mountain": { "attack": 2, "defense": 2 } + }, + "mana_cost": null, + "sprite": "sprites/units/drake_wild.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["air", "wild", "beast", "tier3", "dragon"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/elder_wyrm.json b/public/games/age-of-dwarves/data/units/elder_wyrm.json new file mode 100644 index 00000000..a212e5dc --- /dev/null +++ b/public/games/age-of-dwarves/data/units/elder_wyrm.json @@ -0,0 +1,41 @@ +[ + { + "id": "elder_wyrm", + "name": "Elder Wyrm", + "description": "An ancient dragon grown vast on centuries of hoarded magic. Its scales are plates of obsidian, its breath a column of white fire that melts steel and stone alike.", + "unit_type": "wild", + "school": null, + "domain": "air", + "attributes": ["heavy", "biological", "flying", "beast", "dragon", "fire_breather", "magical"], + "attack_type": "fang", + "tier": 4, + "hp": 100, + "attack": 22, + "defense": 12, + "ranged_attack": 16, + "range": 2, + "movement": 6, + "vision": 5, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "flying", "fire_breath", "dragon", "apex_predator"], + "terrain_bonus": { + "mountain": { "attack": 3, "defense": 2 }, + "volcanic": { "attack": 2, "defense": 2 } + }, + "mana_cost": null, + "sprite": "sprites/units/elder_wyrm.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["air", "wild", "beast", "dragon", "tier4", "apex"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/frostfang_alpha.json b/public/games/age-of-dwarves/data/units/frostfang_alpha.json new file mode 100644 index 00000000..60f1a51a --- /dev/null +++ b/public/games/age-of-dwarves/data/units/frostfang_alpha.json @@ -0,0 +1,40 @@ +[ + { + "id": "frostfang_alpha", + "name": "Frostfang Alpha", + "description": "Apex leader of a boreal wolf pack, its breath rimes the air. Fights with supernatural fury on snow and ice, shrugging off the cold that cripples its prey.", + "unit_type": "wild", + "school": null, + "domain": "land", + "attributes": ["medium", "biological", "pack", "beast", "cold_resistant"], + "attack_type": "fang", + "tier": 2, + "hp": 65, + "attack": 15, + "defense": 8, + "ranged_attack": 0, + "range": 0, + "movement": 4, + "vision": 3, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "pack_hunter", "alpha"], + "terrain_bonus": { + "winter_terrain": { "attack": 3, "defense": 2 } + }, + "mana_cost": null, + "sprite": "sprites/units/frostfang_alpha.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["land", "wild", "beast", "tier2", "cold"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/garden_snail.json b/public/games/age-of-dwarves/data/units/garden_snail.json new file mode 100644 index 00000000..042bbde9 --- /dev/null +++ b/public/games/age-of-dwarves/data/units/garden_snail.json @@ -0,0 +1,37 @@ +[ + { + "id": "garden_snail", + "name": "Garden Snail", + "description": "A sluggish oversized mollusk. Its thick calcified shell turns aside blades, but a determined adventurer will outpace and outlast it with ease.", + "unit_type": "wild", + "school": null, + "domain": "land", + "attributes": ["light", "biological", "slow", "shelled"], + "attack_type": "bite", + "tier": 1, + "hp": 20, + "attack": 2, + "defense": 10, + "ranged_attack": 0, + "range": 0, + "movement": 1, + "vision": 1, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "low_threat"], + "mana_cost": null, + "sprite": "sprites/units/garden_snail.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["land", "wild", "beast", "filler"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/lava_elemental.json b/public/games/age-of-dwarves/data/units/lava_elemental.json new file mode 100644 index 00000000..2459517e --- /dev/null +++ b/public/games/age-of-dwarves/data/units/lava_elemental.json @@ -0,0 +1,41 @@ +[ + { + "id": "lava_elemental", + "name": "Lava Elemental", + "description": "A towering mass of molten stone pulled from the throat of a volcano. Its every footfall cracks the ground, and the air around it shimmers too hot to breathe.", + "unit_type": "wild", + "school": null, + "domain": "land", + "attributes": ["heavy", "elemental", "fire", "magical", "immune_burn"], + "attack_type": "slam", + "tier": 4, + "hp": 100, + "attack": 22, + "defense": 12, + "ranged_attack": 10, + "range": 1, + "movement": 2, + "vision": 3, + "cost": 0, + "tech_required": null, + "upgradeable_from": null, + "race_required": null, + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["wild", "elemental", "fire_aura", "siege_crush"], + "terrain_bonus": { + "volcanic": { "attack": 3, "defense": 3 }, + "mountain": { "attack": 2, "defense": 1 } + }, + "mana_cost": null, + "sprite": "sprites/units/lava_elemental.png", + "maintenance": 0, + "encyclopedia": { + "category": "wild", + "entry_type": "unit", + "detail_route": "/wilds/creatures", + "tags": ["land", "wild", "elemental", "fire", "tier4"] + } + } +] diff --git a/public/games/age-of-dwarves/data/units/runesmith.json b/public/games/age-of-dwarves/data/units/runesmith.json new file mode 100644 index 00000000..126af804 --- /dev/null +++ b/public/games/age-of-dwarves/data/units/runesmith.json @@ -0,0 +1,41 @@ +[ + { + "id": "runesmith", + "name": "Runesmith", + "description": "Dwarven master artisan wielding an engraved heavy crossbow. Slow but punishing at range, with armor forged from rune-etched steel.", + "unit_type": "military", + "school": null, + "domain": "land", + "attributes": ["armored", "biological"], + "attack_type": "pierce", + "hp": 70, + "attack": 8, + "defense": 12, + "ranged_attack": 18, + "range": 2, + "movement": 1, + "vision": 2, + "cost": 85, + "tech_required": "dwarf_heritage", + "upgradeable_from": null, + "requires_resource": null, + "race_required": "dwarf", + "faction": null, + "can_found_city": false, + "can_build_improvements": false, + "flags": ["ranged", "heavy_armor"], + "mana_cost": null, + "sprite": "sprites/units/runesmith.png", + "gender": { + "male": { "name": "Runesmith", "sprite": "sprites/units/runesmith_m.png" }, + "female": { "name": "Runesmith", "sprite": "sprites/units/runesmith_f.png" } + }, + "maintenance": 3, + "encyclopedia": { + "category": "combat", + "entry_type": "unit", + "detail_route": "/military/units", + "tags": ["land", "military", "pierce", "dwarf", "unique"] + } + } +]