KeyR
and KeyL
¶
NOTE: Both
KeyR
andKeyL
, while different enemies, they share the exact same action logic so they are documented together.
Fire damage infliction logic in CalculateBaseDamage¶
This enemy cannot be on fire meaning any Fire
property damages will not inflict the Fire condition.
HPBarOnOther special logic¶
This enemy has special logic in a method called HPBarOnOther which is used by RefreshEnemyHP to know if the hpbar
should be shown despite this enemy not being spied yet. It returns true if EverlastingKing was spied which is needed because it's not possible under normal gameplay to spy this enemy, but it is possible to spy EverlastingKing
. This means that this logic allows this enemy's hpbar
to be displayed by spying EverlastingKing
.
HardMode changes¶
HardMode being true does the following changes:
- In the aerial spinning strike move, the ForceMove call's frametime before the DoDamage call changes to 17.0 from 23.5
Move selection¶
2 moves are possible:
- A single target laser attack
- A single target aerial spinning strike
The decision of which move to use is based on the following odds:
Move | Odds |
---|---|
1 | 49% |
2 | 51% |
Pre move logic¶
The following logic always happen before using a move if position is Ground
to change it to Flying
:
- Over the course of 31.0 frames,
height
changes fromminheight
toinitialheight
via a lerp - position is set to
Flying
Move 1 - Laser attack¶
A single target laser attack.
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
walkstate
set to 0 (Idle
)bobspeed
set to 0.0- MoveTowards
playertargetentity
position + (3.0, 0.0, -0.1) with a 3.0 multiplier using 100 as the walkstate and stopstate - Camera moves to look near the midpoint between
playertargetentity
andforcetarget
- Yield all frames until
forcemove
is done - animstate set to 100
- A new
Prefabs/Particles/Charging
GameObject is instantiated childed to thesprite
with a local position of -1.0 in y and a z angle of -45.0 - Yield for 0.5 seconds
- Yield for 0.25 seconds
Shot
sound playsPrefabs/Particles/Charging
's position set to offscreen at 999.0 in y then destroyed in 5.0 secondsLazer
particles plays at this enemy position with -1.0 alivetime then gets childed to thesprite
with a local position of -1.0 in y and a x angle of 90.0- DoDamage 1 call happens
- Over the course of 41.0 frames, the
Lazer
particles x and y scale changes to 0.0 via a lerp Lazer
particles gets destroyed- animstate set to 0 (
Idle
) bobspeed
set to the value before this action
Move 2 - Aerial spinning strike¶
A single target aerial spinning 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
walkstate
set to 0 (Idle
)bobspeed
set to 0.0Spin
sound plays on loop usingsounds[9]
- animstate set to 100
sprite
z angle set to -70.0- y
spin
set to 30.0 - ForceMove called on this enemy to move them to + 1.5 in x with 30.0 framtime without changeanim
- Yield all frames until
forcemoving
is done - Yield for 0.25 seconds
- Camera moves to look near
playerdata[playertargetID]
trail
set to truesounds[9]
stoppedShot2
sound plays- ForceMove called on this enemy to move them to
playertargetentity
position + (0.25, 1.0 -height
, -0.1) with 23.5 framtime (17.0 instead if hardmode is true) without changeanim - Yield all frames until
forcemoving
is done - DoDamage 1 call happens
- SetDefaultCamera called
trail
set to falsesprite
angles reset to Vector3.zerospin
set to (0.0, 0.0, 30.0)- Over the course of 41.0 frames, this enemy moves to startp via a BeizierCurve3 with a ymax of 6.0
spin
zeroed out- animstate set to 0 (
Idle
) bobspeed
set to the value before this action