Author: sveinung Date: Wed Oct 7 14:52:45 2015 New Revision: 30025 URL: http://svn.gna.org/viewcvs/freeciv?rev=30025&view=rev Log: Stricter move as tile action heuristics
A move can be interpreted as an attempt at doing an action. The player is then showed the action selection dialog where he can choose an action, cancel or keep moving. Be more conservative about when a potentially legal action against a tile will pop up the action selection dialog. It used to pop up if another target kind existed at the tile. Add the restriction that the actor unit must be unable to move to the target tile. See patch #6392 Modified: trunk/server/unithand.c Modified: trunk/server/unithand.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/unithand.c?rev=30025&r1=30024&r2=30025&view=diff ============================================================================== --- trunk/server/unithand.c (original) +++ trunk/server/unithand.c Wed Oct 7 14:52:45 2015 @@ -2931,12 +2931,24 @@ * targeted it otherwise. */ if (tcity || tunit || may_unit_act_vs_tile_units(punit, pdesttile) - /* Pop up the action selection dialog even if the tile target is - * the only target that, from the point of view of the player, - * may be acted against. This is to avoid confusion for players - * that don't remember the rules or aren't looking at the data - * the rules depend on. */ - || may_unit_act_vs_tile(punit, pdesttile)) { + /* If the tile target is the only target that, from the point of + * view of the player, may be acted against the action selection + * dialog will only pop up when the actor can't move to the target + * tile. + * + * The goal is to minimize confusion and annoyance. Getting a pop + * up every time a unit moves is annoying. Not getting the action + * selection dialog when expected is confusing. So is having the + * actions selection dialog pop up when it is unexpected. The + * last case can lead the player to perform the wrong action by + * reflex. Example: Offered to nuke his own units rather than + * moving to their tile. + * + * The confusion isn't limited to new players. An experienced + * player can forget a rule or accidentally ignore a piece of + * relevant data he has access to. */ + || (may_unit_act_vs_tile(punit, pdesttile) + && !unit_can_move_to_tile(punit, pdesttile, igzoc))) { if (pplayer->ai_controlled) { return FALSE; } _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits