LeafbugArcher¶
Assumptions¶
It is assumed this enemy is loaded with a non empty chargeonotherenemy as it is needed for their hitaction logic to work. Typically, it will be set to other LeafbugArcher, LeafbugNinja and LeafbugClubber.
HardMode changes¶
HardMode being true does the following changes:
- The odds to summon an enemy from the leafbug family when HPPercent is less than 0.5 and this enemy is the last
enemydataremaining increases to 5/10 from 3/10 - In the projectile throw move, the speed of the Projectile call changes to 20.0 from 27.0
hitaction support¶
This enemy supports hitaction logic and it will be performed when hitaction is true instead of any moves.
dontusecharge set to true¶
This move always sets dontusecharge to true which means charges will not get zeroed out in post action.
Logic sequence¶
This is done by yield returning the EnemyAngryCharge coroutine with the battleentity. It does the following:
- Set
dontusechargeto true - If
chargeis less than 3, it is incremented with the following:- animstate set to 5 (
Angry) Wamsound plays- Emoticon called on this enemy with the
Exclamationemote with 20 time - Yield all frames until
emoticoncooldownexpires StatUpsound plays- StatEffect called on this enemy with type 4 (green up arrow)
- Yield for 0.5 seconds
chargeis incremented
- animstate set to 5 (
Move selection¶
2 moves are possible:
- A single target projectile throw
- Adds a delayed projectile
The decision of which move to use depends first on charge. If it is above 0, move 1 is always used.
Otherwise, the deicision of which move to use is based on the following odds:
| Move | Odds |
|---|---|
| 1 | 5/8 |
| 2 | 3/8 |
Pre move logic¶
The following logic always happen at the start of the action if all of the following conditions are met to summon a new enemy from the leafbug family:
- This enemy is the last
enemydataleft - HPPercent is less than 0.5
- A 3/10 RNG check passes (5/10 instead if hardmode is true)
Here is what the logic does if all the of above are fufilled:
- animstate set to 105
- Yield for 0.25 seconds
Hornsound plays with 1.1 pitch and 0.7 volume- Yield for 0.5 seconds
checkingdeadis set to a new SummonEnemy call to summon an enemy from the leafbug family with typeOffscreenat a random location between (0.25, 0.0, -0.75) and (7.0, 0.0, 0.75) where the distance between any enemy party member is less than itssize* 1.75 with cantmove (meaning the enemy needs to wait on the next main turn to act). As for the enemy to summon, it's random among the following:- LeafbugNinja
- Another
LeafbugArcher - LeafbugClubber
- Yield for 0.85 seconds
- animstate set to 0 (
Idle) - Yield all frames until
checkingdeadis null (the coroutine completed)
Move 1 - Projectile throw¶
A single target projectile 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.
Projectile calls¶
| # | Conditions | damage | property | attacker | playertarget | obj | speed | height | extraargs | destroyparticle | audioonhit | audiomoving | spin | nosound |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Always happen | 2 | Pierce1 | This enemy | playertargetID after GetSingleTarget |
A new sprite object childed to the battlemap using the projectilepsrites[12] sprite (purple pointy projectile) positioned at this enemy + (-1.0, 1.2, -0.1) with a scale of 0.65x and a z angle of -90.0 |
27.0 (20.0 instead if hardmode is true) | 0.0 | null | null | null | null | Vector3.zero | false |
1: Enemy piercing damages are disabled so this property does nothing, see the CalculateBaseDamage documentation to learn more
Logic sequence¶
- A new sprite object childed to the
battlemapusing theprojectilepsrites[12]sprite (purple pointy projectile) with a scale of 0.65x positioned offscreen at -99.0 in y - GetSingleTarget called
- animstate set to 100
Rope1sound plays- Yield for 0.75 seconds
- animstate set to 102
Toss6sound plays- The projectile element gets positioned at this enemy + (-1.0, 1.2, -0.1) with a z angle of -90.0
- Projectile 1 call happens
- Yield all frames until the projectile is null (Projectile 1 call completed)
- Yield for 0.5 seconds
Move 2 - Delayed projectile¶
Adds a delayed projectile. No damages are dealt.
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.
nocharm set to true¶
This move always set the nocharm local to true which will prevent any UseCharm calls to occur in the post action phase. This means no HealHP charm can occur after this action.
AddDelayedProjectile calls¶
| # | Conditions | obj | targetpos | damage | turnstohit | areadamage | property | framespeed | summonedby | hitsound | hitparticle | whilesound |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Always happen | A new sprite object childed to the battlemap using the projectilepsrites[12] sprite (purple pointy projectile) positioned at (0.0, 15.0, 0.0) with a scale of 0.65x and a z angle of -20.0 |
GetRandomAvailablePlayer without nullable | 3 | 1 | 0 | Pierce1 | 50.0 | This enemy | null | null | @Toss4 |
1: Enemy piercing damages are disabled so this property does nothing, see the CalculateBaseDamage documentation to learn more
Logic sequence¶
- A new sprite object childed to the
battlemapusing theprojectilepsrites[12]sprite (purple pointy projectile) with a scale of 0.65x positioned offscreen at -99.0 in y - animstate set to 100
Rope1sound plays- Yield for 0.15 seconds
- animstate set to 103
- Yield for 0.5 seconds
Toss6sound plays- animstate set to 104
- The projectile has its z angle set to -150.0
- Over the course of 46.0 frames, the projectile moves from this enemy position + (-0.75, 2.15, -0.1) to (0.0, 15.0, 0.0) via a lerp
- The projectile has its z angle set to -20.0
- AddDelayedProjectile call 1 happens