Author: sveinung
Date: Wed May 13 15:39:26 2015
New Revision: 29079

URL: http://svn.gna.org/viewcvs/freeciv?rev=29079&view=rev
Log:
Unhardcode the rule that a unit must have moves left to found a city.

See patch #6085

Modified:
    trunk/common/unit.c
    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/doc/README.actions
    trunk/fc_version
    trunk/server/rscompat.c

Modified: trunk/common/unit.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/common/unit.c?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/common/unit.c (original)
+++ trunk/common/unit.c Wed May 13 15:39:26 2015
@@ -395,7 +395,12 @@
     if (!is_build) {
       return UAB_NOT_BUILD_UNIT;
     }
-    if (punit->moves_left == 0) {
+    if (punit->moves_left == 0
+        /* TODO: Remove UAB_NO_MOVES_BUILD when doing so is safe. */
+        /* The ruleset may allow founding cities when out of move
+         * fragments. */
+        && !utype_may_act_move_frags(unit_type(punit),
+                                     ACTION_FOUND_CITY, 0)) {
       return UAB_NO_MOVES_BUILD;
     }
     switch (city_build_here_test(ptile, punit)) {

Modified: trunk/data/alien/game.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/alien/game.ruleset?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/data/alien/game.ruleset       (original)
+++ trunk/data/alien/game.ruleset       Wed May 13 15:39:26 2015
@@ -330,6 +330,7 @@
     { "type",   "name", "range"
       "Unitflag", "Cities", "Local"
       "UnitState", "OnLivableTile", "Local"
+      "MinMoveFrags", "1", "Local", TRUE
     }
 
 [actionenabler_join_city]

Modified: trunk/data/civ1/game.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/civ1/game.ruleset?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/data/civ1/game.ruleset        (original)
+++ trunk/data/civ1/game.ruleset        Wed May 13 15:39:26 2015
@@ -316,6 +316,7 @@
     { "type",   "name", "range"
       "Unitflag", "Cities", "Local"
       "UnitState", "OnLivableTile", "Local"
+      "MinMoveFrags", "1", "Local", TRUE
     }
 
 [actionenabler_join_city]

Modified: trunk/data/civ2/game.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/civ2/game.ruleset?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/data/civ2/game.ruleset        (original)
+++ trunk/data/civ2/game.ruleset        Wed May 13 15:39:26 2015
@@ -368,6 +368,7 @@
     { "type",   "name", "range"
       "Unitflag", "Cities", "Local"
       "UnitState", "OnLivableTile", "Local"
+      "MinMoveFrags", "1", "Local", TRUE
     }
 
 [actionenabler_join_city]

Modified: trunk/data/civ2civ3/game.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/civ2civ3/game.ruleset?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/data/civ2civ3/game.ruleset    (original)
+++ trunk/data/civ2civ3/game.ruleset    Wed May 13 15:39:26 2015
@@ -427,6 +427,7 @@
     { "type",   "name", "range"
       "Unitflag", "Cities", "Local"
       "UnitState", "OnLivableTile", "Local"
+      "MinMoveFrags", "1", "Local", TRUE
     }
 
 [actionenabler_join_city]

Modified: trunk/data/classic/game.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/classic/game.ruleset?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/data/classic/game.ruleset     (original)
+++ trunk/data/classic/game.ruleset     Wed May 13 15:39:26 2015
@@ -399,6 +399,7 @@
     { "type",   "name", "range"
       "Unitflag", "Cities", "Local"
       "UnitState", "OnLivableTile", "Local"
+      "MinMoveFrags", "1", "Local", TRUE
     }
 
 [actionenabler_join_city]

Modified: trunk/data/experimental/game.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/experimental/game.ruleset?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/data/experimental/game.ruleset        (original)
+++ trunk/data/experimental/game.ruleset        Wed May 13 15:39:26 2015
@@ -417,6 +417,7 @@
     { "type",   "name", "range"
       "Unitflag", "Cities", "Local"
       "UnitState", "OnLivableTile", "Local"
+      "MinMoveFrags", "1", "Local", TRUE
     }
 
 [actionenabler_join_city]

Modified: trunk/data/multiplayer/game.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/multiplayer/game.ruleset?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/data/multiplayer/game.ruleset (original)
+++ trunk/data/multiplayer/game.ruleset Wed May 13 15:39:26 2015
@@ -383,6 +383,7 @@
     { "type",   "name", "range"
       "Unitflag", "Cities", "Local"
       "UnitState", "OnLivableTile", "Local"
+      "MinMoveFrags", "1", "Local", TRUE
     }
 
 [actionenabler_join_city]

Modified: trunk/doc/README.actions
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/doc/README.actions?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/doc/README.actions    (original)
+++ trunk/doc/README.actions    Wed May 13 15:39:26 2015
@@ -234,7 +234,6 @@
  * city name must be legal
  * the scenario setting prevent_new_cities must be false.
  * actor must be on the same tile as the target.
- * actor must have movement left.
  * target must not have the NoCities terrain flag.
  * target must not be owned by a foreign player.
  * target must not be closer than citymindist to nearest city.

Modified: trunk/fc_version
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/fc_version?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/fc_version    (original)
+++ trunk/fc_version    Wed May 13 15:39:26 2015
@@ -54,7 +54,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-2015.May.13"
+NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2015.May.13b"
 NETWORK_CAPSTRING_OPTIONAL=""
 
 FREECIV_DISTRIBUTOR=""

Modified: trunk/server/rscompat.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/rscompat.c?rev=29079&r1=29078&r2=29079&view=diff
==============================================================================
--- trunk/server/rscompat.c     (original)
+++ trunk/server/rscompat.c     Wed May 13 15:39:26 2015
@@ -266,6 +266,11 @@
                               req_from_str("UnitState", "Local", FALSE,
                                            TRUE, "OnLivableTile"));
 
+    /* The actor unit must have moves left. */
+    requirement_vector_append(&enabler->actor_reqs,
+                              req_from_str("MinMoveFrags", "Local", FALSE,
+                                           TRUE, "1"));
+
     action_enabler_add(enabler);
 
     /* City joining is now action enabler controlled. Add the old rule


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to