public bool ReleaseSkill(ISkill skill, ISkillReleaser releaser)
        {
            if (skill == null)
            {
                return(false);
            }

            if (skill.skillInfo != null)
            {
                Log.w("Skill Already Release.");
                return(false);
            }

            for (int i = m_SkillFilterList.Count - 1; i >= 0; --i)
            {
                if (!m_SkillFilterList[i].CheckSkillReleaseAble(skill, releaser))
                {
                    return(false);
                }
            }

            SkillInfo info = SkillInfo.Allocate();

            info.skill      = skill;
            skill.skillInfo = info;

            m_SkillInfoList.Add(info);

            skill.DoSkillRelease(this, releaser);

            return(true);
        }
Exemple #2
0
        public void DoSkillRelease(AbstractSkillSystem system, ISkillReleaser releaser)
        {
            //Log.i("OnSkillRelease");
            m_SkillSystem   = system;
            m_SkillReleaser = releaser;

            OnSkillRelease();

            if (m_SkillReleaser != null)
            {
                m_SkillReleaser.OnSkillRelease(this);
            }
        }
Exemple #3
0
        public void DoSkillRemove()
        {
            //Log.i("OnSkillRemove");
            OnSkillRemove();

            if (m_SkillReleaser != null)
            {
                m_SkillReleaser.OnSkillRemove(this);
                m_SkillReleaser = null;
            }

            m_SkillSystem = null;
            m_SkillInfo   = null;
        }
Exemple #4
0
        public void RemoveSkillByReleaser(ISkillReleaser releaser)
        {
            if (releaser == null)
            {
                return;
            }

            for (int i = m_SkillList.Count - 1; i >= 0; --i)
            {
                if (m_SkillList[i].skillReleaser == releaser)
                {
                    m_SkillList[i].skillInfo.skillState = SkillInfo.eSkillState.kRemove;
                }
            }
        }
        public void RemoveSkillByReleaser(ISkillReleaser releaser)
        {
            if (releaser == null)
            {
                return;
            }

            for (int i = m_SkillInfoList.Count - 1; i >= 0; --i)
            {
                if (m_SkillInfoList[i].skill != null)
                {
                    ISkill skill = m_SkillInfoList[i].skill;
                    if (skill.skillReleaser == releaser)
                    {
                        DoSkillRemove(m_SkillInfoList[i]);
                    }
                }
            }
        }
Exemple #6
0
        public bool ReleaseSkill(ISkill skill, ISkillReleaser releaser)
        {
            if (skill == null)
            {
                return(false);
            }

            for (int i = m_SkillFilterList.Count - 1; i >= 0; --i)
            {
                if (!m_SkillFilterList[i].CheckSkillReleaseAble(skill, releaser))
                {
                    return(false);
                }
            }

            m_SkillList.Add(skill);

            skill.skillInfo = CreateSkillInfo(NextSkillID);

            skill.DoSkillRelease(this, releaser);

            return(true);
        }