// 进入场景,场景资源加载成功 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); }
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); }
// 进入场景,但是场景还没有加载完成 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); }
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(); // } } } }
/// <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); }
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; }
public static void Enter(EGameStage eGameStage) { Enter((int)eGameStage); }
public bool isCurInStage(EGameStage eGameStage) { return(m_eCurGameStage == eGameStage); }