MothflyCluster¶
HardMode changes¶
HardMode being true does the following changes:
- In the aerial strike move, the amount of frames this enemy takes to reach its target changes to 11.0 frames from 17.0 frames
Move selection¶
2 moves are possible:
- A single target aerial strike
- Summons 2 new Mothfly enemies
Move 2 is always (and only) used when this enemy is the last enemydata remaining.
If move 2 wasn't used, move 1 is always used.
Pre move logic¶
The following logic is always done at the start of the actor turn if position is Ground:
checkingdeadis set to a new ChangePosition call to set the position toFlying(checkingdeadset to null when completed)- Yield all frames until
checkingdeadis null
Move 1 - 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 | null | null | commandsuccess |
Logic sequence¶
- GetSingleTarget called
- Camera moves to look near
playerdata[playertargetID], but zoomed in - MoveTowards
playerdata[playertargetID]+ (3.0, 0.0, -0.1) with 2.0 multiplier - Yield all frames until
forcemoveis done - animstate set to 11 (
Hurt) - ShakeSprite called with 0.1 intensity and 30.0 frametimer
Charge19sound plays- Yield for 0.5 seconds
- animstate set to 100
Toss13sound plays- Over the course of 17.0 frames (11.0 frames instead if hardmode is true), this enemy moves to
playertargetentity+ (0.5, 0.0 -height+ 0.5, -0.1) via a lerp - ShakeScreen called with 0.075 ammount and 0.5 time with dontreset
- DoDamage 1 call happens
- Yield for 0.25 seconds
- Over the course of 21.0 frames, this enemy moves to
playerdata[playertargetID]+ (2.0, 0.0, -0.1) via a lerp
Move 2 - Summons 2 Mothfly¶
Summons 2 new Mothfly enemies. No damages are dealt.
Logic sequence¶
- MoveTowards (4.0, 0.0, 0.0) with 2.0 multiplier
- Yield all frames until
forcemoveis done Toss11sound plays- startp set to this enemy position except for the y component which is set to 0.0
checkingdeadset to a new SummonMothFly coroutine (checkingdeadis set to null when it completes)- Yield all frames until
checkingdeadis null
This is what the SummonMothfly coroutine ends up doing:
- Camera moves to look near this enemy, but zoomed in
- animstate set to 11 (
Hurt) rotatergets a SpriteBounce added with 0.0frequencyand 20.0speed- Over the course of 31.0 frames, the
rotater's SpriteBounce'sfrequencychanges to 0.1 via a lerp - Yield for 0.5 seconds
- The
rotater's SpriteBounce gets destroyed rotaterscale increased by 30%PingDownsound plays- Done 2 times:
- AddNewEnemy called to a new Mothfly enemy at this enemy + (0.0,
height, 0.1) - Yield a frame
- The
enemydata[lastaddedid]gets some adjustements:maxhpandhp: divided by 2 flooredexp: 0money: 0- y
spin: 20.0
- AddNewEnemy called to a new Mothfly enemy at this enemy + (0.0,
- Over the course of 31.0 frames,
rotaterscale changes to its original value before this coroutine via a lerp and the 2 new enemies that were just summoned moves from this enemy position to (x, 0.0, -0.1) via a BeizierCurve3 with a ymax of 4.0 wherexis 1.0 for the first enemy and 7.0 for the second enemy rotaterscale is set to its value before this coroutine- Both enemies who were just summoned has their
spinzeroed out checkingdeadis set to null which signals the caller that this coroutine completed