Browse Source

equipment

fenix 8 years ago
parent
commit
2345eb5e2e
81 changed files with 1126 additions and 233 deletions
  1. 13 0
      Assets/Editor/GameTools.cs
  2. BIN
      Assets/Models/UI/Battle/ResultPanel/Drop.anim
  3. 8 0
      Assets/Models/UI/Battle/ResultPanel/Drop.anim.meta
  4. BIN
      Assets/Models/UI/Battle/ResultPanel/DropHide.anim
  5. 8 0
      Assets/Models/UI/Battle/ResultPanel/DropHide.anim.meta
  6. BIN
      Assets/Models/UI/Battle/ResultPanel/DropMix.anim
  7. 8 0
      Assets/Models/UI/Battle/ResultPanel/DropMix.anim.meta
  8. BIN
      Assets/Models/UI/Battle/ResultPanel/DropShow.anim
  9. 8 0
      Assets/Models/UI/Battle/ResultPanel/DropShow.anim.meta
  10. BIN
      Assets/Models/UI/Battle/ResultPanel/NoDrop.anim
  11. 8 0
      Assets/Models/UI/Battle/ResultPanel/NoDrop.anim.meta
  12. BIN
      Assets/Models/UI/Battle/ResultPanel/PanelShow.anim
  13. BIN
      Assets/Models/UI/Battle/ResultPanel/ResultDrop.controller
  14. 8 0
      Assets/Models/UI/Battle/ResultPanel/ResultDrop.controller.meta
  15. BIN
      Assets/Models/UI/Battle/ResultPanel/ResultPanel.controller
  16. BIN
      Assets/Models/UI/Battle/ResultPanel/Reward.anim
  17. BIN
      Assets/Models/UI/Icons/Equip.png
  18. 59 0
      Assets/Models/UI/Icons/Equip.png.meta
  19. BIN
      Assets/Models/UI/LoadingPanel/LoadingPanelShow.anim
  20. BIN
      Assets/Models/UI/Menu/LeftBar/Hidden.anim
  21. BIN
      Assets/Models/UI/Menu/LeftBar/Show.anim
  22. 9 0
      Assets/Models/UI/Menu/RightBar.meta
  23. BIN
      Assets/Models/UI/Menu/RightBar/Hidden.anim
  24. 8 0
      Assets/Models/UI/Menu/RightBar/Hidden.anim.meta
  25. BIN
      Assets/Models/UI/Menu/RightBar/RightBar.controller
  26. 8 0
      Assets/Models/UI/Menu/RightBar/RightBar.controller.meta
  27. BIN
      Assets/Models/UI/Menu/RightBar/Show.anim
  28. 8 0
      Assets/Models/UI/Menu/RightBar/Show.anim.meta
  29. BIN
      Assets/Models/UI/Menu/TopBar/Show.anim
  30. BIN
      Assets/Resources/Prefabs/UI/Battle/ResultPanel.prefab
  31. BIN
      Assets/Resources/Prefabs/UI/EquipPanel/EquipPanel.prefab
  32. BIN
      Assets/Resources/Prefabs/UI/LoadingPanel.prefab
  33. 2 1
      Assets/Resources/XML/Config/All/buff_config.xml
  34. 6 6
      Assets/Resources/XML/Config/All/craft_config.xml
  35. 16 4
      Assets/Resources/XML/Config/All/equip_config.xml
  36. 24 22
      Assets/Resources/XML/Config/All/power_config.xml
  37. 6 3
      Assets/Resources/XML/Config/All/word_config.xml
  38. BIN
      Assets/Scenes/Battle.unity
  39. 6 7
      Assets/Scripts/Battle/Map/Buff/BuffManager.cs
  40. 1 1
      Assets/Scripts/Battle/Map/Bullet/Bullet.cs
  41. 1 1
      Assets/Scripts/Battle/Map/Craft/CraftConfigData.cs
  42. 8 0
      Assets/Scripts/Battle/Map/Craft/PowerManager.cs
  43. 3 3
      Assets/Scripts/Battle/Map/Power/Power.cs
  44. 2 2
      Assets/Scripts/Battle/Map/Power/PowerData.cs
  45. 7 7
      Assets/Scripts/Battle/Map/Power/PowerHandler.cs
  46. 3 3
      Assets/Scripts/Config.cs
  47. 4 4
      Assets/Scripts/Data/ConfigValue.cs
  48. 9 0
      Assets/Scripts/Net/Http/Battle.meta
  49. 40 0
      Assets/Scripts/Net/Http/Battle/BattleRequest.cs
  50. 12 0
      Assets/Scripts/Net/Http/Battle/BattleRequest.cs.meta
  51. 9 0
      Assets/Scripts/Net/Http/Equip.meta
  52. 37 0
      Assets/Scripts/Net/Http/Equip/EquipRequest.cs
  53. 12 0
      Assets/Scripts/Net/Http/Equip/EquipRequest.cs.meta
  54. 8 15
      Assets/Scripts/Net/NetworkManager.cs
  55. 1 1
      Assets/Scripts/Replay/ReplayManager.cs
  56. 6 27
      Assets/Scripts/Session/UserData.cs
  57. 99 0
      Assets/Scripts/UI/Battle/ResultDrop.cs
  58. 12 0
      Assets/Scripts/UI/Battle/ResultDrop.cs.meta
  59. 80 0
      Assets/Scripts/UI/Battle/ResultDropItem.cs
  60. 12 0
      Assets/Scripts/UI/Battle/ResultDropItem.cs.meta
  61. 81 58
      Assets/Scripts/UI/Battle/ResultPanel.cs
  62. 9 3
      Assets/Scripts/UI/CrystalNum.cs
  63. 13 4
      Assets/Scripts/UI/DiamondNum.cs
  64. 4 0
      Assets/Scripts/UI/EquipPanel/EquipData.cs
  65. 19 0
      Assets/Scripts/UI/EquipPanel/EquipIcon.cs
  66. 84 10
      Assets/Scripts/UI/EquipPanel/EquipInfo.cs
  67. 174 27
      Assets/Scripts/UI/EquipPanel/EquipManager.cs
  68. 24 7
      Assets/Scripts/UI/EquipPanel/EquipPanel.cs
  69. 35 2
      Assets/Scripts/UI/EquipPanel/EquipedData.cs
  70. 56 4
      Assets/Scripts/UI/EquipPanel/Equipment.cs
  71. 6 1
      Assets/Scripts/UI/Menu/MenuUI.cs
  72. 9 3
      Assets/Scripts/UI/Menu/MyNick.cs
  73. 7 0
      Assets/Scripts/UI/Public/ButtonUtil.cs
  74. 20 1
      Assets/Scripts/Utils/UpgradeUtil.cs
  75. BIN
      Assets/XlsxSource/All/buff_config.xlsx
  76. BIN
      Assets/XlsxSource/All/craft_config.xlsx
  77. BIN
      Assets/XlsxSource/All/equip_config.xlsx
  78. BIN
      Assets/XlsxSource/All/power_config.xlsx
  79. BIN
      Assets/XlsxSource/All/word_config.xlsx
  80. 6 6
      Assets/XlsxSource/All/xlsx_md5.xml
  81. BIN
      Keys/qjh.kdb

+ 13 - 0
Assets/Editor/GameTools.cs

@@ -206,6 +206,19 @@ public class GameTools : EditorWindow
 //		{
 //			ChatRequest.Replay ("my first replay", replayFile);
 //		}
+
+
+
+
+		if (GUILayout.Button ("Battle Win")) {
+			ResultPanel.Show (new ResultPanel.ResultData(null, null, ResultPanel.Result.Win, Random.Range(10, 100)));
+		}
+		if (GUILayout.Button ("Battle Lose")) {
+			ResultPanel.Show (new ResultPanel.ResultData(null, null, ResultPanel.Result.Lose, Random.Range(10, 100)));
+		}
+		if (GUILayout.Button ("Battle Draw")) {
+			ResultPanel.Show (new ResultPanel.ResultData(null, null, ResultPanel.Result.Draw, Random.Range(10, 100)));
+		}
 	}
 
 }

BIN
Assets/Models/UI/Battle/ResultPanel/Drop.anim


+ 8 - 0
Assets/Models/UI/Battle/ResultPanel/Drop.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 73db67f5e23ea854faccb2ba9846eabf
+timeCreated: 1492600538
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/Battle/ResultPanel/DropHide.anim


+ 8 - 0
Assets/Models/UI/Battle/ResultPanel/DropHide.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 94e07d3c0ca762842a6e83d472946252
+timeCreated: 1492601274
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/Battle/ResultPanel/DropMix.anim


+ 8 - 0
Assets/Models/UI/Battle/ResultPanel/DropMix.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 56737f4310302f9498c6eaa4d898d634
+timeCreated: 1492602170
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/Battle/ResultPanel/DropShow.anim


+ 8 - 0
Assets/Models/UI/Battle/ResultPanel/DropShow.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4a6a0db5ac6ad574d8c58f9ecde1e92a
+timeCreated: 1492601244
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/Battle/ResultPanel/NoDrop.anim


+ 8 - 0
Assets/Models/UI/Battle/ResultPanel/NoDrop.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 11bac660cd266db4a91a8f7b3b0e1d9a
+timeCreated: 1492599424
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/Battle/ResultPanel/PanelShow.anim


BIN
Assets/Models/UI/Battle/ResultPanel/ResultDrop.controller


+ 8 - 0
Assets/Models/UI/Battle/ResultPanel/ResultDrop.controller.meta

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

BIN
Assets/Models/UI/Battle/ResultPanel/ResultPanel.controller


BIN
Assets/Models/UI/Battle/ResultPanel/Reward.anim


BIN
Assets/Models/UI/Icons/Equip.png


+ 59 - 0
Assets/Models/UI/Icons/Equip.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 25f639cb5861e994d8b4aff600250e70
+timeCreated: 1492674103
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/LoadingPanel/LoadingPanelShow.anim


BIN
Assets/Models/UI/Menu/LeftBar/Hidden.anim


BIN
Assets/Models/UI/Menu/LeftBar/Show.anim


+ 9 - 0
Assets/Models/UI/Menu/RightBar.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: bc14a05daa7afa640a3ee0d249b3d994
+folderAsset: yes
+timeCreated: 1492673110
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/Menu/RightBar/Hidden.anim


+ 8 - 0
Assets/Models/UI/Menu/RightBar/Hidden.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 05d52fd29fc586d40923c3090c2bea9b
+timeCreated: 1492673183
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/Menu/RightBar/RightBar.controller


+ 8 - 0
Assets/Models/UI/Menu/RightBar/RightBar.controller.meta

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

BIN
Assets/Models/UI/Menu/RightBar/Show.anim


+ 8 - 0
Assets/Models/UI/Menu/RightBar/Show.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 72b983a0d7b4710489a6bd6920b5b550
+timeCreated: 1492673199
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UI/Menu/TopBar/Show.anim


BIN
Assets/Resources/Prefabs/UI/Battle/ResultPanel.prefab


BIN
Assets/Resources/Prefabs/UI/EquipPanel/EquipPanel.prefab


BIN
Assets/Resources/Prefabs/UI/LoadingPanel.prefab


+ 2 - 1
Assets/Resources/XML/Config/All/buff_config.xml

@@ -8,7 +8,7 @@
   <item id="7" name="冰冻" description="被冰冻住什么都没法干" target="" is_good="" is_normal="" buff_type="5" duration="2" value="" value_type="" remove="" end="" end_buff="" g_effect="Frozen" s_effect="buff_frozen" />
   <item id="8" name="变大" description="大,大,大" target="1" is_good="1" is_normal="" buff_type="7" duration="15" value="50" value_type="1" remove="" end="" end_buff="" g_effect="" s_effect="buff_dasher_dash" />
   <item id="9" name="加速" description="移动速度增加" target="1" is_good="1" is_normal="" buff_type="3" duration="5" value="60" value_type="1" remove="" end="" end_buff="" g_effect="" s_effect="buff_dasher_dash" />
-  <item id="10" name="撞晕" description="受到撞击造成眩晕" target="" is_good="" is_normal="" buff_type="5|1" duration="2" value="0|100" value_type="" remove="" end="" end_buff="" g_effect="DashStun" s_effect="hit_huntersnap" />
+  <item id="10" name="撞晕" description="受到撞击造成眩晕" target="" is_good="" is_normal="" buff_type="5|1" duration="2" value="0|4" value_type="" remove="" end="" end_buff="" g_effect="DashStun" s_effect="hit_huntersnap" />
   <comment>
     <id>
 buff ID
@@ -55,6 +55,7 @@ buff描述(30字以内)
     <value>
 数值
 (可不填)
+(伤害值为基础伤害的倍数)
 </value>
     <value_type>
 数值类型

+ 6 - 6
Assets/Resources/XML/Config/All/craft_config.xml

@@ -1,12 +1,12 @@
 <data>
-  <item id="1" name="Dasher" description="看看你的头硬还是我的拳头硬。" hp="150" dmg="50" equip="111123" attack="10" power="11|12" model="Dasher" />
-  <item id="2" name="Hunter" description="一旦猎物被盯上就不可能逃掉。" hp="90" dmg="110" equip="222113" attack="20" power="21|22" model="Hunter" />
-  <item id="3" name="Thunder" description="不要乱动,小心触电。" hp="80" dmg="120" equip="222213" attack="30" power="31|32" model="Thunder" />
+  <item id="1" name="Dasher" description="看看你的头硬还是我的拳头硬。" hp="150" dmg="66.7" equip="111123" attack="10" power="11|12" model="Dasher" />
+  <item id="2" name="Hunter" description="一旦猎物被盯上就不可能逃掉。" hp="80" dmg="125" equip="222113" attack="20" power="21|22" model="Hunter" />
+  <item id="3" name="Thunder" description="不要乱动,小心触电。" hp="66.7" dmg="150" equip="222213" attack="30" power="31|32" model="Thunder" />
   <item id="4" name="Assassin" description="看不见的危险才是最大的危险。" hp="100" dmg="100" equip="222113" attack="40" power="41|42" model="Assassin" />
-  <item id="5" name="Medic" description="看来你需要修理一下了。" hp="120" dmg="80" equip="112223" attack="50" power="51|52" model="Medic" />
-  <item id="6" name="Spider" description="有人要自投罗网了" hp="110" dmg="90" equip="222113" attack="60" power="61|62" model="Spider" />
+  <item id="5" name="Medic" description="看来你需要修理一下了。" hp="125" dmg="80" equip="112223" attack="50" power="51|52" model="Medic" />
+  <item id="6" name="Spider" description="有人要自投罗网了" hp="110" dmg="90.9" equip="222113" attack="60" power="61|62" model="Spider" />
   <item id="7" name="Ice" description="寒潮来袭" hp="100" dmg="100" equip="222113" attack="70" power="71|72" model="Ice" />
-  <item id="8" name="Flame" description="融化一切" hp="130" dmg="70" equip="111223" attack="80" power="81|82" model="Flame" />
+  <item id="8" name="Flame" description="融化一切" hp="125" dmg="80" equip="111223" attack="80" power="81|82" model="Flame" />
   <item id="1001" name="小蜘蛛" description="小蜘蛛" hp="33" dmg="33" equip="" attack="1001" power="" model="TinySpider" />
   <item id="1002" name="防御塔" description="防御塔" hp="200" dmg="200" equip="" attack="1002" power="" model="Door" />
   <comment>

+ 16 - 4
Assets/Resources/XML/Config/All/equip_config.xml

@@ -1,8 +1,8 @@
 <data>
-  <item id="1" name="light iron armor" quality="" icon="" hp="1" hp_up="1.5" dmg="" dmg_up="" />
-  <item id="2" name="iron armor" quality="1" icon="" hp="9" hp_up="2" dmg="" dmg_up="" />
-  <item id="3" name="heavy iron armor" quality="2" icon="" hp="17" hp_up="2.5" dmg="" dmg_up="" />
-  <item id="4" name="super iron armor" quality="3" icon="" hp="25" hp_up="3" dmg="" dmg_up="" />
+  <item id="1" name="light iron armor" quality="" icon="" version="10207" hp="1" hp_up="1.5" dmg="" dmg_up="" mov="" mov_up="" />
+  <item id="2" name="iron armor" quality="1" icon="" version="10207" hp="9" hp_up="2" dmg="" dmg_up="" mov="" mov_up="" />
+  <item id="3" name="heavy iron armor" quality="2" icon="" version="10207" hp="17" hp_up="2.5" dmg="" dmg_up="" mov="" mov_up="" />
+  <item id="4" name="super iron armor" quality="3" icon="" version="10207" hp="25" hp_up="3" dmg="" dmg_up="" mov="" mov_up="" />
   <comment>
     <id>
 ID
@@ -21,6 +21,10 @@ ID
 图标
 不填与id一样
 </icon>
+    <version>
+版本代码
+避免老版本掉落新物品
+</version>
     <hp>
 生命
 初始值
@@ -37,5 +41,13 @@ ID
 伤害
 成长值
 </dmg_up>
+    <mov>
+移动
+初始值
+</mov>
+    <mov_up>
+移动
+成长值
+</mov_up>
   </comment>
 </data>

+ 24 - 22
Assets/Resources/XML/Config/All/power_config.xml

@@ -1,30 +1,30 @@
 <data>
-  <item id="10" name="铁拳攻击" description="" type="1" effect="" crystal="" distance="3" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="80" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_dasher" g_hit="HunterHit" s_hit="" icon="" />
-  <item id="11" name="冲锋" description="快速冲向目标,并对目标造成伤害,并且是目标短时间丧失行动能力" type="8" effect="" crystal="" distance="8" cd="12" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="100" value_type="" decay="" buff="1" shake="" anim="1" g_effect="" s_effect="" g_hit="" s_hit="" icon="" />
-  <item id="12" name="雷霆一击" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="2" shake="1" anim="" g_effect="DashQuakeBullet" s_effect="bullet_dasher_quake" g_hit="" s_hit="" icon="" />
-  <item id="20" name="追猎者攻击" description="" type="" effect="" crystal="" distance="8" cd="1.5" bnum="16" binterval="0.08" target="" target_type="" target_lim="" target_sort="" value="64" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterBullet" s_effect="bullet_hunter" g_hit="HunterHit" s_hit="hit_hunter" icon="" />
+  <item id="10" name="铁拳攻击" description="" type="1" effect="" crystal="" distance="3" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_dasher" g_hit="HunterHit" s_hit="" icon="" />
+  <item id="11" name="冲锋" description="快速冲向目标,并对目标造成伤害,并且是目标短时间丧失行动能力" type="8" effect="" crystal="" distance="8" cd="12" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="4" value_type="" decay="" buff="1" shake="" anim="1" g_effect="" s_effect="" g_hit="" s_hit="" icon="" />
+  <item id="12" name="雷霆一击" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="3" value_type="" decay="" buff="2" shake="1" anim="" g_effect="DashQuakeBullet" s_effect="bullet_dasher_quake" g_hit="" s_hit="" icon="" />
+  <item id="20" name="追猎者攻击" description="" type="" effect="" crystal="" distance="8" cd="1.5" bnum="16" binterval="0.08" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterBullet" s_effect="bullet_hunter" g_hit="HunterHit" s_hit="hit_hunter" icon="" />
   <item id="21" name="乱射" description="" type="" effect="" crystal="" distance="8" cd="8" bnum="" binterval="0.1" target="3" target_type="" target_lim="4" target_sort="1" value="75" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterSnap" s_effect="bullet_huntersnap" g_hit="HunterSnapHit" s_hit="hit_huntersnap" icon="" />
   <item id="22" name="闪烁" description="瞬间移动一段距离" type="4" effect="2" crystal="" distance="8" cd="5" bnum="" binterval="" target="1" target_type="" target_lim="" target_sort="" value="" value_type="" decay="" buff="" shake="" anim="" g_effect="" s_effect="effect_teleport_appear" g_hit="" s_hit="" icon="" />
-  <item id="30" name="雷神攻击" description="" type="2" effect="" crystal="" distance="8" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="90" value_type="" decay="" buff="" shake="" anim="" g_effect="ThunderBullet" s_effect="bullet_thunder_chain_lightning" g_hit="" s_hit="" icon="" />
-  <item id="31" name="闪电重击" description="" type="" effect="" crystal="" distance="8" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="3" shake="" anim="" g_effect="ThunderThump" s_effect="bullet_thunder_thump" g_hit="" s_hit="" icon="" />
-  <item id="32" name="连锁闪电" description="" type="2" effect="" crystal="" distance="8" cd="10" bnum="" binterval="" target="2" target_type="" target_lim="4" target_sort="1" value="225" value_type="" decay="30" buff="" shake="" anim="" g_effect="ThunderBullet" s_effect="bullet_thunder_chain_lightning" g_hit="" s_hit="" icon="" />
-  <item id="40" name="刺客攻击" description="" type="1" effect="" crystal="" distance="3" cd="2" bnum="2" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="95" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_blade" g_hit="AssassinHit" s_hit="" icon="" />
-  <item id="41" name="背刺" description="隐形,敌人无法发现你" type="1" effect="2" crystal="" distance="3" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="3" shake="" anim="" g_effect="Melee" s_effect="bullet_blade" g_hit="AssassinHit" s_hit="" icon="" />
-  <item id="42" name="突袭" description="瞬间移动到敌人旁边并对其造成伤害" type="4" effect="" crystal="" distance="8" cd="5" bnum="2" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_blade" g_hit="AssassinHit" s_hit="" icon="" />
-  <item id="50" name="庇护者攻击" description="" type="" effect="" crystal="" distance="8" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="80" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="bullet_medic" g_hit="MedicHit" s_hit="hit_medic" icon="" />
-  <item id="51" name="修复" description="" type="" effect="1" crystal="" distance="8" cd="5" bnum="" binterval="" target="3" target_type="2" target_lim="1" target_sort="1" value="150" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="" g_hit="MedicHealHit" s_hit="bullet_heal" icon="" />
-  <item id="52" name="群体修复" description="" type="" effect="1" crystal="" distance="8" cd="10" bnum="" binterval="0.05" target="3" target_type="2" target_lim="4" target_sort="1" value="75" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="" g_hit="MedicHealHit" s_hit="bullet_heal" icon="" />
-  <item id="60" name="蜘蛛攻击" description="" type="" effect="" crystal="" distance="6" cd="2" bnum="2" binterval="0.05" target="" target_type="" target_lim="" target_sort="" value="90" value_type="" decay="" buff="" shake="" anim="" g_effect="SpiderBullet" s_effect="bullet_spider" g_hit="SpiderHit" s_hit=" hit_spider" icon="" />
+  <item id="30" name="雷神攻击" description="" type="2" effect="" crystal="" distance="8" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="ThunderBullet" s_effect="bullet_thunder_chain_lightning" g_hit="" s_hit="" icon="" />
+  <item id="31" name="闪电重击" description="" type="" effect="" crystal="" distance="8" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="4" value_type="" decay="" buff="3" shake="" anim="" g_effect="ThunderThump" s_effect="bullet_thunder_thump" g_hit="" s_hit="" icon="" />
+  <item id="32" name="连锁闪电" description="" type="2" effect="" crystal="" distance="8" cd="10" bnum="" binterval="" target="2" target_type="" target_lim="4" target_sort="1" value="3" value_type="" decay="30" buff="" shake="" anim="" g_effect="ThunderBullet" s_effect="bullet_thunder_chain_lightning" g_hit="" s_hit="" icon="" />
+  <item id="40" name="刺客攻击" description="" type="1" effect="" crystal="" distance="3" cd="2" bnum="2" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_blade" g_hit="AssassinHit" s_hit="" icon="" />
+  <item id="41" name="背刺" description="隐形,敌人无法发现你" type="1" effect="2" crystal="" distance="3" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="4" value_type="" decay="" buff="3" shake="" anim="" g_effect="Melee" s_effect="bullet_blade" g_hit="AssassinHit" s_hit="" icon="" />
+  <item id="42" name="突袭" description="瞬间移动到敌人旁边并对其造成伤害" type="4" effect="" crystal="" distance="8" cd="5" bnum="2" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="4" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_blade" g_hit="AssassinHit" s_hit="" icon="" />
+  <item id="50" name="庇护者攻击" description="" type="" effect="" crystal="" distance="8" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="bullet_medic" g_hit="MedicHit" s_hit="hit_medic" icon="" />
+  <item id="51" name="修复" description="" type="" effect="1" crystal="" distance="8" cd="5" bnum="" binterval="" target="3" target_type="2" target_lim="1" target_sort="1" value="4" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="" g_hit="MedicHealHit" s_hit="bullet_heal" icon="" />
+  <item id="52" name="群体修复" description="" type="" effect="1" crystal="" distance="8" cd="10" bnum="" binterval="0.05" target="3" target_type="2" target_lim="4" target_sort="1" value="3" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="" g_hit="MedicHealHit" s_hit="bullet_heal" icon="" />
+  <item id="60" name="蜘蛛攻击" description="" type="" effect="" crystal="" distance="6" cd="2" bnum="2" binterval="0.05" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="SpiderBullet" s_effect="bullet_spider" g_hit="SpiderHit" s_hit=" hit_spider" icon="" />
   <item id="61" name="蜘蛛网" description="" type="" effect="2" crystal="" distance="8" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="" value_type="" decay="" buff="5" shake="" anim="" g_effect="SpiderNet" s_effect="bullet_normal" g_hit="" s_hit="" icon="" />
   <item id="62" name="小蜘蛛" description="制造一个小蜘蛛来为你战斗" type="5" effect="2" crystal="" distance="" cd="10" bnum="" binterval="" target="" target_type="2" target_lim="2" target_sort="" value="1001" value_type="2" decay="" buff="" shake="" anim="" g_effect="" s_effect="effect_teleport_appear" g_hit="" s_hit="" icon="" />
-  <item id="70" name="冰霜攻击" description="" type="" effect="" crystal="" distance="8" cd="1.5" bnum="12" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="84" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterBullet" s_effect="bullet_hunter" g_hit="HunterHit" s_hit="hit_hunter" icon="" />
-  <item id="71" name="冰霜之箭" description="" type="" effect="" crystal="" distance="8" cd="5" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="6" shake="" anim="" g_effect="IceArrow" s_effect="bullet_ice" g_hit="MedicHit" s_hit="" icon="" />
-  <item id="72" name="霜之新星" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="7" shake="" anim="" g_effect="IceNova" s_effect="bullet_ice" g_hit="" s_hit="" icon="" />
-  <item id="80" name="烈焰攻击" description="" type="" effect="" crystal="" distance="4" cd="1.5" bnum="2" binterval="" target="5" target_type="" target_lim="" target_sort="" value="70" value_type="" decay="" buff="" shake="" anim="" g_effect="Flame" s_effect="bullet_flame" g_hit="" s_hit="" icon="" />
-  <item id="81" name="大火球" description="" type="" effect="" crystal="" distance="8" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="225" value_type="" decay="" buff="" shake="" anim="" g_effect="FlameBall" s_effect="bullet_flame_ball" g_hit="HunterSnapHit" s_hit="hit_huntersnap" icon="" />
-  <item id="82" name="烈焰新星" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="175" value_type="" decay="" buff="" shake="" anim="" g_effect="FlameNova" s_effect="bullet_flame_breath" g_hit="" s_hit="" icon="" />
-  <item id="1001" name="小蜘蛛攻击" description="" type="" effect="" crystal="" distance="6" cd="2" bnum="2" binterval="0.05" target="" target_type="" target_lim="" target_sort="" value="60" value_type="" decay="" buff="" shake="" anim="" g_effect="SpiderBulletTiny" s_effect="bullet_spider" g_hit="SpiderHitTiny" s_hit=" hit_spider" icon="" />
-  <item id="1002" name="防御塔攻击" description="" type="" effect="" crystal="" distance="8" cd="2" bnum="2" binterval="" target="" target_type="" target_lim="" target_sort="" value="250" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterSnap" s_effect="bullet_huntersnap" g_hit="HunterSnapHit" s_hit="hit_huntersnap" icon="" />
+  <item id="70" name="冰霜攻击" description="" type="" effect="" crystal="" distance="8" cd="1.5" bnum="12" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterBullet" s_effect="bullet_hunter" g_hit="HunterHit" s_hit="hit_hunter" icon="" />
+  <item id="71" name="冰霜之箭" description="" type="" effect="" crystal="" distance="8" cd="5" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="4" value_type="" decay="" buff="6" shake="" anim="" g_effect="IceArrow" s_effect="bullet_ice" g_hit="MedicHit" s_hit="" icon="" />
+  <item id="72" name="霜之新星" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="3" value_type="" decay="" buff="7" shake="" anim="" g_effect="IceNova" s_effect="bullet_ice" g_hit="" s_hit="" icon="" />
+  <item id="80" name="烈焰攻击" description="" type="" effect="" crystal="" distance="4" cd="1.5" bnum="2" binterval="" target="5" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="Flame" s_effect="bullet_flame" g_hit="" s_hit="" icon="" />
+  <item id="81" name="大火球" description="" type="" effect="" crystal="" distance="8" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="4" value_type="" decay="" buff="" shake="" anim="" g_effect="FlameBall" s_effect="bullet_flame_ball" g_hit="HunterSnapHit" s_hit="hit_huntersnap" icon="" />
+  <item id="82" name="烈焰新星" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="3" value_type="" decay="" buff="" shake="" anim="" g_effect="FlameNova" s_effect="bullet_flame_breath" g_hit="" s_hit="" icon="" />
+  <item id="1001" name="小蜘蛛攻击" description="" type="" effect="" crystal="" distance="6" cd="2" bnum="2" binterval="0.05" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="SpiderBulletTiny" s_effect="bullet_spider" g_hit="SpiderHitTiny" s_hit=" hit_spider" icon="" />
+  <item id="1002" name="防御塔攻击" description="" type="" effect="" crystal="" distance="8" cd="2" bnum="2" binterval="" target="" target_type="" target_lim="" target_sort="" value="1" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterSnap" s_effect="bullet_huntersnap" g_hit="HunterSnapHit" s_hit="hit_huntersnap" icon="" />
   <item id="2001" name="加血" description="" type="3" effect="1" crystal="100" distance="" cd="30" bnum="" binterval="" target="1" target_type="" target_lim="" target_sort="" value="600" value_type="" decay="" buff="" shake="" anim="" g_effect="" s_effect="bullet_heal" g_hit="" s_hit="" icon="" />
   <item id="2002" name="加速" description="" type="3" effect="2" crystal="75" distance="" cd="30" bnum="" binterval="" target="1" target_type="" target_lim="" target_sort="" value="" value_type="" decay="" buff="9" shake="" anim="" g_effect="" s_effect="" g_hit="" s_hit="" icon="" />
   <comment>
@@ -117,6 +117,8 @@ ID
     <value>
 数值
 (可不填)
+
+(伤害为基础伤害值倍数)
 </value>
     <value_type>
 数值类型

+ 6 - 3
Assets/Resources/XML/Config/All/word_config.xml

@@ -105,9 +105,11 @@
   <item title="BuyCoinPanel" label="vipBought" English="Now you are VIP, and all mechas unlocked." Chinese="已经成为VIP, 所有机甲已经解锁." />
   <item title="BuyCoinPanel" label="coinBought" English="{0} crystals got." Chinese="获得{0}水晶." />
   <item title="BuyCoinPanel" label="diamondBought" English="{0} energy cube got." Chinese="获得{0}能量块." />
-  <item title="ResultPanel" label="complete" English="Battle Complete" Chinese="战斗结束" />
-  <item title="ResultPanel" label="winner" English="Winner\nis" Chinese="胜利者\n是" />
-  <item title="ResultPanel" label="draw" English="Draw" Chinese="平局" />
+  <item title="ResultPanel" label="defeat" English="Defeat" Chinese="失 败" />
+  <item title="ResultPanel" label="victory" English="Victory" Chinese="胜 利" />
+  <item title="ResultPanel" label="draw" English="Draw" Chinese="平 局" />
+  <item title="ResultPanel" label="mix" English="Mix" Chinese="混合" />
+  <item title="ResultPanel" label="open" English="Open" Chinese="打开" />
   <item title="NPCNick" label="nick0" English="Naboo" Chinese="克利普顿" />
   <item title="NPCNick" label="nick1" English="Tatooine" Chinese="卡艾尔" />
   <item title="NPCNick" label="nick2" English="Coruscant" Chinese="斯蒂夫" />
@@ -171,6 +173,7 @@
   <item title="EquipPanel" label="equip" English="Equip" Chinese="装备" />
   <item title="EquipPanel" label="recommand" English="Recommand" Chinese="推荐方案" />
   <item title="EquipPanel" label="customize" English="Customize" Chinese="自定义方案" />
+  <item title="EquipPanel" label="upgradeConfirm" English="Do you want upgrade %NAME% to level %LEVEL%?" Chinese="您要将%NAME%升级到等级%LEVEL%吗?" />
   <comment>
     <title>
 标题

BIN
Assets/Scenes/Battle.unity


+ 6 - 7
Assets/Scripts/Battle/Map/Buff/BuffManager.cs

@@ -106,7 +106,7 @@ public class BuffManager
 			{
 			case Buff.BuffType.Damage:
 				if(state == State.Add)
-					DealDamage(battleObj, buff);
+					DealDamage(battleObj, buff, i);
 				break;
 			case Buff.BuffType.SpeedUp:
 			case Buff.BuffType.SlowDown:
@@ -128,14 +128,13 @@ public class BuffManager
 		}
 	}
 
-	private void DealDamage(BattleObject battleObj, Buff buff)
+	private void DealDamage(BattleObject battleObj, Buff buff, int index)
 	{
-		for(int i=0; i<buff.GetNumBuffTypes(); i++)
+		if(buff.GetBuffType(index) == Buff.BuffType.Damage && buff.launcher is Craft)
 		{
-			if(buff.GetBuffType(i) == Buff.BuffType.Damage)
-			{
-				battleObj.MakeDamage(buff.GetConfigValue(i).GetValue(0), buff.launcher);
-			}
+			Craft launcher = buff.launcher as Craft;
+			float damage = buff.GetConfigValue (index).GetValue(0) * launcher.GetDamage ();
+			battleObj.MakeDamage(damage, buff.launcher);
 		}
 	}
 

+ 1 - 1
Assets/Scripts/Battle/Map/Bullet/Bullet.cs

@@ -6,7 +6,7 @@ public class Bullet : MapObject
 
 	public int id;
 	public string path;
-	public int damage;
+	public float damage;
 	public float speed = 0;
 	public float speedAcc = 40f;
 	public float maxSpeed = 20f;

+ 1 - 1
Assets/Scripts/Battle/Map/Craft/CraftConfigData.cs

@@ -33,7 +33,7 @@ public class CraftConfigData
 		equipRcmdArr = new int[equip.Length];
 		for(int i=0; i<equip.Length; i++)
 		{
-			equipRcmdArr [i] = StringUtil.ToInt (equip.Substring(i));
+			equipRcmdArr [i] = StringUtil.ToInt (equip.Substring(i, 1));
 		}
 	}
 

+ 8 - 0
Assets/Scripts/Battle/Map/Craft/PowerManager.cs

@@ -39,6 +39,14 @@ public class PowerManager
 		}
 	}
 
+	public float GetDamage()
+	{
+		if (owner is Craft) {
+			return (owner as Craft).GetDamage ();
+		}
+		return 0;
+	}
+
 	public Power GetAttack()
 	{
 		return powers[0];

+ 3 - 3
Assets/Scripts/Battle/Map/Power/Power.cs

@@ -275,14 +275,14 @@ public class Power
 		return targetSort;
 	}
 
-	public int modifyValue;
+	public float modifyValue;
 
-	public int GetOriginValue()
+	public float GetOriginValue()
 	{
 		return data.value;
 	}
 
-	public int GetValue()
+	public float GetValue()
 	{
 		return data.value + modifyValue;
 	}

+ 2 - 2
Assets/Scripts/Battle/Map/Power/PowerData.cs

@@ -19,7 +19,7 @@ public class PowerData
 	public string target_type;
 	public int target_limit;
 	public int target_sort;
-	public int value;
+	public float value;
 	public int value_type;
 	public int decay;
 	public int buff;
@@ -49,7 +49,7 @@ public class PowerData
 		target_type = node.Attributes["target_type"].Value;
 		target_limit = StringUtil.ToInt(node.Attributes["target_lim"].Value);
 		target_sort = StringUtil.ToInt(node.Attributes["target_sort"].Value);
-		value = StringUtil.ToInt(node.Attributes["value"].Value);
+		value = StringUtil.ToFloat(node.Attributes["value"].Value);
 		value_type = StringUtil.ToInt(node.Attributes["value_type"].Value);
 		decay = StringUtil.ToInt(node.Attributes["decay"].Value);
 		buff = StringUtil.ToInt(node.Attributes["buff"].Value);

+ 7 - 7
Assets/Scripts/Battle/Map/Power/PowerHandler.cs

@@ -262,7 +262,7 @@ public class PowerHandler
 				{
 					Bullet bullet = BulletFactory.CreateBullet<Bullet>(power.GetGraphicEffect());
 					bullet.Init(battleController.GetMap(), power.GetOwner().position, battleObj, power);
-					bullet.damage = power.GetValue()/power.GetNumBullets();
+					bullet.damage = (power.GetValue()/power.GetNumBullets()) * power.GetOwner().GetPowerManager().GetDamage();
 					bulletList.Add(bullet);
 				}
 				
@@ -306,7 +306,7 @@ public class PowerHandler
 				{
 					Bullet bullet = BulletFactory.CreateBullet<Melee>(power.GetGraphicEffect());
 					bullet.Init(battleController.GetMap(), power.GetOwner().position, battleObj, power);
-					bullet.damage = power.GetValue()/power.GetNumBullets();
+					bullet.damage = (power.GetValue()/power.GetNumBullets()) * power.GetOwner().GetPowerManager().GetDamage();
 					bulletList.Add(bullet);
 				}
 				
@@ -338,7 +338,7 @@ public class PowerHandler
 			{
 				Melee bullet = BulletFactory.CreateBullet<Melee>(power.GetGraphicEffect());
 				bullet.Init(battleController.GetMap(), power.GetOwner().position, battleObj, power);
-				bullet.damage = power.GetValue();
+				bullet.damage = power.GetValue() * power.GetOwner().GetPowerManager().GetDamage();
 				bullet.delayEffect = 0;
 			}
 		}
@@ -355,7 +355,7 @@ public class PowerHandler
 			{
 				ChainBullet bullet = BulletFactory.CreateBullet<ChainBullet>(power.GetGraphicEffect());
 				bullet.origin = originTarget;
-				bullet.damage = power.GetValue();
+				bullet.damage = power.GetValue() * power.GetOwner().GetPowerManager().GetDamage();
 				bullet.delayEffect += i*0.1f;
 				bullet.Init(battleController.GetMap(), originTarget.position, battleObj, power);
 				originTarget = battleObj;
@@ -386,7 +386,7 @@ public class PowerHandler
 
 				Melee bullet = BulletFactory.CreateBullet<Melee>(power.GetGraphicEffect());
 				bullet.Init(battleController.GetMap(), power.GetOwner().position, battleObj, power);
-				bullet.damage = power.GetValue();
+				bullet.damage = power.GetValue() * power.GetOwner().GetPowerManager().GetDamage();
 			}
 		}
 		else
@@ -404,7 +404,7 @@ public class PowerHandler
 		if (hero == null)
 			return;
 
-		int craftId = power.GetValue();
+		int craftId = (int)power.GetValue();
 		int id = hero.GetAvailableSoldierUid();
 		if (id < 0)
 			return;
@@ -430,7 +430,7 @@ public class PowerHandler
 		SectorBullet bullet = BulletFactory.CreateBullet<SectorBullet>(power.GetGraphicEffect());
 		bullet.Init(battleController.GetMap(), originPos, posTarget, power);
 		bullet.targetIds = arr;
-		bullet.damage = power.GetValue();
+		bullet.damage = power.GetValue() * power.GetOwner().GetPowerManager().GetDamage();
 	}
 
 	private void ParseDash(Power power, ISFSObject data, BattleController battleController)

+ 3 - 3
Assets/Scripts/Config.cs

@@ -46,9 +46,9 @@ public class Config
 	public static string LOBBY_ROOM_NAME = "Lobby";
 	public static string CLAN_ROOM_PREFIX = "Clan";
 
-	public static string VERSION = "1.2.6";
-	public static string VERSION_LABEL = "1_2_6";
-	public static string VERSION_CODE = "10206";
+	public static string VERSION = "1.2.7";
+	public static string VERSION_LABEL = "1_2_7";
+	public static string VERSION_CODE = "10207";
 
 
 	public static int MAX_USER_NAME_LENGTH = 20;

+ 4 - 4
Assets/Scripts/Data/ConfigValue.cs

@@ -16,9 +16,9 @@ public class ConfigValue
 	}
 
 
-	private int value;
+	private float value;
 	private ValueType valueType;
-	public ConfigValue(int value, int valueType)
+	public ConfigValue(float value, int valueType)
 	{
 		this.value = value;
 		this.valueType = GetValueTypeByCode(valueType);
@@ -28,11 +28,11 @@ public class ConfigValue
 	{
 		if(valueType == ValueType.Constant)
 		{
-			return (float)value;
+			return value;
 		}
 		else if(valueType == ValueType.Percentage)
 		{
-			return (float)value/100f*origin;
+			return value/100f*origin;
 		}
 		return 0;
 	}

+ 9 - 0
Assets/Scripts/Net/Http/Battle.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 72e3583d23331284cb2598f53ac365b1
+folderAsset: yes
+timeCreated: 1492569824
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 40 - 0
Assets/Scripts/Net/Http/Battle/BattleRequest.cs

@@ -0,0 +1,40 @@
+using UnityEngine;
+using System.Collections;
+
+public class BattleRequest : HttpRequest
+{
+	
+	public const string MODULE = "battle";
+	public const string CTRL_INDEX = "index";
+
+	public static BattleRequest Result(int result, int crystal)
+	{
+		URLRequestData data = new URLRequestData(true);
+		data.Add("id", Session.myUserId);
+		data.Add("result", result);
+		data.Add("crystal", crystal);
+		data.Add ("version", Config.VERSION_CODE);
+
+		BattleRequest request = new BattleRequest ();
+		request.m = MODULE;
+		request.c = CTRL_INDEX;
+		request.a = "result";
+		request.Send (data);
+		return request;
+	}
+
+	public static BattleRequest Reward(int id)
+	{
+		URLRequestData data = new URLRequestData(true);
+		data.Add("id", Session.myUserId);
+		data.Add("drop_id", id);
+
+		BattleRequest request = new BattleRequest ();
+		request.m = MODULE;
+		request.c = CTRL_INDEX;
+		request.a = "reward";
+		request.Send (data);
+		return request;
+	}
+}
+

+ 12 - 0
Assets/Scripts/Net/Http/Battle/BattleRequest.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 75696add0def5084abb8488e48731688
+timeCreated: 1487579317
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Scripts/Net/Http/Equip.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 7ce37b3d12d480f4da4190cfa1599c79
+folderAsset: yes
+timeCreated: 1492502605
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 37 - 0
Assets/Scripts/Net/Http/Equip/EquipRequest.cs

@@ -0,0 +1,37 @@
+using UnityEngine;
+using System.Collections;
+
+public class EquipRequest : HttpRequest
+{
+
+	public const string MODULE = "equip";
+	public const string CTRL_INDEX = "index";
+
+	public static EquipRequest Inventory()
+	{
+		URLRequestData data = new URLRequestData(true);
+		data.Add("user_id", Session.myUserId);
+
+		EquipRequest request = new EquipRequest ();
+		request.m = MODULE;
+		request.c = CTRL_INDEX;
+		request.a = "inventory";
+		request.Send (data);
+		return request;
+	}
+
+	public static EquipRequest Upgrade(int id)
+	{
+		URLRequestData data = new URLRequestData(true);
+		data.Add ("id", id);
+		data.Add("user_id", Session.myUserId);
+
+		EquipRequest request = new EquipRequest ();
+		request.m = MODULE;
+		request.c = CTRL_INDEX;
+		request.a = "upgrade";
+		request.Send (data, true);
+		return request;
+	}
+}
+

+ 12 - 0
Assets/Scripts/Net/Http/Equip/EquipRequest.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 956e132902e62014faa7df94aec2eb28
+timeCreated: 1492502657
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 15
Assets/Scripts/Net/NetworkManager.cs

@@ -541,23 +541,14 @@ public class NetworkManager
 
 	public void Result(int result, int crystalSpend)
 	{
-		URLRequestData data = new URLRequestData (true);
-		UserData userData = Session.GetInstance ().myUserData;
-		data.Add ("id", userData.id);
-		data.Add ("result", result);
-		data.Add ("crystal", crystalSpend);
-		URLRequest.CreateURLRequest (GetURL(URL.Result), data, OnResult, URLRequest.Method.POST);
+		BattleRequest.Result (result, crystalSpend).ResultEvent.AddListener (OnResult);
 	}
 
-	private void OnResult(JsonData json)
+	private void OnResult(bool success, JsonData data)
 	{
-		int resCode = JsonUtil.ToInt (json["c"]);
-		JsonData resData = json["d"];
-		if (resCode < 0) {
-			ResultPanel.RequestFailed ();
-		} else if (resCode == 0) {
-			if (JsonUtil.ContainKey (resData, "m") && resData ["m"] != null) {
-				JsonData missionJson = resData ["m"];
+		if (success) {
+			if (JsonUtil.ContainKey (data, "m") && data ["m"] != null) {
+				JsonData missionJson = data ["m"];
 				int missionId = JsonUtil.ToInt (missionJson["m"]);
 				int missionProgress = JsonUtil.ToInt (missionJson["p"]);
 				MissionData missionData = MissionManager.GetInstance ().GetData (missionId);
@@ -565,7 +556,9 @@ public class NetworkManager
 					missionData.progress = missionProgress;
 			}
 
-			ResultPanel.SetReward (new ResultPanel.RewardData(resData));
+			ResultPanel.SetReward (new ResultPanel.RewardData(data));
+		} else {
+			ResultPanel.RequestFailed ();
 		}
 	}
 }

+ 1 - 1
Assets/Scripts/Replay/ReplayManager.cs

@@ -83,7 +83,7 @@ public class ReplayManager
 		if (IsReplaying ())
 			return;
 
-		if(!IsRecording() && recordArr.Size() > 0)
+		if(!IsRecording() && recordArr != null && recordArr.Size() > 0)
 		{
 			System.DateTime now = System.DateTime.Now;
 			string fileName = now.ToString ("yyyyMMddHHmmss") + "_" + Session.myUserId;

+ 6 - 27
Assets/Scripts/Session/UserData.cs

@@ -12,7 +12,10 @@ public class UserData
 	}
 
 
+	public UnityEvent NickChanged = new UnityEvent ();
 	public UnityEvent ClanChanged = new UnityEvent();
+	public UnityEvent CoinChanged = new UnityEvent();
+	public UnityEvent DiamondChanged = new UnityEvent ();
 
 
 	public int id;
@@ -99,15 +102,7 @@ public class UserData
 	{
 		set{
 			_nick = NickFormat(value, id);
-
-			if (id != Session.GetInstance ().myUserData.id)
-				return;
-
-			MyNick[] myNicks = GameObject.FindObjectsOfType<MyNick>();
-			for(int i=0; i<myNicks.Length; i++)
-			{
-				myNicks[i].UpdateValue(_nick);
-			}
+			NickChanged.Invoke ();
 		}
 		get{
 			return _nick;
@@ -151,15 +146,7 @@ public class UserData
 	{
 		set{
 			_coin = value;
-
-			if (id != Session.GetInstance ().myUserData.id)
-				return;
-			
-			CrystalNum[] crystalNums = GameObject.FindObjectsOfType<CrystalNum>();
-			for(int i=0; i<crystalNums.Length; i++)
-			{
-				crystalNums[i].UpdateNum(value);
-			}
+			CoinChanged.Invoke ();
 		}
 		get{
 			return _coin;
@@ -170,15 +157,7 @@ public class UserData
 	{
 		set{
 			_diamond = value;
-
-			if (id != Session.GetInstance ().myUserData.id)
-				return;
-			
-			DiamondNum[] diamondNums = GameObject.FindObjectsOfType<DiamondNum>();
-			for(int i=0; i<diamondNums.Length; i++)
-			{
-				diamondNums[i].UpdateNum(value);
-			}
+			DiamondChanged.Invoke ();
 		}
 		get{
 			return _diamond;

+ 99 - 0
Assets/Scripts/UI/Battle/ResultDrop.cs

@@ -0,0 +1,99 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+
+public class ResultDrop : MonoBehaviour
+{
+
+	public ResultPanel resultPanel;
+	public Animator animator;
+
+	public ResultDropItem[] itemArr;
+
+	private List<int> dropList;
+	private int extraPrice;
+
+	public bool mixed;
+	private bool waitingReward;
+
+	// Use this for initialization
+	void Start ()
+	{
+	
+	}
+
+	public void Show(List<int> dropList, int extraPrice)
+	{
+		this.dropList = dropList;
+		this.extraPrice = extraPrice;
+
+		List<int> list = new List<int> ();
+		for(int i=0; i<dropList.Count; i++)
+		{
+			int index = Random.Range (0, list.Count);
+			list.Insert (index, dropList[i]);
+		}
+
+		for(int i=0; i<list.Count; i++)
+		{
+			itemArr [i].data = list [i];
+			itemArr [i].HideOpen ();
+		}
+
+		animator.Play ("DropShow");
+	}
+
+	public void Mix()
+	{
+		for(int i=0; i<dropList.Count; i++)
+		{
+			itemArr [i].data = 0;
+		}
+		animator.Play ("DropMix");
+	}
+	
+	public void MixComplete()
+	{
+		mixed = true;
+		for(int i=0; i<itemArr.Length; i++)
+		{
+			itemArr [i].ShowOpen (0);
+		}
+	}
+
+	public void Select(int index)
+	{
+		if(mixed && !waitingReward && (int)(itemArr[index].data) == 0)
+		{
+			waitingReward = true;
+			itemArr [index].Shake (true);
+			resultPanel.SelectDrop (index);
+		}
+	}
+
+	public void Reward(int index, int dropIndex)
+	{
+		waitingReward = false;
+		for(int i=0; i<itemArr.Length; i++)
+		{
+			ResultDropItem item = itemArr [i];
+			if(i == index)
+			{
+				item.Shake (false);
+				item.data = dropList [dropIndex];
+				item.HideOpen ();
+			}
+			else if((int)(item.data) == 0)
+			{
+				item.ShowOpen (extraPrice);
+			}
+		}
+	}
+
+	public void RewardFaild(int index)
+	{
+		waitingReward = false;
+		itemArr [index].Shake (false);
+	}
+}
+

+ 12 - 0
Assets/Scripts/UI/Battle/ResultDrop.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c58dc64d187baeb4dba53439260bd8ee
+timeCreated: 1492602818
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 80 - 0
Assets/Scripts/UI/Battle/ResultDropItem.cs

@@ -0,0 +1,80 @@
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections;
+
+public class ResultDropItem : ItemRenderer
+{
+
+	public RectTransform container;
+	public Image border;
+	public Image icon;
+	public Text label;
+	public GameObject priceObj;
+	public Text priceTxt;
+
+	private bool shaking;
+
+	void Awake()
+	{
+		label.text = Language.GetStr ("ResultPanel", "open");
+	}
+
+	public override object data {
+		get {
+			return base.data;
+		}
+		set {
+			base.data = value;
+
+			int id = (int)value;
+			if (id > 0) {
+				EquipData equip = EquipManager.GetInstance ().GetData (id);
+				border.color = equip.GetBorderColor ();
+				icon.sprite = equip.GetIconSprite ();
+			} else {
+				border.color = UpgradeUtil.GetCommonBorderColor ();
+				icon.sprite = EquipData.GetUnknowIconSprite ();
+			}
+		}
+	}
+
+	void FixedUpdate()
+	{
+		if(shaking)
+		{
+			Vector2 pos = container.anchoredPosition;
+			pos.x = Random.Range (0, 5f);
+			pos.y = Random.Range (0, 5f);
+			container.anchoredPosition = pos;
+		}
+	}
+
+	public void Shake(bool value)
+	{
+		if (value) {
+			shaking = true;
+		}
+		else {
+			shaking = false;
+			container.anchoredPosition = Vector2.zero;
+		}
+	}
+
+	public void ShowOpen(int price)
+	{
+		label.enabled = true;
+		if (price > 0) {
+			priceTxt.text = price.ToString ();
+			priceObj.SetActive (true);
+		} else {
+			priceObj.SetActive (false);
+		}
+	}
+
+	public void HideOpen()
+	{
+		label.enabled = false;
+		priceObj.SetActive (false);
+	}
+}
+

+ 12 - 0
Assets/Scripts/UI/Battle/ResultDropItem.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 713f88d5533fd0a44ba1ff71f01e1935
+timeCreated: 1492603822
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 81 - 58
Assets/Scripts/UI/Battle/ResultPanel.cs

@@ -22,40 +22,31 @@ public class ResultPanel : PopUpPanel {
 
 	public Animator animator;
 	public Text title;
-	public Text nickTxt;
 	public Text coinTxt;
 	public Text rankTxt;
 	public Text orderTxt;
 	public Text orderChangeTxt;
 	public Text btnTxt;
+	public Button btn;
 
-	public Color[] changeColorArr;
+	public ResultDrop resultDrop;
 
+	public Color[] changeColorArr;
 
 	private ResultData data;
 	private RewardData rewardData;
 
 	private bool isShown;
 
-	public void ShowWinner()
-	{
-		if (data.result == Result.Draw)
-			title.text = Language.GetStr ("ResultPanel", "draw");
-		else
-			title.text = Language.GetStr ("ResultPanel", "winner");
-	}
-
 
 	protected override void BeforeShow ()
 	{
-		title.text = Language.GetStr ("ResultPanel", "complete");
-
-		if (data.result == Result.Draw)
-			nickTxt.text = "";
-		else if (data.result == Result.Win)
-			nickTxt.text = data.me.nick;
-		else if (data.result == Result.Lose)
-			nickTxt.text = data.opp.nick;
+		if(data.result == Result.Win)
+			title.text = Language.GetStr ("ResultPanel", "victory");
+		else if(data.result == Result.Lose)
+			title.text = Language.GetStr ("ResultPanel", "defeat");
+		else if(data.result == Result.Draw)
+			title.text = Language.GetStr ("ResultPanel", "draw");
 
 		rewardData = null;
 		isShown = false;
@@ -82,24 +73,17 @@ public class ResultPanel : PopUpPanel {
 
 		coinTxt.text = "+" + rewardData.coinAdd;
 		rankTxt.text = (rewardData.rankAdd >= 0 ? "+" + rewardData.rankAdd : rewardData.rankAdd.ToString ());
+		orderTxt.text = rewardData.rankOrder.ToString ();
 
-		startOrder = Session.GetInstance ().myUserData.rankIndex;
-		orderChanged = 0;
-
-		orderTxt.text = startOrder.ToString ();
+		int startOrder = Session.GetInstance ().myUserData.rankIndex;
+		int deltaOrder = rewardData.rankOrder - startOrder;
 
-		int deltaOrder = Mathf.Abs (rewardData.rankOrder - startOrder);
-		if (deltaOrder > 50)
-			orderChangeStep = Mathf.FloorToInt ((float)deltaOrder / 50f);
-		orderChangeStep = Mathf.Max (orderChangeStep, 1);
-
-		if (startOrder < rewardData.rankOrder) {
+		if (deltaOrder > 0) {
 			orderChangeTxt.color = changeColorArr [ChangeColor.Down.GetHashCode ()];
-			orderChangeTxt.text = "[ -0 ]";
+			orderChangeTxt.text = "[ -"+ Mathf.Abs(deltaOrder) +" ]";
 		} else {
 			orderChangeTxt.color = changeColorArr [ChangeColor.Up.GetHashCode ()];
-			orderChangeTxt.text = "[ +0 ]";
-			orderChangeStep = -orderChangeStep;
+			orderChangeTxt.text = "[ +"+ Mathf.Abs(deltaOrder) +" ]";
 		}
 
 		if (isShown)
@@ -118,42 +102,49 @@ public class ResultPanel : PopUpPanel {
 	}
 
 
-	private bool isOrderChanging;
-	private int orderChangeStep;
-	private int startOrder;
-	private int orderChanged;
 
-	public void OrderChange()
+
+	public void ShowDrop()
 	{
-		isOrderChanging = true;
+		if (rewardData.HasDrop ()) {
+			resultDrop.Show (rewardData.dropList, rewardData.extraPrice);
+			animator.Play ("Drop");
+			btnTxt.text = Language.GetStr("ResultPanel", "mix");
+		} else {
+			animator.Play ("NoDrop");
+			btnTxt.text = Language.GetStr("Public", "continue");
+		}
 	}
 
-
-	void FixedUpdate()
+	public void SelectDrop(int index)
 	{
-		if(isOrderChanging)
-		{
-			orderChanged += orderChangeStep;
-			if (orderChangeStep >= 0)
+		BattleRequest.Reward (rewardData.dropId).ResultEvent.AddListener ((bool success, JsonData data)=>{
+			if(success)
 			{
-				if(startOrder + orderChanged >= rewardData.rankOrder)
+				int rewardCount = JsonUtil.ToInt(data["reward"]);
+				int equipId = JsonUtil.ToInt(data["equip_id"]);
+				int equipItemId = JsonUtil.ToInt(data["equip_item_id"]);
+				int count = JsonUtil.ToInt(data["count"]);
+
+				if(JsonUtil.ContainKey(data, "diamond"))
+					Session.GetInstance().myUserData.diamond = JsonUtil.ToInt(data["diamond"]);
+
+				rewardData.rewardCount = rewardCount;
+				EquipManager.GetInstance().RewardEquipment(equipId, equipItemId, count);
+
+				resultDrop.Reward(index, rewardCount-1);
+
+				if(!btn.gameObject.activeSelf)
 				{
-					orderChanged = rewardData.rankOrder - startOrder;
-					isOrderChanging = false;
+					btn.gameObject.SetActive(true);
+					btnTxt.text = Language.GetStr("Public", "continue");
 				}
-				orderChangeTxt.text = "[ -"+Mathf.Abs(orderChanged)+" ]";
 			}
 			else
 			{
-				if(startOrder + orderChanged <= rewardData.rankOrder)
-				{
-					orderChanged = rewardData.rankOrder - startOrder;
-					isOrderChanging = false;
-				}
-				orderChangeTxt.text = "[ +"+Mathf.Abs(orderChanged)+" ]";
+				resultDrop.RewardFaild(index);
 			}
-			orderTxt.text = (startOrder + orderChanged).ToString ();
-		}
+		});
 	}
 
 
@@ -164,8 +155,19 @@ public class ResultPanel : PopUpPanel {
 
 
 
-	public void Exit()
+
+
+
+
+	public void OnClick()
 	{
+		if(rewardData != null && rewardData.HasDrop() && rewardData.rewardCount == 0)
+		{
+			resultDrop.Mix ();
+			btn.gameObject.SetActive (false);
+			return;
+		}
+
 		Session.GetInstance().GetBattleSession().GetMessageManager().ExitBattle();
 		Close ();
 	}
@@ -224,8 +226,6 @@ public class ResultPanel : PopUpPanel {
 
 	public class ResultData
 	{
-		
-
 		public Player me;
 		public Player opp;
 		public Result result;
@@ -256,6 +256,11 @@ public class ResultPanel : PopUpPanel {
 
 		public int rankOrder;
 
+		public int dropId;
+		public List<int> dropList;
+		public int extraPrice;
+		public int rewardCount;
+
 		public RewardData(JsonData data)
 		{
 			rank = JsonUtil.ToInt(data["r"]);
@@ -271,6 +276,24 @@ public class ResultPanel : PopUpPanel {
 			loseAdd = JsonUtil.ToInt(data["la"]);
 
 			rankOrder = JsonUtil.ToInt(data["o"]);
+
+			dropList = new List<int>();
+			if(JsonUtil.ContainKey(data, "drop_id"))
+			{
+				dropId = JsonUtil.ToInt(data["drop_id"]);
+				extraPrice = JsonUtil.ToInt(data["extra_price"]);
+				JsonData drop = data["drop"];
+				for(int i=0; i<drop.Count; i++)
+				{
+					int equipId = JsonUtil.ToInt(drop[i]);
+					dropList.Add(equipId);
+				}
+			}
+		}
+
+		public bool HasDrop()
+		{
+			return dropId > 0;
 		}
 	}
 }

+ 9 - 3
Assets/Scripts/UI/CrystalNum.cs

@@ -8,12 +8,18 @@ public class CrystalNum : MonoBehaviour {
 
 	void Start()
 	{
-		UpdateNum(Session.GetInstance().myUserData.coin); 
+		UpdateNum ();
+		Session.GetInstance ().myUserData.CoinChanged.AddListener (UpdateNum);
 	}
 
-	public void UpdateNum(int value)
+	void OnDestroy()
 	{
-		numText.text = value.ToString();
+		Session.GetInstance ().myUserData.CoinChanged.RemoveListener (UpdateNum);
+	}
+
+	public void UpdateNum()
+	{
+		numText.text = Session.GetInstance().myUserData.coin.ToString();
 	}
 
 	public void OnClick()

+ 13 - 4
Assets/Scripts/UI/DiamondNum.cs

@@ -8,16 +8,25 @@ public class DiamondNum : MonoBehaviour {
 
 	void Start()
 	{
-		UpdateNum(Session.GetInstance().myUserData.diamond); 
+		UpdateNum ();
+		Session.GetInstance ().myUserData.DiamondChanged.AddListener (UpdateNum);
 	}
 
-	public void UpdateNum(int value)
+	void OnDestroy()
 	{
-		numText.text = value.ToString();
+		Session.GetInstance ().myUserData.DiamondChanged.RemoveListener (UpdateNum);
+	}
+
+	public void UpdateNum()
+	{
+		numText.text = Session.GetInstance().myUserData.diamond.ToString();
 	}
 
 	public void OnClick()
 	{
-		BuyDiamondPanel.Show(false);
+		BattleSession battleSession = Session.GetInstance().GetBattleSession();
+		if (battleSession != null) {
+			BuyCoinPanel.Show();
+		}
 	}
 }

+ 4 - 0
Assets/Scripts/UI/EquipPanel/EquipData.cs

@@ -12,6 +12,8 @@ public class EquipData
 	public float hp_up;
 	public float dmg;
 	public float dmg_up;
+	public float mov;
+	public float mov_up;
 
 	public EquipData()
 	{
@@ -27,6 +29,8 @@ public class EquipData
 		hp_up = StringUtil.ToFloat (data.GetAttribute("hp_up"));
 		dmg = StringUtil.ToFloat (data.GetAttribute("dmg"));
 		dmg_up = StringUtil.ToFloat (data.GetAttribute("dmg_up"));
+		mov = StringUtil.ToFloat (data.GetAttribute("mov"));
+		mov_up = StringUtil.ToFloat (data.GetAttribute("mov_up"));
 	}
 
 	public string GetName()

+ 19 - 0
Assets/Scripts/UI/EquipPanel/EquipIcon.cs

@@ -19,17 +19,29 @@ public class EquipIcon : SelectItemRenderer {
 		
 	}
 
+	void OnDestroy()
+	{
+		if (data != null) {
+			(data as Equipment).Updated.RemoveListener (EquipUpdated);
+		}
+	}
+
 	public override object data {
 		get {
 			return base.data;
 		}
 		set {
+
+			OnDestroy ();
+
 			base.data = value;
 			selected = selected;
 
 			Equipment equip = value as Equipment;
 			if (equip != null) {
 
+				equip.Updated.AddListener (EquipUpdated);
+
 				border.color = equip.GetData ().GetBorderColor ();
 				icon.sprite = equip.GetData ().GetIconSprite ();
 				lvTxt.color = equip.GetData ().GetTextColor ();
@@ -42,6 +54,9 @@ public class EquipIcon : SelectItemRenderer {
 				countBarMask.fillAmount = percent;
 				countBarFull.enabled = percent >= 1f;
 				countTxt.text = "" + count + "/" + max;
+
+
+
 			} else {
 				border.color = UpgradeUtil.GetCommonBorderColor ();
 				icon.sprite = EquipData.GetUnknowIconSprite ();
@@ -62,6 +77,10 @@ public class EquipIcon : SelectItemRenderer {
 		}
 	}
 
+	public void EquipUpdated()
+	{
+		this.data = data;
+	}
 
 	public void OnClickEquip()
 	{

+ 84 - 10
Assets/Scripts/UI/EquipPanel/EquipInfo.cs

@@ -2,6 +2,7 @@
 using UnityEngine.UI;
 using System.Collections;
 using System.Collections.Generic;
+using LitJson;
 
 public class EquipInfo : MonoBehaviour {
 
@@ -13,6 +14,8 @@ public class EquipInfo : MonoBehaviour {
 
 	public Text upgradeLabel;
 	public Button upgradeBtn;
+	public Text upgradePrice;
+
 	public Text equipLabel;
 	public Button equipBtn;
 
@@ -26,34 +29,105 @@ public class EquipInfo : MonoBehaviour {
 		equipLabel.text = Language.GetStr ("EquipPanel", "equip");
 	}
 
+	void OnDestroy()
+	{
+		if(equipment != null)
+		{
+			equipment.Updated.RemoveListener (EquipUpdated);
+		}
+	}
+
 	public void SetEquip(Equipment equip)
 	{
+		OnDestroy ();
+
 		this.equipment = equip;
 
-		border.color = equip.GetData ().GetBorderColor ();
-		icon.sprite = equip.GetData ().GetIconSprite ();
-		nameTxt.text = equip.GetData ().GetName ();
-		nameTxt.color = equip.GetData ().GetTextColor ();
-		levelTxt.text = equip.GetLevelLabel ();
+		if(equip != null)
+		{
+			equip.Updated.AddListener (EquipUpdated);
+
+			border.color = equip.GetData ().GetBorderColor ();
+			icon.sprite = equip.GetData ().GetIconSprite ();
+			nameTxt.text = equip.GetData ().GetName ();
+			nameTxt.color = equip.GetData ().GetTextColor ();
+			levelTxt.text = equip.GetLevelLabel ();
 
-		descTxt.text = equip.GetDescription ();
+			descTxt.text = equip.GetDescription ();
 
-		if (equip.GetCount () >= equip.GetNextLevelCount ())
-			ButtonUtil.Selected (upgradeBtn.gameObject);
+			if (equip.GetLevel () < equip.GetMaxLevel ()) {
+				if (equip.GetCount () >= equip.GetNextLevelCount ())
+					ButtonUtil.Selected (upgradeBtn.gameObject);
+				else
+					ButtonUtil.Unselect (upgradeBtn.gameObject);
+				upgradePrice.text = equip.GetUpgradePrice ().ToString();
+			} else {
+				ButtonUtil.Unselect (upgradeBtn.gameObject);
+				upgradePrice.text = "0";
+			}
+		}
 		else
+		{
+			border.color = UpgradeUtil.GetCommonBorderColor ();
+			icon.sprite = EquipData.GetUnknowIconSprite ();
+			nameTxt.text = "???";
+			nameTxt.color = UpgradeUtil.GetCommonBorderColor ();
+			levelTxt.text = "???";
+			descTxt.text = "";
+
+			upgradePrice.text = "0";
 			ButtonUtil.Unselect (upgradeBtn.gameObject);
+			ButtonUtil.Unselect (equipBtn.gameObject);
+		}
 	}
 
+	private void EquipUpdated()
+	{
+		SetEquip (equipment);
+	}
 
 	public void OnClickUpgrade()
 	{
-		if (equipment.GetCount () >= equipment.GetNextLevelCount ()) {
-			
+		if (equipment == null)
+			return;
+
+		if (equipment.GetUpgradePrice () > Session.GetInstance ().myUserData.coin) {
+			BuyCoinPanel.Show ();
+			return;
+		}
+
+		if (equipment.GetLevel() < equipment.GetMaxLevel() && equipment.GetCount () >= equipment.GetNextLevelCount ()) {
+			string info = Language.GetStr ("EquipPanel", "upgradeConfirm");
+			info = info.Replace ("%NAME%", equipment.GetData().GetName());
+			info = info.Replace ("%LEVEL%", (equipment.GetLevel() + 1).ToString());
+			AlertPanel.Show (info, AlertPanel.YES | AlertPanel.NO, AlertCloseEvent);
+		}
+	}
+
+	private void AlertCloseEvent(AlertCloseEvent evt)
+	{
+		if(evt.detail == AlertPanel.YES)
+		{
+			EquipRequest.Upgrade (equipment.GetId()).ResultEvent.AddListener ((bool success, JsonData data)=>{
+				if(success)
+				{
+					int count = JsonUtil.ToInt(data["count"]);
+					int level = JsonUtil.ToInt(data["level"]);
+					int itemId = JsonUtil.ToInt(data["item_id"]);
+					int coin = JsonUtil.ToInt(data["coin"]);
+
+					Session.GetInstance().myUserData.coin = coin;
+					equipment.Upgrade(level, count);
+				}
+			});
 		}
 	}
 
 	public void OnClickEquip()
 	{
+		if (equipment == null)
+			return;
+		
 		equipPanel.Equip (equipment);
 	}
 }

+ 174 - 27
Assets/Scripts/UI/EquipPanel/EquipManager.cs

@@ -1,4 +1,5 @@
 using UnityEngine;
+using UnityEngine.Events;
 using System.Collections;
 using System.Collections.Generic;
 using System.Xml;
@@ -7,17 +8,28 @@ using LitJson;
 public class EquipManager
 {
 
-	private Dictionary<int, EquipData> dataDict;
+	public UnityEvent InventoryUpdate;
 
+	private Dictionary<int, EquipData> dataDict;
 	private Dictionary<int, EquipedData> equipedDict;
 
 	private List<Equipment> inventoryList;
-	public List<Equipment> hpList;
-	public List<Equipment> dmgList;
-	public List<Equipment> moveList;
+	private List<Equipment> hpList;
+	private List<Equipment> dmgList;
+	private List<Equipment> moveList;
+
+	private bool m_Initialized;
+	public bool initialized
+	{
+		get{ 
+			return m_Initialized;
+		}
+	}
 
 	public EquipManager()
 	{
+		InventoryUpdate = new UnityEvent ();
+
 		dataDict = new Dictionary<int, EquipData>();
 		InitByXML("XML/Config/All/equip_config");
 
@@ -27,8 +39,6 @@ public class EquipManager
 		hpList = new List<Equipment> ();
 		dmgList = new List<Equipment> ();
 		moveList = new List<Equipment> ();
-
-		InitEquiped ();
 	}
 
 	public void InitByXML(string path)
@@ -51,9 +61,39 @@ public class EquipManager
 		}
 	}
 
+	public EquipData GetData(int id)
+	{
+		EquipData data = null;
+		dataDict.TryGetValue (id, out data);
+		return data;
+	}
+
+
+
+
 
 
-	public void InitEquipInventory(JsonData jsonArr)
+
+
+
+
+
+	public void RequestInventory()
+	{
+		if (m_Initialized) {
+			InventoryUpdate.Invoke ();
+			return;
+		}
+
+		EquipRequest.Inventory ().ResultEvent.AddListener ((bool success, JsonData data)=>{
+			if(success)
+			{
+				InitEquipInventory(data);
+			}
+		});
+	}
+
+	private void InitEquipInventory(JsonData jsonArr)
 	{
 		inventoryList.Clear ();
 		hpList.Clear ();
@@ -64,27 +104,64 @@ public class EquipManager
 		{
 			JsonData data = jsonArr [i];
 			int id = JsonUtil.ToInt (data["id"]);
+			int itemId = JsonUtil.ToInt (data["item_id"]);
 			int level = JsonUtil.ToInt (data["level"]);
 			int count = JsonUtil.ToInt (data["count"]);
 
-			Equipment equipment = new Equipment (GetData (id));
+			Equipment equipment = new Equipment (id, GetData (itemId));
 			equipment.SetCount (count);
 			equipment.SetLevel (level);
+			AddEquipment (equipment);
+		}
+
+		SortRecommand ();
+		InitEquiped ();
+
+		InventoryUpdate.Invoke ();
+	}
 
-//			equipment.SetCount (Random.Range(0, 10));
-//			equipment.SetLevel (Random.Range(1, 5));
+	public Equipment GetEquipment(int id)
+	{
+		for(int i=0; i<inventoryList.Count; i++)
+		{
+			Equipment equipment = inventoryList [i];
+			if(equipment.GetId() == id)
+			{
+				return equipment;
+			}
+		}
+		return null;
+	}
 
-			inventoryList.Add (equipment);
+	public void RewardEquipment(int id, int itemId, int count)
+	{
+		bool isNew = false;
+		Equipment equipment = GetEquipment (id);
+		if(equipment == null)
+		{
+			equipment = new Equipment (id, GetData (itemId));
+			equipment.SetLevel (1);
+			isNew = true;
+		}
+		equipment.SetCount (count);
+		AddEquipment (equipment);
 
-			if (equipment.HasHpProperty ())
-				hpList.Add (equipment);
-			if (equipment.HasDamageProperty ())
-				dmgList.Add (equipment);
-			if (equipment.HasMoveProperty ())
-				moveList.Add (equipment);
+		if(isNew)
+		{
+			RefreshAllRecommandEquiped ();
 		}
+	}
 
-		SortRecommand ();
+	private void AddEquipment(Equipment equipment)
+	{
+		inventoryList.Add (equipment);
+
+		if (equipment.HasHpProperty ())
+			hpList.Add (equipment);
+		if (equipment.HasDamageProperty ())
+			dmgList.Add (equipment);
+		
+		moveList.Add (equipment);
 	}
 
 	private void SortRecommand()
@@ -114,20 +191,24 @@ public class EquipManager
 
 	private static int MoveCompare(Equipment a, Equipment b)
 	{
-		if (a.GetMoveProperty () > b.GetMoveProperty ())
+		if (a.GetMoveProperty () > b.GetMoveProperty ()) {
+			return -1;
+		}
+		else if (a.GetMoveProperty () < b.GetMoveProperty ()) {
+			return 1;
+		}
+
+		float ap = a.GetHpProperty () + a.GetDamageProperty ();
+		float bp = a.GetDamageProperty () + a.GetDamageProperty ();
+		if (ap > bp)
 			return -1;
-		else if (a.GetMoveProperty () < b.GetMoveProperty ())
+		else if (ap < bp)
 			return 1;
 		return 0;
 	}
 
 
-	public EquipData GetData(int id)
-	{
-		EquipData data = null;
-		dataDict.TryGetValue (id, out data);
-		return data;
-	}
+
 
 
 	public List<Equipment> GetInventoryList()
@@ -140,8 +221,15 @@ public class EquipManager
 
 
 
+
+
+
+
+
 	private void InitEquiped()
 	{
+		equipedDict.Clear ();
+
 		List<CraftConfigData> list = CraftManager.GetInstance ().GetDataList ();
 		for(int i=0; i<list.Count; i++)
 		{
@@ -150,7 +238,7 @@ public class EquipManager
 			equipedDict.Add (data.id, equipedData);
 		}
 
-
+		m_Initialized = true;
 	}
 
 	public EquipedData GetEquipedData(int craftId)
@@ -160,6 +248,65 @@ public class EquipManager
 		return null;
 	}
 
+	public void RefreshAllRecommandEquiped()
+	{
+		SortRecommand ();
+
+		List<CraftConfigData> list = CraftManager.GetInstance ().GetDataList ();
+		for(int i=0; i<list.Count; i++)
+		{
+			EquipedData equipedData = GetEquipedData (list[i].id);
+			if(equipedData != null)
+			{
+				equipedData.UpdateRecommandList ();
+			}
+		}
+	}
+
+	public Equipment GetHpPriority(Dictionary<int, Equipment> rcmdDict)
+	{
+		for(int i=0; i<hpList.Count; i++)
+		{
+			Equipment equipment = hpList [i];
+			if(!rcmdDict.ContainsKey(equipment.GetData().id))
+			{
+				return equipment;
+			}
+		}
+		return null;
+	}
+
+	public Equipment GetDamagePriority(Dictionary<int, Equipment> rcmdDict)
+	{
+		for(int i=0; i<dmgList.Count; i++)
+		{
+			Equipment equipment = dmgList [i];
+			if(!rcmdDict.ContainsKey(equipment.GetData().id))
+			{
+				return equipment;
+			}
+		}
+		return null;
+	}
+
+	public Equipment GetMovePriority(Dictionary<int, Equipment> rcmdDict)
+	{
+		for(int i=0; i<moveList.Count; i++)
+		{
+			Equipment equipment = moveList [i];
+			if(!rcmdDict.ContainsKey(equipment.GetData().id))
+			{
+				return equipment;
+			}
+		}
+		return null;
+	}
+
+
+
+
+
+
 
 	private static EquipManager instance;
 	public static EquipManager GetInstance()

+ 24 - 7
Assets/Scripts/UI/EquipPanel/EquipPanel.cs

@@ -36,6 +36,7 @@ public class EquipPanel : PopUpPanel
 		ListHelper.FillList<CraftConfigData> (craftContainer, craftList, craftItemPrefab);
 
 		ListHelper.HideAll (equipContainer);
+		ListHelper.HideAll (equipedContainer);
 
 		Shown ();
 
@@ -44,18 +45,27 @@ public class EquipPanel : PopUpPanel
 		recommandLabel.text = Language.GetStr ("EquipPanel", "recommand");
 		customizeLabel.text = Language.GetStr ("EquipPanel", "customize");
 
-
-
-
 		SelectCraft (craftContainer.GetChild(0).GetComponent<EquipCraftItemRenderer>());
 	}
 
 	protected override void Shown ()
 	{
+		EquipManager.GetInstance ().InventoryUpdate.AddListener (OnInventoryUpdate);
+		EquipManager.GetInstance ().RequestInventory ();
+	}
+
+	private void OnInventoryUpdate()
+	{
+		EquipManager.GetInstance ().InventoryUpdate.RemoveListener (OnInventoryUpdate);
+
+		SelectCraft (craftContainer.GetChild(0).GetComponent<EquipCraftItemRenderer>());
+
 		List<Equipment> list = EquipManager.GetInstance ().GetInventoryList ();
 		ListHelper.FillList<Equipment> (equipContainer, list, equipItemPrefab);
 		if (list.Count > 0)
 			SelectEquip (equipItemPrefab);
+		else
+			SelectEquip (null);
 	}
 
 
@@ -64,15 +74,22 @@ public class EquipPanel : PopUpPanel
 		craftData = itemRenderer.data as CraftConfigData;
 		ButtonUtil.TabSelected (itemRenderer, craftContainer);
 
-		equipedData = EquipManager.GetInstance ().GetEquipedData (craftData.id);
-		SelectEquipedStyle (equipedData.styleType.GetHashCode ());
+		if(EquipManager.GetInstance().initialized)
+		{
+			equipedData = EquipManager.GetInstance ().GetEquipedData (craftData.id);
+			SelectEquipedStyle (equipedData.styleType.GetHashCode ());
+		}
 	}
 
 
 	public void SelectEquip(EquipIcon icon)
 	{
-		ButtonUtil.TabSelected (icon, equipContainer);
-		equipInfo.SetEquip (icon.data as Equipment);
+		if (icon != null) {
+			ButtonUtil.TabSelected (icon, equipContainer);
+			equipInfo.SetEquip (icon.data as Equipment);
+		} else {
+			equipInfo.SetEquip (null);
+		}
 	}
 
 	public void SelectEquiped(EquipIcon icon)

+ 35 - 2
Assets/Scripts/UI/EquipPanel/EquipedData.cs

@@ -48,11 +48,41 @@ public class EquipedData
 	public void UpdateRecommandList()
 	{
 		rcmdlist.Clear ();
+		Dictionary<int, Equipment> rcmdDict = new Dictionary<int, Equipment> ();
+
+		CraftConfigData craftData = CraftManager.GetInstance ().GetData (craftId);
+
+		int hpCount = 0;
+		int dmgCount = 0;
+		int movCount = 0;
 		for(int i=0; i<MAX_EQUIPED_COUNT; i++)
 		{
-			rcmdlist.Add (null);
-		}
+			if (i >= craftData.equipRcmdArr.Length)
+				continue;
+			
+			int priorityCode = craftData.equipRcmdArr [i];
+			Equipment.Priority priority = Equipment.GetPriorityByCode (priorityCode);
+
+			Equipment equipment = null;
+			if (priority == Equipment.Priority.Hp) {
+				equipment = EquipManager.GetInstance ().GetHpPriority (rcmdDict);
+				if (equipment == null) {
+					equipment = EquipManager.GetInstance ().GetDamagePriority (rcmdDict);
+				}
+			} else if (priority == Equipment.Priority.Damage) {
+				equipment = EquipManager.GetInstance ().GetDamagePriority (rcmdDict);
+				if (equipment == null) {
+					equipment = EquipManager.GetInstance ().GetHpPriority (rcmdDict);
+				}
+			} else if (priority == Equipment.Priority.Move) {
+				equipment = EquipManager.GetInstance ().GetMovePriority (rcmdDict);
+			}
 
+			if (equipment != null) {
+				rcmdDict.Add (equipment.GetData ().id, equipment);
+				rcmdlist.Add (equipment);
+			}
+		}
 
 		if (!customized) {
 			custList.Clear ();
@@ -63,6 +93,9 @@ public class EquipedData
 		}
 	}
 
+
+
+
 	public bool ReplaceCustomize(Equipment origin, Equipment replace)
 	{
 		bool found = false;

+ 56 - 4
Assets/Scripts/UI/EquipPanel/Equipment.cs

@@ -1,15 +1,40 @@
 using UnityEngine;
+using UnityEngine.Events;
 using System.Collections;
 
 public class Equipment
 {
 
+	public enum Priority
+	{
+		None = 0,
+		Hp = 1,
+		Damage = 2,
+		Move = 3
+	}
+	private static System.Array priorityArr = System.Enum.GetValues (typeof(Priority));
+	public static Priority GetPriorityByCode(int code)
+	{
+		return (Priority)priorityArr.GetValue (code);
+	}
+
+
+	public UnityEvent Updated = new UnityEvent ();
+
+
+	private int id;
 	private EquipData data;
-	public Equipment(EquipData data)
+	public Equipment(int id, EquipData data)
 	{
+		this.id = id;
 		this.data = data;
 	}
 
+	public int GetId()
+	{
+		return id;
+	}
+
 	public EquipData GetData()
 	{
 		return this.data;
@@ -23,7 +48,12 @@ public class Equipment
 
 	public void SetLevel(int level)
 	{
-		m_Level = level;
+		m_Level = Mathf.Max(1, level);
+	}
+
+	public int GetMaxLevel()
+	{
+		return UpgradeUtil.GetMaxLevel (GetData ().quality);
 	}
 
 	public string GetLevelLabel()
@@ -47,8 +77,18 @@ public class Equipment
 		return UpgradeUtil.GetUpgradeCount (GetLevel ());
 	}
 
+	public int GetUpgradePrice()
+	{
+		return UpgradeUtil.GetUpgradePrice (GetLevel (), GetData ().quality);
+	}
 
 
+	public void Upgrade(int level, int count)
+	{
+		SetLevel (level);
+		SetCount (count);
+		Updated.Invoke ();
+	}
 
 
 
@@ -146,12 +186,24 @@ public class Equipment
 
 	public float GetMove(int level)
 	{
-		return 0;
+		float value = data.mov + (data.mov_up * (float)(level - 1));
+		return value;
 	}
 
 	public bool HasMove()
 	{
-		return false;
+		return data.mov > 0;
+	}
+
+
+
+
+
+
+
+	public void Dispose()
+	{
+		Updated.RemoveAllListeners ();
 	}
 }
 

+ 6 - 1
Assets/Scripts/UI/Menu/MenuUI.cs

@@ -18,6 +18,7 @@ public class MenuUI : MonoBehaviour {
 
 	public Animator topBarAnim;
 	public Animator leftBtnsAnim;
+	public Animator rightBarAnim;
 
 	public StartBtnContainer startBtnContainer;
 	public MissionBar missionBar;
@@ -40,6 +41,7 @@ public class MenuUI : MonoBehaviour {
 	{
 		UIUtil.Play (topBarAnim, UIUtil.AnimationName.Show);
 		UIUtil.Play (leftBtnsAnim, UIUtil.AnimationName.Show);
+		UIUtil.Play (rightBarAnim, UIUtil.AnimationName.Show);
 	}
 
 	public void OnNavBarShown()
@@ -88,7 +90,10 @@ public class MenuUI : MonoBehaviour {
 		BuyCoinPanel.Show ();
 	}
 
-
+	public void ShowEquipPanel()
+	{
+		EquipPanel.Show ();
+	}
 
 
 

+ 9 - 3
Assets/Scripts/UI/Menu/MyNick.cs

@@ -8,12 +8,18 @@ public class MyNick : MonoBehaviour
 
 	void Start()
 	{
-		UpdateValue(Session.GetInstance ().myUserData.nick);
+		UpdateValue ();
+		Session.GetInstance ().myUserData.NickChanged.AddListener (UpdateValue);
 	}
 
-	public void UpdateValue(string value)
+	void OnDestroy()
 	{
-		nickTxt.text = value;
+		Session.GetInstance ().myUserData.NickChanged.RemoveListener (UpdateValue);
+	}
+
+	public void UpdateValue()
+	{
+		nickTxt.text = Session.GetInstance().myUserData.nick;
 	}
 
 	public void OnClick()

+ 7 - 0
Assets/Scripts/UI/Public/ButtonUtil.cs

@@ -76,6 +76,13 @@ public class ButtonUtil
 			img.color = color;
 		}
 
+		Image[] imgArr = btn.GetComponentsInChildren<Image> ();
+		for(int i=0; i<imgArr.Length; i++)
+		{
+			color = img.color;
+			color.a = alpha;
+			img.color = color;
+		}
 
 		Text[] txtArr = btn.GetComponentsInChildren<Text> ();
 		for(int i=0; i<txtArr.Length; i++)

+ 20 - 1
Assets/Scripts/Utils/UpgradeUtil.cs

@@ -1,5 +1,6 @@
 using UnityEngine;
 using System.Collections;
+using System.Collections.Generic;
 
 public class UpgradeUtil
 {
@@ -32,8 +33,13 @@ public class UpgradeUtil
 		new Color(255f/255f, 136f/255f, 58f/255f, 1f)
 	};
 
-	private static int[] UpgradeCountArr = new int[]{ 2, 4, 10, 20, 40, 80, 150, 300, 600, 1200, 2400 };
+	private static int[] UpgradeCountArr = new int[]{ 2, 4, 10, 20, 40, 80, 150, 300, 600, 1200, 2400, 4800 };
 	private static int[] MaxLevelArr = new int[]{12, 10, 8, 5};
+	private static int[] price0 = new int[]{5, 20, 50, 150, 400, 1000, 2000, 4000, 8000, 16000, 32000};
+	private static int[] price1 = new int[]{50, 150, 400, 1000, 2000, 4000, 8000, 16000, 32000};
+	private static int[] price2 = new int[]{400, 1000, 2000, 4000, 8000, 16000, 32000};
+	private static int[] price3 = new int[]{4000, 8000, 16000, 32000};
+	private static List<int[]> priceList = new List<int[]>{ price0, price1, price2, price3};
 
 	public static int GetUpgradeCount(int level)
 	{
@@ -47,6 +53,19 @@ public class UpgradeUtil
 		return UpgradeCountArr[index];
 	}
 
+	public static int GetUpgradePrice(int level, Quality quality)
+	{
+		int index = level - 1;
+		if (index < 0)
+			return 0; 
+
+		int[] priceArr = priceList [quality.GetHashCode ()];
+		if (index >= priceArr.Length)
+			return 0;
+
+		return priceArr [index];
+	}
+
 	public static Color GetCommonBorderColor()
 	{
 		return qualityBorderColorArr [Quality.Common.GetHashCode ()];

BIN
Assets/XlsxSource/All/buff_config.xlsx


BIN
Assets/XlsxSource/All/craft_config.xlsx


BIN
Assets/XlsxSource/All/equip_config.xlsx


BIN
Assets/XlsxSource/All/power_config.xlsx


BIN
Assets/XlsxSource/All/word_config.xlsx


+ 6 - 6
Assets/XlsxSource/All/xlsx_md5.xml

@@ -1,11 +1,11 @@
 <xlsx>
-  <a p="buff_config.xlsx" m="b6483e395cc46542ef7e96fd317993b" />
-  <a p="craft_config.xlsx" m="c62341f323e8874bdaed11a115ee5de" />
-  <a p="equip_config.xlsx" m="c0748aabb2eba2537615c698584cafe" />
+  <a p="buff_config.xlsx" m="4c5829c1d23479e9985922d3c1be2" />
+  <a p="craft_config.xlsx" m="6a285d38156a59c6ec430427c71f299" />
+  <a p="equip_config.xlsx" m="3d4e4983b081cf33bb9e3dbf84777345" />
   <a p="halo_config.xlsx" m="94d38fe33310a5bbee5567e854a6c62" />
-  <a p="power_config.xlsx" m="5756477bb15c3838933a43aeada27de1" />
+  <a p="power_config.xlsx" m="f31a70795e3e124e42b02ec2657a6c9" />
   <a p="shop_config.xlsx" m="665373fd8c777e6ba8e4498ed8e736" />
   <a p="skin_config.xlsx" m="789f4f375c2a74b6364d92515a7bc35" />
-  <a p="word_config.xlsx" m="7fce9f84a5a17d30ab23f42ca982cf96" />
-  <a p="xlsx_md5.xml" m="4ba07eae7e6b348db0b469f86e9d4569" />
+  <a p="word_config.xlsx" m="9de37d2ca1737dabdcdc676a70eac23" />
+  <a p="xlsx_md5.xml" m="12b4a25fb8096cb2695f3f685efccd" />
 </xlsx>

BIN
Keys/qjh.kdb