Beispiel #1
0
    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);
    }
Beispiel #2
0
 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;
         }
     }
 }