Add Flipped condition docs

This commit is contained in:
aldelaro5
2024-03-01 00:47:57 -05:00
parent 9e61cca15d
commit e14b720288
4 changed files with 46 additions and 3 deletions

View File

@@ -0,0 +1,41 @@
# Flipped
An ephemeral condition specific to enemy party members that is only inflicted with a `Flip` [AttackProperty](../../Damage%20pipeline/AttackProperty.md) to an enemy party member with a `Flip` [weakness](../../Damage%20pipeline/AttackProperty.md). It causes all the enemy party member's `def` to be ignored during damage calculation which is recognised by [TrueDef](../../Visual%20rendering/RefreshEnemyHP.md). This process can be hampered by [Topple](Topple.md)'s defense mechanism if it applies. NOTE: The condition logic has caveats, check the [CalculateBaseDamage](../../Damage%20pipeline/CalculateBaseDamage.md) documentation to learn more.
## [IsStopped](../IsStopped.md)
This condition is considered a stop condition and will always make this method returns true (unless skipimmobile is false while the actor'a `actimmobile` is true). This include the lite version used in the [enemy phase](../../Battle%20flow/Main%20turn%20life%20cycle.md#enemies-phase). Being stopped makes the actor unable to act regardless of their `cantmove` as well as a bunch of feature they no longer get access to.
NOTE: In practice, this being a stop condition doesn't do much because the battle system ensure it only has 1 turn on it and it gets removed manually before the enemy party member attacks.
## [Relay](../../Battle%20flow/Action%20coroutines/Relay.md)
This condition will not be transfered to the target of the relay if the relayer had a `RelayTransfer` [medal](../../../Enums%20and%20IDs/Medal.md). It should be noted that it is not possible to inflict this condition on a player party member under normal gameplay so this clause effectively does nothing.
## [CalculateBaseDamage](../../Damage%20pipeline/CalculateBaseDamage.md)
This condition will cause the battleentity.[animstate](../../../Entities/EntityControl/Animations/animstate.md) to be set to 25 (`SleepFallen`) instead of 14 (`Sleep`) if a [Sleep](Sleep.md) infliction occurs.
If property is `Flip` while the target has this condition, it will change the logic to call DefaultDamageCalc instead of the standard 1 `def` ignore logic that the property normally has. In DefaultDamageCalc, this condition will actually prevent the damage to be decreased by the target's `def` which means the overall effect is this condition causes the `def` to be ignored (but not other forms of defenses). This is recognised by [TrueDef](../../Visual%20rendering/RefreshEnemyHP.md#truedef), but this comes with caveats, check the method's documentation to learn more.
If this condition wasn't present, but property is `Flip` while the target has a `Flip` [weakness](../../Damage%20pipeline/AttackProperty.md), a weaknesshit is recognised and the condition will be inflicted for 1 turn unless the target has the `ToppleFirst` [weakness](../../Damage%20pipeline/AttackProperty.md) without a [Topple](Topple.md) condition (since this is where [Topple](Topple.md) is inflicted instead as a defensive mechanism). In the case where `ToppleFirst` exists AND it already has [Topple](Topple.md), Topple is removed and `Flipped` is added in its place. For more information, check the method's documentation.
## [AdvanceTurnEntity](../../Battle%20flow/Action%20coroutines/AdvanceMainTurn.md)
When the condition is processed (when `hp` is above 0), if there's more than 1 turn left on it, the actor turn count is decremented. Otherwise, this condition isn't processed in any way meaning it exceptionally doesn't feature a normal actor turn decrease (it is always manually removed).
## [DoAction](../../Battle%20flow/Action%20coroutines/DoAction.md)
Before an enemy party member acts, if it has this condition or [Topple](Topple.md) for exactly 1 actor turn left, both are removed alongside the following logic:
- [Jump](../../../Entities/EntityControl/EntityControl%20Methods.md#jump) is called on the enemy party member with a height of 10.0
- entity.`overrideanim` is set to false
- entity.`basestate` and entity.[animstate](../../../Entities/EntityControl/Animations/animstate.md) is set to 0 (`Idle`)
- startstate is set to 0 (`Idle`)
- 0.1 seconds are yielded
## [ClearStatus](../Conditions%20methods/ClearStatus.md)
This condition is excluded from removal meaning it will remain even after calling this method.
## [DoDamageAnim](../../Visual%20rendering/DoDamageAnim.md)
This condition may cause the actor's battleentity.[animstate](../../../Entities/EntityControl/Animations/animstate.md) and `basestate` to be set to 15 (`Fallen`) alongside setting `overrideanim` to false. Check the method's documentation to learn more.
## [UpdateAnim](../../Visual%20rendering/UpdateAnim.md)
For all alive (`hp` above 0) enemy party members with this condition and whose `droproutine` isn't in progress, their battleentity.[animstate](../../../Entities/EntityControl/Animations/animstate.md) is set to 15 (`Fallen`) (or 25 (`SleepFallen`) if they also have the [Sleep](Sleep.md) condition).
## [Numb](../../../Entities/EntityControl/EntityControl%20Methods.md#numb)
For every enemy party member with this condition, every 60 frames, their [animstate](../../../Entities/EntityControl/Animations/animstate.md) gets set to 16 (`HurtFallen`) instead of 11 (`Hurt`).

View File

@@ -55,6 +55,8 @@ When the condition is processed (when `hp` is above 0 and there is at least one
- The actor's `hp` is clamped from 1 to its `maxhp` (this implies it can't be lethal)
- A yield of 0.75 seconds is set to happen after the method is done
Exceptionally, the turn counter of the condition won't decrement if the actor has an `EternalPoison` [medal](../../../Enums%20and%20IDs/Medal.md).
## [HealConditions](../Conditions%20methods/HealConditions.md)
This condition is supported by this method and it will be removed when called.

View File

@@ -5,7 +5,7 @@ A 1 hit defensive mechanism in the form of a condition for an enemy party member
This condition will not be transfered to the target of the relay if the relayer had a `RelayTransfer` [medal](../../../Enums%20and%20IDs/Medal.md). It should be noted that it is not possible to inflict this condition on a player party member under normal gameplay so this clause effectively does nothing.
## [DoAction](../../Battle%20flow/Action%20coroutines/DoAction.md)
Before an enemy party member acts, if it has this condition or [Flipped](Flipped.md), both are removed alongside the following logic:
Before an enemy party member acts, if it has this condition or [Flipped](Flipped.md) for exactly 1 actor turn left, both are removed alongside the following logic:
- [Jump](../../../Entities/EntityControl/EntityControl%20Methods.md#jump) is called on the enemy party member with a height of 10.0
- entity.`overrideanim` is set to false
@@ -18,7 +18,7 @@ This condition prevents toppling an enemy party members with a `ToppleFirst` or
This condition is removed if [Freeze](Freeze.md) is inflicted.
This condition is removed if the target has it, property is `Flip` while the target has a `Flip` and `ToppleFirst` [weakness](../../Damage%20pipeline/AttackProperty.md) without the [Flipped](Flipped.md) condition. It essentially acts as replacing `Topple` with `Flipped` in this case since it also inflicts [Flipped](Flipped.md).
This condition is removed if the target has it, property is `Flip` while the target has a `Flip` and `ToppleFirst` [weakness](../../Damage%20pipeline/AttackProperty.md) without the [Flipped](Flipped.md) condition. It essentially acts as replacing `Topple` with `Flipped` in this case since it also inflicts [Flipped](Flipped.md). However, if the condition isn't present while the other conditions are fufilled, it is inflicted for 1 turn and on top of this, if the the target.`position` is `Ground`, battleentity.`basestate` is set to 21 (`Woobly`).
This condition is removed if the damage calculation logic needs to drop the enemy party member. Check the method documentation to learn about the conditions for that to happen.

View File

@@ -31,7 +31,7 @@ Here are the different BattleCondition that exists in the game and a summary of
|6|[AttackDown](BattleCondition/AttackDown.md)|A condition that gives a -1 damage malus on attacks by the actor while it is active when the [AttackProperty](../../Damage%20pipeline/AttackProperty.md) isn't `NoExceptions`|
|7|[DefenseDown](BattleCondition/DefenseDown.md)|A condition that removes a point of defense recognised by [TrueDef](../../Visual%20rendering/RefreshEnemyHP.md#truedef) which can result in a +1 damage effects while it is active when the [AttackProperty](../../Damage%20pipeline/AttackProperty.md) isn't `NoExceptions`. NOTE: This has several caveats, check the [CalculateBaseDamage](../../Damage%20pipeline/CalculateBaseDamage.md) documentation to learn more|
|8|[Topple](BattleCondition/Topple.md)|A 1 hit defensive mechanism in the form of a condition for an enemy party member where if it has a `ToppleFirst` or `ToppleAirOnly` (if their `position` is `Flying`) [weakness](../../Damage%20pipeline/AttackProperty.md) it won't get dropped or [Flipped](Flipped.md) immediately when it was supposed to otherwise. Instead, this condition will be inflicted without the drop or flip featuring a `Woobly` [animstate](../../../Entities/EntityControl/Animations/animstate.md) and it will be removed after most attacks which allows the drop or flip to occur on any subsequent hit|
|9|[Flipped](BattleCondition/Flipped.md)||
|9|[Flipped](BattleCondition/Flipped.md)|An ephemeral condition specific to enemy party members that is only inflicted with a `Flip` [AttackProperty](../../Damage%20pipeline/AttackProperty.md) to an enemy party member with a `Flip` [weakness](../../Damage%20pipeline/AttackProperty.md). It causes all the enemy party member's `def` to be ignored during damage calculation which is recognised by [TrueDef](../../Visual%20rendering/RefreshEnemyHP.md). This process can be hampered by [Topple](Topple.md)'s defense mechanism if it applies. NOTE: The condition logic has caveats, check the [CalculateBaseDamage](../../Damage%20pipeline/CalculateBaseDamage.md) documentation to learn more|
|10|[Shield](BattleCondition/Shield.md)||
|11|[Taunted](BattleCondition/Taunted.md)||
|12|[Sturdy](BattleCondition/Sturdy.md)||