More (probably) silly questions

Contribute, display and discuss rulesets and modpacks for use in Freeciv here.
Post Reply
FriendAtArms
Posts: 15
Joined: Thu Apr 16, 2026 9:35 pm

More (probably) silly questions

Post by FriendAtArms »

I fixed the "Turn 2 crash" problem I mentioned in my last thread, and I'm moving on to a new one. Hopefully that's all right.

My ruleset has a Temple of Artemis wonder, unlocked by a tech called Syncretism. I want the ToA to replace any Temple improvement in a city where it's built, and only that city.

What happens in practice is, as soon as I research Syncretism, every city with a Temple in its worklist automatically upgrades it to a ToA. (If the Temple was already built, it doesn't get upgraded.) The reason, of course, is that I put this in the Buildings file under Temple:
obsolete_by =
{ "type", "name", "range"
"Building", "Temple of Artemis", "City"
}
Clearly, ToA obsoleting Temple isn't the way to go here. Is there a way I can make this wonder replace a Temple in its own city, but not affect any other Temple?
cazfi
Elite
Posts: 3476
Joined: Tue Jan 29, 2013 6:54 pm

Re: More (probably) silly questions

Post by cazfi »

Most rulesets still allow the replaced "normal" improvements to be present, its effects just not active, in such a cases where a wonder replaces an improvement. This is to allow player to be prepared for a loss or obsoletion of the wonder.
To make building's effects inactive that way, just add a requirement that the wonder isn't present in the city, for each effect.
If you really want, you can also add a requirement for the Temple that the ToA isn't present, but that only prevents building new Temple after ToA has already been constructed. It would not affect Temples build already before ToA,
FriendAtArms
Posts: 15
Joined: Thu Apr 16, 2026 9:35 pm

Re: More (probably) silly questions

Post by FriendAtArms »

I think I understand. I'll try out the "wonder isn't present in the city" requirement, and see if I like what happens. If not, I'll just rethink what the Temple of Artemis does in my ruleset. Thank you!

The next set of questions has to do with the UI (I think). Ahem:

- Is there any way to replace the term "pillage" with "raze"? I want my worker-units to be able to destroy terrain extras as well as build them, but saying they're "pillaging" feels odd to me.

- Just to see if I could, I changed the name of the basic terrain extras: "Irrigation" to "Farm", etc. When a unit with the Settlers flag is on a tile where a "Farm" can be built, the toolbar says "Build Farm". But when that unit is on an invalid tile, the toolbar says "Build Irrigation" (grayed out). The same happens for units without the Settlers flag, regardless of the tile they're on. I know that by changing ui_name_base_fortress and ui_name_base_airbase in the Terrain file, you can make the toolbar use new names for bases. Is there a similar option for other extras?

- I have a disaster called "Famine", which is stopped by an improvement called "Storehouse". Storehouses are always crossed out in city worklists. I know this means the program has categorized Storehouses as redundant, and eventually they shouldn't be crossed out anymore. But the Famine disaster always hits before the program recognizes the need for Storehouses. In fact, the program never recognized the need for Storehouses in any of my playtests, even the ones that went to Turn 100. Is this a UI problem? Or do I need to rewrite either the improvement or the disaster?
Dino the Dinosore
Hardened
Posts: 225
Joined: Sun Dec 31, 2017 3:41 am

Re: More (probably) silly questions

Post by Dino the Dinosore »

- Is there any way to replace the term "pillage" with "raze"?
I thought adding this in actions.ruleset would do it, but it doesn't replace every occurrence of the term "Pillage".

Code: Select all

[action_pillage]
action="Pillage"
ui_name=_("Raze%s")
Dino the Dinosore
Hardened
Posts: 225
Joined: Sun Dec 31, 2017 3:41 am

Re: More (probably) silly questions

Post by Dino the Dinosore »

Oops, that code example is for version 3.3, the version for 3.2 is

Code: Select all

ui_name_pillage = "Raze%s"
I think the fact that it only partially works could be a bug.
Post Reply