LonglegSummoner
¶
This action has a special id being -2 and it is reserved specifically when using a LongLegSummoner
item.
No charges usage (items and skill)¶
This action sets dontusecharge
to true and as such, it will not consume any attacker's charge
as it would normally.
Logic Sequence¶
What happens here is:
checkingdead
is set to a new LongLeg coroutine with the attacker as the entity andenemydata[target]
as the target- Yield until
checkingdead
is null (happens when LongLeg is fully done)
So most of the logic is into the LongLeg coroutine which is what will be documented here.
LongLeg¶
A coroutine specific to a LongLegSummoner
item item logic. entity is the user and target is the receiver of the item's effects.
It interestingly supports the target being a player party member and an entity being an enemy party member which allows to have an enemy party member simulate the usage of the item as if the player party used it during enemy actions.
It is expected that the caller sets the coroutine to checkingdead
which will be set to null when the coroutine is done.
private IEnumerator LongLeg(EntityControl entity, MainManager.BattleData target)
DoDamage calls¶
# | Conditions | attacker | target | damageammount | property | overrides | block |
---|---|---|---|---|---|---|---|
1_a | target is a player party member | null | playerdata[playertargetID] |
6 | Flip1 | empty array | commandsuccess |
1_b | target is an enemy party member | null | target enemy party member | 6 | Flip | empty array | false |
1: This property gets overriden to null in CalculateBaseDamage as the target is a player party member so it does nothing.
Here is its logic:
dontusecharge
set to true- Camera moves slowly towards the target slightly to the left, up and behind
- entity animstate set to 28 (
TossItem
) - A new sprite is created rooted a bit up from the entity using the
LonglegSummoner
item'sitemsprites
Toss
sound plays- Over the course of 51.0 frames, the sprite moves towards the front of the target (relative to which side the target is) using a BeizierCurve3 with a ymax of 5.0. During the move, the z angle is set to framestep * -10.0 (* -1.0 if the target is on the left of the entity)
- entity animstate reset to the value before this coroutine
LongLegsGrow
sound playsPrefabs/Objects/LongLegs
instantiated offscreen with Vector3.zero scale either rotated 0.0 or 180.0 in y depending on which side the target is and its animator is obtained- DeathSmoke particles plays where the sprite landed
- The sprite is destroyed
- Yield for a frame
Prefabs/Objects/LongLegs
position set to where the sprite was- Over the course of 31.0 frames, the
Prefabs/Objects/LongLegs
moves up by 4.75 in y via a SmoothLerp while its scale goes to (1.0, 1.0, -1.0) via a SmoothLerp - The
Stomp
animation clip plays fromPrefabs/Objects/LongLegs
Grow1
sound plays- Yield for 0.75 seconds
- The
Stomp2
animation clip plays fromPrefabs/Objects/LongLegs
longLegsStomp
sound plays- Yield for 0.15 seconds
- DoDamage 1_a or 1_b happens depending on the party of target
- Yield for 0.75 seconds
- Over the course of 31.0 frames, the
Prefabs/Objects/LongLegs
moves down by 4.75 in y via a SmoothLerp while its scale goes to Vector3.zero via a SmoothLerp - DeathSmoke particles plays at the
Prefabs/Objects/LongLegs
position ChargeDown2
sound playsPrefabs/Objects/LongLegs
is destroyed- Yield for 0.5 seconds
checkingdead
is set to null which signals the caller that the coroutine is done