using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Interface.Base;
namespace Milimoe.FunGame.Core.Interface.Entity
{
///
/// ISkill 是技能的通用接口,包含一些基本属性,实现类: 和
///
public interface ISkill : IBaseEntity
{
///
/// 所属的行动顺序表实例
///
public IGamingQueue? GamingQueue { get; }
///
/// 此技能所属的角色
///
public Character? Character { get; }
///
/// 技能描述
///
public string Description { get; }
///
/// 技能的通用描述
///
public string GeneralDescription { get; }
///
/// 技能等级,等于 0 时可以称之为尚未学习
///
public int Level { get; }
///
/// 是否可用 [ 此项为高优先级 ]
///
public bool Enable { get; }
///
/// 效果持续生效中 [ 此项为高优先级 ] [ 此项设置为true后不允许再次释放,防止重复释放 ]
///
public bool IsInEffect { get; }
///
/// 可选取自身
///
public bool CanSelectSelf { get; }
///
/// 可选取敌对角色
///
public bool CanSelectEnemy { get; }
///
/// 可选取友方角色
///
public bool CanSelectTeammate { get; }
///
/// 选取所有敌对角色,优先级大于
///
public bool SelectAllEnemies { get; }
///
/// 选取所有友方角色,优先级大于 ,默认包含自身
///
public bool SelectAllTeammates { get; }
///
/// 可选取的作用目标数量
///
public int CanSelectTargetCount { get; }
///
/// 可选取的作用范围 [ 单位:格 ]
///
public int CanSelectTargetRange { get; }
///
/// 实际魔法消耗 [ 魔法 ]
///
public double RealMPCost { get; }
///
/// 实际吟唱时间 [ 魔法 ]
///
public double RealCastTime { get; }
///
/// 实际能量消耗 [ 战技 ]
///
public double RealEPCost { get; }
///
/// 实际冷却时间
///
public double RealCD { get; }
///
/// 剩余冷却时间
///
public double CurrentCD { get; }
///
/// 实际硬直时间
///
public double RealHardnessTime { get; }
///
/// 获取可选择的目标列表
///
///
///
///
///
public List GetSelectableTargets(Character caster, List enemys, List teammates);
///
/// 实际可选取的目标数量
///
///
///
///
public int RealCanSelectTargetCount(List enemys, List teammates);
}
}