Skip to content

Freeze

A stopping condition that encases the actor in a block of ice. Most attacks will remove this condition and thaw out the ice, but with a +1 damage to the attack. It also allows the target to process a FrostBite medal when attacked.

Resistance

This condition has a dedicated resistance field for actors to use: freezeres. If it's 100 or above, the actor is immune to it. Inflictions that requires a resistance check will use this field.

Resistance increases for player party members

For player party member, the resistance can only be increased by processing the FreezeRes BadgeEffects with the value acting as the amount to increase it by. This only matters for enemy inflicting the player party member, it does not matter for user infliction using items.

Resistance increases for enemy party members

Here are the potential increases for the resistance associated (only applies to enemy party members):

  • On StartBattle:
    • If the calledfrom.entity or the battleentity is inice while it's a Krawler or CursedSkull enemy, the enemy party member's freezeres is increased by 70
    • If battleentity.forcefire or we are in the GiantLair area except for the GiantLairFridgeInside map while the enemy is a Krawler, CursedSkull or Cape, the enemy party member's freezeres is set to 110 making them immune (this override the clause above if it applied)
  • On CalculateBaseDamage when sucessfully inflicting this condition when property is Freeze (mutually exclusive, only the first that applies):
    • If the corresponding endata of the target's hasiceanim is true and we are either at the GiantLairFridgeInside map or in any maps outside of the GiantLair area, target.freezeres is increased by 70
    • Otherwise, if target.frozenlastturn is true, target.freezeres is increased by 25
    • Otherwise, target.freezeres is increased by 13. The increase is 18 instead if HardMode returns true

IsStopped

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. 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.

GetFreePlayerAmmount

This condition makes a player party member not count as free. This affects many logic such as knowing if a player can act.

SetCondition

When amending the condition:

  • If the actor is an enemy party member, isdefending is set to false and the infliction overwrites the turn counter to the new one (meaning it won't stack)
  • If the actor is a player party member, the infliction overwrites the turn counter if the new one is higher (meaning it won't stack, it can just reset it to a higher amount). An exception to this is when using an item that inflicted it which makes it stack

When inflicted as a new condition, if the actor is an enemy party member, its isdefending is set to false.

AddDelayedCondition

This condition supports delayed infliction via AddDelayedCondition. Check its documentation to learn more.

StatusEffect

This condition is supported by this method and it might be inflicted to the actor when called.

GetChoiceInput (Relay -> SelectPlayer)

This condition will deny the confirmation of a player party member when selecting who to relay to when handling the Relay choice for a SelectPlayer action.

DoDamage

This condition overrides block to be false meaning blocking is always denied for a player party member with this condition.

CalculateBaseDamage

This condition may be inflicted if the property is Freeze. This means it's also supported by the StatusMirror medal.

This condition prevents toppling on enemy party members with a ToppleFirst or ToppleAirOnly AttackProperty in their weakness.

This condition also implicates entire logic related to it unless the NoIceBreak override is present. Check the CalculateBaseDamage documentation to learn more, but in summary:

  • Special calculation logic when the target has the FrostBite medal
  • A +1 damage when FrostBite didn't apply followed by the removal of this condition alongside some other ice thawing logic

There is also special logic to remove this condition to the target in enemy to player flow when there's no NoIceBreak override. However, this logic is incorrect for enemy party members because it sets their cantmove to 0. If they have a moves higher than 1, they will loose all but 1 actor turn they should have available. The correct logic is the same than what AdvanceTurnEntity does which is setting cantmove to -moves + 1.

EndPlayerTurn

All enemy party members who still have this condition on EndPlayerTurn without actimmobile will have their cantmove set to 1. NOTE: It means removing the condition on the same main turn it was inflicted may leave the cantmove at 1 even if the enemy party member should have been able to act during their phase.

AdvanceTurnEntity

When the condition is processed (when hp is above 0):

  • The Freeze sound is played on the battleentity at 1.5 pitch
  • battleentity.shakeice is set to true
  • A yield of 0.75 seconds is set to happen after the method is done
  • The turn counter of the condition is decremented
  • If the turn counter still hasn't reached 0:
    • frozenlastturn is set to true which affects CalculateBaseDamage if property is Freeze since it will increase target.freezeres by 25 instead of 13 (18 when HardMode returns true). NOTE: while the FrigidCoffin skill inflicts this condition outside of the damage pipeline, it still explicitly follow this logic and is therefore affected the same way
    • The cantmove of the actor is set to 1 if it's an enemy party members and to 0 if it's a player party members. NOTE: It means removing the condition for enemy party members may leave the cantmove at 1 even if the enemy party member should have been able to act during their phase
  • Otherwise (the condition just expired)
    • frozenlastturn is set to false
    • BreakIce is called on the actor's battleentity if its icecube exists
    • The actor's cantmove is set to 1 (this will become 0 if their hp is above 0 since turn advancement has yet to happen)

RemoveCondition

Removing this condition via this method will have BreakIce called on the entity if it exists (not the battleentity).

HealConditions

This condition is supported by this method and it will be removed when called.

ClearStatus

When this method is called while the actor has this condition, BreakIce is called on the battleentity.

GetBlock

For all alive (hp above 0 and not dead) player party members with this condition and whose battleentity.overrideanim is false, their battleentity.animstate is set to 11 (Hurt).

UpdateAnim

For all alive (hp above 0) player party members with this condition and whose battleentity.overrideanim is false, their battleentity.animstate is set to 11 (Hurt).

AddExperience

All player party members who still had this condition when AddExperience occurs will have BreakIce called on their battleentity.

GetEnemySize

This condition causes this method to return the enemy party member's sizeonfreeze if it is above 0.1 instead of its size. This can affect the following skills and player party members' attacks where the attacker will move to a slightly different position towards the target during the action:

  • firststrike action (when the animid is Beetle)
  • Beetle's basic attack (when the animid is Beetle)
  • HeavyStrike
  • NeedlePincer

Drop

The entity will drop to 0.0 instead of its minheight when it has this condition.