Assets/Scripts/TowerDefense/Agents/HomeBaseAttacker.cs
@@ -53,6 +53,7 @@ { if (!EndlessLevelManager.instanceExists) { //Debug.Log("开始扣血"); m_FinalDestinationDamageableBehaviour.TakeDamage(damager.finalDamage, transform.position, agent.configuration.alignmentProvider); PlayerHomeBase homebase = m_FinalDestinationDamageableBehaviour.GetComponent<PlayerHomeBase>(); if (homebase && (!homebase.isDead)) Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -1193,6 +1193,8 @@ //Debug.Log("未上阵区域,不管有没有塔,都强行吸附"); (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, ""); m_CurrentTower.SetGridPosition(m_GridPosition.x, m_GridPosition.y); //m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(m_GridPosition, m_CurrentTower.controller.dimensions); } @@ -1234,6 +1236,10 @@ } } } m_CurrentTower.SetGridPosition(checkTowerPlaceTower.gridPosition.x, checkTowerPlaceTower.gridPosition.y); //Debug.Log("未上阵区域,不管有没有塔,都强行吸附" + checkTowerPlaceTower.gridPosition); //m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(checkTowerPlaceTower.gridPosition, m_CurrentTower.controller.dimensions); } } @@ -1242,6 +1248,8 @@ //Debug.Log("空格子"); (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, towerToMove.towerName); m_CurrentTower.SetGridPosition(m_GridPosition.x, m_GridPosition.y); //m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(m_GridPosition, m_CurrentTower.controller.dimensions); @@ -1258,6 +1266,8 @@ (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, towerToMove.towerName); //m_CurrentTower.transform.position = towerToMove.position; m_CurrentTower.SetGridPosition(m_GridPosition.x, m_GridPosition.y); } else { @@ -1266,6 +1276,8 @@ //Debug.Log("上阵区域,没有开放的塔位"); (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, ""); m_CurrentTower.SetGridPosition(m_GridPosition.x, m_GridPosition.y); //m_CurrentTower.transform.position = (m_CurrentArea as TowerPlacementGridEndless).GridToWorld(m_GridPosition, m_CurrentTower.controller.dimensions); } @@ -1277,7 +1289,8 @@ else { dragTowerPlacement.CloseCanPlace(); m_CurrentTower.SetGridPosition(-1, -1); //Debug.Log("没有检测到"); } } @@ -1375,10 +1388,58 @@ return; } if (m_CurrentTower.gridPositionX != -1) { IntVector2 moveV2 = new IntVector2(m_CurrentTower.gridPositionX, m_CurrentTower.gridPositionY); //判断是否未开塔 if (!dragTowerPlacement.IsGridOpen(moveV2.x, moveV2.y)) { //Debug.Log("未开塔"); CancelPlaceTower(pointerInfo); } else if (moveV2 == towerToMove.gridPosition) { //Debug.Log($"在原位 moveV2:{moveV2} towerToMove.gridPosition:{towerToMove.gridPosition}"); CancelPlaceTower(pointerInfo); } else { //判断是否有塔 Tower tmpT = null; for (int i = 0; i < m_listTower.Count; i++) { if (m_listTower[i].gridPosition == moveV2) { tmpT = m_listTower[i]; break; } } if (tmpT != null) { //Debug.Log("释放的时候有塔"); DragBuyTower(tmpT); } else { //Debug.Log("释放的时候是空格子"); DragBuyTower(moveV2); } } } else { //Debug.Log("不在区域内"); CancelPlaceTower(pointerInfo); } return; // 判断目标位置是否有Tower且类型和等级一致,如果没有,则GhostTower删除,原Tower显示。 if (isValidateCombineTarget(pointerInfo)) { //Debug.Log("isValidateCombineTarget"); //Debug.Log("目标位置是否有同等级同类型的Tower."); TryPlaceTower(pointerInfo); EndlessRandomTower.instance.UpdateDescDisplay(); } @@ -1406,7 +1467,7 @@ } else if (EndlessLevelManager.instanceExists && IsSubstitute(pointerInfo)) { //Debug.Log("IsSubstitute"); //Debug.Log("交换"); CheckCanChangePos(pointerInfo); } @@ -1884,6 +1945,81 @@ return true; } private void DragBuyTower(Tower sTower) { Tower curTower = m_CurrentTower.controller; int testLvl = dragTowerLevel; if ((sTower.currentLevel == testLvl) && (sTower.towerName == curTower.towerName)) { // 先释放掉当前的Ghost塔防. CancelGhostPlacement(); // 升级目标位置的塔防. currentSelectedTower = sTower; SetState(State.Normal); // 新的代码,合并升级为随机塔防类型. randomUpgradeTower(); } else { IntVector2 v1 = new IntVector2(towerToMove.gridPosition.x, towerToMove.gridPosition.y); IntVector2 v2 = new IntVector2(sTower.gridPosition.x, sTower.gridPosition.y); Tower newTower1 = PlaceTowerForce(EndlessRandomTower.instance.getTowerByName(sTower.towerName), v1, sTower.currentLevel + 1, false); Tower newTower2 = PlaceTowerForce(m_CurrentTower.controller, v2, towerToMove.currentLevel + 1, false); if (towerToMove != null) { delTower(towerToMove); towerToMove.showTower(true); towerToMove.Sell(); towerToMove = null; } delTower(sTower); sTower.showTower(true); sTower.Sell(); sTower = null; CancelGhostPlacement(); newTower1.placementArea.Occupy(newTower1.gridPosition, newTower1.dimensions); newTower2.placementArea.Occupy(newTower2.gridPosition, newTower2.dimensions); //强制交换塔的时候检查自身充能条 newTower1.CheckCtrl(); newTower2.CheckCtrl(); //Debug.Log($"newTower1:{newTower1.towerName} newTower2:{newTower2.towerName}"); TowerPlacementGridEndless.instance.PlayPutPs(newTower2.gridPosition.x, newTower2.gridPosition.y); } } private void DragBuyTower(IntVector2 dragGridPosition) { Tower controller = m_CurrentTower.controller; Tower createdTower = Instantiate(controller); createdTower.Initialize(m_CurrentArea, dragGridPosition, dragTowerLevel); // ATTENTION TO FIX:是否应该加入List: addTower(createdTower); PlayToAttackEffect(createdTower.ElfId, createdTower.transform.position); dragTowerLevel = 0; CancelGhostPlacement(); // 删除towerToMove,确保塔防数据不再出现多个 if (towerToMove != null) { delTower(towerToMove); towerToMove.showTower(true); towerToMove.Sell(); towerToMove = null; } if (m_CurrentTower != null && m_CurrentTower.controller != null) Destroy(m_CurrentTower.controller.gameObject); } /// <summary> /// 播放升级特效 /// </summary> Assets/Scripts/TowerDefense/UI/HUD/TowerPlacementGhost.cs
@@ -76,6 +76,16 @@ /// </summary> public Collider ghostCollider { get; private set; } public int gridPositionX; public int gridPositionY; public void SetGridPosition(int x, int y) { gridPositionX = x; gridPositionY = y; //Debug.Log($"x:{x} y:{y}"); } /// <summary> /// Initialize this ghost /// </summary> @@ -92,6 +102,9 @@ m_MoveVel = Vector3.zero; m_ValidPos = false; gridPositionX = tower.gridPosition.x; gridPositionY = tower.gridPosition.y; if (null != this.radiusObject) { Material tmat = radiusObject.GetComponent<MeshRenderer>().material; USDKTest/.gradle/6.1.1/executionHistory/executionHistory.binBinary files differ
USDKTest/.gradle/6.1.1/executionHistory/executionHistory.lockBinary files differ
USDKTest/.gradle/6.1.1/fileHashes/fileHashes.binBinary files differ
USDKTest/.gradle/6.1.1/fileHashes/fileHashes.lockBinary files differ
USDKTest/.gradle/6.1.1/fileHashes/resourceHashesCache.binBinary files differ
USDKTest/.gradle/6.1.1/javaCompile/javaCompile.lockBinary files differ
USDKTest/.gradle/buildOutputCleanup/buildOutputCleanup.lockBinary files differ
USDKTest/.idea/workspace.xml
@@ -11,28 +11,7 @@ </component> <component name="ChangeListManager"> <list default="true" id="1d82a004-ec8b-4ee8-923f-fc9fa475ba66" name="Default Changelist" comment=""> <change afterPath="$PROJECT_DIR$/../Assets/Materials/UI/tileGold.mat" afterDir="false" /> <change afterPath="$PROJECT_DIR$/../Assets/Materials/UI/tileGold.mat.meta" afterDir="false" /> <change afterPath="$PROJECT_DIR$/../Assets/Resources/Prefabs/BuyMesh.prefab" afterDir="false" /> <change afterPath="$PROJECT_DIR$/../Assets/Resources/Prefabs/BuyMesh.prefab.meta" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Prefabs/Towers/Fire/TowerLevel.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Prefabs/Towers/Fire/TowerLevel.prefab" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Prefabs/Towers/Water/TowerLevel.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Prefabs/Towers/Water/TowerLevel.prefab" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Prefabs/Towers/WoodTower/TowerLevel.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Prefabs/Towers/WoodTower/TowerLevel.prefab" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Prefabs/UI/EndlessTileGridBuyBtn.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Prefabs/UI/EndlessTileGridBuyBtn.prefab" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Scripts/Json/JsonDataCenter.cs" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Scripts/Json/JsonDataCenter.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/Agents/HomeBaseAttacker.cs" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/Agents/HomeBaseAttacker.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/Towers/TowerLevel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/Towers/TowerLevel.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/elf_info.json" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/elf_info.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/elf_upgrade.json" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/elf_upgrade.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/endless_buff.json" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/endless_buff.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/endless_enemy.json" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/endless_enemy.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/endless_port.json" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/endless_port.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/gemcost.json" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/gemcost.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/skilllevelinfo.json" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/StreamingAssets/Table/skilllevelinfo.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/UI/TowerLevel/星星4.png" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/UI/TowerLevel/星星4.png" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../Assets/Materials/Guide/RectGuidance.mat" beforeDir="false" afterPath="$PROJECT_DIR$/../Assets/Materials/Guide/RectGuidance.mat" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../ProjectSettings/ProjectSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/../ProjectSettings/ProjectSettings.asset" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/6.1.1/executionHistory/executionHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/6.1.1/executionHistory/executionHistory.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/6.1.1/executionHistory/executionHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/6.1.1/executionHistory/executionHistory.lock" afterDir="false" /> @@ -41,15 +20,7 @@ <change beforePath="$PROJECT_DIR$/.gradle/6.1.1/fileHashes/resourceHashesCache.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/6.1.1/fileHashes/resourceHashesCache.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/6.1.1/javaCompile/javaCompile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/6.1.1/javaCompile/javaCompile.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/launcher/release/launcher-release.apk" beforeDir="false" afterPath="$PROJECT_DIR$/launcher/release/launcher-release.apk" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/elf_info.json" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/elf_info.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/elf_upgrade.json" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/elf_upgrade.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/endless_buff.json" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/endless_buff.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/endless_enemy.json" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/endless_enemy.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/endless_port.json" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/endless_port.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/gemcost.json" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/gemcost.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/skilllevelinfo.json" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/Table/skilllevelinfo.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/bin/Data/Managed/Assembly-CSharp-firstpass.dll" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/bin/Data/Managed/Assembly-CSharp-firstpass.dll" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/bin/Data/Managed/Assembly-CSharp.dll" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/bin/Data/Managed/Assembly-CSharp.dll" afterDir="false" /> <change beforePath="$PROJECT_DIR$/unityLibrary/src/main/assets/bin/Data/Managed/MoreMountains.NiceVibrations.Demos.dll" beforeDir="false" afterPath="$PROJECT_DIR$/unityLibrary/src/main/assets/bin/Data/Managed/MoreMountains.NiceVibrations.Demos.dll" afterDir="false" /> USDKTest/launcher/release/launcher-release.apkBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/Assembly-CSharp-firstpass.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/Assembly-CSharp.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/MoreMountains.NiceVibrations.Demos.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/MoreMountains.NiceVibrations.Haptics.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/MoreMountains.NiceVibrations.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/Sirenix.OdinInspector.CompatibilityLayer.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/Unity.TextMeshPro.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/Unity.Timeline.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/Managed/UnityEngine.UI.dllBinary files differ
USDKTest/unityLibrary/src/main/assets/bin/Data/boot.config
@@ -3,4 +3,4 @@ hdr-display-enabled=0 androidStartInFullscreen=1 androidRenderOutsideSafeArea=1 buildDate=637445535078569344 buildDate=637445652358436886 USDKTest/unityLibrary/src/main/assets/bin/Data/data.unity3dBinary files differ