forked from freeciv/freeciv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
4999 lines (4643 loc) · 259 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
======================
Welcome to Freeciv x.x
======================
The most important changes between major releases are shown below.
Not all changes are shown here. Those who are interested in seeing
the detailed changes should check the ChangeLog file.
MAJOR CHANGES FROM 3.2.x to 3.3.0
---------------------------------
[TODO]
MAJOR CHANGES FROM 3.1.x to 3.2.0
---------------------------------
(from <https://www.freeciv.org/wiki/NEWS-3.2.0>, 2024-12-02)
The major changes in 3.2 are gtk4-client as default, new sdl3-client,
meson based build system as default, and a whole lot of extra flexibility
to create custom rulesets.
As is usual for major releases, 3.2 clients cannot interoperate with
pre-3.2 servers, and vice versa. Most pre-3.2 savegames can however
be loaded into 3.2, and in most cases, the supplied rulesets have not
changed so much as to make it difficult to complete a game started
with 3.1.x's rules.
Server / General
* gtk4-client is now the default osdn#47782
* gtk3-client has been discontinued. gtk3.22-client still exist.
osdn#41531
* New sdl3-client osdn#48820
* Unit orders are now executed after all the Turn Change activities,
and after the AIs have begun their turn. This avoids "double move"
issues with units executing orders with replenished movement but
still before the new turn osdn#46363
Changes affecting players (supplied rulesets)
* Speed of revolution length change, when revolentype server setting
has value Quickening or RandQuick, now scales to the number of players
osdn#43386
* Existing building fulfills unit's improvement requirement,
even if player now couldn't build the building anew HRM#846784
* Player government no longer changes immediately (mid-turn) when player
selects it during the turn that revolution finished. Instead, selected
government takes effect on next turn change. This way player cannot
use multiple governments, with their different strengths, during
the turn. osdn#43604
* Server no longer floods messages about governments becoming available
if multiple ones come available at the same time. Instead just
one message notifying about multiple governments is sent. osdn#44677
* Player is notified about new government option also when it becomes
available through a wonder HRM#856947
* Trade partner city is no longer revealed on the map to the owner
of the other end of the trade route. Ruleset has power to restore
the old behavior of always revealing the trade partner osdn#42970
* It's now never possible to cancel "No Contact" diplomatic state to
a War, even if your ally is in war with that player you have
no contact with osdn#45124
* Clean Pollution and Clean Fallout merged to a new generic Clean action
osdn#45975
* Maximum cityname length is now 120 osdn#46096
* There's now units_used counter in score log osdn#45628
* Diplomat actions that give Casus Belli in supplied rulesets after
success, now give Casus Belli also after the diplomat gets caught
attempting it osdn#46239
* New event type Conquered when a city is conquered. Those messages used
to be sent as Unit Win Attack events osdn#47806
* New nations
+ Alaska RM#237
+ Dagestan RM#254
+ Donetsk RM#257
+ Luhansk RM#274
+ Tuvalu osdn#48969
+ Toki Pona RM#279
+ Northern Ireland RM#293
+ Louisiana RM#294
+ Minnesota RM#709
+ Poyais RM#710
+ Conch RM#821
* civ2civ3
+ New Storm unit moving randomly on oceans, to appear
as animal barbarian type osdn#42907
+ Disaster frequencies reworked so that the default behavior
remains the same, but user now has a sensible range to adjust
them with the server setting RM#271
+ Military units can build bases RM#517
* classic
+ Land units on Mountain tiles get a vision bonus RM#679
* multiplayer
+ Land units on Mountain tiles get a vision bonus RM#811
* civ2
+ Freights give doubled one-time bonus on arrival osdn#45852
* alien
+ Grassland terrain type replaced by Savannah osdn#48827
* sandbox
+ ICBM blast radius increased HRM#921825
+ Full stack of powerless defenders can be wiped at once with
the new Wipe Defenders action HRM#922861
+ Size 1 city destroying population loss can happen along
the death of the last defender osdn#42244
+ Transport initiated Transport Load actions possible osdn#42587
+ Moving from transport to transport takes all movement HRM#931098
+ Small Wonders are visible only to those opponents that have
an embassy osdn#42972
+ Great Library changed to give all players any techs known
by at least 30% of the players osdn#45718
+ Space Elevator can now be built only near equator osdn#45772
+ Treaties can now contain Shared Tiles clauses osdn#45730
+ After celebrating a while, city starts producing extra culture
until the celebration ends osdn#45072
+ If a city has been in disorder for three years, it's production
shrinks to zero osdn#45072
+ New Storm unit moving randomly on oceans, to appear as
animal barbarian type osdn#42907
+ New policies Polluting Production, Military Training Duration,
Diplomatic Training Duration, and Civil Training Duration RM#105
+ Disaster frequencies reworked so that the default behavior remains
the same, but user now has a sensible range to adjust them with
the server setting RM#271
+ Military units can build bases RM#517
Changes affecting other rulesets / modders
* Added concept of city counters HRM#876776
* Actions related stuff moved from game.ruleset to new actions.ruleset
osdn#45037
* Maximum number of ruleset items increased
+ Max user unit class flags now 25 and user unit type flags 50
osdn#46086
+ Max extra types now 250 osdn#48917
+ Max number of techs is now 400 RM#355
+ Max number of unit types is now 300 RM#375
+ Max number of effect multipliers is now 50 RM#411
* Meta info for rulesets in new .modpack -files osdn#42445
* Nuke blast radius is now ruleset configurable HRM#854166
* New convert improvement genus for gold producing improvements
like Coinage HRM#921525
* New requirement types
+ MinLatitude osdn#44035
+ MaxLatitude osdn#44182
+ Counter osdn#41120
+ OriginalOwner HRM#870139
+ BuildingFlag osdn#46190
+ PlayerFlag osdn#45666
+ PlayerState osdn#41813
+ FormAge about unit's age since latest transformation,
either via upgrade or convert osdn#48848
+ Site is like Building but without obsoletion osdn#42905
* New CityStatus requirement values
+ Starved HRM#922788
+ Disorder and Celebration HRM#870141
+ Transferred that tells if city has ever changed hands osdn#48115
* Unit Age requirement now works also on the client side osdn#48928
* New achievement types
+ Killer, granted when enough enemy units have been defeated
HRM#823396
+ Rich, granted when player has enough Gold RM#169
* New action enabler controlled actions
+ Wipe Units HRM#864356
+ Bombard Lethal osdn#42312
+ Spy Escape osdn#41800
+ Transport Load HRM#848668
+ Teleport osdn#47350
+ Teleport Conquer osdn#48665
+ Collect Ransom osdn#42028
+ Teleport Enter and Teleport Enter Conquer RM#165
+ Teleport Frighten and Teleport Frighten Conquer RM#174
* Extended Fake Generalization of actions
+ Transport Board up to 3 variants osdn#42645
+ Transport Embark up to 4 variants osdn#42645
+ Attack and Suicide Attack up to 2 variants osdn#42688
+ Bombard Lethal up to 2 variants osdn#48748
+ Bombard up to 4 variants RM#523
* Transport Alight action has been renamed as Transport Deboard
osdn#45119
* New effects
+ Border_Strength_Pct osdn#42913
+ Action_Resist_Pct that evaluates requirements against
target player. Existing Action_Odds_Pct evaluates them against
actor player osdn#43155
+ Output_Bonus_Absolute osdn#43593
+ Tech_Parasite_Pct_Max osdn#45596
+ Shrink_Food, split from Growth_Food osdn#46291
+ Activity_Time, for fine tuned activity times rules osdn#46396
+ Surplus_Waste_Pct_By_Rel_Distance osdn#42246
+ Surplus_Waste_Pct osdn#48294
+ Impr_Upkeep_Reduction RM#310
* New Tile range for requirements HRM#695469
* Support added for new value Embassy for Small Wonder Visibility
osdn#42051
* Some effects can now have a meaningful action type requirements,
to make them specific to certain attack type
+ Attack_Bonus osdn#42230
+ Unit_No_Lose_Pop osdn#42242
* Unhardcoded the rule that an attack action cannot destroy the city
osdn#42243
* More requirements types supported for some effects
+ Individual unit's properties for Unit_No_Lose_Pop effect
osdn#42320
+ Unit type related requirements for Upkeep_Factor effect osdn#45991
+ Unit type related requirements for Trade_Revenue_Bonus effect
osdn#45852
+ Exact unit instance related requirements for Attack_Bonus effect
osdn#47862
+ Exact unit instance related requirements for
Unit_Vision_Radius_Sq effect RM#94
* Old NoAggressive extra flag replaced by no_aggr_near_city integer field
that tells how far from a friendly city the extra can be to still
have units inside non-aggressive osdn#42199
* Bombard action no longer has hard war requirement osdn#42553
* New TerrainAlter requirement type values
+ CanBase osdn#42849
+ CanPlace osdn#42873
* New CityTile requirement values
+ Worked HRM#919184
+ Same Continent, Bordering TClass Region osdn#45907
* New DiplRel requirement types Has Team Embassy and Hosts team embassy
osdn#45073
* New unit type flag RandomMovement to make unit to move randomly,
not under owner's control HRM#699473
* Made min_tech_cost separate from base_tech_cost, to support
the two having different values HRM#699459
* New Goods flag Self-Provided to make a city able to provide Goods also
to itself, not only to trade partners osdn#43532
* It's possible to give natural resources relative occurrence frequency
osdn#43563
* New unit role BarbarianBoatTech osdn#41867
* One can now define for user effects how the AI should evaluate
their value. osdn#44711
* Hut extras are no longer hardcoded not to appear on frozen terrains.
One can use Latitude requirements to prohibit their appearance
near poles. HRM#660056
* New SharedTiles diplomatic treaty type osdn#44161
* Units now have support for full requirement vector, instead of having
just one tech, building, and government requirement HRM#846779
* Homeless units can now have gold upkeep. game.ruleset has
a new homeless_gold_upkeep setting for that. HRM#819758
* Effects now have a comment field, unused by freeciv in every other way
but resaved by freeciv-ruledit and freeciv-ruleup osdn#46131
* Casus Belli rules can now be set for the Surgical Strike action
osdn#46180
* Buildings can now have user (ruleset author) defined custom flags,
to be used with the BuildingFlag requirement osdn#45832
* Max_Trade_Routes effect can now be effectively set to 20, before
freeciv's hard limit kicks in osdn#45857
* New EnterBorders terrain flag, to mark terrain free to enter even
if it's within other player's borders osdn#46619
* Terrains now can have extra specific clean times, not just clean time
common to all extras osdn#46636
* Base effect of type Max_Rates is now mandatory osdn#47626
* More support for alternative graphic tags
+ Second alternative graphic tag for units osdn#47753
+ Second alternative removal activity graphic tag for extras
osdn#47952
+ Second alternative graphic tag for buildings osdn#48087
+ Second alternative graphic tag for terrains RM#13
* Alternative graphic tags for terrains are no longer mandatory RM#23
* Governments can have sound tags, for a sound or music to play
when player switch to that government osdn#46600
* New sound tag e_enter_game to play when the game starts RM#676
* More support for alternative sound tags
+ Second alternative sound tag for buildings RM#65
* New tp_defense type Always to make units able to defend even
when transported osdn#43541
* Resource identifiers, needed only for loading very old savegames,
are now optional. Resources that have been added to the ruleset after
the savegame format change do not need the identifiers for anything
osdn#48020
* Some hard requirements are now obligatory requirements for building
extras, for consistency between different extra building actions
+ road_time > 0 for Build Road action osdn#42510
+ base_time > 0 for Build Base action osdn#48090
* New ubuilder_nationality cities.ruleset field to control how
the nationality of the unit costing population gets chosen.
It's either that of building nation, or the nationality of the majority
of the population points going used to the unit osdn#45932
* New FirstCity player flag to tell if player has ever had a city
osdn#48292
* Maximum number of resources is now same as maximum number of extras,
i.e., all extra slots can be used by resources osdn#48607
* New extra flag CauseZoC to make the extra impose ZoC even if it's empty,
or hiding all the units inside osdn#47701
* ui_name_road has been renamed as ui_name_build_road for consistency
with other extra types RM#108
* Settlers is no longer an obligatory requirement for Build Base action
RM#474
* Unhardcoded Output_Penalty_Tile from being prevented by Celebration
in the city. Ruleset can implement it by using CityStatus Celebration
requirement osdn#45236
Changes in Lua scripting
* move_unit() no longer has action side-effects. They can be triggered
separately, if wanted, but now move can be done also without them
osdn#41523
* Game_Info object with research rules related info added osdn#45068
* Counters handling API added osdn#47827
* Other new methods
+ Player:lose() osdn#44273
+ Direction:cardinal() HRM#657148
+ Player:change_infrapoints() osdn#47382
+ Player:infrapoints() osdn#47456
+ City:transfer() osdn#48312
+ effects.tile_bonus() osdn#47457
+ name_version(), comparable_version(), and version_string().
Use one of these instead of the deprecated fc_version() osdn#48879
+ versions_compare() osdn#48905
+ server.popup_image() to make client to popup an image RM#546
+ Player:primary_capital() RM#557
+ Tile:known() and Tile:seen() osdn#42684
+ edit.unit_add_hitpoints() osdn#44771
+ edit.unit_add_movepoints() RM#591
+ Unit:seen() RM#630
* edit.give_bulbs() and Player:give_bulbs() now have an optional
tech parameter, to better support using the methods
in multiresearch mode osdn#44936
Changes affecting custom scenarios
* Client now gets scenario player autoselected, if the scenario has given
new property autoselect_weigth to any player HRM#701752
Changes affecting server operators
* New savegames can no longer be compressed with bz2. Old bz2 savegames
can still be loaded HRM#804350
* zstd is now the default savegame compression method osdn#43313
* spaceship_travel_time server setting has been renamed
as spaceship_travel_pct osdn#42102
* New server settings
+ aitype HRM#858206
+ ailevel osdn#44105
+ northlatitude and southlatitude, replace alltemperate
and singlepole osdn#44038
+ top_cities to control how many cities Top Cities report shows
osdn#45826
+ luatimeout to control how long lua scripts are allowed to
run before being killed by timeout osdn#44898
* Server setting topology has been split to two settings;
topology and wrap. This way wrap can be changed even when topology
can not. This affects especially sending saved settings from the client.
osdn#42289
* If a ruleset parameter is given at the server launching commandline,
normal users can no longer change it within the server.
Only hack access users can. osdn#45042
* New lock and unlock commands for the server admin to prevent
regular players from changing server setting's value. osdn#45134
* scorefile setting's max length now respects common filepath rules.
It used to be much shorter osdn#46316
* /list command can now list AI types supported by the server RM#672
Player authentication database (fcdb)
* fcdb lua scripting now has a conn_established signal, emitted once
player connection is fully established osdn#43464
* New lua methods auth.get_cmdlevel() and auth.set_cmdlevel() to control
player access level HRM#657143
* Database now has capability string for supporting controlled updates
in the future osdn#48621
* Fcdb lua script can now provide unique dbid for the game via
new game_start() API. Server will save that dbid also to the savegames.
osdn#48595
* Use of lua_io module is now allowed in the fcdb scripts osdn#48721
* Sqlite based fcdb database is now created automatically,
if it doesn't exist osdn#48672
Low-level changes
* Version number comparison library cvercmp updated to version 1.0.5
osdn#44720
* Combination of json & delta protocols now work HRM#745593
* XML-registry files' root-node is now case-insensitive RM#780
AI
* Threaded AI module has been dropped completely osdn#42268
* AI's want to win through spacerace has been reworked osdn#42259
Clients
* City style specific citizen sprites supported. No tileset provides
such sprites yet. HRM#683532
* "Join City" action now asks user to confirm that they want to use
the unit osdn#46115
* Tile latitude shown on tile info popups osdn#44041
* Unit activity specific unit sprites now supported osdn#46387
* Commandline parameter "--Hackless" now works also with
the client spawned server osdn#45326
* New client option to control if client sends desired server settings
to the server or not osdn#47673
* New client option for checking availability of updated versions of
other kind than default osdn#48638
* Pillage now uses extra's rmact gfx when available, instead of
always using Pillage's generic icon osdn#47923
* Support added for new musicset fields that the clients can show
+ Summary and Description osdn#47639
+ Name and Version osdn#48567
* There's a new leave_game sound tag for the soundsets to provide
sound for osdn#47614
* Default soundset plays new sounds
+ When player's government changes RM#657
+ When wonder is finished RM#658
* In the editor mode, player's infrapoint count can now be edited
osdn#47385
* Client now has always correct information about edit mode
Fog of War state osdn#47784
* Client knows if its player is the original owner of a city even
for cities in Fog of War osdn#46468
* gtk
+ New option to pause audio when ever client loses focus osdn#43757
+ Show new longer and more verbose version of the Wonders of
the World report on MERGED chat and messages layout RM#428
+ gtk4: Commandling option --zoom RM#1071
* qt
+ Support for using svg flags, for bigger flag graphics in
nations dialog osdn#45024
+ Paradrop now has its own key ("j") separate from clean pollution,
like other clients osdn#46025
+ Show new longer and more verbose version of the Wonders of
the World report osdn#46520
+ Nations' dialog panel options are now saved to client settings,
and not forgotten between client runs osdn#45049
+ Ongoing meetings can be reopened also from the players dialog
osdn#47790
* sdl2
+ sdl2-client theme can now define language specific fonts
for any language osdn#48145
+ On first launch, the initial resolution setting is influenced
by selected font size osdn#48397
+ New font size option osdn#47704
+ sdl2-client theme now defines color for "No Contact" state
in the diplomacy dialog osdn#45038
Tools
Ruledit
* Added commandline option --debug to set log level osdn#45467
* Completely new buildings can now be added, and existing ones removed,
in a standard build of ruledit osdn#48765
* Completely new techs can now be added, and existing ones removed,
in a standard build of ruledit RM#448
Ruleup
* Added standard comment entries within sections HRM#658079
* Added standard comments for user (custom) ruleset object flag types
osdn#46167
Modpack Installer
* Supports .mpdl files with multiple files sections, each with
their own base URL osdn#48613
Manual Generator
* New manual page listing extras RM#153
* New manual page listing unit classes RM#572
Tilesets, Art, etc
* Storm unit added to cimpletoon (and derivatives) osdn#47740
* Volcano terrains added to amplio2 and cimpletoon osdn#48900
* Name tags added for extra amplio2 and trident units RM#161
* Nets added to supplied tilesets RM#224
* Highways added to trident and hex2t RM#255
Help / Documentation
* Effects in README.effects now sorted alphabetically osdn#43165
Translations
* Ruledit ruleset sanity error messages are now translated osdn#48803
* Updated translations: German, Esperanto, Finnish, French, Russian
Build/portability
* Windows installers are now built with the meson build system
+ Official msys2 installers osdn#42489
+ Crosser based builds osdn#44021
* When bootstrap files are recreated, minimum python requirement
is now 3.5. Build from the tarball does not require python. osdn#44735
* Meson build system improvements
+ Meson build is no longer experimental, but preferred
build system osdn#44491
+ Support for .fcproj project definition files, similar
to .project files we have with autotools osdn#42935
+ It's now possible to build stub-client with meson osdn#45821
+ Emscripten builds are now made with meson osdn#46354
+ Support for testmatic builds added osdn#47675
+ Almost all the same compiler warnings enabled as
autotools builds have osdn#48577
+ Configure option ruledit replaced with a tools array that
can control all utilities, not just ruledit osdn#48700
+ Configure option audio now a combo selection supporting
also SDL3_mixer selection osdn#48777
+ New configure option python to select python interpreter binary
to be used in running source code generators osdn#44766
* "make src-check" now checks most data files against trailing spaces
osdn#45125
* Flatpaks build updates
+ Source directory now under platforms/ osdn#46309
+ Build can be made in a separate build directory,
and that's recommended osdn#48625
+ All flatpaks are built with meson osdn#45871
+ New Qt modpack installer flatpak osdn#48812
* Convenience script emscripten.sh added for making emscripten builds
osdn#47470
* Msys2 environment updated to snapshot from 240810 (10th of Aug 2024)
RM#778
* Portable (non-installer) Windows packages built along
the msys2 installers osdn#48408
* Project files now support defining homepage URL osdn#48602
* Doxygen documentation now generated by a separate script not tied
to autotools build system usage osdn#45704
MAJOR CHANGES FROM 3.0.x to 3.1.0
---------------------------------
(from <https://www.freeciv.org/wiki/NEWS-3.1.0>, 2024-02-18)
The major changes in Freeciv 3.1 are new Qt6- and gtk4-clients,
improved balance for civ2civ3 ruleset, experimental meson based
build system, and a whole lot of extra flexibility to create
custom rulesets.
As is usual for major releases, 3.1 clients cannot interoperate with
pre-3.1 servers, and vice versa. Most pre-3.1 savegames can however
be loaded into 3.1, and in most cases, the supplied rulesets have not
changed so much as to make it difficult to complete a game started
with 3.0.x's rules.
Server / General
* Qt6 versions of the Qt-client, Qt Modpack Installer, and Ruledit
are supported, and even the default in most cases HRM#892817
* Player authentication is supported by default GNAPATCH#7379
* Max number of regular players (not counting barbarians) is now 500.
HRM#654973 HRM#677144
* Rally Points can be set for the cities HRM#838543
* Previously silent generic actions now have event message types,
so can show up chat/messages/popup HRM#848791
* There has been many changes to what actions each keyboard key does,
as required by changes in the actions themselves.
See Controls in Help for updated info.
+ Especially; Paradrop now has a key distinct from
Pollution cleaning osdn#45958
* Adding local nation definitions now works properly osdn#44590
Changes affecting players (supplied rulesets)
* Experimental ruleset is no longer part of the main
freeciv distribution. It's still available with modpack installer
GNAPATCH#7625
* Submarines are now in the new Subsurface vision layer HRM#682506
* Huts on most rulesets (any ruleset that uses default huts behavior)
can now result on reveal of the surrounding terrain osdn#42974
* By default, bombardment rate now gets reduced if the bombarding
unit is damaged. This is relevant only for rulesets with such
bombarding units, and ruleset might still use the old behavior
instead of the new default HRM#821129
* The issue of Ships attacking Helicopters counting as land bombardment,
when attack initiated from a city on land has been resolved
osdn#43255
* Extraneous StartUnit roles cleared from supplied rulesets osdn#45878
* Rulesets except civ1, civ2, alien, and stub have new
Eliminate Spy action, that is just diplomatic battle with no
further actions osdn#46173
* Player looting dying player (one who lost gameloss unit)
now get notifications about what the loot contains osdn#45152
* Messages from supplied lua scripts, such as handling unit entering
hut tile, now have unit/city/tile links in place osdn#43389
* nations
+ Esperant nation city list updated osdn#45762
+ Palau nation added HRM#697041
+ Texan nation city list updated osdn#46114
+ Liege nation added osdn#46553
+ Floridian nation added osdn#46657
+ Game prefers not to select Chadian and Kanem-Bornu
to the same game (i.e., they have been set to conflict)
osdn#42135
* civ2civ3
+ Ecclesiastical Palace is real secondary capital now HRM#872572
+ Establishing trade routes give one-time bonus in Gold
(used to give Nothing) osdn#42319
+ Effects of Culture have been reworked osdn#42712
* The culture accumulated by each city increases its
resistance in diplomatic fights against enemy agents
(up to +50%)
* The culture accumulated by your nation increases the cost
to bribe your units or incite your cities (up to +500%)
* Governments no longer get immunity against bribe or
incite actions. Cities with a Courthouse or a Palace
are now immune to incite actions
* Increased the amount of culture granted by achievements
(from 100 to 1000 in most cases), and the lead relative
to second best player needed for victory (from 33 to 100%)
+ Fortress and Airbase build requirements rearranged osdn#42709
* All military infantry units can build fortresses.
All worker units can build airbases.
+ The working time required to build a base is 2 times
the movement cost of the terrain.
+ Attacks against helpless defender never grant veterancy
osdn#43101
+ The chance to gain veterancy from combat depends on how
challenging it was osdn#43203
+ Reworked which of the naval units count as military ones,
causing unhappiness osdn#45225
+ Homeless diplomats may home themselves, to gain ability
to bribe units osdn#45070
+ Barracks and Sun Tzu affect Small Land units too osdn#47636
+ Bribe Unit, Spy Attack, and Incite City give victim
casus belli even when the actions fail osdn#46239
+ Mountain movement penalty not applied on Rivers osdn#48713
* civ1
+ Alliance clauses are no longer available HRM#768396
+ Move costs on entering and leaving transports corrected
HRM#850669
+ Both units' hitpoints and firepower have been increased
to 10 in all situations. Single hit still kill them,
but AI understand this math a bit better osdn#43042
+ Fortifying bonuses closer to civ2 HRM#871628
* Unfortified units in cities do not get the bonus
* Bonus is not cumulative with City Walls or Fortress
* civ2
+ Alliance clauses are no longer available HRM#768396
+ Move costs on entering and leaving transports corrected
HRM#850668
+ Fighters have real scramble bonuses HRM#923193
+ Fortifying bonuses closer to civ2 HRM#871628
* Unfortified units in cities do not get the bonus
* Bonus is not cumulative with City Walls or Fortress
* multiplayer
+ Unit move rates doubled HRM#654404
+ The chance to gain veterancy from combat depends on how
challenging it was osdn#43203
* alien
+ Burrowing units do not make it impossible to attack other
units in the same tile, even if general unreachableprotects
setting is enabled HRM#824810
+ The chance to gain veterancy from combat depends on how
challenging it was osdn#43203
+ Bribe Unit, and Incite City give victim casus belli
even when the actions fail osdn#46239
* experimental
+ Ruleset has been made ready to migrate under name goldkeep
in freeciv-3.2 HRM#820950
* sandbox
+ Various messages shown in the beginning of specific turn numbers
HRM#732561
+ Both parties need to know Writing before they can trade techs
HRM#768209
+ ICMB can hit anywhere in the world, from anywhere HRM#854014
+ New Disrupt Supply Lines action to take move points from target
HRM#852114
+ Spies can simply (not as part of another action) eliminate
enemy spies and diplomats HRM#859809
+ Pillaging gives the victim Casus Belli HRM#874199
+ Spies can Release Plague HRM#859160
+ Spies can do Suitcase Nuke action osdn#41809
+ Ecclesiastical Palace is real secondary capital now HRM#899242
+ New Chichen Itza wonder allows city to build units that
usually have population cost without the city shrinking
HRM#900032
+ Fortress can be expanded to a Castle osdn#41433
+ Some Castles are placed on the map when it's generated osdn#41434
+ Teleportation is possible via Ancient Transport Hub's
randomly placed on map osdn#41557
+ Living units of the Amêzârâkian Mysteries owner can heal
other living units osdn#41671
+ Nuclear attacks are now targeted against tiles, not cities
osdn#41688
+ Added Nuclear Submarine that can launch one tactical nuke
each turn osdn#41689
+ Added Treuga Dei Wonder that prevents all violent actions
while it's active osdn#41677
+ New Altar of The Divine Ruler wonder allows making units homeless
osdn#41836
+ New Mechanic unit can repair machine units, restoring 50%
of their health osdn#41845
+ Poison City actions may fail, as dictated by diplchance
server setting HRM#924521
+ Establishing trade routes give one-time bonus in Gold
(used to give both Gold and Science) osdn#42319
+ Added Space Elevator small wonder and Space Elevator Tether
City Improvement osdn#43128
+ Attacks against helpless defender never grant veterancy
osdn#43101
+ The chance to gain veterancy from combat depends on how
challenging it was osdn#43203
+ Reworked which of the naval units count as military ones,
causing unhappiness osdn#45225
+ Homeless diplomats may home themselves, to gain ability
to bribe units osdn#45070
+ Barracks and Sun Tzu affect Small Land units too osdn#47636
+ Bribe Unit, Spy Attack, and Incite City give victim
casus belli even when the actions fail osdn#46239
Changes affecting other rulesets / modders
* Scenarios can now ship ruleset specific datafile luadata.txt,
and ruleset can ship parser.lua script to use that data any way
it wants HRM#661635
* There is now two separate visibility layers able to hide a unit;
Stealth and Subsurface HRM#679427
* Bridge rule options are now available for all extras, and are
generally more flexible HRM#704288
* Multipliers can now have requirements that player needs to meet
in order to give it nondefault value HRM#732522
* Ruleset can now limit how often a multiplier can be changed by
new minimum_turns property HRM#908582
* New effects controlling build costs of specific targets
+ Building_Build_Cost_Pct HRM#767451
+ Unit_Build_Cost_Pct HRM#768130
* Added user-defined effects "User_Effect_1" ... "User_Effect_4"
that do nothing by default. Ruleset is expected to make them
usable by lua scripting. osdn#41745
* Ruleset has control over which clauses are available for treaties
+ Whether it's enabled at all in the ruleset HRM#765945
+ When requirement vectors for giver and receiver enable it
HRM#768208
* Maximum number of Techs a ruleset can define has been increased to 250
HRM#776787
* Maximum number of Unit Types a ruleset can define has been increased
to 250 HRM#778026
* New ruleset settings nuke_pop_loss and nuke_defender_survival_chance_pct
to control destructiveness of nukes HRM#801780
* Mechanism for a ruleset to migrate under a new name over freeciv versions
HRM#820924
* Ruleset now has control over city happiness' effect on civil war chance
HRM#769075
* New DefenseMultiplierPct and DefenseDividerPct combat bonuses
provide more granular alternative for existing equivalent integer bonuses
HRM#809470
* New concept of Infrapoints that can be used to just place infrastructure
instead of building it with units HRM#821956
* Improvements for higher granularity rulesets
+ New output_granularity ruleset setting to support higher
granularity with outputs (food/shield/tax/gold/science/luxury)
HRM#822932
+ Increased max values many ruleset settings can take HRM#825215
* Terrain transforming modes of Irrigate and Mine activities have
been split to new Cultivate and Plant activities HRM#824074
* New NeverProtects unit type flag to override global
unreachableprotects setting HRM#809471
* New extra removal cause Enter to provide better semantics for
hut -kind extras HRM#802768
* New history_intereset_pml ruleset setting allows older (longer existed)
history to count towards culture more than recent HRM#823245
* New AI trait Builder to adjust how much AI wants buildings
(instead, e.g., units) HRM#825086
* Maximum number of ruleset author defined flags increased
+ Unit class flags to 12 HRM#846122
+ Terrain flags to 10 HRM#877497
* Some unit class flags have been unhardcoded, and removed
+ CanPillage HRM#846557
* Move points taken after successful actions can be controlled by
new effects
+ Action_Success_Actor_Move_Cost HRM#846773
+ Action_Success_Target_Move_Cost HRM#848435
+ New effect Illegal_Action_HP_Cost to control HP loss
after failed action HRM#879103
* New effect Popcost_Free to forgive population cost of built units
HRM#659540
* How many tiles action Steal Maps reveals can be controlled by new
Maps_Stolen_Pct effect, and steal_maps_reveals_all_cities
ruleset setting HRM#873390
* Improved support for more detailed auto-attack rules HRM#850300
* New UnitState values available to be used in requirements
+ InNativeExtra HRM#854185
+ MovedThisTurn HRM#875439
* Maximum number of requirements in a requirement vector increased to 40
osdn#41661
* New requirement types
+ CityStatus, currently only for checking if the city is
controlled by its original owner (OwnedByOriginal) HRM#858238
+ MinForeignPct that depends on number of foreigners in the city
HRM#857904
+ Activity that depends on unit's current activity HRM#870905
+ DiplRelTile that depends on ones diplomatic relation to
the owner of the tile (e.g. the tile target unit is on)
osdn#42515
+ DiplRelTileOther that depends on diplomatic relation between
the owner of the tile and other player (e.g. the target unit owner)
osdn#42522
+ DiplRelUnitAny that depends on ones diplomatic relation with
owners of units on tile osdn#42562
+ DiplRelUnitAnyOther that depends on diplomatic relation between
owners of units on tile and other player (e.g. tile owner)
osdn#42563
* Defense bonuses from unit being fortified unhardcoded by
new Fortify_Defense_Bonus effect HRM#867744
* NoFortify terrain flag unhardcoded HRM#877498
* CanFortify and Cant_Fortify unit flags unhardcoded HRM#877577
* slow_invasions ruleset setting has been retired as the same rule
can be implemented via Action_Success_Actor_Move_Cost effect
HRM#848684
* Amount of shields received from unit doing Help Wonder or
Disband Unit Recover action can be controlled by a new
Unit_Shield_Value_Pct effect HRM#874806
* Which cities are capitals is now declared for a turn - it can't
change mid-turn. This also adds concept of secondary capitals
HRM#871681
* Last remaining Base Flag, NoAggressive, has been turned to
an extra flag to make it available for all extras HRM#897492
* The CityTile requirement can check if extras on tile are owned
by the new Extras Owned value HRM#918819
* OneAttack unit type flag retired. Ruleset can implement it via
an Action_Success_Actor_Move_Cost effect that takes all the movement
HRM#847256
* Removed hardcoded rule that attack costs single move - ruleset can
define move costs via effects osdn#41646
* New Heal_Unit_Pct effect to control how much Heal Unit actions heal
osdn#41789
* Whether server setting telling that city has unlimited airlift also
enables airlift when there's no capacity at all is now controlled
by new airlift_from_always_enabled and airlift_to_always_enabled
ruleset settings HRM#874937
* Introduced new combat bonus type CityDefensePct that overrides
Defend_Bonus effect HRM#865084
* Success probability of Suitcase Nuke actions now shown HRM#920121
* It's possible to make Poison City subject to diplchance HRM#869738
* Whether opponents know about all Small Wonders player owns is
now controlled by a new ruleset setting wonder_visibility.small_wonders
HRM#924859
* Improvements to when unit gains veterancy from combat
+ New ruleset setting only_real_fight_makes_veteran to prevent
one from gaining veterancy from safe attacks
(ones against helpless defender) osdn#43009
+ New ruleset setting combat_odds_scaled_veterancy to make
chance of gaining veterancy scale to the difficulty of the combat
HRM#804347
* Rules that set firepower to 1 unhardcoded can now have the value
suitable for the ruleset osdn#43041
* By the new tp_defense unit type setting, unit can be blocked
from defending while it's inside a transport HRM#848689
* New min_trade_route_val ruleset setting, mainly to control if
trade output can round down to zero, or is it always at least 1
osdn#43011
* Recycle Unit action has been renamed as Disband Unit Recover osdn#42959
* Unhardcoded unit regeneration special cases
+ New Min_HP_Pct effect, to unhardcode minimum HP unit gets
when in a city osdn#42699
+ New Min_HP_Regen_2 effect, to unhardcode base healing,
and healing bonus for fortified units osdn#44201
* Existence of at least one City_Vision_Radius_Sq effect in the ruleset
is now mandatory, as city without any vision wouldn't work osdn#43647
* actions
* Completely new actions
+ Spread Plague HRM#859148
+ Spy Attack HRM#859163
* More Action Enabler controlled actions
+ Pillage HRM#741274
+ Fortify HRM#742419
+ Build Road HRM#742986
+ Convert Unit HRM#747765
+ Build Base HRM#750400
+ Clean Pollution and Clean Fallout HRM#850507
+ Surgical Strike Building HRM#848643
+ Surgical Strike Production HRM#864578
+ Conquer Extras HRM#850508
+ Enter Hut and Frighten Hut HRM#919139
+ Unit Move HRM#919970
+ Unit Make Homeless osdn#41622
* ..._Possible -effects replaced with action enablers
+ Transform_Possible replaced by Transform_Terrain HRM#732503
+ Irrig_TF_Possible and Mining_TF_Possible replaced
by Cultivate and Plant HRM#735703
+ Mining_Possible replaced by Build Mine HRM#753716
+ Irrig_Possible replaced by Build Irrigation HRM#754873
* Transport loading/unloading is now controlled by revamped actions
+ Transport Alight - Unload to the same tile with the transport,
cargo acting HRM#848430
+ Transport Unload - Unload to the same tile with the transport,
transport acting HRM#848492
+ Transport Disembark - Unload to adjacent tile, cargo acting
HRM#848682
+ Transport Board - Load to the transport at the same tile,
cargo acting HRM#848637
+ Transport Embark - Load to the transport on adjacent tile,
cargo acting HRM#850022
* Suicide Attack is now separate action from Attack, allowing it to
be configured more freely HRM#783336
* Some actions are duplicated, tripled, or even quadrupled so that
the ruleset can define essentially same action to behave differently
in different situations
+ Transport Disembark HRM#850550
+ Conquer City HRM#850551
+ Bombard HRM#851451
+ Conquer Extras osdn#41513
+ Heal Unit osdn#41602
+ Unit move actions HRM#920420
* Explode Nuclear, Nuke City, and Nuke Units are now three
separate actions, so their rules can be controlled separately
HRM#850219
* Actions formerly targeting both building and current production
split to actions that target some building, and actions that target
current production HRM#852132
* More actions have maximum ranges, from the actor, that they can target to
+ Explode Nuclear HRM#854013
+ Airlift Unit (now it's possible to have a limited range)
HRM#854978
+ Nuke City and Nuke Units HRM#859845
+ Help Wonder and Disband Unit Recover HRM#875249
+ Paradrop Unit range migrated from the unit definition HRM#879114
* Number of actions with different side effects split from the former
Paradrop Unit that is now free of those hardcoded side effects
osdn#41565
* Some actions have minimum ranges, from the actor, that they can target to
+ Nuclear attacks osdn#41701
* Added user-defined actions "User Action 1" ... "User Action 4" that
do nothing by default. Ruleset is expected to make them usable
by lua scripting HRM#852112
* More actions supported by Casus_Belli_Success
+ Pillage HRM#874197
+ Move actions osdn#41627
+ Paradrop Unit actions HRM#921213
* New Casus_Belli_Complete effect, supporting just Pillage action
HRM#875465
* Actor unit properties can be used as Casus Belli requirements
HRM#921209
* For some actions it's now possible to give a list of other actions
that block them. This replaces old force_* entries
+ Blocking regular move action HRM#919110
+ Blocking actions that formerly had partial implementation
via force_* entries HRM#919172
* For some actions it's now possible to give a list of other actions
that are automatically attempted after it osdn#41524
* Ruleset now controls what actions unit tries in an attempt to escape
the tile in some situations
+ When city gets destroyed, and unit can't survive on tile
any more HRM#920149
+ When escaping stack death HRM#920951
* For some actions, ruleset has the control over their target kind
+ Whether Pillage actions consider Tile or the specific Extra
their target. This makes a difference, e.g., for any
requirements referring to the "other" player - whether it's
the tile owner, or the extra owner HRM#919305
+ Unit Explode Nuclear'' and ''Unit Nuke City'' actions have
been merged, with ruleset selecting between the old behaviors
by defining the target kind osdn#41552
* Whether an diplomat action is subject to diplchance server setting
is now controlled by new diplchance_initial_odds ruleset setting.
This is still supported for a limited set of actions HRM#849492
* Home City action enablers can be set to allow rehoming also
NoHome units. The unit flag now only means that unit is initially
built homeless osdn#41621
* Nuclear attack units can be set not to get consumed in the attack.
Makes sense when it's actually ranged attack launcher unit osdn#41681
* Found City can be set not to consume unit HRM#931180
Changes affecting lua scripting
* Lua engine has been updated to version 5.4 HRM#743677
* Luasql files have been updated to match version 2.6.0 HRM#890257
* owner property added for lua's tile data HRM#874440
* government property added for lua's player data osdn#43294
* Direction variables are now properly included to savegames HRM#880895
* Unit upgrade / transform APIs osdn#42666
+ Unit:veteran
+ Unit_Type:obsoleted_by
+ Player:can_upgrade()
+ Player:can_build_direct(.. Building_Type)
+ Player:can_build_direct(.. Unit_Type)
+ Unit:can_upgrade()
+ Unit:transform_problem()
+ Unit:upgrade()
+ Unit:transform()
* Other new methods
+ city:is_primary_capital() HRM#904702
+ action:target_kind() tells what the action was targeted at
osdn#41446
+ tile:extra_owner() returns owner of an extra on tile osdn#41445
+ find.action() to get an action osdn#41519