WaspDriller
¶
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 set to 2 when using the digging underground move and every actor turn where this enemy attacks with position set toUnderground
, it is decremented. Once it reaches 0 after the decrement, the enemy goes back toGround
. Effectively, this value represents the amount of actor turns left that this enemy can stayUnderground
before going back toGround
by themselves.
HardMode changes¶
HardMode being true does the following changes:
- In the underground attack move, the total amount of frames for the enemy to move is 31.0 frames instead of being 39.0 frames. The DoDamage calls still happens on the first frame the enemy x position becomes lower than the
playertargetentity
one, but since the total amount of frames is reduced, this moment happens sooner - In the grounded drill attack move, the enemy takes 26.0 frames to move to its target instead of 32.25 frames
- In the triple hits version of the grounded drill attack move, the yield time before the second and third hit changes to 0.45 seconds from 0.65 seconds
- In the rock debris attack move, the amount of rocks thrown is random between 2 and 4 inclusive instead of being random between 2 and 3 inclusive
- In the rock debris attack move, the speed of each projectile is random between 40 and 48 inclusive cast to float instead of being random between 40 and 56 cast to float
Move selection¶
4 moves are possible:
- A single target drill dash attack
- A multiple targets rock debris thrown from drilling the ground
- Digs to set the position to
Underground
- A single target underground drill attack
Move 4 is always (and only) used when position is Underground
.
As for the other moves, the decision of which move to use is based on the following odds:
Move | Odds |
---|---|
1 | 3/8 |
2 | 3/8 |
3 | 2/8 |
Move 1 - Drill dash attack¶
A single target drill dash 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.
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1_a | commandsuccess is false (didn't blocked, ignores FRAMEONE) |
This enemy | playertargetID after GetSingleTarget |
4 | Pierce2 | null | false |
1_b | commandsuccess is true (blocked, ignores FRAMEONE), done 3 times |
This enemy | playertargetID after GetSingleTarget |
1 | Pierce1 | null | commandsuccess |
1: Enemy piercing damages are disabled so this property does nothing, see the CalculateBaseDamage documentation to learn more.
Logic sequence¶
- GetSingleTarget
- Camera moves to look near
playertargetentity
- MoveTowards
playertargetentity
position + (7.0, 0.0, -0.1) with 2.0 multiplier using 1 (Walk
) as walkstate and 5 (Angry
) as stopstate - Yield all frames until
forcemove
is done Charge7
sound plays- ShakeSprite called with intensity (0.1, 0.0, 0.0) and 50.0 frametimer
- Yield for 0.75 seconds
- animstate set to 23 (
Chase
) WaspDrill
sound plays on loop usingsounds[9]
- Over the course of 32.25 frames (26.0 frames instead if hardmode is true), this enemy moves to
playertargetentity
position + (2.5, 0.0, -0.1) via a lerp - If
commandsuccess
is false (the player didn't blocked, ignores FRAMEONE):- DoDamage 1_a call happens
- Over the course of 61.0 frames, this enemy moves to (-20.0, 0.0, z doesn't change) via a lerp
- SetDefaultCamera called
sounds[9]
stopped- Over the course of 71.0 frames, this enemy moves from (20.0, 0.0, z doesn't change) to startp via a lerp. Before each frame yield, animstate is set to 1 (
Walk
)
- Otherwise (the player blocked, ignores FRAMEONE):
playertargetentity
animstate set to 11 (Hurt
)- Done 3 times:
- DoDamage 1_b call happens
- Yield for 0.65 seconds (0.45 seconds instead if harmode is true)
- Over the course of 31.0 frames, this enemy moves to + 2.0 in x via a lerp
sounds[9]
stopped
Move 2 - Rock debris throw¶
A multiple targets rock debris thrown from drilling the ground.
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.
Projectile calls¶
# | Conditions | damage | property | attacker | playertarget | obj | speed | height | extraargs | destroyparticle | audioonhit | audiomoving | spin | nosound |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Always happen from 2 to 3 times (2 to 4 times instead if hardmode is true), but each calls requires that there's at least 1 player party member alive (hp above 0 and not eatenby) |
2 | null | This enemy | The return of GetRandomAvailablePlayer without nullable (target changes each calls) | A new sprite object rooted with a SpriteRenderer using the MightyPeeble medal sprite positioned at this enemy |
Random between 40 and 56 inclusive then cast to float (random between 40 and 48 inclusive instead if hardmode is true) | 6.0 | null | null | null | null | (0.0, 0.0, 20.0) | false |
Logic sequence¶
- Camera moves to loop near (-2.45, 0.0, 1.9)
- MoveTowards (0.5, 0.0, -0.5) with 2.0 multiplier using 1 (
Walk
) as walkstate and 5 (Angry
) as stopstate - Yield all frames until
forcemove
is done - Yield for 0.5 seconds
- animstate set to 100
WaspDrill
sound plays on loop usingsounds[9]
DirtFlying
particles plays near this enemy- ShakeScreen called with an ammount of 0.05 and -1.0 time
- Yield for 0.5 seconds
- A new SpriteRenderer array is created with the amount of rocks to throw as the length. The amount is random between 2 and 3 inclusive (between 2 and 4 inclusive if hardmode is true)
- For each rock to throw, if there's at least 1 player party member alive (
hp
above 0 and not eatenby):- GetRandomAvailablePlayer without nullable is called
DigPop
sound plays- The rock element is assigned to a new sprite object rooted with a SpriteRenderer using the
MightyPeeble
medal sprite positioned at this enemy - Projectile 1 call happens
- Yield for a random interval between 0.65 and 0.85 seconds
- Yield all frames until all rocks array elements are null (meaning all Projectile 1 calls completed)
- The
DirtFlying
particles created earlier are moved offscreen and destroyed in 5.0 seconds - MainManager.
screenshake
zeroed out - Yield for 0.3 seconds
sounds[9]
stopped
Move 3 - Digging underground¶
Digs to set the position to Underground
. No damages are dealt.
nonphyscal
set to true¶
This move always sets nonphyscal
to true which doesn't affect anything for this move.
Logic sequence¶
- animstate set to 5 (
Angry
) - Yield for 0.5 seconds
WaspDrill
sound plays on loop usingsounds[9]
- animstate set to 100
- Yield for 0.35 seconds
data[0]
set to 2 (meaning this enemy will stay underground and attack for up to 2 actor turns)checkingdead
set to a new Dig coroutine for this enemy with 0 jump which eventually set position toUnderground
(checkingdead
is set to null when completed)- Yield all frames until
checkingdead
is null sounds[9]
stopped
Move 4 - Underground drill attack¶
A single target underground drill 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.
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1 | Always happen | This enemy | playertargetID after GetSingleTarget |
3 | Pierce1 | null | commandsuccess |
1: Enemy piercing damages are disabled so this property does nothing, see the CalculateBaseDamage documentation to learn more
Logic sequence¶
- GetSingleTarget
- Camera moves to look near
playertargetentity
Digging
sound plays on loop usingsounds[9]
- MoveTowards
playertargetentity
position + (4.0, 1.6, -0.1) with 1.6 multiplier - Yield all frames until
forcemove
is done digging
set to false- animstate set to 101
- SetAnimForce called
- y position subtracted by 0.65 in y
sprite
has its z angle set to 35.0sprite
has its scale set to Vector3.oneWaspDrill
sound plays on loop usingsounds[9]
with 1.3 pitch- Yield for 0.5 seconds
- Over the course of 39.0 frames (31.0 frames instead if hardmode is true), this enemy moves -7.0 in x via a lerp. On the first frame the enemy x position becomes less than the
playertargetentity
x position, DoDamage 1 call happens - Yield for 0.5 seconds
digging
set to truesprite
has its scale set to Vector3.zerosprite
has its angle reset to Vector3.zero- y position set to 0.0
sounds[9]
stoppeddata[0]
decrementedDigging
sound plays- If
data[0]
reached 0 (meaning all underground actor turns were spent):- SetDefaultCamera called
- MoveTowards startp with a 3.0 multiplier
- Yield all frames until
forcemove
is done flip
set to falseDirstExplode
particle plays at this enemyDigPop
sound playsdigging
set to false- position set to
Ground
- Yield for 0.5 seconds