- Add RoomStreamingManager to manage room loading and unloading based on player proximity. - Create StreamingBudgetConfigSO for memory and performance budgeting of the streaming system. - Introduce TransitionDirector to handle seamless and atmospheric fade transitions between rooms. - Develop WorldGraph to represent room connectivity and facilitate neighbor queries and distance calculations. - Implement RoomNode and RoomEdge classes to structure room data and connections.
85 lines
3.3 KiB
C#
85 lines
3.3 KiB
C#
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,
|
||
/// <summary>击飞:使敌人进入 KnockUp 状态(腾空 + 落地)。仅在伤害量 >= HitTierConfig.launchThreshold 时生效。</summary>
|
||
Launch = 1 << 8,
|
||
}
|
||
|
||
// ── 交互标签 ────────────────────────────────────────────────────────────
|
||
[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 }
|
||
}
|