[Freeciv-tickets] [freeciv] #42682: Lua: basic unit editing API

Back to archive index
OSDN Ticket System norep****@osdn*****
Sat Jul 31 01:24:22 JST 2021

#42682: Lua: basic unit editing API

  Open Date: 2021-07-30 19:24
Last Update: 2021-07-30 19:24

URL for this Ticket:
RSS feed for this Ticket:


Last Changes/Comment on this Ticket:
2021-07-30 19:24 Updated by: ihnatus
 * New Ticket "Lua: basic unit editing API" created

Ticket Status:

      Reporter: ihnatus
         Owner: (None)
          Type: Feature Requests
        Status: Open
      Priority: 5 - Medium
     MileStone: S3_1 d3f
     Component: General
      Severity: 5 - Medium
    Resolution: None

Ticket details:

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.

Ticket information of Freeciv project
Freeciv Project is hosted on OSDN

Project URL: https://osdn.net/projects/freeciv/
OSDN: https://osdn.net

URL for this Ticket:
RSS feed for this Ticket:

More information about the Freeciv-tickets mailing list
Back to archive index