Feature #1399
openLua API: specialists control
0%
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.
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.