One-Hit Obliterator: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
(→‎Checks: add area map)
imported>Leoetlino
m (title consistency)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Infinite Attack Power ==
== Infinite attack power ==
[https://gist.github.com/leoetlino/dc4148024537eec3008f0140b544fb8e Source]
[https://gist.github.com/leoetlino/dc4148024537eec3008f0140b544fb8e Source]


Line 41: Line 41:
**The check fails if all of the following coordinates are invalid: (x, z), (x+5.0, z), (x-5.0, z), (x, z+5.0), (x, z-5.0)
**The check fails if all of the following coordinates are invalid: (x, z), (x+5.0, z), (x-5.0, z), (x, z+5.0), (x, z-5.0)
* '''or''' the player's Y coordinate is strictly lower than 150.0.
* '''or''' the player's Y coordinate is strictly lower than 150.0.
== "A voice calls to you" trigger ==
Source: [https://static.zeldamods.org/botw_150_AI_AI_PlayerNormal__calc.html ai::PlayerNormal::calc]
[[File:PlateauOneHitObliteratorCoordsCheck.png|thumb|right]]
Every frame, the game checks whether:
* add-on content is enabled and version >= 0x300
* '''and''' the player is playing the One-Hit Obliterator quest
* '''and''' there is no active event
* '''and''' the player is not in a shrine
If so, PlayerNormal then checks whether Link has escaped the One-Hit Obliterator quest (see above).
If he has, and if he is in a grounded state, the Demo605_0<Demo605_0> event is called.
If his X coordinate is < -1900.0 or > 0.0, or his Z coordinate is < 1100.0 or > 3000.0, the player is considered to have escaped the quest and the Demo605_0<Demo605_1> event is called to rectify the situation.
== Champion powers and blood moons ==
Additionally, in that state, HeroSoulProhibition and BloodyMoonProhibition are '''forcefully set''' every frame.
== Fairy/Mipha's Grace ==
Fairies and Mipha's Grace will not work as long as Weapon_Sword_502 is equipped.
== LumberjackTree ==
{{empty section}}


<references/>
<references/>
[[Category:Game mechanics]]
[[Category:Game mechanics]]

Latest revision as of 14:49, 7 April 2019

Infinite attack power

Source

Finite damage value

The One-Hit Obliterator doesn't actually deal "infinite" damage; its attack power is merely boosted to 99999 points:

void Weapon::x()
{
  ...
  float attackPower = this->getEffectiveAttackPower(nullptr);
  if ( dlc::isOneHitObliteratorActor(this, true) )
  {
    attackPower = 99999.0;
    ...
  }
  ...
}

Checks

The game overrides the damage value if and only if[1]:

  • The weapon actor name is Weapon_Sword_502 (One-Hit Obliterator).
  • The One-Hit Obliterator is in an "active" state.

For the weapon to be considered active[2]:

  • The actor's profile must be "Weapon".
  • The player must be currently playing the One-Hit Obliterator quest (BalladOfHeroes_Step02 must be set and BalladOfHeroes_Step03 must be unset).
  • The player must be in a shrine or must not have escaped the trial.
  • The weapon must not have run out of "chemical" power.
PlateauFieldMapAreas.png

The player is considered to have escaped the One-Hit Obliterator trial iff[3]:

  • ("Is on ground" checks that are irrelevant for the damage override check.)
  • The player's position is in none of the Plateau field map areas (areas 46, 47, 50)
    • The check fails if all of the following coordinates are invalid: (x, z), (x+5.0, z), (x-5.0, z), (x, z+5.0), (x, z-5.0)
  • or the player's Y coordinate is strictly lower than 150.0.

"A voice calls to you" trigger

Source: ai::PlayerNormal::calc

PlateauOneHitObliteratorCoordsCheck.png

Every frame, the game checks whether:

  • add-on content is enabled and version >= 0x300
  • and the player is playing the One-Hit Obliterator quest
  • and there is no active event
  • and the player is not in a shrine

If so, PlayerNormal then checks whether Link has escaped the One-Hit Obliterator quest (see above).

If he has, and if he is in a grounded state, the Demo605_0<Demo605_0> event is called.

If his X coordinate is < -1900.0 or > 0.0, or his Z coordinate is < 1100.0 or > 3000.0, the player is considered to have escaped the quest and the Demo605_0<Demo605_1> event is called to rectify the situation.

Champion powers and blood moons

Additionally, in that state, HeroSoulProhibition and BloodyMoonProhibition are forcefully set every frame.

Fairy/Mipha's Grace

Fairies and Mipha's Grace will not work as long as Weapon_Sword_502 is equipped.

LumberjackTree

  1. 0x7100736510
  2. 0x7100736778
  3. 0x71006889D0