Author: sveinung Date: Fri Jun 10 12:25:35 2016 New Revision: 32819 URL: http://svn.gna.org/viewcvs/freeciv?rev=32819&view=rev Log: Hard code domestic target via ruleset adjustment.
The rule that certain actions must have a domestic target can be expressed in a requirement vector. Putting it there makes it visible to code that gets its information from requirement vectors. Move the hard coding of the rule that "Upgrade Unit" must have a foreign target to autoadjust_ruleset_data(). Add it to the bundled rulesets. See patch #7254 Modified: trunk/data/alien/game.ruleset trunk/data/civ1/game.ruleset trunk/data/civ2/game.ruleset trunk/data/civ2civ3/game.ruleset trunk/data/classic/game.ruleset trunk/data/experimental/game.ruleset trunk/data/multiplayer/game.ruleset trunk/data/sandbox/game.ruleset trunk/fc_version trunk/server/rssanity.c Modified: trunk/data/alien/game.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/alien/game.ruleset?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/data/alien/game.ruleset (original) +++ trunk/data/alien/game.ruleset Fri Jun 10 12:25:35 2016 @@ -503,6 +503,10 @@ [actionenabler_upgrade_unit] action = "Upgrade Unit" +actor_reqs = + { "type", "name", "range", "present" + "DiplRel", "Is foreign", "Local", FALSE + } [actionenabler_airlift_unit] action = "Airlift Unit" Modified: trunk/data/civ1/game.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/civ1/game.ruleset?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/data/civ1/game.ruleset (original) +++ trunk/data/civ1/game.ruleset Fri Jun 10 12:25:35 2016 @@ -453,6 +453,10 @@ [actionenabler_upgrade_unit] action = "Upgrade Unit" +actor_reqs = + { "type", "name", "range", "present" + "DiplRel", "Is foreign", "Local", FALSE + } [actionenabler_airlift_unit] action = "Airlift Unit" Modified: trunk/data/civ2/game.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/civ2/game.ruleset?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/data/civ2/game.ruleset (original) +++ trunk/data/civ2/game.ruleset Fri Jun 10 12:25:35 2016 @@ -553,6 +553,10 @@ [actionenabler_upgrade_unit] action = "Upgrade Unit" +actor_reqs = + { "type", "name", "range", "present" + "DiplRel", "Is foreign", "Local", FALSE + } [actionenabler_airlift_unit] action = "Airlift Unit" Modified: trunk/data/civ2civ3/game.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/civ2civ3/game.ruleset?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/data/civ2civ3/game.ruleset (original) +++ trunk/data/civ2civ3/game.ruleset Fri Jun 10 12:25:35 2016 @@ -592,6 +592,10 @@ [actionenabler_upgrade_unit] action = "Upgrade Unit" +actor_reqs = + { "type", "name", "range", "present" + "DiplRel", "Is foreign", "Local", FALSE + } [actionenabler_airlift_unit] action = "Airlift Unit" Modified: trunk/data/classic/game.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/classic/game.ruleset?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/data/classic/game.ruleset (original) +++ trunk/data/classic/game.ruleset Fri Jun 10 12:25:35 2016 @@ -557,6 +557,10 @@ [actionenabler_upgrade_unit] action = "Upgrade Unit" +actor_reqs = + { "type", "name", "range", "present" + "DiplRel", "Is foreign", "Local", FALSE + } [actionenabler_airlift_unit] action = "Airlift Unit" Modified: trunk/data/experimental/game.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/experimental/game.ruleset?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/data/experimental/game.ruleset (original) +++ trunk/data/experimental/game.ruleset Fri Jun 10 12:25:35 2016 @@ -573,6 +573,10 @@ [actionenabler_upgrade_unit] action = "Upgrade Unit" +actor_reqs = + { "type", "name", "range", "present" + "DiplRel", "Is foreign", "Local", FALSE + } [actionenabler_airlift_unit] action = "Airlift Unit" Modified: trunk/data/multiplayer/game.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/multiplayer/game.ruleset?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/data/multiplayer/game.ruleset (original) +++ trunk/data/multiplayer/game.ruleset Fri Jun 10 12:25:35 2016 @@ -540,6 +540,10 @@ [actionenabler_upgrade_unit] action = "Upgrade Unit" +actor_reqs = + { "type", "name", "range", "present" + "DiplRel", "Is foreign", "Local", FALSE + } [actionenabler_airlift_unit] action = "Airlift Unit" Modified: trunk/data/sandbox/game.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/sandbox/game.ruleset?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/data/sandbox/game.ruleset (original) +++ trunk/data/sandbox/game.ruleset Fri Jun 10 12:25:35 2016 @@ -718,6 +718,10 @@ [actionenabler_upgrade_unit] action = "Upgrade Unit" +actor_reqs = + { "type", "name", "range", "present" + "DiplRel", "Is foreign", "Local", FALSE + } [actionenabler_airlift_light_unit] action = "Airlift Unit" Modified: trunk/fc_version URL: http://svn.gna.org/viewcvs/freeciv/trunk/fc_version?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/fc_version (original) +++ trunk/fc_version Fri Jun 10 12:25:35 2016 @@ -56,7 +56,7 @@ # - Avoid adding a new mandatory capability to the development branch for # as long as possible. We want to maintain network compatibility with # the stable branch for as long as possible. -NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2016.Jun.08" +NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2016.Jun.10" NETWORK_CAPSTRING_OPTIONAL="" FREECIV_DISTRIBUTOR="" Modified: trunk/server/rssanity.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/rssanity.c?rev=32819&r1=32818&r2=32819&view=diff ============================================================================== --- trunk/server/rssanity.c (original) +++ trunk/server/rssanity.c Fri Jun 10 12:25:35 2016 @@ -1139,6 +1139,22 @@ requirement_vector_append(&enabler->actor_reqs, req); } } + + if (action == ACTION_UPGRADE_UNIT) { + /* Why this is a hard requirement: Keep the old rules. Need to work + * out corner cases. */ + + struct requirement req + = req_from_values(VUT_DIPLREL, REQ_RANGE_LOCAL, + FALSE, FALSE, TRUE, DRO_FOREIGN); + + if (!is_req_in_vec(&req, &enabler->actor_reqs)) { + log_debug("Autorequiring that %s has a domestic target.", + action_get_rule_name(action)); + + requirement_vector_append(&enabler->actor_reqs, req); + } + } } action_enablers_iterate_end; return ok; _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits