magicciv/public/resources/combat/keywords.json
2026-04-07 17:52:04 -07:00

283 lines
7.5 KiB
JSON

{
"keywords": [
{
"id": "fire_breath",
"name": "Fire Breath",
"category": "combat",
"description": "Deals 2 bonus fire damage on attack.",
"parameters": {
"bonus_damage": 2,
"damage_type": "fire"
}
},
{
"id": "haste",
"name": "Haste",
"category": "combat",
"description": "Can move and attack on the turn it is created.",
"parameters": {}
},
{
"id": "first_strike",
"name": "First Strike",
"category": "combat",
"description": "Deals damage before the defender retaliates. Defender only retaliates if still alive.",
"parameters": {}
},
{
"id": "multi_attack",
"name": "Multi-Attack",
"category": "combat",
"description": "Attacks all units on the target tile, including stacked specialists.",
"parameters": {}
},
{
"id": "trample",
"name": "Trample",
"category": "combat",
"description": "Overkill damage carries through — excess damage is dealt to the tile.",
"parameters": {}
},
{
"id": "life_drain",
"name": "Life Drain",
"category": "combat",
"description": "Heals HP equal to damage dealt.",
"parameters": {}
},
{
"id": "stoning_gaze",
"name": "Stoning Gaze",
"category": "combat",
"description": "25% chance to instantly kill the target on attack.",
"parameters": {
"kill_chance": 0.25
}
},
{
"id": "fear_aura",
"name": "Fear Aura",
"category": "combat",
"description": "Adjacent enemy units get -1 attack.",
"parameters": {
"attack_penalty": -1,
"range": 1
}
},
{
"id": "holy_aura",
"name": "Holy Aura",
"category": "combat",
"description": "Adjacent friendly units get +1 defense.",
"parameters": {
"defense_bonus": 1,
"range": 1
}
},
{
"id": "lightning_ranged",
"name": "Lightning Ranged",
"category": "combat",
"description": "Ranged attack at range 3. Target cannot retaliate.",
"parameters": {
"range": 3,
"no_retaliation": true
}
},
{
"id": "reach",
"name": "Reach",
"category": "combat",
"description": "Ground unit can attack and defend against flying units.",
"parameters": {}
},
{
"id": "poison",
"name": "Poison",
"category": "combat",
"description": "Target takes 2 damage per turn for 3 turns after combat.",
"parameters": {
"damage_per_turn": 2,
"duration": 3
}
},
{
"id": "web",
"name": "Web",
"category": "combat",
"description": "Immobilizes target for 1 turn on hit. Target cannot move but can still attack.",
"parameters": {
"duration": 1
}
},
{
"id": "armor_piercing",
"name": "Armor Piercing",
"category": "combat",
"description": "Cancels terrain defense bonuses and fortification bonuses on the target when attacking.",
"parameters": {
"ignores_terrain_defense": true,
"ignores_fortification": true
}
},
{
"id": "interceptor",
"name": "Interceptor",
"category": "combat",
"description": "Enemy flying units entering a tile within 1 hex pay ZOC movement cost if this unit has not yet moved this turn.",
"parameters": {
"range": 1,
"applies_to": ["flying"],
"requires_unmoved": true
}
},
{
"id": "pillage",
"name": "Pillage",
"category": "combat",
"description": "Destroys tile improvements when entering an undefended tile with improvements. The pillaging unit gains a small gold bonus.",
"parameters": {
"gold_per_pillage": 10,
"requires_undefended": true
}
},
{
"id": "flying",
"name": "Flying",
"category": "movement",
"description": "Moves over any tile, ignores zones of control. Only blocked by other flyers.",
"parameters": {}
},
{
"id": "fast",
"name": "Fast",
"category": "movement",
"description": "+1 movement point.",
"parameters": {
"movement_bonus": 1
}
},
{
"id": "teleport",
"name": "Teleport",
"category": "movement",
"description": "Can move to any visible tile once per 3 turns.",
"parameters": {
"cooldown_turns": 3
}
},
{
"id": "ghostwalk",
"name": "Ghostwalk",
"category": "movement",
"description": "Ignores zones of control.",
"parameters": {}
},
{
"id": "vigilance",
"name": "Vigilance",
"category": "defense",
"description": "Can attack without losing remaining movement.",
"parameters": {}
},
{
"id": "indestructible",
"name": "Indestructible",
"category": "defense",
"description": "Survives the first lethal hit at 1 HP. Consumed once.",
"parameters": {
"uses": 1
}
},
{
"id": "regeneration",
"name": "Regeneration",
"category": "defense",
"description": "Heals 2 HP per turn automatically.",
"parameters": {
"heal_per_turn": 2
}
},
{
"id": "escort",
"name": "Escort",
"category": "specialist",
"description": "Stacks with 1 combat unit. Captured or killed if found alone.",
"parameters": {}
},
{
"id": "healing_touch",
"name": "Healing Touch",
"category": "specialist",
"description": "Heals the escorted unit a specified amount of HP per turn.",
"parameters": {
"heal_per_turn": "varies_by_unit"
}
},
{
"id": "mass_heal",
"name": "Mass Heal",
"category": "specialist",
"description": "Heal all friendly units within 2 tiles.",
"parameters": {
"range": 2
}
},
{
"id": "invisible",
"name": "Invisible",
"category": "status",
"description": "Not visible to enemies unless adjacent or detected by foresight.",
"parameters": {
"detection_range": 1
}
},
{
"id": "camouflage",
"name": "Camouflage",
"category": "status",
"description": "Invisible when in forest or swamp terrain.",
"parameters": {
"valid_terrains": ["forest", "jungle", "boreal_forest", "swamp"]
}
},
{
"id": "foresight",
"name": "Foresight",
"category": "status",
"description": "+2 vision range. Can see invisible units.",
"parameters": {
"vision_bonus": 2,
"detects_invisible": true
}
},
{
"id": "found_city",
"name": "Found City",
"category": "civilian",
"description": "Can found a new settlement. Unit is consumed in the process.",
"parameters": {
"consumed_on_use": true
}
},
{
"id": "non_military",
"name": "Non-Military",
"category": "civilian",
"description": "Does not trigger combat. Cannot attack or defend.",
"parameters": {}
},
{
"id": "terrain_cleanse",
"name": "Terrain Cleanse",
"category": "terrain",
"description": "Each turn, reduces corruption pressure and restores terrain quality on the occupied tile. Adjacent tiles receive half effect. Passive — triggers at end of turn.",
"parameters": {
"corruption_reduction_per_turn": 0.03,
"quality_boost_per_turn": 1,
"moisture_boost_per_turn": 0.02,
"adjacent_effect_fraction": 0.5
}
}
]
}