Scorpion
¶
HardMode changes¶
HardMode being true does the following changes:
- In the boulder throw move, the time the boulder takes to reach its target changes to 46.0 frames from 61.0 frames
Move selection¶
3 moves are possible:
- A single target claw swipe that can hit twice
- A single target tail thrust that may inflict Sleep
- A party wide boulder throw
The decision of which move to use is determined by the following odds:
Move | Odds |
---|---|
1 | 3/7 |
2 | 2/7 |
3 | 2/7 |
Move 1 - Claw swipes¶
A single target claw swipe that can hit twice.
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1 | Always happen | This enemy | playertargetID after GetSingleTarget |
3 | null | null | commandsuccess |
2 | Only happens if after DoDamage 1, HPPercent is 0.5 or less | This enemy | The same playertargetID as DoDamage 1 |
3 | null | null | commandsuccess |
Logic sequence¶
- GetSingleTarget called
- Camera moves to look near
playerdata[playertargetID]
- MoveTowards
playertargetentity
position + (3.0, 0.0, -0.15) with 2.0 multiplier - Yield all frames until
forcemove
is done - animstate set to 100
ScorpionClaw1
sound plays- Yield for 0.75 seconds
- animstate set to 102
ScorpionClaw2
sound plays- Yield for 0.05 seconds
- DoDamage 1 call happens
- If HPPercent is 0.5 or less:
- Yield for 0.35 seconds
ScorpionClaw1
sound plays with 0.95 pitch- animstate set to 104
- Yield for 0.5 seconds
ScorpionClaw2
sound plays- animstate set to 106
- Yield for 0.05 seconds
- DoDamage 2 call happens
Move 2 - Tail thrust¶
A single target tail thrust that may inflict Sleep.
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1 | Always happen | This enemy | playertargetID after GetSingleTarget |
3 | Pierce1 | null | commandsuccess |
1: Enemy piercing damages are disabled so this property does nothing, see the CalculateBaseDamage documentation to learn more
About incorrect Poison and Sleep properties logic¶
While the DoDamage call features a Pierce
property, the move ends up doing an incorrect version of the Poison
or Sleep
property logic due to the single property shortcoming. Here are the differences:
- On FRAMEONE, regular blocking will incorrectly prevent the condition from being inflicted which doesn't happen normally
- When inflicting either conditions, the resistance check is off by one. See the StatusEffect documentation for details
- When inflicting
Poison
, thePoisonTouch
medal won't work despite the attack being physical - When inflicting
Sleep
, the amount of turns to inflict is 2 instead of 3 even if the target didn't already had the condition - When inflicting
Poison
and the target had theSleep
condition without aHeavySleeper
medal, itsSleep
condition is not removed when it otherwise would have been. NOTE: in practice, nothing changes because the DoDamage 1 call will remove theSleep
condition anyway - When inflicting
Sleep
, there is no resistance increase - The condition infliction can still happen if the target has the Numb while having the
ShockTrooper
medal equipped - When inflicting
Poison
, thePoison
sound is not played when it should have been - When inflicting
Sleep
, theSleep
sound is not played when it should have been - When inflicting
Sleep
,isasleep
is not set to true when it should have been. NOTE: this doesn't affect anything since the value gets fixed when the main turn advance occurs and no potential impact can happen under normal gameplay until it advances
Logic sequence¶
- GetSingleTarget called
- Camera moves to look near
playerdata[playertargetID]
- MoveTowards
playertargetentity
position + (3.5, 0.0, -0.15) with 2.0 multiplier - Yield all frames until
forcemove
is done - animstate set to 107
ScorpionTail3
sound plays- Yield for a random amount of time between 0.65 seconds and 0.85 seconds
- animstate set to 109
ScorpionTail4
sound plays- Yield for 0.05 seconds
- DoDamage 1 call happens
- If
commandsuccess
is false (didn't blocked, ignores FRAMEONE) andplayerdata[playertargetID]
doesn't have the Shield or Sturdy conditions, StatusEffect is called onplayerdata[playertargetID]
to inflict a randomly chosen condition between Poison and Sleep for 2 main turns (effectively 1 main turn since the current one is advanced soon) - Yield for 0.75 seconds
Move 3 - Boulder throw¶
A party wide boulder 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.
PartyDamage¶
# | Conditions | caller | damage | property | block | jumpheight | spinammount | jumpevenonblock | overrides |
---|---|---|---|---|---|---|---|---|---|
1 | Always happen | This enemy | 4 | null | commandsuccess |
0.0 | Vector3.zero | false | null |
Logic sequence¶
- animstate set to 110
Dig2
sound playsDigging
particles plays at this enemy position -3.0 in x- A new
Prefabs/Objects/CrackedRock
GameObject is created without its MeshCollider and Fader with a position of (0.0, -10.0, this enemy z position + 0.3) a scale of 3x and an x angle of 180.0 - Yield for 0.65 seconds
- The
Digging
particles are moved offscreen at -999.0 in y - animstate set to 111
- Yield for 0.35 seconds
RockPluck
sound plays- animstate set to 112
- ShakeScreen called with an ammount of 0.25 and a time of 0.2
DirtExplode2
particles plays at this enemy position -3.0 in x- Over the course of 11.0 frames, the
Prefabs/Objects/CrackedRock
moves from this enemy postion + (-3.5, -1.25, -0.1) to this enemy position + (-0.85, 5.45, 0.0) via a BeizierCurve3 with a ymax of 2.0 - Yield for 0.3 seconds
- animstate set to 114
- Yield for 0.1 seconds
Toss7
sound plays- Over the course of 61.0 frames (46.0 instead if hardmode is true), the
Prefabs/Objects/CrackedRock
moves to (-4.5, 1.0, 0.0) via a BeizierCurve3 with a ymax of 6.0 Thud5
sound playsimpactsmoke
particles plays at thePrefabs/Objects/CrackedRock
position- ShakeScreen called with an ammount of 0.25 and frametimer of 0.65
- A
Prefabs/Objects/CrackRockBreak
is instantiated with same position and scale as thePrefabs/Objects/CrackedRock
(this gets destroyed in 60.0 seconds via the CrackRockBreak component attached to it) Prefabs/Objects/CrackedRock
is destroyed- PartyDamage 1 call happens
- Yield for 0.5 seconds