WaspKingIntermission¶
Assumptions¶
This enemy is a lite version of WaspKing, they actually share logic, but this enemy imposes heavy restrictions. They will be taken for granted in this page for the sake of simplicity.
It is assumed that MainManager.battleloseevent is true because this enemy will deal an absurdly high damaging party wide attack on the 3rd main turn which is meant to kill the player party. Setting this field to true allows DeadParty to not call GameOver and simply exit the battle via ReturnToOverworld.
It is assumed that this enemy is immune to Freeze, Sleep and Numb conditions which avoids delaying the usage of his fire pillar move since this enemy can't be stopped.
data usage¶
At the start of the action, if data is null or empty, it's initialised to be 1 element with a starting value of 0.
data[0]: Effectively UNUSED here because while it normally would be an actor turn cooldown to using the fire pillar move, this enemy has it disabled so it has no effect. It is set to 3 when the move is used and decremented after, but this will be ignored and have no effects
Move selection¶
2 moves are possible:
- A single target axe slash attack
- A party wide fire pillar attack that always kills the player party
Move 1 is always used until turns is 2 or above where move 2 is always used (meaning on the 3rd main turn, this enemy is locked to use move 2).
Pre move logic¶
The following logic is always done at the start of the action:
hpis set to 999 (effectively making this enemy impossible to kill as their data should also be 999maxhp)- If
turnsis 2 or above (2 main turns fully advanced since the start of the battle):- SetText is called in dialogue with the following:
- text:
commondialogue[119] - fonttype: 0 (
BubblegumSans) - linebreak:
messagebreak - tridimensional: false
- position: Vector3.zero
- size: Vector3.one
- parent: This enemy
- caller: null
- text:
- Yield all frames until the message lock is released
- Every player party members with a Shield condition has it removed via RemoveCondition
- SetText is called in dialogue with the following:
Move 1 - Axe slash¶
A single target axe slash attack.
DoDamage calls¶
| # | Conditions | attacker | target | damageammount | property | overrides | block |
|---|---|---|---|---|---|---|---|
| 1 | Always happen | This enemy | playertargetID after GetSingleTarget |
5 | Flip1 | null | commandsuccess |
1: This property gets overriden to null in CalculateBaseDamage as the target is a player party member so it does nothing.
Logic sequence¶
- GetSingleTarget called
- Camera moves to look near
playerdata[playertargetID] - MoveTowards
playertargetentityposition + (2.0, 0.0, -0.1) with a 2.0 multiplier - Yield all frames until
forcemoveis done - animstate set to 100
- Yield for 0.65 seconds
- ShakeScreen called with 0.2 ammount and 0.5 time
- animstate set to 101
Slashsound plays- DoDamage 1 call happens
- Jump called on
playertargetentity - Yield for 0.75 seconds
- animstate set to 103
- Yield for 0.35 seconds
- Yield all frames until
playertargetentityisonground
Move 2 - Fire pillar instakill¶
A party wide fire pillar attack that always kills the player party.
nonphyscal set to true¶
This move always sets nonphyscal to true which affects the effects of the FrostBite, SpikeBod and PoisonTouch medal if equipped on the target.
PartyDamage¶
| # | Conditions | caller | damage | property | block | jumpheight | spinammount | jumpevenonblock | overrides |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Always happen | This enemy | 99 | NoExceptions | false | 0.0 | Vector3.zero | false | null |
Logic sequence¶
- animstate set to 105
checkingdeadset to a new FirePillar coroutine from this enemy without green- Yield all frames until
checkingdeadis null (the coroutine completed)
Here is what the coroutine ends up doing:
- Yield for 0.5 seconds
FirePillarsound plays- A new
Prefabs/Objects/FirePillar 1GameObject is instantiated childed to thebattlemapatpartymiddlewith a scale of (0.0, 1.0, 0.0 )and a DialogueAnim with the following:targetscale: (0.75, 1.0, 0.75)shrink: falseshrinkspeed: 0.015
- Yield for 0.65 seconds
Prefabs/Objects/FirePillar 1's DialogueAnim'sshrinkspeedset to 0.2- Yield for 0.2 seconds
- ShakeScreen called with ammount of 0.25 and 0.75 time
- PartyDamage 1 call happens
- Yield for 1.15 seconds
Prefabs/Objects/FirePillar 1's DialogueAnim'stargetscaleset to (0.0, 1.0, 0.0)- All ParticleSystem under
Prefabs/Objects/FirePillar 1are stopped Prefabs/Objects/FirePillar 1's DialogueAnim'sshrinkspeedset to 0.05Prefabs/Objects/FirePillar 1gets destroyeddata[0]is set to 3 (effectively does nothing because thisdataslot is unused for this enemy)checkingdeadis set to null which signals the caller that this coroutine completed