Feature #1758 ยป 0050-Drop-webperimental.patch
| data/webperimental.modpack | ||
|---|---|---|
|
[datafile]
|
||
|
options = "+Freeciv-modpack-3.3-Devel-2024.Apr.14"
|
||
|
[modpack]
|
||
|
; Name of the modpack
|
||
|
name = "webperimental"
|
||
|
[components]
|
||
|
; Whether the modpack has a ruleset component
|
||
|
ruleset = TRUE
|
||
|
[ruleset]
|
||
|
; For modpacks with the ruleset component, either "rulesetdir" or "serv" needs to be defined.
|
||
|
; - "rulesetdir" gives the directory where the ruleset is
|
||
|
; - "serv" gives a server script to load, and which is assumed to also set the rulesetdir
|
||
|
rulesetdir = "webperimental"
|
||
| data/webperimental/README.webperimental | ||
|---|---|---|
|
Webperimental was based on the classic ruleset (via the deprecated fcweb
|
||
|
ruleset). It is more like classic than non web Freeciv's experimental
|
||
|
ruleset.
|
||
|
Differences compared to the classic ruleset are:
|
||
|
- Diplomat available from Alphabet
|
||
|
- AI players are created with random trait values
|
||
|
- Known techs tree cannot have holes in it
|
||
|
- Diplomats can steal gold from enemy capitals (needs Banking)
|
||
|
- Spies can steal gold from enemy cities (needs Banking)
|
||
|
- A higher percentage of a nation's gold can be stolen from its capital
|
||
|
(unless it's in Anarchy).
|
||
|
- An even higher percentage of a nation's gold can be stolen from its
|
||
|
capital if it is communist.
|
||
|
- The killstack server setting is disabled by default.
|
||
|
- unit stack blocks bribe/sabotage unit needs killstack.
|
||
|
- Spies can steal parts of other player's world map.
|
||
|
- Spies belonging to the owner of the Manhattan Project can nuke cities.
|
||
|
- a higher veteran level gives a higher chance of success.
|
||
|
- agents and spymasters may even escape before the nuke detonates.
|
||
|
- doing this to someone you aren't at war with causes international
|
||
|
outrage: everyone, not just the victim, gets a Casus Belli against you.
|
||
|
- Spies can sabotage and poison units and cities you aren't at war with.
|
||
|
- doing this to someone you aren't at war with causes international
|
||
|
outrage: everyone, not just the victim, gets a Casus Belli against you.
|
||
|
- Explorers can establish embassies once Writing is discovered.
|
||
|
This action consumes the explorer.
|
||
|
- Cities can be founded within enemy borders during war and
|
||
|
before contact.
|
||
|
- The Zone of Control rules have been turned off.
|
||
|
- There's only one barbarian nation, attacking from both land and sea.
|
||
|
- A player that knows Electricity has no fog of war inside their borders.
|
||
|
- Foot soldiers can peacefully expel foreign civilian units from your
|
||
|
terrain.
|
||
|
- It is possible to establish an embassy while inside a ship.
|
||
|
- The startunits are by default spread over the map.
|
||
|
- The Leader unit has been added to the default startunits.
|
||
|
- The Leader unit can destroy a domestic city. (Be careful when you scorch
|
||
|
the earth. If your Leader dies you lose the game.)
|
||
|
- Killing an enemy Leader gives you a few of their cities, some of their
|
||
|
gold and some of their knowledge. Not all their cities will follow you.
|
||
|
Some will rather turn barbarian.
|
||
|
- The Leader can heal light weight units belonging to you or to your allies.
|
||
|
- The Leader can destroy visible buildings in enemy cities, like city walls.
|
||
|
This has a 50% chance of success and ends the leader's turn.
|
||
|
- The Leader can move on shallow water without being transported by becoming
|
||
|
a "Leader Yacht". Conversion back and forth can be done inside a city once
|
||
|
Map Making has been discovered.
|
||
|
- Labels the year using AD/BC.
|
||
|
- All units can be airlifted:
|
||
|
- Light weight units can be airlifted once Flight is known.
|
||
|
- Medium weight units can be airlifted once Advanced Flight is known.
|
||
|
- Heavy weight units can be airlifted once Fusion Power is known.
|
||
|
- To airlift heavy and medium weight units an airport is required both
|
||
|
in the source and in the destination city.
|
||
|
- Cities that know Flight can airlift one (light weight) unit per turn. An
|
||
|
Airport allows a city to airlift one more unit per turn.
|
||
|
- Default minimum distance between cities is 3.
|
||
|
- Default map generator is `Fair islands`. It generates identical start
|
||
|
position islands for all players.
|
||
|
- The Howitzer and the Battleship can bombard.
|
||
|
- bombardment may hurt all units at the target tile.
|
||
|
- bombardment can't kill a unit.
|
||
|
- bombardment can kill population in a city.
|
||
|
- webperimental's bombardment can target unit stacks 3 tiles away.
|
||
|
- webperimental's bombardment doesn't replace regular attack.
|
||
|
- The Battleship is weak against Bomber planes.
|
||
|
- Moving from a ship to the beach doesn't spend all movement points.
|
||
|
- Airlifting to and from allied cities is allowed by default.
|
||
|
- Land units sees further on top of Mountain tiles.
|
||
|
- Railroads can't be used by enemy units by default. Regular roads can be
|
||
|
used by the enemy even if the restrictinfra server setting is enabled.
|
||
|
(The restrictinfra server setting is enabled by default.)
|
||
|
- An alliance has more in game consequences:
|
||
|
- Unit ownership can be transferred by moving a unit to an allied city
|
||
|
and ordering it to change home city.
|
||
|
- Caravan and Freight can help allies to complete wonders.
|
||
|
- Sun Tzu's War Academy gives its veteran bonus (combat and production)
|
||
|
to both its owner and to all their allies.
|
||
|
- J.S. Bach's Cathedral makes two unhappy citizens content in allied
|
||
|
cities too.
|
||
|
- A. Smith's Trading Co. pays for your allies' 1 upkeep buildings too.
|
||
|
- Some units can disrupt the supply lines of enemy units. This removes 1 MP
|
||
|
from the target unit at the cost of one move fragment for the unit doing
|
||
|
the disrupting.
|
||
|
- Civilians can't capture fortresses.
|
||
| data/webperimental/actions.ruleset | ||
|---|---|---|
|
; Modifying this file:
|
||
|
; You should not modify this file except to make bugfixes or
|
||
|
; for other "maintenance". If you want to make custom changes,
|
||
|
; you should create a new datadir subdirectory and copy this file
|
||
|
; into that directory, and then modify that copy. Then use the
|
||
|
; command "rulesetdir <mysubdir>" in the server to have freeciv
|
||
|
; use your new customized file.
|
||
|
; Note that the freeciv AI may not cope well with anything more
|
||
|
; than minor changes.
|
||
|
[datafile]
|
||
|
description = "Experimental web-client actions data for Freeciv"
|
||
|
options = "+Freeciv-ruleset-3.4-Devel-2025.Jan.17 web-compatible"
|
||
|
format_version = 50
|
||
|
[auto_attack]
|
||
|
; An auto attack may be triggered when another unit moves to an adjacent
|
||
|
; tile and the autoattack server setting is enabled. The following details
|
||
|
; are ruleset controlled.
|
||
|
; if_attacker - this requirement vector must be true before a unit even
|
||
|
; considers to auto attack.
|
||
|
; attack_actions - the actions to try during an auto attack in the order
|
||
|
; they should be tried.
|
||
|
if_attacker =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
; Not a good idea to nuke our own area.
|
||
|
"UnitTypeFlag", "Nuclear", "Local", FALSE
|
||
|
}
|
||
|
attack_actions = "Bombard", "Collect Ransom", "Attack", "Suicide Attack"
|
||
|
[actions]
|
||
|
; Forbid "Enter Marketplace" if any one of the listed actions are legal.
|
||
|
enter_marketplace_blocked_by = "Establish Trade Route"
|
||
|
; Forbid "Attack" if any one of the listed actions are legal.
|
||
|
attack_blocked_by = "Collect Ransom", "Explode Nuclear", "Nuke City",
|
||
|
"Nuke Units"
|
||
|
; Forbid "Suicide Attack" if any one of the listed actions are legal.
|
||
|
suicide_attack_blocked_by = "Collect Ransom", "Explode Nuclear",
|
||
|
"Nuke City", "Nuke Units"
|
||
|
; Forbid "Conquer City Shrink" if any one of the listed actions are legal.
|
||
|
conquer_city_shrink_blocked_by = "Explode Nuclear", "Nuke City", "Nuke Units",
|
||
|
"Attack", "Suicide Attack"
|
||
|
; Forbid regular unit move if one of the actions below is legal.
|
||
|
move_blocked_by = "Transport Disembark", "Conquer Extras", "Enter Hut",
|
||
|
"Frighten Hut"
|
||
|
; Actor units will - under certain circumstances - be forced to try
|
||
|
; performing the following actions in the specified order after successfully
|
||
|
; performing "Bribe Unit".
|
||
|
bribe_unit_post_success_forced_actions = "Transport Embark",
|
||
|
"Transport Disembark",
|
||
|
"Conquer Extras",
|
||
|
"Enter Hut", "Frighten Hut",
|
||
|
"Unit Move"
|
||
|
; Actor units will - under certain circumstances - be forced to try
|
||
|
; performing the following actions in the specified order after successfully
|
||
|
; performing "Attack".
|
||
|
attack_post_success_forced_actions = "Conquer City Shrink", "Transport Disembark",
|
||
|
"Conquer Extras",
|
||
|
"Enter Hut","Frighten Hut",
|
||
|
"Unit Move"
|
||
|
; Actor units will - under certain circumstances - be forced to try
|
||
|
; performing the following actions in the specified order after successfully
|
||
|
; performing "Collect Ransom".
|
||
|
collect_ransom_post_success_forced_actions =
|
||
|
"Conquer City Shrink", "Transport Disembark",
|
||
|
"Conquer Extras",
|
||
|
"Enter Hut","Frighten Hut",
|
||
|
"Unit Move"
|
||
|
; The city that made the unit`s current tile native is gone. This is a Hail
|
||
|
; Mary attempt at survival by performing an action. Evaluated against an
|
||
|
; adjacent tile. Currently only able to target native tiles.
|
||
|
escape_city = "Transport Embark", "Enter Hut", "Frighten Hut", "Unit Move"
|
||
|
; The unit`s stack has been defeated and is scheduled for execution but the
|
||
|
; unit can do Escape action. Evaluated against an adjacent tile.
|
||
|
;unit_stack_death = "Transport Embark", "Conquer Extras",
|
||
|
; "Enter Hut", "Frighten Hut", "Unit Move"
|
||
|
; If poison_empties_food_stock is set to TRUE a successful "Poison City"
|
||
|
; or "Poison City Escape" will empty the food stock.
|
||
|
poison_empties_food_stock = FALSE
|
||
|
; If steal_maps_reveals_all_cities is set to TRUE a successful "Steal Maps"
|
||
|
; or "Steal Maps Escape" will transfer the map for all tiles containing a
|
||
|
; city.
|
||
|
steal_maps_reveals_all_cities = TRUE
|
||
|
; The maximum distance from the actor unit to the target of the "Bombard"
|
||
|
; action. The value 1 means that the targets must be on a tile adjacent to
|
||
|
; the actor unit. The special value "unlimited" lifts the maximum distance
|
||
|
; restriction. The maximum distance can`t be smaller than the minimum
|
||
|
; distance.
|
||
|
bombard_max_range = 3
|
||
|
; The maximum distance from the actor unit to the target of the "Bombard 2"
|
||
|
; action. The value 1 means that the targets must be on a tile adjacent to
|
||
|
; the actor unit. The special value "unlimited" lifts the maximum distance
|
||
|
; restriction. The maximum distance can`t be smaller than the minimum
|
||
|
; distance.
|
||
|
bombard_2_max_range = 1
|
||
|
; The maximum distance from the actor unit to the target of the "Bombard 3"
|
||
|
; action. The value 1 means that the targets must be on a tile adjacent to
|
||
|
; the actor unit. The special value "unlimited" lifts the maximum distance
|
||
|
; restriction. The maximum distance can`t be smaller than the minimum
|
||
|
; distance.
|
||
|
bombard_3_max_range = 1
|
||
|
; The maximum distance from the actor unit to the target of the
|
||
|
; "Bombard Lethal" action. The value 1 means that the targets must be on a
|
||
|
; tile adjacent to the actor unit. The special value "unlimited" lifts the
|
||
|
; maximum distance restriction. The maximum distance can`t be smaller than
|
||
|
; the minimum distance.
|
||
|
bombard_lethal_max_range = 1
|
||
|
; The minimal distance from the actor unit to the target. The value 0 means
|
||
|
; that the target must be at the tile of the actor unit. The value 1 means
|
||
|
; that the tile must be a tile adjacent to the actor unit.
|
||
|
explode_nuclear_min_range = 0
|
||
|
; The maximum distance from the actor unit to the target of the
|
||
|
; "Explode Nuclear" action. The value 0 means that the target tile must be
|
||
|
; the tile of the actor unit. The value 1 means that the tile must be a tile
|
||
|
; adjacent to the actor unit. The special value "unlimited" lifts the
|
||
|
; maximum distance restriction. The maximum distance can`t be smaller than
|
||
|
; the minimum distance.
|
||
|
explode_nuclear_max_range = 0
|
||
|
; Will performing this action always consume the actor unit?
|
||
|
explode_nuclear_consuming_always = TRUE
|
||
|
; The minimal distance from the actor unit to the target. The value 0 means
|
||
|
; that the target must be at the tile of the actor unit. The value 1 means
|
||
|
; that the tile must be a tile adjacent to the actor unit.
|
||
|
nuke_city_min_range = 1
|
||
|
; The maximum distance from the actor unit to the target of the
|
||
|
; "Nuke City" action. The value 1 means that the tile must be a tile
|
||
|
; adjacent to the actor unit. The special value "unlimited" lifts the
|
||
|
; maximum distance restriction. The maximum distance can`t be smaller than
|
||
|
; the minimum distance.
|
||
|
nuke_city_max_range = 1
|
||
|
; Will performing this action always consume the actor unit?
|
||
|
nuke_city_consuming_always = TRUE
|
||
|
; The kind of target the "Nuke City" action has. The target requirements of
|
||
|
; its enablers are evaluated against the target. The target owner is the one
|
||
|
; that gets a Casus Belli if the ruleset has a Casus Belli for this action.
|
||
|
; Supported values are "City" and "Tile".
|
||
|
nuke_city_target_kind = "City"
|
||
|
; The minimal distance from the actor unit to the target. The value 0 means
|
||
|
; that the target must be at the tile of the actor unit. The value 1 means
|
||
|
; that the tile must be a tile adjacent to the actor unit.
|
||
|
nuke_units_min_range = 1
|
||
|
; The maximum distance from the actor unit to the target of the
|
||
|
; "Nuke Units" action. The value 1 means that the tile must be a tile
|
||
|
; adjacent to the actor unit. The special value "unlimited" lifts the
|
||
|
; maximum distance restriction. The maximum distance can`t be smaller than
|
||
|
; the minimum distance.
|
||
|
nuke_units_max_range = 1
|
||
|
; Will performing this action always consume the actor unit?
|
||
|
nuke_units_consuming_always = TRUE
|
||
|
; The maximum distance from the actor unit to the target of the "Airlift Unit"
|
||
|
; action. The value 1 means that the targets must be on a tile adjacent to
|
||
|
; the actor unit. The special value "unlimited" lifts the maximum distance
|
||
|
; restriction. The maximum distance can`t be smaller than the minimum
|
||
|
; distance.
|
||
|
airlift_max_range = "unlimited"
|
||
|
; Will performing this action always consume the actor unit?
|
||
|
found_city_consuming_always = TRUE
|
||
|
; Blank ruleset defined user actions.
|
||
|
; See the section "Ruleset defined actions" in doc/README.actions
|
||
|
; /* TRANS: _Disrupt Supply Lines (100% chance of success). */
|
||
|
user_action_1_target_kind = "Unit"
|
||
|
user_action_1_min_range = 1
|
||
|
user_action_1_max_range = 3
|
||
|
user_action_1_actor_consuming_always = FALSE
|
||
|
; Some actions have a action dice roll before the action starts where it can
|
||
|
; fail. The initial probability of success is 100% unless the action appears
|
||
|
; in the following list. Then the initial probability comes from the setting
|
||
|
; diplchance. The initial probability of success is modified by the
|
||
|
; Action_Odds_Pct effect before the roll happens.
|
||
|
diplchance_initial_odds = "Steal Gold", "Steal Gold Escape",
|
||
|
"Sabotage City", "Sabotage City Escape",
|
||
|
"Targeted Sabotage City Escape",
|
||
|
"Sabotage City Production Escape",
|
||
|
"Steal Tech", "Steal Tech Escape Expected",
|
||
|
"Targeted Steal Tech Escape Expected",
|
||
|
"Incite City", "Incite City Escape",
|
||
|
"Steal Maps Escape",
|
||
|
"Suitcase Nuke", "Suitcase Nuke Escape"
|
||
|
; Suppress automatic help text generation about what enables and/or
|
||
|
; disables the following actions.
|
||
|
;
|
||
|
; Can make the help text less redundant when you document it your self.
|
||
|
quiet_actions = "Heal Unit", "Unit Move"
|
||
|
; /* <-- avoid gettext warnings
|
||
|
;
|
||
|
; Actions:
|
||
|
;
|
||
|
; action = the action to configure.
|
||
|
; ui_name = What each action should be called when showing them to the player.
|
||
|
; The first %s should be before the mnemonic of the action.
|
||
|
; A Freeciv client that supports mnemonics will replace it with
|
||
|
; the in-band signal that marks the following character as a mnemonic
|
||
|
; in its graphical toolkit.
|
||
|
; The second %s marks where extra details should be inserted.
|
||
|
;
|
||
|
; README.actions lists the possible actions
|
||
|
;
|
||
|
; */ <-- avoid gettext warnings
|
||
|
[action_poison_city]
|
||
|
action = "Poison City Escape"
|
||
|
ui_name = _("%sPoison City%s")
|
||
|
[action_sabotage_city_escape]
|
||
|
action = "Sabotage City Escape"
|
||
|
ui_name = _("%sSabotage City Escape%s")
|
||
|
[action_industrial_sabotage]
|
||
|
action = "Targeted Sabotage City Escape"
|
||
|
ui_name = _("Industrial %sSabotage%s")
|
||
|
[action_industrial_sabotage_production]
|
||
|
action = "Sabotage City Production Escape"
|
||
|
ui_name = _("Industrial %sSabotage Production%s")
|
||
|
[action_industrial_espionage]
|
||
|
action = "Targeted Steal Tech Escape Expected"
|
||
|
ui_name = _("Indus%strial Espionage%s")
|
||
|
[action_incite_a_revolt]
|
||
|
action = "Incite City"
|
||
|
ui_name = _("Incite a %sRevolt%s")
|
||
|
[action_sell_goods]
|
||
|
action = "Enter Marketplace"
|
||
|
ui_name = _("Sell %sGoods%s")
|
||
|
[action_bribe_enemy_unit]
|
||
|
action = "Bribe Unit"
|
||
|
ui_name = _("%sBribe Enemy Unit%s")
|
||
|
[action_sabotage_enemy_unit]
|
||
|
action = "Sabotage Unit Escape"
|
||
|
ui_name = _("%sSabotage Enemy Unit%s")
|
||
|
[action_build_city]
|
||
|
action = "Found City"
|
||
|
ui_name = _("%sBuild City%s")
|
||
|
[action_add_to_city]
|
||
|
action = "Join City"
|
||
|
ui_name = _("%sAdd to City%s")
|
||
|
[action_explode_nuclear_in_place]
|
||
|
action = "Explode Nuclear"
|
||
|
ui_name = _("Explode %sNuclear In Place%s")
|
||
|
[action_deploy]
|
||
|
action = "Convert Unit"
|
||
|
ui_name = _("%sDeploy%s")
|
||
|
[action_explode_missile]
|
||
|
action = "Suicide Attack"
|
||
|
ui_name = _("%sExplode Missile%s")
|
||
|
[action_use_royal_sapper]
|
||
|
action = "Surgical Strike Building"
|
||
|
ui_name = _("%sUse Royal Sapper%s")
|
||
|
[action_eliminate_spy]
|
||
|
action = "Spy Attack"
|
||
|
ui_name = _("Eliminate %sSpy%s")
|
||
|
[action_conquer_fortress]
|
||
|
action = "Conquer Extras"
|
||
|
ui_name = _("%sConquer Fortress%s")
|
||
|
[action_use_court_physician]
|
||
|
action = "Heal Unit"
|
||
|
ui_name = _("%sUse Court Physician%s")
|
||
|
[action_paradrop_to_contested_landing]
|
||
|
action = "Paradrop Unit Enter Conquer"
|
||
|
ui_name = _("%sParadrop to Contested Landing%s")
|
||
|
[action_keep_moving]
|
||
|
action = "Unit Move"
|
||
|
ui_name = _("%sKeep moving%s")
|
||
|
[action_disrupt_supply_lines]
|
||
|
action = "User Action 1"
|
||
|
ui_name = _("%sDisrupt Supply Lines%s")
|
||
|
; /* <-- avoid gettext warnings
|
||
|
;
|
||
|
; Enablers:
|
||
|
;
|
||
|
; action = the action to enable.
|
||
|
; actor_reqs = requirements that apply to the actor.
|
||
|
; target_reqs = requirements that apply to the target.
|
||
|
; comment = Comment for the benefit to someone examining the ruleset
|
||
|
; Not used by freeciv any other way.
|
||
|
;
|
||
|
; README.actions lists the possible actions and their hard coded
|
||
|
; requirements.
|
||
|
;
|
||
|
; An enabler is active when its actor_reqs AND its target_reqs are
|
||
|
; satisfied.
|
||
|
;
|
||
|
; */ <-- avoid gettext warnings
|
||
|
[enabler_disrupt_supply_normal]
|
||
|
action = "User Action 1"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "SupplyLines", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
"UnitState", "Transported", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitClass", "Sea", "Local", FALSE
|
||
|
"UnitClass", "Trireme", "Local", FALSE
|
||
|
"UnitClass", "Air", "Local", FALSE
|
||
|
"UnitClass", "Helicopter", "Local", FALSE
|
||
|
"UnitClass", "Missile", "Local", FALSE
|
||
|
}
|
||
|
[enabler_disrupt_supply_marines]
|
||
|
action = "User Action 1"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "SupplyLines", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
"UnitTypeFlag", "Marines", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitClass", "Sea", "Local", FALSE
|
||
|
"UnitClass", "Trireme", "Local", FALSE
|
||
|
"UnitClass", "Air", "Local", FALSE
|
||
|
"UnitClass", "Helicopter", "Local", FALSE
|
||
|
"UnitClass", "Missile", "Local", FALSE
|
||
|
}
|
||
|
[enabler_sabotage_city]
|
||
|
action = "Sabotage City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Diplomat", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitTypeFlag", "Spy", "Local", FALSE
|
||
|
}
|
||
|
[enabler_sabotage_city_spy]
|
||
|
action = "Sabotage City Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
[enabler_sabotage_city_target]
|
||
|
action = "Targeted Sabotage City Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
[enabler_sabotage_city_production]
|
||
|
action = "Sabotage City Production Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
[enabler_establish_embassy]
|
||
|
action = "Establish Embassy Stay"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Diplomat", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"DiplRel", "Has real embassy", "Local", FALSE
|
||
|
"UnitTypeFlag", "Spy", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"NationGroup", "Barbarian", "Player", FALSE
|
||
|
}
|
||
|
[enabler_establish_embassy_spy]
|
||
|
action = "Establish Embassy"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"DiplRel", "Has real embassy", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"NationGroup", "Barbarian", "Player", FALSE
|
||
|
}
|
||
|
[enabler_explorer_establish_embassy]
|
||
|
action = "Establish Embassy Stay"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitType", "Explorer", "Local", TRUE
|
||
|
"Tech", "Writing", "Player", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"DiplRel", "Has real embassy", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"NationGroup", "Barbarian", "Player", FALSE
|
||
|
}
|
||
|
[enabler_investigate_city]
|
||
|
action = "Investigate City Spend Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Diplomat", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitTypeFlag", "Spy", "Local", FALSE
|
||
|
}
|
||
|
[enabler_investigate_city_spy]
|
||
|
action = "Investigate City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Spy", "Local"
|
||
|
"UnitState", "OnLivableTile", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
"DiplRel", "Foreign", "Local"
|
||
|
}
|
||
|
[enabler_poison_city]
|
||
|
action = "Poison City Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"MinSize", "2", "City"
|
||
|
}
|
||
|
[enabler_steal_tech_random]
|
||
|
action = "Steal Tech"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", FALSE
|
||
|
"UnitTypeFlag", "Diplomat", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"NationGroup", "Barbarian", "Player", FALSE
|
||
|
}
|
||
|
[enabler_steal_tech_random_esc]
|
||
|
action = "Steal Tech Escape Expected"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Spy", "Local"
|
||
|
"UnitState", "OnLivableTile", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
"DiplRel", "Foreign", "Local"
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"NationGroup", "Barbarian", "Player", FALSE
|
||
|
}
|
||
|
[enabler_steal_tech_target]
|
||
|
action = "Targeted Steal Tech Escape Expected"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Spy", "Local"
|
||
|
"UnitState", "OnLivableTile", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
"DiplRel", "Foreign", "Local"
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"NationGroup", "Barbarian", "Player", FALSE
|
||
|
}
|
||
|
[enabler_incite_city]
|
||
|
action = "Incite City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Diplomat", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitTypeFlag", "Spy", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"Gov", "Democracy", "Player", FALSE
|
||
|
"Building", "Palace", "City", FALSE
|
||
|
}
|
||
|
[enabler_incite_city_spy]
|
||
|
action = "Incite City Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"Gov", "Democracy", "Player", FALSE
|
||
|
"Building", "Palace", "City", FALSE
|
||
|
}
|
||
|
[enabler_bribe_unit]
|
||
|
action = "Bribe Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Diplomat", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"ServerSetting", "killstack", "World", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Unbribable", "Local", FALSE
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
"Gov", "Democracy", "Player", FALSE
|
||
|
}
|
||
|
[enabler_bribe_unit_killstack_enabled]
|
||
|
action = "Bribe Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Diplomat", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Unbribable", "Local", FALSE
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
"Gov", "Democracy", "Player", FALSE
|
||
|
"MaxUnitsOnTile", "1", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_sabotage_unit]
|
||
|
action = "Sabotage Unit Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"ServerSetting", "killstack", "World", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
"MinHitPoints", "2", "Local", TRUE
|
||
|
}
|
||
|
[enabler_sabotage_unit_killstack_enabled]
|
||
|
action = "Sabotage Unit Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
"MinHitPoints", "2", "Local", TRUE
|
||
|
"MaxUnitsOnTile", "1", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_steal_gold_capital]
|
||
|
action = "Steal Gold"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Diplomat", "Local", TRUE
|
||
|
"UnitTypeFlag", "Spy", "Local", FALSE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"Tech", "Banking", "Player", TRUE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"Building", "Palace", "City"
|
||
|
}
|
||
|
[enabler_steal_gold_capital_spy]
|
||
|
action = "Steal Gold Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Spy", "Local"
|
||
|
"UnitState", "OnLivableTile", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
"Tech", "Banking", "Player"
|
||
|
"DiplRel", "Foreign", "Local"
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"Building", "Palace", "City"
|
||
|
}
|
||
|
[enabler_steal_gold_spy]
|
||
|
action = "Steal Gold Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Spy", "Local"
|
||
|
"UnitState", "OnLivableTile", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
"Tech", "Banking", "Player"
|
||
|
"DiplRel", "Foreign", "Local"
|
||
|
}
|
||
|
[enabler_steal_maps]
|
||
|
action = "Steal Maps Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Spy", "Local"
|
||
|
"UnitState", "OnLivableTile", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
"DiplRel", "Foreign", "Local"
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"NationGroup", "Barbarian", "Player", FALSE
|
||
|
}
|
||
|
[enabler_suitcase_nuke]
|
||
|
action = "Suitcase Nuke"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"MinVeteran", "2", "Local", FALSE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"Building", "Manhattan Project", "Player", TRUE
|
||
|
}
|
||
|
[enabler_suitcase_nuke_escape]
|
||
|
action = "Suitcase Nuke Escape"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"MinVeteran", "2", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"Building", "Manhattan Project", "Player", TRUE
|
||
|
}
|
||
|
[enabler_eliminate_spy]
|
||
|
action = "Spy Attack"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Spy", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
}
|
||
|
[enabler_trade_route]
|
||
|
action = "Establish Trade Route"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "TradeRoute", "Local", TRUE
|
||
|
"UnitState", "HasHomeCity", "Local", TRUE
|
||
|
}
|
||
|
[enabler_marketplace]
|
||
|
action = "Enter Marketplace"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "TradeRoute", "Local", TRUE
|
||
|
"UnitState", "HasHomeCity", "Local", TRUE
|
||
|
}
|
||
|
[enabler_help_build_wonder]
|
||
|
action = "Help Wonder"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "HelpWonder", "Local", TRUE
|
||
|
"DiplRel", "Armistice", "Local", FALSE
|
||
|
"DiplRel", "War", "Local", FALSE
|
||
|
"DiplRel", "Cease-fire", "Local", FALSE
|
||
|
"DiplRel", "Peace", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"BuildingGenus", "GreatWonder", "Local"
|
||
|
}
|
||
|
[enabler_disband_unit_recover]
|
||
|
action = "Disband Unit Recover"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "EvacuateFirst", "Local", FALSE
|
||
|
"DiplRel", "War", "Local", FALSE
|
||
|
"DiplRel", "Cease-fire", "Local", FALSE
|
||
|
"DiplRel", "Armistice", "Local", FALSE
|
||
|
"DiplRel", "Peace", "Local", FALSE
|
||
|
}
|
||
|
[enabler_disband_unit]
|
||
|
action = "Disband Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "EvacuateFirst", "Local", FALSE
|
||
|
}
|
||
|
[enabler_build_city_pioneer]
|
||
|
action = "Found City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Cities", "Local"
|
||
|
"UnitState", "OnLivableTile", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", FALSE
|
||
|
"TerrainFlag","NoCities","Tile",FALSE
|
||
|
}
|
||
|
[enabler_build_city_occupied]
|
||
|
action = "Found City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Cities", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "Armistice", "Local", FALSE
|
||
|
"DiplRel", "Cease-fire", "Local", FALSE
|
||
|
"DiplRel", "Peace", "Local", FALSE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", TRUE
|
||
|
"TerrainFlag", "NoCities", "Tile", FALSE
|
||
|
}
|
||
|
[enabler_join_city]
|
||
|
action = "Join City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "AddToCity", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
[enabler_royal_sapper]
|
||
|
action = "Surgical Strike Building"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "GameLoss", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
"UnitState", "Transported", "Local", FALSE
|
||
|
}
|
||
|
[enabler_heal]
|
||
|
action = "Heal Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "GameLoss", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", FALSE
|
||
|
"DiplRel", "Cease-fire", "Local", FALSE
|
||
|
"DiplRel", "Armistice", "Local", FALSE
|
||
|
"DiplRel", "Peace", "Local", FALSE
|
||
|
"DiplRel", "Never met", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "LightWeight", "Local", TRUE
|
||
|
}
|
||
|
[enabler_convert_to_leader_yatch]
|
||
|
action = "Convert Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "GameLoss", "Local"
|
||
|
"CityTile", "Center", "Tile"
|
||
|
"Tech", "Map Making", "Player"
|
||
|
}
|
||
|
; It is always legal to convert back again.
|
||
|
[enabler_convert_from_leader_yatch]
|
||
|
action = "Convert Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitType", "Leader Yacht", "Local"
|
||
|
"CityTile", "Center", "Tile"
|
||
|
}
|
||
|
[enabler_border_police]
|
||
|
action = "Expel Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "BorderPolice", "Local", TRUE
|
||
|
"DiplRelTile", "Foreign", "Local", FALSE
|
||
|
"DiplRel", "Foreign", "Local", TRUE
|
||
|
"DiplRel", "Team", "Local", FALSE
|
||
|
"DiplRel", "Alliance", "Local", FALSE
|
||
|
"DiplRel", "War", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Expellable", "Local", TRUE
|
||
|
"DiplRelTileOther", "Foreign", "Local", FALSE
|
||
|
}
|
||
|
; The GameLoss unit requirement makes sending units on a suicide mission to
|
||
|
; capture and destroy cities deep inside enemy terrain national suicide.
|
||
|
; The risk of moving a GameLoss unit to the target city increases the cost
|
||
|
; of the action. Rationalization for the requirement: the physical presence
|
||
|
; of the Leader makes it easier to comply with the order to destroy the
|
||
|
; city. (See the "orders by phone" Milgram experiment variation)
|
||
|
;
|
||
|
; The domestic city requirement forces the player to invade a city before
|
||
|
; they can destroy it. If this limit is weakened by allowing the
|
||
|
; destruction of undefended (MaxUnitsOnTile) foreign cities during war it
|
||
|
; will lead to situations where a player can destroy a city but is unable
|
||
|
; to occupy it.
|
||
|
; Rationalization: the resistance must be crushed before the destruction.
|
||
|
;
|
||
|
; TODO: create an international incident (set the Casus_Belli_Success
|
||
|
; effect value to 1000) if "Destroy City" still is overpowered.
|
||
|
[enabler_scorched_earth]
|
||
|
action = "Destroy City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "GameLoss", "Local", TRUE
|
||
|
"DiplRel", "Foreign", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
}
|
||
|
[enabler_nuke]
|
||
|
action = "Explode Nuclear"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Nuclear", "Local", TRUE
|
||
|
}
|
||
|
[enabler_nuke_city]
|
||
|
action = "Nuke City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Nuclear", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
"DiplRel", "War", "Local"
|
||
|
}
|
||
|
[enabler_nuke_units]
|
||
|
action = "Nuke Units"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Nuclear", "Local"
|
||
|
"MinMoveFrags", "1", "Local"
|
||
|
"DiplRel", "War", "Local"
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
}
|
||
|
[enabler_bombard_city]
|
||
|
action = "Bombard"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Bombarder", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"DiplRelTileOther", "War", "Local", TRUE
|
||
|
}
|
||
|
[enabler_bombard_no_city]
|
||
|
action = "Bombard"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Bombarder", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
}
|
||
|
[enabler_attack_from_native]
|
||
|
action = "Attack"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "Missile", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitState", "OnNativeTile", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
[enabler_attack_marines]
|
||
|
action = "Attack"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "Missile", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitTypeFlag", "Marines", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
[enabler_attack_att_from_non_native]
|
||
|
action = "Attack"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "Missile", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitClassFlag", "AttFromNonNative", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
[enabler_ransom_from_native]
|
||
|
action = "Collect Ransom"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "Missile", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitState", "OnNativeTile", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"PlayerState", "Barbarian", "Player"
|
||
|
}
|
||
|
[enabler_ransom_marines]
|
||
|
action = "Collect Ransom"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "Missile", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitTypeFlag", "Marines", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"PlayerState", "Barbarian", "Player"
|
||
|
}
|
||
|
[enabler_ransom_att_from_non_native]
|
||
|
action = "Collect Ransom"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "Missile", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitClassFlag", "AttFromNonNative", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"PlayerState", "Barbarian", "Player"
|
||
|
}
|
||
|
[enabler_explode_missile]
|
||
|
action = "Suicide Attack"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "Missile", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
}
|
||
|
[enabler_conquer_city_native]
|
||
|
action = "Conquer City Shrink"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitClassFlag", "CanOccupyCity", "Local", TRUE
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitState", "OnLivableTile", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"MaxUnitsOnTile", "0", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_conquer_city_marines]
|
||
|
action = "Conquer City Shrink"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitClassFlag", "CanOccupyCity", "Local", TRUE
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"UnitTypeFlag", "Marines", "Local", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"MaxUnitsOnTile", "0", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_change_home_city]
|
||
|
action = "Home City"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "NoHome", "Local", FALSE
|
||
|
"UnitState", "HasHomeCity", "Local", TRUE
|
||
|
}
|
||
|
[enabler_paradrop_base_to_claimed]
|
||
|
action = "Paradrop Unit Enter"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Paratroopers", "Local", TRUE
|
||
|
"MinMoveFrags", "3", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"Extra", "Airbase", "Tile", TRUE
|
||
|
"DiplRel", "Peace", "Local", FALSE
|
||
|
"DiplRel", "War", "Local", FALSE
|
||
|
"UnitClassFlag", "HutFrighten", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_paradrop_base_to_unclaimed]
|
||
|
action = "Paradrop Unit Enter"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Paratroopers", "Local", TRUE
|
||
|
"MinMoveFrags", "3", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"Extra", "Airbase", "Tile", TRUE
|
||
|
"UnitClassFlag", "HutFrighten", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", FALSE
|
||
|
"Extra", "Fortress","Tile", FALSE
|
||
|
}
|
||
|
[enabler_paradrop_base_to_war_conquer]
|
||
|
action = "Paradrop Unit Enter Conquer"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Paratroopers", "Local", TRUE
|
||
|
"MinMoveFrags", "3", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"Extra", "Airbase", "Tile", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
"UnitClassFlag", "CanOccupyCity", "Local", TRUE
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "HutFrighten", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_paradrop_base_to_unclaimed_base]
|
||
|
action = "Paradrop Unit Enter Conquer"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Paratroopers", "Local", TRUE
|
||
|
"MinMoveFrags", "3", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"Extra", "Airbase", "Tile", TRUE
|
||
|
"UnitClassFlag", "HutFrighten", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", FALSE
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
"Extra", "Fortress","Tile", TRUE
|
||
|
}
|
||
|
[enabler_paradrop_city_to_claimed]
|
||
|
action = "Paradrop Unit Enter"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Paratroopers", "Local", TRUE
|
||
|
"MinMoveFrags", "3", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"CityTile", "Center", "Tile", TRUE
|
||
|
"DiplRel", "Peace", "Local", FALSE
|
||
|
"DiplRel", "War", "Local", FALSE
|
||
|
"UnitClassFlag", "HutFrighten", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_paradrop_city_to_unclaimed]
|
||
|
action = "Paradrop Unit Enter"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Paratroopers", "Local", TRUE
|
||
|
"MinMoveFrags", "3", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"CityTile", "Center", "Tile", TRUE
|
||
|
"UnitClassFlag", "HutFrighten", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", FALSE
|
||
|
"Extra", "Fortress","Tile", FALSE
|
||
|
}
|
||
|
[enabler_paradrop_city_to_war_conquer]
|
||
|
action = "Paradrop Unit Enter Conquer"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Paratroopers", "Local", TRUE
|
||
|
"MinMoveFrags", "3", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"CityTile", "Center", "Tile", TRUE
|
||
|
"DiplRel", "War", "Local", TRUE
|
||
|
"UnitClassFlag", "CanOccupyCity", "Local", TRUE
|
||
|
"UnitTypeFlag", "NonMil", "Local", FALSE
|
||
|
"UnitClassFlag", "HutFrighten", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_paradrop_city_to_unclaimed_base]
|
||
|
action = "Paradrop Unit Enter Conquer"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Paratroopers", "Local", TRUE
|
||
|
"MinMoveFrags", "3", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"CityTile", "Center", "Tile", TRUE
|
||
|
"UnitClassFlag", "HutFrighten", "Local", FALSE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"CityTile", "Claimed", "Tile", FALSE
|
||
|
"CityTile", "Center", "Tile", FALSE
|
||
|
"Extra", "Fortress","Tile", TRUE
|
||
|
}
|
||
|
[enabler_upgrade_unit]
|
||
|
action = "Upgrade Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"DiplRel", "Foreign", "Local", FALSE
|
||
|
}
|
||
|
[enabler_airlift_light_unit]
|
||
|
action = "Airlift Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "LightWeight", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"CityTile", "Center", "Tile", TRUE
|
||
|
}
|
||
|
[enabler_airlift_medium_unit]
|
||
|
action = "Airlift Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "MediumWeight", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"Tech", "Advanced Flight", "Player", TRUE
|
||
|
"Building", "Airport", "City", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"CityTile", "Center", "Tile", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"Building", "Airport", "City"
|
||
|
}
|
||
|
[enabler_airlift_heavy_unit]
|
||
|
action = "Airlift Unit"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "HeavyWeight", "Local", TRUE
|
||
|
"UnitState", "Transporting", "Local", FALSE
|
||
|
"Tech", "Fusion Power", "Player", TRUE
|
||
|
"Building", "Airport", "City", TRUE
|
||
|
"MinMoveFrags", "1", "Local", TRUE
|
||
|
"CityTile", "Center", "Tile", TRUE
|
||
|
}
|
||
|
target_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"Building", "Airport", "City"
|
||
|
}
|
||
|
[enabler_transform_terrain]
|
||
|
action = "Transform Terrain"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitTypeFlag", "Transform", "Local"
|
||
|
"UnitTypeFlag", "Workers", "Local"
|
||
|
}
|
||
|
[enabler_cultivate]
|
||
|
action = "Cultivate"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Workers", "Local", TRUE
|
||
|
}
|
||
|
[enabler_plant]
|
||
|
action = "Plant"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range", "present"
|
||
|
"UnitTypeFlag", "Workers", "Local", TRUE
|
||
|
}
|
||
|
[enabler_pillage]
|
||
|
action = "Pillage"
|
||
|
actor_reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"UnitClassFlag", "CanPillage", "Local"
|
||
|
}
|
||
|
[enabler_clean]
|
||