From 01fe52bc3f5df9924b26426c27a4277f4848f071 Mon Sep 17 00:00:00 2001
From: River Jiang <546213258@qq.com>
Date: Thu, 22 Oct 2020 16:32:24 +0800
Subject: [PATCH] 加入Energy底板,修改火塔不变动画

---
 Assets/Scripts/TowerDefense/UI/BulletUICtl.cs                      |    2 
 Assets/Prefabs/Towers/Fire/GrowUpTower.prefab                      |   12 +-
 Assets/Scripts/TowerDefense/Towers/Tower.cs                        |    3 
 Assets/Prefabs/UI/EnergyUI.prefab.meta                             |    7 +
 Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs.meta                 |   11 ++
 Assets/Prefabs/UI/EnergyUI.prefab                                  |  167 +++++++++++++++++++++++++++++++++
 Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs                      |   41 ++++++++
 Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs |   31 ++++++
 Assets/Scripts/ActionGameFramework/Health/Damager.cs               |    3 
 Assets/Scenes/Levels/Battle/GemBattle.unity                        |    4 
 10 files changed, 269 insertions(+), 12 deletions(-)

diff --git a/Assets/Prefabs/Towers/Fire/GrowUpTower.prefab b/Assets/Prefabs/Towers/Fire/GrowUpTower.prefab
index 9208a7b..74e9ba8 100644
--- a/Assets/Prefabs/Towers/Fire/GrowUpTower.prefab
+++ b/Assets/Prefabs/Towers/Fire/GrowUpTower.prefab
@@ -110,17 +110,19 @@
   poisonTex: {fileID: 0}
   frozenTex: {fileID: 0}
   commonTex: {fileID: 0}
+  PoisonParticle: {fileID: 0}
+  PoisonEndParticle: {fileID: 0}
   towerName: GrowUpTower
   dimensions:
     x: 1
     y: 1
   towerFeature: 0
-  materialMonsterSelf: {fileID: 2100000, guid: 65706b9ab6be2dc45bde7720914dd662, type: 2}
+  materialMonsterSelf: {fileID: 2100000, guid: e4a344b484251ce4e8b5f18e0618e647, type: 2}
   materialMonsterOppo: {fileID: 2100000, guid: 005b2213e521ef04a9f51bde68b9735f, type: 2}
-  materialTowerAttackSelf: {fileID: 2100000, guid: 56734acd3a9832f458892e0ba6f1901b,
-    type: 2}
-  materialTowerWaitSelf: {fileID: 2100000, guid: 492ec3bf4cc3d7c4ca1649716bf69377,
-    type: 2}
+  materialTowerAttackSelf: {fileID: 0}
+  materialTowerWaitSelf: {fileID: 0}
+  materialTowerAttackOppo: {fileID: 0}
+  materialTowerWaitOppo: {fileID: 0}
   eTowerFuntion: 0
   bulletCtl: {fileID: 0}
   levels:
diff --git a/Assets/Prefabs/UI/EnergyUI.prefab b/Assets/Prefabs/UI/EnergyUI.prefab
new file mode 100644
index 0000000..be7c085
--- /dev/null
+++ b/Assets/Prefabs/UI/EnergyUI.prefab
@@ -0,0 +1,167 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4636030447447409971
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4636030447447409970}
+  - component: {fileID: 4636030447447409972}
+  - component: {fileID: 4636030447447409973}
+  - component: {fileID: -9145516343146749478}
+  m_Layer: 5
+  m_Name: EnergyUI
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4636030447447409970
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4636030447447409971}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4636030447972189692}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 21, y: 90}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4636030447447409972
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4636030447447409971}
+  m_CullTransparentMesh: 0
+--- !u!114 &4636030447447409973
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4636030447447409971}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 257d2719341218740b740683c3aa8355, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &-9145516343146749478
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4636030447447409971}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 739451dc4b5ded044ae7641fcb531e35, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  energyScaleMask: {fileID: 4636030447972189695}
+--- !u!1 &4636030447972189693
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4636030447972189692}
+  - component: {fileID: 4636030447972189694}
+  - component: {fileID: 4636030447972189695}
+  m_Layer: 5
+  m_Name: EnergyProgress
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4636030447972189692
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4636030447972189693}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 0, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4636030447447409970}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0}
+  m_AnchorMax: {x: 0.5, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 21, y: 90}
+  m_Pivot: {x: 0.5, y: 0}
+--- !u!222 &4636030447972189694
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4636030447972189693}
+  m_CullTransparentMesh: 0
+--- !u!114 &4636030447972189695
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4636030447972189693}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 747f83368dfba694c89bc6908324bb94, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
diff --git a/Assets/Prefabs/UI/EnergyUI.prefab.meta b/Assets/Prefabs/UI/EnergyUI.prefab.meta
new file mode 100644
index 0000000..764967f
--- /dev/null
+++ b/Assets/Prefabs/UI/EnergyUI.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0d97566feabc1d644862df3fb52071a3
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/Levels/Battle/GemBattle.unity b/Assets/Scenes/Levels/Battle/GemBattle.unity
index 3f46dbe..aef9231 100644
--- a/Assets/Scenes/Levels/Battle/GemBattle.unity
+++ b/Assets/Scenes/Levels/Battle/GemBattle.unity
@@ -5269,6 +5269,8 @@
     type: 3}
   towerBulletUIPrefab: {fileID: 4636030447447409971, guid: f6edf4c41f0dac54d94e67945bca23f0,
     type: 3}
+  towerEnergyUIPrefab: {fileID: 4636030447447409971, guid: 0d97566feabc1d644862df3fb52071a3,
+    type: 3}
   waitBuyBtnPrefab: {fileID: 1470395276146401766, guid: c05f40848dbdf1a4da8b4e45d7b9f1e3,
     type: 3}
   TestParticle: {fileID: 0}
@@ -13999,6 +14001,8 @@
     type: 3}
   towerBulletUIPrefab: {fileID: 4636030447447409971, guid: f6edf4c41f0dac54d94e67945bca23f0,
     type: 3}
+  towerEnergyUIPrefab: {fileID: 4636030447447409971, guid: 0d97566feabc1d644862df3fb52071a3,
+    type: 3}
   waitBuyBtnPrefab: {fileID: 1470395276146401766, guid: c05f40848dbdf1a4da8b4e45d7b9f1e3,
     type: 3}
   TestParticle: {fileID: 312346380397794538, guid: bd7af3572d4954542a9b552ea0736ac6,
diff --git a/Assets/Scripts/ActionGameFramework/Health/Damager.cs b/Assets/Scripts/ActionGameFramework/Health/Damager.cs
index 1bbfd3c..97958c8 100644
--- a/Assets/Scripts/ActionGameFramework/Health/Damager.cs
+++ b/Assets/Scripts/ActionGameFramework/Health/Damager.cs
@@ -115,9 +115,6 @@
             
             get {
                 float fd = damage * damageMulti;
-                if (damageMulti > 1.0f)
-                    Debug.Log("hello,world:" + damageMulti.ToString() );
-
                 damageMulti = 1.0f;
                 return fd + inSceneUpGradeDamage; 
             }
diff --git a/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs b/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs
index e1c4b1c..d3cfdf2 100644
--- a/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs
+++ b/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Runtime.InteropServices;
 using Core.Utilities;
 using KTGMGemClient;
 using Microsoft.VisualBasic;
@@ -43,6 +44,10 @@
         /// 相应的界面指针传到塔防的数据结构内。
         /// </summary>
         public GameObject towerBulletUIPrefab;
+        /// <summary>
+        /// 充能条对应的界面
+        /// </summary>
+        public GameObject towerEnergyUIPrefab;
 
         /// <summary>
         /// 等待购买开启对应按钮.
@@ -115,6 +120,7 @@
         /// </summary>
         Vector2[] m_arrTowerBulletUIPos;
         BulletUICtl[] arrTowerBulletUi;
+        EnergyUICtl[] arrTowerEnergyUi;
 
 
         /// <summary>
@@ -402,6 +408,9 @@
 
             if (arrTowerBulletUi[x] != null)
                 arrTowerBulletUi[x].gameObject.SetActive(false);
+
+            if (arrTowerEnergyUi[x] != null)
+                arrTowerEnergyUi[x].gameObject.SetActive(false);
 
             m_Tiles[x, y].SetTileType(PlacementGridType.EGridDestroyed);
 
@@ -711,15 +720,21 @@
             // 处理攻击塔位对应的血条
             m_arrTowerBulletUIPos = new Vector2[dimensions.x];
             arrTowerBulletUi = new BulletUICtl[dimensions.x];
+            arrTowerEnergyUi = new EnergyUICtl[dimensions.x];
+
             for (int x = 0; x < dimensions.x; x++)
             {
                 m_arrTowerBulletUIPos[x].x = m_arrGridCentUIPos[x, dy].x + m_fGridUISize/2.0f - 10;
                 m_arrTowerBulletUIPos[x].y = m_arrGridCentUIPos[x, dy].y;
 
-                GameObject img = Instantiate(towerBulletUIPrefab);
+                
                 GameObject go = GameObject.Find("BattleMainUI");
                 if (!go) continue;
                 Transform tp = go.GetComponent<Transform>();
+
+                GameObject img;
+                
+                img = Instantiate(towerBulletUIPrefab);
                 img.GetComponent<Transform>().SetParent(tp, true);
                 Vector3 tpos = img.transform.position;
                 tpos.x = m_arrTowerBulletUIPos[x].x;
@@ -731,6 +746,20 @@
                 BulletUICtl buc = img.GetComponent<BulletUICtl>();
                 arrTowerBulletUi[x] = buc;
                 buc.gameObject.SetActive(false);
+
+                // 把充能条也创建出来了.
+                img = Instantiate(towerEnergyUIPrefab);
+                img.GetComponent<Transform>().SetParent(tp, true);
+                tpos = img.transform.position;
+                tpos.x = m_arrTowerBulletUIPos[x].x;
+                tpos.y = m_arrTowerBulletUIPos[x].y;
+                img.transform.position = tpos;
+
+                img.transform.SetAsFirstSibling();
+                EnergyUICtl euc = img.GetComponent<EnergyUICtl>();
+                arrTowerEnergyUi[x] = euc;
+                euc.gameObject.SetActive(false);
+
             }
 
             return;
diff --git a/Assets/Scripts/TowerDefense/Towers/Tower.cs b/Assets/Scripts/TowerDefense/Towers/Tower.cs
index 576c515..020f906 100644
--- a/Assets/Scripts/TowerDefense/Towers/Tower.cs
+++ b/Assets/Scripts/TowerDefense/Towers/Tower.cs
@@ -218,7 +218,6 @@
                     // 
                     // 根据是否是子弹塔防来决定是否显示相应的界面
                     BulletUICtl buc = this.placementArea.GetBulletUICtl(gridPosition.x);
-                    /*
                     if ( (this.eTowerFuntion == ETowerFuntion.BULLET) && (buc != null ) )
                     {
                         // 设置数据
@@ -231,7 +230,7 @@
                         // 清空数据
                         buc.gameObject.SetActive(false);
                         this.bulletCtl = null;
-                    }*/
+                    }
                 }
 
             }
diff --git a/Assets/Scripts/TowerDefense/UI/BulletUICtl.cs b/Assets/Scripts/TowerDefense/UI/BulletUICtl.cs
index 0e7f4ff..0424684 100644
--- a/Assets/Scripts/TowerDefense/UI/BulletUICtl.cs
+++ b/Assets/Scripts/TowerDefense/UI/BulletUICtl.cs
@@ -59,7 +59,7 @@
     {
         if (bulletScaleMask == null) return;
         float scaleY = 1.0f - curBNum / (float)totalBNum - fAdjValue;
-        bulletScaleMask.rectTransform.DOScaleY( scaleY, 0.1f);
+        bulletScaleMask.rectTransform.DOScaleY( scaleY, 0.0f);
     }
 
     // Update is called once per frame
diff --git a/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs b/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs
new file mode 100644
index 0000000..2f5ab5c
--- /dev/null
+++ b/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs
@@ -0,0 +1,41 @@
+using DG.Tweening;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class EnergyUICtl : MonoBehaviour
+{
+    /// <summary>
+    /// 用于显示能量条进度
+    /// </summary>
+    public Image energyScaleMask;
+
+    /// <summary>
+    /// 当前的能量条进度.
+    /// </summary>
+    protected float currentProgress;
+
+    // Start is called before the first frame update
+    void Start()
+    {
+        currentProgress = 0;
+        //this.SetEnergyProgress(0);
+    }
+
+    /// <summary>
+    /// 显示并更新能量条进度.
+    /// </summary>
+    /// <param name="pro"></param>
+    public void SetEnergyProgress(float pro)
+    {
+        energyScaleMask.rectTransform.DOScaleY( pro, 0.3f );
+        currentProgress = pro;
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        
+    }
+}
diff --git a/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs.meta b/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs.meta
new file mode 100644
index 0000000..cebc219
--- /dev/null
+++ b/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 739451dc4b5ded044ae7641fcb531e35
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

--
Gitblit v1.9.1