From ea66ed6216220ca0c1fb75e028056ca0cbd0699a Mon Sep 17 00:00:00 2001 From: Sveinung Kvilhaugsvik Date: Thu, 18 Mar 2021 18:44:39 +0100 Subject: [PATCH] sandbox: demonstrate spy nuke Copy the rules I made for webperimental but adjust them for Treuga Dei. Intended to have a blast radius of 0 but that is only possible in 3.2. See osdn #41809 --- data/sandbox/effects.ruleset | 104 +++++++++++++++++++++++++++++++++++ data/sandbox/game.ruleset | 60 ++++++++++++++++++++ 2 files changed, 164 insertions(+) diff --git a/data/sandbox/effects.ruleset b/data/sandbox/effects.ruleset index 7bf92dffaf..e999b0eb55 100644 --- a/data/sandbox/effects.ruleset +++ b/data/sandbox/effects.ruleset @@ -4877,6 +4877,110 @@ reqs = "Building", "Treuga Dei", "World", TRUE } +; Treuga Dei Casus Belli +[effect_treuga_dei_casus_belli_suitcase_nuke] +type = "Casus_Belli_Success" +value = 1000 +reqs = + { "type", "name", "range", "survives" + "Action", "Suitcase Nuke", "Local", FALSE + "Building", "Treuga Dei", "World", TRUE + } + +; Treuga Dei Casus Belli +[effect_treuga_dei_casus_belli_suitcase_nuke_escape] +type = "Casus_Belli_Success" +value = 1000 +reqs = + { "type", "name", "range", "survives" + "Action", "Suitcase Nuke Escape", "Local", FALSE + "Building", "Treuga Dei", "World", TRUE + } + +; informant (veteran level 0) and handler (veteran level 1) does the +; non escape version +[effect_suitcase_nuke_odds_base] +type = "Action_Odds_Pct" +value = -69 +reqs = + { "type", "name", "range" + "Action", "Suitcase Nuke", "Local" + } + +; give handler (veteran leven 2) better odds +[effect_suitcase_nuke_odds_first_veteran] +type = "Action_Odds_Pct" +value = 6 +reqs = + { "type", "name", "range" + "Action", "Suitcase Nuke", "Local" + "MinVeteran", "1", "Local" + } + +; agent (veteran level 2) and spymaster (veteran level 3) does the +; escape version +[effect_suitcase_nuke_esc_odds_base] +type = "Action_Odds_Pct" +value = -57 +reqs = + { "type", "name", "range" + "Action", "Suitcase Nuke Escape", "Local" + } + +; give spymaster (veteran leven 3) better odds +[effect_suitcase_nuke_esc_odds_last_veteran] +type = "Action_Odds_Pct" +value = 6 +reqs = + { "type", "name", "range" + "Action", "Suitcase Nuke Escape", "Local" + "MinVeteran", "3", "Local" + } + +[effect_action_suitcase_nuke_escape_success_move_cost] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Suitcase Nuke Escape", "Local", TRUE + } + +[effect_incident_success_suitcase_nuke] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Suitcase Nuke", "Local", TRUE + "DiplRel", "War", "Local", TRUE + } + +[effect_incident_success_suitcase_nuke_terrorist_state] +type = "Casus_Belli_Success" +value = 1000 +reqs = + { "type", "name", "range", "present" + "Action", "Suitcase Nuke", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_success_suitcase_nuke_veteran] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Suitcase Nuke Escape", "Local", TRUE + "DiplRel", "War", "Local", TRUE + } + +[effect_incident_success_suitcase_nuke_veteran_terrorist_state] +type = "Casus_Belli_Success" +value = 1000 +reqs = + { "type", "name", "range", "present" + "Action", "Suitcase Nuke Escape", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + [effect_unit_shield_value_recycle] type = "Unit_Shield_Value_Pct" value = -50 diff --git a/data/sandbox/game.ruleset b/data/sandbox/game.ruleset index 3ac2cc462f..261314ae72 100644 --- a/data/sandbox/game.ruleset +++ b/data/sandbox/game.ruleset @@ -1390,6 +1390,66 @@ actor_reqs = "Tech", "Communism", "World", TRUE, TRUE } +[actionenabler_suitcase_nuke] +action = "Suitcase Nuke" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "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 + "Building", "Treuga Dei", "World", FALSE + } + +[actionenabler_suitcase_nuke_despite_treuga_dei] +action = "Suitcase Nuke" +actor_reqs = + { "type", "name", "range", "present", "survives" + "UnitFlag", "Spy", "Local", TRUE, FALSE + "MinVeteran", "2", "Local", FALSE, FALSE + "DiplRel", "Alliance", "Local", FALSE, FALSE + "DiplRel", "Team", "Local", FALSE, FALSE + "DiplRel", "Foreign", "Local", TRUE, FALSE + "UnitState", "OnLivableTile", "Local", TRUE, FALSE + "MinMoveFrags", "1", "Local", TRUE, FALSE + "Building", "Manhattan Project", "Player", TRUE, FALSE + "Tech", "Communism", "World", TRUE, TRUE + } + +[actionenabler_suitcase_nuke_escape] +action = "Suitcase Nuke Escape" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "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 + "Building", "Treuga Dei", "World", FALSE + } + +[actionenabler_suitcase_nuke_escape_despite_treuga_dei] +action = "Suitcase Nuke Escape" +actor_reqs = + { "type", "name", "range", "present", "survives" + "UnitFlag", "Spy", "Local", TRUE, FALSE + "MinVeteran", "2", "Local", TRUE, FALSE + "DiplRel", "Alliance", "Local", FALSE, FALSE + "DiplRel", "Team", "Local", FALSE, FALSE + "DiplRel", "Foreign", "Local", TRUE, FALSE + "UnitState", "OnLivableTile", "Local", TRUE, FALSE + "MinMoveFrags", "1", "Local", TRUE, FALSE + "Building", "Manhattan Project", "Player", TRUE, FALSE + "Tech", "Communism", "World", TRUE, TRUE + } + ; 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 -- 2.20.1