using System;
namespace BaseGames.Combat
{
// ── 元素/物理属性 ───────────────────────────────────────────────────────
public enum DamageType { Normal, True, Fire, Poison, Ice, Lightning, Void }
// ── 来源分类 ────────────────────────────────────────────────────────────
public enum DamageCategory
{
NormalAttack = 0,
SoulSkill = 1,
SpiritSkill = 2,
Projectile = 3,
EnvironmentTrap = 4,
StatusEffect = 5,
FallDamage = 6,
Reflected = 7,
}
// ── 行为标志 ────────────────────────────────────────────────────────────
[Flags]
public enum DamageFlags
{
None = 0,
Unblockable = 1 << 0,
CanBeParried = 1 << 1,
IgnoreIFrame = 1 << 2,
PerfectParryOnly = 1 << 3,
IsProjectile = 1 << 4,
CanClash = 1 << 5,
ForceBreak = 1 << 6,
NoKnockback = 1 << 7,
/// 击飞:使敌人进入 KnockUp 状态(腾空 + 落地)。仅在伤害量 >= HitTierConfig.launchThreshold 时生效。
Launch = 1 << 8,
///
/// 持续伤害(DoT)。承伤方据此区分"持续伤害"与"一次性打击":
/// 只扣血,不触发受击硬直/打断,也不授予新的无敌帧。
/// 通常与 同时设置(DoT 既不被无敌挡、也不刷新无敌)。
///
IsDoT = 1 << 9,
}
// ── 交互标签 ────────────────────────────────────────────────────────────
[Flags]
public enum DamageTags : uint
{
None = 0,
MeleeHit = 1 << 0,
RangedHit = 1 << 1,
SkillHit = 1 << 2,
ElementFire = 1 << 3,
ElementPoison = 1 << 4,
ElementVoid = 1 << 5,
AfterParry = 1 << 6,
ChargedAttack = 1 << 7,
SkyFormOnly = 1 << 8,
EarthFormOnly = 1 << 9,
DeathFormOnly = 1 << 10,
BreakLight = 1 << 11,
BreakMedium = 1 << 12,
BreakHeavy = 1 << 13,
BreakBreaker = 1 << 14,
}
public enum HitFxType { Spark, Slash, Blood, Magic, Heavy, Crit, Void, Heal, Parry, Fire, Ice }
// ── 攻击方打断等级 ──────────────────────────────────────────────────────
public enum BreakLevel
{
None = 0,
Light = 1,
Medium = 2,
Heavy = 3,
Breaker = 4,
}
// ── 承受方霸体等级 ──────────────────────────────────────────────────────
public enum PoiseLevel
{
None = 0,
Light = 1,
Medium = 2,
Heavy = 3,
Unbreakable = 100,
}
// ── 攻击方向(PlayerCombat / WeaponSO 使用)────────────────────────────
public enum AttackDirection { Ground, Up, Down, Air }
}