Project

General

Profile

Actions

Feature #1375

closed

Introduce superspecialists

Added by Alexandr Ignatiev about 2 months ago. Updated 23 days ago.

Status:
Closed
Priority:
Normal
Category:
General
Target version:
Start date:
05/08/2025
Due date:
% Done:

0%

Estimated time:

Description

Superspecialists are specialists that (1) are not counted within city population and (2) can not be assigned to or from by player or CMA.

In attached main patch, basic support for superspecialists is added (only ability to declare in rulesets and manually insert into savegames). Each city can have up to 255 superspecialists of each type. They are displayed in main citizens roster (but not in happiness rosters); probably something should be done in the future to diisplay great amounts of them since currently rosters are limited to 255 sprites and that is already not always comfortable. Probably I missed something in ruledit.

Patch requires appropriate protocol and dff version bumping.

Note that requirements of superspecialists are never checked. In my original idea, superspecialist should disappear if their reqs fall out of being fulfilled. But normal specialists seem to persist even in that case, so I did not make it. Don't know should that be a bug, seems like AI considers it impossible.

Future plans - adding superspecialists:
a) Direct Lua city:add_specialist(sp_type);
b) Defining unit specialist property, allow adding to cities units without pop value but with superspecialist value;
c) player:give_specialist(sp_type), then players can settle the specalists (not necessary super, may also add a citizen) via city interface.

(b) and (c) require AI understanding (AI any way needs a procedure to add to city useless migrants). (c) also requires GUI works I am not ready for.


Files

main-superspecialists-basic.patch (39.2 KB) main-superspecialists-basic.patch Alexandr Ignatiev, 05/08/2025 10:48 PM
freeciv-T0004-Y-3850-auto.sav.zst (38 KB) freeciv-T0004-Y-3850-auto.sav.zst Example: a superspecialist in Yax Mutal Alexandr Ignatiev, 05/08/2025 10:49 PM
sandbox2.tar.xz (93.1 KB) sandbox2.tar.xz Example of a ruleset with Great Worker (+3prod) superspecialist Alexandr Ignatiev, 05/08/2025 10:52 PM
main-superspecialists-basic2.patch (40.7 KB) main-superspecialists-basic2.patch Alexandr Ignatiev, 05/22/2025 01:16 AM
main-superspecialists-basic3.patch (41.1 KB) main-superspecialists-basic3.patch Alexandr Ignatiev, 05/24/2025 12:38 AM
superspecialists-basic.patch (41.3 KB) superspecialists-basic.patch Alexandr Ignatiev, 05/28/2025 12:56 AM
superspecialists-basic2.patch (41.3 KB) superspecialists-basic2.patch Alexandr Ignatiev, 05/31/2025 01:04 AM

Related issues 4 (1 open3 closed)

Blocks Feature #1410: Document [super_specialist_???] section namesNew05/18/2025

Actions
Blocked by Bug #1400: ruleload.c: correct error message for no default specialistClosedMarko Lindqvist05/17/2025

Actions
Blocked by Bug #1401: citydlg_common.c: correct parameter names in get_city_citizen_types() oxygen docClosedMarko Lindqvist05/17/2025

Actions
Blocks Feature #1399: Lua API: specialists controlClosedMarko Lindqvist05/17/2025

Actions
Actions

Also available in: Atom PDF