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
Charge7sound 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 PingShotsound 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 theplayertargetentityposition + 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
ongroundgoes 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
forcemoveis done Charge7sound plays- animstate set to 100
- Yield for 0.5 seconds
Woosh5sound plays on loop with pitch 1.05- animstate set to 103
- y
spinset to 30.0 - Yield for 0.5 seconds
- Over the course of 50.0 frames (30.0 if hardmode is true), position changes to
playertargetentityposition + (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
playertargetentityposition + 3.0 in x via a lerp Woosh5sound stoppedspinzeroed out- Jump called on this enemy
- animstate set to 105
- Yield for 0.8 seconds