Module nari.types.actioneffect
Stores data about ActionEffects
Expand source code
"""Stores data about ActionEffects"""
from enum import IntEnum, IntFlag
# pylint: disable=invalid-name
class EffectResultCategory(IntEnum):
"""The different effect types an ability can have"""
Nothing = 0
Miss = 1
FullResist = 2
Damage = 3
Heal = 4
BlockedDamage = 5
ParriedDamage = 6
Invulnerable = 7
NoEffectText = 8
Unknown_0 = 9
MpLoss = 10
MpGain = 11
TpLoss = 12
TpGain = 13
StatusApply = 14
ApplyStatusEffectTarget = 15
ApplyStatusEffectSource = 16 # effect entry on target but buff applies to source, like storm's eye
StatusNoEffect = 20
RawEnmity = 24
"""Used by Provoke. ActionEffect.value equals the amount of enmity gained."""
StartActionCombo = 27
ComboSucceed = 28
Knockback = 33
Mount = 40
VFX = 59 # links to VFX sheet
class EffectResultFlag(IntFlag):
"""Extra bitwise flags that modify the ability"""
NoEffect = 0x0
Absorbed = 0x04
ExtendedValue = 0x40
EffectOnSource = 0x80
Reflected = 0xA0
class HitSeverity(IntFlag):
"""Determines how hard the ability 'hit'"""
NormalDamage = 0
NormalHeal = 0
CritDamage = 1
CritHeal = 1
DirectHitDamage = 2
CritDirectHitDamage = 3
# pylint: enable=invalid-name
class ActionEffect(): # pylint: disable=too-few-public-methods
"""Properties that modify an ability use"""
def __init__(self, *,
effect_category: EffectResultCategory,
severity: HitSeverity,
flags: int,
value: int,
multiplier: int,
additional_params: list[int]):
self.effect_category = effect_category
self.severity = severity
self.flags = flags
self.value = value
self.multiplier = multiplier
self.additional_params = additional_params
@property
def damage(self):
"""Property that gives the damage of an ActionEffect"""
# Total Damage = 65535 * Multiplier * (Flags & 0x40) + Value
is_extended = (self.flags & EffectResultFlag.ExtendedValue) >> 6
return 65535 * self.multiplier * is_extended + self.value
Classes
class ActionEffect (*, effect_category: EffectResultCategory, severity: HitSeverity, flags: int, value: int, multiplier: int, additional_params: list[int])
-
Properties that modify an ability use
Expand source code
class ActionEffect(): # pylint: disable=too-few-public-methods """Properties that modify an ability use""" def __init__(self, *, effect_category: EffectResultCategory, severity: HitSeverity, flags: int, value: int, multiplier: int, additional_params: list[int]): self.effect_category = effect_category self.severity = severity self.flags = flags self.value = value self.multiplier = multiplier self.additional_params = additional_params @property def damage(self): """Property that gives the damage of an ActionEffect""" # Total Damage = 65535 * Multiplier * (Flags & 0x40) + Value is_extended = (self.flags & EffectResultFlag.ExtendedValue) >> 6 return 65535 * self.multiplier * is_extended + self.value
Instance variables
var damage
-
Property that gives the damage of an ActionEffect
Expand source code
@property def damage(self): """Property that gives the damage of an ActionEffect""" # Total Damage = 65535 * Multiplier * (Flags & 0x40) + Value is_extended = (self.flags & EffectResultFlag.ExtendedValue) >> 6 return 65535 * self.multiplier * is_extended + self.value
class EffectResultCategory (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
The different effect types an ability can have
Expand source code
class EffectResultCategory(IntEnum): """The different effect types an ability can have""" Nothing = 0 Miss = 1 FullResist = 2 Damage = 3 Heal = 4 BlockedDamage = 5 ParriedDamage = 6 Invulnerable = 7 NoEffectText = 8 Unknown_0 = 9 MpLoss = 10 MpGain = 11 TpLoss = 12 TpGain = 13 StatusApply = 14 ApplyStatusEffectTarget = 15 ApplyStatusEffectSource = 16 # effect entry on target but buff applies to source, like storm's eye StatusNoEffect = 20 RawEnmity = 24 """Used by Provoke. ActionEffect.value equals the amount of enmity gained.""" StartActionCombo = 27 ComboSucceed = 28 Knockback = 33 Mount = 40 VFX = 59 # links to VFX sheet
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var ApplyStatusEffectSource
var ApplyStatusEffectTarget
var BlockedDamage
var ComboSucceed
var Damage
var FullResist
var Heal
var Invulnerable
var Knockback
var Miss
var Mount
var MpGain
var MpLoss
var NoEffectText
var Nothing
var ParriedDamage
var RawEnmity
-
Used by Provoke. ActionEffect.value equals the amount of enmity gained.
var StartActionCombo
var StatusApply
var StatusNoEffect
var TpGain
var TpLoss
var Unknown_0
var VFX
class EffectResultFlag (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
Extra bitwise flags that modify the ability
Expand source code
class EffectResultFlag(IntFlag): """Extra bitwise flags that modify the ability""" NoEffect = 0x0 Absorbed = 0x04 ExtendedValue = 0x40 EffectOnSource = 0x80 Reflected = 0xA0
Ancestors
- enum.IntFlag
- builtins.int
- enum.Flag
- enum.Enum
Class variables
var Absorbed
var EffectOnSource
var ExtendedValue
var NoEffect
var Reflected
class HitSeverity (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
Determines how hard the ability 'hit'
Expand source code
class HitSeverity(IntFlag): """Determines how hard the ability 'hit'""" NormalDamage = 0 NormalHeal = 0 CritDamage = 1 CritHeal = 1 DirectHitDamage = 2 CritDirectHitDamage = 3
Ancestors
- enum.IntFlag
- builtins.int
- enum.Flag
- enum.Enum
Class variables
var CritDamage
var CritDirectHitDamage
var CritHeal
var DirectHitDamage
var NormalDamage
var NormalHeal