From bd0ba263761a866ca0d698169d2d83b6a11c35e7 Mon Sep 17 00:00:00 2001
From: CoderM <coderm@qq.com>
Date: Thu, 10 Dec 2020 17:04:37 +0800
Subject: [PATCH] CoderM: 增加SDKJSON处理

---
 Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs |   70 +++++++++++++++++++++++++++-------
 1 files changed, 55 insertions(+), 15 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs b/Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
index 7f8f1d1..cbf0fbc 100644
--- a/Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
+++ b/Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
@@ -5,6 +5,7 @@
 using UnityEngine;
 using UnityInput = UnityEngine.Input;
 using State = TowerDefense.UI.HUD.EndlessGameUI.State;
+using KTGMGemClient;
 
 namespace TowerDefense.Input
 {
@@ -40,6 +41,7 @@
                 // River Add for Mouse Start Drag & Draged.
                 controller.startedDrag += OnStartDrag;
                 controller.dragged += this.OnDrag;
+                controller.pressed += OnPressed;
                 controller.released += this.OnEndDrag;
             }
         }
@@ -61,6 +63,7 @@
 
             controller.startedDrag -= this.OnStartDrag;
             controller.dragged -= this.OnDrag;
+            controller.pressed -= OnPressed;
             controller.released -= this.OnEndDrag;
         }
 
@@ -109,15 +112,12 @@
                     if (UnityInput.GetKeyDown(key))
                     {
                         Tower controller = EndlessLevelManager.instance.TowerLibrary[key - KeyCode.Alpha1];
-                        if (EndlessLevelManager.instance.Currency.CanAfford(controller.purchaseCost))
+                        if (m_GameUI.isBuilding)
                         {
-                            if (m_GameUI.isBuilding)
-                            {
-                                m_GameUI.CancelGhostPlacement();
-                            }
-                            EndlessGameUI.instance.SetToBuildMode(controller);
-                            EndlessGameUI.instance.TryMoveGhost(InputController.instance.basicMouseInfo);
+                            m_GameUI.CancelGhostPlacement();
                         }
+                        EndlessGameUI.instance.SetToBuildMode(controller);
+                        EndlessGameUI.instance.TryMoveGhost(InputController.instance.basicMouseInfo);
                         break;
                     }
                 }
@@ -146,17 +146,43 @@
             }
         }
 
+        float currentTimeScale = 1.0f;
         protected virtual void OnStartDrag(PointerActionInfo pointer)
         {
+            if (GameConfig.IsNewbie)
+            {
+                if (!GameConfig.CanDragTower)
+                {
+                    Debug.Log("新手不可以拖拽");
+                    return;
+                }
+
+            }
             // select towers
             m_GameUI.TrySelectTower(pointer);
             // River: 为了开始拖动后可以直接显示GhostTower
             m_GameUI.TryMoveGhost(pointer, false);
 
-            this.isInDragState = true;
-            AudioSourceManager.Ins.Play(AudioEnum.DragTower);
+            if (m_GameUI.HasTower)
+            {
+                EndlessUIStart.instance.SetDarkGround(true);
 
-            //Debug.Log("开始拖拽");
+                this.isInDragState = true;
+                AudioSourceManager.Ins.Play(AudioEnum.DragTower);
+                m_GameUI.CheckAllCanPlace();//检查上阵宝石有么有可以合成的位置
+
+                if (!GameConfig.IsNewbie)
+                {
+                    //新手引导这里会把引导的速度变慢
+                    currentTimeScale = Time.timeScale;
+                    Time.timeScale = 0.5f;
+                }
+                else
+                {
+                    GuideCtrl.Ins.BeginDrag5_1();
+                }
+
+            }
         }
 
         protected override void OnDrag(PointerActionInfo pointer)
@@ -164,22 +190,36 @@
             if ((pointer != null) && (m_GameUI.isBuilding))
             {
                 m_GameUI.TryMoveGhost(pointer, false);
+
+                m_GameUI.CheckTowerPlace(pointer);
             }
         }
 
+        /// <summary>
+        /// 鼠标抬起
+        /// </summary>
+        /// <param name="pointer"></param>
         protected void OnEndDrag(PointerActionInfo pointer)
         {
             // EndDrag 只能放置相关的GhostTower.
             if (this.isInDragState)
             {
+                EndlessUIStart.instance.SetDarkGround(false);
+
                 AudioSourceManager.Ins.Play(AudioEnum.PutTower);
+                m_GameUI.CloseCanPlaceRenderer();//关闭所有宝石示意
+                m_GameUI.onEndTowerDrag(pointer);
+
+                this.isInDragState = false;
+
+                if (!GameConfig.IsNewbie)
+                    Time.timeScale = currentTimeScale;
             }
-            m_GameUI.onEndTowerDrag(pointer);
+        }
 
-            this.isInDragState = false;
-
-            //Debug.Log("结束拖拽");
-
+        private void OnPressed(PointerActionInfo pointer)
+        {
+            m_GameUI.OnPressed(pointer);
         }
 
         /// <summary>

--
Gitblit v1.9.1