User Tools

Site Tools


user:loggy:sitegeneration

Loggy's Site Generation reverse engineering notes

Site #loc types

flag inspector name check
1 plains None of the following set: sea, highland, swamp, waste, forest, cave, mountains
2 forest forest, not sea
4 mountain Either mountains or highland, not sea
8 waste waste (can be sea)
32 sea requires sea
64 coast coast (no other terrain type specified)
128 swamp swamp, not sea
256 deep sea deep sea
512 cave cave (can be sea)
1024 n/a not EA
2048 n/a not MA
4096 n/a not LA
16384 unique unique
32768 n/a cannot generate in caves
65536 n/a sea, not forest
131072 n/a sea, not deep sea

The above, split into two. Any one of the following must be true for the site to be placed:

flag inspector name actual check
1 plains none of the following set: sea, highland, swamp, waste, forest, cave, mountains
32 sea sea
131072 n/a sea and not deep sea
65536 n/a sea and not (kelp) forest
2 forest forest and not sea
4 mountain either mountains or highland, and not sea
512 cave cave
128 swamp swamp
256 deep sea deep sea
64 coast coast (no other terrain type specified)
8 waste waste

If any of the following are true, the site is NOT ALLOWED to be placed:

flag inspector name checks for
1024 n/a EA
2048 n/a MA
4096 n/a LA
16384 unique unique, and the site has already been placed
32768 n/a caves

Terrain local modifiers (in the order they are checked in)

terrain mod
manysites +25
throne +20 (stacks with other terrains)
farm -20 (to a minimum of 5)
waste +20
cave +15
kelp forest +10
forest +10
mountains +10
highland and UW (IE: gorge) +15
highland +5
deep sea +10

First, generate sites according the the site flags on the terrain (these are 2^(13 + path id)). If multiple are set, lower ID paths will take precedence. For generation with this method, there is a 5% chance that the site is rarity 2, a (19/80) probability of it being rarity 1, otherwise it is rarity 0. If none of these terrain flags are set, skip this step, otherwise make 100 attempts to generate a site, stopping after one is successful.

Then move onto normal generation, which is 8 rolls of the following:

  • Generate a random number between 0 and 99. If this is less than local site frequency, generate a site:
    1. 75% chance to be rarity 0.
    2. 1/40 to be rarity 2.
    3. Otherwise (9/40) to be rarity 1.
  1. Regardless of whether or not a site generated, multiply local site frequency by (75/100) and round down, then go back to the start of this list

I now see why I didn't get the exact mechanics on the data analysis method. The rarity distribution was spot on, though.

user/loggy/sitegeneration.txt · Last modified: 2021/06/04 12:49 by loggy