Skip to content

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:

  1. A single target spike throw
  2. 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 the playertargetentity 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 stopped
  • spin zeroed out
  • Jump called on this enemy
  • animstate set to 105
  • Yield for 0.8 seconds