Strider¶
HardMode changes¶
HardMode being true does the following changes:
- In the dash attack move, the amount of frames this enemy takes to move changes to 41.0 frames from 49.0 frames
- In the water projectiles throw move, the amount of hits changes to be random from 2 to 3 inclusive instead of always being 2
- In the water projectiles throw move, the speed of each Projectile call changes to 25.0 from 32.0
Move selection¶
2 moves are possible:
- A single target dash attack
- A multiple targets water projectiles throw
The decision of which move to use is based on the following odds:
| Move | Odds |
|---|---|
| 1 | 1/2 |
| 2 | 1/2 |
Pre move logic¶
The following logic is always done before using a move if position is Flying:
overrideanimfuncset to true- ExtraAnimPlay called with name
EndFly Rope1sound plays with 0.8 pitch- Over the course of 26.0 frames,
heightchanges to 0.0 via a lerp overrideanimfuncset to false
Post move logic¶
The following logic is always done after a move is used:
- If a 5/10 RNG check passes:
- Yield for 0.5 seconds
overrideanimfuncset to trueRope1sound plays- ExtraAnimPlay called with name
StartFly - Over the course of 26.0 frames,
heightchanges from 0.0 to 1.8 via a lerp - position set to
Flying overrideanimfuncset to false
- Otherwise (5/10 chance to fail the RNG check):
- position set to
Ground
- position set to
Move 1 - Dash attack¶
A single target dash attack.
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 the midpoint between this enemy and
playertargetentity - animstate set to 23 (
Chase) - Over the course of 21.0 frames, this enemy moves to + 2.0 in x via a lerp
- ShakeSprite called with an intensity of 0.1 and 30.0 frametimer
- Yield for 0.5 seconds
- Camera moves to look near
playerdata[playertargetID] Toss15sound plays- Over the course of 49.0 frames (41.0 frames instead if hardmode is true), this enemy moves to (-15.0, 0.0,
playertargetentityz position - 0.1) via a lerp. On the first game this enemy x position becomes lower thanplayertargetentityx position + 1.0:- DoDamage 1 call happens
- If
commandsuccessis true (blocked, ignores FRAMEONE), the movement stops abruptly
- If
commandsuccessis true (blocked, ignores FRAMEONE):Toss14sound plays- animstate set to 0 (
Idle) - Over the course of 36.0 frames, this enemy moves to
playertargetentityposition + 2.0 in x via a BeizierCurve3 with a ymax of 3.0 - Yield for 0.25 seconds
- SetDefaultCamera called
- MoveTowards startp with a 2.0 multiplier
- Yield all frames until
forcemoveis done flipset to false
- Otherwise (didn't block, ignores FRAMEONE):
- SetDefaultCamera called
- Over the course of 26.0 frames, this enemy moves from (15.0, 0.0, 0.0) to startp via a SmoothLerp
- animstate set to 0 (
Idle)
Move 1 - Water projectiles throw¶
A multiple targets water projectiles throw.
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 2 times (random between 2 and 3 times instead if hardmode is true), but the call and further calls won't happen if there's not at least 1 player party member alive (hp above 0 and not eatenby) |
2 | null | This enemy | playertargetID after GetSingleTarget (target changes for each calls) |
A new sprite object named temp rooted using the projectilepsrites[15] sprite (an inverted honey projectile so it looks like a water projectile) positioned at this enemy + (-0.5, 1.4, -0.1) with a scale of (0.65, 0.4, 1.0) |
32.0 (25.0 instead if hardmode is true) | 0.0 | null | WaterSplash |
WaterSplash |
null | Vector3.zero | false |
Logic sequence¶
- GetSingleTarget called (this call won't do anything here as it will get recalled later)
- Camera moves to look neat the midpoint between this enemy and
partymiddle - The amount of hits is determined. It's always 2 (random between 2 and 3 instead if hardmode is true) and a SpriteRenderer array is initialised with this amount as the length to hold the projectiles
- For each hits to do:
- If there's at least 1 player party member is alive (
hpabove 0 and not eatenby):- GetSingleTarget called
- animstate set to 100
Charge19sound plays with 1.1 pitch- Yield for 0.5 seconds
WaterOutsound plays- animstate set to 101
- The projectile element is set to a new sprite objected named
temprooted using theprojectilepsrites[15]sprite (an inverted honey projectile so it looks like a water projectile) positioned at this enemy + (-0.5, 1.4, -0.1) with a scale of (0.65, 0.4, 1.0) - Projectile 1 call happens
- Yield for 0.25 seconds
- If this is the last hit, animstate is set to 0 (
Idle) - Yield for a random interval between 0.35 and 0.65 seconds
- Otherwise:
- animstate set to 0 (
Idle) - No more hits are performed
- animstate set to 0 (
- If there's at least 1 player party member is alive (
- Yield all frames until all projectiles objects are null (all Projectile 1 calls completed)