Example #1
0
        /// <summary>
        /// 当网络返回,逻辑正确的时候
        /// </summary>
        /// <param name="request">Request.</param>
        /// <param name="response">Response.</param>
        public override void Http_OnReceive_OK(BaseHttpRequest request, BaseResponse response)
        {
            base.Http_OnReceive_OK(request, response);

            HttpRequest req = request as HttpRequest;

            if (req != null)
            {
                //跳转场景,进入游戏
                if (req.Type == RequestType.LOGIN_GAME)
                {
                    AccountData ad          = Native.mInstace.m_thridParty.GetAccountData();
                    EngineModel engineModel = Core.Data.getIModelNetwork <EngineModel>();
                    Server      chosen      = engineModel.ChosenServer;

                    StateParam <GameState> state = new StateParam <GameState>();
                    LoginInfo info = new LoginInfo()
                    {
                        UniqueId   = ad.uniqueId,
                        curServer  = chosen.name,
                        LocalIOMgr = Core.DPM,
                        logUtc     = 123244123,
                    };
                    state.obj = info;
                    Core.GameFSM.handleStateChg(state, GameState.Logined);
                    readComplete();
                }
            }
        }
 public void OnUnregister(StateParam <GameState> obj)
 {
     if (HttpDataNo != null)
     {
         HttpDataNo.Clear();
     }
 }
Example #3
0
    public bool addState(PLAYER_STATE type, StateParam param)
    {
        if (mCurStateList.ContainsKey(type))
        {
            return(false);
        }
        // 创建状态,并且判断是否可以进入该状态,不能进入则直接返回
        PlayerState state = createState(type);

        state.setPlayer(mPlayer);
        if (!state.canEnter())
        {
            return(false);
        }
        // 先移除不能共存的状态
        Dictionary <PLAYER_STATE, PlayerState> tempList = new Dictionary <PLAYER_STATE, PlayerState>(mCurStateList);

        foreach (var item in tempList)
        {
            if (!canCoExist(item.Key, type))
            {
                removeState(item.Key);
            }
        }
        // 进入状态,并添加到状态列表
        state.enter(param);
        mCurStateList.Add(type, state);
        // 通知角色有状态添加
        mPlayer.notifyStateChanged();
        return(true);
    }
    public bool addState(Type type, StateParam param, out PlayerState state, float stateTime, uint id = 0)
    {
        state = createState(type, param, id);
        state.setPlayer(mPlayer);

        if (stateTime >= 0.0f)
        {
            state.setStateMaxTime(stateTime);
            state.setStateTime(stateTime);
        }
        if (!canAddState(state))
        {
            destroyState(state);
            return(false);
        }

        // 移除不能共存的状态
        removeMutexState(state);
        // 进入状态
        state.enter();

        // 添加到状态列表
        if (!mStateTypeList.tryGetValue(type, out SafeDeepList <PlayerState> stateList))
        {
            stateList = new SafeDeepList <PlayerState>();
            mStateTypeList.add(type, stateList);
        }
        stateList.add(state);
        mStateMap.Add(state.getID(), state);
        return(true);
    }
Example #5
0
 public override void ChangeState(string stateName, StateParam _param = null)
 {
     if (stateName == "constructing")
     {
         stateMachine.ChangeState(openSpaceConstructing, _param);
     }
 }
Example #6
0
    public override void enter(StateParam param)
    {
        // 状态持续时间为摔倒动作的持续时间
        AnimationClip clip = mAnimation.GetClip(GameDefine.ANIM_FALL_DOWN);

        mStateTime = clip.length;
    }
Example #7
0
 public override void enter(StateParam param)
 {
     // 添加竖直方向上的速度
     mPlayer.getCharacterData().mVerticalSpeed = (param as JumpParam).mJumpSpeed;
     // 跳跃动作
     mAnimation.CrossFade(GameDefine.ANIM_JUMP_UP);
     mAnimation.PlayQueued(GameDefine.ANIM_JUMP_LOOP);
 }
Example #8
0
 public void SetParam(StateParam _param)
 {
     if (_param == null)
     {
         return;
     }
     attackInfo = _param.targetInfo;
 }
Example #9
0
        public void OnQuit(StateParam <DeviceState> obj)
        {
            threadTimer.Dispose();
            threadTimer = null;

            deleteAllTask();
            TaskDic = null;
        }
Example #10
0
        public void OnUnregister(StateParam <GameState> obj)
        {
            threadTimer.Dispose();
            threadTimer = null;

            deleteAllTask();
            TaskDic = null;
        }
Example #11
0
 //传入barrackInfo
 public void SetParam(StateParam _param)
 {
     if (_param == null)
     {
         return;
     }
     towerInfo = (BarrackTowerInfo)_param.targetInfo;
 }
Example #12
0
 public void SetParam(StateParam _param)
 {
     if (_param == null)
     {
         return;
     }
     changeTowerId = _param.towerId;
 }
Example #13
0
 public void Process(EntityBase entity, StateParam param = default)
 {
     if (entity.entityType == EntityType.Player && !param._bool)
     {
         entity.canSkill = false;
     }
     entity.SkillAttack(param._int);
 }
Example #14
0
    public override void enter(StateParam param)
    {
        mAnimation.CrossFade(GameDefine.ANIM_TURN_RIGHT);
        mAnimation.CrossFadeQueued(GameDefine.ANIM_RIDE);
        RoleDisplay scene = mSceneSystem.getScene <RoleDisplay>(GameDefine.ROLE_DISPLAY);

        ObjectTools.MOVE_OBJECT_EX(mPlayer, scene.mRolePosition0, scene.mRolePosition2, 1.0f, onMoveDone);
    }
Example #15
0
 public void SetParam(StateParam _param)
 {
     if (_param == null)
     {
         return;
     }
     skillInfo = (SkillInfo)_param.skillInfo;
 }
Example #16
0
 public override void enter(StateParam param)
 {
     // 显示瞄准图标,只有玩家自己进入瞄准状态才显示
     if (mPlayer.isType(CHARACTER_TYPE.CT_MYSELF))
     {
         LayoutTools.LOAD_NGUI_SHOW(LAYOUT_TYPE.LT_AIMING, 20);
     }
 }
Example #17
0
 public void SetParam(StateParam _param)
 {
     if (_param == null)
     {
         return;
     }
     monsterInfo.SetAtkInfo(_param.targetInfo);
 }
Example #18
0
 public override void enter(StateParam param)
 {
     // 显示方向提示界面,只有玩家自己进入瞄准状态才显示
     if (mPlayer.isType(CHARACTER_TYPE.CT_MYSELF))
     {
         LayoutTools.LOAD_NGUI_SHOW(LAYOUT_TYPE.LT_DIRECTION_TIPS, 20);
     }
 }
Example #19
0
 public override void resetProperty()
 {
     base.resetProperty();
     mStateType  = null;
     mParam      = null;
     mOutStateID = null;
     mStateTime  = -1.0f;
     mStateID    = 0;
 }
Example #20
0
 public void Process(EntityBase entity, StateParam param = default)
 {
     entity.SetAction(100);
     entity.ReleaseControl();
     TimerSev.Instance.AddTimerTask((tid) =>
     {
         entity._gameObject.SetActive(false);
     }, Constans.DieDestoryTime);
 }
Example #21
0
    public override void enter(StateParam param)
    {
        // 确认当前道具选择
        pushCommand <CommandCharacterSelectItem>(mPlayer);
        CommandCharacterAddState cmdState = newCmd(out cmdState, true, true);

        cmdState.mState = PLAYER_STATE.PS_SPRINT;
        pushDelayCommand(cmdState, mPlayer);
    }
 public override void init()
 {
     base.init();
     mState      = null;
     mParam      = null;
     mOutStateID = null;
     mStateTime  = -1.0f;
     mStateID    = 0;
 }
Example #23
0
        /// ----------------------------------------------------------------
        /// ----------------------- inherite from interface ----------------
        /// ----------------------------------------------------------------
        public void OnLogin(StateParam <GameState> obj)
        {
            LoginInfo log = obj.obj as LoginInfo;

            cachedServerTime = (int)log.logUtc;
            if (threadTimer != null && IsRunning == false)
            {
                threadTimer.Change(IntervalPeriod, Timeout.Infinite);
            }
        }
Example #24
0
 public override void enter(StateParam param)
 {
     mShield      = mObjectManager.createObject(mPlayer.getObject(), GameDefine.R_PARTICLE_PREFAB_PATH + GameDefine.SHIELD);
     mShield.name = "Shield";
     mShield.transform.localPosition = new Vector3(0.0f, 1.0f, 0.0f);
     if (mPlayer.isType(CHARACTER_TYPE.CT_MYSELF))
     {
         GameTools.PLAY_AUDIO_UI(mScriptGlobalAudio.getAudioWindow(), SOUND_DEFINE.SD_SHIELD_OPEN);
     }
 }
Example #25
0
 public void Enter(EntityBase entity, StateParam param = default)
 {
     entity.curState = AnimState.Born;
     entity.SetAction(0);
     TimerSev.Instance.AddTimerTask((tid) =>
     {
         entity.SetAction(Constans.ActionDefault);
         entity.Idle();
     }, 2000, 1);
 }
Example #26
0
 public virtual void resetProperty()
 {
     mPlayer          = null;
     mData            = null;
     mActive          = true;
     mAnimation       = null;
     mStateTime       = -1.0f;
     mParam           = null;
     mIgnoreTimeScale = false;
 }
Example #27
0
    public override void enter(StateParam param)
    {
        // 禁用动态拖尾
        mPlayer.activeTrail(false, false);
        // 将速度降低到0
        CommandCharacterHardwareSpeed cmdHardwareSpeed = newCmd(out cmdHardwareSpeed);

        cmdHardwareSpeed.mSpeed         = 0.0f;
        cmdHardwareSpeed.mExternalSpeed = false;
        pushCommand(cmdHardwareSpeed, mPlayer);
    }
Example #28
0
    //public void ChangeState(StateBase _newState)
    //{
    //    if (currentState != null)
    //    {
    //        currentState.ExitExcute();
    //        previousState = currentState;
    //    }
    //    currentState = _newState;
    //    currentState.EnterExcute();
    //}

    public void ChangeState(StateBase _newState, StateParam _param = null)
    {
        if (currentState != null)
        {
            currentState.ExitExcute();
            previousState = currentState;
        }
        currentState = _newState;
        currentState.SetParam(_param);
        currentState.EnterExcute();
    }
Example #29
0
 public void OnQuit(StateParam <DeviceState> obj)
 {
     if (Server != null)
     {
         Server.Dispose();
     }
     if (Client != null)
     {
         Client.Quit();
     }
 }
Example #30
0
        public virtual void Init(Context context)
        {
            context.machine = this;
            foreach (State state in this.mStates.Values)
            {
                StateParam param = new StateParam();
                context[state] = param;
            }

            context.status = Status.Inited;
        }