SkullCaterpillar
¶
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]
: This is a cooldown for the usage of the screaming attack move. See the move selection section for details on how this cooldown works as it doesn't behave like a typical actor turn cooldown
HardMode changes¶
HardMode being true does the following changes:
- In the rolling attack move, the amount of frames this takes to move changes to 28.0 frames from 33.0 frames
Move selection¶
2 moves are possible:
- A party wide rolling attack
- A party wide screaming attack
The decision of which move to use is based on the following odds:
Move | Odds |
---|---|
1 | 3/5 |
2 | 2/5 |
However, move 2 won't be used if data[0]
(its usage cooldown) hasn't expired yet. If this happens, move 1 is used instead.
The cooldown is set to expire after either 1 or 2 decrements determined randomly. Move 1 always causes a decrement when used, but move 2 will too if it is selected and the cooldown hasn't expired yet. This means that effectively:
- If it was set to expire after 1 decrement, move 2 becomes usable after the next actor turn no matter which move is selected and used
- If it was set to expire after 2 decrements, then it depends on which move is selected on the next actor turn:
- If it's move 1, then move 2 still won't be usable on the next actor turn
- If it's move 2, it will become usable on the next actor turn
Move 1 - Rolling attack¶
A party wide rolling attack.
PartyDamage¶
# | Conditions | caller | damage | property | block | jumpheight | spinammount | jumpevenonblock | overrides |
---|---|---|---|---|---|---|---|---|---|
1 | Always happen | This enemy | 2 | null | commandsuccess |
0.0 | Vector3.zero | false | null |
Logic sequence¶
Curl
sound plays- Camera moves to look near this enemy
- animstate set to 100
- Jump called on this enemy
- Yield for 0.5 seconds
- Yield all frames until this enemy is
onground
Spin2
sound plays on loop usingsounds[9]
with 1.25 pitch- ShakeSprite called with an intensity of (0.1, 0.0, 0.0) and 45.0 frametimer
- Yield for 0.75 seconds
- SetDefaultCamera called
sounds[9]
pitch set to 1.1- Over the course of 33.0 frames (28.0 frames instead if hardmode is true), this enemy moves to (-15.0, 0.0, 0.0) via a lerp. On the first frame its x position becomes lower than 4.5:
- ShakeScreen called with 0.15 ammount and 0.8 time
- PartyDamage 1 call
- Over the course of 41.0 frames, this enemy moves to startp via a lerp
- Jump called on this enemy
- Yield for 0.5 seconds
- Yield all frames until this enemy is
onground
data[0]
is decremented if it is above 0
Move 2 - Screaming attack¶
A party wide screaming attack.
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 | 2 | Numb | commandsuccess |
0.0 | Vector3.zero | false | null |
Logic sequence¶
checkingdead
set to a new ScreamWaves (checkingdead
is set to null when completed)- Yield all frames until
checkingdead
is null data[0]
is set to either 1 or 2 determined randomly
This is what the coroutine ends up doing:
- Camera moves to look near this enemy
- animstate set to 101
- ShakeSprite called with an intensity of (0.05, 0.0, 0.0) and 85.0 frametimer
- Yield for 0.85 seconds
Gleam
particles plays with theGleam
sound at this enemy'ssprite
+ its CenterPos + (0.5, 1.0, -0.1) with 0.5 alivetime- Yield for 0.5 seconds
- Done 5 times in a separate coroutine started in paralel called MainManager.Waves:
- A
Prefabs/Objects/SphereGlowEffect
GameObject is instantiated rooted at this enemy's world CenterPos with a scale of 0.0x - Over the course of 31.0 frames, the scale of
Prefabs/Objects/SphereGlowEffect
changes to (50.0, 50.0, 1.0) via a lerp - The
Prefabs/Objects/SphereGlowEffect
gets destroyed - Yield for 0.25 seconds
- A
- SetDefaultCamera called
MadesphyScream
sound plays- animstate set to 103
- ShakeScreen called with an ammount of 0.2 and 1.0 time
- Yield for 0.25 seconds
- PartyDamage 1 call happens
- Yield for a second
checkingdead
set to null which signals the caller that this coroutine completed