Krawler
¶
StartBattle special logic¶
This enemy has special logic that happens on StartBattle after it is loaded:
- If calledfrom exists and its entity is
inice
or the battleentity is:freezeres
increased by 70inice
set to true- weakness set to a new list with one element being HornExtraDamage
Additionally, if all of the following is true, the exp
is incremented by the floored result of a lerp from 10.0 to 3.0 with a factor of instance.partylevel
/ 27.0:
- battleentity.
forcefire
is true or we are in theGiantLair
area except for theGiantLairFridgeInside
map - instance.
partylevel
is less than 27 (meaning it's not maxed) - flags 613 is false (RUIGEE is inactive)
For more information, consult the exp logic documentation.
Fire damage infliction logic in CalculateBaseDamage¶
This enemy has a 50% chance to be on fire on a Fire
property attack if the current area is GiantLair
while the current map isn't GiantLairFridgeInside
. It cannot be on fire otherwise.
GetEnemyPortrait logic¶
If flag 664 is true (approached the oven during Chapter 7), the portrait sprite index field of this enemy is ignored and 226 is returned instead which includes the fire variant of this enemy in the portrait.
HardMode changes¶
HardMode being true does the following changes:
- In the laser attack move, the yield time while charging the laser changes to 0.75 seconds from 0.85 seconds
- In the dash attack move, the amount of frames this enemy takes to reach the target is always 21.0 frames instead of being 27.0 frames if neither of the following were true (it would still be 21.0 if either were true even if hardmode is false):
Move selection¶
2 moves are possible:
- A single target laser attack
- A single target dash attack
The decision of which move to use is based on the following odds:
Move | Odds |
---|---|
1 | 40% |
2 | 60% |
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 | Happens if at least one of the following is true: | This enemy | playertargetID after GetSingleTarget |
3 | Fire | null | commandsuccess |
2 | Happens if DoDamage 1 didn't and inice is true |
This enemy | playertargetID after GetSingleTarget |
2 | Freeze | null | commandsuccess |
3 | Happens if DoDamage 1 and 2 didn't | This enemy | playertargetID after GetSingleTarget |
2 | Numb | null | commandsuccess |
Logic sequence¶
- GetSingleTarget called
- If this enemy x position is less than 2.0:
- MoveTowards (2.5, 0.0, -0.5) with a 2.0 multiplier
- Yield all frames until
forcemove
is done
- animstate set to 100
- Yield for 0.5 seconds
Charge11
sound plays with 1.1 pitch- A new
Prefabs/Particles/Charging
GameObject is created rooted positioned atsprite
position + (0.0, 2.0, -0.1) - Yield for 0.85 seconds (0.75 seconds instead if hardmode is true)
Shot
sound playsPrefabs/Particles/Charging
moved offscreen at 999.0 in yPrefabs/Particles/Charging
gets destroyed in 5.0 seconds- The color of the laser is determined:
- A new LightingBolt coroutine starts which will use a
Prefabs/Particles/LightingBolt
to animate a lighting using its TrailRenderer. The coroutine only contains visual logic that doesn't affect the timing of the block so its logic will be omitted - Yield for 0.1 seconds
- DoDamage 1, 2 or 3 happens depending on which one fits its condition requirements
- Yield for 0.5 seconds
Move 2 - Dash attack¶
A single target dash attack.
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1 | Happens if at least one of the following is true: | This enemy | playertargetID after GetSingleTarget |
4 | Fire | null | commandsuccess |
2 | Happens if DoDamage 1 didn't | This enemy | playertargetID after GetSingleTarget |
3 | Flip1 | null | commandsuccess |
1: This property gets overriden to null in CalculateBaseDamage as the target is a player party member so it does nothing.
Logic sequence¶
- GetSingleTarget called
Scuttle3
sound plays on loop with 1.2 pitch- Camera moves to look near the midpoint between this enemey and
playertargetentity
- animstate set to 1 (
Walk
) Prefabs/Particles/WalkDust
particles are instantiated childed to thesprite
with a local position (0.0, 0.2, -0.1) with its EmissionModule's rateOverTime set to 20.0- ShakeSprite called with an intensity of (0.1, 0.1, 0.1) and frametimer of 50.0
- Yield for a random time between 0.75 and 1.0 seconds
Shot2
sound plays- Camera moved to look near
playertargetentity
zoomed Prefabs/Particles/WalkDust
's MainModule's startLifetime set to a constant curve with a value of 1.5 and its startSize set to 1.25- The amount of frames for the dash is determined. It's 27.0 frames unless any of the following is true where it's 21.0 frames:
- Over the course of the amount of frames determined, this enemy moves to
playertargetentity
position + (0.4, 0.0, -0.1) via a lerp Scuttle3
sound stops- ShakeScreen called with an ammount of 0.3 and time of 0.65
Death3
sound plays- DoDamage 1 or 2 call happens depending on which one has its conditions requirements fufilled
Prefabs/Particles/WalkDust
moves offscreen at 999.0 in y then destroyed in 2.0 seconds- Over the course of 41.0 frames, this enemy moves to + 2.25 in x via a BeizierCurve3 with a ymax of 2.25
- animstate set to 0 (
Idle
) - Yield for 0.5 seconds