[Freeciv-tickets] [freeciv] #42659: Unhardcode autoupgrade

Back to archive index
OSDN Ticket System norep****@osdn*****
Fri Jul 23 08:19:25 JST 2021


#42659: Unhardcode autoupgrade

  Open Date: 2021-07-23 02:19
Last Update: 2021-07-23 02:19

URL for this Ticket:
    https://osdn.net//projects/freeciv/ticket/42659
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=42659

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

Last Changes/Comment on this Ticket:
2021-07-23 02:19 Updated by: ihnatus
 * New Ticket "Unhardcode autoupgrade" created


---------------------------------------------------------------------
Ticket Status:

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

Ticket details:

Autoupgrade (Leonardo effect) is a gimmick bonus, like hut findings, but it is now hardcoded. The result is, we can't have any good way for adding flexibility to it (e.g., upgrade only units in domestic borders, or have wonders that upgrade different classes separately). So, the logical solution is: write autoupgrade code into a Lua callback in default.lua, and the effect "Upgrade_Unit" will just be used by AI and autohelp as it is, and the default callback looks at it but some other one might not. To do it, we must develop in separate tickets:
"phase_end" signal (called when we now deal with this effect, after do_tech_parasite_effect() and before  player_restore_units() from which we cut do_upgrade_effects());
API to do the things do_upgrade_effects() do:
void (Unit):transform(Unit_Type to_what, bool dont_lose_veteranship) -- maybe the second parameter may be unhardcoded further?
an API for unit_upgrade_test(punit, TRUE). Suggestion:
Unit_Type (Unit_Type).obsoleted_by;
string (Unit):transform_blocker(Unit_Type tf_to) -- possible values: nil, "cargo", "transport", "tile"

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



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