Scheduled system upgrade on Sunday 21 April 2024 15:00-16:00 UTC - On that day, the wiki and other services might go down for 5-15 minutes.

MediaWiki:Gadget-site.css and One-Hit Obliterator: Difference between pages

From ZeldaMods (Breath of the Wild)
(Difference between pages)
Jump to navigation Jump to search
imported>Leoetlino
No edit summary
 
imported>Leoetlino
No edit summary
 
Line 1: Line 1:
.resloc-box {
== Infinite Attack Power ==
border: 1px solid #d2d2d2;
[https://gist.github.com/leoetlino/dc4148024537eec3008f0140b544fb8e Source]
padding: 2px 5px;
 
font-size: 85%;
=== Finite damage value ===
border-left: 5px solid #000000;
 
The One-Hit Obliterator doesn't actually deal "infinite" damage; its attack power is merely boosted to 99999 points:
 
<source lang="cpp">
void Weapon::x()
{
  ...
  float attackPower = this->getEffectiveAttackPower(nullptr);
  if ( dlc::isOneHitObliteratorActor(this, true) )
  {
    attackPower = 99999.0;
    ...
  }
  ...
}
}
</source>
=== Checks ===
The game '''overrides the damage value''' if and only if<ref>0x7100736510</ref>:


.resloc-box-aoc {
* The weapon actor name is Weapon_Sword_502 (One-Hit Obliterator).
border-left-color: #90c;
* The One-Hit Obliterator is in an "active" state.
}
 
'''For the weapon to be considered active'''<ref>0x7100736778</ref>:
 
* 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.
 
[[File:PlateauFieldMapAreas.png|thumb|right]]
 
The player is considered to have '''escaped the One-Hit Obliterator trial''' iff<ref>0x71006889D0</ref>:
 
* ("Is on ground" checks that are irrelevant for the damage override check.)
* The player's position is in none of the Plateau [[FieldMapArea.beco|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: [https://static.zeldamods.org/botw_150_AI_AI_PlayerNormal__calc.html ai::PlayerNormal::calc]
 
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.


.resloc-box-normal {
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.
border-left-color: #36c;
}


.resloc-box p {
== Champion powers and blood moons ==
margin: 0;
Additionally, in that state, HeroSoulProhibition and BloodyMoonProhibition are '''forcefully set''' every frame.
}


.resloc-box + .resloc-box,
== Fairy/Mipha's Grace ==
.resloc-box + link + .resloc-box {
Fairies and Mipha's Grace will not work as long as Weapon_Sword_502 is equipped.
border-top: 0;
}


.ambox + .resloc-box {
== LumberjackTree ==
margin-top: 10px;
{{empty section}}
}


.resloc-box + .ambox {
<references/>
margin-top: 10px;
[[Category:Game mechanics]]
}

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

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