Example #1
0
        // 进入场景,场景资源加载成功
        public void quitedAndEnteredStageHandle(EGameStage srcGameState, EGameStage destGameState)
        {
            // 播放音乐
            //SoundParam param = Ctx.m_instance.m_poolSys.newObject<SoundParam>();
            //param.m_path = Path.Combine(Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathAudio], "ZuiZhenDeMeng.mp3");
            //Ctx.m_instance.m_soundMgr.play(param);
            //Ctx.m_instance.m_poolSys.deleteObj(param);

            if (EGameStage.eStage_Login == srcGameState)
            {
                initOnFirstEnterGameScene();
            }

            if (EGameStage.eStage_Game == destGameState)
            {
                Ctx.m_instance.m_logSys.log("场景加载成功");
                loadAllUIScene();
                Ctx.m_instance.m_camSys.m_boxCam.setGameObject(UtilApi.GoFindChildByPObjAndName("mcam"));
                Ctx.m_instance.m_sceneEventCB.onLevelLoaded();
                Ctx.m_instance.m_camSys.setSceneCamera2UICamera();
            }
            else if (EGameStage.eStage_DZ == destGameState)
            {
                Ctx.m_instance.m_camSys.setSceneCamera2MainCamera();

                Ctx.m_instance.m_dataPlayer.m_dzData.clear();
                Ctx.m_instance.m_dataPlayer.m_dzData.m_canReqDZ = true;         // 进入对战就设置这个标示位为可以继续战斗
                Ctx.m_instance.m_camSys.m_dzCam = new DzCam();
                loadAllDZUIScene();
            }
        }
        /// <summary>
        /// do some damage to other ships?
        /// </summary>
        public void fu_ProcessCannons(EGameStage _moveStep)
        {
            Debug.Log("in processCannons");
            CPlayer player          = CGameController.Get.mu_PlayerDict[mu_deviceId];
            bool    portCannon      = false;
            bool    starboardCannon = false;

            switch (_moveStep)
            {
            case EGameStage.MOVE_1:
            {
                portCannon      = player.pu_movement1LeftMode == 2;
                starboardCannon = player.pu_movement1RightMode == 2;
            }
            break;

            case EGameStage.MOVE_2:
            {
                portCannon      = player.pu_movement2LeftMode == 2;
                starboardCannon = player.pu_movement2RightMode == 2;
            }
            break;

            case EGameStage.MOVE_3:
            {
                portCannon      = player.pu_movement3LeftMode == 2;
                starboardCannon = player.pu_movement3RightMode == 2;
            }
            break;

            case EGameStage.MOVE_4:
            {
                portCannon      = player.pu_movement4LeftMode == 2;
                starboardCannon = player.pu_movement4RightMode == 2;
            }
            break;
            }

            Debug.Log("port = " + portCannon.ToString() + " starboard = " + starboardCannon.ToString());
            int xStep = 0;
            int yStep = 0;

            if (starboardCannon)
            {
                EOrientation or = (EOrientation)(((int)pu_orientation + 1) % (int)EOrientation.MAX_ORIENTATION);
                fi_GetOffsetForOrientation(or, out xStep, out yStep);
                fi_TryShootEnemyShip(xStep, yStep, 3);
            }
            if (portCannon)
            {
                EOrientation or = (EOrientation)(((int)pu_orientation + (int)EOrientation.MAX_ORIENTATION - 1) % (int)EOrientation.MAX_ORIENTATION);
                fi_GetOffsetForOrientation(or, out xStep, out yStep);
                fi_TryShootEnemyShip(xStep, yStep, 3);
            }
//            ((CShipEntityView)mu_view).fu_FireCannons(portCannon, starboardCannon);
            ((CShipEntityView)mu_view).fu_FireCannons(true, true);
        }
Example #3
0
 public void toggleGameStage(EGameStage newStage)
 {
     if (newStage != m_eCurGameStage)
     {
         m_ePreGameStage = m_eCurGameStage;
         m_eCurGameStage = newStage;
         quitingAndEnteringCurStage();
     }
 }
Example #4
0
 public void toggleGameStage(EGameStage newStage)
 {
     if (newStage != m_eCurGameStage)
     {
         m_ePreGameStage = m_eCurGameStage;
         m_eCurGameStage = newStage;
         quitingAndEnteringCurStage();
     }
 }
        /// <summary>
        /// try tossing a hook and perhaps pull some other ship closer
        /// </summary>
        public void fu_ProcessHooks(EGameStage _moveStage)
        {
            CPlayer player        = CGameController.Get.mu_PlayerDict[mu_deviceId];
            bool    portHook      = false;
            bool    starboardHook = false;

            switch (_moveStage)
            {
            case EGameStage.MOVE_1:
            {
                portHook      = player.pu_movement1LeftMode == 2;
                starboardHook = player.pu_movement1RightMode == 2;
            }
            break;

            case EGameStage.MOVE_2:
            {
                portHook      = player.pu_movement2LeftMode == 2;
                starboardHook = player.pu_movement2RightMode == 2;
            }
            break;

            case EGameStage.MOVE_3:
            {
                portHook      = player.pu_movement3LeftMode == 2;
                starboardHook = player.pu_movement3RightMode == 2;
            }
            break;

            case EGameStage.MOVE_4:
            {
                portHook      = player.pu_movement4LeftMode == 2;
                starboardHook = player.pu_movement4RightMode == 2;
            }
            break;
            }

            int xStep = 0;
            int yStep = 0;

            if (starboardHook)
            {
                EOrientation or = (EOrientation)(((int)pu_orientation + 1) % (int)EOrientation.MAX_ORIENTATION);
                fi_GetOffsetForOrientation(or, out xStep, out yStep);
                fi_TryHookEnemyShip(xStep, yStep, 2);
            }
            if (portHook)
            {
                EOrientation or = (EOrientation)(((int)pu_orientation + (int)EOrientation.MAX_ORIENTATION - 1) % (int)EOrientation.MAX_ORIENTATION);
                fi_GetOffsetForOrientation(or, out xStep, out yStep);
                fi_TryHookEnemyShip(xStep, yStep, 2);
            }
        }
    void Awake()
    {
        if (m_instance == null)
        {
            m_instance = this;
        }
        else
        {
            Destroy(gameObject);
        }

        DontDestroyOnLoad(gameObject);
        m_gameStage = EGameStage.Start;
        UIManager.Instance.ToggleUI((int)Instance.m_gameStage);
    }
Example #7
0
        // 进入场景,但是场景还没有加载完成
        public void quitingAndEnteringStageHandle(EGameStage srcGameState, EGameStage destGameState)
        {
            //Ctx.m_instance.m_soundMgr.unloadAll();          // 卸载所有的音频

            if (EGameStage.eStage_Game == srcGameState)
            {
                // 必然是从游戏场景进入战斗场景
                Ctx.m_instance.m_uiMgr.unloadUIBySceneType(UISceneType.eUIScene_Game, UISceneType.eUIScene_DZ);
            }
            else if (EGameStage.eStage_DZ == srcGameState)
            {
                Ctx.m_instance.m_uiMgr.unloadUIBySceneType(UISceneType.eUIScene_DZ, UISceneType.eUIScene_Game);        // 退出测试
                Ctx.m_instance.m_uiSceneMgr.unloadAll();
            }
        }
    //Start a game and initialize player and UI
    private void startGame()
    {
        Vector3 _spawnPoint = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width / 4, 0, 0));

        _spawnPoint.y = 0;
        _spawnPoint.z = 1;
        GameObject _player = Instantiate(PlayerPrefab, _spawnPoint, Quaternion.identity);

        m_player           = _player.GetComponent <Player>();
        m_player.name      = "Player";
        m_player.SpawnSpot = _spawnPoint;
        LevelManager.ToggleSpawning(true);
        m_gameStage = EGameStage.Play;
        UIManager.Instance.ToggleUI((int)m_gameStage);
    }
 private void restartGame()
 {
     m_gameStage = EGameStage.Start;
     SceneManager.LoadScene(SceneManager.GetActiveScene().name);
 }
Example #10
0
        // 进入场景,场景资源加载成功
        public void quitedAndEnteredStageHandle(EGameStage srcGameState, EGameStage destGameState)
        {
            // 播放音乐
            //SoundParam param = Ctx.m_instance.m_poolSys.newObject<SoundParam>();
            //param.m_path = Path.Combine(Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathAudio], "ZuiZhenDeMeng.mp3");
            //Ctx.m_instance.m_soundMgr.play(param);
            //Ctx.m_instance.m_poolSys.deleteObj(param);

            if (EGameStage.eStage_Login == srcGameState)
            {
                initOnFirstEnterGameScene();
            }

            if (EGameStage.eStage_Game == destGameState)
            {
                Ctx.m_instance.m_logSys.log("场景加载成功");
                loadAllUIScene();
                Ctx.m_instance.m_camSys.m_boxCam.setGameObject(UtilApi.GoFindChildByPObjAndName("mcam"));
                Ctx.m_instance.m_sceneEventCB.onLevelLoaded();
                Ctx.m_instance.m_camSys.setSceneCamera2UICamera();
            }
            else if (EGameStage.eStage_DZ == destGameState)
            {
                Ctx.m_instance.m_camSys.setSceneCamera2MainCamera();

                Ctx.m_instance.m_dataPlayer.m_dzData.clear();
                Ctx.m_instance.m_dataPlayer.m_dzData.m_canReqDZ = true;         // 进入对战就设置这个标示位为可以继续战斗
                Ctx.m_instance.m_camSys.m_dzCam = new DzCam();
                loadAllDZUIScene();
            }
        }
Example #11
0
        // 进入场景,但是场景还没有加载完成
        public void quitingAndEnteringStageHandle(EGameStage srcGameState, EGameStage destGameState)
        {
            //Ctx.m_instance.m_soundMgr.unloadAll();          // 卸载所有的音频

            if (EGameStage.eStage_Game == srcGameState)
            {
                // 必然是从游戏场景进入战斗场景
                Ctx.m_instance.m_uiMgr.unloadUIBySceneType(UISceneType.eUIScene_Game, UISceneType.eUIScene_DZ);
            }
            else if (EGameStage.eStage_DZ == srcGameState)
            {
                Ctx.m_instance.m_uiMgr.unloadUIBySceneType(UISceneType.eUIScene_DZ, UISceneType.eUIScene_Game);        // 退出测试
                Ctx.m_instance.m_uiSceneMgr.unloadAll();
            }
        }
Example #12
0
 public void fu_processNextStage(EGameStage _newStage)
 {
 }
    public void fu_ProcessNextStage()
    {
        int gs = (int)mi_gameStage;

        gs++;
        if (gs > 3)
        {
            gs = -1;
            mi_round++;
            mi_gameStageTimer = 60.0f;

            int rnd;
            foreach (var p in mu_PlayerDict.Values)
            {
                rnd = Random.Range(4, 7);
                for (int i = rnd; i > 0; i--)
                {
                    rnd = Random.Range(0, 5);
                    switch (rnd)
                    {
                    case 0:
                        p.pu_tokenGunAmount = Mathf.Min(1 + p.pu_tokenGunAmount, CPlayer.pu_tokenGunMax);
                        break;

                    case 1:
                        p.pu_tokenHookAmount = Mathf.Min(1 + p.pu_tokenHookAmount, CPlayer.pu_tokenHookMax);
                        break;

                    case 2:
                        p.pu_tokenLeftAmount = Mathf.Min(1 + p.pu_tokenLeftAmount, CPlayer.pu_tokenLeftMax);
                        break;

                    case 3:
                        p.pu_tokenRightAmount = Mathf.Min(1 + p.pu_tokenRightAmount, CPlayer.pu_tokenRightMax);
                        break;

                    case 4:
                        p.pu_tokenStraightAmount = Mathf.Min(1 + p.pu_tokenStraightAmount, CPlayer.pu_tokenStraightMax);
                        break;
                    }
                }
            }
        }
        else
        {
            L.Log("Set");
            mi_gameStageTimer = 1.0f;
            mu_PlayerDict.Values.ForEach(_o => _o.pu_gameState = 1);
        }
        mu_PlayerDict.Values.ForEach(_o =>
        {
            _o.pu_isReady = 0;
            _o.fu_UpdateClient();
        });



        mi_gameStage = (EGameStage)gs;

        var ets = mu_ocean.fu_GetListOfType(EOceanEntityType.Ship);

        if (mi_gameStage != EGameStage.SELECTION_PHASE)
        {
            foreach (CShipEntity e in ets.Randomize())      // Lazy as f**k
            {
                e.fu_ProcessStreamsAndSwirls();
            }
            foreach (CShipEntity e in ets.Randomize())
            {
                e.fu_ProcessMove(mi_gameStage);
            }
            foreach (CShipEntity e in ets.Randomize())
            {
                e.fu_ProcessHooks(mi_gameStage);
            }
            foreach (CShipEntity e in ets.Randomize())
            {
                e.fu_ProcessCannons(mi_gameStage);
            }
            foreach (CShipEntity e in ets.Randomize())
            {
                //             if (e.fu_KillCheck())
                //             {
                //                 e.fu_Kill();
                //             }
            }
        }
    }
Example #14
0
    /// <summary>
    /// EArea lastChipEArea = EArea.Count means : para lastChipEArea is null
    /// </summary>
    /// <param name="eGameStage"></param>
    /// <param name="lastChipEArea"></param>
    /// <returns></returns>
    public List <EArea> GetValidAreaList(EGameStage eGameStage, EArea lastChipEArea = EArea.Count)
    {
        if (lastChipEArea == EArea.Count)
        {
            List <EArea> currentChipsTableAreaList = CanvasControl.Instance.gameCrap.CurrentAllChipsTableAreaList;
            List <EArea> resAreaList = new List <EArea>();

            if (CanvasControl.Instance.gameCrap.CurrentGameStage == EGameStage.PointOff_ComePointOff ||
                CanvasControl.Instance.gameCrap.CurrentGameStage == EGameStage.PointOff_ComePointOn)
            {
                if (currentChipsTableAreaList.Contains(EArea.PassLine) ||
                    currentChipsTableAreaList.Contains(EArea.DontPassH) ||
                    currentChipsTableAreaList.Contains(EArea.DontPassV))
                {
                    resAreaList.AddRange(basicPassAreaList);
                    resAreaList.AddRange(singleRollAreaList);
                    resAreaList.AddRange(multiRollAreaList);
                }
                else
                {
                    resAreaList.AddRange(basicPassAreaList);
                }

                return(resAreaList);
            }

            if (CanvasControl.Instance.gameCrap.CurrentGameStage == EGameStage.PointOn_ComePointOff)
            {
                resAreaList.AddRange(basicComeAreaList);
                resAreaList.AddRange(singleRollAreaList);
                resAreaList.AddRange(multiRollAreaList);

                if (currentChipsTableAreaList.Contains(EArea.PassLine))
                {
                    resAreaList.Add(EArea.PassOdds);
                }

                if (currentChipsTableAreaList.Contains(EArea.DontPassH) ||
                    currentChipsTableAreaList.Contains(EArea.DontPassV))
                {
                    resAreaList.Add(EArea.DontPassOdds);
                }

                return(resAreaList);
            }

            if (CanvasControl.Instance.gameCrap.CurrentGameStage == EGameStage.PointOn_ComePointOn)
            {
                resAreaList.AddRange(basicComeAreaList);
                resAreaList.AddRange(singleRollAreaList);
                resAreaList.AddRange(multiRollAreaList);

                if (currentChipsTableAreaList.Contains(EArea.PassLine))
                {
                    resAreaList.Add(EArea.PassOdds);
                }

                if (currentChipsTableAreaList.Contains(EArea.DontPassH) ||
                    currentChipsTableAreaList.Contains(EArea.DontPassV))
                {
                    resAreaList.Add(EArea.DontPassOdds);
                }

                foreach (EArea eArea in currentChipsTableAreaList)
                {
                    if (allComeOddsAreaList.Contains(eArea) || allDontComeOddsAreaList.Contains(eArea))
                    {
                        resAreaList.Add(eArea);
                    }
                }

                return(resAreaList);
            }
        }

        return(null);
    }
Example #15
0
 public bool isCurInStage(EGameStage eGameStage)
 {
     return m_eCurGameStage == eGameStage;
 }
        /// <summary>
        /// ship moves 1 step according to its programming
        /// </summary>
        public void fu_ProcessMove(EGameStage _stage)
        {
            int xOffset;
            int yOffset;

            CPlayer      player      = CGameController.Get.mu_PlayerDict[mu_deviceId];
            EMoveCommand moveCommand = EMoveCommand.STAY;

            switch (_stage)
            {
            case EGameStage.MOVE_1:
                moveCommand = (EMoveCommand)player.pu_movement1Mode;
                break;

            case EGameStage.MOVE_2:
                moveCommand = (EMoveCommand)player.pu_movement2Mode;
                break;

            case EGameStage.MOVE_3:
                moveCommand = (EMoveCommand)player.pu_movement3Mode;
                break;

            case EGameStage.MOVE_4:
                moveCommand = (EMoveCommand)player.pu_movement4Mode;
                break;
            }

            L.Log(moveCommand);
            if (_stage > EGameStage.MOVE_4)
            {
                return;
            }


            fi_GetOffsetForOrientation(pu_orientation, out xOffset, out yOffset);

            if (moveCommand != EMoveCommand.STAY)
            {
                List <AOceanEntity> entities = CGameController.Get.mu_ocean.fu_GetListAt(pu_x + xOffset, pu_y + yOffset);
                foreach (var e in entities)
                {
                    if (e.pu_EntityType == EOceanEntityType.Ship)
                    {
                        fi_BumpIntoShip((CShipEntity)e);
                        xOffset = 0;
                        yOffset = 0;
                    }
                    else if (e.pu_EntityType == EOceanEntityType.Rock)
                    {
                        fi_BumpIntoRock();
                        xOffset = 0;
                        yOffset = 0;
                    }
                }

                pu_x += xOffset; // TODO: bounds check for play field
                pu_y += yOffset;
            }

            if (moveCommand != EMoveCommand.LEFT && moveCommand != EMoveCommand.RIGHT)
            {
                return;
            }

            switch (moveCommand)
            {
            case EMoveCommand.LEFT:
                pu_orientation += (int)EOrientation.MAX_ORIENTATION - 1;
                break;

            case EMoveCommand.RIGHT:
                pu_orientation += 1;
                break;
            }

            pu_orientation = (EOrientation)((int)pu_orientation % (int)EOrientation.MAX_ORIENTATION);

            fi_GetOffsetForOrientation(pu_orientation, out xOffset, out yOffset);

            List <AOceanEntity> entities2 = CGameController.Get.mu_ocean.fu_GetListAt(pu_x + xOffset, pu_y + yOffset);

            foreach (var e in entities2)
            {
                if (e.pu_EntityType == EOceanEntityType.Ship)
                {
                    fi_BumpIntoShip((CShipEntity)e);
                    xOffset = 0;
                    yOffset = 0;
                }
                else if (e.pu_EntityType == EOceanEntityType.Rock)
                {
                    fi_BumpIntoRock();
                    xOffset = 0;
                    yOffset = 0;
                }
            }

            pu_x += xOffset; // TODO: bounds check for play field
            pu_y += yOffset;
        }
Example #17
0
 public static void Enter(EGameStage eGameStage)
 {
     Enter((int)eGameStage);
 }
Example #18
0
 public bool isCurInStage(EGameStage eGameStage)
 {
     return(m_eCurGameStage == eGameStage);
 }