From 6baa5a654138a2e0a9871adaef311a74e132dd6e Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Fri, 25 Dec 2020 15:53:56 +0800 Subject: [PATCH] Merge branch 'master' of http://47.95.218.140:8090/r/GemBattle into master --- Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs | 99 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 87 insertions(+), 12 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs index 3814f55..ae6183a 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs @@ -189,6 +189,9 @@ /// </summary> Camera m_Camera; + //Camera m_CameraBG; + + /// <summary> /// Current tower placeholder. Will be null if not in the <see cref="State.Building" /> state. /// </summary> @@ -332,6 +335,44 @@ // ATTENTION TO FIX: 先写死,有一个简单的逻辑再说: if (m_listTower.Count >= MAX_TOWERNUM) disableRandomTowerBtn(); + } + + public void PlayBuffPS(int get_buffID) + { + //Debug.Log("开始播放特效"); + int targetID = 0; + switch (get_buffID) + { + case 0: + //无特效 + break; + case 1: + for (int i = 0; i < m_listTower.Count; i++) + { + m_listTower[i].CurrentTowerLevel.ShowBuffPS(); + } + break; + case 2: + targetID = 101; + break; + case 3: + targetID = 201; + break; + case 4: + targetID = 301; + break; + } + if (targetID > 1) + { + for (int i = 0; i < m_listTower.Count; i++) + { + if (m_listTower[i].ElfId == targetID) + { + m_listTower[i].CurrentTowerLevel.ShowBuffPS(); + } + } + } + } /// <summary> @@ -510,6 +551,13 @@ { return; } + if (state == State.GameOver) + { + CommonDebugHelper.DebugError("已经游戏结束了,为什么还在修改状态"); + return; + } + CommonDebugHelper.Debug($"设置了状态 state:{state} newState:{newState} "); + State oldState = state; if (oldState == State.Paused || oldState == State.GameOver) { @@ -545,6 +593,8 @@ /// </summary> public void GameOver() { + CommonDebugHelper.Debug("游戏结束了"); + SetState(State.GameOver); } @@ -1143,25 +1193,27 @@ //Debug.Log("未上阵区域,不管有没有塔,都强行吸附"); (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, ""); - m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(m_GridPosition, m_CurrentTower.controller.dimensions); + //m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(m_GridPosition, m_CurrentTower.controller.dimensions); } else if (m_GridPosition.y == 2 || m_GridPosition.y == 3) { //Debug.Log("已上阵区域,如果是空格子就强行吸附,先判断是否有塔"); - + //pointerInfo.currentPosition += new Vector2(0, -25f); checkTowerPlaceTower = isFreeAttackGridOnDrag(pointerInfo); if (checkTowerPlaceTower != null) { //Debug.Log(checkTowerPlaceTower.name); + //Debug.Log($"checkTowerPlaceTower.name:{checkTowerPlaceTower.name} m_GridPosition:{m_GridPosition}"); if (m_CurrentTower.controller.towerFeature == EFeatureTower.NULL) { if (checkTowerPlaceTower.bInAttackMode) { + //Debug.Log("检测到了塔"); //鼠标检测到了塔 - (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, false, ""); + (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(checkTowerPlaceTower.gridPosition.x, checkTowerPlaceTower.gridPosition.y, false, ""); } else { @@ -1182,7 +1234,7 @@ } } } - m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(checkTowerPlaceTower.gridPosition, m_CurrentTower.controller.dimensions); + //m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(checkTowerPlaceTower.gridPosition, m_CurrentTower.controller.dimensions); } } else if ((m_CurrentArea as TowerPlacementGridEndless).isFreeAtackPos(m_GridPosition.x, m_GridPosition.y)) @@ -1191,7 +1243,7 @@ (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, towerToMove.towerName); - m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(m_GridPosition, m_CurrentTower.controller.dimensions); + //m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(m_GridPosition, m_CurrentTower.controller.dimensions); } else @@ -1205,13 +1257,17 @@ (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, towerToMove.towerName); - m_CurrentTower.transform.position = towerToMove.position; + //m_CurrentTower.transform.position = towerToMove.position; } else { - CloseCanPlace(); + //CloseCanPlace(); //Debug.Log("上阵区域,没有开放的塔位"); + + (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, ""); + + //m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(m_GridPosition, m_CurrentTower.controller.dimensions); } } } @@ -1367,7 +1423,7 @@ if (sTower == null) return false; - Debug.Log("开始检测是否可以交换塔"); + //Debug.Log("开始检测是否可以交换塔"); //if (sTower.bInAttackMode == towerToMove.bInAttackMode) { IntVector2 v1 = new IntVector2(towerToMove.gridPosition.x, towerToMove.gridPosition.y); @@ -1580,6 +1636,7 @@ return controller; } + private Vector2 dragOffect = new Vector2(0, -55f); /// <summary> /// Position the ghost tower at the given pointer /// </summary> @@ -1592,15 +1649,29 @@ return; //throw new InvalidOperationException("Trying to move the tower ghost when we don't have one"); } + // 我操,终于可以了!ATTENTION TO OPP: + PointerInfo tp = new PointerActionInfo(); + tp.currentPosition = pointerInfo.currentPosition + dragOffect; + tp.previousPosition = pointerInfo.previousPosition; + tp.delta = pointerInfo.delta; + tp.startedOverUI = pointerInfo.startedOverUI; - UIPointer pointer = WrapPointer(pointerInfo); + UIPointer npt = new UIPointer + { + overUI = false, + pointer = tp, + overWaveLine = false, + ray = m_Camera.ScreenPointToRay(tp.currentPosition) + }; + + //UIPointer pointer = WrapPointer(tp); // Do nothing if we're over UI - if (pointer.overUI && hideWhenInvalid) + if (npt.overUI && hideWhenInvalid) { m_CurrentTower.Hide(); return; } - MoveGhost(pointer, hideWhenInvalid); + MoveGhost(npt, hideWhenInvalid); } /// <summary> @@ -2216,6 +2287,8 @@ } //placeObj = GameObject.FindGameObjectWithTag("PlaceTowerOpponent"); EventCenter.Ins.Add((int)KTGMGemClient.EventType.EndlessHeartAllLose, AllHeartLose); + EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.PlayBuffPS, PlayBuffPS); + } /// <summary> @@ -2473,6 +2546,8 @@ state = State.Normal; m_Camera = GameObject.Find("SceneCamera3D").GetComponent<Camera>(); + //m_Camera = GameObject.Find("BackCamera").GetComponent<Camera>(); + //m_Camera = GetComponent<Camera>(); TowerDestroyArr = new bool[5, AttackRowNumbers]; } @@ -2588,7 +2663,7 @@ // WORK START: 从这里开始,移动的时候与场景内的WaveSelEffect射线做碰撞。 // Raycast onto placement layer PlacementAreaRaycast(ref npt); - + //Debug.Log("npt.raycast:" + npt.raycast); if (npt.raycast != null) { MoveGhostWithRaycastHit(npt.raycast.Value); -- Gitblit v1.9.1