LiuQilin 8 년 전
부모
커밋
ceaa530e00

BIN
.vs/MyLovelyGarden/v14/.suo


BIN
Assets/Resources/Prefab/Object/Flower.prefab


BIN
Assets/Resources/Prefab/Object/Player.prefab


BIN
Assets/Resources/Prefab/PrefabUI/Canvas.prefab


BIN
Assets/Resources/Prefab/PrefabUI/G_FlowerItem.prefab


BIN
Assets/Resources/Scene.unity


+ 12 - 12
Assets/Resources/XML/Config/flower_config.xml

@@ -1,16 +1,16 @@
 <data>
-  <item id="1" name="粉色小花" desc="粉色小花的描述" icon="" anim="" />
-  <item id="2" name="紫色小花" desc="紫色小花的描述" icon="" anim="" />
-  <item id="3" name="波斯菊(粉)" desc="波斯菊(粉)的描述" icon="" anim="" />
-  <item id="4" name="康乃馨(红)" desc="康乃馨(红)的描述" icon="" anim="" />
-  <item id="5" name="铃兰(白)" desc="铃兰(白)的描述" icon="" anim="" />
-  <item id="6" name="马蹄莲(白)" desc="马蹄莲(白)的描述" icon="" anim="" />
-  <item id="7" name="蒲公英" desc="蒲公英的描述" icon="" anim="" />
-  <item id="8" name="牵牛花(蓝)" desc="牵牛花(蓝)的描述" icon="" anim="" />
-  <item id="9" name="三色堇(紫)" desc="三色堇(紫)的描述" icon="" anim="" />
-  <item id="10" name="三叶草(粉)" desc="三叶草(粉)的描述" icon="" anim="" />
-  <item id="11" name="向日葵" desc="向日葵的描述" icon="" anim="" />
-  <item id="12" name="郁金香(粉)" desc="郁金香(粉)的描述" icon="" anim="" />
+  <item id="1" name="粉色小花" desc="粉色小花的描述" icon="Flower1" anim="" />
+  <item id="2" name="紫色小花" desc="紫色小花的描述" icon="Flower2" anim="" />
+  <item id="3" name="波斯菊(粉)" desc="波斯菊(粉)的描述" icon="Flower3" anim="" />
+  <item id="4" name="康乃馨(红)" desc="康乃馨(红)的描述" icon="Flower4" anim="" />
+  <item id="5" name="铃兰(白)" desc="铃兰(白)的描述" icon="Flower5" anim="" />
+  <item id="6" name="马蹄莲(白)" desc="马蹄莲(白)的描述" icon="Flower6" anim="" />
+  <item id="7" name="蒲公英" desc="蒲公英的描述" icon="Flower7" anim="" />
+  <item id="8" name="牵牛花(蓝)" desc="牵牛花(蓝)的描述" icon="Flower8" anim="" />
+  <item id="9" name="三色堇(紫)" desc="三色堇(紫)的描述" icon="Flower9" anim="" />
+  <item id="10" name="三叶草(粉)" desc="三叶草(粉)的描述" icon="Flower10" anim="" />
+  <item id="11" name="向日葵" desc="向日葵的描述" icon="Flower11" anim="" />
+  <item id="12" name="郁金香(粉)" desc="郁金香(粉)的描述" icon="Flower12" anim="" />
   <comment>
     <id>
 id

+ 2 - 2
Assets/Resources/XML/Config/skill_config.xml

@@ -1,11 +1,11 @@
 <data>
-  <item id="1" name="人潮涌动" class="1" class_id="2" skill_index="1" reduce_cd="1" coin_person="" person="1" coin_once="" diamond_once="" skill_cd="" duration="300" cd="1800" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="1" upgrade_amnt="200" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="每分钟增加[&amp;person&amp;*60],持续[&amp;duration&amp;/60][lv]分钟" icon="4大技能1" anim="" label="" />
+  <item id="1" name="人潮涌动" class="1" class_id="2" skill_index="1" reduce_cd="1" coin_person="" person="1" coin_once="" diamond_once="" skill_cd="" duration="300" cd="1800" unlock_lv="100" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="1" upgrade_amnt="200" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="每分钟增加[&amp;person&amp;*60],持续[&amp;duration&amp;/60][lv]分钟" icon="4大技能1" anim="" label="" />
   <item id="2" name="大亨光临" class="1" class_id="3" skill_index="2" reduce_cd="1" coin_person="" person="" coin_once="50000%" diamond_once="" skill_cd="" duration="" cd="3600" unlock_lv="100" unlock_ahead_cur="2" unlock_ahead_amt="200" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="5000%" upgrade_duration="" upgrade_cd="" desc="" icon="4大技能2" anim="" label="" />
   <item id="3" name="花之祝福" class="1" class_id="4" skill_index="3" reduce_cd="1" coin_person="500%" person="" coin_once="" diamond_once="" skill_cd="" duration="300" cd="3600" unlock_lv="300" unlock_ahead_cur="2" unlock_ahead_amt="300" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="" icon="4大技能3" anim="" label="" />
   <item id="4" name="繁花似锦" class="4" class_id="1" skill_index="" reduce_cd="" coin_person="200%" person="" coin_once="" diamond_once="" skill_cd="" duration="900" cd="900" unlock_lv="100" unlock_ahead_cur="2" unlock_ahead_amt="100" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="2" use_amnt="150" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="绿-繁花似锦" anim="" label="" />
   <item id="5" name="免费获取金币" class="3" class_id="0" skill_index="" reduce_cd="" coin_person="" person="" coin_once="500%" diamond_once="" skill_cd="" duration="" cd="900" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="绿-免费金币" anim="" label="" />
   <item id="6" name="免费获取钻石" class="4" class_id="0" skill_index="" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="10" skill_cd="" duration="" cd="900" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="蓝-免费钻" anim="" label="" />
-  <item id="7" name="技能冷却" class="" class_id="" skill_index="4" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="" skill_cd="100%" duration="" cd="900" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="4大技能4" anim="" label="" />
+  <item id="7" name="技能冷却" class="" class_id="" skill_index="4" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="" skill_cd="100%" duration="" cd="900" unlock_lv="100" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="4大技能4" anim="" label="" />
   <comment>
     <id>
 id

+ 1 - 1
Assets/Script/Editor/EditorAuxiliary.cs

@@ -161,7 +161,7 @@ public class EditorAuxiliary : Editor
         {
             int index = transforms[i].name.IndexOf('_');
 
-            transforms[i].name = Script.String + transforms[i].name.Remove(0, index - 1);
+            transforms[i].name = Script.String + transforms[i].name.Remove(0, index + 1);
         }
     }
 }

+ 3 - 1
Assets/Script/Manage/ManaData.cs

@@ -48,7 +48,8 @@ public class ManaData : MonoBehaviour
         {
             _Coin = value;
 
-            ManaReso.SetText("F_GoldLab", _Coin.ToString("0"));
+            ManaReso.SetText("F_CoinLab", _Coin.ToString("0"));
+            ManaReso.SetText("C_CoinLab", _Coin.ToString("0"));
         }
     }
     public static double Diamond
@@ -68,6 +69,7 @@ public class ManaData : MonoBehaviour
     private static double _Coin;
     private static double _Diamond;
 
+    public static bool SkillBarValid; //是否有已解锁的大技能
     public static List<Skill> SkillList;
     public static List<Skill> CoolList; //冷却技能
     public static List<Pack> PackList;

+ 1 - 9
Assets/Script/Manage/ManaGarden.cs

@@ -68,15 +68,7 @@ public class ManaGarden : MonoBehaviour
         {
             attributes = xmlNodeList[i].Attributes;
 
-            flowerInfo = new FlowerInfo(null ,attributes);
-
-            flowerInfo.Sprite = ManaReso.Load<Sprite>(string.Format("Flower{0}", flowerInfo.Id), Folder.Garden);
-            flowerInfo.Image.sprite = flowerInfo.Sprite;
-
-            Vector2 newSize = flowerInfo.Sprite.rect.size;
-            newSize.x *= 0.2f;
-            newSize.y *= 0.2f;
-            flowerInfo.Image.rectTransform.sizeDelta = newSize;
+            flowerInfo = new FlowerInfo(attributes);
 
             FlowerDic.Add(flowerInfo.Id, flowerInfo);
         }

+ 1 - 1
Assets/Script/Manage/ManaPlayer.cs

@@ -17,7 +17,7 @@ public class ManaPlayer : MonoBehaviour
 
     private void Awake()
     {
-        Transform tra = ManaReso.Get("Player", Folder.Object, ManaReso.Get("GardenSrA"), true, false);
+        Transform tra = ManaReso.Get("Player", Folder.Object, ManaReso.Get("Garden"), true, false);
 
         tra.AddComponent<Player>();
 

+ 2 - 6
Assets/Script/Manage/ManaReso.cs

@@ -323,7 +323,6 @@ public class ManaReso : MonoBehaviour
                 Get<Button>("F_MagicTab").interactable = true;
                 Get<Button>("F_GardenTab").interactable = true;
 
-                SetActive("F_SkillBar", false);
                 SetActive("Fd_ElfTab", true);
                 SetActive("Fc_StoreTab", false);
                 SetActive("Fb_MagicTab", false);
@@ -345,7 +344,6 @@ public class ManaReso : MonoBehaviour
                 Get<Button>("F_MagicTab").interactable = true;
                 Get<Button>("F_GardenTab").interactable = true;
 
-                SetActive("F_SkillBar", false);
                 SetActive("Fd_ElfTab", false);
                 SetActive("Fc_StoreTab", true);
                 SetActive("Fb_MagicTab", false);
@@ -367,7 +365,6 @@ public class ManaReso : MonoBehaviour
                 Get<Button>("F_StoreTab").interactable = true;
                 Get<Button>("F_GardenTab").interactable = true;
 
-                SetActive("F_SkillBar", false);
                 SetActive("Fd_ElfTab", false);
                 SetActive("Fc_StoreTab", false);
                 SetActive("Fb_MagicTab", true);
@@ -389,7 +386,6 @@ public class ManaReso : MonoBehaviour
                 Get<Button>("F_StoreTab").interactable = true;
                 Get<Button>("F_MagicTab").interactable = true;
 
-                SetActive("F_SkillBar", true);
                 SetActive("Fd_ElfTab", false);
                 SetActive("Fc_StoreTab", false);
                 SetActive("Fb_MagicTab", false);
@@ -709,7 +705,7 @@ public class ManaReso : MonoBehaviour
                 Save(ManaMiniGame.OpFlowerList[i]);
             }
 
-            Get("C_EnterGameA").SetActive(true);
+            SetActive("C_EnterGameA", true);
         };
 
         #endregion
@@ -925,7 +921,7 @@ public class ManaReso : MonoBehaviour
 
         go = Instantiate(go, par, worldSpace);
         go.name = go.name.Replace("(Clone)", "");
-
+        
         if (compile)
         {
             Auxiliary.CompileDic(go.transform, TraDic);

+ 15 - 12
Assets/Script/Object/Flower.cs

@@ -27,7 +27,7 @@ public class FlowerInfo
     public Image Image;
     public Button Button;
 
-    public FlowerInfo(Sprite sprite, XmlAttributeCollection attributes)
+    public FlowerInfo(XmlAttributeCollection attributes)
     {
         Transform tra = ManaReso.Get("G_FlowerItem", Folder.PrefabUI, ManaReso.Get("G_RegularGrid"), false, false);
 
@@ -36,25 +36,28 @@ public class FlowerInfo
         Button = tra.GetComponent<Button>();
 
         Id = int.Parse(attributes[0].Value);
-        Sprite = sprite;
+        Sprite = ManaReso.Load<Sprite>(attributes[3].Value, Folder.Garden);
         Name = attributes[1].Value;
         Description = attributes[2].Value;
 
-        Image.sprite = sprite;
-        //if (sprite != null)
-        //{
-        //    float scale = tra.GetComponent<RectTransform>().sizeDelta.x / sprite.rect.size.x;
-        //    Vector2 newSize = sprite.rect.size;
-        //    newSize.x = scale * tra.GetComponent<RectTransform>().sizeDelta.x;
-        //    newSize.y = scale * tra.GetComponent<RectTransform>().sizeDelta.y;
-        //    Image.rectTransform.sizeDelta = newSize;
-        //}
+        Image.sprite = Sprite;
+        Vector2 newSize = Sprite.rect.size;
+        newSize.x *= 0.2f;
+        newSize.y *= 0.2f;
+        Image.rectTransform.sizeDelta = newSize;
 
         Button.onClick.AddListener
         (
             () =>
             {
-                ManaGarden.PlaceFlower(Id);
+                if (Plant == 0)
+                {
+                    ManaGarden.PlaceFlower(Id);
+                }
+                else
+                {
+                    ManaMessage.Show("已经种植过了",1);
+                }
             }
         );
     }

+ 1 - 1
Assets/Script/Object/Player.cs

@@ -97,7 +97,7 @@ public class Player : MonoBehaviour
 
         #endregion
 
-        ManaReso.GetHudTarget("C_EnterGameA", ChildDic["GameBtnTraA"], ManaReso.Get("C_Main"));
+        ManaReso.Get("C_EnterGameA", Folder.PrefabUI, Camera.main.WorldToScreenPoint(ChildDic["GameBtnTraA"].position), Quaternion.identity, ManaReso.Get("C_Main"));
     }
 
 

+ 9 - 2
Assets/Script/Object/Skill/Ability.cs

@@ -123,6 +123,11 @@ public class Ability : SkillRoot
     }
 
 
+    public override void Annul()
+    {
+        
+    }
+
     protected override void RegistValue()
     {
         NewUpgradeAmt = UpgradeAmt;
@@ -288,8 +293,9 @@ public class Ability : SkillRoot
         SkillProcessor processor = new SkillProcessor();
         
         processor.Name = Name;
+        processor.SkillRoot = this;
+        processor.Duration = 0;
         processor.IsCurrent = false;
-        processor.IsPermanent = true;
 
         processor.Plus = Plus;
         processor.SkillCdBuff = SkillCdBuff;
@@ -307,8 +313,9 @@ public class Ability : SkillRoot
         SkillProcessor processor = new SkillProcessor();
 
         processor.Name = Name;
+        processor.SkillRoot = this;
+        processor.Duration = 0;
         processor.IsCurrent = false;
-        processor.IsPermanent = true;
 
         processor.Plus = NewPlus;
         processor.SkillCdBuff = NewSkillCdBuff;

+ 73 - 12
Assets/Script/Object/Skill/BigSkill.cs

@@ -38,7 +38,7 @@ public class BigSkill : Skill
                 Timer = CD * (1 + CdBuff);
                 ManaData.CoolList.Add(this);
             }
-            else if (_BarSkillStatus == SkillStatus.Ready)
+            else if (_BarSkillStatus == SkillStatus.Buy)
             {
                 if (Class != SkillClass.Null) //有技能条
                 {
@@ -52,7 +52,7 @@ public class BigSkill : Skill
                         BarLab.text = "";
                         //BarLab.text = Name;
                     }
-                    else if (ItemSkillStatus == SkillStatus.Ready) //需要购买
+                    else if (ItemSkillStatus == SkillStatus.Buy) //需要购买
                     {
                         BarBk0.SetActive(false);
                         BarBk1.SetActive(true);
@@ -83,6 +83,10 @@ public class BigSkill : Skill
                     #endregion
                 }
             }
+            else if (_BarSkillStatus == SkillStatus.Use)
+            {
+                
+            }
             else
             {
                 throw new Exception();
@@ -132,6 +136,12 @@ public class BigSkill : Skill
     }
 
 
+    public override void Annul()
+    {
+        BarLab.color = new Color(1, 1, 1, 1);
+        BarSkillStatus = SkillStatus.CD;
+    }
+
     protected override void RegistValue()
     {
         Level = 0;
@@ -169,8 +179,6 @@ public class BigSkill : Skill
         {
             BarBk1.sprite = ManaReso.Load<Sprite>(Icon + "副", Folder.Skill);
         }
-
-        BarSkillStatus = SkillStatus.Ready;
     }
 
     protected override void RegistReference()
@@ -179,6 +187,37 @@ public class BigSkill : Skill
     }
 
 
+    public override void Cool(float amt, bool isCurrent, bool isBuff)
+    {
+        if (!ReduceCD && BarSkillStatus == SkillStatus.CD)
+        {
+            return;
+        }
+
+        if (isCurrent) //减少当前值
+        {
+            if (isBuff) //按比例减少
+            {
+                Timer -= CD * amt;
+            }
+            else //按数值减少
+            {
+                Timer -= amt;
+            }
+        }
+        else //减少最大值
+        {
+            if (isBuff) //按比例减少
+            {
+                CdBuff -= amt;
+            }
+            else //按数值减少
+            {
+                CD -= amt;
+            }
+        }
+    }
+
     public override bool Cool()
     {
         Timer -= Time.deltaTime;
@@ -191,7 +230,7 @@ public class BigSkill : Skill
 
         if (Timer <= 0)
         {
-            BarSkillStatus = SkillStatus.Ready;
+            BarSkillStatus = SkillStatus.Buy;
 
             return true;
         }
@@ -204,23 +243,34 @@ public class BigSkill : Skill
 
     protected void TryActivate()
     {
-        if (BarSkillStatus == SkillStatus.Ready)
-        {
-            BarSkillStatus = SkillStatus.Ready;
-        }
+        BarSkillStatus = SkillStatus.Buy;
     }
 
     protected override void Use()
     {
+        if (BarSkillStatus == SkillStatus.Use)
+        {
+            return;
+        }
+
         if (ManaData.Pay(UseAmt, UseCur))
         {
-            BarSkillStatus = SkillStatus.CD;
+            if (Math.Abs(Duration) < 0.0005f)
+            {
+                BarSkillStatus = SkillStatus.CD;
+            }
+            else
+            {
+                BarSkillStatus = SkillStatus.Use;
+                BarLab.color = new Color(38/255f, 155/255f, 1, 1);
+            }
 
             SkillProcessor processor = new SkillProcessor();
 
             processor.Name = Name;
+            processor.SkillRoot = this;
+            processor.TimerLab = BarLab;
             processor.IsCurrent = true;
-            processor.IsPermanent = false;
 
             processor.Plus = NewPlus;
             processor.SkillCdBuff = NewSkillCdBuff;
@@ -243,6 +293,17 @@ public class BigSkill : Skill
         if (ManaData.Pay(UnlockAmt, UnlockCur))
         {
             TryActivate();
+            
+            if (!ManaData.SkillBarValid)
+            {
+                RectTransform skillBar = ManaReso.Get<RectTransform>("F_SkillBar");
+                RectTransform gardenScrr = ManaReso.Get<RectTransform>("Fa_GardenScrr");
+
+                skillBar.SetActive(true);
+                gardenScrr.offsetMax += new Vector2(0, -skillBar.rect.height);
+
+                ManaData.SkillBarValid = true;
+            }
 
             if (Class != SkillClass.Null) //该技能有技能条
             {
@@ -257,7 +318,7 @@ public class BigSkill : Skill
             }
             else
             {
-                ItemSkillStatus = SkillStatus.Ready;
+                ItemSkillStatus = SkillStatus.Buy;
             }
 
             ManaLog.Log(string.Format("技能<color=red>{0}</color>已解锁", Name));

+ 12 - 6
Assets/Script/Object/Skill/Pack.cs

@@ -44,7 +44,7 @@ public class Pack : SkillRoot
         {
             _ItemSkillStatus = value;
 
-            if (_ItemSkillStatus == SkillStatus.Ready)
+            if (_ItemSkillStatus == SkillStatus.Buy)
             {
                 ItemBtn.interactable = true;
 
@@ -95,7 +95,12 @@ public class Pack : SkillRoot
         _ItemSkillStatus = SkillStatus.Lock; //todo 删掉这句
     }
 
-    
+
+    public override void Annul()
+    {
+        
+    }
+
     protected override void RegistValue()
     {
         Level = 0;
@@ -117,7 +122,7 @@ public class Pack : SkillRoot
     {
         if (MaxUseLv == MinUseLv)
         {
-            ItemSkillStatus = SkillStatus.Ready;
+            ItemSkillStatus = SkillStatus.Buy;
         }
         else
         {
@@ -127,7 +132,7 @@ public class Pack : SkillRoot
             }
             else
             {
-                ItemSkillStatus = SkillStatus.Ready;
+                ItemSkillStatus = SkillStatus.Buy;
             }
         }
     }
@@ -147,7 +152,7 @@ public class Pack : SkillRoot
             ManaReso.SetActive("Fe_Lab0", false);
         }
 
-        if (ItemSkillStatus == SkillStatus.Ready)
+        if (ItemSkillStatus == SkillStatus.Buy)
         {
             ManaReso.SetText("Fe_Lab1", GetDescription(0));
             ManaReso.SetText("Fe_BtnLab", string.Format("购买({0}{1})", UseCur, UseAmt));
@@ -176,8 +181,9 @@ public class Pack : SkillRoot
             SkillProcessor processor = new SkillProcessor();
 
             processor.Name = Name;
+            processor.SkillRoot = this;
+            processor.Duration = 0;
             processor.IsCurrent = false;
-            processor.IsPermanent = true;
 
             processor.Plus = Plus;
             processor.SkillCdBuff = SkillCdBuff;

+ 33 - 10
Assets/Script/Object/Skill/Skill.cs

@@ -86,10 +86,14 @@ public class Skill : SkillRoot
                 
                 ManaData.CoolList.Add(this);
             }
-            else if (_ItemSkillStatus == SkillStatus.Ready)
+            else if (_ItemSkillStatus == SkillStatus.Buy)
             {
                 ItemBtnLab.text = string.Format("购买\n{0}{1}", UseCur, UseAmt);
             }
+            else if (_ItemSkillStatus == SkillStatus.Use)
+            {
+                
+            }
             else if (_ItemSkillStatus == SkillStatus.Lock)
             {
                 ItemBtnLab.text = string.Format("提前解锁\n等级{0}", UnlockLv);
@@ -159,6 +163,12 @@ public class Skill : SkillRoot
     }
 
 
+    public override void Annul()
+    {
+        ItemBtnLab.color = new Color(1, 1, 1, 1);
+        ItemSkillStatus = SkillStatus.CD;
+    }
+
     protected override void RegistValue()
     {
         Level = 0;
@@ -188,9 +198,9 @@ public class Skill : SkillRoot
     }
 
 
-    public void Cool(float amt, bool isCurrent, bool isBuff)
+    public virtual void Cool(float amt, bool isCurrent, bool isBuff)
     {
-        if (!ReduceCD)
+        if (!ReduceCD && ItemSkillStatus == SkillStatus.CD)
         {
             return;
         }
@@ -229,7 +239,7 @@ public class Skill : SkillRoot
 
         if (Timer <= 0)
         {
-            ItemSkillStatus = SkillStatus.Ready;
+            ItemSkillStatus = SkillStatus.Buy;
 
             return true;
         }
@@ -263,7 +273,7 @@ public class Skill : SkillRoot
         ManaReso.Get("Fe_ManageInfo").Forward(TweenType.CG);
         ManaReso.SetText("Fe_Tit", Name);
 
-        if (ItemSkillStatus == SkillStatus.Ready)
+        if (ItemSkillStatus == SkillStatus.Buy)
         {
             ManaReso.SetText("Fe_Lab1", GetDescription(0));
             ManaReso.SetText("Fe_BtnLab", string.Format("购买({0}{1})", UseCur, UseAmt));
@@ -278,6 +288,10 @@ public class Skill : SkillRoot
                 }
             );
         }
+        else if (ItemSkillStatus == SkillStatus.Use)
+        {
+            
+        }
         else if (ItemSkillStatus == SkillStatus.Lock)
         {
             ManaReso.SetText("Fe_Lab0", "");
@@ -336,13 +350,22 @@ public class Skill : SkillRoot
     {
         if (ManaData.Pay(UseAmt, UseCur))
         {
-            ItemSkillStatus = SkillStatus.CD;
-            
+            if (Math.Abs(Duration) < 0.0005f)
+            {
+                ItemSkillStatus = SkillStatus.CD;
+            }
+            else
+            {
+                ItemSkillStatus = SkillStatus.Use;
+                ItemBtnLab.color = new Color(38/255f, 155/255f, 1, 1);
+            }
+
             SkillProcessor processor = new SkillProcessor();
 
             processor.Name = Name;
+            processor.SkillRoot = this;
+            processor.TimerLab = ItemBtnLab;
             processor.IsCurrent = true;
-            processor.IsPermanent = false;
 
             processor.Plus = NewPlus;
             processor.SkillCdBuff = NewSkillCdBuff;
@@ -366,7 +389,7 @@ public class Skill : SkillRoot
         {
             if (UseCur != Current.Free) //使用类型
             {
-                ItemSkillStatus = SkillStatus.Ready;
+                ItemSkillStatus = SkillStatus.Buy;
             }
             else if (UpgradeCur != Current.Free) //升级类型
             {
@@ -394,7 +417,7 @@ public class Skill : SkillRoot
         {
             if (UseCur != Current.Free) //使用类型
             {
-                ItemSkillStatus = SkillStatus.Ready;
+                ItemSkillStatus = SkillStatus.Buy;
             }
             else if (UpgradeCur != Current.Free) //升级类型
             {

+ 19 - 17
Assets/Script/Object/Skill/SkillProcessor.cs

@@ -1,8 +1,10 @@
 using UnityEngine;
+using UnityEngine.UI;
 
 using System;
 using System.Text;
 using System.Collections;
+using System.Collections.Generic;
 
 public class SkillProcessor 
 {
@@ -22,20 +24,20 @@ public class SkillProcessor
 
     public float Timer; //技能效果计时
     public bool IsCurrent; //减少CD的当前值或最大值
-    public bool IsPermanent; //该技能是否永久有效
     public string Name;
+    public Text TimerLab;
+    public SkillRoot SkillRoot;
 
     #endregion
 
     public void Annul() //注销技能
     {
-        if (!IsPermanent)
-        {
-            ManaData.Plus -= Plus;
-            ManaData.PersonBuff -= PersonBuff;
-            ManaData.TempPerson -= Person;
-            ManaData.TempCoinPerson -= CoinPerson;
-        }
+        SkillRoot.Annul();
+
+        ManaData.Plus -= Plus;
+        ManaData.PersonBuff -= PersonBuff;
+        ManaData.TempPerson -= Person;
+        ManaData.TempCoinPerson -= CoinPerson;
 
         if (Math.Abs(SkillCD) > 0.0005f)
         {
@@ -79,6 +81,8 @@ public class SkillProcessor
 
         if (Math.Abs(Duration) > 0.0005f)
         {
+            Timer = Duration;
+
             ManaData.ProcessorList.Add(this);
         }
 
@@ -104,7 +108,6 @@ public class SkillProcessor
             
             for (int i = 0; i < ManaData.BigSkillList.Count; i++)
             {
-                
                 ManaData.BigSkillList[i].Cool(SkillCdBuff, IsCurrent, true);
             }
         }
@@ -174,16 +177,13 @@ public class SkillProcessor
             strb.AppendFormat(" 获得钻石<color=red>{0}</color>", DiamondOnce);
         }
 
-        if (IsPermanent)
+        if (Math.Abs(Duration) > 0.0005f)
         {
-            strb.Append(" <color=red>永久有效</color>");
+            strb.AppendFormat(" 持续时间<color=red>{0}</color>秒", Duration);
         }
         else
         {
-            if (Math.Abs(Duration) > 0.0005f)
-            {
-                strb.AppendFormat(" 持续时间<color=red>{0}</color>秒", Duration);
-            }
+            strb.Append(" <color=red>永久有效</color>");
         }
 
         ManaLog.Log(strb.ToString());
@@ -193,9 +193,11 @@ public class SkillProcessor
 
     public bool CountDown()
     {
-        Timer += Time.deltaTime;
+        Timer -= Time.deltaTime;
 
-        if (Timer >= Duration)
+        TimerLab.text = Timer.ToString("0.0");
+        
+        if (Timer <= 0)
         {
             return true;
         }

+ 5 - 2
Assets/Script/Object/Skill/SkillRoot.cs

@@ -29,8 +29,9 @@ public enum SkillClass
 public enum SkillStatus
 {
     CD, //冷却中
-    Lock,
-    Ready, //付费使用
+    Buy, //需要购买
+    Use, //使用中
+    Lock, //需要提前解锁
     UnLock, //需要解锁
     Upgrade,
 }
@@ -88,6 +89,8 @@ public abstract class SkillRoot : IComparable
         }
     }
 
+    public abstract void Annul();
+
     #region 解读器
 
     private string Calculate1(string str)

BIN
Assets/XlsxSource/flower_config.xlsx


BIN
Assets/XlsxSource/skill_config.xlsx