From 726cb44d7355615f6befe76ac4e6f56c01b7aed7 Mon Sep 17 00:00:00 2001
From: Sveinung Kvilhaugsvik <sveinung84@users.sourceforge.net>
Date: Mon, 1 Mar 2021 23:24:43 +0100
Subject: [PATCH 2/2] sandbox: add the new wonder Treuga Dei.

Celebrate that all violent actions now are under enabler control by
introducing the new wonder "Treuga Dei" in sandbox. It disables most violent
actions until Communism and makes them an international incident after
Communism.

This wonder idea is taken from my unfinished ruleset "It Is Just A Game".
This patch adds it as it is there. It can be adjusted to better fit into
civ2civ3 derived rulesets in followup patches if someone wants to.
Alternatively I could complete "Pax Dei" - a more "serious" version - and
add it to sandbox.

See osdn #41677
---
 data/sandbox/buildings.ruleset |  38 +++
 data/sandbox/effects.ruleset   | 160 ++++++++++
 data/sandbox/game.ruleset      | 521 +++++++++++++++++++++++++++++++--
 3 files changed, 691 insertions(+), 28 deletions(-)

diff --git a/data/sandbox/buildings.ruleset b/data/sandbox/buildings.ruleset
index 5eb630217a..86b9798823 100644
--- a/data/sandbox/buildings.ruleset
+++ b/data/sandbox/buildings.ruleset
@@ -2061,6 +2061,44 @@ All your new military land units start with an additional veteran level \
 are created as Hardened).\
 ")
 
+; This is the "It Is Just A Game" version. I have been working on "Pax Dei",
+; a version for more "serious" rulesets, since 2015. It will only ban its
+; owner (and perhaps his allies) from violence against civilians in return
+; for increased trade. (Merchants and their goods were protected.) I could
+; replace "Treuga Dei" with "Pax Dei" in sandbox when it is done.
+; A historian will object and say that there were around 80 days each year
+; when fighting was allowed. I reply that this rule is far more accurate
+; than most fiction about the "dark and oppressive" middle ages.
+; For why Communism changes its effect see the attitude behind the poem
+; "Rent flagg" ("Clean flag" - he asks the reader to remove the Christian
+; crosses from the Norwegian flag) by the Norwegian communist (fellow
+; traveler) Arnulf テ�verland where he says `let no one offer you the deceit /
+; that "the savior" is born` and that you have to `liberate yourself`.
+; Combine this attitude with the attitude behind Pax et treuga Dei and
+; you get a Casus Belli for everyone once anyone does anything violent.
+; -- Sveinung
+[building_treuga_dei]
+name        = _("Treuga Dei")
+genus       = "GreatWonder"
+reqs        =
+    { "type", "name",     "range"
+      "Tech", "Theology", "Player"
+    }
+graphic     = "b.treuga_dei"
+graphic_alt = "b.michelangelos_chapel"
+obsolete_by =
+    { "type", "name",      "range"
+    }
+build_cost  = 600
+upkeep      = 0
+sabotage    = 0
+sound       = "w_treuga_dei"
+sound_alt   = "w_generic"
+helptext    = _("\
+Makes violence impossible before Communism is discovered. \
+Makes every violent action a Casus Belli after Communism is discovered.\
+")
+
 [building_united_nations]
 name		= _("United Nations")
 genus		= "GreatWonder"
diff --git a/data/sandbox/effects.ruleset b/data/sandbox/effects.ruleset
index 4b446a7680..f3ea4067dd 100644
--- a/data/sandbox/effects.ruleset
+++ b/data/sandbox/effects.ruleset
@@ -4640,6 +4640,166 @@ value   = 300
 type    = "Thiefs_Share_Pm"
 value   = 50
 
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_poison_city_escape]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Poison City Escape",   "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_spread_plague]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Spread Plague",        "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_sabotage_unit_escape]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Sabotage Unit Escape", "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_capture_units]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Capture Units",        "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_bombard]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Bombard",              "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_explode_nuclear]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Explode Nuclear",      "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_nuke_city]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Nuke City",            "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_nuke_units]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Nuke Units",           "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_destroy_city]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Destroy City",         "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_attack]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Attack",               "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_suicide_attack]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Suicide Attack",       "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_conquer_city]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Conquer City",         "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_conquer_city_2]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Conquer City 2",       "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_paradrop_conquer]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                        "range", "survives"
+      "Action",   "Paradrop Unit Enter Conquer", "Local", FALSE
+      "Building", "Treuga Dei",                  "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_conquer_extras]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Conquer Extras",       "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
+; Treuga Dei Casus Belli
+[effect_treuga_dei_casus_belli_conquer_extras_2]
+type    = "Casus_Belli_Success"
+value   = 1000
+reqs    =
+    { "type",     "name",                 "range", "survives"
+      "Action",   "Conquer Extras 2",     "Local", FALSE
+      "Building", "Treuga Dei",           "World", TRUE
+    }
+
 [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 152816bfd2..ec5e830db1 100644
--- a/data/sandbox/game.ruleset
+++ b/data/sandbox/game.ruleset
@@ -955,11 +955,27 @@ target_reqs  =
 [actionenabler_poison_city]
 action = "Poison City Escape"
 actor_reqs    =
+    { "type",         "name",          "range", "present"
+      "UnitFlag",     "Spy",           "Local", TRUE
+      "DiplRel",      "War",           "Local", TRUE
+      "UnitState",    "OnLivableTile", "Local", TRUE
+      "MinMoveFrags", "1",             "Local", TRUE
+      "Building",     "Treuga Dei",    "World", FALSE
+    }
+target_reqs    =
     { "type",   "name", "range"
-      "UnitFlag", "Spy", "Local"
-      "DiplRel", "War", "Local"
-      "UnitState", "OnLivableTile", "Local"
-      "MinMoveFrags", "1", "Local"
+      "MinSize", "2", "City"
+    }
+
+[actionenabler_poison_city_despite_treuga_dei]
+action = "Poison City Escape"
+actor_reqs    =
+    { "type",         "name",          "range", "present"
+      "UnitFlag",     "Spy",           "Local", TRUE
+      "DiplRel",      "War",           "Local", TRUE
+      "UnitState",    "OnLivableTile", "Local", TRUE
+      "MinMoveFrags", "1",             "Local", TRUE
+      "Tech",         "Communism",     "World", TRUE
     }
 target_reqs    =
     { "type",   "name", "range"
@@ -977,6 +993,27 @@ actor_reqs    =
       "UnitState",    "OnLivableTile", "Local", TRUE
       "MinMoveFrags", "1",             "Local", TRUE
       "Tech",         "Medicine",      "Player", TRUE
+      "Building",     "Treuga Dei",    "World", FALSE
+    }
+target_reqs    =
+    { "type",     "name",         "range"
+      ; matches illness.illness_min_size
+      "MinSize",  "5",            "City"
+      "Building", "Research Lab", "City"
+    }
+
+[actionenabler_release_plague_from_bio_lab_despite_treuga_dei]
+action = "Spread Plague"
+actor_reqs    =
+    { "type",         "name",          "range", "present"
+      "UnitFlag",     "Spy",           "Local", TRUE
+      "DiplRel",      "Alliance",      "Local", FALSE
+      "DiplRel",      "Team",          "Local", FALSE
+      "DiplRel",      "Foreign",       "Local", TRUE
+      "UnitState",    "OnLivableTile", "Local", TRUE
+      "MinMoveFrags", "1",             "Local", TRUE
+      "Tech",         "Medicine",      "Player", TRUE
+      "Tech",         "Communism",     "World", TRUE
     }
 target_reqs    =
     { "type",     "name",         "range"
@@ -1048,11 +1085,28 @@ target_reqs    =
 [actionenabler_sabotage_unit]
 action = "Sabotage Unit Escape"
 actor_reqs    =
-    { "type",   "name", "range"
-      "UnitFlag", "Spy", "Local"
-      "DiplRel", "War", "Local"
-      "UnitState", "OnLivableTile", "Local"
-      "MinMoveFrags", "1", "Local"
+    { "type",         "name",          "range", "present"
+      "UnitFlag",     "Spy",           "Local", TRUE
+      "DiplRel",      "War",           "Local", TRUE
+      "UnitState",    "OnLivableTile", "Local", TRUE
+      "MinMoveFrags", "1",             "Local", TRUE
+      "Building",     "Treuga Dei",    "World", FALSE
+    }
+target_reqs    =
+    { "type",   "name", "range", "present"
+      "CityTile", "Center", "Local", FALSE
+      "MinHitPoints", "2", "Local", TRUE
+    }
+
+[actionenabler_sabotage_unit_despite_treuga_dei]
+action = "Sabotage Unit Escape"
+actor_reqs    =
+    { "type",         "name",          "range", "present"
+      "UnitFlag",     "Spy",           "Local", TRUE
+      "DiplRel",      "War",           "Local", TRUE
+      "UnitState",    "OnLivableTile", "Local", TRUE
+      "MinMoveFrags", "1",             "Local", TRUE
+      "Tech",         "Communism",     "World", TRUE
     }
 target_reqs    =
     { "type",   "name", "range", "present"
@@ -1168,6 +1222,24 @@ actor_reqs    =
       "DiplRel", "War", "Local", TRUE
       "MinMoveFrags", "1", "Local", TRUE
       "DiplRel", "Foreign", "Local", TRUE
+      "Building", "Treuga Dei", "World", FALSE
+    }
+target_reqs    =
+    { "type",      "name",         "range", "present"
+      "UnitFlag",  "Capturable",   "Local", TRUE
+      "UnitState", "Transporting", "Local", FALSE
+      "CityTile",  "Center",       "Local", FALSE
+    }
+
+[actionenabler_capture_despite_treuga_dei]
+action = "Capture Units"
+actor_reqs    =
+    { "type",   "name", "range", "present"
+      "UnitFlag", "Capturer", "Local", TRUE
+      "DiplRel", "War", "Local", TRUE
+      "MinMoveFrags", "1", "Local", TRUE
+      "DiplRel", "Foreign", "Local", TRUE
+      "Tech", "Communism", "World", TRUE
     }
 target_reqs    =
     { "type",      "name",         "range", "present"
@@ -1184,6 +1256,22 @@ actor_reqs    =
       "UnitState",    "Transported", "Local", FALSE
       "MinMoveFrags", "1",           "Local", TRUE
       "DiplRel",      "War",         "Local", TRUE
+      "Building",     "Treuga Dei",  "World", FALSE
+    }
+target_reqs    =
+    { "type",   "name", "range", "present"
+      "TerrainClass", "Oceanic", "Local", FALSE
+    }
+
+[actionenabler_bombard_despite_treuga_dei]
+action = "Bombard"
+actor_reqs    =
+    { "type",         "name",        "range", "present"
+      "UnitFlag",     "Bombarder",   "Local", TRUE
+      "UnitState",    "Transported", "Local", FALSE
+      "MinMoveFrags", "1",           "Local", TRUE
+      "DiplRel",      "War",         "Local", TRUE
+      "Tech",         "Communism",   "World", TRUE
     }
 target_reqs    =
     { "type",   "name", "range", "present"
@@ -1251,24 +1339,55 @@ action = "Explode Nuclear"
 actor_reqs    =
     { "type",   "name", "range", "present"
       "UnitFlag", "NuclearOP", "Local", TRUE
+      "Building", "Treuga Dei", "World", FALSE
+    }
+
+[actionenabler_nuke_despite_treuga_dei]
+action = "Explode Nuclear"
+actor_reqs    =
+    { "type",   "name", "range", "present"
+      "UnitFlag", "NuclearOP", "Local", TRUE
+      "Tech", "Communism", "World", TRUE
     }
 
 [actionenabler_nuke_city]
 action     = "Nuke City"
 actor_reqs =
-    { "type",         "name",    "range"
-      "UnitFlag",     "Nuclear", "Local"
-      "MinMoveFrags", "1",       "Local"
+    { "type",         "name",       "range", "present"
+      "UnitFlag",     "Nuclear",    "Local", TRUE
+      "MinMoveFrags", "1",          "Local", TRUE
+      "Building",     "Treuga Dei", "World", FALSE
+    }
+
+[actionenabler_nuke_city_despite_treuga_dei]
+action     = "Nuke City"
+actor_reqs =
+    { "type",         "name",       "range", "present"
+      "UnitFlag",     "Nuclear",    "Local", TRUE
+      "MinMoveFrags", "1",          "Local", TRUE
+      "Tech",         "Communism",  "World", TRUE
     }
 
 [actionenabler_nuke_units]
 action     = "Nuke Units"
 actor_reqs =
-    { "type",         "name",         "range"
-      "UnitFlag",     "TacticalNuke", "Local"
-      "Tech",         "Rocketry",     "Player"
-      "MinMoveFrags", "1",            "Local"
-      "DiplRel",      "War",          "Local"
+    { "type",         "name",         "range",  "present"
+      "UnitFlag",     "TacticalNuke", "Local",  TRUE
+      "Tech",         "Rocketry",     "Player", TRUE
+      "MinMoveFrags", "1",            "Local",  TRUE
+      "DiplRel",      "War",          "Local",  TRUE
+      "Building",     "Treuga Dei",   "World",  FALSE
+    }
+
+[actionenabler_nuke_units_despite_treuga_dei]
+action     = "Nuke Units"
+actor_reqs =
+    { "type",         "name",         "range",  "present"
+      "UnitFlag",     "TacticalNuke", "Local",  TRUE
+      "Tech",         "Rocketry",     "Player", TRUE
+      "MinMoveFrags", "1",            "Local",  TRUE
+      "DiplRel",      "War",          "Local",  TRUE
+      "Tech",         "Communism",    "World", TRUE
     }
 
 ; The GameLoss unit requirement makes sending units on a suicide mission to
@@ -1294,6 +1413,18 @@ actor_reqs    =
       "DiplRel",      "Foreign",    "Local", FALSE
       "MinMoveFrags", "1",             "Local", TRUE
       "UnitState",    "OnLivableTile", "Local", TRUE
+      "Building",     "Treuga Dei",    "World", FALSE
+    }
+
+[actionenabler_scorched_earth_despite_treuga_dei]
+action = "Destroy City"
+actor_reqs    =
+    { "type",         "name",          "range", "present"
+      "UnitFlag",     "GameLoss",      "Local", TRUE
+      "DiplRel",      "Foreign",    "Local", FALSE
+      "MinMoveFrags", "1",             "Local", TRUE
+      "UnitState",    "OnLivableTile", "Local", TRUE
+      "Tech",         "Communism",     "World", TRUE
     }
 
 [actionenabler_attack_native]
@@ -1305,17 +1436,43 @@ actor_reqs    =
       "MinMoveFrags",  "1",            "Local", TRUE
       "UnitState",     "OnNativeTile", "Local", TRUE
       "DiplRel",       "War",          "Local", TRUE
+      "Building",     "Treuga Dei",    "World", FALSE
+    }
+
+[actionenabler_attack_native_despite_treuga_dei]
+action = "Attack"
+actor_reqs    =
+    { "type",          "name",         "range", "present"
+      "UnitFlag",      "NonMil",       "Local", FALSE
+      "UnitClassFlag", "Missile",      "Local", FALSE
+      "MinMoveFrags",  "1",            "Local", TRUE
+      "UnitState",     "OnNativeTile", "Local", TRUE
+      "DiplRel",       "War",          "Local", TRUE
+      "Tech",          "Communism",    "World", TRUE
     }
 
 [actionenabler_attack_marines]
 action = "Attack"
 actor_reqs    =
-    { "type",          "name",    "range", "present"
-      "UnitFlag",      "NonMil",  "Local", FALSE
-      "UnitClassFlag", "Missile", "Local", FALSE
-      "MinMoveFrags",  "1",       "Local", TRUE
-      "UnitFlag",      "Marines", "Local", TRUE
-      "DiplRel",       "War",     "Local", TRUE
+    { "type",          "name",       "range", "present"
+      "UnitFlag",      "NonMil",     "Local", FALSE
+      "UnitClassFlag", "Missile",    "Local", FALSE
+      "MinMoveFrags",  "1",          "Local", TRUE
+      "UnitFlag",      "Marines",    "Local", TRUE
+      "DiplRel",       "War",        "Local", TRUE
+      "Building",      "Treuga Dei", "World", FALSE
+    }
+
+[actionenabler_attack_marines_despite_treuga_dei]
+action = "Attack"
+actor_reqs    =
+    { "type",          "name",       "range", "present"
+      "UnitFlag",      "NonMil",     "Local", FALSE
+      "UnitClassFlag", "Missile",    "Local", FALSE
+      "MinMoveFrags",  "1",          "Local", TRUE
+      "UnitFlag",      "Marines",    "Local", TRUE
+      "DiplRel",       "War",        "Local", TRUE
+      "Tech",          "Communism",   "World", TRUE
     }
 
 [actionenabler_attack_att_from_non_native]
@@ -1327,16 +1484,41 @@ actor_reqs    =
       "MinMoveFrags",  "1",                "Local", TRUE
       "UnitClassFlag", "AttFromNonNative", "Local", TRUE
       "DiplRel",       "War",              "Local", TRUE
+      "Building",      "Treuga Dei",       "World", FALSE
+    }
+
+[actionenabler_attack_att_from_non_native_despite_treuga_dei]
+action = "Attack"
+actor_reqs    =
+    { "type",          "name",             "range", "present"
+      "UnitFlag",      "NonMil",           "Local", FALSE
+      "UnitClassFlag", "Missile",          "Local", FALSE
+      "MinMoveFrags",  "1",                "Local", TRUE
+      "UnitClassFlag", "AttFromNonNative", "Local", TRUE
+      "DiplRel",       "War",              "Local", TRUE
+      "Tech",          "Communism",        "World", TRUE
     }
 
 [actionenabler_explode_missile]
 action = "Suicide Attack"
 actor_reqs    =
-    { "type",          "name",    "range", "present"
-      "UnitFlag",      "NonMil",  "Local", FALSE
-      "UnitClassFlag", "Missile", "Local", TRUE
-      "MinMoveFrags",  "1",       "Local", TRUE
-      "DiplRel",       "War",     "Local", TRUE
+    { "type",          "name",       "range", "present"
+      "UnitFlag",      "NonMil",     "Local", FALSE
+      "UnitClassFlag", "Missile",    "Local", TRUE
+      "MinMoveFrags",  "1",          "Local", TRUE
+      "DiplRel",       "War",        "Local", TRUE
+      "Building",      "Treuga Dei", "World", FALSE
+    }
+
+[actionenabler_explode_missile_despite_treuga_dei]
+action = "Suicide Attack"
+actor_reqs    =
+    { "type",          "name",       "range", "present"
+      "UnitFlag",      "NonMil",     "Local", FALSE
+      "UnitClassFlag", "Missile",    "Local", TRUE
+      "MinMoveFrags",  "1",          "Local", TRUE
+      "DiplRel",       "War",        "Local", TRUE
+      "Tech",          "Communism",  "World", TRUE
     }
 
 [actionenabler_conquer_city_native]
@@ -1348,6 +1530,23 @@ actor_reqs    =
       "DiplRel",        "War",           "Local", TRUE
       "MinMoveFrags",   "1",             "Local", TRUE
       "UnitState",      "OnLivableTile", "Local", TRUE
+      "Building",       "Treuga Dei",    "World", FALSE
+    }
+target_reqs    =
+    { "type",           "name",          "range", "present"
+      "MaxUnitsOnTile", "0",             "Local", TRUE
+    }
+
+[actionenabler_conquer_city_native_despite_treuga_dei]
+action = "Conquer City"
+actor_reqs    =
+    { "type",           "name",          "range", "present"
+      "UnitClassFlag",  "CanOccupyCity", "Local", TRUE
+      "UnitFlag",       "NonMil",        "Local", FALSE
+      "DiplRel",        "War",           "Local", TRUE
+      "MinMoveFrags",   "1",             "Local", TRUE
+      "UnitState",      "OnLivableTile", "Local", TRUE
+      "Tech",           "Communism",     "World", TRUE
     }
 target_reqs    =
     { "type",           "name",          "range", "present"
@@ -1364,6 +1563,24 @@ actor_reqs    =
       "MinMoveFrags",   "1",             "Local", TRUE
       "UnitFlag",       "Marines",       "Local", TRUE
       "UnitState",      "OnLivableTile", "Local", FALSE
+      "Building",       "Treuga Dei",    "World", FALSE
+    }
+target_reqs    =
+    { "type",           "name",          "range", "present"
+      "MaxUnitsOnTile", "0",             "Local", TRUE
+    }
+
+[actionenabler_conquer_city_marines_despite_treuga_dei]
+action = "Conquer City 2"
+actor_reqs    =
+    { "type",           "name",          "range", "present"
+      "UnitClassFlag",  "CanOccupyCity", "Local", TRUE
+      "UnitFlag",       "NonMil",        "Local", FALSE
+      "DiplRel",        "War",           "Local", TRUE
+      "MinMoveFrags",   "1",             "Local", TRUE
+      "UnitFlag",       "Marines",       "Local", TRUE
+      "UnitState",      "OnLivableTile", "Local", FALSE
+      "Tech",           "Communism",     "World", TRUE
     }
 target_reqs    =
     { "type",           "name",          "range", "present"
@@ -1423,6 +1640,26 @@ actor_reqs    =
       "DiplRel",      "War",          "Local", TRUE
       "UnitClassFlag","CanOccupyCity","Local", TRUE
       "UnitFlag",     "NonMil",       "Local", FALSE
+      "Building",      "Treuga Dei",  "World", FALSE
+    }
+target_reqs    =
+    { "type",        "name",             "range", "present"
+      "TerrainFlag", "DifficultLanding", "Local", FALSE
+      "CityTile",    "Claimed",          "Local", TRUE
+    }
+
+[actionenabler_paradrop_base_to_war_conquer_not_forest_despite_treuga_dei]
+action = "Paradrop Unit Enter Conquer"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "UnitFlag",     "Paratroopers", "Local", TRUE
+      "MinMoveFrags", "6",            "Local", TRUE
+      "UnitState",    "Transporting", "Local", FALSE
+      "ExtraFlag",    "ParadropFrom", "Local", TRUE
+      "DiplRel",      "War",          "Local", TRUE
+      "UnitClassFlag","CanOccupyCity","Local", TRUE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs    =
     { "type",        "name",             "range", "present"
@@ -1438,6 +1675,25 @@ actor_reqs    =
       "MinMoveFrags", "6",            "Local", TRUE
       "UnitState",    "Transporting", "Local", FALSE
       "ExtraFlag",    "ParadropFrom", "Local", TRUE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs    =
+    { "type",        "name",             "range", "present"
+      "TerrainFlag", "DifficultLanding", "Local", FALSE
+      "CityTile",    "Claimed",          "Local", FALSE
+      "CityTile",    "Center",           "Local", FALSE
+      "Extra",       "Castle",           "Local", TRUE
+    }
+
+[actionenabler_paradrop_base_to_unclaimed_base_not_forest_despite_treuga_dei]
+action = "Paradrop Unit Enter Conquer"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "UnitFlag",     "Paratroopers", "Local", TRUE
+      "MinMoveFrags", "6",            "Local", TRUE
+      "UnitState",    "Transporting", "Local", FALSE
+      "ExtraFlag",    "ParadropFrom", "Local", TRUE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs    =
     { "type",        "name",             "range", "present"
@@ -1492,6 +1748,26 @@ actor_reqs    =
       "DiplRel",      "War",          "Local", TRUE
       "UnitClassFlag","CanOccupyCity","Local", TRUE
       "UnitFlag",     "NonMil",       "Local", FALSE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs    =
+    { "type",        "name",             "range", "present"
+      "CityTile",    "Claimed",          "Local", TRUE
+    }
+
+[actionenabler_paradrop_veteran_base_to_war_conquer_despite_treuga_dei]
+action = "Paradrop Unit Enter Conquer"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "UnitFlag",     "Paratroopers", "Local", TRUE
+      "MinMoveFrags", "6",            "Local", TRUE
+      "UnitState",    "Transporting", "Local", FALSE
+      "MinVeteran",    1,             "Local", TRUE
+      "ExtraFlag",    "ParadropFrom", "Local", TRUE
+      "DiplRel",      "War",          "Local", TRUE
+      "UnitClassFlag","CanOccupyCity","Local", TRUE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs    =
     { "type",        "name",             "range", "present"
@@ -1507,6 +1783,25 @@ actor_reqs    =
       "UnitState",    "Transporting", "Local", FALSE
       "MinVeteran",    1,             "Local", TRUE
       "ExtraFlag",    "ParadropFrom", "Local", TRUE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs   =
+    { "type",     "name",    "range", "present"
+      "CityTile", "Claimed", "Local", FALSE
+      "CityTile", "Center",  "Local", FALSE
+      "Extra",    "Castle",  "Local", TRUE
+    }
+
+[actionenabler_paradrop_veteran_base_to_unclaimed_base_despite_treuga_dei]
+action = "Paradrop Unit Enter Conquer"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "UnitFlag",     "Paratroopers", "Local", TRUE
+      "MinMoveFrags", "6",            "Local", TRUE
+      "UnitState",    "Transporting", "Local", FALSE
+      "MinVeteran",    1,             "Local", TRUE
+      "ExtraFlag",    "ParadropFrom", "Local", TRUE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs   =
     { "type",     "name",    "range", "present"
@@ -1559,6 +1854,26 @@ actor_reqs    =
       "DiplRel",      "War",          "Local", TRUE
       "UnitClassFlag","CanOccupyCity","Local", TRUE
       "UnitFlag",     "NonMil",       "Local", FALSE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs    =
+    { "type",        "name",             "range", "present"
+      "CityTile",    "Claimed",          "Local", TRUE
+      "TerrainFlag", "DifficultLanding", "Local", FALSE
+    }
+
+[actionenabler_paradrop_city_to_war_conquer_not_forest_despite_treuga_dei]
+action = "Paradrop Unit Enter Conquer"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "UnitFlag",     "Paratroopers", "Local", TRUE
+      "MinMoveFrags", "6",            "Local", TRUE
+      "UnitState",    "Transporting", "Local", FALSE
+      "CityTile",     "Center",       "Local", TRUE
+      "DiplRel",      "War",          "Local", TRUE
+      "UnitClassFlag","CanOccupyCity","Local", TRUE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs    =
     { "type",        "name",             "range", "present"
@@ -1574,6 +1889,25 @@ actor_reqs    =
       "MinMoveFrags", "6",            "Local", TRUE
       "UnitState",    "Transporting", "Local", FALSE
       "CityTile",     "Center",       "Local", TRUE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs    =
+    { "type",        "name",             "range", "present"
+      "CityTile",    "Claimed",          "Local", FALSE
+      "TerrainFlag", "DifficultLanding", "Local", FALSE
+      "CityTile",    "Center",           "Local", FALSE
+      "Extra",       "Castle",           "Local", TRUE
+    }
+
+[actionenabler_paradrop_city_to_unclaimed_base_not_forest_despite_treuga_dei]
+action = "Paradrop Unit Enter Conquer"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "UnitFlag",     "Paratroopers", "Local", TRUE
+      "MinMoveFrags", "6",            "Local", TRUE
+      "UnitState",    "Transporting", "Local", FALSE
+      "CityTile",     "Center",       "Local", TRUE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs    =
     { "type",        "name",             "range", "present"
@@ -1628,6 +1962,26 @@ actor_reqs    =
       "DiplRel",      "War",          "Local", TRUE
       "UnitClassFlag","CanOccupyCity","Local", TRUE
       "UnitFlag",     "NonMil",       "Local", FALSE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs   =
+    { "type",     "name",    "range", "present"
+      "CityTile", "Claimed", "Local", TRUE
+    }
+
+[actionenabler_paradrop_veteran_city_to_war_conquer_despite_treuga_dei]
+action = "Paradrop Unit Enter Conquer"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "UnitFlag",     "Paratroopers", "Local", TRUE
+      "MinMoveFrags", "6",            "Local", TRUE
+      "UnitState",    "Transporting", "Local", FALSE
+      "MinVeteran",   1,              "Local", TRUE
+      "CityTile",     "Center",       "Local", TRUE
+      "DiplRel",      "War",          "Local", TRUE
+      "UnitClassFlag","CanOccupyCity","Local", TRUE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs   =
     { "type",     "name",    "range", "present"
@@ -1643,6 +1997,25 @@ actor_reqs    =
       "UnitState",    "Transporting", "Local", FALSE
       "MinVeteran",   1,              "Local", TRUE
       "CityTile",     "Center",       "Local", TRUE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs   =
+    { "type",     "name",    "range", "present"
+      "CityTile", "Claimed", "Local", FALSE
+      "CityTile", "Center",  "Local", FALSE
+      "Extra",    "Castle",  "Local", TRUE
+    }
+
+[actionenabler_paradrop_veteran_city_to_unclaimed_base_despite_treuga_dei]
+action = "Paradrop Unit Enter Conquer"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "UnitFlag",     "Paratroopers", "Local", TRUE
+      "MinMoveFrags", "6",            "Local", TRUE
+      "UnitState",    "Transporting", "Local", FALSE
+      "MinVeteran",   1,              "Local", TRUE
+      "CityTile",     "Center",       "Local", TRUE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs   =
     { "type",     "name",    "range", "present"
@@ -1815,6 +2188,21 @@ actor_reqs    =
       "DiplRel",      "Team",         "Local", FALSE
       "UnitFlag",     "NonMil",       "Local", FALSE
       "UnitState",    "OnNativeTile", "Local", TRUE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+
+[actionenabler_claim_extra_foreign_from_native_tile_despite_treuga_dei]
+action        = "Conquer Extras"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "MinMoveFrags", "1",            "Local", TRUE
+      "DiplRel",      "Foreign",      "Local", TRUE
+      "DiplRel",      "Peace",        "Local", FALSE
+      "DiplRel",      "Alliance",     "Local", FALSE
+      "DiplRel",      "Team",         "Local", FALSE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "UnitState",    "OnNativeTile", "Local", TRUE
+      "Tech",         "Communism",    "World", TRUE
     }
 
 [actionenabler_claim_extra_foreign_from_native_city]
@@ -1828,6 +2216,21 @@ actor_reqs    =
       "DiplRel",      "Team",       "Local", FALSE
       "UnitFlag",     "NonMil",     "Local", FALSE
       "CityTile",     "Center",     "Local", TRUE
+      "Building",     "Treuga Dei", "World", FALSE
+    }
+
+[actionenabler_claim_extra_foreign_from_native_city_despite_treuga_dei]
+action        = "Conquer Extras"
+actor_reqs    =
+    { "type",         "name",       "range", "present"
+      "MinMoveFrags", "1",          "Local", TRUE
+      "DiplRel",      "Foreign",    "Local", TRUE
+      "DiplRel",      "Peace",      "Local", FALSE
+      "DiplRel",      "Alliance",   "Local", FALSE
+      "DiplRel",      "Team",       "Local", FALSE
+      "UnitFlag",     "NonMil",     "Local", FALSE
+      "CityTile",     "Center",     "Local", TRUE
+      "Tech",         "Communism",  "World", TRUE
     }
 
 [actionenabler_claim_extra_foreign_from_non_native]
@@ -1842,6 +2245,22 @@ actor_reqs    =
       "UnitFlag",     "NonMil",       "Local", FALSE
       "UnitState",    "OnNativeTile", "Local", FALSE
       "CityTile",     "Center",       "Local", FALSE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+
+[actionenabler_claim_extra_foreign_from_non_native_despite_treuga_dei]
+action        = "Conquer Extras 2"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "MinMoveFrags", "1",            "Local", TRUE
+      "DiplRel",      "Foreign",      "Local", TRUE
+      "DiplRel",      "Peace",        "Local", FALSE
+      "DiplRel",      "Alliance",     "Local", FALSE
+      "DiplRel",      "Team",         "Local", FALSE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "UnitState",    "OnNativeTile", "Local", FALSE
+      "CityTile",     "Center",       "Local", FALSE
+      "Tech",         "Communism",    "World", TRUE
     }
 
 [actionenabler_claim_extra_unowned_from_native_tile]
@@ -1851,6 +2270,21 @@ actor_reqs    =
       "MinMoveFrags", "1",            "Local", TRUE
       "UnitFlag",     "NonMil",       "Local", FALSE
       "UnitState",    "OnNativeTile", "Local", TRUE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs    =
+    { "type",         "name",         "range", "present"
+      "CityTile",     "Extras Owned", "Local", FALSE
+    }
+
+[actionenabler_claim_extra_unowned_from_native_tile_despite_treuga_dei]
+action        = "Conquer Extras"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "MinMoveFrags", "1",            "Local", TRUE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "UnitState",    "OnNativeTile", "Local", TRUE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs    =
     { "type",         "name",         "range", "present"
@@ -1864,6 +2298,21 @@ actor_reqs    =
       "MinMoveFrags", "1",            "Local", TRUE
       "UnitFlag",     "NonMil",       "Local", FALSE
       "CityTile",     "Center",       "Local", TRUE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs    =
+    { "type",         "name",         "range", "present"
+      "CityTile",     "Extras Owned", "Local", FALSE
+    }
+
+[actionenabler_claim_extra_unowned_from_native_city_despite_treuga_dei]
+action        = "Conquer Extras"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "MinMoveFrags", "1",            "Local", TRUE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "CityTile",     "Center",       "Local", TRUE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs    =
     { "type",         "name",         "range", "present"
@@ -1878,6 +2327,22 @@ actor_reqs    =
       "UnitFlag",     "NonMil",       "Local", FALSE
       "UnitState",    "OnNativeTile", "Local", FALSE
       "CityTile",     "Center",       "Local", FALSE
+      "Building",     "Treuga Dei",   "World", FALSE
+    }
+target_reqs    =
+    { "type",         "name",         "range", "present"
+      "CityTile",     "Extras Owned", "Local", FALSE
+    }
+
+[actionenabler_claim_extra_unowned_from_non_native_despite_treuga_dei]
+action        = "Conquer Extras 2"
+actor_reqs    =
+    { "type",         "name",         "range", "present"
+      "MinMoveFrags", "1",            "Local", TRUE
+      "UnitFlag",     "NonMil",       "Local", FALSE
+      "UnitState",    "OnNativeTile", "Local", FALSE
+      "CityTile",     "Center",       "Local", FALSE
+      "Tech",         "Communism",    "World", TRUE
     }
 target_reqs    =
     { "type",         "name",         "range", "present"
-- 
2.20.1