Disasters

What would you like to see in Freeciv? Do you have a good idea what should be improved or how?
Post Reply
adamo
Posts: 35
Joined: Sun Nov 16, 2014 6:48 pm

Disasters

Post by adamo »

Implementing disasters to the game would be good.
Some ideas are controversial, these are to discuss.

1. Infectious disease.
Info: "there's a disease in ... (city)!"

Regular virus diseases like Plague or Ebola.

=> occurrence area: everywhere (but most likely can first occur around wet & warm areas, like jungles),
=> disaster size: limited (city); actually, limited by roads connection (disease spreads between cities connected with roads),
=> population loss: some direct pop loss in affected cities (Sewer System reduces probability of affection),
=> buildings loss: none,
=> infrastructure loss: none,
=> units loss: none,
=> occurring frequency: sometimes,
=> disease length: few turns (if turn set to year; fewer if set to month).

=> notes: when medicine is developed, this threat is lowered.

2. Domesticated plants/animals pestilence.
Info: "there's a pestilence in ... (city)!"

Famine disasters (like XIXth century's Potato Blight in Ireland or African Swine Fever) can cause food shortages.

=> occurrence area: everywhere,
=> disaster size: limited (city),
=> population loss: indirect (food production is halved),
=> buildings loss: none,
=> infrastructure loss: none,
=> units loss: none (but food shortages may cause stop supporting settlers),
=> occurring frequency: rarely,
=> disease length: few turns (if turn set to year; fewer if set to month),

=> notes: when refrigeration is developed, this threat is no more.

3. Earthquake.
Info: "there's an earthquake near ... (city)!"

Earthquakes occurs in seismic hazard areas (like Japan) and causes massive devastation around the affected area.

=> occurrence area: strictly limited (seismic hazard areas are affected and others doesn't),
=> disaster size: few tiles near the occurrence area,
=> population loss: some direct pop loss in affected city; none if happened outside cities,
=> buildings loss: some random building loss in affected city; none if happened outside cities,
=> infrastructure loss: some random infrastructure (irrigation, mines, roads etc.) loss inside the occurrence area,
=> units loss: Earthquake destroys all ground units in the occurrence area,
=> occurring frequency: sometimes,
=> disease length: one-turn only.

4. Tsunami.
Info: "there's a tsunami near ... (city)!"

Tsunami occurs at oceans and causes massive devastation around the coastline.

=> occurrence area: strictly limited (coastline tiles only), can appear everywhere,
=> disaster size: few tiles,
=> population loss: some direct pop loss in affected (coastline) city, none if happened outside (coastline) cities,
=> buildings loss: some random building loss in affected (coastline) city; none if happened outside (coastline) cities,
=> infrastructure loss: some random infrastructure (irrigation, mines, roads etc.) loss inside the occurrence area (in affected coastline tiles),
=> units loss: tsunami destroys all sea units in the occurrence area,
=> occurring frequency: sometimes,
=> disease length: one-turn only.

5. Fires.
Info: "fire broke out in ... (city)!"

In medieval ages, fires often broke out in cities and caused losses of buildings.

=> occurrence area: everywhere,
=> disaster size: one tile (city only),
=> population loss: none,
=> buildings loss: some random building loss in affected city,
=> infrastructure loss: none,
=> units loss: none,
=> occurring frequency: often,
=> disease length: few turns (if turns set to month).

6. Meteorite fall.
Info: "meteorite fallen down near ... (city)!" or "meteorite destroyed ... (city)!"

Meteorite can generally fall anywhere anytime (the occurrence is absolutely random) and cause massive devastation, compared to the nuclear bomb; but, luckily, it doesn't happen very often, and - by the fact, that huge parts of earth are sparsely populated or inhabitated, there's not a big chance that it will fall right onto the city (if "Tunguska" asteroid or comet in 1908 had fallen just few hours later than it actually did, it would probably completely perish St. Petersburg - thankfully it fallen down onto unhabitated parts of Siberia; the energy was compared to the great nuclear bomb explosion, the equivalent of 10-15 megatones).

=> occurrence area: everywhere,
=> disaster size: one tile (any),
=> population loss: great direct pop loss in affected city (city pop is halved like it was nuked); none if happened outside cities,
=> buildings loss: all building loss in affected city; none if happened outside cities,
=> infrastructure loss: all infrastructure (irrigation, mines, roads etc.) loss in affected tile,
=> units loss: Meteorite fall destroys all units (military and non-military) in occurrence area,
=> occurring frequency: rarely,
=> disease length: one-turn only.

=> notes: after discovering lasers and computers, this threat is no more (suspicious objects in Solar System are now watched by scientists and will be eventually neutralized).

7. Flooding.
Info: "the river near ... (city) flood out!"

Rivers often floods and cause harms (Poland, Germany, Pakistan...). The bigger the river, the greater the chance.

=> occurrence area: strictly limited (river tiles only),
=> disaster size: few tiles (or the whole river),
=> population loss: some pop loss if city is affected; none if happened outside cities,
=> buildings loss: none
=> infrastructure loss: some random infrastructure (irrigation, mines, roads etc.) loss in affected tiles inside the occurrence area,
=> units loss: none,
=> occurring frequency: often,
=> disease length: few turns (if turn set to month).

8. Tornado.
Info: "there's a tornado near ... (city)!"

Tornadoes often happens; islands are more exposed to this than other areas. But, in this game, it's better that it might appear everywhere in the world and shouldn't be restricted just to some regions (it wouldn't be "fair" for island-based civilizations).

=> occurrence area: everywhere,
=> disaster size: few tiles,
=> population loss: some pop loss if city is affected; none if happened outside cities,
=> buildings loss: some random building loss if city is affected; none if happened outside cities,
=> infrastructure loss: some random infrastructure (irrigation, mines, roads etc.) loss in affected tiles inside the occurrence area,
=> units loss: Tornado destroys all air units in the occurrence area,
=> occurring frequency: sometimes,
=> disease length: one-turn only.

9. Volcano.
Info: "a volcano erupted near ... (city)!"

Well... volcanoes erupts. Thankfully it happens rarely. It's not wise to establish the city near volcano. If the volcanoes are added to the game, it should obviously erupt.

=> occurrence area: strictly limited (near volcanoes),
=> disaster size: one tile around the volcano,
=> population loss: some pop loss if city is affected; none if happened outside cities,
=> buildings loss: some random building loss if city is affected; none if happened outside cities,
=> infrastructure loss: all infrastructure (irrigation, mines, roads etc.) loss near the volcano eruption inside the occurrence area,
=> units loss: none,
=> occurring frequency: rarely,
=> disease length: one-turn only.

=> notes: great volcanoes eruptions can cause temporary global climate cooling. In this game, volcanoes could work just like a nuke explosion and cause a nuclear winter. This would be good addition to the gameplay.

10. Drought.
Info: "there's a drought in ... (city)!"

Several regions of the earth are often affected by droughts. Let's limit it to the cities and its surroundings (nearby city tiles).

=> occurrence area: unlimited (restricted to one affected city); restricted to warm lands (most likely desert, etc.),
=> disaster size: every tile of affected city,
=> population loss: indirect (food production is halved; aqueduct and irrigations reduces losses),
=> buildings loss: none,
=> infrastructure loss: none, but all irrigations inside the occurrence area (affected city tiles) are inactive (doesn't "work" during the disaster),
=> units loss: none,
=> occurring frequency: often,
=> disease length: few turns (if turn set to year; fewer if set to month).

11. Blizzards.
Info: "there are blizzards in ... (city)!"

Several regions of the earth are often affected by snow blizzards. Let's limit it to the cities and its surroundings (nearby city tiles).

=> occurrence area: unlimited (restricted to one affected city); restricted to cold lands (most likely tundra, etc.),
=> disaster size: every tile of affected city,
=> population loss: indirect (food production is halved),
=> buildings loss: none,
=> infrastructure loss: none, but all roads inside the occurrence area (affected city tiles) are inactive (doesn't "work" during the disaster),
=> units loss: none,
=> occurring frequency: often,
=> disease length: few turns (if turn set to year; fewer if set to month).
Last edited by adamo on Fri Jan 30, 2015 12:17 am, edited 1 time in total.
User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: Disasters

Post by GriffonSpade »

adamo wrote: 11. Snow blizzards.
Is there some other kind of blizzard? :D

Sounds like a fairly comprehensive list of things that could be added in. Wild Fires and Hurricanes come to mind as something else.
Blizzards should probably nullify trade too.
Would farmland be unaffected by drought due to the improved technology allowing crops to still be watered even then?
adamo
Posts: 35
Joined: Sun Nov 16, 2014 6:48 pm

Re: Disasters

Post by adamo »

@GriffonSpade

Wild Fires - I didn't like to propose such disasters (fires outside the city), because - as I see it (burning forests?) - it would directly change the map too much (disappearing forests?).

"Is there some other kind of blizzard" - English is not my native language, I was writing the whole post with a dictionary.

"Would farmland be unaffected by drought" - yeah, maybe it shouldn't be. Just as railroads shouldn't be affected by blizzards.

"Hurricanes" - hmm, it could slow down the movement - during this disaster, all units could move 1 tile per turn.
User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: Disasters

Post by GriffonSpade »

adamo wrote:Wild Fires - I didn't like to propose such disasters (fires outside the city), because - as I see it (burning forests?) - it would directly change the map too much (disappearing forests?).
Hmm. I don't think most wild fires destroy an entire swath of forest, but rather just sections. (The ones on the news are probably the exception) I was thinking more at nullification of production and food from forests/jungles/plains for the turn, with farmland and maybe irrigation being spared.
adamo wrote:"Is there some other kind of blizzard" - English is not my native language, I was writing the whole post with a dictionary.
You must be doing something right, as I couldn't tell it wasn't your first language.
adamo wrote:"Would farmland be unaffected by drought" - yeah, maybe it shouldn't be. Just as railroads shouldn't be affected by blizzards.
Perhaps a lesser penalty. Many farms use pumps and ground water, after all.
adamo wrote:"Hurricanes" - hmm, it could slow down the movement - during this disaster, all units could move 1 tile per turn.
Don't forget that some disasters last for only a very short period of time, like hurricanes and tornadoes, while others, like droughts, are long-lasting. A third group, like Wild Fires, happen fast, but may leave lasting damage that may take some time to be sorted out. Hurricanes should probably destroy buildings or some such. Perhaps even destroying sea units.
cazfi
Elite
Posts: 3107
Joined: Tue Jan 29, 2013 6:54 pm

Re: Disasters

Post by cazfi »

Disasters are a new feature in freeciv-2.5 but they don't function quite like you proposal.
adamo
Posts: 35
Joined: Sun Nov 16, 2014 6:48 pm

Re: Disasters

Post by adamo »

@cazfi

Oh :shock:
Good to hear. I had no idea it's being already developed.
I just searched and found this in game.ruleset:

Code: Select all

; Disaster types:
;
; name                    = translatable name as seen by user
; reqs                    = requirements for disaster to happen (see effects.ruleset
;                           and README.effects for help on requirements)
; frequency               = how likely disaster is to occur
; effects
;   - "DestroyBuilding"   = Random building is destroyed
;   - "ReducePopulation"  = Reduce city size by one unless it's already 1
;   - "ReducePopDestroy"  = Reduce city size by one, possibly destroying the city
;   - "EmptyFoodStock"    = Remove all food from food stock
;   - "EmptyProdStock"    = Destroy current production
;   - "Pollution"         = One tile surrounding city polluted
;   - "Fallout"           = One tile surrounding city polluted with fallout
;
; */ <-- avoid gettext warnings

[disaster_earthquake]
name           = _("Earthquake")
frequency      = 10
effects        = "DestroyBuilding"

[disaster_plague]
name           = _("Plague")
frequency      = 10
effects        = "ReducePopulation"

[disaster_fire]
name           = _("Fire")
frequency      = 10
effects        = "DestroyBuilding"

[disaster_industrial_accident]
name           = _("Industrial Accident")
reqs           =
    { "type", "name", "range"
      "Building", "Mfg. Plant", "City"
    }
frequency      = 10
effects        = "ReducePopulation", "Pollution"

[disaster_nuclear_accident]
name           = _("Nuclear Accident")
reqs           =
    { "type", "name", "range"
      "Building", "Nuclear Plant", "City"
    }
frequency      = 10
effects        = "ReducePopulation", "Fallout"
Maybe we could extend it a bit then?

@GriffonSpade

Thanx, post edited.

"I don't think most wild fires destroy an entire swath of forest, but rather just sections"

This is good, but it would mean that part of the map has changed naturally: "forest" changed to something else - "burnt forest" ;) ? I would rather kill all ground units inside the affected forests instead.
sveinung
Elite
Posts: 548
Joined: Wed Feb 20, 2013 4:50 pm

Re: Disasters

Post by sveinung »

adamo wrote:1. Infectious disease.
Illness (plagues) is already there. They spread along trade routes in stead of roads. You may be interested in having a look at them.
adamo wrote:2. Domesticated plants/animals pestilence.
I would have done "Potato Blight" differently. I would have used an extra (part of Freeciv 2.6) to implement it. Make it appear randomly via Lua if random appearance is desired. Let it randomly spread (Freeciv 3.0 unless you wish to implement the spreading in Lua) to neighbor tiles with Irrigation. Make it reduce food production just like the Pollution extra does. (Use the effect "Output_Tile_Punish_Pct") A tech, say "Advanced Genetic Engineering", can make the threat disappear. (Use a !present requirement in the Output_Tile_Punish_Pct effect that reduce food output with "Potato Blight"). Allow "Potato Blight" to be removed by a worker when the player gets a tech, say "Fungicides". Allow a unit, say "War Biologist", to create it.

Strategic implications: Don't irrigate next to "Potato Blight" in you own cities, create "Potato Blight" near enemy cities, have workers ready to remove "Potato Blight" before it spreads.
User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: Disasters

Post by GriffonSpade »

Hmmm, thinking about LUA, what kind of requirements can you set? For example, a tile with both mines and a coal special having the potential for 'coal mine explosion' (and gold, iron, etc mine collapses as well) event until Labor Union technology is researched. Effect is simply that the mine special is removed from the tile. Likewise, floods could happen on rivers or next to oceanic tiles and wipe out roads and irrigation. Can tile specials that have a limited lifetime, that automatically remove themselves after X time, be added?
adamo
Posts: 35
Joined: Sun Nov 16, 2014 6:48 pm

Re: Disasters

Post by adamo »

From all of it, I guess the "Meteorite Fall" would be the easiest thing to code: it just erases everything (units, infrastructure, cities...) from randomly chosen, affected tile (or 2x2 tiles, 3x3 tiles etc...).

The code might do it simple way:
1. Choose random tile from the map.
2. Clear the chosen tile from everything.

With this feature set, one could make a kind of scenario: new competition starts on unlucky planet, which is placed near a star with lot of meteorites circulating around (meteorite shower). Because of this unfortunate location, the planet is constantly bombed by trash of all kind (Earth is relatively save from this threat, but not all areas of our galaxy are so fortunate...). Every 20 years, meteorite falls somewhere (randomly chosen tile) on the planet. Every 100 years, it's not the meteorite that falls, but the asteroid, which destroys 9 tiles (3x3) at once. What would that mean to the gameplay?

=> when 1 turn = 40 years, there are ~2 meteorites falling every single turn, but planet is almost uninhabited, so the threat level is quite low (the meteorites will most likely fall on "unused" tile)*,
=> when 1 turn = 20 years, earth is bombed every single turn (but is still sparsely populated), so the threat level is still low,
=> when 1 turn = 10 years, earth is bombed every two turns (but, on the other hand, is more populated, so the meteorite will more likely fall onto the city), so the threat level arises a bit,
=> when 1 turn = 1 year, we have to wait about 20 years to be bombed (but planet is probably densely populated), so the threat level becomes higher - even though meteorites falls rarely,
=> after a while, like few hundred turns (1 turn = still 1 year), the whole planet becomes populated; the threat is uttermost - every meteorite will surely hit something.

*(of course, there's always a chance that the meteorite falls into the ocean (thus, will do no harm). But it depend on the land/ocean proportion: when 80% are of the planet is ocean, there's obviously no threat; when 80% area of the planet is land, it will most likely fall somewhere on the land)
archeologistfossils
Posts: 40
Joined: Tue Jun 28, 2016 2:55 pm

Re: Disasters

Post by archeologistfossils »

could be cool
GET OFF MY SIIIIIIIIISSSSSSSSSSSSTTTTTTTTTTTTERRRRRRRRRRRR!!!!!!!!
Post Reply