فهرست منبع

商店UI雷达图

WGL 1 ماه پیش
والد
کامیت
73c734f4bd
51فایلهای تغییر یافته به همراه4632 افزوده شده و 2621 حذف شده
  1. 65 0
      ActionTowerDefense/Assets/Gen/CfgTreasure.cs
  2. 11 0
      ActionTowerDefense/Assets/Gen/CfgTreasure.cs.meta
  3. 105 0
      ActionTowerDefense/Assets/Gen/SingleTreasureConfig.cs
  4. 11 0
      ActionTowerDefense/Assets/Gen/SingleTreasureConfig.cs.meta
  5. 5 0
      ActionTowerDefense/Assets/Gen/Tables.cs
  6. 2 1
      ActionTowerDefense/Assets/MasterStylizedFX.meta
  7. 1 1
      ActionTowerDefense/Assets/PIDI Game Development Framework/Planar Reflections 4/Shared Assets/Amplify Shader Editor Nodes/4.0.0 - Amplify Shader Editor Nodes.unitypackage.meta
  8. 271 1
      ActionTowerDefense/Assets/Resources/Prefab/GameUI/Game_UI.prefab
  9. 1585 0
      ActionTowerDefense/Assets/Resources/Prefab/RougueUI/Shop_UI.prefab
  10. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/RadarChart.png
  11. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/RadarChart.png.meta
  12. 2 1
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure.meta
  13. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/blueFire.png
  14. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/blueFire.png.meta
  15. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/greenFire.png
  16. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/greenFire.png.meta
  17. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/purpleFire.png
  18. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/purpleFire.png.meta
  19. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/shield_body.png
  20. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/shield_body.png.meta
  21. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/shield_soul.png
  22. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/shield_soul.png.meta
  23. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/spear_body.png
  24. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/spear_body.png.meta
  25. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/spear_soul.png
  26. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/spear_soul.png.meta
  27. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/sword_body.png
  28. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/sword_body.png.meta
  29. BIN
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/sword_soul.png
  30. 123 0
      ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/sword_soul.png.meta
  31. 11 1
      ActionTowerDefense/Assets/Scenes/Game.unity
  32. 11 8
      ActionTowerDefense/Assets/Scripts/GameManager.cs
  33. 18 0
      ActionTowerDefense/Assets/Scripts/UI/ButtonUI.cs
  34. 11 0
      ActionTowerDefense/Assets/Scripts/UI/ButtonUI.cs.meta
  35. 42 0
      ActionTowerDefense/Assets/Scripts/UI/RadarTest.cs
  36. 11 0
      ActionTowerDefense/Assets/Scripts/UI/RadarTest.cs.meta
  37. 110 7
      ActionTowerDefense/Assets/Scripts/UI/ShopUI.cs
  38. 125 0
      ActionTowerDefense/Assets/Scripts/UI/TreasuresSaleUI.cs
  39. 11 0
      ActionTowerDefense/Assets/Scripts/UI/TreasuresSaleUI.cs.meta
  40. 238 0
      ActionTowerDefense/Assets/Scripts/UI/UIPolygon.cs
  41. 11 0
      ActionTowerDefense/Assets/Scripts/UI/UIPolygon.cs.meta
  42. 643 307
      ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/AaErMoXingShu-2 SDF.asset
  43. 0 1120
      ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset
  44. 0 8
      ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta
  45. 1 2
      ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset
  46. 0 1156
      ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/思源黑体SC-Heavy SDF.asset
  47. 0 8
      ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/思源黑体SC-Heavy SDF.asset.meta
  48. 101 0
      ActionTowerDefense/GenerateDatas/json/cfgtreasure.json
  49. BIN
      ActionTowerDefense/Luban/Config/Datas/__tables__.xlsx
  50. BIN
      ActionTowerDefense/Luban/Config/Datas/卦象概率表.xlsx
  51. BIN
      ActionTowerDefense/Luban/Config/Datas/宝物表.xlsx

+ 65 - 0
ActionTowerDefense/Assets/Gen/CfgTreasure.cs

@@ -0,0 +1,65 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+using Bright.Serialization;
+using System.Collections.Generic;
+using SimpleJSON;
+
+
+
+namespace cfg
+{ 
+
+public sealed partial class CfgTreasure
+{
+    private readonly Dictionary<int, SingleTreasureConfig> _dataMap;
+    private readonly List<SingleTreasureConfig> _dataList;
+    
+    public CfgTreasure(JSONNode _json)
+    {
+        _dataMap = new Dictionary<int, SingleTreasureConfig>();
+        _dataList = new List<SingleTreasureConfig>();
+        
+        foreach(JSONNode _row in _json.Children)
+        {
+            var _v = SingleTreasureConfig.DeserializeSingleTreasureConfig(_row);
+            _dataList.Add(_v);
+            _dataMap.Add(_v.ID, _v);
+        }
+        PostInit();
+    }
+
+    public Dictionary<int, SingleTreasureConfig> DataMap => _dataMap;
+    public List<SingleTreasureConfig> DataList => _dataList;
+
+    public SingleTreasureConfig GetOrDefault(int key) => _dataMap.TryGetValue(key, out var v) ? v : null;
+    public SingleTreasureConfig Get(int key) => _dataMap[key];
+    public SingleTreasureConfig this[int key] => _dataMap[key];
+
+    public void Resolve(Dictionary<string, object> _tables)
+    {
+        foreach(var v in _dataList)
+        {
+            v.Resolve(_tables);
+        }
+        PostResolve();
+    }
+
+    public void TranslateText(System.Func<string, string, string> translator)
+    {
+        foreach(var v in _dataList)
+        {
+            v.TranslateText(translator);
+        }
+    }
+    
+    
+    partial void PostInit();
+    partial void PostResolve();
+}
+
+}

+ 11 - 0
ActionTowerDefense/Assets/Gen/CfgTreasure.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 103725d5c7a1af94cb4367f8bb6479aa
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 105 - 0
ActionTowerDefense/Assets/Gen/SingleTreasureConfig.cs

@@ -0,0 +1,105 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+using Bright.Serialization;
+using System.Collections.Generic;
+using SimpleJSON;
+
+
+
+namespace cfg
+{ 
+
+public sealed partial class SingleTreasureConfig :  Bright.Config.BeanBase 
+{
+    public SingleTreasureConfig(JSONNode _json) 
+    {
+        { if(!_json["ID"].IsNumber) { throw new SerializationException(); }  ID = _json["ID"]; }
+        { if(!_json["Name"].IsString) { throw new SerializationException(); }  Name = _json["Name"]; }
+        { if(!_json["SpriteName"].IsString) { throw new SerializationException(); }  SpriteName = _json["SpriteName"]; }
+        { if(!_json["Quality"].IsNumber) { throw new SerializationException(); }  Quality = _json["Quality"]; }
+        { var __json0 = _json["Tag"]; if(!__json0.IsArray) { throw new SerializationException(); } Tag = new System.Collections.Generic.List<int>(__json0.Count); foreach(JSONNode __e0 in __json0.Children) { int __v0;  { if(!__e0.IsNumber) { throw new SerializationException(); }  __v0 = __e0; }  Tag.Add(__v0); }   }
+        { if(!_json["Attribute"].IsString) { throw new SerializationException(); }  Attribute = _json["Attribute"]; }
+        { if(!_json["Price"].IsNumber) { throw new SerializationException(); }  Price = _json["Price"]; }
+        PostInit();
+    }
+
+    public SingleTreasureConfig(int ID, string Name, string SpriteName, int Quality, System.Collections.Generic.List<int> Tag, string Attribute, int Price ) 
+    {
+        this.ID = ID;
+        this.Name = Name;
+        this.SpriteName = SpriteName;
+        this.Quality = Quality;
+        this.Tag = Tag;
+        this.Attribute = Attribute;
+        this.Price = Price;
+        PostInit();
+    }
+
+    public static SingleTreasureConfig DeserializeSingleTreasureConfig(JSONNode _json)
+    {
+        return new SingleTreasureConfig(_json);
+    }
+
+    /// <summary>
+    /// ID
+    /// </summary>
+    public int ID { get; private set; }
+    /// <summary>
+    /// 宝物名
+    /// </summary>
+    public string Name { get; private set; }
+    /// <summary>
+    /// 图标名
+    /// </summary>
+    public string SpriteName { get; private set; }
+    /// <summary>
+    /// 品质
+    /// </summary>
+    public int Quality { get; private set; }
+    /// <summary>
+    /// 标签
+    /// </summary>
+    public System.Collections.Generic.List<int> Tag { get; private set; }
+    /// <summary>
+    /// 宝物属性
+    /// </summary>
+    public string Attribute { get; private set; }
+    /// <summary>
+    /// 价格
+    /// </summary>
+    public int Price { get; private set; }
+
+    public const int __ID__ = -581043879;
+    public override int GetTypeId() => __ID__;
+
+    public  void Resolve(Dictionary<string, object> _tables)
+    {
+        PostResolve();
+    }
+
+    public  void TranslateText(System.Func<string, string, string> translator)
+    {
+    }
+
+    public override string ToString()
+    {
+        return "{ "
+        + "ID:" + ID + ","
+        + "Name:" + Name + ","
+        + "SpriteName:" + SpriteName + ","
+        + "Quality:" + Quality + ","
+        + "Tag:" + Bright.Common.StringUtil.CollectionToString(Tag) + ","
+        + "Attribute:" + Attribute + ","
+        + "Price:" + Price + ","
+        + "}";
+    }
+    
+    partial void PostInit();
+    partial void PostResolve();
+}
+}

+ 11 - 0
ActionTowerDefense/Assets/Gen/SingleTreasureConfig.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d3c67780f5168ce49ac54825f312f94d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 5 - 0
ActionTowerDefense/Assets/Gen/Tables.cs

@@ -25,6 +25,7 @@ public sealed partial class Tables
     public CfgCreateEnemy7 CfgCreateEnemy7 {get; }
     public CfgCreateEnemy8 CfgCreateEnemy8 {get; }
     public CfgSoldierLevel CfgSoldierLevel {get; }
+    public CfgTreasure CfgTreasure {get; }
 
     public Tables(System.Func<string, JSONNode> loader)
     {
@@ -51,6 +52,8 @@ public sealed partial class Tables
         tables.Add("CfgCreateEnemy8", CfgCreateEnemy8);
         CfgSoldierLevel = new CfgSoldierLevel(loader("cfgsoldierlevel")); 
         tables.Add("CfgSoldierLevel", CfgSoldierLevel);
+        CfgTreasure = new CfgTreasure(loader("cfgtreasure")); 
+        tables.Add("CfgTreasure", CfgTreasure);
         PostInit();
 
         CfgEnemy.Resolve(tables); 
@@ -64,6 +67,7 @@ public sealed partial class Tables
         CfgCreateEnemy7.Resolve(tables); 
         CfgCreateEnemy8.Resolve(tables); 
         CfgSoldierLevel.Resolve(tables); 
+        CfgTreasure.Resolve(tables); 
         PostResolve();
     }
 
@@ -80,6 +84,7 @@ public sealed partial class Tables
         CfgCreateEnemy7.TranslateText(translator); 
         CfgCreateEnemy8.TranslateText(translator); 
         CfgSoldierLevel.TranslateText(translator); 
+        CfgTreasure.TranslateText(translator); 
     }
     
     partial void PostInit();

+ 2 - 1
ActionTowerDefense/Assets/MasterStylizedFX/MSFURP2D.unitypackage.meta → ActionTowerDefense/Assets/MasterStylizedFX.meta

@@ -1,5 +1,6 @@
 fileFormatVersion: 2
-guid: c5a43aaac73c68f4fa0b928a60ab5da3
+guid: c8a339761dc9c3a40bcedc22285bac8c
+folderAsset: yes
 DefaultImporter:
   externalObjects: {}
   userData: 

+ 1 - 1
ActionTowerDefense/Assets/MasterStylizedFX/MSFURP.unitypackage.meta → ActionTowerDefense/Assets/PIDI Game Development Framework/Planar Reflections 4/Shared Assets/Amplify Shader Editor Nodes/4.0.0 - Amplify Shader Editor Nodes.unitypackage.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 66d63a07f87e69d4d9e5875605565faa
+guid: 68e1c94b04df60048974896754524c17
 DefaultImporter:
   externalObjects: {}
   userData: 

+ 271 - 1
ActionTowerDefense/Assets/Resources/Prefab/GameUI/Game_UI.prefab

@@ -228,6 +228,141 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &1873410874073045839
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8802431779637494171}
+  - component: {fileID: 2051040455560741519}
+  - component: {fileID: 6023927540491645471}
+  m_Layer: 5
+  m_Name: Text (TMP)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8802431779637494171
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1873410874073045839}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 3705239918155393502}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2051040455560741519
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1873410874073045839}
+  m_CullTransparentMesh: 1
+--- !u!114 &6023927540491645471
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1873410874073045839}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: "\u4E0B\u4E00\u5173"
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 39a7404a24ab897418249c0d649949a8, type: 2}
+  m_sharedMaterial: {fileID: -1504297583073342176, guid: 39a7404a24ab897418249c0d649949a8, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4281479730
+  m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 50
+  m_fontSizeBase: 50
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 0, y: 0, z: 0, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
 --- !u!1 &4085179443391117656
 GameObject:
   m_ObjectHideFlags: 0
@@ -695,6 +830,7 @@ RectTransform:
   - {fileID: 8077449060444643574}
   - {fileID: 8077449061058906900}
   - {fileID: 8077449060321285310}
+  - {fileID: 3705239918155393502}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -933,6 +1069,140 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &5262216953777295441
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3705239918155393502}
+  - component: {fileID: 8789753443876770009}
+  - component: {fileID: 815036410213498597}
+  - component: {fileID: 6899736118153807368}
+  m_Layer: 5
+  m_Name: NextButton
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3705239918155393502
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5262216953777295441}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 8802431779637494171}
+  m_Father: {fileID: 4641053790322432091}
+  m_RootOrder: 13
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 1}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: -471.3, y: -75}
+  m_SizeDelta: {x: 187.39001, y: 69.099976}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8789753443876770009
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5262216953777295441}
+  m_CullTransparentMesh: 1
+--- !u!114 &815036410213498597
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5262216953777295441}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &6899736118153807368
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5262216953777295441}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 815036410213498597}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 4641053790322432087}
+        m_TargetAssemblyTypeName: GameManager, Assembly-CSharp
+        m_MethodName: 
+        m_Mode: 1
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
 --- !u!1 &5480026869625960933
 GameObject:
   m_ObjectHideFlags: 0
@@ -3281,7 +3551,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!224 &8077449060321285310
 RectTransform:
   m_ObjectHideFlags: 0

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1585 - 0
ActionTowerDefense/Assets/Resources/Prefab/RougueUI/Shop_UI.prefab


BIN
ActionTowerDefense/Assets/Resources/Textures/UI/RadarChart.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/RadarChart.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: ae7f016b2add5414fb0e9d1181b660cd
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 1
ActionTowerDefense/Assets/MasterStylizedFX/MSFURPWebGLFix.unitypackage.meta → ActionTowerDefense/Assets/Resources/Textures/UI/Treasure.meta

@@ -1,5 +1,6 @@
 fileFormatVersion: 2
-guid: cace8250e6f578340af6ac7ebc401d83
+guid: 01daac01f8e73004ea05f8c864c151f5
+folderAsset: yes
 DefaultImporter:
   externalObjects: {}
   userData: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/blueFire.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/blueFire.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 52dd2e5528b09904bb4fa37742088770
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/greenFire.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/greenFire.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 571a144b97792624d9c6b0248c8cb87c
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/purpleFire.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/purpleFire.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: a2643ea5ca9c29d42ab0ed8593d2d399
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/shield_body.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/shield_body.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 94735d84c36499d45aa907cedc9e4c30
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/shield_soul.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/shield_soul.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: de9aceaa0377f774ab6cdaef4ef9c92a
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/spear_body.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/spear_body.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 756c0669273d7a74ba9e0a6d0f7933ce
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/spear_soul.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/spear_soul.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 711ae4d92dacd4e4e9c2f80cd37cd2b7
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/sword_body.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/sword_body.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 07ad740c55448dd42aee57fe121dfc79
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/sword_soul.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Textures/UI/Treasure/sword_soul.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 833dbee4b7b9c574faea991c56e5a8a1
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 1
ActionTowerDefense/Assets/Scenes/Game.unity

@@ -22453,7 +22453,9 @@ MonoBehaviour:
   - 0.4
   - 1.6
   - -0.8
+  nowLevel: 0
   money: 0
+  myTreasuresTag: 0000000000000000000000000000000000000000000000000000000000000000
   gameTime: 0
   totalGameTime: 0
   gameType: 0
@@ -22514,7 +22516,7 @@ MonoBehaviour:
   levelIdA_debug: 8
   levelIdB_debug: 2
   curLevel: {fileID: 741372831}
-  curLevelID: 0
+  curLevelID: 5
   levels:
   - "0:9\u54081\u5173\u5361\u5C1D\u8BD5"
   - "1:\u6C34\u9762\u5173\u53612"
@@ -23837,6 +23839,14 @@ PrefabInstance:
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6899736118153807368, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
+      value: 
+      objectReference: {fileID: 1714821085}
+    - target: {fileID: 6899736118153807368, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: NextLevel
+      objectReference: {fileID: 0}
     - target: {fileID: 7518353233404985044, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0

+ 11 - 8
ActionTowerDefense/Assets/Scripts/GameManager.cs

@@ -43,7 +43,10 @@ public class GameManager : MonoBehaviour
 
     public LeveType leveType;
     [LabelText("ÏÂÒ»¹Ø±¶ÂÊÔö·ù")] public List<float> ratioIncrease = new List<float> { 0.4f, 1.6f, -0.8f };
+    public int nowLevel;
     public int money;
+    public List<Treasure> myTreasures;
+    public List<int> myTreasuresTag;
     public float gameTime;
     public float totalGameTime;
     public Tables allCfgData;
@@ -51,7 +54,7 @@ public class GameManager : MonoBehaviour
     public List<CreateEnemyConfig> createEnemyConfigs;
     [DisplayOnly] public GameType gameType;
     [DisplayOnly] public float levelRatio = 1;
-
+     
     private JSONNode Loader(string fileName)
     {
         return JSON.Parse(File.ReadAllText("GenerateDatas/json/" + fileName + ".json"));
@@ -92,7 +95,7 @@ public class GameManager : MonoBehaviour
             return;
         }
         leveType = LeveType.Introduction;
-
+        myTreasures = new List<Treasure>();
     }
 
     private void Start()
@@ -157,23 +160,23 @@ public class GameManager : MonoBehaviour
     public void NextLevel()
     {
         shopButton.SetActive(false);
-
-        
+        nowLevel += 1;
+        if(nowLevel - 1 < ratioIncrease.Count)
+        {
+            levelRatio += ratioIncrease[nowLevel - 1];
+        }
         switch (leveType)
         {
             case LeveType.Introduction:
                 EnemyCreater.instance.GetLevelOrientation(0);
                 leveType = LeveType.Development;
-                levelRatio += ratioIncrease[0];
                 break;
             case LeveType.Development:
                 EnemyCreater.instance.GetLevelOrientation(1);
                 leveType = LeveType.Transition;
-                levelRatio += ratioIncrease[1];
                 break;
             case LeveType.Transition:
                 leveType = LeveType.Conclusion;
-                levelRatio += ratioIncrease[2];
                 break;
             case LeveType.Conclusion:
                 leveType = LeveType.Boss;
@@ -197,6 +200,6 @@ public class GameManager : MonoBehaviour
     public void ShowShop()
     {
         gameType = GameType.Shop;
-        shopUI.gameObject.SetActive(true);
+        shopUI.Init();
     }
 }

+ 18 - 0
ActionTowerDefense/Assets/Scripts/UI/ButtonUI.cs

@@ -0,0 +1,18 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ButtonUI : MonoBehaviour
+{
+    public Image[] image;
+    public int nowImage;
+    public void ChangeImg(int i)
+    {
+        image[nowImage].gameObject.SetActive(false);
+        image[i].gameObject.SetActive(true);
+        nowImage = i;
+    }
+    public void Test()
+    {
+        Debug.Log("Test");
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/UI/ButtonUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 345e3a32cbcf75146995cce67c576322
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 42 - 0
ActionTowerDefense/Assets/Scripts/UI/RadarTest.cs

@@ -0,0 +1,42 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 测试雷达图
+/// </summary>
+public class RadarTest : MonoBehaviour
+{
+    public UIPolygon uiPolygon;
+    List<float> datas = new List<float>();
+
+    void Start()
+    {
+        // 防御力
+        datas.Add(0.92f);
+        // 智力
+        datas.Add(0.31f);
+        // 灵巧
+        datas.Add(0.36f);
+        // 力量
+        datas.Add(0.28f);
+        // 敏捷
+        datas.Add(0.35f);
+        uiPolygon.DrawPolygon(datas);
+    }
+
+    private void Update()
+    {
+        if (Input.GetMouseButtonDown(0))
+        {
+            for (int i = 0, cnt = datas.Count; i < cnt; ++i)
+            {
+                datas[i] = Random.Range(0f, 1f);
+            }
+            // 重新随机雷达数据
+            uiPolygon.DrawPolygon(datas);
+        }
+    }
+
+}
+

+ 11 - 0
ActionTowerDefense/Assets/Scripts/UI/RadarTest.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 405ad38b6fb6fef4eb168c206409ccb1
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 110 - 7
ActionTowerDefense/Assets/Scripts/UI/ShopUI.cs

@@ -1,18 +1,121 @@
-using System.Collections;
+using cfg;
+using Sirenix.OdinInspector;
 using System.Collections.Generic;
+using TMPro;
 using UnityEngine;
 
+
 public class ShopUI : MonoBehaviour
 {
-    // Start is called before the first frame update
-    void Start()
+    [FoldoutGroup("组件")] public TextMeshProUGUI moneyText;
+    [FoldoutGroup("组件")] public TreasuresSaleUI[] treasuresSaleUI;
+    [FoldoutGroup("组件")] public Sprite[] tagsUI;
+    [FoldoutGroup("组件")] public TextMeshProUGUI refreshPriceText;
+    [FoldoutGroup("组件")] public UIPolygon uiPolygon;
+    [FoldoutGroup("组件")] public UIPolygon uiPolygon1;
+    public Color[] qualitysIcon;
+    public Color[] qualitysText;
+    
+    [LabelText("标签间隔")] public float interval;
+    [LabelText("雷达图初始最大值")] public int polygonInitMax;
+    [LabelText("雷达图最大值间隔")] public int polygonMaxInterval;
+    [LabelText("描边宽度")] public float polygonOutline;
+    public int refreshPrice;
+    public int refreshNum;
+    
+    public void Init()
+    {
+        refreshPrice = refreshNum + 1;
+
+        moneyText.text = $"{GameManager.instance.money}";
+        refreshPriceText.text = $"-{refreshPrice}";
+
+        CfgTreasure cfgTreasure = GameManager.instance.allCfgData.CfgTreasure;
+        List<SingleTreasureConfig> singleTreasureConfigs = cfgTreasure.DataList;
+
+        List<int> randomTreasure = new List<int>();
+        for(int i = 0; i < 6; i++)
+        {
+            if (treasuresSaleUI[i].islock)
+            {
+                randomTreasure.Add(treasuresSaleUI[i].treasure.id);
+            }
+        }
+        for (int i = 0; i < 6; i++)
+        {
+            if (treasuresSaleUI[i].islock)
+            {
+                continue;
+            }
+            int randId = 0;
+            while (true)
+            {
+                randId = Random.Range(0, singleTreasureConfigs.Count);
+                if (!randomTreasure.Exists(x => x == singleTreasureConfigs[randId].ID))
+                {
+                    break;
+                }
+            }
+            SingleTreasureConfig singleTreasureConfig = singleTreasureConfigs[randId];
+            Sprite sprite = Resources.Load<Sprite>($"Textures/UI/Treasure/{singleTreasureConfig.SpriteName}");
+            List<Sprite> tags = new List<Sprite>();
+            for (int j = 0; j < singleTreasureConfig.Tag.Count; j++)
+            {
+                tags.Add(tagsUI[singleTreasureConfig.Tag[j] - 1]);
+            }
+            Treasure treasure = new Treasure(
+                singleTreasureConfig.ID,
+                singleTreasureConfig.Name,
+                sprite,
+                qualitysIcon[singleTreasureConfig.Quality],
+                qualitysText[singleTreasureConfig.Quality],
+                singleTreasureConfig.Tag,
+                tags,
+                singleTreasureConfig.Attribute,
+                singleTreasureConfig.Price
+                );
+            treasuresSaleUI[i].treasure = treasure;
+            treasuresSaleUI[i].Init();
+            randomTreasure.Add(singleTreasureConfig.ID);
+        }
+        RefreshUIPolygon();
+        gameObject.SetActive(true);
+    }
+
+    public void Refresh()
     {
-        
+        if(GameManager.instance.money - refreshPrice < 0)
+        {
+            return;
+        }
+        GameManager.instance.money -= refreshPrice;
+        refreshNum += 1;
+        Init();
     }
 
-    // Update is called once per frame
-    void Update()
+    public void RefreshUIPolygon()
     {
-        
+        List<int> tagsId = GameManager.instance.myTreasuresTag;
+        int maxId = tagsId[0];
+        for (int i = 1; i < 8; i++)
+        {
+            maxId = Mathf.Max(maxId, tagsId[i]);
+        }
+        int range = polygonInitMax;
+        while (range <= maxId)
+        {
+            range += polygonMaxInterval;
+        }
+        List<float> polygon = new List<float>();
+        List<float> polygon1 = new List<float>();
+
+        for(int i = 0; i < 8; i++)
+        {
+            float rate = tagsId[i] * 1f / range;
+            polygon.Add(rate);
+            polygon1.Add(Mathf.Clamp((rate + 0.05f) * polygonOutline, 0.05f, 1));
+        }
+        uiPolygon.DrawPolygon(polygon);
+        uiPolygon1.DrawPolygon(polygon1);
     }
 }

+ 125 - 0
ActionTowerDefense/Assets/Scripts/UI/TreasuresSaleUI.cs

@@ -0,0 +1,125 @@
+using Sirenix.OdinInspector;
+using System.Collections.Generic;
+using TMPro;
+using UnityEngine;
+using UnityEngine.UI;
+
+public struct Treasure
+{
+    public int id;
+    public string name;
+    public Sprite sprite;
+    public Color qualityIcon;
+    public Color qualityText;
+    public List<int> tagsId;
+    public List<Sprite> tags;
+    public string attribute;
+    public int price;
+
+    public Treasure(int id, string name, Sprite sprite, Color qualityIcon, Color qualityText, List<int> tagsId, List<Sprite> tags, string attribute, int price)
+    {
+        this.id = id;
+        this.name = name;
+        this.sprite = sprite;
+        this.qualityIcon = qualityIcon;
+        this.qualityText = qualityText;
+        this.tagsId = new List<int>(tagsId);
+        this.tags = new List<Sprite>(tags);
+        this.attribute = attribute;
+        this.price = price;
+    }
+}
+
+public class TreasuresSaleUI : MonoBehaviour
+{
+    [FoldoutGroup("组件")] public ShopUI shopUI;
+    [FoldoutGroup("组件")] public ButtonUI unlock;
+    [FoldoutGroup("组件")] public Image iconBackground;
+    [FoldoutGroup("组件")] public Image icon;
+    [FoldoutGroup("组件")] public Image[] tags;
+    [FoldoutGroup("组件")] public TextMeshProUGUI nameText;
+    [FoldoutGroup("组件")] public TextMeshProUGUI attribute;
+    [FoldoutGroup("组件")] public ButtonUI buy;
+    [FoldoutGroup("组件")] public TextMeshProUGUI price;
+
+    public bool islock;
+    public bool isNull;
+    public Treasure treasure;
+    public void Init()
+    {
+        
+        ShowLockImg();
+        iconBackground.color = treasure.qualityIcon;
+        icon.sprite = treasure.sprite;
+        int type = treasure.tags.Count % 2;
+        int len = treasure.tags.Count / 2;
+        float interval = shopUI.interval;
+        float left = 0;
+        switch (type)
+        {
+            case 0:
+                left = -interval / 2 - (len - 1) * interval;
+                break;
+            case 1:
+                left = -len * interval;
+                break;
+        }
+        for (int i = 0; i < 8; i++)
+        {
+            Image tag = tags[i];
+            if (i < treasure.tags.Count)
+            {
+                tag.transform.localPosition = new Vector3(left + i * interval, 0, 0);
+                tag.sprite = treasure.tags[i];
+                tag.gameObject.SetActive(true);
+            }
+            else
+            {
+                tag.gameObject.SetActive(false);
+            }
+        }
+        nameText.text = treasure.name;
+        nameText.color = treasure.qualityText;
+        attribute.text = treasure.attribute;
+        price.text = $"{treasure.price}";
+        gameObject.SetActive(true);
+        isNull = false;
+    }
+
+    public void ChangeLock()
+    {
+        islock = !islock;
+        ShowLockImg();
+    }
+
+    public void ShowLockImg()
+    {
+        if (islock)
+        {
+            unlock.ChangeImg(1);
+        }
+        else
+        {
+            unlock.ChangeImg(0);
+        }
+    }
+
+    public void Buy()
+    {
+        if(GameManager.instance.money - treasure.price < 0)
+        {
+            return;
+        }
+        GameManager.instance.money -= treasure.price;
+        shopUI.moneyText.text = $"{GameManager.instance.money}";
+        GameManager.instance.myTreasures.Add(treasure);
+        for(int i = 0; i < treasure.tagsId.Count; i++)
+        {
+            GameManager.instance.myTreasuresTag[treasure.tagsId[i] - 1]++;
+        }
+        shopUI.RefreshUIPolygon();
+        gameObject.SetActive(false);
+        isNull = true;
+        islock = false;
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/UI/TreasuresSaleUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 51aa7dae8793be1449d257b1963603af
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 238 - 0
ActionTowerDefense/Assets/Scripts/UI/UIPolygon.cs

@@ -0,0 +1,238 @@
+using UnityEngine.UI;
+using UnityEngine;
+using System.Collections.Generic;
+
+/// <summary>
+/// UI多边形
+/// </summary>
+public class UIPolygon : MaskableGraphic
+{
+    [SerializeField]
+    Texture m_Texture;
+    /// <summary>
+    /// 填充
+    /// </summary>
+    public bool fill = true;
+
+    /// <summary>
+    /// 是否显示描边
+    /// </summary>
+    public bool showOutline = false;
+
+    /// <summary>
+    /// 描边颜色
+    /// </summary>
+    public Color outlineColor = Color.white;
+
+    /// <summary>
+    /// 描边宽度
+    /// </summary>
+    [Range(1, 10)]
+    public float outlineWidth = 2f;
+
+    /// <summary>
+    /// 边数
+    /// </summary>
+    [Range(3, 360)]
+    public int sides = 3;
+    /// <summary>
+    /// 旋转角度
+    /// </summary>
+    [Range(0, 360)]
+    public float rotation = 0;
+    /// <summary>
+    /// 顶点数组
+    /// </summary>
+    [Range(0, 1)]
+    public float[] VerticesDistances = new float[3];
+
+    private float size = 0;
+
+    public override Texture mainTexture
+    {
+        get
+        {
+            return m_Texture == null ? s_WhiteTexture : m_Texture;
+        }
+    }
+
+    public Texture texture
+    {
+        get
+        {
+            return m_Texture;
+        }
+        set
+        {
+            if (m_Texture == value) return;
+            m_Texture = value;
+            SetVerticesDirty();
+            SetMaterialDirty();
+        }
+    }
+
+    #region 提供外部的接口
+    public void DrawPolygon(int _sides)
+    {
+        sides = _sides;
+        VerticesDistances = new float[_sides + 1];
+        for (int i = 0; i < _sides; i++) VerticesDistances[i] = 1;
+    }
+
+    public void DrawPolygon(List<float> datas)
+    {
+        List<float> finalDatas = new List<float>(datas);
+        sides = finalDatas.Count;
+        // 加上最后一个点,最后一个点与第一个点重合
+        finalDatas.Add(finalDatas[0]);
+        VerticesDistances = finalDatas.ToArray();
+        // 触发重绘
+        SetVerticesDirty();
+    }
+    #endregion
+
+    void Update()
+    {
+        // 根据宽高适配尺寸
+        size = rectTransform.rect.width;
+        if (rectTransform.rect.width > rectTransform.rect.height)
+            size = rectTransform.rect.height;
+        else
+            size = rectTransform.rect.width;
+    }
+
+    protected UIVertex[] SetVertexs(Vector2[] vertices, Vector2[] uvs, Color vertexColor)
+    {
+        UIVertex[] vbo = new UIVertex[4];
+        for (int i = 0; i < vertices.Length; i++)
+        {
+            var vert = UIVertex.simpleVert;
+            vert.color = vertexColor;
+            vert.position = vertices[i];
+            vert.uv0 = uvs[i];
+            vbo[i] = vert;
+        }
+        return vbo;
+    }
+
+    /// <summary>
+    /// 绘制描边
+    /// </summary>
+    private void DrawOutline(VertexHelper vh)
+    {
+        if (!showOutline || outlineWidth <= 0) return;
+
+        float degrees = 360f / sides;
+        int vertices = sides + 1;
+
+        // 确保顶点距离数组长度正确
+        if (VerticesDistances.Length != vertices)
+        {
+            VerticesDistances = new float[vertices];
+            for (int i = 0; i < vertices - 1; i++) VerticesDistances[i] = 1;
+            VerticesDistances[vertices - 1] = VerticesDistances[0];
+        }
+
+        // 绘制每条边的描边
+        for (int i = 0; i < sides; i++)
+        {
+            int nextIndex = (i + 1) % sides;
+
+            float rad1 = Mathf.Deg2Rad * (i * degrees + rotation);
+            float rad2 = Mathf.Deg2Rad * (nextIndex * degrees + rotation);
+
+            float outer1 = -rectTransform.pivot.x * size * VerticesDistances[i];
+            float outer2 = -rectTransform.pivot.x * size * VerticesDistances[nextIndex];
+
+            Vector2 point1 = new Vector2(outer1 * Mathf.Cos(rad1), outer1 * Mathf.Sin(rad1));
+            Vector2 point2 = new Vector2(outer2 * Mathf.Cos(rad2), outer2 * Mathf.Sin(rad2));
+
+            // 计算边的法线方向
+            Vector2 edgeDir = (point2 - point1).normalized;
+            Vector2 normal = new Vector2(-edgeDir.y, edgeDir.x);
+
+            // 计算描边的四个顶点
+            Vector2 offset = normal * outlineWidth * 0.5f;
+            Vector2 p1 = point1 - offset;
+            Vector2 p2 = point1 + offset;
+            Vector2 p3 = point2 + offset;
+            Vector2 p4 = point2 - offset;
+
+            // 添加描边四边形
+            vh.AddUIVertexQuad(SetVertexs(
+                new[] { p1, p2, p3, p4 },
+                new[] { Vector2.zero, Vector2.up, Vector2.one, Vector2.right },
+                outlineColor
+            ));
+        }
+    }
+
+    /// <summary>
+    /// 重写OnPopulateMesh方法
+    /// </summary>
+    /// <param name="vh"></param>
+    protected override void OnPopulateMesh(VertexHelper vh)
+    {
+        vh.Clear();
+
+        // 先绘制描边(在底层)
+        if (showOutline)
+        {
+            DrawOutline(vh);
+        }
+
+        // 然后绘制填充多边形(在顶层)
+        if (fill)
+        {
+            Vector2 prevX = Vector2.zero;
+            Vector2 prevY = Vector2.zero;
+            Vector2 uv0 = new Vector2(0, 0);
+            Vector2 uv1 = new Vector2(0, 1);
+            Vector2 uv2 = new Vector2(1, 1);
+            Vector2 uv3 = new Vector2(1, 0);
+            Vector2 pos0;
+            Vector2 pos1;
+            Vector2 pos2;
+            Vector2 pos3;
+            float degrees = 360f / sides;
+            int vertices = sides + 1;
+
+            if (VerticesDistances.Length != vertices)
+            {
+                VerticesDistances = new float[vertices];
+                for (int i = 0; i < vertices - 1; i++) VerticesDistances[i] = 1;
+            }
+
+            // 最后一个顶点,也即是第一个顶点
+            VerticesDistances[vertices - 1] = VerticesDistances[0];
+
+            for (int i = 0; i < vertices; i++)
+            {
+                float outer = -rectTransform.pivot.x * size * VerticesDistances[i];
+                float inner = -rectTransform.pivot.x * size * VerticesDistances[i];
+                float rad = Mathf.Deg2Rad * (i * degrees + rotation);
+                float c = Mathf.Cos(rad);
+                float s = Mathf.Sin(rad);
+
+                uv0 = new Vector2(0, 1);
+                uv1 = new Vector2(1, 1);
+                uv2 = new Vector2(1, 0);
+                uv3 = new Vector2(0, 0);
+
+                pos0 = prevX;
+                pos1 = new Vector2(outer * c, outer * s);
+                pos2 = Vector2.zero; // 填充模式下,内部点为中心点
+                pos3 = Vector2.zero;
+
+                prevX = pos1;
+                prevY = pos2;
+
+                vh.AddUIVertexQuad(SetVertexs(
+                    new[] { pos0, pos1, pos2, pos3 },
+                    new[] { uv0, uv1, uv2, uv3 },
+                    color
+                ));
+            }
+        }
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/UI/UIPolygon.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 494b71daa049bb642b696efb8577b310
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 643 - 307
ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/AaErMoXingShu-2 SDF.asset


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 1120
ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset


+ 0 - 8
ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 2e498d1c8094910479dc3e1b768306a4
-timeCreated: 1484171803
-licenseType: Pro
-NativeFormatImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 1 - 2
ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset

@@ -7719,8 +7719,7 @@ MonoBehaviour:
           m_YAdvance: 0
       m_FeatureLookupFlags: 0
   fallbackFontAssets: []
-  m_FallbackFontAssetTable:
-  - {fileID: 11400000, guid: 2e498d1c8094910479dc3e1b768306a4, type: 2}
+  m_FallbackFontAssetTable: []
   m_CreationSettings:
     sourceFontFileName: 
     sourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 1156
ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/思源黑体SC-Heavy SDF.asset


+ 0 - 8
ActionTowerDefense/Assets/TextMesh Pro/Resources/Fonts & Materials/思源黑体SC-Heavy SDF.asset.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: c73d2aa6c5fd9714bb0f31d4332f4a9b
-NativeFormatImporter:
-  externalObjects: {}
-  mainObjectFileID: 11400000
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 101 - 0
ActionTowerDefense/GenerateDatas/json/cfgtreasure.json

@@ -0,0 +1,101 @@
+[
+  {
+    "ID": 1,
+    "Name": "blueFire",
+    "SpriteName": "blueFire",
+    "Quality": 0,
+    "Tag": [
+      1
+    ],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+5%</color>飞行兵攻速",
+    "Price": 523
+  },
+  {
+    "ID": 2,
+    "Name": "greenFire",
+    "SpriteName": "greenFire",
+    "Quality": 1,
+    "Tag": [
+      1,
+      2
+    ],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+6%</color>飞行兵攻速",
+    "Price": 524
+  },
+  {
+    "ID": 3,
+    "Name": "purpleFire",
+    "SpriteName": "purpleFire",
+    "Quality": 2,
+    "Tag": [],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+7%</color>飞行兵攻速",
+    "Price": 525
+  },
+  {
+    "ID": 4,
+    "Name": "shield_body",
+    "SpriteName": "shield_body",
+    "Quality": 3,
+    "Tag": [
+      3,
+      4,
+      5
+    ],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+8%</color>飞行兵攻速",
+    "Price": 526
+  },
+  {
+    "ID": 5,
+    "Name": "shield_soul",
+    "SpriteName": "shield_soul",
+    "Quality": 0,
+    "Tag": [],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+9%</color>飞行兵攻速",
+    "Price": 527
+  },
+  {
+    "ID": 6,
+    "Name": "spear_body",
+    "SpriteName": "spear_body",
+    "Quality": 1,
+    "Tag": [
+      7,
+      8
+    ],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+10%</color>飞行兵攻速",
+    "Price": 528
+  },
+  {
+    "ID": 7,
+    "Name": "spear_soul",
+    "SpriteName": "spear_soul",
+    "Quality": 2,
+    "Tag": [
+      5
+    ],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+11%</color>飞行兵攻速",
+    "Price": 529
+  },
+  {
+    "ID": 8,
+    "Name": "sword_body",
+    "SpriteName": "sword_body",
+    "Quality": 3,
+    "Tag": [
+      6
+    ],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+12%</color>飞行兵攻速",
+    "Price": 530
+  },
+  {
+    "ID": 9,
+    "Name": "sword_soul",
+    "SpriteName": "sword_soul",
+    "Quality": 0,
+    "Tag": [
+      1
+    ],
+    "Attribute": "<color=#fbe085>+10%</color>飞行兵伤害\n<color=#fbe085>+13%</color>飞行兵攻速",
+    "Price": 531
+  }
+]

BIN
ActionTowerDefense/Luban/Config/Datas/__tables__.xlsx


BIN
ActionTowerDefense/Luban/Config/Datas/卦象概率表.xlsx


BIN
ActionTowerDefense/Luban/Config/Datas/宝物表.xlsx


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است