using UnityEngine;

namespace FL.Battle
{
    public interface IEntity
    {
        public int TableId { get; }
        public long EntityId { get; }
        /// <summary>
        /// 目标坐标
        /// </summary>
        public Vector3 BirthPosition { get; set; }
        public EEntityType EntityType { get; }
        //public EEntityState State { get; set; }
        /// <summary>
        /// 增加状态
        /// </summary>
        /// <param name="state"></param>
        /// <returns>有变化时返回true</returns>
        bool AddState(EEntityState state);
        /// <summary>
        /// 移除状态
        /// </summary>
        /// <param name="state"></param>
        /// <returns>有变化时返回true</returns>
        bool RemoveState(EEntityState state);
        bool IsState(EEntityState state);
        /// <summary>
        /// 是否待机，没有任何状态
        /// </summary>
        bool IsIdle { get; }
        bool IsDead { get; }
        EntityAttributes Attr { get; }
        /// <summary>
        /// 主动技能
        /// </summary>
        public int[] ActiveSkillIds { get; }
        /// <summary>
        /// 被动技能
        /// </summary>
        public int[] PassiveSkillIds { get; }
    }
}

