<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40570 >

> [EMAIL PROTECTED] - Fri Nov 21 07:07:26 2008]:
> Your no_fights appoach is nice but insufficent.
> 1) it doesn't work for non_allied_unit_tiles that have only allied 
> units on them

I may be mistaken but, do you mean that the explorer can
move to a tile in territory it cannot enter (by peace
treaty) if there are allied units on that tile (and
presumably the owner of those units is allowed to enter
that territory)?

As far as I know, allied units cannot be used in this way
to sneak past borders (but a demonstrating savegame would
convince me).

> 2) fails for units that ignore controll zones (e.g. Diplomats)

This confuses me, since zones of control (zoc) do not have
anything to do with allowing units to enter a territory. 
Rather, they prevent non-ally units from moving into tiles
in each others' zones of control (to summarise crudely).

Maybe what you mean is that non-military units (unit flag
"NonMil") can enter peaceful territory, while military units
cannot? So a unit with the non-military flag set to explore
should consider peaceful territory allowed for the purpose
of exploration?

Well, if the unit is a diplomat or spy, the other player
could interpret the move as some kind of provocation, since
they cannot see the 'X' showing that the unit is just there
to explore.

So I'm not sure that allowing the explorer AI to do that is
such a good idea. I guess it is debatable, and I would
accept a patch that has this behaviour.

> 3) explorer_desirable doesn't check no_fights
> 4) explorer_desirable fails to handle allied cities

Hmm, are you sure that explorer_desirable is called
on tiles for which no_fights returns TB_IGNORE? I mean
the tiles that are passed into explorer_desirable
are read from the path finding map which uses no_fights
already to prune away those tiles, it would seem to me.

Well, in any case perhaps best is to make a new tb function
structured specifically for explorers and put it in
common/aicore/pf_tools.c. This function should be used in
ai_fill_unit_param (instead of having to be set after the
call and clobbering the existing get_TB pointer), and also
in explorer_desirable (if indeed it is the case that it
considers tiles that might have to be ignored) so that the
checking code is not duplicated in more than one place.


Freeciv-dev mailing list

Reply via email to