Announcement

Collapse
No announcement yet.

Settlers later on in the game

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Settlers later on in the game

    I've started this as a new thread as the topic of settlers being replaced by engineers or building larger cities etc. etc. seems to be occuring across a number of threads and I wasn't sure where best to continue

    I really like the idea of modern day engineer building a larger city complete with defensive unit(s) and various improvements (granary, temple, city walls etc.) This unit would naturally cost more than the settler, but would it necessarily need to obselete it? Although there would be little point in building settlers if engineers were available, the engineer's building cost could simply be the sum of the various improvements costs'. You would then be faced with the choice of whether to sacrifice a few turns to build this super-settler (and accompanying unit - you definitely wouldn't let it go out alone, would you ), or simply do it the old fashioned way and let him fend for himself when he gets wherever he's going.

    It's sort of an Australia/US settlement comparison. Offload the settler on his own and see if he survives, or send out (in effect) a group to colonise a new area (pilgrims in thw new world...?).

    Anyway, I've started to ramble now so I'd best stop myself...!

    Dan

    ------------------
    Just a thought......

    Just a thought......

  • #2
    What I am thinking of doing, is having the settler cost depend upon the current advances when construction begins.
    The garrison unit created will depend upon the advances discovered when the city is founded.
    This will allow a window for civs to pay for one unit, but receive a later one by the time the city is founded. However, I think that this will even itself out, since this window will apply to all civs. Human players could try to maximize this advantage, but hey, if you're going to cheat, there are much more effective ways of doing it than this.

    Comment


    • #3
      DanMc,

      There's one problem with your idea of newer settler-units. Unfortunately it is probably not possible to buid city-improvements with SLIC, so you can't create settlers/engineers that do that. This is why I think the way Wes is handling things is the best possible solution, although I'm still working on a trigger that replaces settlers with newer versions in case anyone is still interested (it could with slight adjustments be used to upgrade any ohter unit as well, once it works).

      WesW,

      Okay, I completed the Garrison-trigger. It's works correctly now: it creates a garrison-unit in all six ages. Note that a two different garrison-units are needed when space-cities get available: the second unit is meant especially for space-cities, because it would otherwise be possible to launch the garrison-units on earth into space, which I think is not very elegant (there's allways someone - human or AI - who will do just that if it's possible). Also, because I don't know what your tech tree looks/will look like and what units and advances you want to use, I sort of guessed what you might want. This can of course easily be changed.

      Well, here is:

      Code:
      TypeUnit newunit;
      
      trigger 'Garrison' when (city.built) {
      	if (HasAdvance(g.player, ID_ADVANCE_SPACE_COLONIES) ) {
      		if (IsUnderseaCity(city) | | TerrainType(city.location) != 13) {
      			if (IsUnderseaCity(city) ) {
      				AddPops(city, 2);
      			}
      			CreateUnit(g.player, UnitType("UNIT_SPACE_MARINES_GARRISON"), city.location, 0, newunit);
      			AddMovement(newunit, 1);
      			SetOrder(1, 4);
      			AddOrder(newunit, city.location);
      		} else {                     // In case of a space city 
      			AddPops(city, 2);
      			CreateUnit(g.player, UnitType("UNIT_SPACE_MARINES_SPACE_GARRISON"), city.location, 0, newunit);
      			AddMovement(newunit, 2);
      			SetOrder(1, 15);
      			AddOrder(newunit, city.location);
      			SetOrder(1, 4);
      			AddOrder(newunit, city.location);
      		}
      	} elseIf (HasAdvance(g.player, ID_ADVANCE_ROBOTICS) ) {
      		if (IsUnderseaCity(city) | | TerrainType(city.location) != 13) {
      			if (IsUnderseaCity(city) ) {
      				AddPops(city, 2);
      			}
      			CreateUnit(g.player, UnitType("UNIT_BATTLEBOT_GARRISON"), city.location, 0, newunit);
      			AddMovement(newunit, 1);
      			SetOrder(1, 4);
      			AddOrder(newunit, city.location);
      		} else {                     // In case of a space city - i.e. Space Ladder
      			AddPops(city, 2);
      			CreateUnit(g.player, UnitType("UNTI_BATTLEBOT_SPACE_GARRISON"), city.location, 0, newunit);
      			AddMovement(newunit, 2);
      			SetOrder(1, 15);
      			AddOrder(newunit, city.location);
      			SetOrder(1, 4);
      			AddOrder(newunit, city.location);
      		}
      	} elseIf (HasAdvance(g.player, ID_ADVANCE_EXPLOSIVES) ) {
      		CreateUnit(g.player, UnitType("UNIT_MACHINE_GUNNER_GARRISON"), city.location, 0, newunit);
      		AddMovement(newunit, 1);
      		SetOrder(1, 4);
      		AddOrder(newunit, city.location);
      	} elseIf (HasAdvance(g.player, ID_ADVANCE_GUNPOWDER) ) {
      		CreateUnit(g.player, UnitType("UNIT_MUSKETEERS_GARRISON"), city.location, 0, newunit);
      		AddMovement(newunit, 1);
      		SetOrder(1, 4);
      		AddOrder(newunit, city.location);
      	} elseIf (HasAdvance(g.player, ID_ADVANCE_AGRICULTURAL_REVOLUTION) ) {
      		CreateUnit(g.player, UnitType("UNIT_PIKEMEN_GARRISON"), city.location, 0, newunit);
      		AddMovement(newunit, 1);
      		SetOrder(1, 4);
      		AddOrder(newunit, city.location);
      	} else {                                 //  or should it be: } elseIf (HasAdvance(g.player, ID_ADVANCE_BRONZE_WORKING) ) {
      		CreateUnit(g.player, UnitType("UNIT_HOPLITE_GARRISON"), city.location, 0, newunit);
      		AddMovement(newunit, 1);
      		SetOrder(1, 4);
      		AddOrder(newunit, city.location);
      //	or should it be: 
      //      else {
      //		CreateUnit(g.player, UnitType("UNIT_WARRIOR_GARRISON"), city.location, 0, newunit);
      //		AddMovement(newunit, 1);
      //		SetOrder(1, 4);
      //		AddOrder(newunit, city.location);
      	}
      }
      That's it for now,

      Update: Wes, please ignore this one, see the other settlers-thread ("SLIC and Obsolete Units")

      Locutus
      [This message has been edited by Locutus (edited January 04, 2000).]
      Administrator of WePlayCiv -- Civ5 Info Centre | Forum | Gallery

      Comment

      Working...
      X