Example #1
0
    private void RegistState(AbstractNode node)
    {
        if (typeof(SkillPhaseState).IsAssignableFrom(node.GetType()))
        {
            SkillPhaseState skillPhaseState = (SkillPhaseState)node;
            skillPhaseState.SetSkill(_skill);

            AbstractNode parentNode  = _hsmStateMachine.GetNode(node.ParentId);
            int          configIndex = (null != parentNode) ? ((SubMachineSkill)parentNode).SkillConfigIndex : -1;
            int          nodeUid     = NodeUid(configIndex, skillPhaseState.PhaseType);
            _stateDic[nodeUid] = skillPhaseState;
        }
        else if (typeof(SkillHoldSkillState).IsAssignableFrom(node.GetType()))
        {
            SkillHoldSkillState skillHoldSkillState = (SkillHoldSkillState)node;
            skillHoldSkillState.SetSkill(_skill);
        }
        else if (typeof(SkillHoldFishState).IsAssignableFrom(node.GetType()))
        {
            SkillHoldFishState skillHoldFishState = (SkillHoldFishState)node;
            skillHoldFishState.SetSkill(_skill);
        }
        else if (typeof(SkillNextStage).IsAssignableFrom(node.GetType()))
        {
            SkillNextStage skillNextStage = (SkillNextStage)node;
            skillNextStage.SetEnterCallBack(EnterNextStage);
        }
        else if (typeof(SkillExitState).IsAssignableFrom(node.GetType()))
        {
            SkillExitState skillExitState = (SkillExitState)node;
            skillExitState.SetEnterCallBack(EixtSkill);
        }
    }