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.

AIDef:AI/RemainsFireDroneNormal and Yiga Clan member spawns: Difference between pages

From ZeldaMods (Breath of the Wild)
(Difference between pages)
Jump to navigation Jump to search
imported>Leoetlino
(import AI definitions from 1.5.0)
 
imported>Leoetlino
(Created page with "Yiga Clan members are spawned by two different systems. Some are statically spawned by PlacementMgr, which means that they are listed in map units and visible on the...")
 
Line 1: Line 1:
{{AIDef
Yiga Clan members are spawned by two different systems.
|name=RemainsFireDroneNormal
|type=AI
}}


== MapUnitInstParams ==
Some are statically spawned by [[PlacementMgr]], which means that they are listed in [[map unit]]s and visible on the [https://objmap.zeldamods.org object map]. However, after Link completes enough main quests, most Yiga Clan members the player sees are actually dynamically spawned by [[AutoPlacementMgr]].
{|class="wikitable"
! Name !! Type !! Default value !! Description
|-
| LightLength || Float || 25.0 ||
|-
| LightRadius || Float || 8.0 ||
|-
| SearchLightType || Int || 0 ||
|-
|}


== Static ==
=== Traveler (disguised Yigas) ===
These are linked to 'Link' tags that make them spawn if and only if the Electric_Relic_AssassinFirst flag (set when the Yiga Clan Hideout location text appears) ''or'' Npc_Kakariko001_TalkEnd (set after talking to Impa) flag is set.


== StaticInstParams ==
=== Near the hideout ===
{|class="wikitable"
The ''five'' non-disguised static Yiga clan members inside and near the hideout seem to be spawned unconditionally.
! Name !! Type !! Default value !! Description
|-
| AdjustRadius || Bool ||  ||
|-
| LightLengthOffset || Float ||  ||
|-
| IsIgnoreNoWaitStopPoint || Bool ||  ||
|-
|}


== Dynamic ==
Other Yiga Clan members are not listed on the map. This is because they are dynamically spawned by a component called the AutoPlacement Manager. Unlike PlacementMgr, AutoPlacementMgr doesn't use map units to determine which actors to spawn. The current [[map area]] the player is in and various configuration files control whether Yiga enemies spawn or not.


== Children ==
=== Condition 1: AreaData ===
{|class="wikitable"
Just like other auto-generated actors, Enemy_Assassin_Shooter_Junior or Enemy_Assassin_Middle must be listed in an area's auto-generated enemies for Yiga Clan members to be spawned by AutoPlacementMgr.
! Name !! Description
|-
| 停止 ||
|-
| 停止点移動 ||
|-
| 移動 ||
|-
| 警報 ||
|-
|}


== Derived definitions ==
=== Condition 2: Event flow ===
=== 通常 (RemainsFire_Drone, BaseAI) ===
Just like other auto-generated actors, the AutoPlacement event flows for Enemy_Assassin_Shooter_Junior or Enemy_Assassin_Middle must call the CreateData action for them to be spawned.
{{AIDefDerived
 
|name=通常
The full set of conditions can be found here:
|group_name=BaseAI
* Enemy_Assassin_Middle: https://eventviewer.zeldamods.org/?data=/d/AutoPlacementNear_Enemy_Assassin_Middle.json&params=1&entry=EntryPoint0
|derived_from=RemainsFireDroneNormal
* Enemy_Assassin_Shooter_Junior: https://eventviewer.zeldamods.org/?data=/d/AutoPlacementNear_Enemy_Assassin_Shooter_Junior.json&params=1&entry=EntryPoint0
|aiprog=RemainsFire_Drone
 
}}
=== Condition 3: AutoPlacementMgr ===
{|class="wikitable"
This series of checks is specific to Yiga enemies and hardcoded in AutoPlacementMgr (in the [[executable]]).
! Name !! Value
 
|-
'''If the Electric_Relic_GetBack flag is set''', which happens when Link gets back the Thunder Helm from the hideout and the quest log shows this message:
| AdjustRadius || False
<blockquote><poem>
|-
You retrieved the chief's heirloom from the
| LightLengthOffset || 2.0
thieves' leader!
|-
 
| IsIgnoreNoWaitStopPoint || False
It's time to head back to Gerudo Town
|-
and return the heirloom to Riju!
|}
</poem></blockquote>
 
...then Blademasters are allowed to spawn. In this case, Footsoldiers carry a random weapon:
<source lang="c++">
// probability: roughly 75%
if (sead::Random::getU32() / (U32_MAX+1) < 0.75)
  weapon = "Weapon_Sword_073"; // Demon Carver
else
  weapon = "Weapon_Sword_053"; // Vicious Sickle
</source>
 
'''Otherwise''':
* if Electric_Relic_AssassinFirst ''or'' Npc_Kakariko001_TalkEnd is set; '''and'''
* if the enemy is Enemy_Assassin_Junior, ''or'' a disguised Yiga, and in possibly more conditions{{check}}
 
then only Footsoldiers may be dynamically generated, and they will only wield Vicious Sickles.
 
Note: if Electric_Relic_GetBack is set, [[AIDef:Action/CreateAndReplaceAssassin]] will create Yiga enemy actors with the DropTable parameter set to "HighRank".
 
[[Category:Internals]]
[[Category:Game mechanics]]

Revision as of 22:13, 21 October 2018

Yiga Clan members are spawned by two different systems.

Some are statically spawned by PlacementMgr, which means that they are listed in map units and visible on the object map. However, after Link completes enough main quests, most Yiga Clan members the player sees are actually dynamically spawned by AutoPlacementMgr.

Static

Traveler (disguised Yigas)

These are linked to 'Link' tags that make them spawn if and only if the Electric_Relic_AssassinFirst flag (set when the Yiga Clan Hideout location text appears) or Npc_Kakariko001_TalkEnd (set after talking to Impa) flag is set.

Near the hideout

The five non-disguised static Yiga clan members inside and near the hideout seem to be spawned unconditionally.

Dynamic

Other Yiga Clan members are not listed on the map. This is because they are dynamically spawned by a component called the AutoPlacement Manager. Unlike PlacementMgr, AutoPlacementMgr doesn't use map units to determine which actors to spawn. The current map area the player is in and various configuration files control whether Yiga enemies spawn or not.

Condition 1: AreaData

Just like other auto-generated actors, Enemy_Assassin_Shooter_Junior or Enemy_Assassin_Middle must be listed in an area's auto-generated enemies for Yiga Clan members to be spawned by AutoPlacementMgr.

Condition 2: Event flow

Just like other auto-generated actors, the AutoPlacement event flows for Enemy_Assassin_Shooter_Junior or Enemy_Assassin_Middle must call the CreateData action for them to be spawned.

The full set of conditions can be found here:

Condition 3: AutoPlacementMgr

This series of checks is specific to Yiga enemies and hardcoded in AutoPlacementMgr (in the executable).

If the Electric_Relic_GetBack flag is set, which happens when Link gets back the Thunder Helm from the hideout and the quest log shows this message:

You retrieved the chief's heirloom from the
thieves' leader!

It's time to head back to Gerudo Town
and return the heirloom to Riju!

...then Blademasters are allowed to spawn. In this case, Footsoldiers carry a random weapon:

// probability: roughly 75%
if (sead::Random::getU32() / (U32_MAX+1) < 0.75)
  weapon = "Weapon_Sword_073"; // Demon Carver
else
  weapon = "Weapon_Sword_053"; // Vicious Sickle

Otherwise:

  • if Electric_Relic_AssassinFirst or Npc_Kakariko001_TalkEnd is set; and
  • if the enemy is Enemy_Assassin_Junior, or a disguised Yiga, and in possibly more conditions[check]

then only Footsoldiers may be dynamically generated, and they will only wield Vicious Sickles.

Note: if Electric_Relic_GetBack is set, AIDef:Action/CreateAndReplaceAssassin will create Yiga enemy actors with the DropTable parameter set to "HighRank".