826
edits
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
<languages/> | <languages/> | ||
'''Difficulty scaling''' is a mechanic in ''Breath of the Wild'' that results in enemies and weapons being progressively replaced by more powerful variants during a playthrough. | '''Difficulty scaling''' is a mechanic in ''Breath of the Wild'' that results in enemies and weapons being progressively replaced by more powerful variants during a playthrough. | ||
== Points == | == Points == | ||
The scaling system is based on a point system. Killing enemies is the ''only way'' to receive points. | The scaling system is based on a point system. Killing enemies is the ''only way'' to receive points. | ||
Line 21: | Line 19: | ||
The subsystem provides two functions ([[Difficulty scaling#Ecosystem::LevelSensor::scaleWeapon|<code>scaleWeapon</code>]] and [[Difficulty scaling#Ecosystem::LevelSensor::scaleActor|<code>scaleActor</code>]]) that may be called when a weapon or enemy actor is created. | The subsystem provides two functions ([[Difficulty scaling#Ecosystem::LevelSensor::scaleWeapon|<code>scaleWeapon</code>]] and [[Difficulty scaling#Ecosystem::LevelSensor::scaleActor|<code>scaleActor</code>]]) that may be called when a weapon or enemy actor is created. | ||
== Scaling inhibitors == | == Scaling inhibitors == | ||
Both scaling functions will immediately return without doing anything if: | Both scaling functions will immediately return without doing anything if: | ||
Line 30: | Line 28: | ||
== Weapons == | == Weapons == | ||
'scaleWeapon' is called (i.e. weapons may be scaled) for a weapon if: | 'scaleWeapon' is called (i.e. weapons may be scaled) for a weapon if: | ||
* '''For standalone weapons''': The actor property 'LevelSensorMode' is higher than 1 '''and''' it wasn't already picked up. | * '''For standalone weapons''': The actor property 'LevelSensorMode' is higher than 1 '''and''' it wasn't already picked up. | ||
Line 49: | Line 48: | ||
{|class="wikitable" | {|class="wikitable" | ||
! | ! Available in modifier tiers | ||
|- | |- | ||
|- | |- | ||
| | | Blue/White and Yellow | ||
|- | |- | ||
| | | Blue/White and Yellow | ||
|- | |- | ||
| | | Yellow | ||
|- | |- | ||
| | | Yellow | ||
|- | |- | ||
| | | Yellow | ||
|- | |- | ||
| | | Yellow | ||
|- | |- | ||
| | | Blue/White and Yellow | ||
|- | |- | ||
| | | Blue/White | ||
|- | |- | ||
| | | Yellow | ||
|} | |} | ||
Line 75: | Line 74: | ||
* AddSurfMaster is a bonus that only applies to shields and gives them a lower friction for shield surfing. That bonus type is unused in the game. | * AddSurfMaster is a bonus that only applies to shields and gives them a lower friction for shield surfing. That bonus type is unused in the game. | ||
=== Bonus values === | === Bonus values === | ||
Bonus values (e.g. the durability or attack power increase) are determined from [[ActorParam/GeneralParamList]] (with a copy of the information in [[ActorInfoData]]). Valid ranges and bonuses for each weapon are configured in the WeaponCommon section. | Bonus values (e.g. the durability or attack power increase) are determined from [[ActorParam/GeneralParamList]] (with a copy of the information in [[ActorInfoData]]). Valid ranges and bonuses for each weapon are configured in the WeaponCommon section. | ||
Line 81: | Line 80: | ||
==== amiibo ==== | ==== amiibo ==== | ||
{|class="wikitable" | {|class="wikitable" | ||
! | ! Value that is used for the bonus effect | ||
|- | |- | ||
| None || - | | None || - | ||
|- | |- | ||
| Attack up || addAtkMax | | Attack up || addAtkMax | ||
|- | |- | ||
| Durability up || addLifeMax | | Durability up || addLifeMax | ||
|- | |- | ||
| Long throw || addThrowMax | | Long throw || addThrowMax | ||
|- | |- | ||
| | | 5-shot burst | ||
|- | |- | ||
| Quick shot (bows) || addRapidFireMin | | Quick shot (bows) || addRapidFireMin | ||
|- | |- | ||
| AddSurfMaster || [[bgparamlist#Global|GlobalParameter]]::shieldSurfMasterFrictionRatio | | AddSurfMaster || [[bgparamlist#Global|GlobalParameter]]::shieldSurfMasterFrictionRatio | ||
|- | |- | ||
| Shield guard up || addGuardMax | | Shield guard up || addGuardMax | ||
|} | |} | ||
Line 106: | Line 105: | ||
{|class="wikitable" | {|class="wikitable" | ||
! | ! Value that is used for the bonus effect | ||
|- | |- | ||
| None || - | | None || - | ||
|- | |- | ||
| | | Random integer between addAtkMin and addAtkMax | ||
|- | |- | ||
| | | Random integer between addLifeMin and addLifeMax | ||
|- | |- | ||
| | | Random float between addThrowMin and addThrowMax | ||
|- | |- | ||
| | | 5-shot burst | ||
|- | |- | ||
| | | Random float between addRapidFireMin and addRapidFireMax | ||
|- | |- | ||
| [[bgparamlist#Global|GlobalParameter]]::shieldSurfMasterFrictionRatio | |||
|- | |- | ||
| | | Random integer between addGuardMin and addGuardMax | ||
|} | |} | ||
Line 139: | Line 138: | ||
[1.3.0] In Master Mode, '''all''' enemies are automatically ranked up one tier by default '''post scaling''', independently of 'LevelSensorMode'. [[Actor]]s can receive two additional parameters: | [1.3.0] In Master Mode, '''all''' enemies are automatically ranked up one tier by default '''post scaling''', independently of 'LevelSensorMode'. [[Actor]]s can receive two additional parameters: | ||
{| class="wikitable" | {| class="wikitable" | ||
! Parameter | ! Parameter | ||
! Default | ! Default | ||
! Description | ! Description | ||
|- | |- | ||
| IsHardModeActor | | IsHardModeActor | ||
| false | | false | ||
| Controls whether an enemy only shows up in Master Mode. | | Controls whether an enemy only shows up in Master Mode. | ||
|- | |- | ||
| DisableRankUpForHardMode | | DisableRankUpForHardMode | ||
| false | | false | ||
| Controls whether the automatic rankup applies to an enemy. | | Controls whether the automatic rankup applies to an enemy. | ||
|} | |} | ||
In Master Mode, IsHardModeActor, DisableRankUpForHardMode and LevelSensorMode are combined on some actors to keep low-level enemies in the overworld (e.g. Red Bokoblin south of the Great Plateau). | In Master Mode, IsHardModeActor, DisableRankUpForHardMode and LevelSensorMode are combined on some actors to keep low-level enemies in the overworld (e.g. Red Bokoblin south of the Great Plateau). | ||
Line 155: | Line 154: | ||
== Properties == | == Properties == | ||
=== <code>LevelSensorMode</code> === | === <code>LevelSensorMode</code> === This [[actor]] property controls whether scaling is enabled for an enemy or weapon. Also applies to any weapons held by an enemy since 'scaleWeapon' is called when an enemy drops their weapon. | ||
This [[actor]] property controls whether scaling is enabled for an enemy or weapon. Also applies to any weapons held by an enemy since 'scaleWeapon' is called when an enemy drops their weapon. | |||
Note that this doesn't apply to weapons that are attached to a Hinox's necklace, because Hinoxes use a different underlying enemy actor which overrides the 'on weapon dropped' function and ignores 'LevelSensorMode'. | Note that this doesn't apply to weapons that are attached to a Hinox's necklace, because Hinoxes use a different underlying enemy actor which overrides the 'on weapon dropped' function and ignores 'LevelSensorMode'. | ||
=== <code>SharpWeaponJudgeType</code> === | === <code>SharpWeaponJudgeType</code> === | ||
This actor property controls the ''minimum'' modifier tier that a weapon can receive. | This actor property controls the ''minimum'' modifier tier that a weapon can receive. | ||
Line 166: | Line 165: | ||
{| class="wikitable" | {| class="wikitable" | ||
! Value | ! Value | ||
! Description | ! Description | ||
|- | |- | ||
| 0 | | 0 | ||
| '''None''': No modifiers. | | '''None''': No modifiers. | ||
|- | |- | ||
| 1 | | 1 | ||
| '''RandomBlue''': Weapon will randomly get at least a blue modifier (with <code>weaponCommonSharpWeaponPer</code> being the probability). | | '''RandomBlue''': Weapon will randomly get at least a blue modifier (with <code>weaponCommonSharpWeaponPer</code> being the probability). | ||
|- | |- | ||
| 2 | | 2 | ||
| '''Blue''': Weapon will get at least a blue modifier. | | '''Blue''': Weapon will get at least a blue modifier. | ||
|- | |- | ||
| 3 | | 3 | ||
| '''Yellow''': Weapon will get at least a yellow modifier. | | '''Yellow''': Weapon will get at least a yellow modifier. | ||
|- | |- | ||
| 4 | | 4 | ||
| '''NoneForced''' (chests only): Weapon will ''never'' spawn with any modifiers. ''This overrides regular scaling.'' | | '''NoneForced''' (chests only): Weapon will ''never'' spawn with any modifiers. ''This overrides regular scaling.'' | ||
|} | |} | ||
Line 383: | Line 382: | ||
Interestingly, the Windblight AI function relies doesn't check the actor tag but the actor name instead. For flag 8 to be set, the actor name must be <code>Enemy_SiteBoss_Bow_R</code>. | Interestingly, the Windblight AI function relies doesn't check the actor tag but the actor name instead. For flag 8 to be set, the actor name must be <code>Enemy_SiteBoss_Bow_R</code>. | ||
<references /> | <references /> | ||
[[Category:Internals]] | [[Category:Internals]] | ||
[[Category:Game mechanics]] | [[Category:Game mechanics]] |