One-Hit Obliterator: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
(Created page with "== Infinite Attack Power == [https://gist.github.com/leoetlino/dc4148024537eec3008f0140b544fb8e Source] === Finite damage value === The One-Hit Obliterator doesn't actually...")
 
imported>Leoetlino
No edit summary
Line 40: Line 40:
* '''or''' the player's Y coordinate is strictly lower than 150.0.
* '''or''' the player's Y coordinate is strictly lower than 150.0.


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

Revision as of 14:17, 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.

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.
  1. 0x7100736510
  2. 0x7100736778
  3. 0x71006889D0