Sub-ticket of #42501. Veteranship editing is noted under #42666 and just doubled here. Unit editing API should include methods:
int :add_mf(int value) -- adds movement fragments, returns resulting fragments left that can't be below 0 (any upper cap?)
int :add_mp(int value) -- wrapper over :add_mf(SINGLE_MOVE * value) / SINGLE_MOVE
int :add_fuel(int value) -- clipped by 0 and unit type's full fuel
void :set_moved(bool moved) -- will this unit be considered unmoved
void :set_done_moving(bool done_moving) -- used in the client and maybe somewhere by AI, don't understand good but edithand.c changes it
int :set_hp(int value) -- sets unit hitpoints and returns resulted health that is clipped from 1 (does not kill the unit) to unit type hp
int :promote(int levels) -- gives levels veteran levels, returns resulting veteranship that is clipped by the unit's veteran system (also needed in #42666)
void :set_stay(bool stay)
We should make game.SINGLE_MOVE ruleset constant accessible. Common unit API should include:
int .veteran
string .veteran_name -- calculated property
int .mf_left -- moves_left in fragments
float .mp_left -- calculated property
int .hp
bool .moved, .done_moving, .stay
Also, Unit_Type API should include:
int .veteran_max
string :veteran_name(int veteran)
for better control, also int :veteran_mf_bonus(int veteran) fragments and :veteran_power_fact(int veteran) percents
At server (as that is not sent to clients), unit type API should also for better control have :veteran_raise_chance(int veteran) and :veteran_work_raise_chance(int veteran). Method for a unit combat veteranship should also be defined, the prototype depends on willl anything be done in HRM 804347 or not.
Sub-ticket of #42501. Veteranship editing is noted under #42666 and just doubled here. Unit editing API should include methods:
We should make game.SINGLE_MOVE ruleset constant accessible. Common unit API should include:
Also, Unit_Type API should include:
At server (as that is not sent to clients), unit type API should also for better control have :veteran_raise_chance(int veteran) and :veteran_work_raise_chance(int veteran). Method for a unit combat veteranship should also be defined, the prototype depends on willl anything be done in HRM 804347 or not.