Follow-up Comment #8, bug #21882 (project wesnoth):

*First some thoughts:*
A) there is a function check_victory() that checks the default victory
conditions. The default victory conditions are "at least one unit with
canrecruit=yes must be present and the turn limit must not be overpassed"(?)
B) there is a mechanism that prevents all units are killed is required, since
it could cause a bug

I don't understand why A) and B) are mixed together: IMO these points should
have nothing common and should be independent. Mixing independent stuff is a
way how to get bugs.
A) should not be called at the end of every single synced_context
B) should not end the scenario directly, but raise some kind of an exception
first (a special event, or show an error mesage ...)

B) is a problem, because it is natural: UMC creators want to kill all units
and to change the map environment.  

----
*Now my answers:*
>gfgtdf wrote:
>If you want controll more control over win/loose cou should use
fight_on_without_leader=yes.
iceiceice says even fight_on_without_leader=yes doesn't prevent the scenario
ends when all units are killed by WML/lua.

>gfgtdf wrote:
>Previously this only happend after actions of the ai. I changed that so that
it now also happens after actions by humans too, especialy becasue i think
that human moves should have the same effect as ai moves.
I agree that human and AI should have the same effect. But you should rather
remove the check after AI moves: the presence of leaders need to be checked in
'die' events only.

>iceiceice wrote:
>Dugi asked if we could change check_victory so that we also search the recall
list for leaders.
> ...
>Killing all the units is a fairly common thing to do in WML it seems, my
guess is that alot of UMC is affected so we might do something esp. if there
is a consensus about what the change should be. We could perhaps make a
lua-accessible flag to block the check victory function for example, I guess.

Yes, in order to make point A) more flexible, it would be nice if UMC creators
could suppress check_victory() by [modify_side] or lua.
But I don't see how it could be achieved since there is point B): an engine
condition that all units may be never killed, unless the scenario ends.
(Personally I think such an engine condition is unnatural and bad, killing all
units should be allowed and the possible bugs should be solved another way.)


    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?21882>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Wesnoth-bugs mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-bugs

Reply via email to