server-master/srcs/WingsAPI.Game/Battle/CastingComponent.cs
2026-02-10 18:21:30 +01:00

52 lines
No EOL
1 KiB
C#

using System;
namespace WingsEmu.Game.Battle;
public interface ICastingComponent
{
public SkillCast SkillCast { get; }
public bool IsCastingSkill { get; }
public void SetCastingSkill(SkillInfo skill, DateTime time);
public void RemoveCastingSkill();
}
public class CastingComponent : ICastingComponent
{
public SkillCast SkillCast { get; private set; }
public bool IsCastingSkill => SkillCast != null;
public void SetCastingSkill(SkillInfo skill, DateTime time)
{
if (SkillCast != null)
{
return;
}
var skillCast = new SkillCast(skill, time);
SkillCast = skillCast;
}
public void RemoveCastingSkill()
{
if (SkillCast == null)
{
return;
}
SkillCast = null;
}
}
public class SkillCast
{
public SkillCast(SkillInfo skill, DateTime skillEndCastTime)
{
Skill = skill;
SkillEndCastTime = skillEndCastTime;
}
public SkillInfo Skill { get; }
public DateTime SkillEndCastTime { get; }
}