Summary: Don't use UMT_SEA to assign unknown_MC cost
                 Project: Freeciv
            Submitted by: persia
            Submitted on: Wed 08 May 2013 08:38:14 PM JST
                Category: ai
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: 



    From what I can glean from incomplete archives of discussion surrounding
PR #6977 preceeding SVN revision 10719, the rationale behind the code that led
to the comment "Sailing units explore less" in pf_tools.c is that units that
don't respect terrain speed should have unknown_MC larger than their normal
move because they might try to go somewhere they can't go, so UMT_SEA units
should have unknown_MC of 2*SINGLE_MOVE and UMT_BOTH units should have
unknown_MC of SINGLE_MOVE.  This represents an assumption that all sailing
units are !UCF_TERRAIN_SPEED and an assumption that all UMT_BOTH units have
unrestricted nativity.

    The attached patch addresses those assumptions by iterating through the
terrains for the !UCF_TERRAIN_SPEED case, and only setting unknown_MC to
2*SINGLE_MOVE in the event some terrain is not native.  For classical units,
this represents no difference.  Specific differences for other units are:

1) UCF_TERRAIN_SPEED units that are UMT_SEA now are charged 2 * movement_cost
for the most awkward native terrain, rather than 2 * SINGLE_MOVE. 

2) units that are neither UCF_TERRAIN_SPEED nor UMT_SEA are now charged 2 *
SINGLE_MOVE if there exist any terrains not native to the unit, rather than

    In both cases, the value of unknown_MC should be larger than before, so
non-classical units with additional restrictions (e.g. seagoing units that
respect terrain speed or amphibious non-mountaineering units) may be less
likely to plot paths through unknown terrain.

    As mentioned in the original discussion, it might make sense to set values
for unknown_MC based on unit class *once*, and use these cached values when
constructing pathfinding maps, rather than recalculating the value every time
a parameter is defined.  These may even be interesting to ruleset authors, who
might want to express something like "Merchant units never find paths through
unknown tiles" or "Intercontinental Missiles care nothing about the underlying
surface".  That said, implementation of these is well beyond the scope of the
current patch.


File Attachments:

Date: Wed 08 May 2013 08:38:14 PM JST  Name: native-unknown_MC.patch  Size:
2kB   By: persia



Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to