Summary: "NoVeteran" flag: can never be veteran, or can't
gain it through combat?
Submitted by: jtn
Submitted on: Tue 10 Jun 2014 10:17:14 BST
Severity: 3 - Normal
Priority: 5 - Normal
Assigned to: None
Discussion Lock: Any
Operating System: Any
UTYF_NO_VETERAN is only really checked when a unit could potentially gain a
veteran level: maybe_become_veteran_real(), transform_unit(), etc. In lots of
other places a NoVeteran unit type is treated as subject to bonuses, if it
ever manages to gain a veteran level.
Is it meant to be an invariant that no unit can ever exist with veteran
levels, or a more restricted flag that units can't get veterancy through
combat, but maybe can through being built that way (do_make_unit_veteran()
doesn't check) or other special routes.
The code's a bit inconsistent about its meaning at the moment. In particular,
the help text (which I wrote) assumes the 'invariant' interpretation, but now
I look at most of the implementation it supports the 'combat' one. (As do our
current rulesets, e.g. explicit NoVeteran check in Barracks.)
I'm thinking we should settle on the 'combat' one, as the other one could be
simulated with a custom veteran system; and that I should fix the help and
anything else to fit.
(If we _did_ want the 'invariant' interpretation, the easiest fix might be to
cause NoVeteran to give the unit a hardcoded veteran_system with no levels, or
Reply to this item at:
Message sent via/by Gna!
Freeciv-dev mailing list