=><=
''Brendan's Ecosystem Simulator''
<==
<font size=3>
---
|=
Starting biome: (dropdown: bind $StartingBiome, "Mixed", "Temperate", "Boreal", "Grassland", "Wetland", "Shield", "Random") [[(?)->Starting Biome]]
Ecological Succession: (dropdown: bind $succession, "Off", "On") [[(?)->Ecological Succession]]
Refresh speed: (dropdown: bind $refresh, "Very Slow", "Slow", "Medium", "Fast") [[(?)->Refresh Speed]]
=|
==>
[[How does it work?->How It Works]]
[[Developer Notes]]
|==|
---
</font>
=><=
''[[Begin!->Setup 1]]''
<font size=3>
Version 2.0. (April 2021)
Copyright (C) by Brendan Myers, 2021. All rights reserved.
<!-- setting up initial values for all niches --!>
(set: $Hab1 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab2 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab3 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab4 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab5 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab6 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab7 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab8 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab9 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab10 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab11 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab12 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab13 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab14 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab15 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab16 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab17 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab18 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab19 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab20 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(set: $Hab21 to (dm:
"name", "none", "type", "none", "pop", 0, "defence", 0, "biomass", 0, "prev", 0, "ecosp", "none"))
(goto: "Setup 2")
(set: $Seeds to 0, $Insects to 0, $Nuts to 0, $Berries to 0, $Fungi to 0)
(if: $StartingBiome is "Mixed")[
(set: $Shield to (dm: "area", 100, "prev", 100, "pressure", 0))
(set: $Grassland to (dm: "area", 100, "prev", 100, "pressure", 0))
(set: $Temperate to (dm: "area", 100, "prev", 100, "pressure", 0))
(set: $Boreal to (dm: "area", 100, "prev", 100, "pressure", 0))
(set: $Wetland to (dm: "area", 100, "prev", 100, "pressure", 0))
]
(if: $StartingBiome is "Temperate")[
(set: $Shield to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Grassland to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Temperate to (dm: "area", 400, "prev", 400, "pressure", 0))
(set: $Boreal to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Wetland to (dm: "area", 25, "prev", 25, "pressure", 0))
]
(if: $StartingBiome is "Boreal")[
(set: $Shield to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Grassland to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Temperate to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Boreal to (dm: "area", 400, "prev", 400, "pressure", 0))
(set: $Wetland to (dm: "area", 25, "prev", 25, "pressure", 0))
]
(if: $StartingBiome is "Shield")[
(set: $Shield to (dm: "area", 400, "prev", 400, "pressure", 0))
(set: $Grassland to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Temperate to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Boreal to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Wetland to (dm: "area", 25, "prev", 25, "pressure", 0))
]
(if: $StartingBiome is "Grassland")[
(set: $Shield to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Grassland to (dm: "area", 400, "prev", 400, "pressure", 0))
(set: $Temperate to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Boreal to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Wetland to (dm: "area", 25, "prev", 25, "pressure", 0))
]
(if: $StartingBiome is "Wetland")[
(set: $Shield to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Grassland to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Temperate to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Boreal to (dm: "area", 25, "prev", 25, "pressure", 0))
(set: $Wetland to (dm: "area", 400, "prev", 400, "pressure", 0))
]
(if: $StartingBiome is "Random")[
(set: $Shield to (dm: "area", (random: 1,300) + 100, "prev", 1, "pressure", 0))
(set: $Grassland to (dm: "area", (random: 1,300) + 100, "prev", 1, "pressure", 0))
(set: $Temperate to (dm: "area", (random: 1,300) + 100, "prev", 1, "pressure", 0))
(set: $Boreal to (dm: "area", (random: 1,300) + 100, "prev", 1, "pressure", 0))
(set: $Wetland to (dm: "area", (random: 1,300) + 100, "prev", 1, "pressure", 0))
]
(set: $TotalArea to $Shield's area + $Grassland's area + $Temperate's area + $Boreal's area + $Wetland's area)
(Set: $death to 1)
(set: $CreatureList to (a: "Mountain Lion", "Lynx", "Grizzly Bear", "Black Bear", "Wolf", "Wild Boar", "Moose", "Caribou", "Elk", "Coyote", "Wolverine", "Red Fox", "Mouse", "Rabbit", "Whitetail Deer", "Beaver", "Eagle", "Hawk", "Falcon", "Vulture", "Horned Owl", "Duck", "Turkey", "Canada Goose", "Great Blue Heron", "Raven", "Loon", "Robin", "Cardinal", "Blue Jay", "Woodpecker", "Goldfinch", "Chickadee", "Snake", "Turtle", "Lizard", "Frog", "Northern Pike", "Lake Trout", "Bass", "Perch", "Walleye", "Minnow", "Crayfish", "Maple Trees", "Oak Trees", "Birch Trees", "Willow Trees", "Ash Trees", "Pine Trees", "Spruce Trees", "Cedar Trees", "Chestnut Trees", "Rowan Trees", "Cherry Trees", "Tallgrasses", "Wildflowers", "Ferns", "Shrubs", "Aquatic Plants"))
(if: $refresh is "Fast")[(set: $speed to 1.5)]
(if: $refresh is "Medium")[(set: $speed to 3.5)]
(if: $refresh is "Slow")[(set: $speed to 8)]
(if: $refresh is "Very Slow")[(set: $speed to 12)]
(goto: "Main Interface")
<font size=3> \
|=
=><=
(print: $Seeds)
Seeds
=|=
=><=
(print: $Nuts)
Nuts
=|=
=><=
(print: $Berries)
Berries
=|=
=><=
(print: $Fungi)
Fungi
=|=
=><=
(print: $Insects)
Insects
=|=
=><=
(print: $death)
Detritus
|==|
---
(display: "Ecosystem display - Row 1")
(display: "Ecosystem display - Row 2")
(display: "Ecosystem display - Row 3")
---
(display: "Biome area display")
---
<==
(set: $timer to 0) \
{(live: 0.01s)[ (set: $timer to it +0.01) \
(meter: bind $timer, $speed, "•", blue ) ]} \
(event: when $timer is > $speed)[(goto: "Ecosystem Begins")]
|=
Refresh speed: //(print: $refresh)//. • Ecological succession: //(print: $succession)//.
[[Start again->Title Page]] • [[Change Settings]] • [[Pause]]
=|
==>
[[Next Turn->Ecosystem Begins]]
|==|(if: $PlaceRef is 1)[(display: $Hab1's name)]
(if: $PlaceRef is 2)[(display: $Hab2's name)]
(if: $PlaceRef is 3)[(display: $Hab3's name)]
(if: $PlaceRef is 4)[(display: $Hab4's name)]
(if: $PlaceRef is 5)[(display: $Hab5's name)]
(if: $PlaceRef is 6)[(display: $Hab6's name)]
(if: $PlaceRef is 7)[(display: $Hab7's name)]
(if: $PlaceRef is 8)[(display: $Hab8's name)]
(if: $PlaceRef is 9)[(display: $Hab9's name)]
(if: $PlaceRef is 10)[(display: $Hab10's name)]
(if: $PlaceRef is 11)[(display: $Hab11's name)]
(if: $PlaceRef is 12)[(display: $Hab12's name)]
(if: $PlaceRef is 13)[(display: $Hab13's name)]
(if: $PlaceRef is 14)[(display: $Hab14's name)]
(if: $PlaceRef is 15)[(display: $Hab15's name)]
(if: $PlaceRef is 16)[(display: $Hab16's name)]
(if: $PlaceRef is 17)[(display: $Hab17's name)]
(if: $PlaceRef is 18)[(display: $Hab18's name)]
(if: $PlaceRef is 19)[(display: $Hab19's name)]
(if: $PlaceRef is 20)[(display: $Hab20's name)]
(if: $PlaceRef is 21)[(display: $Hab21's name)]
(set: $Creature to (dm:
"name", $CreatureData2's name,
"type", $CreatureData2's type,
"weight", $CreatureData2's biomass,
"biomes", $CreatureData2's biomes,
"add", $CreatureData2's startingpop))
(set: $CreaturePreyInfo to $CreaturePrey)
<!-- figure out how many predators for this creature are in the ecosystem. --!>
(set: $Predators to (a: ""))
(for: each _item, ...$CreatureList)[
(display: _item)
(if: $Creature's name is in $CreaturePrey)[(set: $Predators to it + (a: $CreatureData2's name))]]
(goto: "Info Display")
=><=
Add life form in habitat (print: $PlaceRef)
---
<==
|=
//Trees//
<font size=3>\
[(link: "Maple Trees")[(set: $LifeForm to "Maple Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Oak Trees")[(set: $LifeForm to "Oak Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Birch Trees")[(set: $LifeForm to "Birch Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Willow Trees")[(set: $LifeForm to "Willow Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Ash Trees")[(set: $LifeForm to "Ash Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Pine Trees")[(set: $LifeForm to "Pine Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Spruce Trees")[(set: $LifeForm to "Spruce Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Cedar Trees")[(set: $LifeForm to "Cedar Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Chestnut Trees")[(set: $LifeForm to "Chestnut Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Rowan Trees")[(set: $LifeForm to "Rowan Trees")(goto: "Add Lifeform 2")]] • \
[(link: "Cherry Trees")[(set: $LifeForm to "Cherry Trees")(goto: "Add Lifeform 2")]] \
</font>\
=|
//Plants//
<font size=3>\
[(link: "Tallgrasses")[(set: $LifeForm to "Tallgrasses")(goto: "Add Lifeform 2")]] • \
[(link: "Wildflowers")[(set: $LifeForm to "Wildflowers")(goto: "Add Lifeform 2")]] • \
[(link: "Ferns")[(set: $LifeForm to "Ferns")(goto: "Add Lifeform 2")]] • \
[(link: "Shrubs")[(set: $LifeForm to "Shrubs")(goto: "Add Lifeform 2")]] • \
[(link: "Aquatic Plants")[(set: $LifeForm to "Aquatic Plants")(goto: "Add Lifeform 2")]] \
</font>
|==|
---
|=
//Small Mammals//
<font size=3>\
[(link: "Coyote")[(set: $LifeForm to "Coyote")(goto: "Add Lifeform 2")]] • \
[(link: "Wolverine")[(set: $LifeForm to "Wolverine")(goto: "Add Lifeform 2")]] • \
[(link: "Red Fox")[(set: $LifeForm to "Red Fox")(goto: "Add Lifeform 2")]] • \
[(link: "Mouse")[(set: $LifeForm to "Mouse")(goto: "Add Lifeform 2")]] • \
[(link: "Rabbit")[(set: $LifeForm to "Rabbit")(goto: "Add Lifeform 2")]] • \
[(link: "Whitetail Deer")[(set: $LifeForm to "Whitetail Deer")(goto: "Add Lifeform 2")]] • \
[(link: "Beaver")[(set: $LifeForm to "Beaver")(goto: "Add Lifeform 2")]] \
</font>\
=|
//Large Mammals//
<font size=3>\
[(link: "Mountain Lion")[(set: $LifeForm to "Mountain Lion")(goto: "Add Lifeform 2")]] • \
[(link: "Lynx")[(set: $LifeForm to "Lynx")(goto: "Add Lifeform 2")]] • \
[(link: "Grizzly Bear")[(set: $LifeForm to "Grizzly Bear")(goto: "Add Lifeform 2")]] • \
[(link: "Black Bear")[(set: $LifeForm to "Black Bear")(goto: "Add Lifeform 2")]] • \
[(link: "Wolf")[(set: $LifeForm to "Wolf")(goto: "Add Lifeform 2")]] • \
[(link: "Wild Boar")[(set: $LifeForm to "Wild Boar")(goto: "Add Lifeform 2")]] • \
[(link: "Moose")[(set: $LifeForm to "Moose")(goto: "Add Lifeform 2")]] • \
[(link: "Caribou")[(set: $LifeForm to "Caribou")(goto: "Add Lifeform 2")]] • \
[(link: "Elk")[(set: $LifeForm to "Elk")(goto: "Add Lifeform 2")]] \
</font>\
|==|
---
|=
//Small Birds//
<font size=3>\
[(link: "Raven")[(set: $LifeForm to "Raven")(goto: "Add Lifeform 2")]] • \
[(link: "Loon")[(set: $LifeForm to "Loon")(goto: "Add Lifeform 2")]] • \
[(link: "Robin")[(set: $LifeForm to "Robin")(goto: "Add Lifeform 2")]] • \
[(link: "Cardinal")[(set: $LifeForm to "Cardinal")(goto: "Add Lifeform 2")]] • \
[(link: "Blue Jay")[(set: $LifeForm to "Blue Jay")(goto: "Add Lifeform 2")]] • \
[(link: "Woodpecker")[(set: $LifeForm to "Woodpecker")(goto: "Add Lifeform 2")]] • \
[(link: "Goldfinch")[(set: $LifeForm to "Goldfinch")(goto: "Add Lifeform 2")]] • \
[(link: "Chickadee")[(set: $LifeForm to "Chickadee")(goto: "Add Lifeform 2")]] \
</font>\
=|
//Large Birds//
<font size=3>\
[(link: "Eagle")[(set: $LifeForm to "Eagle")(goto: "Add Lifeform 2")]] • \
[(link: "Hawk")[(set: $LifeForm to "Hawk")(goto: "Add Lifeform 2")]] • \
[(link: "Falcon")[(set: $LifeForm to "Falcon")(goto: "Add Lifeform 2")]] • \
[(link: "Vulture")[(set: $LifeForm to "Vulture")(goto: "Add Lifeform 2")]] • \
[(link: "Horned Owl")[(set: $LifeForm to "Horned Owl")(goto: "Add Lifeform 2")]] • \
[(link: "Duck")[(set: $LifeForm to "Duck")(goto: "Add Lifeform 2")]] • \
[(link: "Turkey")[(set: $LifeForm to "Turkey")(goto: "Add Lifeform 2")]] • \
[(link: "Canada Goose")[(set: $LifeForm to "Canada Goose")(goto: "Add Lifeform 2")]] • \
[(link: "Great Blue Heron")[(set: $LifeForm to "Great Blue Heron")(goto: "Add Lifeform 2")]] \
</font>\
|==|
---
|=
//Amphibians and Reptiles//
<font size=3>\
[(link: "Snake")[(set: $LifeForm to "Snake")(goto: "Add Lifeform 2")]] • \
[(link: "Turtle")[(set: $LifeForm to "Turtle")(goto: "Add Lifeform 2")]] • \
[(link: "Lizard")[(set: $LifeForm to "Lizard")(goto: "Add Lifeform 2")]] • \
[(link: "Frog")[(set: $LifeForm to "Frog")(goto: "Add Lifeform 2")]] \
</font>
=|
//Fish//
<font size=3>\
[(link: "Northern Pike")[(set: $LifeForm to "Northern Pike")(goto: "Add Lifeform 2")]] • \
[(link: "Lake Trout")[(set: $LifeForm to "Lake Trout")(goto: "Add Lifeform 2")]] • \
[(link: "Bass")[(set: $LifeForm to "Bass")(goto: "Add Lifeform 2")]] • \
[(link: "Perch")[(set: $LifeForm to "Perch")(goto: "Add Lifeform 2")]] • \
[(link: "Walleye")[(set: $LifeForm to "Walleye")(goto: "Add Lifeform 2")]] • \
[(link: "Minnow")[(set: $LifeForm to "Minnow")(goto: "Add Lifeform 2")]] • \
[(link: "Crayfish")[(set: $LifeForm to "Crayfish")(goto: "Add Lifeform 2")]] \
</font>
|==|
==>
Return to the [[Main Interface]]
(if: $PlaceRef is 1)[
(set: $Hab1 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 2)[
(set: $Hab2 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 3)[
(set: $Hab3 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 4)[
(set: $Hab4 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 5)[
(set: $Hab5 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 6)[
(set: $Hab6 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 7)[
(set: $Hab7 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 8)[
(set: $Hab8 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 9)[
(set: $Hab9 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 10)[
(set: $Hab10 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 11)[
(set: $Hab11 to (dm: "name", "none", "type", "none", "pop", 0, 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 12)[
(set: $Hab12 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 13)[
(set: $Hab13 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 14)[
(set: $Hab14 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 15)[
(set: $Hab15 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 16)[
(set: $Hab16 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 17)[
(set: $Hab17 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 18)[
(set: $Hab18 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 19)[
(set: $Hab19 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 20)[
(set: $Hab20 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(if: $PlaceRef is 21)[
(set: $Hab21 to (dm: "name", "none", "type", "none", "pop", 0, "prev", 0, "checksum", 0))]
(goto: "Main Interface")
(if: $PlaceRef is 1)[
(display: $LifeForm)
(set: $Hab1 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 2)[
(display: $LifeForm)
(set: $Hab2 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 3)[
(display: $LifeForm)
(set: $Hab3 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 4)[
(display: $LifeForm)
(set: $Hab4 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 5)[
(display: $LifeForm)
(set: $Hab5 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 6)[
(display: $LifeForm)
(set: $Hab6 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 7)[
(display: $LifeForm)
(set: $Hab7 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 8)[
(display: $LifeForm)
(set: $Hab8 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 9)[
(display: $LifeForm)
(set: $Hab9 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 10)[
(display: $LifeForm)
(set: $Hab10 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 11)[
(display: $LifeForm)
(set: $Hab11 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 12)[
(display: $LifeForm)
(set: $Hab12 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(goto: "Add Lifeform 3")
<!-- continuing the placements.... --!>
(if: $PlaceRef is 13)[
(display: $LifeForm)
(set: $Hab13 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 14)[
(display: $LifeForm)
(set: $Hab14 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 15)[
(display: $LifeForm)
(set: $Hab15 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 16)[
(display: $LifeForm)
(set: $Hab16 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 17)[
(display: $LifeForm)
(set: $Hab17 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 18)[
(display: $LifeForm)
(set: $Hab18 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 19)[
(display: $LifeForm)
(set: $Hab19 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 20)[
(display: $LifeForm)
(set: $Hab20 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(if: $PlaceRef is 21)[
(display: $LifeForm)
(set: $Hab21 to (dm: "name", $CreatureData2's name, "type", $CreatureData2's type, "pop", $CreatureData2's startingpop, "defence", $CreatureData2's defence, "biomass", $CreatureData2's biomass, "range", $CreatureData2's range, "prev", $CreatureData2's startingpop, "ecosp", $CreatureData2's ecosp))]
(goto: "Main Interface")<!-- here we go with the action in the ecosystem!
In this step, we move the data for each inhabitant of each habitat into a temp variable--!>
(if: $Hab1's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab1's name, "type", $Hab1's type, "pop", $Hab1's pop, "biomass", $Hab1's biomass, "prev", $Hab1's prev, "ecosp", $Hab1's ecosp))
(display: $Hab1's name) <!-- gets data for the prey lifeforms; puts it all into CreatureData2 --!>
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab1's prev to $Hab1's pop)
(set: $Hab1's pop to $NewPop)]
(if: $Hab2's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab2's name, "type", $Hab2's type, "pop", $Hab2's pop, "biomass", $Hab2's biomass, "prev", $Hab2's prev, "ecosp", $Hab2's ecosp))
(display: $Hab2's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab2's prev to $Hab2's pop)
(set: $Hab2's pop to $NewPop)]
(if: $Hab3's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab3's name, "type", $Hab3's type, "pop", $Hab3's pop, "biomass", $Hab3's biomass, "prev", $Hab3's prev, "ecosp", $Hab3's ecosp))
(display: $Hab3's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab3's prev to $Hab3's pop)
(set: $Hab3's pop to $NewPop)]
(if: $Hab4's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab4's name, "type", $Hab4's type, "pop", $Hab4's pop, "biomass", $Hab4's biomass, "prev", $Hab4's prev, "ecosp", $Hab4's ecosp))
(display: $Hab4's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab4's prev to $Hab4's pop)
(set: $Hab4's pop to $NewPop)]
(if: $Hab5's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab5's name, "type", $Hab5's type, "pop", $Hab5's pop, "biomass", $Hab5's biomass, "prev", $Hab5's prev, "ecosp", $Hab5's ecosp))
(display: $Hab5's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab5's prev to $Hab5's pop)
(set: $Hab5's pop to $NewPop)]
(if: $Hab6's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab6's name, "type", $Hab6's type, "pop", $Hab6's pop, "biomass", $Hab6's biomass, "prev", $Hab6's prev, "ecosp", $Hab6's ecosp))
(display: $Hab6's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab6's prev to $Hab6's pop)
(set: $Hab6's pop to $NewPop)]
(if: $Hab7's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab7's name, "type", $Hab7's type, "pop", $Hab7's pop, "biomass", $Hab7's biomass, "prev", $Hab7's prev, "ecosp", $Hab7's ecosp))
(display: $Hab7's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab7's prev to $Hab7's pop)
(set: $Hab7's pop to $NewPop)]
(if: $Hab8's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab8's name, "type", $Hab8's type, "pop", $Hab8's pop, "biomass", $Hab8's biomass, "prev", $Hab8's prev, "ecosp", $Hab8's ecosp))
(display: $Hab8's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab8's prev to $Hab8's pop)
(set: $Hab8's pop to $NewPop)]
(if: $Hab9's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab9's name, "type", $Hab9's type, "pop", $Hab9's pop, "biomass", $Hab9's biomass, "prev", $Hab9's prev, "ecosp", $Hab9's ecosp))
(display: $Hab9's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab9's prev to $Hab9's pop)
(set: $Hab9's pop to $NewPop)]
(if: $Hab10's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab10's name, "type", $Hab10's type, "pop", $Hab10's pop, "biomass", $Hab10's biomass, "prev", $Hab10's prev, "ecosp", $Hab10's ecosp))
(display: $Hab10's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab10's prev to $Hab10's pop)
(set: $Hab10's pop to $NewPop)]
(if: $Hab11's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab11's name, "type", $Hab11's type, "pop", $Hab11's pop, "biomass", $Hab11's biomass, "prev", $Hab11's prev, "ecosp", $Hab11's ecosp))
(display: $Hab11's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab11's prev to $Hab11's pop)
(set: $Hab11's pop to $NewPop)]
(if: $Hab12's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab12's name, "type", $Hab12's type, "pop", $Hab12's pop, "biomass", $Hab12's biomass, "prev", $Hab12's prev, "ecosp", $Hab12's ecosp))
(display: $Hab12's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab12's prev to $Hab12's pop)
(set: $Hab12's pop to $NewPop)]
(if: $Hab13's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab13's name, "type", $Hab13's type, "pop", $Hab13's pop, "biomass", $Hab13's biomass, "prev", $Hab13's prev, "ecosp", $Hab13's ecosp))
(display: $Hab13's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab13's prev to $Hab13's pop)
(set: $Hab13's pop to $NewPop)]
(if: $Hab14's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab14's name, "type", $Hab14's type, "pop", $Hab14's pop, "biomass", $Hab14's biomass, "prev", $Hab14's prev, "ecosp", $Hab14's ecosp))
(display: $Hab14's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab14's prev to $Hab14's pop)
(set: $Hab14's pop to $NewPop)]
(if: $Hab15's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab15's name, "type", $Hab15's type, "pop", $Hab15's pop, "biomass", $Hab15's biomass, "prev", $Hab15's prev, "ecosp", $Hab15's ecosp))
(display: $Hab15's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab15's prev to $Hab15's pop)
(set: $Hab15's pop to $NewPop)]
(if: $Hab16's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab16's name, "type", $Hab16's type, "pop", $Hab16's pop, "biomass", $Hab16's biomass, "prev", $Hab16's prev, "ecosp", $Hab16's ecosp))
(display: $Hab16's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab16's prev to $Hab16's pop)
(set: $Hab16's pop to $NewPop)]
(if: $Hab17's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab17's name, "type", $Hab17's type, "pop", $Hab17's pop, "biomass", $Hab17's biomass, "prev", $Hab17's prev, "ecosp", $Hab17's ecosp))
(display: $Hab17's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab17's prev to $Hab17's pop)
(set: $Hab17's pop to $NewPop)]
(if: $Hab18's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab18's name, "type", $Hab18's type, "pop", $Hab18's pop, "biomass", $Hab18's biomass, "prev", $Hab18's prev, "ecosp", $Hab18's ecosp))
(display: $Hab18's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab18's prev to $Hab18's pop)
(set: $Hab18's pop to $NewPop)]
(if: $Hab19's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab19's name, "type", $Hab19's type, "pop", $Hab19's pop, "biomass", $Hab19's biomass, "prev", $Hab19's prev, "ecosp", $Hab19's ecosp))
(display: $Hab19's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab19's prev to $Hab19's pop)
(set: $Hab19's pop to $NewPop)]
(if: $Hab20's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab20's name, "type", $Hab20's type, "pop", $Hab20's pop, "biomass", $Hab20's biomass, "prev", $Hab20's prev, "ecosp", $Hab20's ecosp))
(display: $Hab20's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab20's prev to $Hab20's pop)
(set: $Hab20's pop to $NewPop)]
(if: $Hab21's name is not "none")[
(set: $CreatureData1 to (dm: "name", $Hab21's name, "type", $Hab21's type, "pop", $Hab21's pop, "biomass", $Hab21's biomass, "prev", $Hab21's prev, "ecosp", $Hab21's ecosp))
(display: $Hab21's name)
(display: "Birth And Growth")
(display: "Predation")
(set: $Hab21's prev to $Hab21's pop)
(set: $Hab21's pop to $NewPop)]
(goto: "Entropy")
(set: $CreatureData2 to (dm:
"name", "Hawk",
"biomes", "Temperate Grassland",
"range", $Temperate's area + $Grassland's area,
"biomass", 1.2,
"defence", 3.8,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Rabbit", "Mouse", "Snake", "Lizard", "Turkey", "Cardinal", "Blue Jay", "Goldfinch", "Chickadee", "Robin", "Woodpecker", "Beaver"))(set: $CreatureData2 to (dm:
"name", "Mountain Lion",
"biomes", "Boreal Temperate",
"range", $Boreal's area + $Temperate's area,
"biomass", 56,
"defence", 3,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a:"Moose", "Whitetail Deer", "Rabbit", "Wild Boar", "Red Fox", "Coyote" ))(set: $CreatureData2 to (dm:
"name", "Lynx",
"biomes", "Boreal",
"range", $Boreal's area,
"biomass", 12,
"defence", 3,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Whitetail Deer", "Rabbit", "Red Fox", "Mouse", "Turkey", "Blue Jay", "Woodpecker", "Lake Trout", "Bass")) (set: $CreatureData2 to (dm:
"name", "Grizzly Bear",
"biomes", "Boreal",
"range", $Boreal's area,
"biomass", 300,
"defence", 5,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Moose", "Elk", "Caribou", "Whitetail Deer", "Black Bear", "Lake Trout", "Bass", "Nuts", "Berries", "Eagle" ))(set: $CreatureData2 to (dm:
"name", "Black Bear",
"biomes", "Boreal",
"range", $Boreal's area,
"biomass", 150,
"defence", 4,
"startingpop", 2,
"ecosp", "none",
"type", "Scavenger"))
(set: $CreaturePrey to (a: "Nuts", "Berries", "Insects", "Caribou", "Mouse", "Whitetail Deer"))(set: $CreatureData2 to (dm:
"name", "Wolf",
"biomes", "Temperate Boreal",
"range", $Temperate's area + $Boreal's area,
"biomass", 40,
"defence", 3,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Moose", "Whitetail Deer", "Wild Boar", "Elk", "Caribou", "Rabbit", "Duck", "Wolverine", "Berries"))(set: $CreatureData2 to (dm:
"name", "Wild Boar",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 85,
"defence", 3,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Nuts", "Seeds", "Berries", "Tallgrasses", "Insects"))(set: $CreatureData2 to (dm:
"name", "Moose",
"biomes", "Boreal Temperate",
"range", $Boreal's area + $Temperate's area,
"biomass", 550,
"defence", 2.5,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Aquatic Plants", "Willow Trees", "Birch Trees" ))(set: $CreatureData2 to (dm:
"name", "Caribou",
"biomes", "Boreal",
"range", $Boreal's area,
"biomass", 150,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Wildflowers", "Fungi", "Mouse"))(set: $CreatureData2 to (dm:
"name", "Elk",
"biomes", "Boreal, Temperate",
"range", $Boreal's area + $Temperate's area,
"biomass", 350,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Nuts", "Maple Trees", "Oak Trees", "Birch Trees", "Ash Trees"))(set: $CreatureData2 to (dm:
"name", "Coyote",
"biomes", "Temperate Boreal",
"range", $Temperate's area + $Boreal's area,
"biomass", 18,
"defence", 2.5,
"startingpop", 2,
"ecosp", "none",
"type", "Omnivore"))
(set: $CreaturePrey to (a: "Whitetail Deer", "Moose", "Elk", "Rabbit", "Mouse", "Duck", "Frog", "Lizard", "Snake", "Turtle", "Lake Trout", "Perch", "Insects", "Berries"))(set: $CreatureData2 to (dm:
"name", "Wolverine",
"biomes", "Boreal",
"range", $Boreal's area,
"biomass", 18,
"defence", 3.2,
"startingpop", 2,
"ecosp", "none",
"type", "Scavenger"))
(set: $CreaturePrey to (a: "Whitetail Deer", "Beaver", "Rabbit", "Mouse", "Caribou", "Moose", "Elk", "Coyote", "Lynx"))(set: $CreatureData2 to (dm:
"name", "Red Fox",
"biomes", "Temperate Boreal Grassland",
"range", $Temperate's area + $Boreal's area + $Grassland's area,
"biomass", 9,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Omnivore"))
(set: $CreaturePrey to (a: "Mouse", "Lizard", "Insects", "Rabbit", "Chickadee", "Cardinal", "Goldfinch", "Robin", "Berries", "Turkey"))(set: $CreatureData2 to (dm:
"name", "Mouse",
"biomes", "Temperate Boreal Grassland Shield",
"range", $Temperate's area + $Boreal's area + $Grassland's area + $Shield's area,
"biomass", 0.01,
"defence", 1.3,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Seeds", "Nuts"))(set: $CreatureData2 to (dm:
"name", "Rabbit",
"biomes", "Grassland Temperate",
"range", $Grassland's area + $Temperate's area,
"biomass", 3.5,
"defence", 3.2,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Wildflowers", "Shrubs", "Berries"))(set: $CreatureData2 to (dm:
"name", "Whitetail Deer",
"biomes", "Temperate Grassland",
"range", $Temperate's area + $Grassland's area,
"biomass", 90,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Wildflowers", "Berries", "Nuts" ))(set: $CreatureData2 to (dm:
"name", "Beaver",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 24,
"defence", 3,
"startingpop", 2,
"ecosp", "Wetland",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Aquatic Plants", "Birch Trees", "Oak Trees", "Ash Trees"))(set: $CreatureData2 to (dm:
"name", "Eagle",
"biomes", "Temperate Grassland Shield Wetland Boreal",
"range", $Temperate's area + $Grassland's area + $Shield's area + $Wetland's area + $Boreal's area,
"biomass", 5.5,
"defence", 4,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Rabbit", "Mouse", "Snake", "Lizard", "Turkey", "Cardinal", "Blue Jay", "Goldfinch", "Chickadee", "Northern Pike", "Lake Trout", "Bass", "Walleye", "Robin", "Woodpecker", "Beaver"))(set: $CreatureData2 to (dm:
"name", "Falcon",
"biomes", "Temperate Boreal Grassland",
"range", $Temperate's area + $Boreal's area + $Grassland's area,
"biomass", 0.13,
"defence", 4,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Insects", "Mouse", "Chickadee", "Goldfinch", "Snake"))(set: $CreatureData2 to (dm:
"name", "Vulture",
"biomes", "Grassland Temperate",
"range", $Grassland's area + $Temperate's area,
"biomass", 1.8,
"defence", 3.8,
"startingpop", 2,
"ecosp", "none",
"type", "Scavenger"))
(set: $CreaturePrey to (a: "Insects"))(set: $CreatureData2 to (dm:
"name", "Horned Owl",
"biomes", "Grassland Temperate Boreal",
"range", $Grassland's area + $Temperate's area + $Boreal's area,
"biomass", 1.6,
"defence", 4,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Rabbit", "Mouse", "Snake", "Lizard", "Frog", "Turtle", "Duck", "Turkey", "Crayfish"))
<!-- data for the Horned Owl --!>(set: $CreatureData2 to (dm:
"name", "Duck",
"biomes", "Temperate Wetland",
"range", $Temperate's area + $Wetland's area,
"biomass", 1.2,
"defence", 2.4,
"startingpop", 2,
"ecosp", "none",
"type", "Omnivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Aquatic Plants", "Insects"))(set: $CreatureData2 to (dm:
"name", "Turkey",
"biomes", "Temperate Grassland",
"range", $Temperate's area + $Grassland's area,
"biomass", 7.5,
"defence", 1.8,
"startingpop", 2,
"ecosp", "none",
"type", "Omnivore"))
(set: $CreaturePrey to (a: "Tallgrass", "Seeds", "Nuts", "Lizard", "Insects", "Ferns"))(set: $CreatureData2 to (dm:
"name", "Canada Goose",
"biomes", "Temperate Boreal Grassland",
"range", $Temperate's area + $Boreal's area + $Grassland's area,
"biomass", 3.9,
"defence", 2.4,
"startingpop", 20,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Seeds", "Berries", "Tallgrasses", "Ferns", "Insects"))(set: $CreatureData2 to (dm:
"name", "Great Blue Heron",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 2.4,
"defence", 2.7,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Minnow", "Perch", "Crayfish", "Bass", "Frog"))(set: $CreatureData2 to (dm:
"name", "Raven",
"biomes", "Temperate Boreal Grassland",
"range", $Temperate's area + $Boreal's area + $Grassland's area,
"biomass", 1.2,
"defence", 2.4,
"startingpop", 2,
"ecosp", "none",
"type", "Scavenger"))
(set: $CreaturePrey to (a: "Insects", "Frog", "Mouse", "Lizard", "Chickadee", "Goldfinch"))(set: $CreatureData2 to (dm:
"name", "Loon",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 5,
"defence", 2.4,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Minnow", "Perch", "Bass", "Northern Pike", "Lake Trout", "Crayfish", "Insects", "Aquatic Plants"))(set: $CreatureData2 to (dm:
"name", "Robin",
"biomes", "Temperate Grassland",
"range", $Temperate's area + $Grassland's area,
"biomass", 0.07,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Insects", "Seeds", "Berries"))(set: $CreatureData2 to (dm:
"name", "Cardinal",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 1,
"defence", 1,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Insects", "Seeds", "Berries"))(set: $CreatureData2 to (dm:
"name", "Blue Jay",
"biomes", "Temperate Grassland",
"range", $Temperate's area + $Grassland's area,
"biomass", 0.08,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Nuts", "Seeds"))(set: $CreatureData2 to (dm:
"name", "Woodpecker",
"biomes", "Temperate Boreal",
"range", $Temperate's area + $Boreal's area,
"biomass", 0.03,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Insects", "Seeds"))(set: $CreatureData2 to (dm:
"name", "Goldfinch",
"biomes", "Temperate Grassland",
"range", $Temperate's area + $Grassland's area,
"biomass", 0.02,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Tallgrasses", "Seeds", "Wildflowers", "Berries"))(set: $CreatureData2 to (dm:
"name", "Chickadee",
"biomes", "Boreal Temperate Grassland",
"range", $Boreal's area + $Temperate's area + $Grassland's area,
"biomass", 1,
"defence", 1,
"startingpop", 2,
"ecosp", "none",
"type", "Herbivore"))
(set: $CreaturePrey to (a: "Insects", "Seeds"))(set: $CreatureData2 to (dm:
"name", "Snake",
"biomes", "Temperate Grassland",
"range", $Temperate's area + $Grassland's area,
"biomass", 0.02,
"defence", 1.5,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Insects", "Mouse", "Lizard", "Minnow", "Frog"))
<!-- data for the common garter snake --!>(set: $CreatureData2 to (dm:
"name", "Turtle",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 1,
"defence", 1,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Minnow", "Insects", "Crayfish", "Aquatic Plants"))
<!-- data for the painted turtle --!>(set: $CreatureData2 to (dm:
"name", "Lizard",
"biome", "Temperate",
"range", $Temperate's area,
"biomass", 0.01,
"defence", 1.7,
"startingpop", 2,
"ecosp", "none",
"type", "Insectivore"))
(set: $CreaturePrey to (a: "Insects"))
<!-- data for the Five-Lined Skink --!>(set: $CreatureData2 to (dm:
"name", "Frog",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 0.04,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Insectivore"))
(set: $CreaturePrey to (a: "Insects", "Crayfish", "Lizard"))
<!-- data for the common bullfrog --!>(set: $CreatureData2 to (dm:
"name", "Northern Pike",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 20,
"defence", 2,
"startingpop", 2,
"ecosp", "none",
"type", "Carnivore"))
(set: $CreaturePrey to (a: "Minnow", "Crayfish", "Lake Trout", "Perch", "Bass", "Frog"))(set: $CreatureData2 to (dm:
"name", "Lake Trout",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 20,
"defence", 1.3,
"startingpop", 2,
"ecosp", "none",
"type", "Insectivore"))
(set: $CreaturePrey to (a: "Minnow", "Crayfish", "Insects"))(set: $CreatureData2 to (dm:
"name", "Bass",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 11,
"defence", 1.3,
"startingpop", 2,
"ecosp", "none",
"type", "Insectivore"))
(set: $CreaturePrey to (a: "Minnow", "Frog", "Crayfish"))(set: $CreatureData2 to (dm:
"name", "Perch",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 2.5,
"defence", 1.3,
"startingpop", 2,
"ecosp", "none",
"type", "Insectivore"))
(set: $CreaturePrey to (a: "Minnow", "Insects"))(set: $CreatureData2 to (dm:
"name", "Walleye",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 9,
"defence", 1.3,
"startingpop", 2,
"ecosp", "none",
"type", "Insectivore"))
(set: $CreaturePrey to (a: "Minnow", "Insects", "Crayfish"))(set: $CreatureData2 to (dm:
"name", "Minnow",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 0.1,
"defence", 1.2,
"startingpop", 12,
"ecosp", "none",
"type", "Microbiovore"))
(set: $CreaturePrey to (a: "Aquatic Plants", "Insects", "Wetland"))(set: $CreatureData2 to (dm:
"name", "Crayfish",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 0.2,
"defence", 1.1,
"startingpop", 12,
"ecosp", "none",
"type", "Microbiovore"))
(set: $CreaturePrey to (a: "Aquatic Plants", "Insects", "Wetland"))(set: $CreatureData2 to (dm:
"name", "Maple Trees",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 10,
"defence", 1.5,
"startingpop", 12,
"ecosp", "Temperate",
"type", "Seed-bearing Broadleaf"))
(set: $CreaturePrey to (a: "Temperate"))(set: $CreatureData2 to (dm:
"name", "Oak Trees",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 12,
"defence", 1.5,
"startingpop", 12,
"ecosp", "Temperate",
"type", "Nut-bearing Broadleaf"))
(set: $CreaturePrey to (a: "Temperate",))(set: $CreatureData2 to (dm:
"name", "Birch Trees",
"biomes", "Temperate Shield",
"range", $Temperate's area + $Shield's area,
"biomass", 1,
"defence", 1,
"startingpop", 12,
"ecosp", "Temperate",
"type", "Seed-bearing Broadleaf"))
(set: $CreaturePrey to (a: "Temperate", "Shield"))(set: $CreatureData2 to (dm:
"name", "Willow Trees",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 12,
"defence", 1.5,
"startingpop", 12,
"ecosp", "none",
"type", "Seed-bearing Broadleaf"))
(set: $CreaturePrey to (a: "Temperate" ))(set: $CreatureData2 to (dm:
"name", "Ash Trees",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 12,
"defence", 1.5,
"startingpop", 12,
"ecosp", "none",
"type", "Seed-bearing Broadleaf"))
(set: $CreaturePrey to (a: "Temperate" ))(set: $CreatureData2 to (dm:
"name", "Pine Trees",
"biomes", "Boreal",
"range", $Boreal's area,
"biomass", 12,
"defence", 1.5,
"startingpop", 12,
"ecosp", "Boreal",
"type", "Seed-bearing Evergreen"))
(set: $CreaturePrey to (a: "Boreal" ))(set: $CreatureData2 to (dm:
"name", "Spruce Trees",
"biomes", "Boreal",
"range", $Boreal's area,
"biomass", 12,
"defence", 1.5,
"startingpop", 12,
"ecosp", "Boreal",
"type", "Seed-bearing Evergreen"))
(set: $CreaturePrey to (a: "Boreal" ))(set: $CreatureData2 to (dm:
"name", "Cedar Trees",
"biomes", "Temperate Boreal",
"range", $Temperate's area + $Boreal's area,
"biomass", 1,
"defence", 1,
"startingpop", 12,
"ecosp", "Boreal",
"type", "Seed-bearing Evergreen"))
(set: $CreaturePrey to (a: "Temperate", "Boreal" ))(set: $CreatureData2 to (dm:
"name", "Chestnut Trees",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 12,
"defence", 1.5,
"startingpop", 12,
"ecosp", "Temperate",
"type", "Nut-bearing Broadleaf"))
(set: $CreaturePrey to (a: "Temperate" ))(set: $CreatureData2 to (dm:
"name", "Rowan Trees",
"biomes", "Boreal Shield",
"range", $Boreal's area + $Shield's area,
"biomass", 12,
"defence", 1.5,
"startingpop", 12,
"ecosp", "Temperate",
"type", "Fruit-bearing Broadleaf"))
(set: $CreaturePrey to (a: "Boreal", "Shield" ))(set: $CreatureData2 to (dm:
"name", "Cherry Trees",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 12,
"defence", 1.5,
"startingpop", 12,
"ecosp", "Temperate",
"type", "Fruit-bearing Broadleaf"))
(set: $CreaturePrey to (a: "Temperate" ))(set: $CreatureData2 to (dm:
"name", "Tallgrasses",
"biomes", "Grassland Temperate Boreal",
"range", $Grassland's area + $Temperate's area + $Boreal's area,
"biomass", 0.3,
"defence", 1.1,
"startingpop", 36,
"ecosp", "Grassland",
"type", "Seed-Bearing Plant"))
(set: $CreaturePrey to (a: "Temperate", "Grassland", "Boreal" ))(set: $CreatureData2 to (dm:
"name", "Wildflowers",
"biomes", "Grassland Temperate Shield",
"range", $Grassland's area + $Temperate's area + $Shield's area,
"biomass", 0.3,
"defence", 1.1,
"startingpop", 36,
"ecosp", "none",
"type", "Seed-Bearing Plant"))
(set: $CreaturePrey to (a: "Temperate", "Grassland", "Shield"))(set: $CreatureData2 to (dm:
"name", "Ferns",
"biomes", "Temperate",
"range", $Temperate's area,
"biomass", 0.4,
"defence", 1.1,
"startingpop", 36,
"ecosp", "Temperate",
"type", "Seed-Bearing Plant"))
(set: $CreaturePrey to (a: "Temperate"))(set: $CreatureData2 to (dm:
"name", "Shrubs",
"biomes", "Temperate Boreal Shield",
"range", $Temperate's area + $Boreal's area + $Shield's area,
"biomass", 0.5,
"defence", 1.2,
"startingpop", 36,
"ecosp", "none",
"type", "Fruit-Bearing Plant"))
(set: $CreaturePrey to (a: "Temperate", "Boreal", "Shield", ))(set: $CreatureData2 to (dm:
"name", "Aquatic Plants",
"biomes", "Wetland",
"range", $Wetland's area,
"biomass", 0.3,
"defence", 1.1,
"startingpop", 36,
"ecosp", "none",
"type", "Seed-Bearing Plant"))
(set: $CreaturePrey to (a: "Wetland"))<!-- zero out the data from the last round --!>
(set: $NewPop to 0, $caughtfood to 0, $caughtprey to 0, $totalfood to 0)
<!-- Foodstuff growth from other things besides the biomes --!>
(if: $CreatureData1's pop is > 0)[
(if: $CreatureData2's type contains "Seed")[ (set: $Seeds to it + ($CreatureData1's pop * 10))]
(if: $CreatureData2's type contains "Fruit")[ (set: $Berries to it + ($CreatureData1's pop * 10))]
(if: $CreatureData2's type contains "Nut")[ (set: $Nuts to it + ($CreatureData1's pop * 10))]
]
(set: $Insects to it + ($death * 0.1), $Fungi to it + ($death * 0.1))
<!-- animal growth from browsing, grazing, and scavenging --!>
(if: "Seeds" is in $CreaturePrey)[
(set: $caughtfood to it + (($Seeds * 0.01) / $TotalArea) / $CreatureData1's pop)
(set: $Seeds to it - (($Seeds * 0.01) / $TotalArea) / $CreatureData1's pop)
]
(if: "Nuts" is in $CreaturePrey)[
(set: $caughtfood to it + (($Nuts * 0.01) / $TotalArea) / $CreatureData1's pop)
(set: $Nuts to it - (($Nuts * 0.01) / $TotalArea) / $CreatureData1's pop)
]
(if: "Fungi" is in $CreaturePrey)[
(set: $caughtfood to it + (($Fungi * 0.01) / $TotalArea) / $CreatureData1's pop)
(set: $Fungi to it - (($Fungi * 0.01) / $TotalArea) / $CreatureData1's pop)
]
(if: "Berries" is in $CreaturePrey)[
(set: $caughtfood to it + (($Berries * 0.01) / $TotalArea) / $CreatureData1's pop)
(set: $Berries to it - (($Berries * 0.01) / $TotalArea) / $CreatureData1's pop)
]
(if: "Insects" is in $CreaturePrey)[
(set: $caughtfood to it + (($Insects * 0.01) / $TotalArea) / $CreatureData1's pop)
(set: $Insects to it - (($Insects * 0.01) / $TotalArea) / $CreatureData1's pop)
]
(if: "Scavenger" is in $CreatureData2's type)[
(set: $caughtfood to ($death / $TotalArea) / $CreatureData1's pop)
(set: $death to it - ($death / $TotalArea) / $CreatureData1's pop)
]
<!-- Trees and plants grow direct from the biome, and benefit from detritus and from mushrooms (the mycorrizal network; hence why fungi doesn't reduce.). Note max habitats per km2 of each biome. --!>
(if: $CreaturePrey contains "Temperate" and $CreatureData1's pop is not 0)[
(set: $caughtfood to it + (($Temperate's area * 1200) / $CreatureData1's pop))
(set: $caughtfood to it + (($Fungi * 0.3) / $Temperate's area) / $CreatureData1's pop)
(set: $caughtfood to it + (($death * 0.1) / $Temperate's area) / $CreatureData1's pop)
(set: $death to it - ($death / $TotalArea) / $CreatureData1's pop)]
(if: $CreaturePrey contains "Grassland" and $CreatureData1's pop is not 0)[
(set: $caughtfood to it + (($Grassland's area * 1200) / $CreatureData1's pop))
(set: $caughtfood to it + (($Fungi * 0.3) / $Grassland's area) / $CreatureData1's pop)
(set: $caughtfood to it + (($death * 0.1) / $Grassland's area) / $CreatureData1's pop)
(set: $death to it - ($death / $TotalArea) / $CreatureData1's pop)]
(if: $CreaturePrey contains "Wetland" and $CreatureData1's pop is not 0)[
(set: $caughtfood to it + (($Wetland's area * 1500) / $CreatureData1's pop))
(set: $caughtfood to it + (($Fungi * 0.3) / $Wetland's area) / $CreatureData1's pop)
(set: $caughtfood to it + (($death * 0.1) / $Wetland's area) / $CreatureData1's pop)
(set: $death to it - ($death / $TotalArea) / $CreatureData1's pop)]
(if: $CreaturePrey contains "Shield" and $CreatureData1's pop is not 0)[
(set: $caughtfood to it + (($Shield's area * 250) / $CreatureData1's pop))
(set: $caughtfood to it + (($Fungi * 0.3) / $Shield's area) / $CreatureData1's pop)
(set: $caughtfood to it + (($death * 0.1) / $Shield's area) / $CreatureData1's pop)
(set: $death to it - ($death / $TotalArea) / $CreatureData1's pop)]
(if: $CreaturePrey contains "Boreal" and $CreatureData1's pop is not 0)[
(set: $caughtfood to it + (($Boreal's area * 1000) / $CreatureData1's pop))
(set: $caughtfood to it + (($Fungi * 0.3) / $Boreal's area) / $CreatureData1's pop)
(set: $caughtfood to it + (($death * 0.1) / $Boreal's area) / $CreatureData1's pop)
(set: $death to it - ($death / $TotalArea) / $CreatureData1's pop) ]
<!-- Foodstuff growth, direct from the biome. Foods also grow in the Birth And Growth function. This happens before the system checks each of the habitats one at a time. Note that seeds and nuts come from trees not from biomes. --!>
(set: $Insects to it + (ceil: ($Wetland's area * 20)))
(set: $Insects to it + (ceil: ($Temperate's area * 10) + ($Shield's area * 10) + ($Boreal's area * 10) + ($Grassland's area * 10)))
(set: $Fungi to it + (ceil: ($Temperate's area * 10) + ($Shield's area * 10) + ($Boreal's area * 10) + ($Grassland's area * 10)))
(goto: "Ecosystem Core Function")=><=
(print: $Creature's name)
<==
<font size=3>
---
|=
//Type:// (print: $Creature's type)
//Weight:// (print: $Creature's weight) kg.
Habitat: (print: $Creature's biomes)
=|
//Food sources: //
(text-indent: 32)[ (for: each _item, ...$CreaturePreyInfo)[(print: _item), ] ]
//Predators: //
(text-indent: 32)[ (for: each _item, ...$Predators)[(print: _item), ] ]
|==|
---
</font>
|=
=><=
[[Remove]]
=|=
=><=
[[Add 10% more->Add More]]
=|
=><=
[[Return->Main Interface]]
|==|
<!-- foodstuffs drift away over time... --!>
(set: $Seeds to it - ($Seeds * 0.1))
(set: $Nuts to it - ($Nuts * 0.1))
(set: $Fungi to it - ($Fungi * 0.1))
(set: $Berries to it - ($Berries * 0.1))
(set: $Insects to it - ($Insects * 0.1))
(set: $death to it - ($death * 0.1))
<!-- set limits to growth based on biome areas --!>
(if: $Seeds is > $TotalArea * 1000)[(set: $Seeds to $TotalArea * 1000)]
(if: $Nuts is > $TotalArea * 1000)[(set: $Nuts to $TotalArea * 1000)]
(if: $Fungi is > $TotalArea * 1000)[(set: $Fungi to $TotalArea * 1000)]
(if: $Berries is > $TotalArea * 1000)[(set: $Berries to $TotalArea * 1000)]
(if: $Insects is > $TotalArea * 1000)[(set: $Insects to $TotalArea * 1000)]
(if: $death is > $death * 1000)[(set: $death to $TotalArea * 1000)]
(if: $Seeds is < 0) [(set: $Seeds to 0)]
(if: $Nuts is < 0) [(set: $Nuts to 0)]
(if: $Fungi is < 0) [(set: $Fungi to 0)]
(if: $Berries is < 0) [(set: $Berries to 0)]
(if: $Insects is < 0) [(set: $Insects to 0)]
(if: $death < 0) [(set: $death to 0)]
<!-- make them into nice whole numbers --!>
(set: $Seeds to (floor: $Seeds))
(set: $Nuts to (floor: $Nuts))
(set: $Fungi to (floor: $Fungi))
(set: $Berries to (floor: $Berries))
(set: $Insects to (floor: $Insects))
(set: $death to (floor: $death))
<!-- Check here for anything that went extinct in the previous round. --!>
(if: $Hab1's pop is <=0 )[(set: $Hab1's name to "none")]
(if: $Hab2's pop is <=0 )[(set: $Hab2's name to "none")]
(if: $Hab3's pop is <=0 )[(set: $Hab3's name to "none")]
(if: $Hab4's pop is <=0 )[(set: $Hab4's name to "none")]
(if: $Hab5's pop is <=0 )[(set: $Hab5's name to "none")]
(if: $Hab6's pop is <=0 )[(set: $Hab6's name to "none")]
(if: $Hab7's pop is <=0 )[(set: $Hab7's name to "none")]
(if: $Hab8's pop is <=0 )[(set: $Hab8's name to "none")]
(if: $Hab9's pop is <=0 )[(set: $Hab9's name to "none")]
(if: $Hab10's pop is <=0 )[(set: $Hab10's name to "none")]
(if: $Hab11's pop is <=0 )[(set: $Hab11's name to "none")]
(if: $Hab12's pop is <=0 )[(set: $Hab12's name to "none")]
(if: $Hab13's pop is <=0 )[(set: $Hab13's name to "none")]
(if: $Hab14's pop is <=0 )[(set: $Hab14's name to "none")]
(if: $Hab15's pop is <=0 )[(set: $Hab15's name to "none")]
(if: $Hab16's pop is <=0 )[(set: $Hab16's name to "none")]
(if: $Hab17's pop is <=0 )[(set: $Hab17's name to "none")]
(if: $Hab18's pop is <=0 )[(set: $Hab18's name to "none")]
(if: $Hab19's pop is <=0 )[(set: $Hab19's name to "none")]
(if: $Hab20's pop is <=0 )[(set: $Hab20's name to "none")]
(if: $Hab21's pop is <=0 )[(set: $Hab21's name to "none")]
<!-- ecosystem succession yes/no --!>
(if: $succession is "On")[(goto: "Succession")](else:)[(goto: "Main Interface")]
(if: $Hab1's name is $Creature's name)[(set: $Hab1's pop to it + (ceil: ($Hab1's pop * 0.1)))]
(if: $Hab2's name is $Creature's name)[(set: $Hab2's pop to it + (ceil: ($Hab2's pop * 0.1)))]
(if: $Hab3's name is $Creature's name)[(set: $Hab3's pop to it + (ceil: ($Hab3's pop * 0.1)))]
(if: $Hab4's name is $Creature's name)[(set: $Hab4's pop to it + (ceil: ($Hab4's pop * 0.1)))]
(if: $Hab5's name is $Creature's name)[(set: $Hab5's pop to it + (ceil: ($Hab5's pop * 0.1)))]
(if: $Hab6's name is $Creature's name)[(set: $Hab6's pop to it + (ceil: ($Hab6's pop * 0.1)))]
(if: $Hab7's name is $Creature's name)[(set: $Hab7's pop to it + (ceil: ($Hab7's pop * 0.1)))]
(if: $Hab8's name is $Creature's name)[(set: $Hab8's pop to it + (ceil: ($Hab8's pop * 0.1)))]
(if: $Hab9's name is $Creature's name)[(set: $Hab9's pop to it + (ceil: ($Hab9's pop * 0.1)))]
(if: $Hab10's name is $Creature's name)[(set: $Hab10's pop to it + (ceil: ($Hab10's pop * 0.1)))]
(if: $Hab11's name is $Creature's name)[(set: $Hab11's pop to it + (ceil: ($Hab11's pop * 0.1)))]
(if: $Hab12's name is $Creature's name)[(set: $Hab12's pop to it + (ceil: ($Hab12's pop * 0.1)))]
(if: $Hab13's name is $Creature's name)[(set: $Hab13's pop to it + (ceil: ($Hab13's pop * 0.1)))]
(if: $Hab14's name is $Creature's name)[(set: $Hab14's pop to it + (ceil: ($Hab14's pop * 0.1)))]
(if: $Hab15's name is $Creature's name)[(set: $Hab15's pop to it + (ceil: ($Hab15's pop * 0.1)))]
(if: $Hab16's name is $Creature's name)[(set: $Hab16's pop to it + (ceil: ($Hab16's pop * 0.1)))]
(if: $Hab17's name is $Creature's name)[(set: $Hab17's pop to it + (ceil: ($Hab17's pop * 0.1)))]
(if: $Hab18's name is $Creature's name)[(set: $Hab18's pop to it + (ceil: ($Hab18's pop * 0.1)))]
(if: $Hab19's name is $Creature's name)[(set: $Hab19's pop to it + (ceil: ($Hab19's pop * 0.1)))]
(if: $Hab20's name is $Creature's name)[(set: $Hab20's pop to it + (ceil: ($Hab20's pop * 0.1)))]
(if: $Hab21's name is $Creature's name)[(set: $Hab21's pop to it + (ceil: ($Hab21's pop * 0.1)))]
(goto: "Main Interface")
|=
=><=
(if: $Hab15's prev is > $Hab15's pop)[(color: red)(print: $Hab15's pop)]\
(if: $Hab15's prev is $Hab15's pop)[(color: white)(print: $Hab15's pop)]\
(if: $Hab15's prev is < $Hab15's pop)[(color: green)(print: $Hab15's pop)]
(if: $Hab15's name is "none")[(link: "none")[(set: $PlaceRef to 15)(goto: "Add Lifeform")]](else:)[(link: $Hab15's name)[(set: $PlaceRef to 15)(goto: "Info")]]
=|=
=><=
(if: $Hab16's prev is > $Hab16's pop)[(color: red)(print: $Hab16's pop)]\
(if: $Hab16's prev is $Hab16's pop)[(color: white)(print: $Hab16's pop)]\
(if: $Hab16's prev is < $Hab16's pop)[(color: green)(print: $Hab16's pop)]
(if: $Hab16's name is "none")[(link: "none")[(set: $PlaceRef to 16)(goto: "Add Lifeform")]](else:)[(link: $Hab16's name)[(set: $PlaceRef to 16)(goto: "Info")]]
=|=
=><=
(if: $Hab17's prev is > $Hab17's pop)[(color: red)(print: $Hab17's pop)]\
(if: $Hab17's prev is $Hab17's pop)[(color: white)(print: $Hab17's pop)]\
(if: $Hab17's prev is < $Hab17's pop)[(color: green)(print: $Hab17's pop)]
(if: $Hab17's name is "none")[(link: "none")[(set: $PlaceRef to 17)(goto: "Add Lifeform")]](else:)[(link: $Hab17's name)[(set: $PlaceRef to 17)(goto: "Info")]]
=|=
=><=
(if: $Hab18's prev is > $Hab18's pop)[(color: red)(print: $Hab18's pop)]\
(if: $Hab18's prev is $Hab18's pop)[(color: white)(print: $Hab18's pop)]\
(if: $Hab18's prev is < $Hab18's pop)[(color: green)(print: $Hab18's pop)]
(if: $Hab18's name is "none")[(link: "none")[(set: $PlaceRef to 18)(goto: "Add Lifeform")]](else:)[(link: $Hab18's name)[(set: $PlaceRef to 18)(goto: "Info")]]
=|=
=><=
(if: $Hab19's prev is > $Hab19's pop)[(color: red)(print: $Hab19's pop)]\
(if: $Hab19's prev is $Hab19's pop)[(color: white)(print: $Hab19's pop)]\
(if: $Hab19's prev is < $Hab19's pop)[(color: green)(print: $Hab19's pop)]
(if: $Hab19's name is "none")[(link: "none")[(set: $PlaceRef to 19)(goto: "Add Lifeform")]](else:)[(link: $Hab19's name)[(set: $PlaceRef to 19)(goto: "Info")]]
=|=
=><=
(if: $Hab20's prev is > $Hab20's pop)[(color: red)(print: $Hab20's pop)]\
(if: $Hab20's prev is $Hab20's pop)[(color: white)(print: $Hab20's pop)]\
(if: $Hab20's prev is < $Hab20's pop)[(color: green)(print: $Hab20's pop)]
(if: $Hab20's name is "none")[(link: "none")[(set: $PlaceRef to 20)(goto: "Add Lifeform")]](else:)[(link: $Hab20's name)[(set: $PlaceRef to 20)(goto: "Info")]]
=|
=><=
(if: $Hab21's prev is > $Hab21's pop)[(color: red)(print: $Hab21's pop)]\
(if: $Hab21's prev is $Hab21's pop)[(color: white)(print: $Hab21's pop)]\
(if: $Hab21's prev is < $Hab21's pop)[(color: green)(print: $Hab21's pop)]
(if: $Hab21's name is "none")[(link: "none")[(set: $PlaceRef to 21)(goto: "Add Lifeform")]](else:)[(link: $Hab21's name)[(set: $PlaceRef to 21)(goto: "Info")]] \
|==||=
=><=
(if: $Hab1's prev is > $Hab1's pop)[(color: red)(print: $Hab1's pop)]\
(if: $Hab1's prev is $Hab1's pop)[(color: white)(print: $Hab1's pop)]\
(if: $Hab1's prev is < $Hab1's pop)[(color: green)(print: $Hab1's pop)]
(if: $Hab1's name is "none")[(link: "none")[(set: $PlaceRef to 1)(goto: "Add Lifeform")]](else:)[(link: $Hab1's name)[(set: $PlaceRef to 1)(goto: "Info")]]
=|=
=><=
(if: $Hab2's prev is > $Hab2's pop)[(color: red)(print: $Hab2's pop)]\
(if: $Hab2's prev is $Hab2's pop)[(color: white)(print: $Hab2's pop)]\
(if: $Hab2's prev is < $Hab2's pop)[(color: green)(print: $Hab2's pop)]
(if: $Hab2's name is "none")[(link: "none")[(set: $PlaceRef to 2)(goto: "Add Lifeform")]](else:)[(link: $Hab2's name)[(set: $PlaceRef to 2)(goto: "Info")]]
=|=
=><=
(if: $Hab3's prev is > $Hab3's pop)[(color: red)(print: $Hab3's pop)]\
(if: $Hab3's prev is $Hab3's pop)[(color: white)(print: $Hab3's pop)]\
(if: $Hab3's prev is < $Hab3's pop)[(color: green)(print: $Hab3's pop)]
(if: $Hab3's name is "none")[(link: "none")[(set: $PlaceRef to 3)(goto: "Add Lifeform")]](else:)[(link: $Hab3's name)[(set: $PlaceRef to 3)(goto: "Info")]]
=|=
=><=
(if: $Hab4's prev is > $Hab4's pop)[(color: red)(print: $Hab4's pop)]\
(if: $Hab4's prev is $Hab4's pop)[(color: white)(print: $Hab4's pop)]\
(if: $Hab4's prev is < $Hab4's pop)[(color: green)(print: $Hab4's pop)]
(if: $Hab4's name is "none")[(link: "none")[(set: $PlaceRef to 4)(goto: "Add Lifeform")]](else:)[(link: $Hab4's name)[(set: $PlaceRef to 4)(goto: "Info")]]
=|=
=><=
(if: $Hab5's prev is > $Hab5's pop)[(color: red)(print: $Hab5's pop)]\
(if: $Hab5's prev is $Hab5's pop)[(color: white)(print: $Hab5's pop)]\
(if: $Hab5's prev is < $Hab5's pop)[(color: green)(print: $Hab5's pop)]
(if: $Hab5's name is "none")[(link: "none")[(set: $PlaceRef to 5)(goto: "Add Lifeform")]](else:)[(link: $Hab5's name)[(set: $PlaceRef to 5)(goto: "Info")]]
=|=
=><=
(if: $Hab6's prev is > $Hab6's pop)[(color: red)(print: $Hab6's pop)]\
(if: $Hab6's prev is $Hab6's pop)[(color: white)(print: $Hab6's pop)]\
(if: $Hab6's prev is < $Hab6's pop)[(color: green)(print: $Hab6's pop)]
(if: $Hab6's name is "none")[(link: "none")[(set: $PlaceRef to 6)(goto: "Add Lifeform")]](else:)[(link: $Hab6's name)[(set: $PlaceRef to 6)(goto: "Info")]]
=|
=><=
(if: $Hab7's prev is > $Hab7's pop)[(color: red)(print: $Hab7's pop)]\
(if: $Hab7's prev is $Hab7's pop)[(color: white)(print: $Hab7's pop)]\
(if: $Hab7's prev is < $Hab7's pop)[(color: green)(print: $Hab7's pop)]
(if: $Hab7's name is "none")[(link: "none")[(set: $PlaceRef to 7)(goto: "Add Lifeform")]](else:)[(link: $Hab7's name)[(set: $PlaceRef to 7)(goto: "Info")]] \
|==||=
=><=
(if: $Hab8's prev is > $Hab8's pop)[(color: red)(print: $Hab8's pop)]\
(if: $Hab8's prev is $Hab8's pop)[(color: white)(print: $Hab8's pop)]\
(if: $Hab8's prev is < $Hab8's pop)[(color: green)(print: $Hab8's pop)]
(if: $Hab8's name is "none")[(link: "none")[(set: $PlaceRef to 8)(goto: "Add Lifeform")]](else:)[(link: $Hab8's name)[(set: $PlaceRef to 8)(goto: "Info")]]
=|=
=><=
(if: $Hab9's prev is > $Hab9's pop)[(color: red)(print: $Hab9's pop)]\
(if: $Hab9's prev is $Hab9's pop)[(color: white)(print: $Hab9's pop)]\
(if: $Hab9's prev is < $Hab9's pop)[(color: green)(print: $Hab9's pop)]
(if: $Hab9's name is "none")[(link: "none")[(set: $PlaceRef to 9)(goto: "Add Lifeform")]](else:)[(link: $Hab9's name)[(set: $PlaceRef to 9)(goto: "Info")]]
=|=
=><=
(if: $Hab10's prev is > $Hab10's pop)[(color: red)(print: $Hab10's pop)]\
(if: $Hab10's prev is $Hab10's pop)[(color: white)(print: $Hab10's pop)]\
(if: $Hab10's prev is < $Hab10's pop)[(color: green)(print: $Hab10's pop)]
(if: $Hab10's name is "none")[(link: "none")[(set: $PlaceRef to 10)(goto: "Add Lifeform")]](else:)[(link: $Hab10's name)[(set: $PlaceRef to 10)(goto: "Info")]]
=|=
=><=
(if: $Hab11's prev is > $Hab11's pop)[(color: red)(print: $Hab11's pop)]\
(if: $Hab11's prev is $Hab11's pop)[(color: white)(print: $Hab11's pop)]\
(if: $Hab11's prev is < $Hab11's pop)[(color: green)(print: $Hab11's pop)]
(if: $Hab11's name is "none")[(link: "none")[(set: $PlaceRef to 11)(goto: "Add Lifeform")]](else:)[(link: $Hab11's name)[(set: $PlaceRef to 11)(goto: "Info")]]
=|=
=><=
(if: $Hab12's prev is > $Hab12's pop)[(color: red)(print: $Hab12's pop)]\
(if: $Hab12's prev is $Hab12's pop)[(color: white)(print: $Hab12's pop)]\
(if: $Hab12's prev is < $Hab12's pop)[(color: green)(print: $Hab12's pop)]
(if: $Hab12's name is "none")[(link: "none")[(set: $PlaceRef to 12)(goto: "Add Lifeform")]](else:)[(link: $Hab12's name)[(set: $PlaceRef to 12)(goto: "Info")]]
=|=
=><=
(if: $Hab13's prev is > $Hab13's pop)[(color: red)(print: $Hab13's pop)]\
(if: $Hab13's prev is $Hab13's pop)[(color: white)(print: $Hab13's pop)]\
(if: $Hab13's prev is < $Hab13's pop)[(color: green)(print: $Hab13's pop)]
(if: $Hab13's name is "none")[(link: "none")[(set: $PlaceRef to 13)(goto: "Add Lifeform")]](else:)[(link: $Hab13's name)[(set: $PlaceRef to 13)(goto: "Info")]]
=|
=><=
(if: $Hab14's prev is > $Hab14's pop)[(color: red)(print: $Hab14's pop)]\
(if: $Hab14's prev is $Hab14's pop)[(color: white)(print: $Hab14's pop)]\
(if: $Hab14's prev is < $Hab14's pop)[(color: green)(print: $Hab14's pop)]
(if: $Hab14's name is "none")[(link: "none")[(set: $PlaceRef to 14)(goto: "Add Lifeform")]](else:)[(link: $Hab14's name)[(set: $PlaceRef to 14)(goto: "Info")]] \
|==|<!-- the general formula for predation is: prey creatures caught = --!>
<!-- may add in an element of randomness later. say, +/- 10 percent? --!>
(if: $CreaturePrey contains $Hab1's name and $Hab1's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab1's pop / $Hab1's defence) / $Hab1's range) * $CreatureData1's pop))
(set: $Hab1's pop to it - $caughtprey)
(if: $Hab1's pop is < 0)[(set: $Hab1's pop to 0)]
(set: $caughtfood to it + ($Hab1's pop * $Hab1's biomass))
]
(if: $CreaturePrey contains $Hab2's name and $Hab2's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab2's pop / $Hab2's defence) / $Hab2's range)
(set: $Hab2's pop to it - $caughtprey)
(if: $Hab2's pop is < 0)[(set: $Hab2's pop to 0)]
(set: $caughtfood to it + ($Hab2's pop * $Hab2's biomass))
]
(if: $CreaturePrey contains $Hab3's name and $Hab3's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab3's pop / $Hab3's defence) / $Hab3's range) * $CreatureData1's pop))
(set: $Hab3's pop to it - $caughtprey)
(if: $Hab3's pop is < 0)[(set: $Hab3's pop to 0)]
(set: $caughtfood to it + ($Hab3's pop * $Hab3's biomass))
]
(if: $CreaturePrey contains $Hab4's name and $Hab4's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab4's pop / $Hab4's defence) / $Hab4's range) * $CreatureData1's pop))
(set: $Hab4's pop to it - $caughtprey)
(if: $Hab4's pop is < 0)[(set: $Hab4's pop to 0)]
(set: $caughtfood to it + ($Hab4's pop * $Hab4's biomass))
]
(if: $CreaturePrey contains $Hab5's name and $Hab5's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab5's pop / $Hab5's defence) / $Hab5's range) * $CreatureData1's pop))
(set: $Hab5's pop to it - $caughtprey)
(if: $Hab5's pop is < 0)[(set: $Hab5's pop to 0)]
(set: $caughtfood to it + ($Hab5's pop * $Hab5's biomass))
]
(if: $CreaturePrey contains $Hab6's name and $Hab6's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab6's pop / $Hab6's defence) / $Hab6's range) * $CreatureData1's pop))
(set: $Hab6's pop to it - $caughtprey)
(if: $Hab6's pop is < 0)[(set: $Hab6's pop to 0)]
(set: $caughtfood to it + ($Hab6's pop * $Hab6's biomass))
]
(if: $CreaturePrey contains $Hab7's name and $Hab7's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab7's pop / $Hab7's defence) / $Hab7's range) * $CreatureData1's pop))
(set: $Hab7's pop to it - $caughtprey)
(if: $Hab7's pop is < 0)[(set: $Hab7's pop to 0)]
(set: $caughtfood to it + ($Hab7's pop * $Hab7's biomass))
]
(if: $CreaturePrey contains $Hab8's name and $Hab8's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab8's pop / $Hab8's defence) / $Hab8's range) * $CreatureData1's pop))
(set: $Hab8's pop to it - $caughtprey)
(if: $Hab8's pop is < 0)[(set: $Hab8's pop to 0)]
(set: $caughtfood to it + ($Hab8's pop * $Hab8's biomass))
]
(if: $CreaturePrey contains $Hab9's name and $Hab9's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab9's pop / $Hab9's defence) / $Hab9's range) * $CreatureData1's pop))
(set: $Hab9's pop to it - $caughtprey)
(if: $Hab9's pop is < 0)[(set: $Hab9's pop to 0)]
(set: $caughtfood to it + ($Hab9's pop * $Hab9's biomass))
]
(if: $CreaturePrey contains $Hab10's name and $Hab10's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab10's pop / $Hab10's defence) / $Hab10's range) * $CreatureData1's pop))
(set: $Hab10's pop to it - $caughtprey)
(if: $Hab10's pop is < 0)[(set: $Hab10's pop to 0)]
(set: $caughtfood to it + ($Hab10's pop * $Hab10's biomass))
]
(if: $CreaturePrey contains $Hab11's name and $Hab11's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab11's pop / $Hab11's defence) / $Hab11's range) * $CreatureData1's pop))
(set: $Hab11's pop to it - $caughtprey)
(if: $Hab11's pop is < 0)[(set: $Hab11's pop to 0)]
(set: $caughtfood to it + ($Hab11's pop * $Hab11's biomass))
]
(if: $CreaturePrey contains $Hab12's name and $Hab12's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab12's pop / $Hab12's defence) / $Hab12's range) * $CreatureData1's pop))
(set: $Hab12's pop to it - $caughtprey)
(if: $Hab12's pop is < 0)[(set: $Hab12's pop to 0)]
(set: $caughtfood to it + ($Hab12's pop * $Hab12's biomass))
]
(if: $CreaturePrey contains $Hab13's name and $Hab13's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab13's pop / $Hab13's defence) / $Hab13's range) * $CreatureData1's pop))
(set: $Hab13's pop to it - $caughtprey)
(if: $Hab13's pop is < 0)[(set: $Hab13's pop to 0)]
(set: $caughtfood to it + ($Hab13's pop * $Hab13's biomass))
]
(if: $CreaturePrey contains $Hab14's name and $Hab14's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab14's pop / $Hab14's defence) / $Hab14's range) * $CreatureData1's pop))
(set: $Hab14's pop to it - $caughtprey)
(if: $Hab14's pop is < 0)[(set: $Hab14's pop to 0)]
(set: $caughtfood to it + ($Hab14's pop * $Hab14's biomass))
]
(if: $CreaturePrey contains $Hab15's name and $Hab15's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab15's pop / $Hab15's defence) / $Hab15's range) * $CreatureData1's pop))
(set: $Hab15's pop to it - $caughtprey)
(if: $Hab15's pop is < 0)[(set: $Hab15's pop to 0)]
(set: $caughtfood to it + ($Hab15's pop * $Hab15's biomass))
]
(if: $CreaturePrey contains $Hab16's name and $Hab16's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab16's pop / $Hab16's defence) / $Hab16's range) * $CreatureData1's pop))
(set: $Hab16's pop to it - $caughtprey)
(if: $Hab16's pop is < 0)[(set: $Hab16's pop to 0)]
(set: $caughtfood to it + ($Hab16's pop * $Hab16's biomass))
]
(if: $CreaturePrey contains $Hab17's name and $Hab17's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab17's pop / $Hab17's defence) / $Hab17's range) * $CreatureData1's pop))
(set: $Hab17's pop to it - $caughtprey)
(if: $Hab17's pop is < 0)[(set: $Hab17's pop to 0)]
(set: $caughtfood to it + ($Hab17's pop * $Hab17's biomass))
]
(if: $CreaturePrey contains $Hab18's name and $Hab18's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab18's pop / $Hab18's defence) / $Hab18's range) * $CreatureData1's pop))
(set: $Hab18's pop to it - $caughtprey)
(if: $Hab18's pop is < 0)[(set: $Hab18's pop to 0)]
(set: $caughtfood to it + ($Hab18's pop * $Hab18's biomass))
]
(if: $CreaturePrey contains $Hab19's name and $Hab19's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab19's pop / $Hab19's defence) / $Hab19's range) * $CreatureData1's pop))
(set: $Hab19's pop to it - $caughtprey)
(if: $Hab19's pop is < 0)[(set: $Hab19's pop to 0)]
(set: $caughtfood to it + ($Hab19's pop * $Hab19's biomass))
]
(if: $CreaturePrey contains $Hab20's name and $Hab20's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab20's pop / $Hab20's defence) / $Hab20's range) * $CreatureData1's pop))
(set: $Hab20's pop to it - $caughtprey)
(if: $Hab20's pop is < 0)[(set: $Hab20's pop to 0)]
(set: $caughtfood to it + ($Hab20's pop * $Hab20's biomass))
]
(if: $CreaturePrey contains $Hab21's name and $Hab21's pop is not 0)[
(set: $caughtprey to (ceil: (($Hab21's pop / $Hab21's defence) / $Hab21's range) * $CreatureData1's pop))
(set: $Hab21's pop to it - $caughtprey)
(if: $Hab21's pop is < 0)[(set: $Hab21's pop to 0)]
(set: $caughtfood to it + ($Hab21's pop * $Hab21's biomass))
]
<!-- add all growth from caughtfood and caughtprey --!>
(if: $CreatureData1's pop is > 0)[
(set: $NewPop to (ceil: $CreatureData1's pop * ($caughtfood / ($CreatureData1's pop * $CreatureData1's biomass))))
]
<!-- capture some of a creature death (from starvation) into the detritus, so the scavengers can get at it --!>
(if: $NewPop is < $CreatureData1's prev)[(set: $death to it + (($CreatureData1's prev - $NewPop) * $CreatureData1's biomass) )]
<!-- stop organisms from growing too fast. Keep them within a growth limit of the golden ratio 1.618. --!>
(if: $NewPop is > $CreatureData1's pop * 1.618)[(set: $NewPop to (floor: $CreatureData1's pop * 1.618))]
<!-- detecting death ---!>
(if: $NewPop is <= 0)[(set: $NewPop to 0)]
<!-- and if the org survives, make sure NewPop is a nice whole number. --!>
(if: $NewPop is not 0)[(set: $NewPop to (floor: $NewPop))]
=><=
Brendan's Ecosystem Simulator
How It Works
---
<==
<font size =4>
(text-indent: 32)[The ecosystem in this simulation is a field of 21 "spaces" where a life-form could live. If a space on the field is empty, you'll see the word "none" in that place, underneath the number zero. Click the "none", and choose a species of life to release into that space.]
(text-indent: 32)[Once an organism has taken a place in the field, you can click on its name to see some information about its predators and prey, or to remove it, or to artificially increase its population.]
(text-indent: 32)[You'll also see a row on top for "foodstuffs" like seeds and insects. Some of these grow out of the landscape, some come from plant life, and some depend on how many things have died lately.]
(text-indent: 32)[And there's a row on the bottom for "biomes": the five types of landscapes which support the plant life and some of the foodstuffs, and their areas in km^^2^^.]
</font>
==>
[[Continue->How It Works 2]]
[[Main Menu->Title Page]]
=><=
Brendan's Ecosystem Simulator
How It Works
---
<==
<font size =4>
(text-indent: 32)[In each turn, each organism goes into the other 20 places in the simulation, looking for its sources of food. ]
(text-indent: 32)[It calculates how many creatures are captured by predators according to a formula that includes how many prey creatures there are, how well those prey creatures can defend themselves, their population density, and how many predators are hunting for them. ]
(text-indent: 32)[The prey population goes down as the predators eat them; the predator population goes up (or down) in proportion to how much food it caught, and whether it caught more than it needs to preserve itself, or less.]
(text-indent: 32)[In each case, no organism can reproduce faster than its previous population times the ratio of the Fibonacci series (ie. 1.618). ]
</font>
==>
[[Go back->How It Works]]
[[Continue->How It Works 3]]
[[Main Menu->Title Page]] =><=
Brendan's Ecosystem Simulator
How It Works
---
<==
<font size =4>
(text-indent: 32)[Try out different arrangements of plants, trees, herbivores, and carnivores. See if you can figure out how many prey animals are needed to support your favourite predators, and how many plants and trees are needed to support that predator's prey. ]
(text-indent: 32)[Fill the simulation with anything at all, then watch it run to see what happens. Perhaps the system will find an equilibrium, in which everything ossilates around (mostly) stable population numbers: a "balance" of nature. Or, perhaps the predators will eat all their prey, and then die of starvation. ]
(text-indent: 32)[Build yourself a nice and mostly-functioning food web, and then mess with it. Throw in a new predator. Pull up all the trees. Most of all, ''experiment!'' Take a guess at what might happen when you change something, and then make that change and find out what happens!]
(text-indent: 32)[In the real world, there are millions more species, more types of relationships besides predation, various unpredictable events such as invasive species and weather events. And of course, in the real world, there is no such thing as a "balance of nature". Still, I hope that this simulation provides a fun experience of how ecosystems work. Thank you for playing!]
</font>
==>
[[Go back->How It Works 2]]
[[Main Menu->Title Page]]
''Change Settings''
---
Ecosystem Succession: (dropdown: 2bind $succession, "Off", "On")
Refresh speed: (dropdown: 2bind $refresh, "Very Slow", "Slow", "Medium", "Fast")
---
==>
[[Return->Change Setings 2]]
(if: $refresh is "Fast")[(set: $speed to 1.5)]
(if: $refresh is "Medium")[(set: $speed to 3.5)]
(if: $refresh is "Slow")[(set: $speed to 8)]
(if: $refresh is "Very Slow")[(set: $speed to 12)]
(goto: "Main Interface")=><=
Brendan's Ecosystem Simulator
Refresh Speed
---
<==
<font size =4>
(text-indent: 32)[In the main interface, you will see a moving progress bar on the bottom of the screen. When that bar reaches the full length of the screen, all the organisms will interact with each other: populations will rise or fall, and in general the ecosystem will advance to the next state. Refresh Speed controls how fast that progress bar will move. You can change this speed at any time; you can also advance to the next turn manually at any time.]
</font>
==>
[[Main Menu->Title Page]]
[[Begin!->Setup 1]]<font size=3> \
|=
=><=
(print: $Seeds)
Seeds
=|=
=><=
(print: $Nuts)
Nuts
=|=
=><=
(print: $Berries)
Berries
=|=
=><=
(print: $Fungi)
Fungi
=|=
=><=
(print: $Insects)
Insects
=|=
=><=
(print: $death)
Detritus
|==|
---
(display: "Ecosystem display - Row 1")
(display: "Ecosystem display - Row 2")
(display: "Ecosystem display - Row 3")
---
(display: "Biome area display")
---
|=
Refresh speed: //(print: $refresh)//. • Ecological succession: //(print: $succession)//.
[[Start again->Title Page]] • [[Change Settings]]
=|
==>
[[Next Turn->Ecosystem Begins]]
|==|(set: $Shield's pressure to it + ($Fungi * 0.01) + ($death * 0.01))
(if: $Hab1's ecosp is not "none" and $Hab1's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab1's ecosp is _item)[(set: $PlaceRef to $Hab1's pop) (display: _item + " ecosp")]
]]
(if: $Hab2's ecosp is not "none" and $Hab2's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab2's ecosp is _item)[(set: $PlaceRef to $Hab2's pop) (display: _item + " ecosp")]
]]
(if: $Hab3's ecosp is not "none" and $Hab3's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab3's ecosp is _item)[(set: $PlaceRef to $Hab3's pop) (display: _item + " ecosp")]
]]
(if: $Hab4's ecosp is not "none" and $Hab4's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab4's ecosp is _item)[(set: $PlaceRef to $Hab4's pop) (display: _item + " ecosp")]
]]
(if: $Hab5's ecosp is not "none" and $Hab5's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab5's ecosp is _item)[(set: $PlaceRef to $Hab5's pop) (display: _item + " ecosp")]
]]
(if: $Hab6's ecosp is not "none" and $Hab6's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab6's ecosp is _item)[(set: $PlaceRef to $Hab6's pop) (display: _item + " ecosp")]
]]
(if: $Hab7's ecosp is not "none" and $Hab7's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab7's ecosp is _item)[(set: $PlaceRef to $Hab7's pop) (display: _item + " ecosp")]
]]
(if: $Hab8's ecosp is not "none" and $Hab8's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab8's ecosp is _item)[(set: $PlaceRef to $Hab8's pop) (display: _item + " ecosp")]
]]
(if: $Hab9's ecosp is not "none" and $Hab9's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab9's ecosp is _item)[(set: $PlaceRef to $Hab9's pop) (display: _item + " ecosp")]
]]
(if: $Hab10's ecosp is not "none" and $Hab10's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab10's ecosp is _item)[(set: $PlaceRef to $Hab10's pop) (display: _item + " ecosp")]
]]
(if: $Hab11's ecosp is not "none" and $Hab11's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab11's ecosp is _item)[(set: $PlaceRef to $Hab11's pop) (display: _item + " ecosp")]
]]
(if: $Hab12's ecosp is not "none" and $Hab12's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab12's ecosp is _item)[(set: $PlaceRef to $Hab12's pop) (display: _item + " ecosp")]
]]
(if: $Hab13's ecosp is not "none" and $Hab13's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab13's ecosp is _item)[(set: $PlaceRef to $Hab13's pop) (display: _item + " ecosp")]
]]
(if: $Hab14's ecosp is not "none" and $Hab14's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab14's ecosp is _item)[(set: $PlaceRef to $Hab14's pop) (display: _item + " ecosp")]
]]
(if: $Hab15's ecosp is not "none" and $Hab15's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab15's ecosp is _item)[(set: $PlaceRef to $Hab15's pop) (display: _item + " ecosp")]
]]
(if: $Hab16's ecosp is not "none" and $Hab16's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab16's ecosp is _item)[(set: $PlaceRef to $Hab16's pop) (display: _item + " ecosp")]
]]
(if: $Hab17's ecosp is not "none" and $Hab17's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab17's ecosp is _item)[(set: $PlaceRef to $Hab17's pop) (display: _item + " ecosp")]
]]
(if: $Hab18's ecosp is not "none" and $Hab18's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab18's ecosp is _item)[(set: $PlaceRef to $Hab18's pop) (display: _item + " ecosp")]
]]
(if: $Hab19's ecosp is not "none" and $Hab19's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab19's ecosp is _item)[(set: $PlaceRef to $Hab19's pop) (display: _item + " ecosp")]
]]
(if: $Hab20's ecosp is not "none" and $Hab20's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab20's ecosp is _item)[(set: $PlaceRef to $Hab20's pop) (display: _item + " ecosp")]
]]
(if: $Hab21's ecosp is not "none" and $Hab21's name is not "none")[
(for: each _item, "Temperate", "Boreal", "Grassland", "Wetland", "Shield")[
(if: $Hab21's ecosp is _item)[(set: $PlaceRef to $Hab21's pop) (display: _item + " ecosp")]
]]
(goto: "Succession calculus")
(Set: $Temperate's pressure to it + (0.1 * $PlaceRef))
(Set: $Boreal's pressure to it + (0.1 * $PlaceRef))
(Set: $Grassland's pressure to it + (0.1 * $PlaceRef))
(Set: $Wetland's pressure to it + (0.1 * $PlaceRef))
(Set: $Shield's pressure to it + (0.1 * $PlaceRef))
(set: $Temperate's prev to $Temperate's area)
(set: $Boreal's prev to $Boreal's area)
(set: $Grassland's prev to $Grassland's area)
(set: $Wetland's prev to $Wetland's area)
(set: $Shield's prev to $Shield's area)
(if: $Temperate's pressure is > $Temperate's area)[
(set: $Temperate's area to it + 1, $Grassland's area to it -1)
(set: $Temperate's pressure to 0)]
(if: $Boreal's pressure is > $Boreal's area)[
(set: $Boreal's area to it +1, $Shield's area to it -1)
(set: $Boreal's pressure to 0)]
(if: $Grassland's pressure is > $Grassland's area)[
(set: $Grassland's area to it +1, $Shield's area to it -1)
(set: $Grassland's pressure to 0)]
(if: $Wetland's pressure is > $Wetland's area)[
(set: $Wetland's area to it +1, $Grassland's area to it -1, $Temperate's area to it -1)
(set: $Wetland's pressure to 0)]
(if: $Shield's pressure is > $Shield's area)[
(set: $Shield's area to it +1)
(set: $Shield's pressure to 0)]
(if: $Temperate's area is < 0)[(set: $Temperate's area to 0)]
(if: $Boreal's area is < 0)[(set: $BOreal's area to 0)]
(if: $Grassland's area is < 0)[(set: $Grassland's area to 0)]
(if: $Wetland's area is < 0)[(set: $Wetland's area to 0)]
(if: $Shield's area is < 0)[(set: $Shield's area to 0)]
(goto: "Main Interface")|=
=><=
Shieldland
(if: $Shield's area is > $Shield's prev)[(text-color: green)[(print: $Shield's area) ( (print: (round: (($Shield's area * 100) / $TotalArea))) %)]] \
(if: $Shield's area is $Shield's prev)[(text-color: white)[(print: $Shield's area) ( (print: (round: (($Shield's area * 100) / $TotalArea))) %)]] \
(if: $Shield's area is < $Shield's prev or $Shield's area is 0)[(text-color: red)[(print: $Shield's area) ( (print: (round: (($Shield's area * 100) / $TotalArea))) %)]]
=|=
=><=
Grassland
(if: $Grassland's area is > $Grassland's prev)[(text-color: green)[(print: $Grassland's area) ( (print: (round: (($Grassland's area * 100) / $TotalArea))) %)]] \
(if: $Grassland's area is $Grassland's prev)[(text-color: white)[(print: $Grassland's area) ( (print: (round: (($Grassland's area * 100) / $TotalArea))) %)]] \
(if: $Grassland's area is < $Grassland's prev or $Grassland's area is 0)[(text-color: red)[(print: $Grassland's area) ( (print: (round: (($Grassland's area * 100) / $TotalArea))) %)]]
=|=
=><=
Temperate
(if: $Temperate's area is > $Temperate's prev)[(text-color: green)[(print: $Temperate's area) ( (print: (round: (($Temperate's area * 100) / $TotalArea))) %)]] \
(if: $Temperate's area is $Temperate's prev)[(text-color: white)[(print: $Temperate's area) ( (print: (round: (($Temperate's area * 100) / $TotalArea))) %)]] \
(if: $Temperate's area is < $Temperate's prev or $Temperate's area is 0)[(text-color: red)[(print: $Temperate's area) ( (print: (round: (($Temperate's area * 100) / $TotalArea))) %)]]
=|=
=><=
Wetland
(if: $Wetland's area is > $Wetland's prev)[(text-color: green)[(print: $Wetland's area) ( (print: (round: (($Wetland's area * 100) / $TotalArea))) %)]] \
(if: $Wetland's area is $Wetland's prev)[(text-color: white)[(print: $Wetland's area) ( (print: (round: (($Wetland's area * 100) / $TotalArea))) %)]] \
(if: $Wetland's area is < $Wetland's prev or $Wetland's area is 0)[(text-color: red)[(print: $Wetland's area) ( (print: (round: (($Wetland's area * 100) / $TotalArea))) %)]]
=|
=><=
Boreal
(if: $Boreal's area is > $Boreal's prev)[(text-color: green)[(print: $Boreal's area) ( (print: (round: (($Boreal's area * 100) / $TotalArea))) %)]] \
(if: $Boreal's area is $Boreal's prev)[(text-color: white)[(print: $Boreal's area) ( (print: (round: (($Boreal's area * 100) / $TotalArea))) %)]] \
(if: $Boreal's area is < $Boreal's prev or $Boreal's area is 0)[(text-color: red)[(print: $Boreal's area) ( (print: (round: (($Boreal's area * 100) / $TotalArea))) %)]]
|==|=><=
Brendan's Ecosystem Simulator
Ecological Succession
---
<==
<font size =4>
(text-indent: 32)[//Ecological Succession //is the process in which the life-forms of an ecosystem can change the physical nature of the landscape in which they live, possibly changing it into a state better suited to a very different kind of ecosystem. In this simulation, if you allow for succession to take place, some of the organisms will cause the the area of one biome to decrease, and the area of another biome to increase. The speed at which that will happen depends on how many organisms there are which exert succession pressure on the biome.]
</font>
==>
[[Main Menu->Title Page]]
[[Begin!->Setup 1]]=><=
Brendan's Ecosystem Simulator
Starting Biome
---
<==
<font size =4>
(text-indent: 32)[A //biome// is a collection of ecosystems that live in roughtly the same kind of landscape and in the same kind of climate zone; it's the largest organization of life on earth short of the biosphere of the entire planet as a whole. ]
(text-indent: 32)[This simulation treates biomes like landform-types which can support different kinds of plants and trees:]
• temperate forest,
• boreal forest,
• grassland,
• wetland,
• and shield-land (which is like a boreal landscape but it supports fewer trees and plants).
(text-indent: 32)[If you choose "Mixed", the simulation will start with 100 km^^2^^ of all five of these biomes. You can also begin with one type of biome more dominant than the others: having 400 km^^2^^, while the other biomes will have only 25 km^^2^^.]
(text-indent: 32)[If you choose "Random", every biome will begin with a random size between 100 and 400 km^^2^^.]
</font>
==>
[[Main Menu->Title Page]]
[[Begin!->Setup 1]]=><=
Brendan's Ecosystem Simulator
Developer Notes
---
<==
<font size =4>
(text-indent: 32)[First of all: ''thank you for playing my game''!]
(text-indent: 32)[I have been interested in ecology as a science, and in game design, since I was a teenager. Partly because I find it fun to think about complex systems like the biosphere. Partly because I used to make games like this on my old Commodore 128 computer (yeah, that shows my age) and Twine gives me the chance to make games like this again. Partly because I plan to use this game, and Twine in general, as a teaching tool in my classes (I'm a college prof by day).]
(text-indent: 32)[But mostly because I find that the Earth is the most wonderful and beautiful world, the Great Mother of all life, the only home we have, and possibly the only home we will ever have.]
(text-indent: 32)[The relations of predator, prey, habitat, and ecological succession are modelled in this game as close to how they are in nature as my programming skills allow. This meant I had to make some hard decisions. Which biome should the game be set in? What, for example, is the carrying capacity of a hardwood forest for moose and caribou? In the real world, top predators eat almost all kinds of herbivores and aquatic microbiovores, but what will they eat in this game? You get the idea.]
(text-indent: 32)[This is the second public release of this game: the first was called "The Last Forest" and it included a story of sorts about a future Earth where all forests had died, except for one last small forest which you, as a player, had to save. It included player targets for biodiversity, and the ability to "Release the kraken!"-- basically, to suddenly create a dozen of every type of predator and thus to initiate a trophic cascade. In the future I will bring those features back. But for now, think of this simulation like a sandbox you can play in, having no particular goal to reach but the one you set for yourself.]
(text-indent: 32)[A personal note: I think that ecology will be the science of the future. It is already the science of the food we eat, the water and air we take, the planet we love. It is the science of the climate crisis, and I sometimes wonder if climate-crisis denialism remains popular because, at least in part, people don't understand the basics of ecology. Or economics. Or ethics.]
(text-indent: 32)[My hope is that people will treat this game, first of all, as a fun and challenging puzzle to solve. I also hope people will treat it as an educational experience: a way to learn how fragile complex systems are, how there is no such thing as a "balance of nature", and how we need patience-- a //lot// of patience-- to care for the planet and to end the crisis.]
(text-indent: 32)[But that's enough polemic from me, for now. ]
(text-indent: 32)[If you don't mind me saying so, I'm kind of proud of myself for this little game, and I do hope you enjoyed it. If you manage to win, send me a note to let me know how you did it. And maybe tell your friends about it too. ]
(text-indent: 32)[And then, go and visit your nearest real-world green space, and find out what you can do to help take care of it. ]
~Bren.
</font>
==>
[[Main Menu->Title Page]]