Progress: Call To Power i Civilization V

Ostatnimi czasy miałem więcej wolnego czasu. Wygospodarowałem wystarczająco, by napisać jakoś działający plaster (trudno to nazwać warstwą) kompatybilności z grą Civilization V. Idąc dalej dodałem do zestawu reguł progressCiv5 złote ery i polityki, jakie były w Civilization V, gdyż te na wzór Cywilizacji 4/6 były dostępne wcześniej.

Jak dodałem wspomniane rzeczy do nowego zestawu reguł?

Pierwszą rzeczą dodaną do silnika gry są liczniki, następnie własne mnożniki, a na samym końcu blokada zmiany polityki społecznej. Ta ostatnia, to zwyczajnie nowy rodzaj efektu z gry Freeciv (moja gra opiera się na Freeciv), co sprawdza podane mu wymogi i jeżeli są spełnione, to pozwala na zmianę polityki społecznej dla danego gniazda (slot). Innym dodanym efektem jest Add_To_Counter (Dodaj do licznika), który pozwala na dodanie/odjęcie jakiejś wartości (może to być własny mnożnik) z licznika.

Wystarczy zdefiniować parę liczników dla złotych er, jak i polityk społecznych. Będzie to: próg podniesienia o jeden poziom w górę (lub aktywacji złotej ery), a także obecny poziom szczęścia/kultury. Kiedy wspomniany próg zostanie osiągnięty, to zwiększamy obecny poziom danego zjawiska i uruchamiamy dane wydarzenie, korzystając np. z remember_target_player = true i force_min_turn = 10.

Do sprawdzenia czy próg został osiągnięty trzeba zaimportować, z pomocą wymogu nadającemu lokalną nazwę licznikowi (a właściwie dla dwóch liczników - obecnemu poziomowi i progowi), a następnie należy sprawdzić czy jeden jest większy od drugiego. Ten warunek należy podać dla wymogów kilku efektów, jak: zwiększający próg i aktywujący zdarzenie.

Dodatkowo, próg aktywacji dla możliwości zmiany pustej polityki społecznej jest obliczany na podstawie ilości miast. W tym celu iterujemy po miastach gracza, przez IterationOfCities i korzystamy z custom_counters = ".iterations".

To chyba tyle. Najnowszy kod jest na sourceforge.net

Błędy do poprawienia

W przypadku zbyt szybkiego naciśnięcia następna tura, system niekiedy zamarza. Innym błędem jest to, że gra nie pozwala, w rzadkich sytuacjach, na ustawienie pustego slotu polityki społecznej na jakąś politykę społeczną (zakaz zmiany ustawionego slotu jest pożądany ze względu na chęć kompatybilności z Civilization V).