CTT/Server/Hotfix/Game/SkillSystem/Skill/Ability.cs

134 lines
3.1 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using System;
using System.Collections.Generic;
using ET;
using Sirenix.OdinInspector;
namespace Cal
{
public enum AbilityType
{
[LabelText("普通")]
GeneralAbility = 1,
[LabelText("引导")]
ChannelAbility = 1<<1,
[LabelText("被动")]
PassiveAblity = 1<<2,
[LabelText("开关")]
ToggleAbility = 1<<3,
}
#region Ability
public abstract class Ability
{
public abstract AbilityType abilityType { get; }
public abstract void OnAbilityInit();
public virtual void OnAbilityStart() { }
public virtual void OnAbilitySpell() { }
public virtual void OnAbilityFinish() { }
public virtual void OnAbilityChannelStart() { }
public virtual void OnAbilityChannelThink() { }
public virtual void OnAbilityChannelFinish() { }
public virtual void OnAbilityToggleOn() { }
public virtual void OnAbilityToggleOff() { }
}
public class GeneralAbility : Ability
{
public override AbilityType abilityType => AbilityType.ChannelAbility;
public int castPoint;
public override void OnAbilityInit()
{
}
public override void OnAbilityStart()
{
base.OnAbilityStart();
}
public override void OnAbilitySpell()
{
base.OnAbilitySpell();
}
public override void OnAbilityFinish()
{
base.OnAbilityFinish();
}
}
public class ChannelAbility : Ability
{
public override AbilityType abilityType => AbilityType.ChannelAbility;
public int castPoint;
public int channelInterval;
public int channelTime;
public override void OnAbilityInit()
{
}
public override void OnAbilitySpell()
{
base.OnAbilitySpell();
}
public override void OnAbilityChannelStart()
{
base.OnAbilityChannelStart();
}
public override void OnAbilityChannelThink()
{
base.OnAbilityChannelThink();
}
public override void OnAbilityChannelFinish()
{
base.OnAbilityChannelFinish();
}
public override void OnAbilityFinish()
{
base.OnAbilityFinish();
}
}
public class PassiveAblity : Ability
{
public override AbilityType abilityType => AbilityType.PassiveAblity;
public int duration;
public int cd ;
public override void OnAbilityInit()
{
}
public void StartCooldown()
{
}
}
public class ToggleAbility : Ability
{
public override AbilityType abilityType => AbilityType.ToggleAbility;
public override void OnAbilityInit()
{
}
public override void OnAbilityToggleOn()
{
base.OnAbilityToggleOn();
}
public override void OnAbilityToggleOff()
{
base.OnAbilityToggleOff();
}
}
#endregion
#region Buff
public class Buff
{
}
public class Modifier:Buff
{
}
#endregion
}