WaspHealer
¶
MainManager.GetEXP special logic¶
This enemy features special exp handling logic. Check the documentation to learn more.
HardMode changes¶
HardMode being true does the following changes:
- In the needles throw move, the property of all the Projectile calls is always Poison instead of only being
Poison
with a 6/10 chance and null with a 4/10 chance - In the needles throw move, the damage is always 1 instead of being 2 (3 instead if instance.
areaid
is theRubberPrison
orMetalLake
areas) - In the needles throw move, the speed is 10.0 instead of 15.0
- In the needles throw move, the yield time between each hits is 0.35 seconds instead of being 0.25 seconds
- In the aerial strike move, the amount of frames this enemy takes to reach its target from near the target is 9.0 frames instead of 11.0 frames
Move selection¶
3 moves are possible:
- A single target aerial needles throw that hits twice
- A single target aerial strike
- Summons another
WaspHealer
enemy and change position toGround
.
The decision of which move to use is based on the following odds:
Move | Odds |
---|---|
1 | 2/4 |
2 | 1/4 |
3 | 1/4 |
However, in order for move 3 to actually be used, the following conditions needs to be fufilled after selecting it:
- This enemy is alone in
enemydata
locktri
is false (meaning it hasn't summoned before and it wasn't a summonedWaspHealer
)
If the move was selected, but the conditions above aren't fufilled, move 2 is used instead.
Move 1 - Needles throw¶
A single target aerial needles throw that hits twice.
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 times |
|
null (Poison instead if hardmode is true) | This enemy | playertargetID after GetSingleTarget (target is the same for all calls) |
A new GameObject childed to battlemap with a SpriteRenderer using the projectilepsrites[2] sprite (a needle) with the spritemate material (if hardmode is true color is set to pure magenta) positioned at this enemy's sprite + (-1.5, 0.25, -0.1) with a z angle of -45.0 on layer 14 (Sprite ) |
15 (10 if hardmode is true) | 0.0 | null | null | null | null | Vector3.zero | false |
Logic sequence¶
checkingdead
set to a new ChangePosition call on this enemy to change its position toFlying
(checkingdead
is set to null when completed)- Yield until
checkingdead
is null - GetSingleTarget called
- Camera moves to look near
playerdata[playertargetID]
- MoveTowards
playertargetentity
position + (3.25, 0.0, -0.25) with a 2.0 multiplier - Yield all frames until
forcemove
is done - animstate set to 100
- Yield for 0.4 seconds
- A new Transform array of 2 elements is created to contain each needles
- Done 2 times for each needle to throw:
Toss
sound plays- animstate set to 102
- Needle element initialized to a new GameObject childed to
battlemap
with a SpriteRenderer using theprojectilepsrites[2]
sprite (a needle) with thespritemate
material (if hardmode is true color is set to pure magenta) positioned at this enemy'ssprite
+ (-1.5, 0.25, -0.1) with a z angle of -45.0 on layer 14 (Sprite
) - Projectile 1 call happens
- Yield for 0.25 seconds (0.35 instead if hardmode is true)
- If this is the last needle:
- animstate set to 100
- Yield for 0.4 seconds
- Yield all frames until all the needles array elements are null (meaning all Projectile calls completed)
- animstate set to 0 (
Idle
) - Yield for 0.5 seconds
Move 2 - Aerial strike¶
A single target aerial strike.
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1 | Always happen | This enemy | playertargetID after GetSingleTarget |
3 (4 instead if instance.areaid is the RubberPrison or MetalLake areas) |
null | null | commandsuccess |
Logic sequence¶
checkingdead
set to a new ChangePosition call on this enemy to change its position toFlying
(checkingdead
is set to null when completed)- Yield until
checkingdead
is null - GetSingleTarget called
- Camera moves to look near
playerdata[playertargetID]
- MoveTowards
playertargetentity
position + (3.25, 0.0, -0.25) with a 2.0 multiplier - Yield all frames until
forcemove
is done - animstate set to 101
height
set to 0.0- y position increased by the
height
value before this action BugWingFast
sound plays- Over the course of 31.0 frames, this enemy moves + 1.25 in x via a BeizierCurve3 with a ymax of -1.5
- ShakeSprite called with intensity (0.1, 0.0, 0.0) and 30.0 frametimer
- Yield for 0.5 seconds
- animstate set to 105
trail
set to trueWoosh2
sound plays- Over the course of 11.0 frames (8.0 frames instead if hardmode is true), this enemy moves to
playertargetentity
position + (0.75, 0.75, -0.1) via a lerp - ShakeScreen called with an ammount of 0.05 and time of 0.2
- DoDamage 1 call happens
- Yield for 0.35 seconds
- animstate set to 104
- Over the course of 11.0 frames, this enemy moves to
playertargetentity
position + (2.0,height
value of this enemy before this action, -0.2) via a lerp trail
set to falseheight
set to the value before this action- y position set to 0.0
Move 3 - Summons another WaspHealer
¶
Summons another WaspHealer
enemy and change position to Ground
. No damages are dealt.
nocharm set to true¶
This move always set the nocharm local to true which will prevent any UseCharm calls to occur in the post action phase. This means no HealHP
charm can occur after this action.
Logic sequence¶
checkingdead
set to a new ChangePosition call on this enemy to change its position toGround
(checkingdead
is set to null when completed)- Yield until
checkingdead
is null - animstate set to 106
- Yield for 0.3 seconds
Whistle
sound plays with 0.9 pitch and 0.7 volumecheckingdead
set to a new SummonEnemy call to summon a newWaspHealer
with anOffscreen
type at a random location between (0.25, 0.0, -0.75) and (7.0, 0.0, 0.75) where the distance between any enemy party member is less than itssize
* 1.75 with cantmove (meaning the enemy needs to wait on the next main turn to act)- Yield for 0.85 seconds
- animstate set to 0 (
Idle
) locktri
set to true (prevents from using this move again)enemydata[lastaddedid]
'slocktri
set to true which prevents the summoned enemy from using this move. NOTE: It is technically possible that the summoning hasn't completed yet, but the previous yield makes it very unlikely in practice- Yield until
checkingdead
is null (the coroutine completed)