Project

General

Profile

Actions

Feature #1399

open

Lua API: specialists control

Added by Alexandr Ignatiev 2 days ago. Updated 1 day ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Scripting API
Target version:
Start date:
05/17/2025
Due date:
% Done:

0%

Estimated time:

Description

Continuation of #1375. The following methods are needed: * (City):settle_specialist(Specialist s, int num = 1) - adds a specialist or several; for normal specialist, also increases city size. Respects s's reqs. Returns number of specialists added. * (City):num_specialists(Specialist s?) - counts specialists of given type in the city, without parameter, counts all specialists (normal and super). Maybe add functions for counting all normal and all super specialists? * (City):reduce_specialist(Specialist s, int num = 1) - for superspecialist, just removes them, for normal specialist, toggles them cyclically (does not place workers or change city size), returns number of toggled/removed ones. * (City):can_use(Specialist s) - checks reqs (specialist can be still not addable due to 255 limit) * Player:can_use(Specialist s) - checks Player+-ranged reqs. Maybe rename these functions to sth more specific like can_employ but actually we have polymorphism.

Actions #1

Updated by Alexandr Ignatiev 2 days ago

also bool (Specialist).is_super

Actions #2

Updated by Marko Lindqvist 1 day ago

I think we should split this to two parts. First introduce lua methods that deal with normal specialists, and that patch would go to S3_3 too. Second patch to add super specialist handling would go to main branch only.

Actions

Also available in: Atom PDF