diff --git a/assets/world/wildlife/spawn/arctic/ocean.ron b/assets/world/wildlife/spawn/arctic/ocean.ron index 7d13c77cf0..be7f222113 100644 --- a/assets/world/wildlife/spawn/arctic/ocean.ron +++ b/assets/world/wildlife/spawn/arctic/ocean.ron @@ -14,7 +14,6 @@ SpawnEntry ( (4, (4, 12, "common.entity.wild.peaceful.penguin")), (4, (4, 8, "common.entity.wild.peaceful.seal")), (1, (1, 1, "common.entity.wild.aggressive.tursus")), - (1, (1, 1, "common.entity.wild.aggressive.akhlut")), ], spawn_mode: Ice, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/desert/area.ron b/assets/world/wildlife/spawn/desert/area.ron index a176a4c794..8dbfd0ed52 100644 --- a/assets/world/wildlife/spawn/desert/area.ron +++ b/assets/world/wildlife/spawn/desert/area.ron @@ -4,8 +4,10 @@ SpawnEntry ( rules: [ Pack( groups: [ - (1, (3, 6, "common.entity.wild.peaceful.zebra")), - (1, (3, 6, "common.entity.wild.peaceful.antelope")), + (1, (1, 1, "common.entity.wild.aggressive.asp")), + (1, (1, 3, "common.entity.wild.aggressive.sand_raptor")), + (1, (1, 1, "common.entity.wild.aggressive.antlion")), + (1, (1, 1, "common.entity.wild.aggressive.lavadrake")), ], spawn_mode: Land, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/desert/hot.ron b/assets/world/wildlife/spawn/desert/hot.ron index 3bfc0d3c77..5c35e4942a 100644 --- a/assets/world/wildlife/spawn/desert/hot.ron +++ b/assets/world/wildlife/spawn/desert/hot.ron @@ -9,7 +9,6 @@ SpawnEntry ( (2, (1, 1, "common.entity.wild.peaceful.sand_hare")), (2, (1, 1, "common.entity.wild.peaceful.salamander")), (2, (1, 1, "common.entity.wild.peaceful.gecko")), - (2, (1, 1, "common.entity.wild.aggressive.axebeak")), // Rare (1, (1, 1, "common.entity.wild.peaceful.crawler_sand")), ], @@ -18,10 +17,8 @@ SpawnEntry ( ), Pack( groups: [ - (1, (1, 1, "common.entity.wild.peaceful.holladon")), (1, (1, 1, "common.entity.wild.peaceful.porcupine")), (1, (1, 1, "common.entity.wild.peaceful.pangolin")), - (1, (1, 3, "common.entity.wild.aggressive.bat")), ], spawn_mode: Land, day_period: [Night], diff --git a/assets/world/wildlife/spawn/desert/rock.ron b/assets/world/wildlife/spawn/desert/rock.ron index 5d7ca007d9..910a5b2a21 100644 --- a/assets/world/wildlife/spawn/desert/rock.ron +++ b/assets/world/wildlife/spawn/desert/rock.ron @@ -8,6 +8,7 @@ SpawnEntry ( (2, (1, 1, "common.entity.wild.aggressive.dodarock")), (5, (1, 3, "common.entity.wild.peaceful.gecko")), (5, (1, 2, "common.entity.wild.peaceful.sand_hare")), + (5, (1, 1, "common.entity.wild.aggressive.bonerattler")), ], spawn_mode: Land, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/desert/wasteland.ron b/assets/world/wildlife/spawn/desert/wasteland.ron index 427f7cc3cd..c7a1001d92 100644 --- a/assets/world/wildlife/spawn/desert/wasteland.ron +++ b/assets/world/wildlife/spawn/desert/wasteland.ron @@ -5,18 +5,12 @@ SpawnEntry ( Pack( groups: [ // Casual - (110, (1, 1, "common.entity.wild.aggressive.bonerattler")), - (100, (1, 1, "common.entity.wild.aggressive.sand_raptor")), (100, (1, 1, "common.entity.wild.aggressive.sandshark")), - (100, (1, 1, "common.entity.wild.aggressive.antlion")), + (80, (1, 1, "common.entity.wild.peaceful.eagle")), // Rare - (20, (1, 1, "common.entity.wild.aggressive.lavadrake")), - (20, (1, 1, "common.entity.wild.aggressive.ntouka")), (20, (1, 1, "common.entity.wild.aggressive.archaeos")), - (20, (1, 1, "common.entity.wild.aggressive.ngoubou")), (20, (1, 1, "common.entity.wild.aggressive.tarantula")), - // Ultra_rare - (1, (1, 1, "common.entity.wild.aggressive.roshwalr_boss")), + (20, (1, 1, "common.entity.wild.aggressive.ogre")), ], spawn_mode: Land, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/jungle/rainforest.ron b/assets/world/wildlife/spawn/jungle/rainforest.ron index 04b1aae7e8..16d8ed6106 100644 --- a/assets/world/wildlife/spawn/jungle/rainforest.ron +++ b/assets/world/wildlife/spawn/jungle/rainforest.ron @@ -5,9 +5,11 @@ SpawnEntry ( Pack( groups: [ // Casual - (5, (1, 1, "common.entity.wild.aggressive.asp")), (5, (1, 1, "common.entity.wild.aggressive.tiger")), (5, (1, 1, "common.entity.wild.aggressive.maneater")), + (5, (1, 3, "common.entity.wild.aggressive.wood_raptor")), + (5, (1, 1, "common.entity.wild.aggressive.deadwood")), + (5, (1, 1, "common.entity.wild.peaceful.dodo")), // Rare (1, (1, 1, "common.entity.wild.aggressive.sunlizard")), (1, (1, 1, "common.entity.wild.aggressive.odonto")), diff --git a/assets/world/wildlife/spawn/jungle/rainforest_area.ron b/assets/world/wildlife/spawn/jungle/rainforest_area.ron index ae13f765fc..4a6412c8e1 100644 --- a/assets/world/wildlife/spawn/jungle/rainforest_area.ron +++ b/assets/world/wildlife/spawn/jungle/rainforest_area.ron @@ -1,5 +1,5 @@ SpawnEntry ( - name: "Jungle rainforest rare wildlife.", + name: "Jungle rainforest wildlife.", note: "Spread through the area.", rules: [ Pack( @@ -9,6 +9,7 @@ SpawnEntry ( (5, (1, 1, "common.entity.wild.peaceful.quokka")), (5, (1, 1, "common.entity.wild.peaceful.parakeet")), // Rare + (1, (1, 1, "common.entity.wild.aggressive.tarasque")), (1, (1, 1, "common.entity.wild.peaceful.tortoise")), (1, (1, 1, "common.entity.wild.aggressive.monitor")), (1, (1, 1, "common.entity.wild.aggressive.horn_beetle")), @@ -18,6 +19,7 @@ SpawnEntry ( (1, (1, 1, "common.entity.wild.aggressive.axebeak")), (1, (1, 1, "common.entity.wild.peaceful.toucan")), (1, (1, 1, "common.entity.wild.peaceful.peacock")), + (1, (1, 1, "common.entity.wild.aggressive.swamp_troll")), ], spawn_mode: Land, day_period: [Morning, Noon, Evening], @@ -26,7 +28,7 @@ SpawnEntry ( groups: [ (5, (1, 1, "common.entity.wild.peaceful.quokka")), (1, (1, 1, "common.entity.wild.peaceful.tortoise")), - (2, (1, 3, "common.entity.wild.aggressive.bat")), + (1, (1, 1, "common.entity.wild.aggressive.swamp_troll")), ], spawn_mode: Land, day_period: [Night], diff --git a/assets/world/wildlife/spawn/taiga/area.ron b/assets/world/wildlife/spawn/taiga/area.ron index 83b45ef0fd..59c77089b7 100644 --- a/assets/world/wildlife/spawn/taiga/area.ron +++ b/assets/world/wildlife/spawn/taiga/area.ron @@ -4,17 +4,40 @@ SpawnEntry ( rules: [ Pack( groups: [ + (1, (1, 1, "common.entity.wild.aggressive.bear")), (1, (1, 1, "common.entity.wild.peaceful.eagle")), (1, (1, 1, "common.entity.wild.peaceful.horned_owl")), - (1, (1, 1, "common.entity.wild.peaceful.arctic_fox")), (1, (1, 1, "common.entity.wild.peaceful.moose")), - (1, (1, 1, "common.entity.wild.peaceful.arctic_hare")), (1, (1, 1, "common.entity.wild.peaceful.tuskram")), (1, (1, 1, "common.entity.wild.aggressive.bristleback")), (1, (1, 4, "common.entity.wild.peaceful.crow")), + (1, (1, 7, "common.entity.wild.peaceful.deer")), + (1, (1, 7, "common.entity.wild.peaceful.jackalope")), + (1, (1, 7, "common.entity.wild.peaceful.boar")), + (1, (5, 10, "common.entity.wild.peaceful.sheep")), + (1, (1, 2, "common.entity.wild.peaceful.squirrel")), + (1, (5, 10, "common.entity.wild.peaceful.goat")), + (1, (3, 8, "common.entity.wild.peaceful.llama")), + (1, (1, 2, "common.entity.wild.peaceful.donkey")), + (1, (1, 1, "common.entity.wild.peaceful.skunk")), + (1, (1, 1, "common.entity.wild.peaceful.raccoon")), + (1, (1, 1, "common.entity.wild.peaceful.catoblepas")), + (1, (1, 1, "common.entity.wild.peaceful.truffler")), + (1, (1, 1, "common.entity.wild.aggressive.tarasque")), + (1, (1, 1, "common.entity.wild.aggressive.saber")), ], spawn_mode: Land, - day_period: [Night, Morning, Noon, Evening], + day_period: [Morning, Noon, Evening], + ), + Pack( + groups: [ + (5, (1, 3, "common.entity.wild.peaceful.squirrel")), + (5, (1, 1, "common.entity.wild.peaceful.forest_fox")), + (5, (1, 3, "common.entity.wild.peaceful.raccoon")), + (2, (1, 1, "common.entity.wild.aggressive.dullahan")), + ], + spawn_mode: Land, + day_period: [Night], ), ], ) diff --git a/assets/world/wildlife/spawn/taiga/core.ron b/assets/world/wildlife/spawn/taiga/core.ron index 53ea62b7d5..62c51482c0 100644 --- a/assets/world/wildlife/spawn/taiga/core.ron +++ b/assets/world/wildlife/spawn/taiga/core.ron @@ -1,11 +1,10 @@ SpawnEntry ( - name: "Taiga pack animals.", + name: "Taiga core wildlife.", note: "Search for them in the heart of taiga.", rules: [ Pack( groups: [ (1, (1, 3, "common.entity.wild.peaceful.mouflon")), - (1, (1, 3, "common.entity.wild.peaceful.yak")), (1, (1, 3, "common.entity.wild.peaceful.llama")), (1, (1, 3, "common.entity.wild.peaceful.alpaca")), (1, (1, 3, "common.entity.wild.peaceful.highland")), diff --git a/assets/world/wildlife/spawn/taiga/core_forest.ron b/assets/world/wildlife/spawn/taiga/core_forest.ron index 82a9d0d017..d362ba6f9f 100644 --- a/assets/world/wildlife/spawn/taiga/core_forest.ron +++ b/assets/world/wildlife/spawn/taiga/core_forest.ron @@ -1,10 +1,9 @@ SpawnEntry ( - name: "Taiga rare forest wildlife.", + name: "Taiga core forest wildlife.", note: "Search for them in the heart of the taiga, if you are feeling lucky.", rules: [ Pack( groups: [ - (1, (1, 1, "common.entity.wild.aggressive.wendigo")), (1, (1, 1, "common.entity.wild.aggressive.dreadhorn")), ], spawn_mode: Land, @@ -12,7 +11,6 @@ SpawnEntry ( ), Pack( groups: [ - (1, (1, 1, "common.entity.wild.aggressive.wendigo")), (1, (1, 1, "common.entity.wild.aggressive.dreadhorn")), (1, (1, 1, "common.entity.wild.aggressive.irrwurz")), ], diff --git a/assets/world/wildlife/spawn/taiga/river.ron b/assets/world/wildlife/spawn/taiga/river.ron new file mode 100644 index 0000000000..019e7ca389 --- /dev/null +++ b/assets/world/wildlife/spawn/taiga/river.ron @@ -0,0 +1,15 @@ +SpawnEntry ( + name: "Taiga river wildlife.", + note: "", + rules: [ + Pack( + groups: [ + (5, (1, 1, "common.entity.wild.peaceful.beaver")), + (5, (1, 1, "common.entity.wild.peaceful.elbst")), + (5, (1, 1, "common.entity.wild.peaceful.duck")), + ], + spawn_mode: Land, + day_period: [Night, Morning, Noon, Evening], + ), + ], +) diff --git a/assets/world/wildlife/spawn/taiga/water.ron b/assets/world/wildlife/spawn/taiga/water.ron index 309145dfa6..1d3c77f9e2 100644 --- a/assets/world/wildlife/spawn/taiga/water.ron +++ b/assets/world/wildlife/spawn/taiga/water.ron @@ -4,7 +4,7 @@ SpawnEntry ( rules: [ Pack( groups: [ - (1, (1, 2, "common.entity.wild.aggressive.icepike")), + (1, (1, 2, "common.entity.wild.peaceful.marlin")), ], spawn_mode: Water, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/tropical/river_rare.ron b/assets/world/wildlife/spawn/temperate/beach.ron similarity index 56% rename from assets/world/wildlife/spawn/tropical/river_rare.ron rename to assets/world/wildlife/spawn/temperate/beach.ron index 758476a0fd..ea6475c741 100644 --- a/assets/world/wildlife/spawn/tropical/river_rare.ron +++ b/assets/world/wildlife/spawn/temperate/beach.ron @@ -1,10 +1,10 @@ SpawnEntry ( - name: "Tropical rare river wildlife.", - note: "", + name: "Temperate Ocean beach wildlife.", + note: "Beach inhabitants", rules: [ Pack( groups: [ - (1, (1, 2, "common.entity.wild.aggressive.alligator")), + (5, (1, 3, "common.entity.wild.peaceful.puffin")), ], spawn_mode: Land, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/temperate/ocean.ron b/assets/world/wildlife/spawn/temperate/ocean.ron new file mode 100644 index 0000000000..6e2e71498b --- /dev/null +++ b/assets/world/wildlife/spawn/temperate/ocean.ron @@ -0,0 +1,13 @@ +SpawnEntry ( + name: "Temperate Ocean wildlife.", + note: "Ocean inhabitants", + rules: [ + Pack( + groups: [ + (3, (3, 4, "common.entity.wild.peaceful.marlin")), + ], + spawn_mode: Water, + day_period: [Night, Morning, Noon, Evening], + ), + ], +) diff --git a/assets/world/wildlife/spawn/temperate/plains.ron b/assets/world/wildlife/spawn/temperate/plains.ron new file mode 100644 index 0000000000..4f5753c1ce --- /dev/null +++ b/assets/world/wildlife/spawn/temperate/plains.ron @@ -0,0 +1,32 @@ +SpawnEntry ( + name: "Temperate plains wildlife.", + note: "", + rules: [ + Pack( + groups: [ + (5, (1, 1, "common.entity.wild.aggressive.weevil")), + (5, (1, 7, "common.entity.wild.peaceful.horse")), + (5, (5, 10, "common.entity.wild.peaceful.cattle")), + (5, (2, 5, "common.entity.wild.peaceful.chicken")), + (5, (1, 7, "common.entity.wild.peaceful.rabbit")), + (5, (1, 2, "common.entity.wild.peaceful.frog")), + (5, (1, 7, "common.entity.wild.peaceful.pig")), + (5, (1, 1, "common.entity.wild.peaceful.leaf_beetle")), + (5, (1, 1, "common.entity.wild.peaceful.bushly")), + (5, (1, 1, "common.entity.wild.peaceful.driggle")), + (1, (1, 1, "common.entity.wild.aggressive.ogre")), + ], + spawn_mode: Land, + day_period: [Morning, Noon, Evening], + ), + Pack( + groups: [ + // Solitary + // Pack + (1, (1, 2, "common.entity.wild.peaceful.emberfly")), + ], + spawn_mode: Land, + day_period: [Night], + ), + ], +) diff --git a/assets/world/wildlife/spawn/temperate/rainforest.ron b/assets/world/wildlife/spawn/temperate/rainforest.ron index 41a5e7812d..52b1d48a9c 100644 --- a/assets/world/wildlife/spawn/temperate/rainforest.ron +++ b/assets/world/wildlife/spawn/temperate/rainforest.ron @@ -5,34 +5,12 @@ SpawnEntry ( Pack( groups: [ // Pack animals - (1, (1, 7, "common.entity.wild.peaceful.deer")), - (1, (1, 3, "common.entity.wild.peaceful.rat")), - (1, (1, 7, "common.entity.wild.peaceful.rabbit")), - (1, (1, 7, "common.entity.wild.peaceful.jackalope")), - (1, (1, 7, "common.entity.wild.peaceful.boar")), - (1, (1, 7, "common.entity.wild.peaceful.sheep")), - (1, (1, 7, "common.entity.wild.peaceful.pig")), - (1, (1, 7, "common.entity.wild.peaceful.squirrel")), - (1, (1, 7, "common.entity.wild.peaceful.horse")), - (1, (1, 7, "common.entity.wild.peaceful.cattle")), - (1, (1, 7, "common.entity.wild.peaceful.goat")), - (1, (1, 7, "common.entity.wild.peaceful.llama")), - (1, (1, 7, "common.entity.wild.peaceful.alpaca")), - (1, (1, 7, "common.entity.wild.peaceful.chicken")), - (1, (1, 4, "common.entity.wild.peaceful.crow")), - (2, (1, 1, "common.entity.wild.peaceful.bushly")), + (2, (1, 7, "common.entity.wild.peaceful.boar")), + // Solitary (2, (1, 1, "common.entity.wild.peaceful.mossy_snail")), (2, (1, 1, "common.entity.wild.peaceful.treant_sapling")), - // Solitary - (2, (1, 1, "common.entity.wild.peaceful.forest_fox")), - (2, (1, 1, "common.entity.wild.peaceful.donkey")), - (2, (1, 1, "common.entity.wild.peaceful.goose")), (2, (1, 1, "common.entity.wild.peaceful.peacock")), - (2, (1, 1, "common.entity.wild.peaceful.skunk")), - (2, (1, 1, "common.entity.wild.peaceful.raccoon")), - (2, (1, 1, "common.entity.wild.peaceful.catoblepas")), (2, (1, 1, "common.entity.wild.peaceful.turtle")), - (2, (1, 1, "common.entity.wild.peaceful.hirdrasil")), (2, (1, 1, "common.entity.wild.peaceful.truffler")), (2, (1, 1, "common.entity.wild.peaceful.leaf_beetle")), (2, (1, 1, "common.entity.wild.aggressive.weevil")), @@ -42,14 +20,7 @@ SpawnEntry ( ), Pack( groups: [ - // Solitary - (1, (1, 1, "common.entity.wild.aggressive.batfox")), - (5, (1, 1, "common.entity.wild.peaceful.forest_fox")), - (5, (1, 1, "common.entity.wild.peaceful.raccoon")), // Pack - (5, (1, 3, "common.entity.wild.peaceful.rat")), - (5, (1, 3, "common.entity.wild.peaceful.squirrel")), - (3, (1, 3, "common.entity.wild.aggressive.bat")), (5, (1, 3, "common.entity.wild.peaceful.emberfly")), ], spawn_mode: Land, diff --git a/assets/world/wildlife/spawn/temperate/rare.ron b/assets/world/wildlife/spawn/temperate/rare.ron index c822a7d196..1aae3af9a7 100644 --- a/assets/world/wildlife/spawn/temperate/rare.ron +++ b/assets/world/wildlife/spawn/temperate/rare.ron @@ -5,22 +5,13 @@ SpawnEntry ( Pack( groups: [ (1, (1, 1, "common.entity.wild.aggressive.ogre")), - (1, (1, 1, "common.entity.wild.aggressive.swamp_troll")), - (1, (1, 1, "common.entity.wild.aggressive.dullahan")), - (2, (1, 1, "common.entity.wild.peaceful.bushly")), - (2, (1, 1, "common.entity.wild.peaceful.driggle")), ], spawn_mode: Land, day_period: [Morning, Noon, Evening], ), Pack( groups: [ - // Solitary (1, (1, 1, "common.entity.wild.aggressive.ogre")), - (1, (1, 1, "common.entity.wild.aggressive.swamp_troll")), - (1, (1, 1, "common.entity.wild.aggressive.dullahan")), - // Pack - (1, (1, 3, "common.entity.wild.peaceful.emberfly")), ], spawn_mode: Land, day_period: [Night], diff --git a/assets/world/wildlife/spawn/temperate/river.ron b/assets/world/wildlife/spawn/temperate/river.ron index 6fb860498a..69ae79afc9 100644 --- a/assets/world/wildlife/spawn/temperate/river.ron +++ b/assets/world/wildlife/spawn/temperate/river.ron @@ -4,11 +4,9 @@ SpawnEntry ( rules: [ Pack( groups: [ - (5, (1, 1, "common.entity.wild.peaceful.beaver")), - (5, (1, 1, "common.entity.wild.peaceful.elbst")), - (5, (1, 1, "common.entity.wild.peaceful.duck")), - (1, (1, 1, "common.entity.wild.peaceful.kelpie")), - (1, (1, 1, "common.entity.wild.aggressive.hakulaq")), + (5, (2, 3, "common.entity.wild.peaceful.duck")), + (5, (1, 2, "common.entity.wild.peaceful.goose")), + (5, (1, 1, "common.entity.wild.peaceful.turtle")), ], spawn_mode: Land, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/temperate/water.ron b/assets/world/wildlife/spawn/temperate/water.ron deleted file mode 100644 index 1ecbfade3a..0000000000 --- a/assets/world/wildlife/spawn/temperate/water.ron +++ /dev/null @@ -1,16 +0,0 @@ -SpawnEntry ( - name: "Temperate water wildlife.", - note: "River inhabitants", - rules: [ - Pack( - groups: [ - (1, (3, 4, "common.entity.wild.peaceful.marlin")), - (1, (3, 4, "common.entity.wild.peaceful.piranha")), - (1, (3, 4, "common.entity.wild.peaceful.clownfish")), - (1, (1, 1, "common.entity.wild.peaceful.puffin")), - ], - spawn_mode: Water, - day_period: [Night, Morning, Noon, Evening], - ), - ], -) diff --git a/assets/world/wildlife/spawn/temperate/wood.ron b/assets/world/wildlife/spawn/temperate/wood.ron index b817bbaaa5..18da6bff7e 100644 --- a/assets/world/wildlife/spawn/temperate/wood.ron +++ b/assets/world/wildlife/spawn/temperate/wood.ron @@ -5,20 +5,36 @@ SpawnEntry ( Pack( groups: [ // Aggressive - (1, (1, 1, "common.entity.wild.aggressive.bear")), - (1, (1, 1, "common.entity.wild.aggressive.tarasque")), - (1, (1, 1, "common.entity.wild.aggressive.wood_raptor")), - (1, (1, 1, "common.entity.wild.aggressive.deadwood")), - (1, (1, 1, "common.entity.wild.aggressive.saber")), - (1, (1, 1, "common.entity.wild.aggressive.weevil")), + (5, (1, 1, "common.entity.wild.aggressive.weevil")), // Peaceful - (1, (1, 1, "common.entity.wild.peaceful.leaf_beetle")), - (1, (1, 1, "common.entity.wild.peaceful.bushly")), - (1, (1, 1, "common.entity.wild.peaceful.mossy_snail")), - (1, (1, 1, "common.entity.wild.peaceful.treant_sapling")), + (5, (1, 1, "common.entity.wild.peaceful.skunk")), + (5, (1, 4, "common.entity.wild.peaceful.crow")), + (5, (1, 1, "common.entity.wild.peaceful.leaf_beetle")), + (5, (1, 7, "common.entity.wild.peaceful.deer")), + (5, (1, 7, "common.entity.wild.peaceful.rabbit")), + (5, (1, 2, "common.entity.wild.peaceful.squirrel")), + (5, (1, 1, "common.entity.wild.peaceful.mossy_snail")), + (5, (1, 1, "common.entity.wild.peaceful.treant_sapling")), + (5, (1, 1, "common.entity.wild.peaceful.raccoon")), + (5, (1, 1, "common.entity.wild.peaceful.turtle")), + (5, (1, 2, "common.entity.wild.peaceful.frog")), + (5, (1, 2, "common.entity.wild.peaceful.fungome")), + (1, (1, 1, "common.entity.wild.peaceful.hirdrasil")), ], spawn_mode: Land, - day_period: [Night, Morning, Noon, Evening], + day_period: [Morning, Noon, Evening], + ), + Pack( + groups: [ + // Solitary + (1, (1, 1, "common.entity.wild.peaceful.forest_fox")), + // Pack + (1, (1, 3, "common.entity.wild.peaceful.rat")), + (1, (1, 3, "common.entity.wild.peaceful.squirrel")), + (1, (1, 3, "common.entity.wild.peaceful.raccoon")), + ], + spawn_mode: Land, + day_period: [Night], ), ], ) diff --git a/assets/world/wildlife/spawn/tropical/beach.ron b/assets/world/wildlife/spawn/tropical/beach.ron new file mode 100644 index 0000000000..3890ed270c --- /dev/null +++ b/assets/world/wildlife/spawn/tropical/beach.ron @@ -0,0 +1,14 @@ +SpawnEntry ( + name: "Tropical Ocean beach wildlife.", + note: "Beach inhabitants", + rules: [ + Pack( + groups: [ + (3, (1, 3, "common.entity.wild.aggressive.sea_crocodile")), + (1, (1, 1, "common.entity.wild.aggressive.reefsnapper")), + ], + spawn_mode: Land, + day_period: [Night, Morning, Noon, Evening], + ), + ], +) diff --git a/assets/world/wildlife/spawn/tropical/ocean.ron b/assets/world/wildlife/spawn/tropical/ocean.ron index a272015bc4..40ad6bf567 100644 --- a/assets/world/wildlife/spawn/tropical/ocean.ron +++ b/assets/world/wildlife/spawn/tropical/ocean.ron @@ -1,11 +1,10 @@ SpawnEntry ( - name: "Ocean water wildlife.", + name: "Tropical Ocean wildlife.", note: "Ocean inhabitants", rules: [ Pack( groups: [ - (3, (1, 3, "common.entity.wild.aggressive.sea_crocodile")), - (1, (1, 1, "common.entity.wild.aggressive.reefsnapper")), + (3, (3, 4, "common.entity.wild.peaceful.clownfish")), ], spawn_mode: Water, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/tropical/rainforest.ron b/assets/world/wildlife/spawn/tropical/rainforest.ron index 71e7581b4c..40eadb87ea 100644 --- a/assets/world/wildlife/spawn/tropical/rainforest.ron +++ b/assets/world/wildlife/spawn/tropical/rainforest.ron @@ -4,9 +4,14 @@ SpawnEntry ( rules: [ Pack( groups: [ - (1, (1, 2, "common.entity.wild.aggressive.male_lion")), - (1, (1, 3, "common.entity.wild.aggressive.hyena")), - (1, (1, 1, "common.entity.wild.peaceful.dodo")), + (5, (1, 2, "common.entity.wild.aggressive.male_lion")), + (5, (1, 3, "common.entity.wild.aggressive.hyena")), + (5, (3, 6, "common.entity.wild.peaceful.zebra")), + (5, (3, 6, "common.entity.wild.peaceful.antelope")), + (5, (1, 1, "common.entity.wild.peaceful.porcupine")), + (5, (1, 1, "common.entity.wild.peaceful.pangolin")), + (5, (1, 1, "common.entity.wild.aggressive.tarantula")), + (1, (1, 1, "common.entity.wild.aggressive.ngoubou")), ], spawn_mode: Land, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/tropical/river.ron b/assets/world/wildlife/spawn/tropical/river.ron index 36f0cf3e5b..948abacd78 100644 --- a/assets/world/wildlife/spawn/tropical/river.ron +++ b/assets/world/wildlife/spawn/tropical/river.ron @@ -4,9 +4,17 @@ SpawnEntry ( rules: [ Pack( groups: [ - (1, (1, 2, "common.entity.wild.peaceful.frog")), - (1, (1, 2, "common.entity.wild.peaceful.axolotl")), - (1, (1, 2, "common.entity.wild.peaceful.fungome")), + (5, (3, 4, "common.entity.wild.peaceful.piranha")), + (5, (1, 2, "common.entity.wild.peaceful.axolotl")), + (4, (1, 2, "common.entity.wild.aggressive.alligator")), + ], + spawn_mode: Water, + day_period: [Night, Morning, Noon, Evening], + ), + Pack( + groups: [ + (2, (1, 1, "common.entity.wild.peaceful.kelpie")), + (2, (1, 1, "common.entity.wild.aggressive.crocodile")), ], spawn_mode: Land, day_period: [Night, Morning, Noon, Evening], diff --git a/assets/world/wildlife/spawn/tundra/core.ron b/assets/world/wildlife/spawn/tundra/core.ron index 8369474b6c..42ee0eaf86 100644 --- a/assets/world/wildlife/spawn/tundra/core.ron +++ b/assets/world/wildlife/spawn/tundra/core.ron @@ -1,12 +1,13 @@ SpawnEntry ( - name: "Tundra rare animals.", + name: "Tundra core animals.", note: "Search for them in the heart of tundra.", rules: [ Pack( groups: [ - (15, (1, 1, "common.entity.wild.aggressive.snow_raptor")), + (1, (1, 1, "common.entity.wild.aggressive.snow_raptor")), (1, (1, 1, "common.entity.wild.aggressive.wendigo")), (1, (2, 6, "common.entity.wild.peaceful.mammoth")), + (1, (1, 3, "common.entity.wild.peaceful.yak")), (1, (1, 1, "common.entity.wild.aggressive.mountain_troll")), ], spawn_mode: Land, diff --git a/assets/world/wildlife/spawn/tundra/river.ron b/assets/world/wildlife/spawn/tundra/river.ron new file mode 100644 index 0000000000..aa64df5e17 --- /dev/null +++ b/assets/world/wildlife/spawn/tundra/river.ron @@ -0,0 +1,21 @@ +SpawnEntry ( + name: "Tundra river wildlife.", + note: "", + rules: [ + Pack( + groups: [ + (1, (1, 1, "common.entity.wild.aggressive.hakulaq")), + (1, (1, 2, "common.entity.wild.aggressive.icepike")), + ], + spawn_mode: Water, + day_period: [Night, Morning, Noon, Evening], + ), + Pack( + groups: [ + (1, (1, 1, "common.entity.wild.aggressive.hakulaq")), + ], + spawn_mode: Ice, + day_period: [Night, Morning, Noon, Evening], + ), + ], +) diff --git a/assets/world/wildlife/spawn/tundra/rock.ron b/assets/world/wildlife/spawn/tundra/rock.ron index 099e8e3040..a4e9b030d7 100644 --- a/assets/world/wildlife/spawn/tundra/rock.ron +++ b/assets/world/wildlife/spawn/tundra/rock.ron @@ -4,7 +4,6 @@ SpawnEntry ( rules: [ Pack( groups: [ - (1, (1, 1, "common.entity.wild.peaceful.jackalope")), (1, (1, 1, "common.entity.wild.peaceful.arctic_hare")), ], spawn_mode: Land, diff --git a/assets/world/wildlife/spawn/tundra/snow.ron b/assets/world/wildlife/spawn/tundra/snow.ron index 1a6f785bb3..ba63fb1b84 100644 --- a/assets/world/wildlife/spawn/tundra/snow.ron +++ b/assets/world/wildlife/spawn/tundra/snow.ron @@ -1,20 +1,27 @@ SpawnEntry ( - name: "Tundra animals.", + name: "Tundra snow animals.", note: "Usually you can find them in snowy areas.", rules: [ Pack( groups: [ (1, (1, 3, "common.entity.wild.aggressive.frostfang")), - (1, (1, 1, "common.entity.wild.aggressive.akhlut")), - (1, (1, 1, "common.entity.wild.aggressive.icedrake")), (1, (1, 3, "common.entity.wild.aggressive.snow_raptor")), - (1, (1, 1, "common.entity.wild.aggressive.roshwalr")), - (5, (5, 20, "common.entity.wild.peaceful.penguin")), - (5, (5, 10, "common.entity.wild.peaceful.seal")), (1, (1, 1, "common.entity.wild.peaceful.snowy_owl")), + (1, (1, 1, "common.entity.wild.peaceful.arctic_fox")), ], spawn_mode: Land, day_period: [Night, Morning, Noon, Evening], ), + Pack( + groups: [ + (1, (1, 1, "common.entity.wild.aggressive.akhlut")), + (1, (1, 1, "common.entity.wild.aggressive.icedrake")), + (1, (1, 1, "common.entity.wild.aggressive.roshwalr")), + + + ], + spawn_mode: Ice, + day_period: [Night, Morning, Noon, Evening], + ), ], ) diff --git a/world/src/layer/wildlife.rs b/world/src/layer/wildlife.rs index f2c2e13648..69fdf5a91b 100644 --- a/world/src/layer/wildlife.rs +++ b/world/src/layer/wildlife.rs @@ -211,6 +211,18 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> { ("world.wildlife.spawn.tundra.forest", |c, col| { close(c.temp, CONFIG.snow_temp, 0.3) * col.tree_density * BASE_DENSITY * 1.4 }), + // River wildlife + ("world.wildlife.spawn.tundra.river", |c, col| { + close(col.temp, CONFIG.snow_temp, 0.3) + * if col.water_dist.map(|d| d < 1.0).unwrap_or(false) + && !matches!(col.chunk.get_biome(), BiomeKind::Ocean) + && c.alt > CONFIG.sea_level + 20.0 + { + 0.001 + } else { + 0.0 + } + }), // Forest animals event ( "world.wildlife.spawn.calendar.christmas.tundra.forest", @@ -264,15 +276,37 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> { ("world.wildlife.spawn.taiga.water", |c, col| { close(c.temp, CONFIG.snow_temp, 0.15) * col.tree_density * BASE_DENSITY * 5.0 }), + // River wildlife + ("world.wildlife.spawn.taiga.river", |c, col| { + close(col.temp, CONFIG.snow_temp + 0.2, 0.6) + * if col.water_dist.map(|d| d < 1.0).unwrap_or(false) + && !matches!(col.chunk.get_biome(), BiomeKind::Ocean) + && c.alt > CONFIG.sea_level + 20.0 + { + 0.001 + } else { + 0.0 + } + }), // **Temperate** // Area rare ("world.wildlife.spawn.temperate.rare", |c, _col| { close(c.temp, CONFIG.temperate_temp, 0.8) * BASE_DENSITY * 0.08 }), + // Plains + ("world.wildlife.spawn.temperate.plains", |c, _col| { + close(c.temp, CONFIG.temperate_temp, 0.8) + * close(c.tree_density, 0.0, 0.1) + * BASE_DENSITY + * 4.0 + }), // River wildlife - ("world.wildlife.spawn.temperate.river", |_c, col| { + ("world.wildlife.spawn.temperate.river", |c, col| { close(col.temp, CONFIG.temperate_temp, 0.6) - * if col.water_dist.map(|d| d < 10.0).unwrap_or(false) { + * if col.water_dist.map(|d| d < 1.0).unwrap_or(false) + && !matches!(col.chunk.get_biome(), BiomeKind::Ocean) + && c.alt > CONFIG.sea_level + 20.0 + { 0.001 } else { 0.0 @@ -280,7 +314,7 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> { }), // Forest animals ("world.wildlife.spawn.temperate.wood", |c, col| { - close(c.temp, CONFIG.temperate_temp + 0.1, 0.5) * col.tree_density * BASE_DENSITY * 1.0 + close(c.temp, CONFIG.temperate_temp + 0.1, 0.5) * col.tree_density * BASE_DENSITY * 3.0 }), // Rainforest animals ("world.wildlife.spawn.temperate.rainforest", |c, _col| { @@ -308,9 +342,28 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> { * 4.0 }, ), - // Water animals - ("world.wildlife.spawn.temperate.water", |c, col| { - close(c.temp, CONFIG.temperate_temp, 1.0) * col.tree_density * BASE_DENSITY * 5.0 + // Ocean animals + ("world.wildlife.spawn.temperate.ocean", |_c, col| { + close(col.temp, CONFIG.temperate_temp, 1.0) / 10.0 + * if col.water_dist.map(|d| d < 1.0).unwrap_or(false) + && matches!(col.chunk.get_biome(), BiomeKind::Ocean) + { + 0.001 + } else { + 0.0 + } + }), + // Ocean beach animals + ("world.wildlife.spawn.temperate.beach", |c, col| { + close(col.temp, CONFIG.temperate_temp, 1.0) / 10.0 + * if col.water_dist.map(|d| d < 30.0).unwrap_or(false) + && !matches!(col.chunk.get_biome(), BiomeKind::Ocean) + && c.alt < CONFIG.sea_level + 2.0 + { + 0.001 + } else { + 0.0 + } }), // **Jungle** // Rainforest animals @@ -347,19 +400,13 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> { }, ), // **Tropical** - // Rare river animals - ("world.wildlife.spawn.tropical.river_rare", |_c, col| { - close(col.temp, CONFIG.tropical_temp + 0.2, 0.5) - * if col.water_dist.map(|d| d < 10.0).unwrap_or(false) { - 0.0001 - } else { - 0.0 - } - }), // River animals - ("world.wildlife.spawn.tropical.river", |_c, col| { + ("world.wildlife.spawn.tropical.river", |c, col| { close(col.temp, CONFIG.tropical_temp, 0.5) - * if col.water_dist.map(|d| d < 10.0).unwrap_or(false) { + * if col.water_dist.map(|d| d < 1.0).unwrap_or(false) + && !matches!(col.chunk.get_biome(), BiomeKind::Ocean) + && c.alt > CONFIG.sea_level + 20.0 + { 0.001 } else { 0.0 @@ -369,7 +416,19 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> { ("world.wildlife.spawn.tropical.ocean", |_c, col| { close(col.temp, CONFIG.tropical_temp, 0.1) / 10.0 * if col.water_dist.map(|d| d < 1.0).unwrap_or(false) + && matches!(col.chunk.get_biome(), BiomeKind::Ocean) + { + 0.001 + } else { + 0.0 + } + }), + // Ocean beach animals + ("world.wildlife.spawn.tropical.beach", |c, col| { + close(col.temp, CONFIG.tropical_temp, 1.0) / 10.0 + * if col.water_dist.map(|d| d < 30.0).unwrap_or(false) && !matches!(col.chunk.get_biome(), BiomeKind::Ocean) + && c.alt < CONFIG.sea_level + 2.0 { 0.001 } else { @@ -378,7 +437,7 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> { }), // Arctic ocean animals ("world.wildlife.spawn.arctic.ocean", |_c, col| { - close(col.temp, 0.0, 0.25) / 10.0 + close(col.temp, CONFIG.snow_temp, 0.25) / 10.0 * if matches!(col.chunk.get_biome(), BiomeKind::Ocean) { 0.001 } else { @@ -431,10 +490,13 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> { * 1.3 }), // River animals - ("world.wildlife.spawn.desert.river", |_c, col| { + ("world.wildlife.spawn.desert.river", |c, col| { close(col.temp, CONFIG.desert_temp + 0.2, 0.3) - * if col.water_dist.map(|d| d < 10.0).unwrap_or(false) { - 0.0001 + * if col.water_dist.map(|d| d < 1.0).unwrap_or(false) + && !matches!(col.chunk.get_biome(), BiomeKind::Ocean) + && c.alt > CONFIG.sea_level + 20.0 + { + 0.001 } else { 0.0 }