PeacockSpider¶
Assumptions¶
It is assumed that this enemy is initially fought alone. This is because most of this enemy's moves directly impacts the first enemydata that isn't themselves which is intended to be summoned by this enemy. It is possible that inconsistent behaviors occurs if this enemy isn't fought alone initially.
HardMode changes¶
HardMode being true does the following changes:
- At the start of the action, if this enemy is the last
enemydataremaining, the enemy they will summon is always going to be a DivingSpider instead of only being one when HPPercent is less than 0.5 and being a JumpingSpider when it is 0.5 or above
Move selection¶
6 moves are possible:
- Heals the enemy party member this enemy summoned
- Inflicts an infinite AttackUp condition on the enemy party member this enemy summoned
- Inflicts an infinite DefenseUp condition on the enemy party member this enemy summoned
- Sets the
chargeof the enemy party member this enemy summoned to 2 - Sets the
movesof the enemy party member this enemy summoned to 2 which grants them 2 actor turns per main turns (excluding the current main turn) - A single target triple slash attack
The decision of which move to use is based on odds, but each moves except move 6 has an additional requirement that must be fufilled for the move to be used after it is selected. If the requirement isn't fufilled, the move is rerolled with the same odds. If the requirement is still failed after the second attempt, move 6 will be used. Here are the odds and requirements of each moves:
| Move | Odds | Requirement |
|---|---|---|
| 1 | 3/12 | HPPercent is 0.65 or less |
| 2 | 2/12 | The enemy party member this enemy summoned doesn't already have the AttackUp condition |
| 3 | 2/12 | The enemy party member this enemy summoned doesn't already have the DefenseUp condition |
| 4 | 2/12 | The enemy party member this enemy summoned has a charge of 0 |
| 5 | 2/12 | The enemy party member this enemy summoned has a moves of 1 |
| 6 | 1/12 | None, the move is always used when selected |
Pre move logic¶
There is logic that is always performed at the start of the action.
DoDamage calls¶
| # | Conditions | attacker | target | damageammount | property | overrides | block |
|---|---|---|---|---|---|---|---|
| 1 | Happens only if the summoned enemy IsStopped | null | The summoned enemy party member | 1 (this cannot be lethal to the target as enforced after the call) | NoExceptions | null | false |
Logic Sequence¶
- If this enemy is the last
enemydataremaining, an enemy will be summoned:- animstate set to 101
PeacockSpiderNPCSummonsound playscheckingdeadis set to a new SummonEnemy call to summon an enemy with the typeOffscreenat Vector3.zero. The enemy to summon is always a DivingSpider unless hardmode is false and HPPercent is 0.5 or above where the enemy is a JumpingSpider- Yield all frames until
checkingdeadis null (the coroutine completed) PeacockSpiderNPCSummonSuccesssound plays- animstate set to 0 (
Idle) flipset to false- Jump called on this enemy
- Yield for 0.5 seconds
- The
expof the summoned enemy is clamped from 0 to 3
- The first enemy party member who isn't this enemy is obtained which should always be the one that was just summoned or already summoned before and no one else. This will be used throughout the action
- If the summoned enemy IsStopped, they will be cured of their condition with the following:
PeacockSpiderSlapAtkRaisesound plays- animstate set to 5 (
Angry) - Yield for 0.5 seconds
PeacockSpiderSlapAtksound plays- animstate set to 102
- ClearStatus called on the summoned enemy
- DoDamage 1 call happens
- If the summoned enemy's
hpis 0 or below, it is set to 1 (meaning DoDamage 1 cannot be lethal to them) - The summoned enemy's
cantmoveis set to 0 meaning they can act on this main turn after this enemy's action is done - Yield for a second
Move 1 - Heal the summoned enemy¶
Heals the enemy party member this enemy summoned. No damages are dealt.
Logic sequence¶
- A new
Prefabs/Particles/MagicConstantGameObject is created rooted at this enemy position with a scale of 2.0x PeacockSpiderNPCBuffsound playsPrefabs/Particles/MagicConstant's ParticleSystem's MainModule's startColor is set to a constant color curve with a value of pure red with 0.5 opacity- animstate set to 103
- Camera moves to loop between this enemy and the summoned enemy with a bias towards this enemy
- Yield for a second
- Yield for 0.5 seconds
- Heal called to heal the summoned enemy to an amount of
hpequal to theirmaxhp* 0.15 ceiled Prefabs/Particles/MagicConstantmoved offscreen at -9999.0 in y then destroyed in 2.0 seconds- Yield for 1 second
flipset to false
Move 2 - Infinite AttackUp on the summoned enemy¶
Inflicts an infinite AttackUp condition on the enemy party member this enemy summoned. No damages are dealt.
Logic sequence¶
- A new
Prefabs/Particles/MagicConstantGameObject is created rooted at this enemy position with a scale of 2.0x PeacockSpiderNPCBuffsound playsPrefabs/Particles/MagicConstant's ParticleSystem's MainModule's startColor is set to a constant color curve with a value of FF4C00 (mostly red) with 0.5 opacity- animstate set to 100
- Camera moves to loop between this enemy and the summoned enemy with a bias towards this enemy, but zoomed in
- Yield for a second
- Yield for 0.5 seconds
- StatusEffect called to inflict the AttackUp condition on the summoned enemy for 999999 main turns (infinite) with effect
Prefabs/Particles/MagicConstantmoved offscreen at -9999.0 in y then destroyed in 2.0 seconds- Yield for 1 second
flipset to false
Move 3 - Infinite DefenseUp on the summoned enemy¶
Inflicts an infinite DefenseUp condition on the enemy party member this enemy summoned. No damages are dealt.
Logic sequence¶
- A new
Prefabs/Particles/MagicConstantGameObject is created rooted at this enemy position with a scale of 2.0x PeacockSpiderNPCBuffsound playsPrefabs/Particles/MagicConstant's ParticleSystem's MainModule's startColor is set to a constant color curve with a value of pure blue with 0.5 opacity- animstate set to 100
- Camera moves to loop between this enemy and the summoned enemy with a bias towards this enemy, but zoomed in
- Yield for a second
- Yield for 0.5 seconds
- StatusEffect called to inflict the DefenseUp condition on the summoned enemy for 999999 main turns (infinite) with effect
Prefabs/Particles/MagicConstantmoved offscreen at -9999.0 in y then destroyed in 2.0 seconds- Yield for 1 second
flipset to false
Move 4 - charge of the summoned enemy set to 2¶
Sets the charge of the enemy party member this enemy summoned to 2. No damages are dealt.
Logic sequence¶
- A new
Prefabs/Particles/MagicConstantGameObject is created rooted at this enemy position with a scale of 2.0x PeacockSpiderNPCBuff2sound playsPrefabs/Particles/MagicConstant's ParticleSystem's MainModule's startColor is set to a constant color curve with a value of pure green with 0.5 opacity- animstate set to 101
- Camera moves to loop between this enemy and the summoned enemy with a bias towards this enemy, but zoomed in
- Yield for a second
- Yield for 0.5 seconds
- The summoned enemy's
chargeis set to 2 - StatEffect called on the summoned enemy with type 4 (green up arrow)
Prefabs/Particles/MagicConstantmoved offscreen at -9999.0 in y then destroyed in 2.0 seconds- Yield for 1 second
flipset to false
Move 5 - moves of the summoned enemy set to 2¶
Sets the moves of the enemy party member this enemy summoned to 2 which grants them 2 actor turns per main turns (excluding the current main turn). No damages are dealt.
Logic sequence¶
- A new
Prefabs/Particles/MagicConstantGameObject is created rooted at this enemy position with a scale of 2.0x PeacockSpiderDoubleTurnDancesound playsPrefabs/Particles/MagicConstant's ParticleSystem's MainModule's startColor is set to a constant color curve with a value of FFBF00 (mostly orange) with 0.5 opacity- animstate set to 101
- Camera moves to loop between this enemy and the summoned enemy with a bias towards this enemy, but zoomed in
- Yield for a second
- Yield for 0.5 seconds
- The summoned enemy's
movesis set to 2 which grants them 2 actor turns per main turns (excluding the current main turn) StatUpsound plays- StatEffect called on the summoned enemy with type 5 (yellow up arrow)
Prefabs/Particles/MagicConstantmoved offscreen at -9999.0 in y then destroyed in 2.0 seconds- Yield for 1 second
flipset to false
Move 6 - Triple slash attack¶
A single target triple slash attack.
DoDamage calls¶
| # | Conditions | attacker | target | damageammount | property | overrides | block |
|---|---|---|---|---|---|---|---|
| 1 | Always happen 3 times | This enemy | playertargetID after GetSingleTarget (target is the same for each calls) |
2 | null | null | commandsuccess |
Logic sequence¶
It is possible that a new Prefabs/Particles/MagicConstant GameObject is created rooted at this enemy position with a scale of 2.0x if this move is used after failing to use another move twice in a row. If this is the case, the GameObject gets destroyed first.
Here's the rest of the move logic:
- GetSingleTarget called
- Camera moves to look near
playerdata[playertargetID] - MoveTowards
playertargetentityposition + (2.0, 0.0, -0.1) with 2.0 multiplier - Yield all frames until
forcemoveis done PeacockSpiderSlapAtkRaisesound plays- animstate set to 5 (
Angry) Gleamparticles plays with theGleamsound at this enemy + (0.2, 1.5, -0.2) with 0.5 alivetime- Yield for 0.5 seconds
- Done 3 times:
PeacockSpiderSlapAtksound plays- animstate set to 102 (except for the second hit where it's set to 104 instead)
modely angle set to 30.0 (except for the second hit where it's set to -30.0 instead)- DoDamage 1 call happens
- Camera zooms in a bit
- Yield for 0.5 seconds
- Yield for 0.1 seconds
modelangles reset to Vector3.zeroflipset to false