#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