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 stayUndergroundbefore going back toGroundby 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
playertargetentityone, 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
playertargetentityposition + (7.0, 0.0, -0.1) with 2.0 multiplier using 1 (Walk) as walkstate and 5 (Angry) as stopstate - Yield all frames until
forcemoveis done Charge7sound 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) WaspDrillsound plays on loop usingsounds[9]- Over the course of 32.25 frames (26.0 frames instead if hardmode is true), this enemy moves to
playertargetentityposition + (2.5, 0.0, -0.1) via a lerp - If
commandsuccessis 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):
playertargetentityanimstate 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
forcemoveis done - Yield for 0.5 seconds
- animstate set to 100
WaspDrillsound plays on loop usingsounds[9]DirtFlyingparticles 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 (
hpabove 0 and not eatenby):- GetRandomAvailablePlayer without nullable is called
DigPopsound plays- The rock element is assigned to a new sprite object rooted with a SpriteRenderer using the
MightyPeeblemedal 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
DirtFlyingparticles created earlier are moved offscreen and destroyed in 5.0 seconds - MainManager.
screenshakezeroed 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
WaspDrillsound 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)checkingdeadset to a new Dig coroutine for this enemy with 0 jump which eventually set position toUnderground(checkingdeadis set to null when completed)- Yield all frames until
checkingdeadis 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 Diggingsound plays on loop usingsounds[9]- MoveTowards
playertargetentityposition + (4.0, 1.6, -0.1) with 1.6 multiplier - Yield all frames until
forcemoveis done diggingset to false- animstate set to 101
- SetAnimForce called
- y position subtracted by 0.65 in y
spritehas its z angle set to 35.0spritehas its scale set to Vector3.oneWaspDrillsound 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
playertargetentityx position, DoDamage 1 call happens - Yield for 0.5 seconds
diggingset to truespritehas its scale set to Vector3.zerospritehas its angle reset to Vector3.zero- y position set to 0.0
sounds[9]stoppeddata[0]decrementedDiggingsound 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
forcemoveis done flipset to falseDirstExplodeparticle plays at this enemyDigPopsound playsdiggingset to false- position set to
Ground - Yield for 0.5 seconds