From 76e2b5fe72477a21af7a1a26426171ad26629e12 Mon Sep 17 00:00:00 2001 From: Marko Lindqvist Date: Sat, 22 Oct 2022 04:57:40 +0300 Subject: [PATCH 43/43] civ2civ3/sandbox: Disallow unhomed units from bribing Units gained that way are unhomed too, making it possible to get armies of units without upkeep. Give homeless diplomats ability to home themselves to gain the ability to bribe. Reported anonymously See osdn #45070 Signed-off-by: Marko Lindqvist --- data/civ2civ3/game.ruleset | 9 +++++++++ data/civ2civ3/units.ruleset | 2 +- data/sandbox/game.ruleset | 9 +++++++++ data/sandbox/units.ruleset | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/data/civ2civ3/game.ruleset b/data/civ2civ3/game.ruleset index 18b5e29ab6..8faf35f80f 100644 --- a/data/civ2civ3/game.ruleset +++ b/data/civ2civ3/game.ruleset @@ -943,6 +943,7 @@ action = "Bribe Unit" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Diplomat", "Local", TRUE + "UnitState", "HasHomeCity", "Local", TRUE "DiplRel", "Alliance", "Local", FALSE "DiplRel", "Team", "Local", FALSE "UnitState", "OnLivableTile", "Local", TRUE @@ -1211,6 +1212,14 @@ actor_reqs = "DiplRel", "Foreign", "Local", FALSE } +[actionenabler_change_home_city_diplo] +action = "Home City" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Diplomat", "Local", TRUE + "DiplRel", "Foreign", "Local", FALSE + } + [actionenabler_paradrop_base_to_claimed] action = "Paradrop Unit Enter" actor_reqs = diff --git a/data/civ2civ3/units.ruleset b/data/civ2civ3/units.ruleset index 82b26a17b5..93e1533ff5 100644 --- a/data/civ2civ3/units.ruleset +++ b/data/civ2civ3/units.ruleset @@ -2449,7 +2449,7 @@ If a foreign unit is alone on a tile, you may attempt to bribe it\ with your Diplomat. By paying a sum of gold the unit will immediately\ become yours; the exact sum depends on the status of the unit and\ that of the civilization owning it. Bribery when not at war will cause\ - a diplomatic incident.\ + a diplomatic incident. Homeless Diplomats cannot bribe units.\ "), _("\ Diplomats can also perform a number of actions in another player's\ city, although each Diplomat may attempt only one action. Most of\ diff --git a/data/sandbox/game.ruleset b/data/sandbox/game.ruleset index db5254507f..69ec1e6ce3 100644 --- a/data/sandbox/game.ruleset +++ b/data/sandbox/game.ruleset @@ -1269,6 +1269,7 @@ action = "Bribe Unit" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Diplomat", "Local", TRUE + "UnitState", "HasHomeCity", "Local", TRUE "DiplRel", "Alliance", "Local", FALSE "DiplRel", "Team", "Local", FALSE "UnitState", "OnLivableTile", "Local", TRUE @@ -1924,6 +1925,14 @@ actor_reqs = "DiplRel", "Foreign", "Local", FALSE } +[actionenabler_change_home_city_diplo] +action = "Home City" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Diplomat", "Local", TRUE + "DiplRel", "Foreign", "Local", FALSE + } + [actionenabler_no_home_city] action = "Unit Make Homeless" actor_reqs = diff --git a/data/sandbox/units.ruleset b/data/sandbox/units.ruleset index f03dcd4cce..7cef757f3e 100644 --- a/data/sandbox/units.ruleset +++ b/data/sandbox/units.ruleset @@ -2623,7 +2623,7 @@ If a foreign unit is alone on a tile, you may attempt to bribe it\ with your Diplomat. By paying a sum of gold the unit will immediately\ become yours; the exact sum depends on the status of the unit and\ that of the civilization owning it. Bribery when not at war will cause\ - a diplomatic incident.\ + a diplomatic incident. Homeless Diplomats cannot bribe units.\ "), _("\ Diplomats can also perform a number of actions in another player's\ city, although each Diplomat may attempt only one action. Most of\ -- 2.35.1