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); }
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); } }
public void DoSkillRemove() { //Log.i("OnSkillRemove"); OnSkillRemove(); if (m_SkillReleaser != null) { m_SkillReleaser.OnSkillRemove(this); m_SkillReleaser = null; } m_SkillSystem = null; m_SkillInfo = null; }
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]); } } } }
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); }