Wed 11 Jul 2012 01:02:15 AM UTC, original submission:
I just moved a boat into a size 1 city, using all its movement points, and then the next turn, the city was disbanded due to migration. I lost the boat! Messages:
- This unit has no moves left.
- This unit has no moves left.
- When Salzburg was disbanded your Ironclad could not get out, and it was therefore lost.
I felt rather aggrieved by this (it was elite), but I'm not sure if I should just take it.
If so, the messages need clearing up -- the "no moves left" message appears twice because unit_move_handling() is called for every adjacent ocean tile (here there were two) and emits this each time. The message doesn't make sense when it's not a user's direct action that caused the move.
But perhaps we should have an "emergency" mode for unit_move_handling() ignoring moves left and other things like ZOC, unitwaittime, etc that I think the current code falls foul of.
Or we could just use bounce_unit(), or do something like bounce_units_on_terrain_change() does. (Perhaps all these special cases should be unified?)
While I suspect remove_city() hasn't changed forever, I guess the forced-city-disband situation is new with migration -- previously, I think the only time a city could disappear with units still in it would be build-settler-at-size-1, where the player could be expected to plan for this?
|