Zone tier: Difference between revisions

Jump to navigation Jump to search
2,642 bytes added ,  20:35, 22 June 2022
no edit summary
mNo edit summary
No edit summary
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{tocright}}{{Missing info|How is zone tier handled for unique locations, such as the Tomb of the Eaters?}}
{{tocright}}
Each [[zone]] (or screen) that a player explores has a particular ''difficulty tier'' associated with, often referred to as the '''''{{name}}'''''.
Each [[zone]] (or screen) that a player explores has a particular ''difficulty tier'' typically referred to as the '''''{{name}}'''''.
 
Zone tier is one significant factor that contributes to the procedural generation of features in {{gamename}}, such as the level and difficulty of creatures that are found in a particular zone, or the items that can be obtained as random loot from {{favilink|chest|chests}} in that zone. Procedural generation is also influenced by other factors, such as the terrain type of the current zone and whether or not the current zone is part of a village or a unique location.


Zone tier is determined based on a combination of the following elements:
Zone tier is determined based on a combination of the following elements:
* The [[World Map]] tier of the current [[parasang]].
* The surface tier of the current [[world map]] {{parasang}}.
* The depth of the current zone, if it is underground.
* The depth of the current zone, if it is underground.
== Calculating a Zone's Tier ==
To determine a zone's tier:{{Code Reference|namespace=XRL.World|class=ZoneManager|method=GetZoneTier}}
# Find the world map tier of the current parasang. These numeric tier values are pictured in the [[#Base_Difficulty_Tier_of_World_Map_Parasangs|Base Difficulty Tier of World Map Parasangs]] section below. If the tier is 0, increase it to 1 (1 is the minimum zone tier).
# Next, modify that value based on the current depth:
#* The zone tier is unchanged for the surface level and levels 1-4 underground.
#* Otherwise, the zone tier is increased by '''Floor(Depth / 5)'''. Depth 5-9 increases the zone tier by 1, depth 10-14 increases the zone tier by 2, and so on.
#** As an example, if the player digs beneath a {{favilink|Jungle}} biome (world map tier 3), the zone tier at depth 17 will be '''6'''.
# Finally, modify the result to ensure it is a number between 1 and 8. If a calculation would result in a zone tier value lower than 1 or higher than 8, the result is always constrained to the nearest number within the 1 to 8 range.


== Tiers and Procedural Generation ==
== Tiers and Procedural Generation ==
Line 19: Line 12:
A location's zone tier is generally used as a rough guide for procedural generation of creatures and items in that zone.
A location's zone tier is generally used as a rough guide for procedural generation of creatures and items in that zone.


For example, in an area with a zone tier of 5, tier 5 creatures (such as {{favilink|dynamic turret tinker|plural}}) and tier 5 items (such as {{favilink|fullerite gauntlets}}) are more likely to be found. Note that zone tier is only one of several factors that affects the dynamic generation of creatures and objects in the world. Specific [[:Category:Biomes|biomes]], unique [[:Category:Locations|locations]] (such as [[historic site]]s or [[:Category:Dungeons|dungeons]]), or other factors can influence the objects and items that are generated in particular zones. This is why, for example, the surface levels of the {{favilink|Desert Canyons}} will always contain the same primary creatures, such as {{favilink|snapjaw scavenger|snapjaws}}, {{favilink|equimax|equimaxes}}, and {{favilink|giant dragonfly|giant dragonflies}} - this biome has its own unique population/encounter tables.
For example, in an area with a zone tier of 5, tier 5 creatures (such as {{favilink|dynamic turret tinker|plural}}) and tier 5 items (such as {{favilink|fullerite gauntlets}}) are more likely to be found. Note that zone tier is only one of several factors that affects the dynamic generation of creatures and objects in the world. Specific types of [[:Category:Terrain|terrain]], [[:Category:Biomes|biomes]], unique [[:Category:Locations|locations]] (such as [[historic site]]s or [[:Category:Dungeons|dungeons]]), or other factors can influence the objects and items that are generated in particular zones. This is why, for example, the surface levels of the {{favilink|Desert Canyons}} will always contain the same primary creatures, such as {{favilink|snapjaw scavenger|snapjaws}}, {{favilink|equimax|equimaxes}}, and {{favilink|giant dragonfly|giant dragonflies}} - this biome has its own unique population/encounter tables.


Most biomes have unique generation tables defined for their surface and levels 1-5 underground.<ref>Determined by review of <code>Worlds.xml</code>, <code>ZoneTemplates.xml</code>, and <code>PopulationTables.xml</code>.</ref> Once you descend to level 6 or lower in most areas, creature and item generation typically starts to be more directly correlated to zone tier, creature tier, and item tier, and is less strictly defined by biome-specific spawning logic.
Most biomes have unique generation tables defined for their surface and levels 1-5 underground.<ref>Determined by review of <code>Worlds.xml</code>, <code>ZoneTemplates.xml</code>, and <code>PopulationTables.xml</code>.</ref> Once you descend to level 6 or lower in most areas, creature and item generation more directly correlates to zone tier and is less strictly defined by [[:Category:Terrain|terrain]]-specific spawning logic.


There is also an element of randomness at play. For example, the dynamic loot tables for each zone tier have a small chance to roll upward one tier higher. This effect can chain in succession (although at very low probability), sometimes resulting in loot several tiers higher than expected. For example, {{favilink|Elder Irudad}} may spawn with tier 8 {{favilink|zetachrome pumps}} in {{favilink|Joppa}} at the start of the game, even though Joppa has a very low zone tier.
There is also an element of randomness at play. For example, the dynamic loot tables for each zone tier have a small chance to roll upward one tier higher. This effect can chain in succession (although at very low probability), sometimes resulting in loot several tiers higher than expected. For example, {{favilink|Elder Irudad}} may spawn with tier 8 {{favilink|zetachrome pumps}} in {{favilink|Joppa}} at the start of the game, even though Joppa has a very low zone tier.


=== Creature Tier ===
=== Creature Tier ===
Creature tier is based on level. Creatures of levels 1-9 are tier 1 for the purposes of dynamic zone generation. A creature's tier increases by one for additional each five levels (creatures of levels 10-14 are tier 2, creatures of level 15-19 are tier 3, etcetera).
Creature tier is based on level and can be given as follows:
 
<math>\text{Tier} = \text{Floor}(\frac{Level}{5})\text{, min 1}</math>


Note that this logic for creature tier varies slightly from how a creature's XP tier is calculated (XP tier can go as low as 0). For more information about XP tiers, refer to the [[Experience]] page.
Note that this creature tier varies slightly from the tiering used to calculate XP, which can go as low as Tier 0. Refer to the [[Experience]] page for more information about XP tiers.


=== Item Tier ===
=== Item Tier ===
Item tier is manually specified for each item in the game's <code>ObjectBlueprints.xml</code>. You can view the tier of a particular item on its wiki page.
Item tier is manually specified for each item in the game's <code>ObjectBlueprints.xml</code>. You can view the tier of a particular item on its wiki page. For example, a {{favilink|flamethrower}} is a tier 4 item.
 
== Surface Zone Tier ==
The following map shows the zone tier for all surface areas in {{gamename}}.
 
{{World map with zone tiers}}
 
== Underground Zone Tier==
 
To determine the zone tier for an underground zone:{{Code Reference|namespace=XRL.World|class=Zone|property=NewTier}}
* If the current zone is 6 strata or deeper underground:
*# Calculate '''2 + Floor((Strata - 6) / 5)'''.
*# Modify the result to ensure it is a number between 1 and 8. The result is always constrained to the nearest number within the 1 to 8 range.
* Otherwise, for any zone higher than 6 strata underground:
*# Take the surface zone tier at the location.
*# Modify that value to ensure it is a number between 1 and 8. The result is always constrained to the nearest number within the 1 to 8 range.
 
===Zone tier exceptions===
 
Certain biomes and unique locations override the above rules:
* [[Ruins#Zone tier|Ruins]] and [[Baroque_ruins#Zone tier|Baroque Ruins]] progress underground zone tier more quickly; see their pages for details.
* The [[Asphalt Mines#Floors|Asphalt Mines]] have zone tier 3 until the Great Sea, after which they have zone tier 7.
* [[Bethesda Susa]] has uniform zone tier 4.
* [[Historic Site|Historic sites]] have uniform zone tier equal to the tier of the historic site.
 
== Effects of Zone Tier ==
 
* [[Historic_site#World_Map_Location|historic site locations]]{{Code Reference|namespace=XRL.World.WorldBuilders|class=JoppaWorldBuilder|method=AddSultanHistoryLocations|name=AddSultanHistoryLocations}}
* The XP reward for visiting a new [[historic site]] (250 * zone tier){{Code Reference|class=SultanRegionSurface}}{{Code Reference|namespace=HistoryKit|class=HistoricEvent|method=AddQuestsForRegion}}
* The XP reward for visiting a new village{{Code Reference|class=VillageSurface}}
* The randomly-selected zone location for {{favilink|Kindrish}}{{Code Reference|XRL.World.WorldBuilders|class=JoppaWorldBuilder|method=BuildSecrets}}
* The tier of the randomly-selected creature when {{favilink|Either}}/{{favilink|Or}} atomizes into a random creature{{Code Reference|class=PetEitherOr}}
* The minimum tier for {{favilink|sparking baetyl}} rewards{{Code Reference|class=RandomAltarBaetyl}}
* Certain aspects of random faction encounters.{{Code Reference|namespace=XRL.World.ZoneBuilders|class=FactionEncounters|comment=Affects anything that uses "FactionEncounters" builder, which is most world zones.}} This includes any of the following faction groups that appear with a legendary leader: [[Pariahs]], [[Bears]], [[Arachnids]], [[Tortoises]], [[Antelopes]], [[Apes]], [[Barathrumites]], [[Birds]], [[Mechanimists]], [[Seekers of the Sightless Way]], and [[Putus Templar]]<ref><code>PopulationTables.xml</code> - Possible factions chosen from "GenericFactionPopulation"</ref>. Some, but not all, of these factions use zone tier to determine certain features of their encounter. For example, legendary Barathrumite faction leaders will carry scrap and junk appropriate to the zone tier.
* The level and quantity of cybernetics credit wedges rewarded in the relic chest at the bottom of a [[historic site]]{{Code Reference|namespace=XRL.World.ZoneBuildes|class=PlaceRelicBuilder|method=BuildZoneWithRelic}}
* A small number of legendary creature zone spawns (legendary baboons, snapjaws, glow-wights, eyeless king crabs, and goatfolk) and minor zone generation features.{{Code Reference|namespace=XRL|class=ZoneTemplate|comment=Applies to anything that uses "{zonetier}" in <code>ZoneTemplates.xml</code>}}
* The generation of [[relic]] items.
* Turret generation of {{favilink|dynamic turret tinker|plural}}.<ref><code>ObjectBlueprints.xml</code></ref>{{Code Reference|class=TurretTinker}}
* The contents of {{favilink|cybernetics rack|plural}}.<ref><code>PopulationTables.xml</code></ref>
* Legendary/merchant lairs, including procedurally generated creatures and legendary merchant stock{{Code Reference|namespace=XRL.World.WorldBuilders|class=JoppaWorldBuilder|method=AddLairAt}}
* Village generation{{Code Reference|namespace=XRL.Annals|class=InitializeVillage|method=Generate}}
* Most other forms of dynamic creature/item generation throughout the world.<ref>''Technical note: Includes {zonetier} stand-ins in all XML files other than ZoneTemplates.xml.</ref>{{Code Reference|namespace=XRL|class=ZoneTemplate}}{{Code Reference|namespace=XRL.World|class=GameObjectFactory}}{{Code Reference|namespace=XRL.World.Encounters|class=EncounterObject}}{{Code Reference|namespace=XRL.World.Encounters|class=EncounterPopulation}}{{Code Reference|namespace=XRL.World.Encounters|class=EncounterTableObject}}''
 
== References ==
{{As of patch inline|2.0.203.49}}
<references />
 
=== General Technical Notes ===
The following fields and methods return a "zone tier" value based on the "RegionTier" tag on the World Map terrain object and a few overrides, and are used for most applications of the tier system:
* <code>XRL.World.ZoneManager.zoneGenerationContextTier</code>
* <code>XRL.World.Zone.NewTier </code>
 
Those fields and methods determine the overrides discussed in Zoning Exceptions:


== Base Difficulty Tier of World Map Parasangs ==
*<code>WorldTerrain.xml, feature Tier</code>
Each parasang of the world map has a base difficulty tier associated with, as shown on the following numeric overlay:
*<code>XRL.World.ZoneManager.GetZoneProperty(), property "ZoneTierOverride"</code>


<div style="overflow:auto;">
The following methods utilize a “zone tier” value directly based on the “RegionTier” tag on the World Map terrain object without applying overrides:
[[File:Joppaworld with tiers2.png|frame|left|class=scalable|alt=An image of the world map, with each tier's number found laid on top of the respective terrain.|The world map with base difficulty tiers of each parasang.]]
* <code>XRL.World.ZoneManager.GetZoneTier()</code>
</div>
* <code>XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationOfTier(int)</code>
* <code>XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationOfTier(int, int)</code>
* <code>XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationWithinNFromTerrainTypeTier()</code>


These tiers can be found looking in the <code>Text.txt</code> file located in the base game directory, in the section of the file titled "ZoneTier_JoppaWorld".
These methods are used for placing surface locations, placing village quests, and historic site discovery XP; since no existing zone tier overrides apply to surface locations, not applying overrides in these methods doesn’t change the game’s behavior. As such, the main article assumes universal overrides to make explanations easier.
<pre>
33333333322324444444444444444444444444444444444444444444444444444444444444444444
33333333223324442222222444232333333344333333333333333333333355555555555555555555
33333333322224222222222222333333333334433333333333333333333355555555555555555555
33333333322222222222222225333333333333433333333333333333333355555555555555555555
33333333332222222222222233333333333344433333333333333333333355555555555555555555
23333333333111112222223333333333333343333333333333333333333355555555555555555555
33333333333311222211223333333333333343333333333333333333333355555555555555555555
33333333333311222111232333333333333343333333333333333333333355555555555555555555
33333222222112221112233333333333333343333333333333333333333355555555555555555555
33332222222122212112233443344444333443333333333333333333333355555555555555555555
33322222222111222122233333433333333433333333333333333333333355555555555555555555
33222222222112221222333334444433334433333333333333333333333355555555555555555555
32222222222221222212233333333344444333333333333333333333333355555555555555555555
22222222222222122112244443433444444333333333333333333333333355555555555555555555
22222222222222122212223343334444444333333333333333333333333355555555555555555555
22222222222211112222233333344444443333333333333333333333333355555555555555555555
22222222220111111112223333444444333333333333333333333333333355555555555555555555
22222222200211111211223444444433333333333333333333333333333355555555555555555555
22222222201111111211344433433333333333333333333333333333333355555555555555555555
22222222000111112211333344433333333333333333333333333333333355555555555555555555
22222222200111112113333343333333333333333333333333333333333355555555555555555555
22222220000000112211134443333333333333333333333333333333333355555555555555555555
22222220000000111222133333333333333333333333333333333333333355555555555555555555
22222000000001111122213313331113333333113333333333333333333355555555555555555555
22222000000011121222221111111111111111223333333333333333333355555555555555555555
</pre>


{{References|2.0.201.49}}
[[Category:Mechanics]][[Category:World]]
384

edits

Navigation menu