public bool ChangeSkill(EnumSkillType eType, int skillId) { //int num = EnumSkillType.eSkillType_Skill == eType UseSkillBase useSkillBase = null; bool result = false; if (this.m_dicSkillState.ContainsKey(eType)) { this.m_dicSkillState[eType].TryGetValue(skillId, out useSkillBase); if (useSkillBase != null) { if (this.m_curState != null) { this.m_curState.OnLeave(); } this.m_curState = useSkillBase; // this.m_unCurSkillTypeId = this.m_eCurSkillType = eType; this.m_log.Debug(string.Format("ChangeSkill:skillType={0}", this.m_eCurSkillType.ToString())); this.m_curState.SkillId = skillId; this.m_curState.OnEnter(); result = true; return(result); } } ActionState.Singleton.ChangeState(enumSubActionState.eSubActionState_Enable); return(false); }
private void Register(UseSkillBase skillState) { if (skillState != null) { SkillBase skill = SkillGameManager.GetSkillBase(skillState.SkillId); if (null == skill) { this.m_log.Error("null == skillBase,找不到该技能"); } else { if (!this.m_dicSkillState.ContainsKey(skillState.SkillType)) { this.m_dicSkillState.Add(skillState.SkillType, new Dictionary <int, UseSkillBase>()); } this.m_dicSkillState[skillState.SkillType][skillState.SkillId] = skillState; } } }