Cactus
¶
HardMode changes¶
HardMode being true does the following changes:
- In the spike throw move, the amount of frames the spike takes to reach its target changes to 25.0 frames from 30.0 frames
- In the spin attack move, the amount of frames this enemy moves to reach its target on the first hit changes to 30.0 frames from 50.0 frames
Move selection¶
2 moves are possible:
- A single target spike throw
- A single target spin attack that hits twice
The decision of which move to use is based on the following odds:
Move | Odds |
---|---|
1 | 50% |
2 | 50% |
Move 1 - Spike throw¶
A single target spike 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.
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1 | Always happen | This enemy | playertargetID after GetSingleTarget |
2 | Pierce1 | null | commandsuccess |
1: Enemy piercing damages are disabled so this property does nothing, see the CalculateBaseDamage documentation to learn more
Logic sequence¶
- GetSingleTarget called
- Camera moves to look near this enemy, but zoomed in
Charge7
sound plays- animstate set to 102
- Yield for 0.5 seconds
- ShakeSprite called for (0.1, 0.1, 0.1) intensity and 30.0 frametimer
- Yield for 0.5 seconds
- animstate set to 104
- TempSpin called for (0.0, 20.0, 0.0) for 0.5 time
- Jump called on this enemy
- 4 SpriteRenderers are created to be new sprite object using the instance.
projectilepsrites[8]
sprite (a small spike) near the startp with z angles being 0.0, -45.0, -45.0 and -90.0 (meaning only 3 are visible, but one is vertically aligned with the player party) Each have their normalized left vector stored in a local array which represents their heading direction (which is in a straight line away from the enemy) - Camera moves to look near the
playertargetentity
PingShot
sound plays- Over the course of 30.0 frames (25.0 if hardmode is true), all 4 spike projectiles moves away from the enemy in their heading direction towards the distance between startp and
playertargetentity
. The first one however specifically goes towards theplayertargetentity
position + 1.0 in y. Before each frame yield, the z angle of the projectly increased by 5 * the game's frametime - DoDamage 1 call happens
- All spike objects are destroyed
- Yield all frames until
onground
goes to true - animstate set to 105
- Yield for 0.8 seconds
Move 2 - Spin attack¶
A single target spin attack that hits twice.
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1 | Always happen 2 times | This enemy | playertargetID after GetSingleTarget (same target for each calls) |
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 called
- Camera moves to look near
playerdata[playertargetID]
, but zoomed in - MoveTowards
playerdata[playertargetID]
+ 3.5 in x with 2.0 multiplier using the current animstate for start and stop - Yield all frames until
forcemove
is done Charge7
sound plays- animstate set to 100
- Yield for 0.5 seconds
Woosh5
sound plays on loop with pitch 1.05- animstate set to 103
- y
spin
set to 30.0 - Yield for 0.5 seconds
- Over the course of 50.0 frames (30.0 if hardmode is true), position changes to
playertargetentity
position + (1.0, 0.0, -0.2) via a lerp - Done 3 times:
- DoDamage 1 call happens
- Yield for 0.5 seconds
- Over the course of 30.0 frames, position changes to
playertargetentity
position + 3.0 in x via a lerp Woosh5
sound stoppedspin
zeroed out- Jump called on this enemy
- animstate set to 105
- Yield for 0.8 seconds