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
playertargetentityposition + (3.0, 0.0, -0.15) with 2.0 multiplier - Yield all frames until
forcemoveis done - animstate set to 100
ScorpionClaw1sound plays- Yield for 0.75 seconds
- animstate set to 102
ScorpionClaw2sound plays- Yield for 0.05 seconds
- DoDamage 1 call happens
- If HPPercent is 0.5 or less:
- Yield for 0.35 seconds
ScorpionClaw1sound plays with 0.95 pitch- animstate set to 104
- Yield for 0.5 seconds
ScorpionClaw2sound 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, thePoisonTouchmedal 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
Poisonand the target had theSleepcondition without aHeavySleepermedal, itsSleepcondition is not removed when it otherwise would have been. NOTE: in practice, nothing changes because the DoDamage 1 call will remove theSleepcondition anyway - When inflicting
Sleep, there is no resistance increase - The condition infliction can still happen if the target has the Numb while having the
ShockTroopermedal equipped - When inflicting
Poison, thePoisonsound is not played when it should have been - When inflicting
Sleep, theSleepsound is not played when it should have been - When inflicting
Sleep,isasleepis 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
playertargetentityposition + (3.5, 0.0, -0.15) with 2.0 multiplier - Yield all frames until
forcemoveis done - animstate set to 107
ScorpionTail3sound plays- Yield for a random amount of time between 0.65 seconds and 0.85 seconds
- animstate set to 109
ScorpionTail4sound plays- Yield for 0.05 seconds
- DoDamage 1 call happens
- If
commandsuccessis 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
Dig2sound playsDiggingparticles plays at this enemy position -3.0 in x- A new
Prefabs/Objects/CrackedRockGameObject 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
Diggingparticles are moved offscreen at -999.0 in y - animstate set to 111
- Yield for 0.35 seconds
RockPlucksound plays- animstate set to 112
- ShakeScreen called with an ammount of 0.25 and a time of 0.2
DirtExplode2particles plays at this enemy position -3.0 in x- Over the course of 11.0 frames, the
Prefabs/Objects/CrackedRockmoves 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
Toss7sound plays- Over the course of 61.0 frames (46.0 instead if hardmode is true), the
Prefabs/Objects/CrackedRockmoves to (-4.5, 1.0, 0.0) via a BeizierCurve3 with a ymax of 6.0 Thud5sound playsimpactsmokeparticles plays at thePrefabs/Objects/CrackedRockposition- ShakeScreen called with an ammount of 0.25 and frametimer of 0.65
- A
Prefabs/Objects/CrackRockBreakis 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/CrackedRockis destroyed- PartyDamage 1 call happens
- Yield for 0.5 seconds