Browse Source

Temp 4.12

LiuQilin 8 years ago
parent
commit
d5b56c3446

BIN
.vs/MyLovelyGarden/v14/.suo


BIN
Assets/Resource/Garden.unity


BIN
Assets/Resource/Prefab/Object/Garden.prefab


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


BIN
Assets/Resource/Prefab/PrefabUI/FlowerItemG.prefab


BIN
Assets/Resource/Prefab/PrefabUI/SkillItem.prefab


+ 2 - 2
Assets/Resource/XML/PlayerConfig.xml

@@ -1,5 +1,5 @@
 <PlayerConfig>
-  <Version value="37" />
+  <Version value="48" />
   
   <Player value="PlayerBlond" />
   <QuitTime value="2/3/2017 09:30:00 AM" />
@@ -8,7 +8,7 @@
   <Coin value="0" />
   <Level value="0" />
   <Person value="0" />
-  <Tutorial value="1" />
+  <Tutorial value="0" />
   <Diamond value="0" />
   <SignIndex value="0" />
   <MiniTimer value="0" />

+ 226 - 139
Assets/Script/Manage/ManaAnim.cs

@@ -12,6 +12,15 @@ public enum Curve
     EaseOutQuad,
 }
 
+public enum EventType
+{
+    ForwardStart,
+    BackwardStart,
+    ForwardFinish,
+    BackwardFinish,
+}
+
+
 public delegate float ShakeFunctionF(float timer, float duration, int repeat, float start, float strength);
 
 public delegate Color ShakeFunctionC(float timer, float duration, int repeat, Color start, Color strength);
@@ -409,154 +418,174 @@ public class ManaAnim : Regist
 
     #region 播放动画
 
-    public static void Shake(Transform target, float duration, int repeat, Vector3 strength, Curve curve)
+    public static Shake Shake(Transform target, float duration, int repeat, Vector3 strength, Curve curve)
     {
-        Shake shake;
+        Shake move;
 
-        if (ShakeDic.TryGetValue(target, out shake))
+        if (ShakeDic.TryGetValue(target, out move))
         {
-            shake.StartShake(repeat, duration, strength, curve);
+            move.StartShake(repeat, duration, strength, curve);
         }
         else
         {
-            shake = CreateShake(target);
+            move = CreateShake(target);
 
-            shake.StartShake(repeat, duration, strength, curve);
+            move.StartShake(repeat, duration, strength, curve);
         }
+
+        return move;
     }
 
-    public static void Move2D(Transform target, Vector3 destination, float duration, bool local, Curve curve)
+    public static Move2D Move2D(Transform target, Vector3 destination, float duration, bool local, Curve curve)
     {
-        Move2D move2D;
+        Move2D move;
 
-        if (MoveDic2D.TryGetValue(target, out move2D))
+        if (MoveDic2D.TryGetValue(target, out move))
         {
-            move2D.StartMove(destination, duration, local, curve);
+            move.StartMove(destination, duration, local, curve);
         }
         else
         {
-            move2D = CreateMove2D(target);
+            move = CreateMove2D(target);
 
-            move2D.StartMove(destination, duration, local, curve);
+            move.StartMove(destination, duration, local, curve);
         }
+
+        return move;
     }
 
-    public static void Move3D(Transform target, Vector3 destination, float duration, bool local, Curve curve)
+    public static Move3D Move3D(Transform target, Vector3 destination, float duration, bool local, Curve curve)
     {
-        Move3D move3D;
+        Move3D move;
 
-        if (MoveDic3D.TryGetValue(target, out move3D))
+        if (MoveDic3D.TryGetValue(target, out move))
         {
-            move3D.StartMove(destination, duration, local, curve);
+            move.StartMove(destination, duration, local, curve);
         }
         else
         {
-            move3D = CreateMove3D(target);
+            move = CreateMove3D(target);
 
-            move3D.StartMove(destination, duration, local, curve);
+            move.StartMove(destination, duration, local, curve);
         }
+
+        return move;
     }
 
 
-    public static void TweenForSr(Transform target)
+    public static TweenSr TweenForSr(Transform target)
     {
-        TweenSr tweenSr;
+        TweenSr tween;
 
-        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        if (TweenSrDic.TryGetValue(target, out tween))
         {
-            tweenSr.StartForward();
+            tween.StartForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenForCG(Transform target)
+    public static TweenCG TweenForCG(Transform target)
     {
-        TweenCG tweenCG;
+        TweenCG tween;
 
-        if (TweenCgDic.TryGetValue(target, out tweenCG))
+        if (TweenCgDic.TryGetValue(target, out tween))
         {
-            tweenCG.StartForward();
+            tween.StartForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenForGra(Transform target)
+    public static TweenGra TweenForGra(Transform target)
     {
-        TweenGra tweenGra;
+        TweenGra tween;
 
-        if (TweenGraDic.TryGetValue(target, out tweenGra))
+        if (TweenGraDic.TryGetValue(target, out tween))
         {
-            tweenGra.StartForward();
+            tween.StartForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenForVec(Transform target)
+    public static TweenVec TweenForVec(Transform target)
     {
-        TweenVec tweenVec;
+        TweenVec tween;
 
-        if (TweenVecDic.TryGetValue(target, out tweenVec))
+        if (TweenVecDic.TryGetValue(target, out tween))
         {
-            tweenVec.StartForward();
+            tween.StartForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenForText(Transform target)
+    public static TweenText TweenForText(Transform target)
     {
-        TweenText tweenText;
+        TweenText tween;
 
-        if (TweenTextDic.TryGetValue(target, out tweenText))
+        if (TweenTextDic.TryGetValue(target, out tween))
         {
-            tweenText.StartForward();
+            tween.StartForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenForRect(Transform target)
+    public static TweenRect TweenForRect(Transform target)
     {
-        TweenRect tweenRect;
+        TweenRect tween;
 
-        if (TweenRectDic.TryGetValue(target, out tweenRect))
+        if (TweenRectDic.TryGetValue(target, out tween))
         {
-            tweenRect.StartForward();
+            tween.StartForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenForScale(Transform target)
+    public static TweenScale TweenForScale(Transform target)
     {
-        TweenScale tweenScale;
+        TweenScale tween;
 
-        if (TweenScaleDic.TryGetValue(target, out tweenScale))
+        if (TweenScaleDic.TryGetValue(target, out tween))
         {
-            tweenScale.StartForward();
+            tween.StartForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenForAudio(Transform target)
+    public static TweenAudio TweenForAudio(Transform target)
     {
         TweenAudio tween;
 
@@ -568,9 +597,11 @@ public class ManaAnim : Regist
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenForNumber(Transform target)
+    public static TweenNumber TweenForNumber(Transform target)
     {
         TweenNumber tween;
 
@@ -582,108 +613,124 @@ public class ManaAnim : Regist
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
 
-    public static void TweenBacSr(Transform target)
+    public static TweenSr TweenBacSr(Transform target)
     {
-        TweenSr tweenSr;
+        TweenSr tween;
 
-        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        if (TweenSrDic.TryGetValue(target, out tween))
         {
-            tweenSr.StartBackward();
+            tween.StartBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenBacCG(Transform target)
+    public static TweenCG TweenBacCG(Transform target)
     {
-        TweenCG tweenCG;
+        TweenCG tween;
 
-        if (TweenCgDic.TryGetValue(target, out tweenCG))
+        if (TweenCgDic.TryGetValue(target, out tween))
         {
-            tweenCG.StartBackward();
+            tween.StartBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenBacGra(Transform target)
+    public static TweenGra TweenBacGra(Transform target)
     {
-        TweenGra tweenGra;
+        TweenGra tween;
 
-        if (TweenGraDic.TryGetValue(target, out tweenGra))
+        if (TweenGraDic.TryGetValue(target, out tween))
         {
-            tweenGra.StartBackward();
+            tween.StartBackward();
         }
         else
         {
             throw new Exception(target.name);
         }
+
+        return tween;
     }
 
-    public static void TweenBacVec(Transform target)
+    public static TweenVec TweenBacVec(Transform target)
     {
-        TweenVec tweenVec;
+        TweenVec tween;
 
-        if (TweenVecDic.TryGetValue(target, out tweenVec))
+        if (TweenVecDic.TryGetValue(target, out tween))
         {
-            tweenVec.StartBackward();
+            tween.StartBackward();
         }
         else
         {
             throw new Exception(target.name);
         }
+
+        return tween;
     }
 
-    public static void TweenBacText(Transform target)
+    public static TweenText TweenBacText(Transform target)
     {
-        TweenText tweenText;
+        TweenText tween;
 
-        if (TweenTextDic.TryGetValue(target, out tweenText))
+        if (TweenTextDic.TryGetValue(target, out tween))
         {
-            tweenText.StartBackward();
+            tween.StartBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenBacRect(Transform target)
+    public static TweenRect TweenBacRect(Transform target)
     {
-        TweenRect tweenRect;
+        TweenRect tween;
 
-        if (TweenRectDic.TryGetValue(target, out tweenRect))
+        if (TweenRectDic.TryGetValue(target, out tween))
         {
-            tweenRect.StartBackward();
+            tween.StartBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenBacScale(Transform target)
+    public static TweenScale TweenBacScale(Transform target)
     {
-        TweenScale tweenScale;
+        TweenScale tween;
 
-        if (TweenScaleDic.TryGetValue(target, out tweenScale))
+        if (TweenScaleDic.TryGetValue(target, out tween))
         {
-            tweenScale.StartBackward();
+            tween.StartBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenBacAudio(Transform target)
+    public static TweenAudio TweenBacAudio(Transform target)
     {
         TweenAudio tween;
 
@@ -695,9 +742,11 @@ public class ManaAnim : Regist
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenBacNumber(Transform target)
+    public static TweenNumber TweenBacNumber(Transform target)
     {
         TweenNumber tween;
 
@@ -709,108 +758,124 @@ public class ManaAnim : Regist
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
 
-    public static void TweenConForSr(Transform target)
+    public static TweenSr TweenConForSr(Transform target)
     {
-        TweenSr tweenSr;
+        TweenSr tween;
 
-        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        if (TweenSrDic.TryGetValue(target, out tween))
         {
-            tweenSr.ConfineForward();
+            tween.ConfineForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConForCG(Transform target)
+    public static TweenCG TweenConForCG(Transform target)
     {
-        TweenCG tweenCG;
+        TweenCG tween;
 
-        if (TweenCgDic.TryGetValue(target, out tweenCG))
+        if (TweenCgDic.TryGetValue(target, out tween))
         {
-            tweenCG.ConfineForward();
+            tween.ConfineForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConForGra(Transform target)
+    public static TweenGra TweenConForGra(Transform target)
     {
-        TweenGra tweenGra;
+        TweenGra tween;
 
-        if (TweenGraDic.TryGetValue(target, out tweenGra))
+        if (TweenGraDic.TryGetValue(target, out tween))
         {
-            tweenGra.ConfineForward();
+            tween.ConfineForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConForVec(Transform target)
+    public static TweenVec TweenConForVec(Transform target)
     {
-        TweenVec tweenVec;
+        TweenVec tween;
 
-        if (TweenVecDic.TryGetValue(target, out tweenVec))
+        if (TweenVecDic.TryGetValue(target, out tween))
         {
-            tweenVec.ConfineForward();
+            tween.ConfineForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConForText(Transform target)
+    public static TweenText TweenConForText(Transform target)
     {
-        TweenText tweenText;
+        TweenText tween;
 
-        if (TweenTextDic.TryGetValue(target, out tweenText))
+        if (TweenTextDic.TryGetValue(target, out tween))
         {
-            tweenText.ConfineForward();
+            tween.ConfineForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConForRect(Transform target)
+    public static TweenRect TweenConForRect(Transform target)
     {
-        TweenRect tweenRect;
+        TweenRect tween;
 
-        if (TweenRectDic.TryGetValue(target, out tweenRect))
+        if (TweenRectDic.TryGetValue(target, out tween))
         {
-            tweenRect.ConfineForward();
+            tween.ConfineForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConForScale(Transform target)
+    public static TweenScale TweenConForScale(Transform target)
     {
-        TweenScale tweenScale;
+        TweenScale tween;
 
-        if (TweenScaleDic.TryGetValue(target, out tweenScale))
+        if (TweenScaleDic.TryGetValue(target, out tween))
         {
-            tweenScale.ConfineForward();
+            tween.ConfineForward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConForAudio(Transform target)
+    public static TweenAudio TweenConForAudio(Transform target)
     {
         TweenAudio tween;
 
@@ -822,9 +887,11 @@ public class ManaAnim : Regist
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConForNumber(Transform target)
+    public static TweenNumber TweenConForNumber(Transform target)
     {
         TweenNumber tween;
 
@@ -836,108 +903,124 @@ public class ManaAnim : Regist
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
 
-    public static void TweenConBacSr(Transform target)
+    public static TweenSr TweenConBacSr(Transform target)
     {
-        TweenSr tweenSr;
+        TweenSr tween;
 
-        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        if (TweenSrDic.TryGetValue(target, out tween))
         {
-            tweenSr.ConfineBackward();
+            tween.ConfineBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConBacCG(Transform target)
+    public static TweenCG TweenConBacCG(Transform target)
     {
-        TweenCG tweenCG;
+        TweenCG tween;
 
-        if (TweenCgDic.TryGetValue(target, out tweenCG))
+        if (TweenCgDic.TryGetValue(target, out tween))
         {
-            tweenCG.ConfineBackward();
+            tween.ConfineBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConBacGra(Transform target)
+    public static TweenGra TweenConBacGra(Transform target)
     {
-        TweenGra tweenGra;
-
-        if (TweenGraDic.TryGetValue(target, out tweenGra))
+        TweenGra tween;
+    
+        if (TweenGraDic.TryGetValue(target, out tween))
         {
-            tweenGra.ConfineBackward();
+            tween.ConfineBackward();
         }
         else
         {
             throw new Exception(target.name);
         }
+
+        return tween;
     }
 
-    public static void TweenConBacVec(Transform target)
+    public static TweenVec TweenConBacVec(Transform target)
     {
-        TweenVec tweenVec;
+        TweenVec tween;
 
-        if (TweenVecDic.TryGetValue(target, out tweenVec))
+        if (TweenVecDic.TryGetValue(target, out tween))
         {
-            tweenVec.ConfineBackward();
+            tween.ConfineBackward();
         }
         else
         {
             throw new Exception(target.name);
         }
+
+        return tween;
     }
 
-    public static void TweenConBacText(Transform target)
+    public static TweenText TweenConBacText(Transform target)
     {
-        TweenText tweenText;
+        TweenText tween;
 
-        if (TweenTextDic.TryGetValue(target, out tweenText))
+        if (TweenTextDic.TryGetValue(target, out tween))
         {
-            tweenText.ConfineBackward();
+            tween.ConfineBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConBacRect(Transform target)
+    public static TweenRect TweenConBacRect(Transform target)
     {
-        TweenRect tweenRect;
+        TweenRect tween;
 
-        if (TweenRectDic.TryGetValue(target, out tweenRect))
+        if (TweenRectDic.TryGetValue(target, out tween))
         {
-            tweenRect.ConfineBackward();
+            tween.ConfineBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConBacScale(Transform target)
+    public static TweenScale TweenConBacScale(Transform target)
     {
-        TweenScale tweenScale;
+        TweenScale tween;
 
-        if (TweenScaleDic.TryGetValue(target, out tweenScale))
+        if (TweenScaleDic.TryGetValue(target, out tween))
         {
-            tweenScale.ConfineBackward();
+            tween.ConfineBackward();
         }
         else
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConBacAudio(Transform target)
+    public static TweenAudio TweenConBacAudio(Transform target)
     {
         TweenAudio tween;
 
@@ -949,9 +1032,11 @@ public class ManaAnim : Regist
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
-    public static void TweenConBacNumber(Transform target)
+    public static TweenNumber TweenConBacNumber(Transform target)
     {
         TweenNumber tween;
 
@@ -963,6 +1048,8 @@ public class ManaAnim : Regist
         {
             throw new Exception();
         }
+
+        return tween;
     }
 
     #endregion

+ 101 - 2
Assets/Script/Manage/ManaData.cs

@@ -7,6 +7,7 @@ using System;
 using System.Xml;
 using System.Collections;
 using System.Collections.Generic;
+using UnityEngine.UI;
 
 public class ManaData : Regist 
 {
@@ -125,6 +126,26 @@ public class ManaData : Regist
 
             ManaDebug.Log(string.Format("已升级 花园等级 : <color=red>{0}</color>", _Level));
 
+            if (TabBtn == false)
+            {
+                if (_Level >= 20)
+                {
+                    TabBtn = true;
+
+                    ManaReso.Get<Graphic>("F_Elf").material = null;
+                    ManaReso.Get<Graphic>("F_Store").material = null;
+                    ManaReso.Get<Graphic>("F_Magic").material = null;
+
+                    ManaReso.Get<Graphic>("F_ElfLab").material = null;
+                    ManaReso.Get<Graphic>("F_StoreLab").material = null;
+                    ManaReso.Get<Graphic>("F_MagicLab").material = null;
+
+                    ManaReso.Get<Button>("F_Elf").interactable = true;
+                    ManaReso.Get<Button>("F_Store").interactable = true;
+                    ManaReso.Get<Button>("F_Magic").interactable = true;
+                }
+            }
+
             for (int i = 0; i < SkillList.Count; i++)
             {
                 SkillList[i].UpdateStatus();
@@ -246,6 +267,7 @@ public class ManaData : Regist
     public static int SignIndex;
     public static int MainDepth;
     public static bool Mini;
+    public static bool TabBtn;
     public static bool SkillBar;
     public static bool Connect;
     public static float OpTime = 90;
@@ -453,6 +475,11 @@ public class ManaData : Regist
         #endregion
     }
 
+    public override void TutorialInstantiate()
+    {
+        Instantiate();
+    }
+
 
     public override void RegistValueA()
     {
@@ -492,7 +519,7 @@ public class ManaData : Regist
 
         for (int i = 0; i < flowerList.Count; i++)
         {
-            ManaGarden.FlowerInfoList[flowerList[i]].Unlock = true;
+            ManaGarden.FlowerInfoList[flowerList[i]-1].Unlock = true;
         }
 
 
@@ -500,7 +527,7 @@ public class ManaData : Regist
 
         for (int i = 0; i < plantList.Count; i++)
         {
-            ManaGarden.PlantFlower(plantList[i].Key, plantList[i].Value);
+            ManaGarden.PlantFlower(plantList[i].Key-1, plantList[i].Value);
         }
 
         #endregion
@@ -628,6 +655,78 @@ public class ManaData : Regist
         {
             ManaGarden.UnlockSlot();
         }
+
+        #region 读花朵存档
+
+        List<int> flowerList = Data.GetFlowerList();
+
+        for (int i = 0; i < flowerList.Count; i++)
+        {
+            ManaGarden.FlowerInfoList[flowerList[i]-1].Unlock = true;
+        }
+
+
+        List<KV<int, string>> plantList = Data.GetPlantList();
+
+        for (int i = 0; i < plantList.Count; i++)
+        {
+            ManaGarden.PlantFlower(plantList[i].Key-1, plantList[i].Value);
+        }
+
+        #endregion
+
+        #region 读技能存档
+
+        float elapse = (float)DateTime.Now.Subtract(DateTime.Parse(Data.PlayerNode.SelectSingleNode("QuitTime").Attributes[0].Value)).TotalSeconds;
+
+        if (elapse > 43200)
+        {
+            elapse = 43200;
+        }
+
+        ManaDebug.Log(string.Format("离线时间<color=red>{0}</color>", elapse));
+
+        List<List<SkillRoot>> ffUseList = new List<List<SkillRoot>>();
+
+        if (elapse > CircleTimer)
+        {
+            int ffCircle = 1 + Mathf.FloorToInt((elapse - CircleTimer) / CircleTime);
+
+            ManaDebug.Log(string.Format("离线周期<color=red>{0}</color>", ffCircle));
+
+            for (int i = 0; i < ffCircle; i++)
+            {
+                ffUseList.Add(new List<SkillRoot>());
+            }
+        }
+        else
+        {
+            ManaDebug.Log(string.Format("离线周期<color=red>{0}</color>", 0));
+        }
+
+        List<XmlAttributeCollection> attributeList = Data.GetSkillList();
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            SkillRoot skillRoot = SkillDic[attributeList[i][0].Value];
+
+            skillRoot.RegistReference();
+
+            skillRoot.RegistValue(elapse, ffUseList, attributeList[i]);
+        }
+
+        #endregion
+
+        #region 读数据存档
+
+        Coin = Data.PlayerDouble("Coin");
+        Level = Data.PlayerInt("Level");
+        Diamond = Data.PlayerDouble("Diamond");
+        MiniTimer = Data.PlayerFloat("MiniTimer");
+
+        ManaDebug.Log(string.Format("<color=red>{0:0}</color>秒后激活小游戏", MiniTimer));
+
+        #endregion
     }
 
 

+ 55 - 14
Assets/Script/Manage/ManaMiniGame.cs

@@ -278,7 +278,7 @@ public class Award
             ManaReso.Get("Da_CoinLab").TweenForNumber();
         };
 
-        tween = ManaReso.Get("Da_CoinLab").GetTweenNumber();
+        ManaReso.Get("Da_CoinLab").GetTweenNumber();
 
         if (diamondFlag)
         {
@@ -289,7 +289,7 @@ public class Award
                 ManaReso.Get("Da_DiamondLab").TweenForNumber();
             };
 
-            tween = ManaReso.Get("Da_DiamondLab").GetTweenNumber();
+            ManaReso.Get("Da_DiamondLab").GetTweenNumber();
         }
         else
         {
@@ -300,7 +300,14 @@ public class Award
         }
 
 
-        tween = ManaReso.Get("Da_CoinLab").GetTweenNumber();
+        if (diamondFlag)
+        {
+            tween = ManaReso.Get("Da_DiamondLab").GetTweenNumber();
+        }
+        else
+        {
+            tween = ManaReso.Get("Da_CoinLab").GetTweenNumber();
+        }
 
         tween.OnForwardFinish = () =>
         {
@@ -316,6 +323,14 @@ public class Award
         {
             ManaReso.Get("Da_GetAward").TweenForCG();
         };
+
+
+        tween = ManaReso.Get("Da_GetAward").GetTweenCG();
+
+        tween.OnForwardFinish += () =>
+        {
+            Tutorial.HightScreen(ManaReso.Get("Da_GetAwardArrow0"), ManaReso.Get("Da_GetAwardArrow1"), ManaReso.Get("Da_GetAward"));
+        };
     }
 
     private void RegularAward(int score)
@@ -580,7 +595,14 @@ public class Award
 
         if (flowerFlag)
         {
-            tween = ManaReso.Get("Da_CoinLab").GetTweenNumber();
+            if (diamondFlag)
+            {
+                tween = ManaReso.Get("Da_DiamondLab").GetTweenNumber();
+            }
+            else
+            {
+                tween = ManaReso.Get("Da_CoinLab").GetTweenNumber();
+            }
 
             tween.OnForwardFinish = () =>
             {
@@ -593,10 +615,7 @@ public class Award
         }
         else
         {
-            ManaReso.Get("Da_CoinLab").GetTweenNumber().OnForwardFinish = () =>
-            {
-
-            };
+            ManaReso.Get("Da_CoinLab").GetTweenNumber().OnForwardFinish = null;
         }
 
         tween.OnForwardFinish = () =>
@@ -836,18 +855,19 @@ public class ManaMiniGame : Regist
 
                 OpTimer = OpTime;
 
-                Flower flower = IdleList[Random.Range(0, IdleList.Count)];
-
-                flower.CreateOp(OpList.Count);
-
-                OpList.Add(flower);
-                IdleList.Remove(flower);
+                Flower flower;
 
                 if (TutorialValid)
                 {
                     Pause = true;
                     TutorialValid = false;
 
+                    flower = IdleList[4];
+                    flower.CreateOp(OpList.Count);
+
+                    OpList.Add(flower);
+                    IdleList.Remove(flower);
+
                     if (OpList[0].OpType == OpType.Rip)
                     {
                         Tutorial.HightScreen(ManaReso.Get("D_RipArrow0"), ManaReso.Get("D_RipArrow1"), ManaReso.Get("D_Rip1"));
@@ -859,6 +879,10 @@ public class ManaMiniGame : Regist
                             {
                                 Pause = false;
                                 Tutorial.HightDisable();
+
+                                ManaReso.Get<GraphicRaycaster>("D_Rip1").enabled = true;
+                                ManaReso.Get<GraphicRaycaster>("D_Water1").enabled = true;
+                                ManaReso.Get<GraphicRaycaster>("D_Fertilize1").enabled = true;
                             }
                         );
                     }
@@ -873,6 +897,10 @@ public class ManaMiniGame : Regist
                             {
                                 Pause = false;
                                 Tutorial.HightDisable();
+
+                                ManaReso.Get<GraphicRaycaster>("D_Rip1").enabled = true;
+                                ManaReso.Get<GraphicRaycaster>("D_Water1").enabled = true;
+                                ManaReso.Get<GraphicRaycaster>("D_Fertilize1").enabled = true;
                             }
                         );
                     }
@@ -887,12 +915,25 @@ public class ManaMiniGame : Regist
                             {
                                 Pause = false;
                                 Tutorial.HightDisable();
+
+                                ManaReso.Get<GraphicRaycaster>("D_Rip1").enabled = true;
+                                ManaReso.Get<GraphicRaycaster>("D_Water1").enabled = true;
+                                ManaReso.Get<GraphicRaycaster>("D_Fertilize1").enabled = true;
                             }
                         );
                     }
 
                     SceneMask.SetArea(OpList[0].OperateIcon.transform, 0.1f, 0.125f);
                 }
+                else
+                {
+                    flower = IdleList.Random();
+
+                    flower.CreateOp(OpList.Count);
+
+                    OpList.Add(flower);
+                    IdleList.Remove(flower);
+                }
             }
         }
     }

+ 27 - 9
Assets/Script/Manage/ManaReso.cs

@@ -653,26 +653,44 @@ public class ManaReso : Regist
         Get(goName).SetActive(active);
     }
 
-    public static void SetButtonEvent(string goName, params UnityAction[] onClicks)
+    public static void SetButtonEvent(string goName, UnityAction onClick)
     {
         Button button = Get<Button>(goName);
 
         button.onClick = new Button.ButtonClickedEvent();
 
-        for (int i = 0; i < onClicks.Length; i++)
-        {
-            button.onClick.AddListener(onClicks[i]);
-        }
+            button.onClick.AddListener(onClick);
     }
 
-    public static void AddButtonEvent(string goName, params UnityAction[] onClicks)
+    public static void AddButtonEvent(string goName, UnityAction onClick)
     {
         Button button = Get<Button>(goName);
 
-        for (int i = 0; i < onClicks.Length; i++)
+        button.onClick.AddListener(onClick);
+    }
+
+    public static void PushButtonEvent(string goName, UnityAction onClick)
+    {
+        Button button = Get<Button>(goName);
+
+        Button.ButtonClickedEvent click = button.onClick;
+
+        button.onClick = new Button.ButtonClickedEvent();
+
+        button.onClick.AddListener(onClick);
+        button.onClick.AddListener(click.Invoke);
+    }
+
+    public static void AddButtonEventOnetime(string goName, UnityAction onClick)
+    {
+        Button button = Get<Button>(goName);
+
+        onClick += () =>
         {
-            button.onClick.AddListener(onClicks[i]);
-        }
+            button.onClick.RemoveListener(onClick);
+        };
+
+        button.onClick.AddListener(onClick);
     }
 
     #endregion

+ 380 - 12
Assets/Script/Manage/ManaTutorial.cs

@@ -21,6 +21,19 @@ public class ManaTutorial : Regist
     public override void RegistValueA()
     {
         ManaReso.SetActive("N_Tutorial", false);
+
+        Canvas[] canvases = ManaReso.Get("Canvas").GetComponentsInChildren<Canvas>(true);
+        GraphicRaycaster[] raycasters = ManaReso.Get("Canvas").GetComponentsInChildren<GraphicRaycaster>(true);
+
+        for (int i = 1; i < raycasters.Length; i++)
+        {
+            Destroy(raycasters[i]);
+        }
+
+        for (int i = 1; i < canvases.Length; i++)
+        {
+            Destroy(canvases[i]);
+        }
     }
 
     public override void TutorialRegistValue()
@@ -37,7 +50,7 @@ public class ManaTutorial : Regist
     }
 
 
-    public void EndStep1()
+    public static void EndStep1()
     {
         ManaReso.SetActive("PlayerBk1", false);
         ManaReso.SetActive("PlayerBk2", false);
@@ -48,8 +61,9 @@ public class ManaTutorial : Regist
         Tutorial.HightDisable();
     }
 
-    public void EndStep2()
+    public static void EndStep2()
     {
+        ManaReso.Get("C_Main").TweenBacCG();
         ManaReso.Get("N_Arrow").TweenBacCG();
 
         ManaReso.Get("N_Mask").GetTweenGra().OnForwardFinish = null;
@@ -58,13 +72,45 @@ public class ManaTutorial : Regist
         Tutorial.HightDisable();
     }
 
-    public void EndStep3()
+    public static void EndStep3()
+    {
+        Tutorial.HightDisable();
+    }
+
+    public static void EndStep4()
     {
+        Tutorial.HightDisable();
+    }
 
+    public static void EndStep5()
+    {
+        
     }
 
+    public static void EndStep6()
+    {
+        Tutorial.HightDisable();
+    }
 
-    public void PrepareStep1()
+    public static void EndStep7()
+    {
+        Tutorial.HightDisable(0, true);
+        ManaReso.Get("Fe_Info").TweenBacCG();
+    }
+
+    public static void EndStep8()
+    {
+        ManaReso.Get("Fe_Info").TweenBacCG();
+        Tutorial.HightDisable(0, true);
+    }
+
+    public static void EndStep9()
+    {
+        Tutorial.HightDisable();
+    }
+
+
+    public static void PrepareStep1()
     {
         ManaReso.AddButtonEvent
         (
@@ -99,7 +145,7 @@ public class ManaTutorial : Regist
         );
     }
 
-    public void PrepareStep2()
+    public static void PrepareStep2()
     {
         ManaReso.Get("N_Mask").TweenConForGra();
 
@@ -134,8 +180,10 @@ public class ManaTutorial : Regist
         );
     }
 
-    public void PrepareStep3()
+    public static void PrepareStep3()
     {
+        ManaReso.Get<BoxCollider2D>("TutorialMask").enabled = false;
+
         ManaReso.SetText("D_ScoreTit");
         ManaReso.SetText("D_BeginLab", Language.GetStr("UI", "D_BeginLab0"));
         ManaReso.SetText("D_StatusLab", Language.GetStr("UI", "D_StatusLab0"));
@@ -234,11 +282,11 @@ public class ManaTutorial : Regist
             ManaReso.SetText("D_BeginLab", Language.GetStr("UI", "D_BeginLab0"));
             ManaReso.SetText("D_StatusLab", Language.GetStr("UI", "D_StatusLab0"));
 
-            ManaReso.Get("C_Main").TweenBacCG();
+            //ManaReso.Get("C_Main").TweenBacCG();
 
             ManaReso.Get("MusicTheme").TweenBacAudio();
 
-            ManaReso.SetActive("E_Debug", false);
+            //ManaReso.SetActive("E_Debug", false);
 
             ManaData.MainDepth++;
 
@@ -263,7 +311,7 @@ public class ManaTutorial : Regist
         {
             ManaReso.Get("MusicTheme").TweenForAudio();
 
-            ManaReso.SetActive("E_Debug", true);
+            //ManaReso.SetActive("E_Debug", true);
         };
 
         #endregion
@@ -296,7 +344,7 @@ public class ManaTutorial : Regist
             "Da_GetAward",
             () =>
             {
-                ManaReso.Get("C_Main").TweenForCG();
+                //ManaReso.Get("C_Main").TweenForCG();
 
                 ManaReso.Get("D_MiniGame").TweenBacCG();
 
@@ -331,15 +379,335 @@ public class ManaTutorial : Regist
             Tutorial.HightScreen(ManaReso.Get("D_BeginArrow0"), ManaReso.Get("D_BeginArrow1"), ManaReso.Get("D_Begin"));
         };
 
-        ManaReso.AddButtonEvent
+        ManaReso.SetButtonEvent
         (
             "D_Begin",
             () =>
             {
                 Tutorial.HightDisable();
+                ManaMiniGame.Prepare = true;
+            }
+        );
+
+        ManaReso.AddButtonEvent
+        (
+            "Da_GetAward",
+            () =>
+            {
+                EndStep3();
+            }
+        );
+
+        tween = ManaReso.Get("D_MiniGame").GetTweenCG();
+
+        tween.OnBackwardFinish += () =>
+        {
+            PrepareStep4();
+        };
+    }
+
+    public static void PrepareStep4()
+    {
+        Tutorial.HightScene(0.1f, 0.075f, ManaReso.Get("SlotArrowA1"), ManaReso.Get("SlotA1"));
+
+        ManaReso.Get<BoxCollider2D>("TutorialMask").enabled = false;
+    }
+
+    public static void PrepareStep5()
+    {
+        #region G
+
+        ManaText.Add(ManaReso.Get<Text>("G_Tit"), new LanStr("UI", "G_Tit"));
+        ManaText.Add(ManaReso.Get<Text>("G_SpecialLab"), new LanStr("UI", "G_SpecialLab"));
+        ManaText.Add(ManaReso.Get<Text>("G_RegularLab"), new LanStr("UI", "G_RegularLab"));
+        ManaText.Add(ManaReso.Get<Text>("G_RetrieveLab"), new LanStr("UI", "G_RetrieveLab"));
+
+        #region G_Flower
+
+        Tween tween = ManaReso.Get("G_Flower").CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            if (ManaData.MainDepth == -1)
+            {
+                ManaReso.Get("C_Main").TweenBacCG();
+            }
+
+            ManaData.MainDepth++;
+
+            if (ManaGarden.MyFlowerSpec == 0)
+            {
+                ManaReso.SetActive("G_Special", false);
+            }
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            ManaData.MainDepth--;
+        };
+
+        #endregion
+
+        #region G_Special
+
+        ManaReso.AddButtonEvent
+        (
+            "G_Special",
+            () =>
+            {
+                ManaReso.SetActive("G_SpecialScrr", true);
+                ManaReso.SetActive("G_RegularScrr", false);
+
+                ManaReso.Get<Button>("G_Special").interactable = false;
+                ManaReso.Get<Button>("G_Regular").interactable = true;
+            }
+        );
+
+        #endregion
+
+        #region G_Regular
+
+        ManaReso.Get("G_Regular").CreateTweenVec2D(ManaReso.Get("G_PosTraL").position, ManaReso.Get("G_PosTraR").position, 0.25f, false, true, true, Curve.EaseOutQuad);
+
+        ManaReso.AddButtonEvent
+        (
+            "G_Regular",
+            () =>
+            {
+                ManaReso.SetActive("G_SpecialScrr", false);
+                ManaReso.SetActive("G_RegularScrr", true);
+
+                ManaReso.Get<Button>("G_Special").interactable = true;
+                ManaReso.Get<Button>("G_Regular").interactable = false;
+            }
+        );
+
+        #endregion
+
+        #region G_Retrieve
+
+        ManaReso.AddButtonEvent
+        (
+            "G_Retrieve",
+            () =>
+            {
+                ManaReso.Get("G_Flower").TweenBacCG();
+
+                ManaGarden.RetriveFlowerAll();
+            }
+        );
+
+        #endregion
+
+        #endregion   
+
+        ManaReso.Get("G_Flower").TweenForCG();
+
+        tween = ManaReso.Get("G_Flower").GetTweenCG();
+
+        tween.OnForwardFinish += () =>
+        {
+            Transform tra = ManaReso.Get("G_RegularGrid").GetChild(0);
+
+            Tutorial.HightScreen(tra.FindChild("ArrowPos"), tra);
+        };
+
+        ManaReso.AddButtonEvent
+        (
+            "G_Close",
+            () =>
+            {
+                ManaReso.Get("G_Flower").TweenBacCG();
+
+                Tutorial.HightDisable();
+            }
+        );
+
+        tween.OnBackwardFinish += () =>
+        {
+            EndStep5();
+            PrepareStep6();
+        };
+    }
+
+    public static void PrepareStep6()
+    {
+        #region C_Manage
 
-                ManaReso.Get("N_Arrow").TweenBacCG();
+        ManaReso.AddButtonEvent
+        (
+            "C_Manage",
+            () =>
+            {
+                ManaReso.Get("F_Manage0").TweenForVec();
             }
         );
+
+        #endregion
+
+        #region F
+
+        ManaText.Add(ManaReso.Get<Text>("F_StoreLab"), new LanStr("UI", "F_StoreLab"));
+        ManaText.Add(ManaReso.Get<Text>("F_MagicLab"), new LanStr("UI", "F_MagicLab"));
+        ManaText.Add(ManaReso.Get<Text>("F_GardenLab"), new LanStr("UI", "F_GardenLab"));
+
+        ManaText.Add(ManaReso.Get<Text>("Fg_Tit"), new LanStr("UI", "Fg_Tit"));
+        ManaText.Add(ManaReso.Get<Text>("Fg_Lab"), new LanStr("UI", "Fg_Lab"));
+        ManaText.Add(ManaReso.Get<Text>("Fg_BtnLab"), new LanStr("UI", "Fg_BtnLab"));
+
+        #region F_Manage
+
+        Tween tween = ManaReso.Get("F_Manage").CreateTweenGra(new Color(0, 0, 0, 180 / 255f), 0.5f, true, true, Curve.EaseOutQuad);
+
+        var tween1 = tween;
+        tween.OnForwardStart += () =>
+        {
+            tween1.Duration = 0.5f;
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            tween1.Duration = 0.25f;
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ManaReso.Get("F_Manage0").TweenBacVec();
+        };
+
+        tween = ManaReso.Get("F_Manage0").CreateTweenVec2D(ManaReso.Get("F_PosTra").position, 0.5f, false, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ManaReso.Get("C_Main").TweenBacCG();
+
+            ManaReso.SetActive("F_Manage", true);
+
+            ManaData.MainDepth++;
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            ManaReso.Get("F_Manage").TweenForGra();
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            ManaData.MainDepth--;
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ManaReso.Get("C_Main").TweenForCG();
+
+            ManaReso.SetActive("F_Manage", false);
+            ManaReso.SetActive("F_Manage0", false);
+        };
+
+        #endregion
+
+        #endregion
+
+        ManaReso.SetActive("C_Coin", true);
+        ManaReso.SetActive("C_Setting", true);
+        ManaReso.SetActive("C_Achieve", true);
+        ManaReso.SetActive("C_Manage", true);
+
+        ManaReso.Get("C_Main").TweenConForCG();
+
+        tween = ManaReso.Get("C_Main").GetTweenCG();
+        
+        tween.OnForwardFinish += () =>
+        {
+            Tutorial.HightScreen(ManaReso.Get("C_ManageArrow"), ManaReso.Get("C_Manage"));
+        };
+
+        ManaReso.AddButtonEvent
+        (
+            "C_Manage",
+            () =>
+            {
+                EndStep6();
+                PrepareStep7();
+            }
+        );
+    }
+
+    public static void PrepareStep7()
+    {
+        #region Fa_Scrr
+
+        RectTransform rectTra1 = ManaReso.Get<RectTransform>("Fa_Scrr");
+        RectTransform rectTra2 = ManaReso.Get<RectTransform>("Ff_SkillBar");
+
+        rectTra1.CreateTweenRect(rectTra1.rect.size + new Vector2(0, -rectTra2.rect.height), 0.25f, true, true, Curve.EaseOutQuad);
+
+        #endregion
+
+
+        #region Fe_Info
+
+        ManaReso.Get("Fe_Info").CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Fe_Close
+
+        ManaReso.AddButtonEvent
+        (
+            "Fe_Close",
+            () =>
+            {
+                ManaReso.Get("Fe_Info").TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        Tween tween = ManaReso.Get("F_Manage0").GetTweenVec();
+
+        tween.OnForwardFinish += () =>
+        {
+            Transform tra = ManaReso.Get("Fa_Grid").GetChild(0);
+
+            Tutorial.HightScreen(tra.FindChild("Arrow1"), tra.FindChild("Arrow0"), tra.FindChild("Btn"));
+        };
+
+        tween = ManaReso.Get("Fe_Info").GetTweenCG();
+
+        tween.OnForwardFinish = () =>
+        {
+            Tutorial.HightScreen(ManaReso.Get("Fe_BtnArrow0"), ManaReso.Get("Fe_BtnArrow1"), ManaReso.Get("Fe_Btn"));
+        };
+    }
+
+    public static void PrepareStep8()
+    {
+        Tween tween = ManaReso.Get("Fa_Scrr").GetTweenRect();
+
+        tween.OnForwardFinish += () =>
+        {
+            Transform tra = ManaData.SkillDic["Skill1"].SkillItem;
+
+            Tutorial.HightScreen(tra.FindChild("Arrow1"), tra.FindChild("Arrow0"), tra.FindChild("Btn"));
+        };
+        
+
+        tween = ManaReso.Get("Fe_Info").GetTweenCG();
+
+        tween.OnForwardFinish = () =>
+        {
+            Tutorial.HightScreen(ManaReso.Get("Fe_BtnArrow0"), ManaReso.Get("Fe_BtnArrow1"), ManaReso.Get("Fe_Btn"));
+        };
+    }
+
+    public static void PrepareStep9()
+    {
+        Tween tween = ManaReso.Get("Fe_Info").GetTweenCG();
+
+        tween.OnBackwardFinish = () =>
+        {
+            Tutorial.HightScreen(ManaReso.Get("F_SkillArrow00"), ManaReso.Get("F_Skill0"));
+        };
     }
 }

+ 38 - 9
Assets/Script/Object/Flower.cs

@@ -99,16 +99,17 @@ public class FlowerInfo
     public Image Image;
     public Button Button;
     public UIPartical UIPartical;
+    public Transform ItemTra;
 
     #endregion
 
     public FlowerInfo(XmlAttributeCollection attribute)
     {
-        Transform tra = ManaReso.Get("FlowerItemG", Folder.UI, false, ManaReso.Get("G_RegularGrid"),  false);
+        ItemTra = ManaReso.Get("FlowerItemG", Folder.UI, false, ManaReso.Get("G_RegularGrid"),  false);
 
         Dictionary<string, Transform> dic = new Dictionary<string, Transform>();
 
-        Auxiliary.CompileDic(tra, dic);
+        Auxiliary.CompileDic(ItemTra, dic);
 
         Text = dic["Lab"].GetComponent<Text>();
         Image = dic["Icon"].GetComponent<Image>();
@@ -128,13 +129,41 @@ public class FlowerInfo
         newSize.y *= 0.2f;
         Image.rectTransform.sizeDelta = newSize;
 
-        Button.onClick.AddListener
-        (
-            () =>
-            {
-                ManaGarden.PlantFlower(this);
-            }
-        );
+        if (Initializer.Tutorial)
+        {
+            Button.onClick.AddListener
+            (
+                () =>
+                {
+                    TutorialClick();
+                }
+            );
+        }
+        else
+        {
+            Button.onClick.AddListener
+            (
+                () =>
+                {
+                    RegularClick();
+                }
+            );
+        }
+    }
+
+
+    private void TutorialClick()
+    {
+        ManaGarden.PlantFlower(this);
+
+        Tutorial.HightDisable(ItemTra, false);
+
+        Tutorial.HightScreen(ManaReso.Get("G_CloseArrow"), ManaReso.Get("G_Close"));
+    }
+
+    private void RegularClick()
+    {
+        ManaGarden.PlantFlower(this);
     }
 }
 

+ 30 - 3
Assets/Script/Object/Garden.cs

@@ -107,12 +107,12 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
 
         Move2D move2D = GardenA.CreateMove2D();
 
-        move2D.OnStart += () =>
+        move2D.OnForwardStart += () =>
         {
             Flag2 = false;
         };
 
-        move2D.OnFinish += () =>
+        move2D.OnForwardFinish += () =>
         {
             Flag2 = true;
         };
@@ -356,11 +356,38 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
 
     public void OnPointerClick(PointerEventData eventData)
     {
+        if (Initializer.Tutorial)
+        {
+            TutorialClick(eventData);
+        }
+        else
+        {
+            RegularClick(eventData);
+        }
+    }
+
+
+    private void TutorialClick(PointerEventData eventData)
+    {
         if (!eventData.hovered.Contains(eventData.rawPointerPress))
         {
             return;
         }
-        
+
+        if (eventData.rawPointerPress.transform.name.Contains("Slot"))
+        {
+            ManaTutorial.EndStep4();
+            ManaTutorial.PrepareStep5();
+        }
+    }
+
+    private void RegularClick(PointerEventData eventData)
+    {
+        if (!eventData.hovered.Contains(eventData.rawPointerPress))
+        {
+            return;
+        }
+
         if (eventData.rawPointerPress.transform.name.Contains("Slot"))
         {
             Slot slot = eventData.rawPointerPress.GetComponent<Slot>();

+ 214 - 82
Assets/Script/Object/Skill/Ability.cs

@@ -257,98 +257,25 @@ public class Ability : SkillRoot
 
     protected void OnClick()
     {
-        if (ManaData.Connect == false)
-        {
-            ManaReso.Get("Fg_Reconnect").TweenForCG();
-
-            return;
-        }
-
-        ManaReso.Get("Fe_Info").TweenForCG();
-        ManaReso.SetText("Fe_Tit", Name);
-
-        if (ItemStatus == SkillStatus.Lock)
-        {
-            ManaReso.SetText("Fe_Lab0", "");
-            ManaReso.SetText("Fe_Lab1", Description(0));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab0"), ImageParse(UnlockAheadCur), UnlockAheadAmt));
-
-            ManaReso.SetButtonEvent
-            (
-                "Fe_Btn",
-                () =>
-                {
-                    UnlockAhead();
-                    ManaReso.Get("Fe_Info").TweenBacCG();
-                }
-            );
-        }
-        else if (ItemStatus == SkillStatus.UnLock)
-        {
-            ManaReso.SetText("Fe_Lab0", "");
-            ManaReso.SetText("Fe_Lab1", Description(0));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab1"), ImageParse(UnlockCur), UnlockAmt));
-
-            ManaReso.SetButtonEvent
-            (
-                "Fe_Btn",
-                () =>
-                {
-                    Unlock();
-                    ManaReso.Get("Fe_Info").TweenBacCG();
-                }
-            );
-        }
-        else if (ItemStatus == SkillStatus.Upgrade)
+        if (Initializer.Tutorial)
         {
-            ManaReso.SetText("Fe_Lab0", Description(0));
-            ManaReso.SetText("Fe_Lab1", Description(1));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
-
-            ManaReso.SetButtonEvent
-            (
-                "Fe_Btn",
-                () =>
-                {
-                    Upgrade();
-                }
-            );
+            TutorialClick();
         }
         else
         {
-            throw new Exception();
+            RegularClick();
         }
     }
 
     protected void Upgrade()
     {
-        if (ManaData.Pay(NewUpgradeAmt, UpgradeCur))
+        if (Initializer.Tutorial)
         {
-            Level++;
-
-            ManaData.ElfLevel++;
-
-            Annul();
-
-            NewUpgradeAmt = Auxiliary.FmlParse(UpgradeFml, "a", NewUpgradeAmt.ToString());
-            UpgradeValue(ref NewPerson, Person, UpgradePerson, 1);
-            UpgradeValue(ref NewSkillCD, SkillCD, UpgradeCD, 1);
-            UpgradeValue(ref NewCoinPerson, CoinPerson, UpgradePlus, 1);
-            
-            UpgradeValue(ref NewPlus, Plus, UpgradePlus, 1);
-            UpgradeValue(ref NewSkillCdBuff, UpgradeCD, 1);
-            UpgradeValue(ref NewPersonBuff, PersonBuff, UpgradePerson, 1);
-
-            ManaText.Add(ItemTit, new LanStr("SkillName", _Name), " ", (Level + 1).ToString());
-
-            ItemLab.text = Description(0);
-            ManaReso.SetText("Fe_Lab0", Description(0));
-            ManaReso.SetText("Fe_Lab1", Description(1));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
-
-            ManaDebug.Log(string.Format("<color=red>{0}</color> 升级 : {1}", Name, Level));
-
-            UseConti();
+            TutorialUpgrade();
+        }
+        else
+        {
+            RegularUpgrade();
         }
     }
 
@@ -486,6 +413,211 @@ public class Ability : SkillRoot
         }
     }
 
+
+    private void TutorialClick()
+    {
+        ManaReso.Get("Fe_Info").TweenForCG();
+        ManaReso.SetText("Fe_Tit", Name);
+        ManaReso.SetSprite("Fe_Icon", ItemIcon.sprite);
+
+        if (ItemStatus == SkillStatus.Lock)
+        {
+            ManaReso.SetText("Fe_Lab0", "");
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab0"), ImageParse(UnlockAheadCur), UnlockAheadAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    UnlockAhead();
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.UnLock)
+        {
+            ManaReso.SetText("Fe_Lab0", "");
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab1"), ImageParse(UnlockCur), UnlockAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Unlock();
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.Upgrade)
+        {
+            Tutorial.HightDisable(0, true);
+
+            ManaReso.SetText("Fe_Lab0", Description(0));
+            ManaReso.SetText("Fe_Lab1", Description(1));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Upgrade();
+
+                    ManaTutorial.EndStep7();
+                    ManaTutorial.PrepareStep8();
+                }
+            );
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    private void RegularClick()
+    {
+        if (ManaData.Connect == false)
+        {
+            ManaReso.Get("Fg_Reconnect").TweenForCG();
+
+            return;
+        }
+
+        ManaReso.Get("Fe_Info").TweenForCG();
+        ManaReso.SetText("Fe_Tit", Name);
+        ManaReso.SetSprite("Fe_Icon", ItemIcon.sprite);
+
+        if (ItemStatus == SkillStatus.Lock)
+        {
+            ManaReso.SetText("Fe_Lab0", "");
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab0"), ImageParse(UnlockAheadCur), UnlockAheadAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    UnlockAhead();
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.UnLock)
+        {
+            ManaReso.SetText("Fe_Lab0", "");
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab1"), ImageParse(UnlockCur), UnlockAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Unlock();
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.Upgrade)
+        {
+            ManaReso.SetText("Fe_Lab0", Description(0));
+            ManaReso.SetText("Fe_Lab1", Description(1));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Upgrade();
+                }
+            );
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    private void TutorialUpgrade()
+    {
+        if (_Name == "Ability1")
+        {
+            Level += 20;
+            ManaData.Level += 20;
+        }
+        else
+        {
+            Level++;
+        }
+
+        ManaData.ElfLevel++;
+
+        Annul();
+
+        NewUpgradeAmt = Auxiliary.FmlParse(UpgradeFml, "a", NewUpgradeAmt.ToString());
+        UpgradeValue(ref NewPerson, Person, UpgradePerson, 1);
+        UpgradeValue(ref NewSkillCD, SkillCD, UpgradeCD, 1);
+        UpgradeValue(ref NewCoinPerson, CoinPerson, UpgradePlus, 1);
+
+        UpgradeValue(ref NewPlus, Plus, UpgradePlus, 1);
+        UpgradeValue(ref NewSkillCdBuff, UpgradeCD, 1);
+        UpgradeValue(ref NewPersonBuff, PersonBuff, UpgradePerson, 1);
+
+        ManaText.Add(ItemTit, new LanStr("SkillName", _Name), " ", (Level + 1).ToString());
+
+        ItemLab.text = Description(0);
+        ManaReso.SetText("Fe_Lab0", Description(0));
+        ManaReso.SetText("Fe_Lab1", Description(1));
+        ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
+
+        ManaDebug.Log(string.Format("<color=red>{0}</color> 升级 : {1}", Name, Level));
+
+        UseConti();
+    }
+
+    private void RegularUpgrade()
+    {
+        if (ManaData.Pay(NewUpgradeAmt, UpgradeCur))
+        {
+            if (_Name == "Ability1")
+            {
+                ManaData.Level++;
+            }
+
+            Level++;
+
+            ManaData.ElfLevel++;
+
+            Annul();
+
+            NewUpgradeAmt = Auxiliary.FmlParse(UpgradeFml, "a", NewUpgradeAmt.ToString());
+            UpgradeValue(ref NewPerson, Person, UpgradePerson, 1);
+            UpgradeValue(ref NewSkillCD, SkillCD, UpgradeCD, 1);
+            UpgradeValue(ref NewCoinPerson, CoinPerson, UpgradePlus, 1);
+
+            UpgradeValue(ref NewPlus, Plus, UpgradePlus, 1);
+            UpgradeValue(ref NewSkillCdBuff, UpgradeCD, 1);
+            UpgradeValue(ref NewPersonBuff, PersonBuff, UpgradePerson, 1);
+
+            ManaText.Add(ItemTit, new LanStr("SkillName", _Name), " ", (Level + 1).ToString());
+
+            ItemLab.text = Description(0);
+            ManaReso.SetText("Fe_Lab0", Description(0));
+            ManaReso.SetText("Fe_Lab1", Description(1));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
+
+            ManaDebug.Log(string.Format("<color=red>{0}</color> 升级 : {1}", Name, Level));
+
+            UseConti();
+        }
+    }
+
     #region 解读器
 
     protected override string Description(int offset)

+ 162 - 58
Assets/Script/Object/Skill/BigSkill.cs

@@ -354,13 +354,104 @@ public class BigSkill : Skill
 
     protected override void Buy()
     {
-        if (ManaData.Connect == false)
+        if (Initializer.Tutorial)
         {
-            ManaReso.Get("Fg_Reconnect").TweenForCG();
+            TutorialBuy();
+        }
+        else
+        {
+            RegularBuy();
+        }
+    }
+
+    protected override void Unlock()
+    {
+        if (ManaData.Pay(UnlockAmt, UnlockCur))
+        {
+            ShowSkillBar();
+
+            BarBk1.material = null;
+
+            ItemStatus = SkillStatus.Upgrade;
+            BarStatus = SkillStatus.Buy;
+
+            if (SkillTab != SkillTab.Null)
+            {
+                ItemStatus = SkillStatus.Upgrade;
+            }
+            
+            ManaDebug.Log(string.Format("技能<color=red>{0}</color>已解锁", Name));
+        }
+    }
+
+    protected override void Upgrade()
+    {
+        if (ManaData.Pay(NewUpgradeAmt, UpgradeCur))
+        {
+            Level++;
+
+            if (BarStatus == SkillStatus.Use)
+            {
+                Annul();
+            }
+
+            NewUpgradeAmt = Auxiliary.FmlParse(UpgradeFml, "a", NewUpgradeAmt.ToString());
+
+            UpgradeValue(ref NewPlus, Plus, UpgradePlus, 1);
+            UpgradeValue(ref NewSkillCdBuff, UpgradeCD, 1);
+            UpgradeValue(ref NewPersonBuff, PersonBuff, UpgradePerson, 1);
+            UpgradeValue(ref NewCoinOnceBuff, UpgradeCoinOnce, 1);
+
+            UpgradeValue(ref NewPerson, Person, UpgradePerson, 1);
+            UpgradeValue(ref NewSkillCD, SkillCD, UpgradeCD, 1);
+            UpgradeValue(ref NewDuration, Duration, UpgradeDuration, 1);
+            UpgradeValue(ref NewCoinOnce, CoinOnce, UpgradeCoinOnce, 1);
+            UpgradeValue(ref NewCoinPerson, CoinPerson, UpgradePlus, 1);
+
+            ManaText.Add(ItemTit, new LanStr("SkillName", _Name), " ", (Level + 1).ToString());
+            ItemLab.text = Description(0);
+            ManaReso.SetText("Fe_Lab0", Description(0));
+            ManaReso.SetText("Fe_Lab1", Description(1));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), UpgradeCur, NewUpgradeAmt));
+
+            ManaDebug.Log(string.Format("<color=red>{0}</color> 升级 : {1}", Name, Level));
+
+            if (BarStatus == SkillStatus.Use)
+            {
+                UseConti();
+            }
+        }
+    }
+
+    protected override void UnlockAhead()
+    {
+        if (ItemStatus != SkillStatus.Lock)
+        {
+            ManaDebug.Log("您并不需要提前解锁");
 
             return;
         }
 
+        if (ManaData.Pay(UnlockAheadAmt, UnlockAheadCur))
+        {
+            ShowSkillBar();
+
+            BarBk1.material = null;
+
+            ItemStatus = SkillStatus.Upgrade;
+            BarStatus = SkillStatus.Buy;
+
+            ManaReso.Get("Fe_Info").TweenBacCG();
+
+            ManaDebug.Log(string.Format("技能<color=red>{0}</color>已解锁", Name));
+        }
+    }
+
+
+    private void TutorialBuy()
+    {
+        ManaTutorial.EndStep9();
+
         if (ManaData.Pay(UseAmt, BuyCur))
         {
             ManaData.Skill++;
@@ -448,86 +539,99 @@ public class BigSkill : Skill
         }
     }
 
-    protected override void Unlock()
+    private void RegularBuy()
     {
-        if (ManaData.Pay(UnlockAmt, UnlockCur))
+        if (ManaData.Connect == false)
         {
-            ShowSkillBar();
-
-            BarBk1.material = null;
-
-            ItemStatus = SkillStatus.Upgrade;
-            BarStatus = SkillStatus.Buy;
+            ManaReso.Get("Fg_Reconnect").TweenForCG();
 
-            if (SkillTab != SkillTab.Null)
-            {
-                ItemStatus = SkillStatus.Upgrade;
-            }
-            
-            ManaDebug.Log(string.Format("技能<color=red>{0}</color>已解锁", Name));
+            return;
         }
-    }
 
-    protected override void Upgrade()
-    {
-        if (ManaData.Pay(NewUpgradeAmt, UpgradeCur))
+        if (ManaData.Pay(UseAmt, BuyCur))
         {
-            Level++;
+            ManaData.Skill++;
 
-            if (BarStatus == SkillStatus.Use)
+            UseTimer = NewDuration;
+
+            ManaData.UseList.Add(this);
+
+            if (Math.Abs(Duration) < 0.0005f)
             {
-                Annul();
+                BarStatus = SkillStatus.Cool;
+            }
+            else
+            {
+                BarStatus = SkillStatus.Use;
+                BarLab.color = Color.blue;
             }
 
-            NewUpgradeAmt = Auxiliary.FmlParse(UpgradeFml, "a", NewUpgradeAmt.ToString());
+            UseConti();
+            UseImmed();
 
-            UpgradeValue(ref NewPlus, Plus, UpgradePlus, 1);
-            UpgradeValue(ref NewSkillCdBuff, UpgradeCD, 1);
-            UpgradeValue(ref NewPersonBuff, PersonBuff, UpgradePerson, 1);
-            UpgradeValue(ref NewCoinOnceBuff, UpgradeCoinOnce, 1);
+            #region 调试输出
 
-            UpgradeValue(ref NewPerson, Person, UpgradePerson, 1);
-            UpgradeValue(ref NewSkillCD, SkillCD, UpgradeCD, 1);
-            UpgradeValue(ref NewDuration, Duration, UpgradeDuration, 1);
-            UpgradeValue(ref NewCoinOnce, CoinOnce, UpgradeCoinOnce, 1);
-            UpgradeValue(ref NewCoinPerson, CoinPerson, UpgradePlus, 1);
+            StringBuilder strb = new StringBuilder();
 
-            ManaText.Add(ItemTit, new LanStr("SkillName", _Name), " ", (Level + 1).ToString());
-            ItemLab.text = Description(0);
-            ManaReso.SetText("Fe_Lab0", Description(0));
-            ManaReso.SetText("Fe_Lab1", Description(1));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), UpgradeCur, NewUpgradeAmt));
+            strb.AppendFormat("使用技能 : <color=red>{0}</color>", Name);
 
-            ManaDebug.Log(string.Format("<color=red>{0}</color> 升级 : {1}", Name, Level));
+            if (Math.Abs(NewPlus) > 0.0005f)
+            {
+                strb.AppendFormat(" 收入加成<color=red>+{0}%</color>", NewPlus * 100);
+            }
 
-            if (BarStatus == SkillStatus.Use)
+            if (Math.Abs(NewPerson) > 0.0005f)
             {
-                UseConti();
+                strb.AppendFormat(" 参观人次<color=red>+{0}</color>", NewPerson);
             }
-        }
-    }
 
-    protected override void UnlockAhead()
-    {
-        if (ItemStatus != SkillStatus.Lock)
-        {
-            ManaDebug.Log("您并不需要提前解锁");
+            if (Math.Abs(NewPersonBuff) > 0.0005f)
+            {
+                strb.AppendFormat(" 参观人次<color=red>+{0}%</color>", NewPersonBuff * 100);
+            }
 
-            return;
-        }
+            if (Math.Abs(NewCoinPerson) > 0.0005f)
+            {
+                strb.AppendFormat(" 每次金币<color=red>+{0}</color>", NewCoinPerson);
+            }
 
-        if (ManaData.Pay(UnlockAheadAmt, UnlockAheadCur))
-        {
-            ShowSkillBar();
+            if (Math.Abs(NewSkillCD) > 0.0005f)
+            {
+                strb.AppendFormat(" 减少冷却<color=red>{0}</color>", NewSkillCD);
+            }
 
-            BarBk1.material = null;
+            if (Math.Abs(NewSkillCdBuff) > 0.0005f)
+            {
+                strb.AppendFormat(" 减少冷却<color=red>{0}%</color>", NewSkillCdBuff * 100);
+            }
 
-            ItemStatus = SkillStatus.Upgrade;
-            BarStatus = SkillStatus.Buy;
+            if (Math.Abs(NewCoinOnce) > 0.0005f)
+            {
+                strb.AppendFormat(" 获得金币<color=red>{0}</color>", NewCoinOnce);
+            }
 
-            ManaReso.Get("Fe_Info").TweenBacCG();
+            if (Math.Abs(NewCoinOnceBuff) > 0.0005f)
+            {
+                strb.AppendFormat(" 获得金币<color=red>{0}</color>", ManaData.Person * ManaData.CoinPerson * ManaData.CircleTime * NewCoinOnceBuff);
+            }
 
-            ManaDebug.Log(string.Format("技能<color=red>{0}</color>已解锁", Name));
+            if (Math.Abs(DiamondOnce) > 0.0005f)
+            {
+                strb.AppendFormat(" 获得钻石<color=red>{0}</color>", DiamondOnce);
+            }
+
+            if (Math.Abs(NewDuration) > 0.0005f)
+            {
+                strb.AppendFormat(" 持续时间<color=red>{0}</color>秒", NewDuration);
+            }
+            else
+            {
+                strb.Append(" <color=red>永久有效</color>");
+            }
+
+            ManaDebug.Log(strb.ToString());
+
+            #endregion
         }
     }
 }

+ 1 - 0
Assets/Script/Object/Skill/Pack.cs

@@ -144,6 +144,7 @@ public class Pack : SkillRoot
 
         ManaReso.Get("Fe_Info").TweenForCG();
         ManaReso.SetText("Fe_Tit", Name);
+        ManaReso.SetSprite("Fe_Icon", ItemIcon.sprite);
 
         ManaReso.SetText("Fe_Lab0", "");
 

+ 255 - 107
Assets/Script/Object/Skill/Skill.cs

@@ -357,89 +357,13 @@ public class Skill : SkillRoot
 
     protected void OnClick()
     {
-        if (ManaData.Connect == false)
-        {
-            ManaReso.Get("Fg_Reconnect").TweenForCG();
-
-            return;
-        }
-
-        ManaReso.Get("Fe_Info").TweenForCG();
-
-        ManaReso.SetText("Fe_Tit", Name);
-
-        if (ItemStatus == SkillStatus.Buy)
-        {
-            ManaReso.SetText("Fe_Lab1", Description(0));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab3"), ImageParse(BuyCur), UseAmt));
-
-            ManaReso.SetButtonEvent
-            (
-                "Fe_Btn",
-                () =>
-                {
-                    Buy();
-
-                    ManaReso.Get("Fe_Info").TweenBacCG();
-                }
-            );
-        }
-        else if (ItemStatus == SkillStatus.Lock)
+        if (Initializer.Tutorial)
         {
-            ManaReso.SetText("Fe_Lab0", "");
-            ManaReso.SetText("Fe_Lab1", Description(0));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab0"), ImageParse(UnlockAheadCur), UnlockAheadAmt));
-
-            ManaReso.SetButtonEvent
-            (
-                "Fe_Btn",
-                () =>
-                {
-                    UnlockAhead();
-
-                    ManaReso.Get("Fe_Info").TweenBacCG();
-                }
-            );
-        }
-        else if (ItemStatus == SkillStatus.UnLock)
-        {
-            ManaReso.SetText("Fe_Lab0", "");
-            ManaReso.SetText("Fe_Lab1", Description(0));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab1"), ImageParse(UnlockCur), UnlockAmt));
-
-            ManaReso.SetButtonEvent
-            (
-                "Fe_Btn",
-                () =>
-                {
-                    Unlock();
-
-                    ManaReso.Get("Fe_Info").TweenBacCG();
-                }
-            );
-        }
-        else if (ItemStatus == SkillStatus.Upgrade)
-        {
-            ManaReso.SetText("Fe_Lab0", Description(0));
-            ManaReso.SetText("Fe_Lab1", Description(1));
-            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
-
-            ManaReso.SetButtonEvent
-            (
-                "Fe_Btn",
-                () =>
-                {
-                    Upgrade();
-                }
-            );
-        }
-        else if (ItemStatus == SkillStatus.Use)
-        {
-
+            TutorialClick();
         }
         else
         {
-            throw new Exception();
+            RegularClick();
         }
     }
 
@@ -588,6 +512,258 @@ public class Skill : SkillRoot
 
     protected virtual void Upgrade()
     {
+        if (Initializer.Tutorial)
+        {
+            TutorialUpgrade();
+        }
+        else
+        {
+            RegularUpgrade();
+        }
+    }
+
+    protected virtual void UnlockAhead()
+    {
+        if (ItemStatus != SkillStatus.Lock)
+        {
+            ManaDebug.Log("您并不需要提前解锁");
+
+            return;
+        }
+
+        if (ManaData.Pay(UnlockAheadAmt, UnlockAheadCur))
+        {
+            if (BuyCur != Current.Free)
+            {
+                ItemStatus = SkillStatus.Buy;
+            }
+            else if (UpgradeCur != Current.Free)
+            {
+                ItemStatus = SkillStatus.Upgrade;
+            }
+            else
+            {
+                throw new Exception();
+            }
+
+            ManaDebug.Log(string.Format("技能<color=red>{0}</color>已解锁", Name));
+        }
+    }
+
+
+    private void TutorialClick()
+    {
+        ManaReso.Get("Fe_Info").TweenForCG();
+
+        ManaReso.SetText("Fe_Tit", Name);
+        ManaReso.SetSprite("Fe_Icon", ItemIcon.sprite);
+
+        if (ItemStatus == SkillStatus.Buy)
+        {
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab3"), ImageParse(BuyCur), UseAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Buy();
+
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.Lock)
+        {
+            ManaReso.SetText("Fe_Lab0", "");
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab0"), ImageParse(UnlockAheadCur), UnlockAheadAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    UnlockAhead();
+
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.UnLock)
+        {
+            ManaReso.SetText("Fe_Lab0", "");
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab1"), ImageParse(UnlockCur), UnlockAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Unlock();
+
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.Upgrade)
+        {
+            Tutorial.HightDisable(0, true);
+
+            ManaReso.SetText("Fe_Lab0", Description(0));
+            ManaReso.SetText("Fe_Lab1", Description(1));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Upgrade();
+
+                    ManaTutorial.EndStep8();
+                    ManaTutorial.PrepareStep9();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.Use)
+        {
+
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    private void RegularClick()
+    {
+        if (ManaData.Connect == false)
+        {
+            ManaReso.Get("Fg_Reconnect").TweenForCG();
+
+            return;
+        }
+
+        ManaReso.Get("Fe_Info").TweenForCG();
+
+        ManaReso.SetText("Fe_Tit", Name);
+        ManaReso.SetSprite("Fe_Icon", ItemIcon.sprite);
+
+        if (ItemStatus == SkillStatus.Buy)
+        {
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab3"), ImageParse(BuyCur), UseAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Buy();
+
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.Lock)
+        {
+            ManaReso.SetText("Fe_Lab0", "");
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab0"), ImageParse(UnlockAheadCur), UnlockAheadAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    UnlockAhead();
+
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.UnLock)
+        {
+            ManaReso.SetText("Fe_Lab0", "");
+            ManaReso.SetText("Fe_Lab1", Description(0));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab1"), ImageParse(UnlockCur), UnlockAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Unlock();
+
+                    ManaReso.Get("Fe_Info").TweenBacCG();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.Upgrade)
+        {
+            ManaReso.SetText("Fe_Lab0", Description(0));
+            ManaReso.SetText("Fe_Lab1", Description(1));
+            ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), ImageParse(UpgradeCur), NewUpgradeAmt));
+
+            ManaReso.SetButtonEvent
+            (
+                "Fe_Btn",
+                () =>
+                {
+                    Upgrade();
+                }
+            );
+        }
+        else if (ItemStatus == SkillStatus.Use)
+        {
+
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    private void TutorialUpgrade()
+    {
+        Level++;
+
+        if (ItemStatus == SkillStatus.Use)
+        {
+            Annul();
+        }
+
+        NewUpgradeAmt = Auxiliary.FmlParse(UpgradeFml, "a", NewUpgradeAmt.ToString());
+
+        UpgradeValue(ref NewPlus, Plus, UpgradePlus, 1);
+        UpgradeValue(ref NewSkillCdBuff, UpgradeCD, 1);
+        UpgradeValue(ref NewPersonBuff, PersonBuff, UpgradePerson, 1);
+        UpgradeValue(ref NewCoinOnceBuff, UpgradeCoinOnce, 1);
+
+        UpgradeValue(ref NewPerson, Person, UpgradePerson, 1);
+        UpgradeValue(ref NewSkillCD, SkillCD, UpgradeCD, 1);
+        UpgradeValue(ref NewDuration, Duration, UpgradeDuration, 1);
+        UpgradeValue(ref NewCoinOnce, CoinOnce, UpgradeCoinOnce, 1);
+        UpgradeValue(ref NewCoinPerson, CoinPerson, UpgradePlus, 1);
+
+        ItemLab.text = Description(0);
+        ManaReso.SetText("Fe_Lab0", Description(0));
+        ManaReso.SetText("Fe_Lab1", Description(1));
+        ManaReso.SetText("Fe_BtnLab", string.Format("{0}({1}{2:0})", Language.GetStr("UI", "Fe_BtnLab2"), UpgradeCur, NewUpgradeAmt));
+
+        ManaDebug.Log(string.Format("<color=red>{0}</color>升级 : {1}", Name, Level));
+
+        if (ItemStatus == SkillStatus.Use)
+        {
+            UseConti();
+        }
+    }
+
+    private void RegularUpgrade()
+    {
         if (ManaData.Pay(NewUpgradeAmt, UpgradeCur))
         {
             Level++;
@@ -624,34 +800,6 @@ public class Skill : SkillRoot
         }
     }
 
-    protected virtual void UnlockAhead()
-    {
-        if (ItemStatus != SkillStatus.Lock)
-        {
-            ManaDebug.Log("您并不需要提前解锁");
-
-            return;
-        }
-
-        if (ManaData.Pay(UnlockAheadAmt, UnlockAheadCur))
-        {
-            if (BuyCur != Current.Free)
-            {
-                ItemStatus = SkillStatus.Buy;
-            }
-            else if (UpgradeCur != Current.Free)
-            {
-                ItemStatus = SkillStatus.Upgrade;
-            }
-            else
-            {
-                throw new Exception();
-            }
-
-            ManaDebug.Log(string.Format("技能<color=red>{0}</color>已解锁", Name));
-        }
-    }
-
     #region 解读器
 
     protected override string Description(int offset)

+ 32 - 2
Assets/Script/Object/Tutorial.cs

@@ -91,7 +91,8 @@ public class Tutorial : Regist, IPointerClickHandler
     public static void HightScreen(Transform posTra, Transform targetTra)
     {
         targetTra.GetComponent<Canvas>().overrideSorting = true;
-        
+        targetTra.GetComponent<GraphicRaycaster>().enabled = true;
+
         PointScreen(posTra.position, targetTra);
 
         HighLightList.Add(targetTra.GetComponent<Canvas>());
@@ -100,7 +101,8 @@ public class Tutorial : Regist, IPointerClickHandler
     public static void HightScreen(Transform posTra, Transform targetPos, Transform targetTra)
     {
         targetTra.GetComponent<Canvas>().overrideSorting = true;
-        
+        targetTra.GetComponent<GraphicRaycaster>().enabled = true;
+
         PointScreen(posTra.position, targetPos);
 
         HighLightList.Add(targetTra.GetComponent<Canvas>());
@@ -115,12 +117,40 @@ public class Tutorial : Regist, IPointerClickHandler
         for (int i = 0; i < HighLightList.Count; i++)
         {
             HighLightList[i].overrideSorting = false;
+            HighLightList[i].GetComponent<GraphicRaycaster>().enabled = false;
         }
 
         HighLightList = new List<Canvas>();
 
         UIMask = false;
         ManaReso.Get("N_Mask").TweenConBacGra();
+        ManaReso.Get("N_Arrow").TweenConBacCG();
+    }
+
+    public static void HightDisable(int index, bool hideArrow)
+    {
+        HighLightList[index].GetComponent<Canvas>().overrideSorting = false;
+        HighLightList[index].GetComponent<GraphicRaycaster>().enabled = false;
+
+        HighLightList.RemoveAt(index);
+
+        if (hideArrow)
+        {
+            ManaReso.Get("N_Arrow").TweenConBacCG();
+        }
+    }
+
+    public static void HightDisable(Transform tra, bool hideArrow)
+    {
+        tra.GetComponent<Canvas>().overrideSorting = false;
+        tra.GetComponent<GraphicRaycaster>().enabled = false;
+
+        HighLightList.Remove(tra.GetComponent<Canvas>());
+
+        if (hideArrow)
+        {
+            ManaReso.Get("N_Arrow").TweenConBacCG();
+        }
     }
 
 

+ 2 - 2
Assets/Script/Tool/Anim/Move.cs

@@ -15,8 +15,8 @@ public abstract class Move
 
     protected bool _InDestination;
 
-    public UnityAction OnStart;
-    public UnityAction OnFinish;
+    public UnityAction OnForwardStart;
+    public UnityAction OnForwardFinish;
 
     #endregion
 

+ 4 - 4
Assets/Script/Tool/Anim/Move2D.cs

@@ -96,9 +96,9 @@ public class Move2D : Move
 
             ManaAnim.MoveList.Remove(this);
 
-            if (OnFinish != null)
+            if (OnForwardFinish != null)
             {
-                OnFinish.Invoke();
+                OnForwardFinish.Invoke();
             }
 
             return true;
@@ -141,9 +141,9 @@ public class Move2D : Move
 
         Func = ManaAnim.CurveFuncDicV[curve];
 
-        if (OnStart != null)
+        if (OnForwardStart != null)
         {
-            OnStart.Invoke();
+            OnForwardStart.Invoke();
         }
 
         ManaAnim.MoveList.Remove(this);

+ 4 - 4
Assets/Script/Tool/Anim/Move3D.cs

@@ -96,9 +96,9 @@ public class Move3D : Move
 
             ManaAnim.MoveList.Remove(this);
 
-            if (OnFinish != null)
+            if (OnForwardFinish != null)
             {
-                OnFinish.Invoke();
+                OnForwardFinish.Invoke();
             }
 
             return true;
@@ -140,9 +140,9 @@ public class Move3D : Move
 
         Func = ManaAnim.CurveFuncDicV[curve];
 
-        if (OnStart != null)
+        if (OnForwardStart != null)
         {
-            OnStart.Invoke();
+            OnForwardStart.Invoke();
         }
 
         ManaAnim.MoveList.Remove(this);

+ 4 - 4
Assets/Script/Tool/Anim/Shake.cs

@@ -63,9 +63,9 @@ public class Shake : Move
 
             ManaAnim.MoveList.Remove(this);
 
-            if (OnFinish != null)
+            if (OnForwardFinish != null)
             {
-                OnFinish.Invoke();
+                OnForwardFinish.Invoke();
             }
 
             return true;
@@ -93,9 +93,9 @@ public class Shake : Move
 
         Func = ManaAnim.ShakeFuncDicV[curve];
 
-        if (OnStart != null)
+        if (OnForwardStart != null)
         {
-            OnStart.Invoke();
+            OnForwardStart.Invoke();
         }
 
         ManaAnim.MoveList.Remove(this);

+ 61 - 0
Assets/Script/Tool/Anim/Tween.cs

@@ -80,4 +80,65 @@ public abstract class Tween
         ManaAnim.TweenForList.Remove(this);
         ManaAnim.TweenBacList.Add(this);
     }
+
+
+    public void PushEvent(EventType type, UnityAction action)
+    {
+        if (type == EventType.ForwardStart)
+        {
+            OnForwardStart = action + OnForwardStart;
+        }
+        else if (type == EventType.ForwardFinish)
+        {
+            OnForwardFinish = action + OnForwardFinish;
+        }
+        else if (type == EventType.BackwardStart)
+        {
+            OnBackwardStart = action + OnBackwardStart;
+        }
+        else if (type == EventType.BackwardFinish)
+        {
+            OnBackwardFinish = action + OnBackwardFinish;
+        }
+    }
+
+    public void AddEventOnetime(EventType type, UnityAction action)
+    {
+        if (type == EventType.ForwardStart)
+        {
+            action += () =>
+            {
+                OnForwardStart -= action;
+            };
+
+            OnForwardStart += action;
+        }
+        else if (type == EventType.ForwardFinish)
+        {
+            action += () =>
+            {
+                OnForwardFinish -= action;
+            };
+
+            OnForwardFinish += action;
+        }
+        else if (type == EventType.BackwardStart)
+        {
+            action += () =>
+            {
+                OnBackwardStart -= action;
+            };
+
+            OnBackwardStart += action;
+        }
+        else if (type == EventType.BackwardFinish)
+        {
+            action += () =>
+            {
+                OnBackwardFinish -= action;
+            };
+
+            OnBackwardFinish += action;
+        }
+    }
 }

+ 92 - 79
Assets/Script/Tool/Extension.cs

@@ -4,7 +4,7 @@ using UnityEngine.UI;
 using System;
 using System.Collections;
 using System.Collections.Generic;
-
+using UnityEngine.Events;
 using Random = UnityEngine.Random;
 
 public static class Extension
@@ -56,19 +56,19 @@ public static class Extension
 
     #region Move
 
-    public static void Shake(this Component comp, float duration, int repeat, Vector3 strength, Curve curve)
+    public static Shake Shake(this Component comp, float duration, int repeat, Vector3 strength, Curve curve)
     {
-        ManaAnim.Shake(comp.transform, duration, repeat, strength, curve);
+        return ManaAnim.Shake(comp.transform, duration, repeat, strength, curve);
     }
 
-    public static void Move2D(this Component comp, Vector3 destination, float duration, bool local, Curve curve)
+    public static Move2D Move2D(this Component comp, Vector3 destination, float duration, bool local, Curve curve)
     {
-        ManaAnim.Move2D(comp.transform, destination, duration, local, curve);
+        return ManaAnim.Move2D(comp.transform, destination, duration, local, curve);
     }
 
-    public static void Move3D(this Component comp, Vector3 destination, float duration, bool local, Curve curve)
+    public static Move3D Move3D(this Component comp, Vector3 destination, float duration, bool local, Curve curve)
     {
-        ManaAnim.Move3D(comp.transform, destination, duration, local, curve);
+        return ManaAnim.Move3D(comp.transform, destination, duration, local, curve);
     }
 
 
@@ -194,186 +194,187 @@ public static class Extension
 
     #region Tween
 
-    public static void TweenForSr(this Component comp)
+    public static TweenSr TweenForSr(this Component comp)
     {
-        ManaAnim.TweenForSr(comp.transform);
+        return ManaAnim.TweenForSr(comp.transform);
     }
 
-    public static void TweenForCG(this Component comp)
+    public static TweenCG TweenForCG(this Component comp)
     {
-        ManaAnim.TweenForCG(comp.transform);
+        return ManaAnim.TweenForCG(comp.transform);
     }
 
-    public static void TweenForVec(this Component comp)
+    public static TweenVec TweenForVec(this Component comp)
     {
-        ManaAnim.TweenForVec(comp.transform);
+        return ManaAnim.TweenForVec(comp.transform);
     }
 
-    public static void TweenForGra(this Component comp)
+    public static TweenGra TweenForGra(this Component comp)
     {
-        ManaAnim.TweenForGra(comp.transform);
+        return ManaAnim.TweenForGra(comp.transform);
     }
 
-    public static void TweenForText(this Component comp)
+    public static TweenText TweenForText(this Component comp)
     {
-        ManaAnim.TweenForText(comp.transform);
+        return ManaAnim.TweenForText(comp.transform);
     }
 
-    public static void TweenForRect(this Component comp)
+    public static TweenRect TweenForRect(this Component comp)
     {
-        ManaAnim.TweenForRect(comp.transform);
+        return ManaAnim.TweenForRect(comp.transform);
     }
 
-    public static void TweenForScale(this Component comp)
+    public static TweenScale TweenForScale(this Component comp)
     {
-        ManaAnim.TweenForScale(comp.transform);
+        return ManaAnim.TweenForScale(comp.transform);
     }
 
-    public static void TweenForAudio(this Component comp)
+    public static TweenAudio TweenForAudio(this Component comp)
     {
-        ManaAnim.TweenForAudio(comp.transform);
+        return ManaAnim.TweenForAudio(comp.transform);
     }
 
-    public static void TweenForNumber(this Component comp)
+    public static TweenNumber TweenForNumber(this Component comp)
     {
-        ManaAnim.TweenForNumber(comp.transform);
+        return ManaAnim.TweenForNumber(comp.transform);
     }
 
 
-    public static void TweenBacSr(this Component comp)
+    public static TweenSr TweenBacSr(this Component comp)
     {
-        ManaAnim.TweenBacSr(comp.transform);
+        return ManaAnim.TweenBacSr(comp.transform);
     }
 
-    public static void TweenBacCG(this Component comp)
+    public static TweenCG TweenBacCG(this Component comp)
     {
-        ManaAnim.TweenBacCG(comp.transform);
+        return ManaAnim.TweenBacCG(comp.transform);
     }
 
-    public static void TweenBacVec(this Component comp)
+    public static TweenVec TweenBacVec(this Component comp)
     {
-        ManaAnim.TweenBacVec(comp.transform);
+        return ManaAnim.TweenBacVec(comp.transform);
     }
 
-    public static void TweenBacGra(this Component comp)
+    public static TweenGra TweenBacGra(this Component comp)
     {
-        ManaAnim.TweenBacGra(comp.transform);
+        return ManaAnim.TweenBacGra(comp.transform);
     }
 
-    public static void TweenBacText(this Component comp)
+    public static TweenText TweenBacText(this Component comp)
     {
-        ManaAnim.TweenBacText(comp.transform);
+        return ManaAnim.TweenBacText(comp.transform);
     }
 
-    public static void TweenBacRect(this Component comp)
+    public static TweenRect TweenBacRect(this Component comp)
     {
-        ManaAnim.TweenBacRect(comp.transform);
+        return ManaAnim.TweenBacRect(comp.transform);
     }
 
-    public static void TweenBacScale(this Component comp)
+    public static TweenScale TweenBacScale(this Component comp)
     {
-        ManaAnim.TweenBacScale(comp.transform);
+        return ManaAnim.TweenBacScale(comp.transform);
     }
 
-    public static void TweenBacAudio(this Component comp)
+    public static TweenAudio TweenBacAudio(this Component comp)
     {
-        ManaAnim.TweenBacAudio(comp.transform);
+        return ManaAnim.TweenBacAudio(comp.transform);
     }
 
-    public static void TweenBacNumber(this Component comp)
+    public static TweenNumber TweenBacNumber(this Component comp)
     {
-        ManaAnim.TweenBacNumber(comp.transform);
+        return ManaAnim.TweenBacNumber(comp.transform);
     }
 
 
-    public static void TweenConForSr(this Component comp)
+    public static TweenSr TweenConForSr(this Component comp)
     {
-        ManaAnim.TweenConForSr(comp.transform);
+        return ManaAnim.TweenConForSr(comp.transform);
     }
 
-    public static void TweenConForCG(this Component comp)
+    public static TweenCG TweenConForCG(this Component comp)
     {
-        ManaAnim.TweenConForCG(comp.transform);
+        return ManaAnim.TweenConForCG(comp.transform);
     }
 
-    public static void TweenConForVec(this Component comp)
+    public static TweenVec TweenConForVec(this Component comp)
     {
-        ManaAnim.TweenConForVec(comp.transform);
+        return ManaAnim.TweenConForVec(comp.transform);
     }
 
-    public static void TweenConForGra(this Component comp)
+    public static TweenGra TweenConForGra(this Component comp)
     {
-        ManaAnim.TweenConForGra(comp.transform);
+        return ManaAnim.TweenConForGra(comp.transform);
     }
 
-    public static void TweenConForText(this Component comp)
+    public static TweenText TweenConForText(this Component comp)
     {
-        ManaAnim.TweenConForText(comp.transform);
+        return ManaAnim.TweenConForText(comp.transform);
     }
 
-    public static void TweenConForRect(this Component comp)
+    public static TweenRect TweenConForRect(this Component comp)
     {
-        ManaAnim.TweenConForRect(comp.transform);
+        return ManaAnim.TweenConForRect(comp.transform);
     }
 
-    public static void TweenConForScale(this Component comp)
+    public static TweenScale TweenConForScale(this Component comp)
     {
-        ManaAnim.TweenConForScale(comp.transform);
+        return ManaAnim.TweenConForScale(comp.transform);
     }
 
-    public static void TweenConForAudio(this Component comp)
+    public static TweenAudio TweenConForAudio(this Component comp)
     {
-        ManaAnim.TweenConForAudio(comp.transform);
+        return ManaAnim.TweenConForAudio(comp.transform);
     }
 
-    public static void TweenConForNumber(this Component comp)
+    public static TweenNumber TweenConForNumber(this Component comp)
     {
-        ManaAnim.TweenConForNumber(comp.transform);
+        return ManaAnim.TweenConForNumber(comp.transform);
     }
 
-    public static void TweenConBacSr(this Component comp)
+
+    public static TweenSr TweenConBacSr(this Component comp)
     {
-        ManaAnim.TweenConBacSr(comp.transform);
+        return ManaAnim.TweenConBacSr(comp.transform);
     }
 
-    public static void TweenConBacCG(this Component comp)
+    public static TweenCG TweenConBacCG(this Component comp)
     {
-        ManaAnim.TweenConBacCG(comp.transform);
+        return ManaAnim.TweenConBacCG(comp.transform);
     }
 
-    public static void TweenConBacVec(this Component comp)
+    public static TweenVec TweenConBacVec(this Component comp)
     {
-        ManaAnim.TweenConBacVec(comp.transform);
+        return ManaAnim.TweenConBacVec(comp.transform);
     }
 
-    public static void TweenConBacGra(this Component comp)
+    public static TweenGra TweenConBacGra(this Component comp)
     {
-        ManaAnim.TweenConBacGra(comp.transform);
+        return ManaAnim.TweenConBacGra(comp.transform);
     }
 
-    public static void TweenConBacText(this Component comp)
+    public static TweenText TweenConBacText(this Component comp)
     {
-        ManaAnim.TweenConBacText(comp.transform);
+        return ManaAnim.TweenConBacText(comp.transform);
     }
 
-    public static void TweenConBacRect(this Component comp)
+    public static TweenRect TweenConBacRect(this Component comp)
     {
-        ManaAnim.TweenConBacRect(comp.transform);
+        return ManaAnim.TweenConBacRect(comp.transform);
     }
 
-    public static void TweenConBacScale(this Component comp)
+    public static TweenScale TweenConBacScale(this Component comp)
     {
-        ManaAnim.TweenConBacScale(comp.transform);
+        return ManaAnim.TweenConBacScale(comp.transform);
     }
 
-    public static void TweenConBacAudio(this Component comp)
+    public static TweenAudio TweenConBacAudio(this Component comp)
     {
-        ManaAnim.TweenConBacAudio(comp.transform);
+        return ManaAnim.TweenConBacAudio(comp.transform);
     }
 
-    public static void TweenConBacNumber(this Component comp)
+    public static TweenNumber TweenConBacNumber(this Component comp)
     {
-        ManaAnim.TweenConBacNumber(comp.transform);
+        return ManaAnim.TweenConBacNumber(comp.transform);
     }
 
 
@@ -644,6 +645,18 @@ public static class Extension
 
     #endregion
 
+    #region UnityAction
+
+    public static void SafeInvoke(this UnityAction action)
+    {
+        if (action != null)
+        {
+            action.Invoke();
+        }
+    }
+
+    #endregion
+
     #region AddComponent
 
     public static T AddComponent<T>(this Component comp) where T : Component

+ 1 - 1
Assets/Script/Tool/SceneMask.cs

@@ -52,7 +52,7 @@ public class SceneMask : MonoBehaviour
             Material.SetFloat("_RadiusY", 0);
             Material.SetVector("_Center", new Vector2(0, 0));
 
-            ManaReso.Get("TutorialMask").TweenBacSr();
+            ManaReso.Get("TutorialMask").TweenConBacSr();
         }
     }
 }

+ 2 - 2
Assets/Script/Tool/UI/FlowerCard.cs

@@ -39,12 +39,12 @@ public class FlowerCard : MonoBehaviour
 
         Move2D move2D = ScrollRect.content.CreateMove2D();
 
-        move2D.OnStart += () =>
+        move2D.OnForwardStart += () =>
         {
             SelectLock = true;
         };
 
-        move2D.OnFinish += () =>
+        move2D.OnForwardFinish += () =>
         {
             SelectLock = false;
         };

+ 1 - 1
Assets/Script/Tool/UI/TextPlus.cs

@@ -149,7 +149,7 @@ public class TextPlus : Text
                 Draw = false;
             }
         }
-
+        
         if (Draw)
         {
             Draw = false;

+ 16 - 13
MyLovelyGarden.sln

@@ -1,9 +1,9 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2015
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyLovelyGarden", "MyLovelyGarden.csproj", "{9F3A3259-D53B-F6C8-8878-C5B99621035A}"
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2008
+
+Project("{8A8BB0A8-D809-F2DF-89D6-F26151FFF558}") = "MyLovelyGarden", "Assembly-CSharp.csproj", "{21BB93BC-2239-D8F5-1219-201F8DCBAF49}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyLovelyGarden.Editor", "MyLovelyGarden.Editor.csproj", "{B575449E-FD9A-1672-368B-EC1E1252F6E4}"
+Project("{8A8BB0A8-D809-F2DF-89D6-F26151FFF558}") = "MyLovelyGarden", "Assembly-CSharp-Editor.csproj", "{A08052E5-32CE-91C0-FF56-C60C901D6BEF}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,16 +11,19 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{9F3A3259-D53B-F6C8-8878-C5B99621035A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9F3A3259-D53B-F6C8-8878-C5B99621035A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9F3A3259-D53B-F6C8-8878-C5B99621035A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9F3A3259-D53B-F6C8-8878-C5B99621035A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B575449E-FD9A-1672-368B-EC1E1252F6E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B575449E-FD9A-1672-368B-EC1E1252F6E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B575449E-FD9A-1672-368B-EC1E1252F6E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B575449E-FD9A-1672-368B-EC1E1252F6E4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{21BB93BC-2239-D8F5-1219-201F8DCBAF49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{21BB93BC-2239-D8F5-1219-201F8DCBAF49}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{21BB93BC-2239-D8F5-1219-201F8DCBAF49}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{21BB93BC-2239-D8F5-1219-201F8DCBAF49}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A08052E5-32CE-91C0-FF56-C60C901D6BEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A08052E5-32CE-91C0-FF56-C60C901D6BEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A08052E5-32CE-91C0-FF56-C60C901D6BEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A08052E5-32CE-91C0-FF56-C60C901D6BEF}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(MonoDevelopProperties) = preSolution
+		StartupItem = Assembly-CSharp.csproj
+	EndGlobalSection
 EndGlobal

+ 8 - 4
ToList.txt

@@ -2,6 +2,13 @@
 
 ManaData ManaSkill ManaGarden 种花使用Dic
 
+
+ManaReso中添加获得Tween Move的ShortCut
+
+在Extension中进行委托的Null的检查
+
+自动添加销毁Canvas和GraphicRaycaster
+
 动画(是否影响CanvasGroup)
 
 
@@ -14,7 +21,4 @@ ManaData ManaSkill ManaGarden 
 
 Font Anchor Encrypt RichText OverFlow RaycastTarget
 
-语言文档中的多余项 是否保留Tree2 Auxiliary中的测试按键 DisableButton的颜色
-
-
-
+语言文档中的多余项 是否保留Tree2 Auxiliary中的测试按键 DisableButton的颜色