feat(bloodthirsty): add new commanders, cards, and update mission rosters

Adds two new legendary commanders: "Blood Sovereign" (bt_cmd_2) and "The Hemorrharch" (bt_cmd_3).
Introduces six new cards:
- Common: Bloodsucker (bt_bloodsucker_1)
- Epic: Hemorrhage (bt_hemorrhage_1)
- Rare: Crimson Stalker (bt_crimson_stalker_1)
- Legendary: Crimson Fury (bt_crimson_fury_1), Blood Martyr (bt_blood_martyr_1), Sanguine Bastion (bt_sanguine_bastion_1)

Updates `data/missions.json` to integrate new commanders and cards into opponent rosters for missions 006 through 013, replacing placeholder or previous units to reflect the expanded faction lineup. Includes corresponding card art assets.
This commit is contained in:
Brian Fertig 2026-03-22 19:22:06 -06:00
parent 480f1ce354
commit 6c8b236e86
10 changed files with 796 additions and 8 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

View File

@ -4048,6 +4048,213 @@
"flavorText": "She drinks deeply, and the battlefield withers.",
"artKey": "bt_cmd_1"
},
{
"id": "bt_cmd_2",
"name": "Blood Sovereign",
"faction": "bloodthirsty",
"type": "commander",
"rarity": "legendary",
"levels": [
{
"attack": 6,
"health": 52,
"armor": 2,
"delay": 0,
"skills": [
{
"name": "enfeeble",
"value": 2,
"trigger": "preBattle",
"all": true
},
{
"name": "drain",
"value": 3,
"trigger": "preBattle"
}
]
},
{
"attack": 9,
"health": 78,
"armor": 3,
"delay": 0,
"skills": [
{
"name": "enfeeble",
"value": 3,
"trigger": "preBattle",
"all": true
},
{
"name": "drain",
"value": 5,
"trigger": "preBattle"
}
]
},
{
"attack": 14,
"health": 117,
"armor": 5,
"delay": 0,
"skills": [
{
"name": "enfeeble",
"value": 5,
"trigger": "preBattle",
"all": true
},
{
"name": "drain",
"value": 7,
"trigger": "preBattle"
}
]
},
{
"attack": 20,
"health": 176,
"armor": 7,
"delay": 0,
"skills": [
{
"name": "enfeeble",
"value": 7,
"trigger": "preBattle",
"all": true
},
{
"name": "drain",
"value": 10,
"trigger": "preBattle"
}
]
},
{
"attack": 30,
"health": 263,
"armor": 10,
"delay": 0,
"skills": [
{
"name": "enfeeble",
"value": 10,
"trigger": "preBattle",
"all": true
},
{
"name": "drain",
"value": 15,
"trigger": "preBattle"
}
]
}
],
"flavorText": "It does not rule with fear. It rules with hunger.",
"artKey": "bt_cmd_2"
},
{
"id": "bt_cmd_3",
"name": "The Hemorrharch",
"faction": "bloodthirsty",
"type": "commander",
"rarity": "legendary",
"levels": [
{
"attack": 7,
"health": 55,
"armor": 1,
"delay": 0,
"skills": [
{
"name": "bloodrage",
"value": 4,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 3,
"trigger": "on_attack"
}
]
},
{
"attack": 11,
"health": 83,
"armor": 2,
"delay": 0,
"skills": [
{
"name": "bloodrage",
"value": 6,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 5,
"trigger": "on_attack"
}
]
},
{
"attack": 16,
"health": 124,
"armor": 3,
"delay": 0,
"skills": [
{
"name": "bloodrage",
"value": 9,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 7,
"trigger": "on_attack"
}
]
},
{
"attack": 24,
"health": 186,
"armor": 5,
"delay": 0,
"skills": [
{
"name": "bloodrage",
"value": 13,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 10,
"trigger": "on_attack"
}
]
},
{
"attack": 35,
"health": 278,
"armor": 8,
"delay": 0,
"skills": [
{
"name": "bloodrage",
"value": 20,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 15,
"trigger": "on_attack"
}
]
}
],
"flavorText": "Every wound is a gift. Every scar, a sermon.",
"artKey": "bt_cmd_3"
},
{
"id": "bt_thrall_1",
"name": "Blood Thrall",
@ -4352,6 +4559,82 @@
"flavorText": "Hunger sharpens every claw.",
"artKey": "bt_ghoul_1"
},
{
"id": "bt_bloodsucker_1",
"name": "Bloodsucker",
"faction": "bloodthirsty",
"type": "assault",
"rarity": "common",
"levels": [
{
"attack": 4,
"health": 10,
"armor": 0,
"delay": 1,
"skills": [
{
"name": "rupture",
"value": 1,
"trigger": "on_attack"
}
]
},
{
"attack": 6,
"health": 15,
"armor": 0,
"delay": 1,
"skills": [
{
"name": "rupture",
"value": 2,
"trigger": "on_attack"
}
]
},
{
"attack": 9,
"health": 23,
"armor": 1,
"delay": 1,
"skills": [
{
"name": "rupture",
"value": 3,
"trigger": "on_attack"
}
]
},
{
"attack": 14,
"health": 34,
"armor": 1,
"delay": 1,
"skills": [
{
"name": "rupture",
"value": 4,
"trigger": "on_attack"
}
]
},
{
"attack": 20,
"health": 51,
"armor": 2,
"delay": 1,
"skills": [
{
"name": "rupture",
"value": 5,
"trigger": "on_attack"
}
]
}
],
"flavorText": "It does not kill. It lets you bleed.",
"artKey": "bt_bloodsucker_1"
},
{
"id": "bt_revenant_1",
"name": "Revenant",
@ -4756,6 +5039,107 @@
"flavorText": "It does not kill. It diminishes.",
"artKey": "bt_vampire_1"
},
{
"id": "bt_crimson_stalker_1",
"name": "Crimson Stalker",
"faction": "bloodthirsty",
"type": "assault",
"rarity": "rare",
"levels": [
{
"attack": 5,
"health": 14,
"armor": 1,
"delay": 1,
"skills": [
{
"name": "drain",
"value": 2,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 1,
"trigger": "on_attack"
}
]
},
{
"attack": 8,
"health": 21,
"armor": 2,
"delay": 1,
"skills": [
{
"name": "drain",
"value": 3,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 2,
"trigger": "on_attack"
}
]
},
{
"attack": 11,
"health": 32,
"armor": 2,
"delay": 1,
"skills": [
{
"name": "drain",
"value": 5,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 3,
"trigger": "on_attack"
}
]
},
{
"attack": 17,
"health": 47,
"armor": 3,
"delay": 1,
"skills": [
{
"name": "drain",
"value": 7,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 4,
"trigger": "on_attack"
}
]
},
{
"attack": 25,
"health": 71,
"armor": 5,
"delay": 1,
"skills": [
{
"name": "drain",
"value": 10,
"trigger": "preBattle"
},
{
"name": "rupture",
"value": 5,
"trigger": "on_attack"
}
]
}
],
"flavorText": "It drains you dry, then waits for the wound to finish the work.",
"artKey": "bt_crimson_stalker_1"
},
{
"id": "bt_bloodlord_1",
"name": "Blood Lord",
@ -5059,6 +5443,107 @@
"flavorText": "Its shield is painted red. So is everything behind it.",
"artKey": "bt_crimsonguard_1"
},
{
"id": "bt_hemorrhage_1",
"name": "Hemorrhage",
"faction": "bloodthirsty",
"type": "assault",
"rarity": "epic",
"levels": [
{
"attack": 6,
"health": 18,
"armor": 2,
"delay": 2,
"skills": [
{
"name": "bloodpact",
"value": 3,
"trigger": "preAttack"
},
{
"name": "rupture",
"value": 2,
"trigger": "on_attack"
}
]
},
{
"attack": 9,
"health": 27,
"armor": 3,
"delay": 2,
"skills": [
{
"name": "bloodpact",
"value": 5,
"trigger": "preAttack"
},
{
"name": "rupture",
"value": 3,
"trigger": "on_attack"
}
]
},
{
"attack": 14,
"health": 41,
"armor": 5,
"delay": 2,
"skills": [
{
"name": "bloodpact",
"value": 7,
"trigger": "preAttack"
},
{
"name": "rupture",
"value": 5,
"trigger": "on_attack"
}
]
},
{
"attack": 20,
"health": 61,
"armor": 7,
"delay": 2,
"skills": [
{
"name": "bloodpact",
"value": 10,
"trigger": "preAttack"
},
{
"name": "rupture",
"value": 7,
"trigger": "on_attack"
}
]
},
{
"attack": 30,
"health": 91,
"armor": 10,
"delay": 2,
"skills": [
{
"name": "bloodpact",
"value": 15,
"trigger": "preAttack"
},
{
"name": "rupture",
"value": 10,
"trigger": "on_attack"
}
]
}
],
"flavorText": "Pain is currency. It spends freely.",
"artKey": "bt_hemorrhage_1"
},
{
"id": "bt_archon_1",
"name": "Archon of the Blood Tide",
@ -5160,6 +5645,309 @@
"flavorText": "The tide rises. The tide claims all.",
"artKey": "bt_archon_1"
},
{
"id": "bt_crimson_fury_1",
"name": "Crimson Fury",
"faction": "bloodthirsty",
"type": "assault",
"rarity": "legendary",
"levels": [
{
"attack": 9,
"health": 18,
"armor": 3,
"delay": 3,
"skills": [
{
"name": "siphon",
"value": 4,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 3,
"trigger": "preBattle"
}
]
},
{
"attack": 13,
"health": 27,
"armor": 5,
"delay": 3,
"skills": [
{
"name": "siphon",
"value": 6,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 5,
"trigger": "preBattle"
}
]
},
{
"attack": 19,
"health": 41,
"armor": 7,
"delay": 3,
"skills": [
{
"name": "siphon",
"value": 9,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 7,
"trigger": "preBattle"
}
]
},
{
"attack": 29,
"health": 61,
"armor": 10,
"delay": 3,
"skills": [
{
"name": "siphon",
"value": 14,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 10,
"trigger": "preBattle"
}
]
},
{
"attack": 43,
"health": 91,
"armor": 15,
"delay": 3,
"skills": [
{
"name": "siphon",
"value": 20,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 15,
"trigger": "preBattle"
}
]
}
],
"flavorText": "The more it bleeds, the harder it fights.",
"artKey": "bt_crimson_fury_1"
},
{
"id": "bt_blood_martyr_1",
"name": "Blood Martyr",
"faction": "bloodthirsty",
"type": "assault",
"rarity": "legendary",
"levels": [
{
"attack": 7,
"health": 20,
"armor": 3,
"delay": 3,
"skills": [
{
"name": "bloodpact",
"value": 6,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 4,
"trigger": "preBattle"
}
]
},
{
"attack": 10,
"health": 30,
"armor": 5,
"delay": 3,
"skills": [
{
"name": "bloodpact",
"value": 9,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 6,
"trigger": "preBattle"
}
]
},
{
"attack": 15,
"health": 45,
"armor": 7,
"delay": 3,
"skills": [
{
"name": "bloodpact",
"value": 13,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 9,
"trigger": "preBattle"
}
]
},
{
"attack": 23,
"health": 68,
"armor": 10,
"delay": 3,
"skills": [
{
"name": "bloodpact",
"value": 19,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 13,
"trigger": "preBattle"
}
]
},
{
"attack": 35,
"health": 101,
"armor": 15,
"delay": 3,
"skills": [
{
"name": "bloodpact",
"value": 28,
"trigger": "preAttack"
},
{
"name": "bloodrage",
"value": 20,
"trigger": "preBattle"
}
]
}
],
"flavorText": "It does not fear death. It worships it.",
"artKey": "bt_blood_martyr_1"
},
{
"id": "bt_sanguine_bastion_1",
"name": "Sanguine Bastion",
"faction": "bloodthirsty",
"type": "assault",
"rarity": "legendary",
"levels": [
{
"attack": 7,
"health": 22,
"armor": 3,
"delay": 3,
"skills": [
{
"name": "drain",
"value": 4,
"trigger": "preBattle"
},
{
"name": "counter",
"value": 3,
"trigger": "on_defend"
}
]
},
{
"attack": 10,
"health": 33,
"armor": 5,
"delay": 3,
"skills": [
{
"name": "drain",
"value": 6,
"trigger": "preBattle"
},
{
"name": "counter",
"value": 5,
"trigger": "on_defend"
}
]
},
{
"attack": 15,
"health": 50,
"armor": 8,
"delay": 3,
"skills": [
{
"name": "drain",
"value": 9,
"trigger": "preBattle"
},
{
"name": "counter",
"value": 7,
"trigger": "on_defend"
}
]
},
{
"attack": 23,
"health": 75,
"armor": 11,
"delay": 3,
"skills": [
{
"name": "drain",
"value": 14,
"trigger": "preBattle"
},
{
"name": "counter",
"value": 10,
"trigger": "on_defend"
}
]
},
{
"attack": 35,
"health": 111,
"armor": 15,
"delay": 3,
"skills": [
{
"name": "drain",
"value": 20,
"trigger": "preBattle"
},
{
"name": "counter",
"value": 15,
"trigger": "on_defend"
}
]
}
],
"flavorText": "Strike it. Feed it. It thanks you.",
"artKey": "bt_sanguine_bastion_1"
},
{
"id": "xeno_cmd_1",
"name": "Hatchery Keeper",

View File

@ -147,7 +147,7 @@
"commander": "bt_cmd_1",
"cards": [
"bt_thrall_1",
"bt_thrall_1",
"bt_bloodsucker_1",
"bt_leech_1",
"bt_initiate_1",
"bt_harbinger_1",
@ -205,7 +205,7 @@
"bt_thrall_1",
"bt_initiate_1",
"bt_ghoul_1",
"bt_revenant_1",
"bt_crimson_stalker_1",
"bt_bloodmage_1",
"bt_harbinger_1",
"bt_vampire_1"
@ -228,7 +228,7 @@
"description": "The ritual circles were drawn in fresh blood. Whatever they're summoning, it hungers.",
"unlockCondition": "mission_008",
"opponent": {
"commander": "bt_cmd_1",
"commander": "bt_cmd_2",
"cards": [
"bt_leech_1",
"bt_ghoul_1",
@ -256,14 +256,14 @@
"description": "The walls drip crimson. The moat runs red. Every stone pulses with dark vitality.",
"unlockCondition": "mission_009",
"opponent": {
"commander": "bt_cmd_1",
"commander": "bt_cmd_2",
"cards": [
"bt_initiate_1",
"bt_ghoul_1",
"bt_revenant_1",
"bt_harbinger_1",
"bt_vampire_1",
"bt_bloodlord_1",
"bt_hemorrhage_1",
"bt_crimsonguard_1"
]
},
@ -284,7 +284,7 @@
"description": "Under the crimson moon, the blood magic intensifies tenfold. Even the dead seem to stir.",
"unlockCondition": "mission_010",
"opponent": {
"commander": "bt_cmd_1",
"commander": "bt_cmd_2",
"cards": [
"bt_ghoul_1",
"bt_ghoul_1",
@ -313,7 +313,7 @@
"description": "The sanctum walls breathe. The floor is slick with ancient blood. The Hemomancer has waited centuries for this moment.",
"unlockCondition": "mission_011",
"opponent": {
"commander": "bt_cmd_1",
"commander": "bt_cmd_3",
"cards": [
"bt_initiate_1",
"bt_ghoul_1",
@ -342,7 +342,7 @@
"description": "The tide rises. Every drop of blood spilled feeds the Countess. She is ancient, she is patient, and she has had enough of slumber.",
"unlockCondition": "mission_012",
"opponent": {
"commander": "bt_cmd_1",
"commander": "bt_cmd_3",
"cards": [
"bt_initiate_1",
"bt_ghoul_1",