Exemplo n.º 1
0
    /// <summary>
    /// 使用技能
    /// </summary>
    /// <param name="skillId">技能Id</param>
    /// <param name="tarGetRole()">目标角色</param>
    /// <param name="values">参数列表</param>
    /// <returns></returns>
    public bool Use(int skillId, params object[] values)
    {
        SkillBase skill = GetSkillById(skillId);

        if (skill == null)
        {
            Debug.LogError("技能不存在");
            return(false);
        }
        if (skill.Level == 0)
        {
            Debug.LogError("该技能尚未学会");
            return(false);
        }
        //如果玩家已经死亡
        if (role.IsSurvive == 1)
        {
            //技能是否允许死亡状态下发动
            if (!skill.IsDeal)
            {
                return(false);
            }
        }
        if (!skill.SkillCd())
        {
            Debug.Log(skill.GetName() + ":技能正在冷却");
            return(false);
        }
        if (IsDisable(skill))
        {
            Debug.Log(skill.GetName() + ":已被禁用");
            return(false);
        }
        if (!skill.CheckConsume())
        {
            Debug.Log(skill.GetName() + ":释放条件不满足");
            return(false);
        }
        if (!IsCancel(skill))
        {
            return(false);
        }
        //技能基础释放条件
        if (!skill.Limit())
        {
            return(false);
        }
        return(skill.Use(values));
    }