Freeciv
Advertisement


The effects.ruleset file contains all effects in play in a Freeciv scenario. They have the following form (this is perhaps the most complicated example I could find):

[effect_hydro_plant]
name  = "Output_Bonus"
value = 25
reqs  =
    { "type", "name", "range"
      "Building", "Factory", "City"
      "Building", "Hydro Plant", "City"
      "OutputType", "Shield", "Local"
    }
nreqs =
    { "type", "name", "range"
      "Building", "Hoover Dam", "Player"
      "Building", "Nuclear Plant", "City"
    }

The text in the brackets is the entry name, which just has to be unique, but is otherwise not used. The name field tells Freeciv which effect you are defining. The value is the effect's value, which depends on which effect it is. The reqs table contain a list of requirements for this effect being in effect. You need to satisfy all requirements listed here for this effect to take effect in the game. Lastly there is the nreqs table which is the opposite of the reqs field, these are conditions which prevent the effect from taking place. Any one of the nreq conditions will prevent the effect from taking effect.

Value is integral amount parameter for many effects (must be in the range -32767 to 32767).

Requirement range may be one of: "None", "Local", "Adjacent", "City", "Continent", "Player", "World". Some requirement types may only work at certain ranges; this is not yet documented. In particular, at present, "Continent" effects can affect only cities and units in cities.

A requirement may have a survives field, and if this is '1', the effect survives destruction (wonders only).

A requirement type is the type of the requirement and can be one of "None" (default), "Tech", "Gov", "Building", "Special", "Terrain", "UnitType", "UnitFlag", "UnitClass", "Nation", "OutputType", "MinSize", "AI" and "TerrainClass". MinSize is the minimum size of a city required. AI is ai player difficulty level. TerrainClass is either "Land" or "Oceanic".

Effect types

Tech_Parasite
Gain any advance known already by amount number of other players. Note that if you have two such effects, they combine into one much worse effect (the number of players required to gain an advance is increased).
Airlift
Allow airlift to/from a city.
Any_Government
Allow instant government changes.
Capital_City
The city with this effect is the capital city.
Enable_Nuke
Allows the production of nuclear weapons.
Enable_Space
Allows the production of space components.
Specialist_Output
Specify what outputs a specialist is producing. Should be used with an OutputType requirement.
Output_Bonus
City production is increased by amount percent.
Output_Bonus_2
City production is increased by amount percent after Output_Bonus, so is multiplicative with it.
Output_Add_Tile
Add amount to each worked tile.
Output_Inc_Tile
Add amount to each worked tile that already has at least 1 output.
Output_Per_Tile
Increase tile output by amount percent.
Output_Waste_Pct
Reduce waste by amount percent.
Force_Content
Make amount' unhappy citizens content. Applied after martial law and unit penalties.
Give_Imm_Tech
Give amount techs immediately.
Growth_Food
Food left after cities grow or shrink is amount percent of the capacity of the city's foodbox.
Have_Embassies
Like having embassies with all other players.
Make_Content
Make amount unhappy citizens content. Applied before martial law and unit penalties.
Make_Content_Mil
Make amount unhappy citizens caused by units outside of a city content.
Make_Content_Mil_Per
Make amount per unit of unhappy citizens caused by units outside of a city content.
Make_Happy
Make amount citizens happy.
No_Anarchy
No period of anarchy between government changes.
No_Sink_Deep
Triremes no longer sink when on dangerous seas.
Nuke_Proof
City is nuke proof.
Pollu_Pop_Pct
Increases pollution caused by population by amount percent.
Pollu_Prod_Pct
Increases pollution caused by shields by amount percent.
Reveal_Cities
Immediately make all cities known.
Reveal_Map
Immediately make entire map known.
Incite_Cost_Pct
Increases revolt cost by amount percent.
Size_Adj
Increase maximum size of a city by amount.
Size_Unlimit
Make the size of a city unlimited.
SS_Structural, SS_Component and SS_Module
A part of a spaceship; this is a "Local" ranged effect. It (for now) applies to improvements which cannot be built unless "Enable_Space" is felt. Buildings which have this effect should probably not be given any other effects.
Spy_Resistant
If a spy specifies a target for sabotage, then she has an AMOUNT percent chance to fail. Also in diplomatic combat defending diplomatic units in cities will get an AMOUNT percent bonus. All Spy_Resistant's are summed before being applied.
Move_Bonus
Add amount movement to units. Use UnitClass' requirement with range of 'Local' to give it a specific class of units only.
Unit_No_Lose_Pop
No population lost when a city's defender is lost.
Unit_Recover
Units recover amount extra hitpoints per turn.
Upgrade_Unit
Upgrade amount obsolete units per turn.
Upkeep_Free
Improvements with amount or less upkeep cost become free to upkeep (others are unaffected).
No_Unhappy
No citizens in the city are ever unhappy.
Veteran_Build
New land units of this type have veteran class 1. The amount value is ignored, so that you can have multiple Veteran_Build effects, and units will only get 1 free veterancy level. This is considered a feature at the moment.
Veteran_Combat
Increases the chance of units of this type becoming veteran after combat by amount percent.
HP_Regen
Units that do not move recover amount percentage of their full hitpoints per turn.
City_Vision_Radius_Sq
Increase city vision radius in squared distance by amount tiles.
Unit_Vision_Radius_Sq
Increase unit vision radius in squared distance by amount tiles.
Defend_Bonus
Increases defensive bonuses of units. Any unit requirements on this effect will be applied to the _attacking_ unit.
No_Incite
City cannot be incited.
Gain_AI_Love
Gain amount points of "AI love" with AI(s).
Slow_Down_Timeline
Slow down the timeline based on the AMOUNT. If AMOUNT >= 3 the timeline will be 1 year/turn; with AMOUNT == 2 it is 2 years/turn; with AMOUNT == 1 it is 5 years/turn; with AMOUNT <= 0 the timeline is unaffected. The effect will be ignored if game.spacerace isn't set.
Civil_War_Chance
Chance of player splitting due to civil war when capital captured is increased by amount.
Empire_Size_Mod
Once your civilization has more cities than amount + the server setting 'cityfactor', each city gets one more unhappy citizen. Removed in version 2.2.
Empire_Size_Base
Once your civilization has more cities than amount, each city gets one more unhappy citizen. Set to zero to disable. New in 2.2.
Empire_Size_Step
After your civilization reaches Empire_Size_Base size, it gets one more unhappy citizen for each amount of cities it gets above that. Set to zero to disable. You can use Empire_Size_Step even though Empire_Size_Base is zero.
Max_Rates
The maximum setting for each tax rate is amount.
Martial_Law_Each
The amount of citizens pacified by each military unit giving martial law.
Martial_Law_Max
The maximum amount of units that will give martial law in city.
Rapture_Grow
Can rapture grow cities.
Unbribable_Units
Units cannot be bribed.
Revolution_When_Unhappy
If a city owned by this player is in revolt for more than two turns, government falls.
Has_Senate
Has a senate that prevents declarations of war in most cases.
Inspire_Partisans
Partisan units (defined in units.ruleset) may spring up when this player's cities are taken.
Happiness_To_Gold
Make all Make_Content and Force_Content effects instead generate gold.
Fanatics
Special case for Fanatics unit only.
No_Diplomacy
Cannot use any diplomacy.
Trade_Revenue_Bonus
Trade revenue is multiplied by pow(2, amount/1000). The amount value is taken from the caravan's home city.
Unhappy_Factor
Multiply unhappy unit upkeep by amount.
Upkeep_Factor
Multiply unit upkeep by amount.
Unit_Upkeep_Free_Per_City
In each city amount of units are free from upkeep. As usual, you can use with OutputType requirement to specify which kind of upkeep this should be.
Output_Waste
Base amount in percentage that each city has in waste. Waste can be used with any output type, use an OutputType requirement to specify which.
Output_Waste_By_Distance
For each tile in real distance that a city is from your capital, it gets amount of extra waste.
Output_Penalty_Tile
When a tile yields more output than amount, it gets a penalty of -1.
Output_Inc_Tile_Celebrate
Tiles get amount extra output when city working them is celebrating.
City_Unhappy_Size
Each citizen after amount of citizens are unhappy instead of content. New in 2.2.
Advertisement