public bool CheckRunEffEnabl(int skillId, ISkillTarget target) { EffSkillInstance inst = new EffSkillInstance(); inst.m_data = EffSkill.s_tblEffSkills.Find(iterSkill1 => EffSkill.MatchId(iterSkill1, skillId)); if (null == inst.m_data) { // TODO : a warning message of no such skill return(false); } if (null != m_effShareSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchType(iterSkill0, inst.m_data.m_cdInfo.m_type))) { // TODO : a warning message of another instance of this effskill is still running return(false); } if (null != m_effSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchId(iterSkill0, skillId))) { // TODO : a warning message of another instance of this effskill is still running return(false); } // TODO : cd info check if (!inst.m_data.CheckTargetsValid(this, target)) { // TODO : a warning message of not target in scope return(false); } return(true); }
public EffSkillInstance RunEffOnProxy(int skillId, ISkillTarget target) { EffSkillInstance inst = new EffSkillInstance(); inst.m_data = EffSkill.s_tblEffSkills.Find(iterSkill1 => EffSkill.MatchId(iterSkill1, skillId)); if (null == inst.m_data) { // TODO : a warning message of no such skill return(null); } if (null != m_effShareSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchType(iterSkill0, inst.m_data.m_cdInfo.m_type))) { // TODO : a warning message of another instance of this effskill is still running return(null); } if (null != m_effSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchId(iterSkill0, skillId))) { // TODO : a warning message of another instance of this effskill is still running return(null); } // TODO : cd info check //if (!inst.m_data.CheckTargetsValid(this, target)) //{ // // TODO : a warning message of not target in scope // return null; //} inst.m_timeStartPrep = Time.time; inst.m_runner = new CoroutineStoppable(this, inst.m_data.ExecProxy(this, target, inst)); inst.m_sharedRunner = new CoroutineStoppable(this, inst.m_data.SharingCooling(this, inst)); return(inst); }
public bool IsSkillRunning(int skillId) { EffSkillInstance inst = m_effSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchId(iterSkill0, skillId)); return(inst != null && inst.m_section > EffSkillInstance.EffSection.None && inst.m_section < EffSkillInstance.EffSection.Completed); }
public bool IsSkillCooling(int skillId) { EffSkill skill = EffSkill.s_tblEffSkills.Find(iterSkill1 => EffSkill.MatchId(iterSkill1, skillId)); if (skill == null) { return(false); } if (null != m_effSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchId(iterSkill0, skillId))) { // TODO : a warning message of another instance of this effskill is still running return(true); } return(false); }
// TODO : Confirm how an enemy to attack building public EffSkillInstance RunEff(int skillId, ISkillTarget target) { EffSkillInstance inst = new EffSkillInstance(); inst.m_data = EffSkill.s_tblEffSkills.Find(iterSkill1 => EffSkill.MatchId(iterSkill1, skillId)); if (null == inst.m_data) { // TODO : a warning message of no such skill return(null); } if (null != m_effShareSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchType(iterSkill0, inst.m_data.m_cdInfo.m_type))) { // TODO : a warning message of another instance of this effskill is still running return(null); } if (null != m_effSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchId(iterSkill0, skillId))) { // TODO : a warning message of another instance of this effskill is still running return(null); } // TODO : cd info check if (!inst.m_data.CheckTargetsValid(this, target)) { // TODO : a warning message of not target in scope return(null); } if (!GameConfig.IsMultiMode || IsController) { if (GameConfig.IsMultiMode) { if (target is CommonInterface) { CommonInterface ta = target as CommonInterface; if (null != ta && null != ta.OwnerView) { RPCServer(EPacketType.PT_InGame_SkillCast, skillId, ta.OwnerView.viewID); } else { RPCServer(EPacketType.PT_InGame_SkillCast, skillId, uLink.NetworkViewID.unassigned); } } else if (target is DefaultPosTarget) { RPCServer(EPacketType.PT_InGame_SkillShoot, skillId, target.GetPosition()); } else { RPCServer(EPacketType.PT_InGame_SkillCast, skillId, uLink.NetworkViewID.unassigned); } } inst.m_timeStartPrep = Time.time; inst.m_runner = new CoroutineStoppable(this, inst.m_data.Exec(this, target, inst)); inst.m_sharedRunner = new CoroutineStoppable(this, inst.m_data.SharingCooling(this, inst)); } return(inst); }
public EffSkillInstance GetRunningEff(int skillId) { return(m_effSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchId(iterSkill0, skillId))); }
public bool IsEffRunning(int skillId) { return(m_effSkillInsts.Find(iterSkill0 => EffSkillInstance.MatchId(iterSkill0, skillId)) != null); }