[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:
    https://osdn.net//projects/freeciv/ticket/42682
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=42682

---------------------------------------------------------------------

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:
    https://osdn.net/projects/freeciv/ticket/42682
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=42682



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