From bc871b112bf04df5b5dcc3fadb77ac0f276749c8 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 17 十一月 2025 02:01:58 +0800
Subject: [PATCH] 328 【主界面】坐骑系统 竞技场布阵的显隐 引导点战锤的时候不暂停游戏;引导的时候如果是功能开启,不显示战力变化避免遮挡
---
Main/Core/GameEngine/Player/PlayerBaseData.cs | 2
Main/Config/PartialConfigs/HorseClassConfig.cs.meta | 11
Main/Config/Configs/HorseSkinConfig.cs | 107 ++++
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB201_tagCSHorseLVUP.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB202_tagCSHorseClassUP.cs.meta | 11
Main/Config/ConfigManager.cs | 6
Main/System/Horse/HorseManager.cs | 276 ++++++++++++
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA303_tagSCHorseClassInfo.cs | 12
Main/System/Horse/HorseWin.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA304_tagSCHorseSkinInfo.cs.meta | 11
Main/System/Battle/BattleField/StoryBattleField.cs | 9
Main/System/Redpoint/MainRedDot.cs | 3
Main/System/Horse/HorseSkinWin.cs | 28 +
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB201_tagCSHorseLVUP.cs | 18
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs.meta | 11
Main/System/Main/PlayerMainDate.cs | 7
Main/Config/Configs/HorseClassConfig.cs | 122 +++++
Main/System/Horse/HorseSkinWin.cs.meta | 11
Main/System/Main/HomeWin.cs | 39 +
Main/System/Horse/HorseManager.cs.meta | 11
Main/Main.cs | 3
Main/Config/Configs/HorseSkinConfig.cs.meta | 11
Main/Config/PartialConfigs/HorseClassConfig.cs | 10
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA303_tagSCHorseClassInfo.cs | 21
Main/Utility/EnumHelper.cs | 1
Main/System/Horse/HorseSuccessWin.cs | 28 +
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA304_tagSCHorseSkinInfo.cs | 12
Main/System/Main/FightPowerManager.cs | 12
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA303_tagSCHorseClassInfo.cs.meta | 11
Main/System/Horse/HorseSuccessWin.cs.meta | 11
Main/Config/Configs/HorseClassConfig.cs.meta | 11
Main/System/Horse.meta | 8
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs | 33 +
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs.meta | 11
Main/System/HeroUI/HeroPosWin.cs | 6
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs | 2
Main/System/Horse/HorseRankUPWin.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB202_tagCSHorseClassUP.cs | 16
Main/System/Horse/HorseWin.cs | 199 +++++++++
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs | 20
Main/System/NewBieGuidance/NewBieCenter.cs | 10
Main/System/Horse/HorseRankUPWin.cs | 99 ++++
Main/System/NewBieGuidance/NewBieWin.cs | 21
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA303_tagSCHorseClassInfo.cs.meta | 11
44 files changed, 1,282 insertions(+), 13 deletions(-)
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index 5a0a614..fb2b405 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -56,6 +56,8 @@
typeof(GoldRushWorkerConfig),
typeof(HeroLineupHaloConfig),
typeof(HeroQualityLVConfig),
+ typeof(HorseClassConfig),
+ typeof(HorseSkinConfig),
typeof(InvestConfig),
typeof(ItemCompoundConfig),
typeof(ItemConfig),
@@ -266,6 +268,10 @@
ClearConfigDictionary<HeroLineupHaloConfig>();
// 娓呯┖ HeroQualityLVConfig 瀛楀吀
ClearConfigDictionary<HeroQualityLVConfig>();
+ // 娓呯┖ HorseClassConfig 瀛楀吀
+ ClearConfigDictionary<HorseClassConfig>();
+ // 娓呯┖ HorseSkinConfig 瀛楀吀
+ ClearConfigDictionary<HorseSkinConfig>();
// 娓呯┖ InvestConfig 瀛楀吀
ClearConfigDictionary<InvestConfig>();
// 娓呯┖ ItemCompoundConfig 瀛楀吀
diff --git a/Main/Config/Configs/HorseClassConfig.cs b/Main/Config/Configs/HorseClassConfig.cs
new file mode 100644
index 0000000..9c9c0b0
--- /dev/null
+++ b/Main/Config/Configs/HorseClassConfig.cs
@@ -0,0 +1,122 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�11鏈�16鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HorseClassConfig : ConfigBase<int, HorseClassConfig>
+{
+ static HorseClassConfig()
+ {
+ // 璁块棶杩囬潤鎬佹瀯閫犲嚱鏁�
+ visit = true;
+ }
+
+ public int ClassLV;
+ public int MaxLV;
+ public int LVUPItemCnt;
+ public int ClassUPItemCnt;
+ public int[] ClassSpecAttrIDList;
+ public int[] ClassSpecAttrValueList;
+ public int[] AttrIDList;
+ public int[] ClassAttrValueList;
+ public int[] PerLVAttrValueList;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ClassLV);
+
+ int.TryParse(tables[1],out MaxLV);
+
+ int.TryParse(tables[2],out LVUPItemCnt);
+
+ int.TryParse(tables[3],out ClassUPItemCnt);
+
+ if (tables[4].Contains("["))
+ {
+ ClassSpecAttrIDList = JsonMapper.ToObject<int[]>(tables[4]);
+ }
+ else
+ {
+ string[] ClassSpecAttrIDListStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ ClassSpecAttrIDList = new int[ClassSpecAttrIDListStringArray.Length];
+ for (int i=0;i<ClassSpecAttrIDListStringArray.Length;i++)
+ {
+ int.TryParse(ClassSpecAttrIDListStringArray[i],out ClassSpecAttrIDList[i]);
+ }
+ }
+
+ if (tables[5].Contains("["))
+ {
+ ClassSpecAttrValueList = JsonMapper.ToObject<int[]>(tables[5]);
+ }
+ else
+ {
+ string[] ClassSpecAttrValueListStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ ClassSpecAttrValueList = new int[ClassSpecAttrValueListStringArray.Length];
+ for (int i=0;i<ClassSpecAttrValueListStringArray.Length;i++)
+ {
+ int.TryParse(ClassSpecAttrValueListStringArray[i],out ClassSpecAttrValueList[i]);
+ }
+ }
+
+ if (tables[6].Contains("["))
+ {
+ AttrIDList = JsonMapper.ToObject<int[]>(tables[6]);
+ }
+ else
+ {
+ string[] AttrIDListStringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ AttrIDList = new int[AttrIDListStringArray.Length];
+ for (int i=0;i<AttrIDListStringArray.Length;i++)
+ {
+ int.TryParse(AttrIDListStringArray[i],out AttrIDList[i]);
+ }
+ }
+
+ if (tables[7].Contains("["))
+ {
+ ClassAttrValueList = JsonMapper.ToObject<int[]>(tables[7]);
+ }
+ else
+ {
+ string[] ClassAttrValueListStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ ClassAttrValueList = new int[ClassAttrValueListStringArray.Length];
+ for (int i=0;i<ClassAttrValueListStringArray.Length;i++)
+ {
+ int.TryParse(ClassAttrValueListStringArray[i],out ClassAttrValueList[i]);
+ }
+ }
+
+ if (tables[8].Contains("["))
+ {
+ PerLVAttrValueList = JsonMapper.ToObject<int[]>(tables[8]);
+ }
+ else
+ {
+ string[] PerLVAttrValueListStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ PerLVAttrValueList = new int[PerLVAttrValueListStringArray.Length];
+ for (int i=0;i<PerLVAttrValueListStringArray.Length;i++)
+ {
+ int.TryParse(PerLVAttrValueListStringArray[i],out PerLVAttrValueList[i]);
+ }
+ }
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/HorseClassConfig.cs.meta b/Main/Config/Configs/HorseClassConfig.cs.meta
new file mode 100644
index 0000000..b4c5f3e
--- /dev/null
+++ b/Main/Config/Configs/HorseClassConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 34c95a7471af1ee41ab1250f1bffdf9b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/HorseSkinConfig.cs b/Main/Config/Configs/HorseSkinConfig.cs
new file mode 100644
index 0000000..d39ef3f
--- /dev/null
+++ b/Main/Config/Configs/HorseSkinConfig.cs
@@ -0,0 +1,107 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�11鏈�16鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HorseSkinConfig : ConfigBase<int, HorseSkinConfig>
+{
+ static HorseSkinConfig()
+ {
+ // 璁块棶杩囬潤鎬佹瀯閫犲嚱鏁�
+ visit = true;
+ }
+
+ public int SkinID;
+ public string Name;
+ public int ExpireMinutes;
+ public int UnlockWay;
+ public int UnlockValue;
+ public int UnlockNeedCnt;
+ public int UpNeedCnt;
+ public int StarMax;
+ public int[] AttrIDList;
+ public int[] InitAttrValueList;
+ public int[] AttrPerStarAddList;
+ public string Icon;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out SkinID);
+
+ Name = tables[1];
+
+ int.TryParse(tables[2],out ExpireMinutes);
+
+ int.TryParse(tables[3],out UnlockWay);
+
+ int.TryParse(tables[4],out UnlockValue);
+
+ int.TryParse(tables[5],out UnlockNeedCnt);
+
+ int.TryParse(tables[6],out UpNeedCnt);
+
+ int.TryParse(tables[7],out StarMax);
+
+ if (tables[8].Contains("["))
+ {
+ AttrIDList = JsonMapper.ToObject<int[]>(tables[8]);
+ }
+ else
+ {
+ string[] AttrIDListStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ AttrIDList = new int[AttrIDListStringArray.Length];
+ for (int i=0;i<AttrIDListStringArray.Length;i++)
+ {
+ int.TryParse(AttrIDListStringArray[i],out AttrIDList[i]);
+ }
+ }
+
+ if (tables[9].Contains("["))
+ {
+ InitAttrValueList = JsonMapper.ToObject<int[]>(tables[9]);
+ }
+ else
+ {
+ string[] InitAttrValueListStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ InitAttrValueList = new int[InitAttrValueListStringArray.Length];
+ for (int i=0;i<InitAttrValueListStringArray.Length;i++)
+ {
+ int.TryParse(InitAttrValueListStringArray[i],out InitAttrValueList[i]);
+ }
+ }
+
+ if (tables[10].Contains("["))
+ {
+ AttrPerStarAddList = JsonMapper.ToObject<int[]>(tables[10]);
+ }
+ else
+ {
+ string[] AttrPerStarAddListStringArray = tables[10].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ AttrPerStarAddList = new int[AttrPerStarAddListStringArray.Length];
+ for (int i=0;i<AttrPerStarAddListStringArray.Length;i++)
+ {
+ int.TryParse(AttrPerStarAddListStringArray[i],out AttrPerStarAddList[i]);
+ }
+ }
+
+ Icon = tables[11];
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/HorseSkinConfig.cs.meta b/Main/Config/Configs/HorseSkinConfig.cs.meta
new file mode 100644
index 0000000..79686e8
--- /dev/null
+++ b/Main/Config/Configs/HorseSkinConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9de30687da6d7154f92b7ca9e075a041
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/HorseClassConfig.cs b/Main/Config/PartialConfigs/HorseClassConfig.cs
new file mode 100644
index 0000000..38e6023
--- /dev/null
+++ b/Main/Config/PartialConfigs/HorseClassConfig.cs
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+public partial class HorseClassConfig : ConfigBase<int, HorseClassConfig>
+{
+ public static Dictionary<int, int> maxLVDict = new Dictionary<int, int>();
+ protected override void OnConfigParseCompleted()
+ {
+ maxLVDict[ClassLV] = MaxLV;
+ }
+
+}
diff --git a/Main/Config/PartialConfigs/HorseClassConfig.cs.meta b/Main/Config/PartialConfigs/HorseClassConfig.cs.meta
new file mode 100644
index 0000000..364aa98
--- /dev/null
+++ b/Main/Config/PartialConfigs/HorseClassConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 119ed7937af6c4b469b95744674b1adf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/GameEngine/Player/PlayerBaseData.cs b/Main/Core/GameEngine/Player/PlayerBaseData.cs
index 42f00c7..3c5ec04 100644
--- a/Main/Core/GameEngine/Player/PlayerBaseData.cs
+++ b/Main/Core/GameEngine/Player/PlayerBaseData.cs
@@ -101,7 +101,7 @@
public int BasicsDefense;//鍩虹闃插尽
public int BasicsScoreAHit;//鍩虹鍛戒腑
public int BasicsDodge;//鍩虹闂伩
- public uint equipShowSwitch;//瑁呭鏄鹃殣寮�鍏�
+ public uint equipShowSwitch;//褰撳墠閰嶇疆鐨勫潗楠戝瑙侷D瀛樺偍鍦� 涓綅鏁板崄浣嶆暟锛堟渶澶ф敮鎸� 1~99锛�
public int mater;//鐏垫牴灞炴�р�斺�旈噾
public int wood;//鐏垫牴灞炴�р�斺�旀湪
public int water;//鐏垫牴灞炴�р�斺�旀按
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB201_tagCSHorseLVUP.cs b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB201_tagCSHorseLVUP.cs
new file mode 100644
index 0000000..22c85ee
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB201_tagCSHorseLVUP.cs
@@ -0,0 +1,18 @@
+using UnityEngine;
+using System.Collections;
+
+// B2 01 鍧愰獞鍗囩骇 #tagCSHorseLVUP
+
+public class CB201_tagCSHorseLVUP : GameNetPackBasic {
+ public byte IsQuick; // 鏄惁蹇�熷崌绾э紝0-鍙秷鑰�1涓亾鍏凤紱1-娑堣�楀崌1绾х殑閬撳叿
+
+ public CB201_tagCSHorseLVUP () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xB201;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (IsQuick, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB201_tagCSHorseLVUP.cs.meta b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB201_tagCSHorseLVUP.cs.meta
new file mode 100644
index 0000000..4451688
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB201_tagCSHorseLVUP.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 307fd40df36bb1a42ac68c26cc5d2126
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB202_tagCSHorseClassUP.cs b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB202_tagCSHorseClassUP.cs
new file mode 100644
index 0000000..3ab14f8
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB202_tagCSHorseClassUP.cs
@@ -0,0 +1,16 @@
+using UnityEngine;
+using System.Collections;
+
+// B2 02 鍧愰獞杩涢樁 #tagCSHorseClassUP
+
+public class CB202_tagCSHorseClassUP : GameNetPackBasic {
+
+ public CB202_tagCSHorseClassUP () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xB202;
+ }
+
+ public override void WriteToBytes () {
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB202_tagCSHorseClassUP.cs.meta b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB202_tagCSHorseClassUP.cs.meta
new file mode 100644
index 0000000..d243c6b
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB202_tagCSHorseClassUP.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6a711796d86b37b44b24f9c007d757db
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs
new file mode 100644
index 0000000..a8a5c92
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+using System.Collections;
+
+// B2 03 鍧愰獞澶栬鎿嶄綔 #tagCSHorseSkinOP
+
+public class CB203_tagCSHorseSkinOP : GameNetPackBasic {
+ public byte OPType; // 鎿嶄綔 1-婵�娲伙紱2-浣╂埓锛�3-鍗囨槦
+ public byte SkinID; // 澶栬ID锛屼僵鎴存椂鍙�0鍗充负鍗镐笅
+
+ public CB203_tagCSHorseSkinOP () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xB203;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (OPType, NetDataType.BYTE);
+ WriteBytes (SkinID, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs.meta b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs.meta
new file mode 100644
index 0000000..872fdb5
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 03ba97a7c084f1348a751863109ada43
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA303_tagSCHorseClassInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA303_tagSCHorseClassInfo.cs
new file mode 100644
index 0000000..2fd92d6
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA303_tagSCHorseClassInfo.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 03 鍧愰獞闃剁骇淇℃伅 #tagSCHorseClassInfo
+
+public class DTCA303_tagSCHorseClassInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack) {
+ base.Done(vNetPack);
+ HA303_tagSCHorseClassInfo vNetData = vNetPack as HA303_tagSCHorseClassInfo;
+ HorseManager.Instance.UpdateHorseInfo(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA303_tagSCHorseClassInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA303_tagSCHorseClassInfo.cs.meta
new file mode 100644
index 0000000..a0695d4
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA303_tagSCHorseClassInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 88082cef50130fc4a8c19bbf1bb63acb
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA304_tagSCHorseSkinInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA304_tagSCHorseSkinInfo.cs
new file mode 100644
index 0000000..e95e868
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA304_tagSCHorseSkinInfo.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 04 鍧愰獞澶栬淇℃伅 #tagSCHorseSkinInfo
+
+public class DTCA304_tagSCHorseSkinInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack) {
+ base.Done(vNetPack);
+ HA304_tagSCHorseSkinInfo vNetData = vNetPack as HA304_tagSCHorseSkinInfo;
+ HorseManager.Instance.UpdateHorseSkinInfo(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA304_tagSCHorseSkinInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA304_tagSCHorseSkinInfo.cs.meta
new file mode 100644
index 0000000..926284e
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA304_tagSCHorseSkinInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4bae730aac487da499cee86b1bcd9e82
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
index fa90f22..9496682 100644
--- a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -125,6 +125,8 @@
Register(typeof(HA30D_tagSCDaySignInfo), typeof(DTCA30D_tagSCDaySignInfo));
Register(typeof(HA123_tagUpdatePlayerNameCount), typeof(DTCA123_tagUpdatePlayerNameCount));
Register(typeof(HA921_tagSCRenameResult), typeof(DTCA921_tagSCRenameResult));
+ Register(typeof(HA303_tagSCHorseClassInfo), typeof(DTCA303_tagSCHorseClassInfo));
+ Register(typeof(HA304_tagSCHorseSkinInfo), typeof(DTCA304_tagSCHorseSkinInfo));
}
//涓诲伐绋嬫敞鍐屽皝鍖�
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA303_tagSCHorseClassInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA303_tagSCHorseClassInfo.cs
new file mode 100644
index 0000000..8a817cf
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA303_tagSCHorseClassInfo.cs
@@ -0,0 +1,21 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 03 鍧愰獞闃剁骇淇℃伅 #tagSCHorseClassInfo
+
+public class HA303_tagSCHorseClassInfo : GameNetPackBasic {
+ public byte ClassLV; //褰撳墠闃剁骇锛屼粠0寮�濮�
+ public ushort HorseLV; //褰撳墠闃剁瓑绾э紝浠�1寮�濮�
+ public ushort Exp; //褰撳墠闃剁瓑绾х粡楠岋紝姣忕骇浠�0寮�濮�
+
+ public HA303_tagSCHorseClassInfo () {
+ _cmd = (ushort)0xA303;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out ClassLV, vBytes, NetDataType.BYTE);
+ TransBytes (out HorseLV, vBytes, NetDataType.WORD);
+ TransBytes (out Exp, vBytes, NetDataType.WORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA303_tagSCHorseClassInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA303_tagSCHorseClassInfo.cs.meta
new file mode 100644
index 0000000..8ac49fd
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA303_tagSCHorseClassInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f89267eabf7f9fa439d249ed50f43357
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs
new file mode 100644
index 0000000..d2e1c07
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs
@@ -0,0 +1,33 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 04 鍧愰獞澶栬淇℃伅 #tagSCHorseSkinInfo
+
+public class HA304_tagSCHorseSkinInfo : GameNetPackBasic {
+ public byte Count;
+ public tagSCHorseSkin[] HorseSkinList;
+
+ public HA304_tagSCHorseSkinInfo () {
+ _cmd = (ushort)0xA304;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Count, vBytes, NetDataType.BYTE);
+ HorseSkinList = new tagSCHorseSkin[Count];
+ for (int i = 0; i < Count; i ++) {
+ HorseSkinList[i] = new tagSCHorseSkin();
+ TransBytes (out HorseSkinList[i].HorseSkinID, vBytes, NetDataType.BYTE);
+ TransBytes (out HorseSkinList[i].State, vBytes, NetDataType.BYTE);
+ TransBytes (out HorseSkinList[i].EndTime, vBytes, NetDataType.DWORD);
+ TransBytes (out HorseSkinList[i].Star, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public class tagSCHorseSkin {
+ public byte HorseSkinID; //鍧愰獞澶栬ID
+ public byte State; //鏄惁宸叉縺娲�
+ public uint EndTime; //鍒版湡鏃堕棿鎴筹紝0涓烘案涔�
+ public byte Star; //鏄熺骇
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs.meta
new file mode 100644
index 0000000..6c41204
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b1a61c4f381b1ac40b6e95ea776313e6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Main.cs b/Main/Main.cs
index bbda289..41ff955 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -88,6 +88,9 @@
managers.Add(SignManager.Instance);
managers.Add(RenameManager.Instance);
managers.Add(AchievementManager.Instance);
+ managers.Add(HorseManager.Instance);
+
+
foreach (var manager in managers)
{
manager.Init();
diff --git a/Main/System/Battle/BattleField/StoryBattleField.cs b/Main/System/Battle/BattleField/StoryBattleField.cs
index 93f1aba..3f57168 100644
--- a/Main/System/Battle/BattleField/StoryBattleField.cs
+++ b/Main/System/Battle/BattleField/StoryBattleField.cs
@@ -319,10 +319,17 @@
}
}
-
+ public bool forceResumeGame = false;
//鏆傚仠鐨勫師鍥犳湁寰堝锛岄渶瑕佹鏌ュ悇绉嶇姸鎬�
protected override bool CanResumeGame()
{
+ if (forceResumeGame)
+ {
+ //寮哄埗鎭㈠
+ forceResumeGame = false;
+ return true;
+ }
+
if (NewBieCenter.Instance.IsPauseMainBattle(NewBieCenter.Instance.currentGuide))
{
return false;
diff --git a/Main/System/HeroUI/HeroPosWin.cs b/Main/System/HeroUI/HeroPosWin.cs
index 00bdc64..16beb3c 100644
--- a/Main/System/HeroUI/HeroPosWin.cs
+++ b/Main/System/HeroUI/HeroPosWin.cs
@@ -116,6 +116,7 @@
heroListScroller.OnRefreshCell += OnRefreshCell;
HeroUIManager.Instance.OnTeamPosChangeEvent += TeamChangeEvent;
TeamManager.Instance.OnTeamChange += OnTeamChange;
+ ShowFuncBtn();
SelectTiltleBtn();
CreateScroller();
Display();
@@ -130,6 +131,11 @@
TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType).RestoreTeam();
}
+ void ShowFuncBtn()
+ {
+ jjcBtn.SetActive(FuncOpen.Instance.IsFuncOpen(ArenaManager.Instance.DeployTroopsFuncId));
+ }
+
void SelectTiltleBtn()
{
diff --git a/Main/System/Horse.meta b/Main/System/Horse.meta
new file mode 100644
index 0000000..1357835
--- /dev/null
+++ b/Main/System/Horse.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 45b98c558c2c8674c9b8e7a879ac5ce9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Horse/HorseManager.cs b/Main/System/Horse/HorseManager.cs
new file mode 100644
index 0000000..566a1a6
--- /dev/null
+++ b/Main/System/Horse/HorseManager.cs
@@ -0,0 +1,276 @@
+using System;
+using LitJson;
+
+using System.Collections.Generic;
+using System.Linq;
+
+public class HorseManager : GameSystemManager<HorseManager>
+{
+ public int classLV; //褰撳墠闃剁骇锛屼粠0寮�濮�
+ public int horseLV; //褰撳墠闃剁瓑绾э紝浠�1寮�濮�
+ public int exp; //褰撳墠闃剁瓑绾х粡楠岋紝姣忕骇浠�0寮�濮�
+ public event Action OnHorseUpdateEvent;
+
+ public Dictionary<int, HorseSkin> skinDic = new Dictionary<int, HorseSkin>();
+
+ //鍗囩骇/鍗囬樁灞炴��
+ public Dictionary<int, long> specialAttrDic = new Dictionary<int, long>();
+ public Dictionary<int, long> attrDic = new Dictionary<int, long>();
+ public Dictionary<int, long> skinAttrDic = new Dictionary<int, long>();
+
+ //閰嶇疆
+ public int lvUPItemID;
+ public int rankUPItemID;
+ public int quickRankLV;
+
+ public override void Init()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitialize;
+ PackManager.Instance.RefreshItemEvent += OnRefreshItemEvent;
+
+ ParseConfig();
+ }
+
+ public override void Release()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitialize;
+ PackManager.Instance.RefreshItemEvent -= OnRefreshItemEvent;
+ }
+
+ void ParseConfig()
+ {
+ var config = FuncConfigConfig.Get("HorseUpItem");
+ lvUPItemID = int.Parse(config.Numerical1);
+ rankUPItemID = int.Parse(config.Numerical2);
+ quickRankLV = int.Parse(config.Numerical3);
+ }
+
+ void OnBeforePlayerDataInitialize()
+ {
+ classLV = 0;
+ horseLV = 0;
+ exp = 0;
+ skinDic.Clear();
+ }
+
+ void OnRefreshItemEvent(PackType type, int index, int itemID)
+ {
+ if (type == PackType.Item)
+ {
+ if (itemID == lvUPItemID || itemID == rankUPItemID)
+ {
+ UpdateRedpoint();
+ }
+ }
+ }
+
+ public int GetHorseSkinID()
+ {
+ return (int)PlayerDatas.Instance.baseData.equipShowSwitch%100;
+ }
+
+ public void UpdateHorseInfo(HA303_tagSCHorseClassInfo netPack)
+ {
+ classLV = netPack.ClassLV;
+ horseLV = netPack.HorseLV;
+ exp = netPack.Exp;
+ UpdateRedpoint();
+ RefreshAttr();
+ OnHorseUpdateEvent?.Invoke();
+ }
+
+
+ public void UpdateHorseSkinInfo(HA304_tagSCHorseSkinInfo netPack)
+ {
+ for (int i = 0; i < netPack.HorseSkinList.Length; i++)
+ {
+ skinDic[netPack.HorseSkinList[i].HorseSkinID] = new HorseSkin()
+ {
+ State = netPack.HorseSkinList[i].State,
+ EndTime = (int)netPack.HorseSkinList[i].EndTime,
+ Star = netPack.HorseSkinList[i].Star
+ };
+ }
+
+ RefreshSkinAttr();
+ UpdateRedpoint();
+ OnHorseUpdateEvent?.Invoke();
+ }
+
+ Redpoint redpoint = new Redpoint(MainRedDot.RedPoint_HorseKey);
+ void UpdateRedpoint()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse))
+ {
+ return;
+ }
+
+ redpoint.state = RedPointState.None;
+ var state = GetHorseState();
+ if (state == 0)
+ {
+ if (PackManager.Instance.GetItemCountByID(PackType.Item, lvUPItemID) > 0)
+ {
+ redpoint.state = RedPointState.Simple;
+ return;
+ }
+ }
+ else if (state == 1)
+ {
+ var config = HorseClassConfig.Get(classLV);
+ if (PackManager.Instance.GetItemCountByID(PackType.Item, rankUPItemID) >= config.ClassUPItemCnt)
+ {
+ redpoint.state = RedPointState.Simple;
+ return;
+ }
+ }
+ }
+
+ //0 鍗囩骇 1 鍗囬樁 2 婊$骇
+ public int GetHorseState()
+ {
+ if (HorseClassConfig.maxLVDict.TryGetValue(classLV, out int maxLV))
+ {
+ if (horseLV < maxLV)
+ {
+ return 0;
+ }
+ else if (horseLV >= maxLV)
+ {
+ if (classLV == HorseClassConfig.maxLVDict.Count - 1)
+ {
+ //浠�0闃剁骇寮�濮�
+ return 2;
+ }
+ return 1;
+ }
+ }
+
+ return 2;
+
+ }
+
+
+ public void RefreshAttr()
+ {
+ specialAttrDic.Clear();
+ attrDic.Clear();
+ for (int lv = 0; lv <= classLV; lv++)
+ {
+ //鎸夐樁鍔犳垚
+ var config = HorseClassConfig.Get(lv);
+ if (!config.ClassSpecAttrIDList.IsNullOrEmpty())
+ {
+ for (int i = 0; i < config.ClassSpecAttrIDList.Length; i++)
+ {
+ if (!specialAttrDic.ContainsKey(config.ClassSpecAttrIDList[i]))
+ {
+ specialAttrDic[config.ClassSpecAttrIDList[i]] = 0;
+ }
+ specialAttrDic[config.ClassSpecAttrIDList[i]] += config.ClassSpecAttrValueList[i];
+ }
+ }
+
+ if (!config.ClassAttrValueList.IsNullOrEmpty())
+ {
+ for (int i = 0; i < config.AttrIDList.Length; i++)
+ {
+ if (!attrDic.ContainsKey(config.AttrIDList[i]))
+ {
+ attrDic[config.AttrIDList[i]] = 0;
+ }
+ attrDic[config.AttrIDList[i]] += config.ClassAttrValueList[i];
+ }
+ }
+
+ //鎸夌瓑绾у姞鎴�
+ if (!config.PerLVAttrValueList.IsNullOrEmpty())
+ {
+ for (int i = 0; i < config.AttrIDList.Length; i++)
+ {
+ if (!attrDic.ContainsKey(config.AttrIDList[i]))
+ {
+ attrDic[config.AttrIDList[i]] = 0;
+ }
+ var tmpHorseLV = lv != classLV ? config.MaxLV :horseLV;
+
+ attrDic[config.AttrIDList[i]] += config.PerLVAttrValueList[i]*tmpHorseLV;
+ }
+ }
+ }
+ }
+
+ //鍒锋柊鐨偆灞炴��
+ void RefreshSkinAttr()
+ {
+ skinAttrDic.Clear();
+ foreach(var skinID in skinDic.Keys)
+ {
+ var skin = skinDic[skinID];
+ if (skin.State != 1)
+ {
+ continue;
+ }
+
+ var config = HorseSkinConfig.Get(skinID);
+
+ if (config.AttrIDList.IsNullOrEmpty())
+ {
+ continue;
+ }
+ if (!config.InitAttrValueList.IsNullOrEmpty())
+ {
+ for (int i = 0; i < config.AttrIDList.Length; i++)
+ {
+ if (!skinAttrDic.ContainsKey(config.AttrIDList[i]))
+ {
+ skinAttrDic[config.AttrIDList[i]] = 0;
+ }
+ skinAttrDic[config.AttrIDList[i]] += config.InitAttrValueList[i];
+ }
+ }
+
+ if (!config.AttrPerStarAddList.IsNullOrEmpty())
+ {
+ for (int i = 0; i < config.AttrIDList.Length; i++)
+ {
+ if (!skinAttrDic.ContainsKey(config.AttrIDList[i]))
+ {
+ skinAttrDic[config.AttrIDList[i]] = 0;
+ }
+ skinAttrDic[config.AttrIDList[i]] += config.AttrPerStarAddList[i]*skin.Star;
+ }
+ }
+ }
+ }
+
+ public long GetAttrValue(int attrID)
+ {
+ attrDic.TryGetValue(attrID, out long value);
+ specialAttrDic.TryGetValue(attrID, out long specialValue);
+ skinAttrDic.TryGetValue(attrID, out long skinValue);
+ return value + specialValue + skinValue;
+ }
+
+ public int GetAttrPer(int attrID)
+ {
+ if (PlayerPropertyConfig.baseAttr2perDict.ContainsKey(attrID))
+ {
+ var pertype = PlayerPropertyConfig.baseAttr2perDict[attrID];
+ attrDic.TryGetValue(pertype, out long value);
+ specialAttrDic.TryGetValue(pertype, out long specialValue);
+ skinAttrDic.TryGetValue(pertype, out long skinValue);
+
+ return (int)(value + specialValue + skinValue);
+ }
+
+ return 0;
+ }
+}
+
+public class HorseSkin {
+ public int State; //鏄惁宸叉縺娲�
+ public int EndTime; //鍒版湡鏃堕棿鎴筹紝0涓烘案涔�
+ public int Star; //鏄熺骇
+}
+
diff --git a/Main/System/Horse/HorseManager.cs.meta b/Main/System/Horse/HorseManager.cs.meta
new file mode 100644
index 0000000..31c5576
--- /dev/null
+++ b/Main/System/Horse/HorseManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2c615b4e07501fb46b22d715c8234def
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Horse/HorseRankUPWin.cs b/Main/System/Horse/HorseRankUPWin.cs
new file mode 100644
index 0000000..f392de3
--- /dev/null
+++ b/Main/System/Horse/HorseRankUPWin.cs
@@ -0,0 +1,99 @@
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 鍧愰獞鍗囬樁
+/// </summary>
+public class HorseRankUPWin : UIBase
+{
+ [SerializeField] Text curLVText;
+ [SerializeField] Text nextLVText;
+ [SerializeField] Text[] attrNameTexts;
+ [SerializeField] Text[] attrValueTexts;
+ [SerializeField] Text[] nextAttrValueTexts;
+
+ [SerializeField] Transform[] specialAttrRect;
+ [SerializeField] Text[] specialAttrNameTexts;
+ [SerializeField] Text[] specialAttrValueTexts;
+ [SerializeField] Text[] specialNextAttrValueTexts;
+
+ [SerializeField] Text costText;
+ [SerializeField] Image costItemImg;
+ [SerializeField] Button rankUpBtn;
+
+
+ protected override void InitComponent()
+ {
+ rankUpBtn.AddListener(HorseRankUpgrade);
+ }
+
+ protected override void OnPreOpen()
+ {
+ Display();
+ }
+
+ void Display()
+ {
+ curLVText.text = Language.Get("Horse8", HorseManager.Instance.classLV, HorseManager.Instance.horseLV);
+ nextLVText.text = Language.Get("Horse8", HorseManager.Instance.classLV + 1, 1);
+
+ var nextConfig = HorseClassConfig.Get(HorseManager.Instance.classLV + 1);
+
+ var keys = HorseManager.Instance.attrDic.Keys.ToList();
+ keys.Sort();
+ for (int i = 0; i < attrNameTexts.Length; i++)
+ {
+ if (i < keys.Count)
+ {
+ attrNameTexts[i].text = PlayerPropertyConfig.Get(keys[i]).Name;
+ attrValueTexts[i].text = PlayerPropertyConfig.GetValueDescription(keys[i], HorseManager.Instance.attrDic[keys[i]]);
+ nextAttrValueTexts[i].text = PlayerPropertyConfig.GetValueDescription(keys[i], nextConfig.ClassAttrValueList[i]);
+ }
+ }
+
+ var nextKeys = HorseManager.Instance.specialAttrDic.Keys.ToList();
+ nextKeys.Sort();
+ for (int i = 0; i < specialAttrRect.Length; i++)
+ {
+ if (i < nextConfig.ClassSpecAttrIDList.Length)
+ {
+ specialAttrRect[i].SetActive(true);
+ specialAttrNameTexts[i].text = PlayerPropertyConfig.Get(nextKeys[i]).Name;
+ if (i < nextKeys.Count)
+ {
+ specialAttrValueTexts[i].text = PlayerPropertyConfig.GetValueDescription(nextConfig.ClassSpecAttrIDList[i], HorseManager.Instance.specialAttrDic[nextKeys[i]]);
+ specialNextAttrValueTexts[i].text = PlayerPropertyConfig.GetValueDescription(nextConfig.ClassSpecAttrIDList[i], HorseManager.Instance.specialAttrDic[nextKeys[i]] + nextConfig.ClassSpecAttrValueList[i]);
+ }
+ else
+ {
+ specialAttrValueTexts[i].text = PlayerPropertyConfig.GetValueDescription(nextKeys[i], 0);
+ specialNextAttrValueTexts[i].text = PlayerPropertyConfig.GetValueDescription(nextKeys[i], nextConfig.ClassSpecAttrValueList[i]);
+ }
+ }
+ else
+ {
+ specialAttrRect[i].SetActive(false);
+ }
+ }
+
+ costText.text = UIHelper.ShowUseItem(PackType.Item, HorseManager.Instance.rankUPItemID, HorseClassConfig.Get(HorseManager.Instance.classLV).ClassUPItemCnt);
+ costItemImg.SetItemSprite(HorseManager.Instance.rankUPItemID);
+
+ }
+
+ //鍗囬樁
+ private void HorseRankUpgrade()
+ {
+ var config = HorseClassConfig.Get(HorseManager.Instance.classLV);
+ if (!ItemLogicUtility.CheckItemCount(PackType.Item, HorseManager.Instance.rankUPItemID, config.ClassUPItemCnt, 2))
+ {
+ return;
+ }
+ var pack = new CB202_tagCSHorseClassUP();
+ GameNetSystem.Instance.SendInfo(pack);
+ CloseWindow();
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Horse/HorseRankUPWin.cs.meta b/Main/System/Horse/HorseRankUPWin.cs.meta
new file mode 100644
index 0000000..d141316
--- /dev/null
+++ b/Main/System/Horse/HorseRankUPWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0ae1b250abb65174f8b4339eaf2fb07c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Horse/HorseSkinWin.cs b/Main/System/Horse/HorseSkinWin.cs
new file mode 100644
index 0000000..13a8fba
--- /dev/null
+++ b/Main/System/Horse/HorseSkinWin.cs
@@ -0,0 +1,28 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 鍧愰獞澶栬
+/// </summary>
+public class HorseSkinWin : UIBase
+{
+ [SerializeField] Button bagBtn;
+
+ protected override void InitComponent()
+ {
+
+ }
+
+ protected override void OnPreOpen()
+ {
+
+ }
+
+ protected override void OnPreClose()
+ {
+
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/Horse/HorseSkinWin.cs.meta b/Main/System/Horse/HorseSkinWin.cs.meta
new file mode 100644
index 0000000..17d6fc6
--- /dev/null
+++ b/Main/System/Horse/HorseSkinWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 870a2b37a79a6fb4fb0a48fcb49f68c2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Horse/HorseSuccessWin.cs b/Main/System/Horse/HorseSuccessWin.cs
new file mode 100644
index 0000000..eb5091c
--- /dev/null
+++ b/Main/System/Horse/HorseSuccessWin.cs
@@ -0,0 +1,28 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 鍧愰獞
+/// </summary>
+public class HorseSuccessWin : UIBase
+{
+ [SerializeField] Button bagBtn;
+
+ protected override void InitComponent()
+ {
+
+ }
+
+ protected override void OnPreOpen()
+ {
+
+ }
+
+ protected override void OnPreClose()
+ {
+
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/Horse/HorseSuccessWin.cs.meta b/Main/System/Horse/HorseSuccessWin.cs.meta
new file mode 100644
index 0000000..eb317c8
--- /dev/null
+++ b/Main/System/Horse/HorseSuccessWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1a1c15106e63f6a4fa32cf0f8724c6f4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Horse/HorseWin.cs b/Main/System/Horse/HorseWin.cs
new file mode 100644
index 0000000..6146299
--- /dev/null
+++ b/Main/System/Horse/HorseWin.cs
@@ -0,0 +1,199 @@
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 鍧愰獞
+/// </summary>
+public class HorseWin : UIBase
+{
+ [SerializeField] Image modelImg;
+ [SerializeField] UIEffectPlayer lvUPEffect;
+ [SerializeField] Text nameText;
+ [SerializeField] Text specialAttrText;
+ [SerializeField] Button skinBtn;
+ [SerializeField] Text[] attrNameTexts;
+ [SerializeField] Text[] attrValueTexts;
+ [SerializeField] Text[] nextAttrValueTexts;
+ [SerializeField] Text lvText;
+ [SerializeField] Image processImg;
+ [SerializeField] Text processText;
+ [SerializeField] Transform fullRect;
+ [SerializeField] Text costText;
+ [SerializeField] Image costItemImg;
+ [SerializeField] LongPressButton lvupBtn; //鍗囩骇/鍗囬樁鎸夐挳
+ [SerializeField] Toggle quickUpToggle;
+ [SerializeField] Text needUPText;
+ [SerializeField] Button rankUpBtn;
+
+
+
+ int beforeLV;
+
+ protected override void InitComponent()
+ {
+ skinBtn.AddListener(()=>{ UIManager.Instance.OpenWindow<HorseSkinWin>();});
+ lvupBtn.AddListener(HorseUpgrade);
+ lvupBtn.onPress.AddListener(HorseUpgrade);
+ quickUpToggle.onValueChanged.AddListener((bool value)=>{ OnToggle(value);});
+ rankUpBtn.AddListener(HorseRankUpgrade);
+ }
+
+ protected override void OnPreOpen()
+ {
+ beforeLV = HorseManager.Instance.horseLV;
+ //榛樿鍕鹃��
+ quickUpToggle.isOn = !LocalSave.GetBool("HorseQuickUp" + PlayerDatas.Instance.baseData.PlayerID);
+ HorseManager.Instance.OnHorseUpdateEvent += OnHorseUpdateEvent;
+ Display();
+ }
+
+ protected override void OnPreClose()
+ {
+ HorseManager.Instance.OnHorseUpdateEvent -= OnHorseUpdateEvent;
+ }
+
+ void OnHorseUpdateEvent()
+ {
+ if (beforeLV != HorseManager.Instance.horseLV)
+ {
+ beforeLV = HorseManager.Instance.horseLV;
+ lvUPEffect.Play();
+ }
+ Display();
+ }
+ //鍗囩骇
+ private void HorseUpgrade()
+ {
+ bool isQuick = false;
+ if (HorseManager.Instance.classLV >= HorseManager.Instance.quickRankLV && quickUpToggle.isOn)
+ {
+ isQuick = true;
+ }
+
+ if (!ItemLogicUtility.CheckItemCount(PackType.Item, HorseManager.Instance.lvUPItemID, 1, 2))
+ {
+ return;
+ }
+
+ var pack = new CB201_tagCSHorseLVUP();
+ pack.IsQuick = (byte)(isQuick ? 1 : 0);
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+
+ //鍗囬樁
+ private void HorseRankUpgrade()
+ {
+ // var config = HorseClassConfig.Get(HorseManager.Instance.classLV);
+ // if (!ItemLogicUtility.CheckItemCount(PackType.Item, HorseManager.Instance.rankUPItemID, config.ClassUPItemCnt, 2))
+ // {
+ // return;
+ // }
+ // var pack = new CB202_tagCSHorseClassUP();
+ // GameNetSystem.Instance.SendInfo(pack);
+ UIManager.Instance.OpenWindow<HorseRankUPWin>();
+ }
+
+ void Display()
+ {
+ var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.GetHorseSkinID());
+ modelImg.SetOrgSprite(skinConfig.Icon, "Horse");
+ nameText.text = skinConfig.Name;
+ specialAttrText.text = GetSpecialAttr();
+
+ var config = HorseClassConfig.Get(HorseManager.Instance.classLV);
+ lvText.text = Language.Get("Horse8",HorseManager.Instance.classLV, HorseManager.Instance.horseLV);
+ processImg.fillAmount = HorseManager.Instance.exp / (float)config.LVUPItemCnt;
+ processText.text = HorseManager.Instance.exp + "/" + config.LVUPItemCnt;
+
+ needUPText.text = Language.Get("Horse7", config.MaxLV - HorseManager.Instance.horseLV);
+ var state = HorseManager.Instance.GetHorseState();
+ if (state == 0)
+ {
+ fullRect.SetActive(false);
+ costText.SetActive(true);
+ int useCnt = 1;
+ if (HorseManager.Instance.classLV >= HorseManager.Instance.quickRankLV && quickUpToggle.isOn)
+ {
+ useCnt = config.LVUPItemCnt - HorseManager.Instance.exp;
+ }
+ costText.text = UIHelper.ShowUseItem(PackType.Item, HorseManager.Instance.lvUPItemID, useCnt);
+ costItemImg.SetItemSprite(HorseManager.Instance.lvUPItemID);
+ lvupBtn.SetActive(true);
+ quickUpToggle.SetActive(HorseManager.Instance.classLV >= HorseManager.Instance.quickRankLV);
+ rankUpBtn.SetActive(false);
+
+ processImg.fillAmount = HorseManager.Instance.exp / (float)config.LVUPItemCnt;
+ processText.text = HorseManager.Instance.exp + "/" + config.LVUPItemCnt;
+ }
+ else if (state == 1)
+ {
+ fullRect.SetActive(false);
+ lvupBtn.SetActive(false);
+ rankUpBtn.SetActive(true);
+ costText.SetActive(true);
+ costText.text = UIHelper.ShowUseItem(PackType.Item, HorseManager.Instance.rankUPItemID, config.ClassUPItemCnt);
+ costItemImg.SetItemSprite(HorseManager.Instance.rankUPItemID);
+ quickUpToggle.SetActive(false);
+ processImg.fillAmount = 1;
+ processText.text = "";
+ }
+ else
+ {
+ fullRect.SetActive(true);
+ lvupBtn.SetActive(false);
+ rankUpBtn.SetActive(false);
+ costText.SetActive(false);
+ quickUpToggle.SetActive(false);
+ processImg.fillAmount = 1;
+ processText.text = "";
+ }
+
+
+ var keys = HorseManager.Instance.attrDic.Keys.ToList();
+ keys.Sort();
+ //婊$骇 鍜屼笅绾у睘鎬�
+ var nextConfig = HorseClassConfig.Get(HorseManager.Instance.classLV + 1);
+ var nextAttr = state == 1 ? nextConfig.ClassAttrValueList : (state == 0 ? config.PerLVAttrValueList : new int[config.AttrIDList.Length]);
+ for (int i = 0; i < attrNameTexts.Length; i++)
+ {
+ if (i < keys.Count)
+ {
+ attrNameTexts[i].text = PlayerPropertyConfig.Get(keys[i]).Name;
+ attrValueTexts[i].text = PlayerPropertyConfig.GetValueDescription(keys[i], HorseManager.Instance.attrDic[keys[i]]);
+ nextAttrValueTexts[i].text = PlayerPropertyConfig.GetValueDescription(keys[i], nextAttr[i]);
+ }
+ }
+ }
+
+ string GetSpecialAttr()
+ {
+ List<string> attrList = new List<string>();
+ foreach(var attrID in HorseManager.Instance.specialAttrDic.Keys)
+ {
+ attrList.Add(UIHelper.AppendColor(TextColType.itemchuanqi, PlayerPropertyConfig.GetFullDescription(attrID, HorseManager.Instance.specialAttrDic[attrID])));
+ }
+ return Language.Get("L1100", Language.Get("herocard55"), string.Join(Language.Get("L1112"), attrList));
+ }
+
+ void OnToggle(bool value)
+ {
+ LocalSave.SetBool("HorseQuickUp" + PlayerDatas.Instance.baseData.PlayerID, !quickUpToggle.isOn);
+ var config = HorseClassConfig.Get(HorseManager.Instance.classLV);
+ var state = HorseManager.Instance.GetHorseState();
+ if (state == 0)
+ {
+ int useCnt = 1;
+ if (HorseManager.Instance.classLV >= HorseManager.Instance.quickRankLV && quickUpToggle.isOn)
+ {
+ useCnt = config.LVUPItemCnt - HorseManager.Instance.exp;
+ }
+ costText.text = UIHelper.ShowUseItem(PackType.Item, HorseManager.Instance.lvUPItemID, useCnt);
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Horse/HorseWin.cs.meta b/Main/System/Horse/HorseWin.cs.meta
new file mode 100644
index 0000000..8565245
--- /dev/null
+++ b/Main/System/Horse/HorseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 52a19eb03ce76e540982134e076a51e9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index 9af704d..c11b0e5 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -74,7 +74,7 @@
//绛夌骇灞炴��
void RefreshLVAttrs()
{
- // lvAttrs.Clear();
+ lvAttrs.Clear();
var playerLVConfig = PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV);
foreach (var attrType in PlayerPropertyConfig.baseAttrs)
{
@@ -107,7 +107,7 @@
//瀹樿亴灞炴��
void RefreshOfficialAttrs()
{
- // officialAttrs.Clear();
+ officialAttrs.Clear();
var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel);
for (int i = 0; i < config.AddAttrType.Length; i++)
{
@@ -223,7 +223,7 @@
// 鍗曞熀纭�灞炴�ц绠�
public double GetPropertyVaule(int attrType, HeroInfo hero, string formula)
{
- // propertyVariables.Clear();
+ propertyVariables.Clear();
propertyVariables["lvValue"] = lvAttrs.ContainsKey(attrType) ? lvAttrs[attrType] : 0;
propertyVariables["equipValue"] = equipAttrs.ContainsKey(attrType) ? equipAttrs[attrType] : 0;
propertyVariables["bookValue"] = 0;
@@ -272,7 +272,7 @@
public double GetPropertyVaule(int attrType, HeroInfo hero, int type)
{
- // propertyVariables.Clear();
+ propertyVariables.Clear();
propertyVariables["lvValue"] = lvAttrs.ContainsKey(attrType) ? lvAttrs[attrType] : 0;
propertyVariables["equipValue"] = equipAttrs.ContainsKey(attrType) ? equipAttrs[attrType] : 0;
propertyVariables["bookValue"] = 0;
@@ -283,8 +283,8 @@
propertyVariables["gubaoPer"] = 0;
propertyVariables["hjgValue"] = 0;
propertyVariables["hjgPer"] = 0;
- propertyVariables["horseValue"] = 0;
- propertyVariables["horsePer"] = 0;
+ propertyVariables["horseValue"] = HorseManager.Instance.GetAttrValue(attrType);
+ propertyVariables["horsePer"] = HorseManager.Instance.GetAttrPer(attrType) / 10000.0f;
//锛侊紒锛佸崟姝﹀皢鎴樺姏棰勮鐨勮瘽闇�瑕佹帓闄ら槦浼嶅奖鍝嶆垬鍔涳紝鍙畻姝﹀皢鑷韩鐨勪笂闃靛睘鎬�
propertyVariables["lineupInitAddPer"] = GetLineUpPer(attrType, "lineupInitAddPer") / 10000.0f;
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 141b0fd..20b3bee 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -62,6 +62,12 @@
[SerializeField] Button FirstChargeBtn;
+ //鍧愰獞
+ [SerializeField] Image horseBGImg;
+ [SerializeField] Button horseBtn;
+ [SerializeField] Image horseImg;
+ [SerializeField] Text horseLVText;
+
/// <summary>
/// 鍒濆鍖栫粍浠�
/// </summary>
@@ -119,6 +125,8 @@
{
rightFuncInHome.ShowFuncCol(true);
});
+
+ horseBtn.AddListener(OpenHorse);
}
@@ -137,6 +145,8 @@
funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
+
+ DisplayHorse();
}
protected override void OnPreOpen()
@@ -466,6 +476,10 @@
{
funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
}
+ else if (funcId == (int)FuncOpenEnum.Horse)
+ {
+ DisplayHorse();
+ }
}
private void OnUpdateFirstChargeInfo()
@@ -482,4 +496,29 @@
{
DisplayCard(TeamType.Story);
}
+
+
+ void DisplayHorse()
+ {
+ if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse))
+ {
+ horseBGImg.SetActive(true);
+ //equipShowSwitch;//褰撳墠閰嶇疆鐨勫潗楠戝瑙侷D瀛樺偍鍦� 涓綅鏁板崄浣嶆暟锛堟渶澶ф敮鎸� 1~99锛�
+ var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.GetHorseSkinID());
+ horseImg.SetOrgSprite(skinConfig.Icon, "Horse");
+ horseLVText.text = Language.Get("Horse8",HorseManager.Instance.classLV, HorseManager.Instance.horseLV);
+ }
+ else
+ {
+ horseBGImg.SetActive(false);
+ }
+ }
+
+ void OpenHorse()
+ {
+ if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse, true))
+ {
+ UIManager.Instance.OpenWindow<HorseWin>();
+ }
+ }
}
\ No newline at end of file
diff --git a/Main/System/Main/PlayerMainDate.cs b/Main/System/Main/PlayerMainDate.cs
index 6fe99db..274bb09 100644
--- a/Main/System/Main/PlayerMainDate.cs
+++ b/Main/System/Main/PlayerMainDate.cs
@@ -49,9 +49,12 @@
public void PowerAdd(long power)
{
- if (NewBieCenter.Instance.inGuiding)
+ if (UIManager.Instance.IsOpened<NewBieWin>() )
{
- return;
+ if (UIManager.Instance.GetUI<NewBieWin>().IsFuncOpenGuide())
+ {
+ return;
+ }
}
if (prowBool)
diff --git a/Main/System/NewBieGuidance/NewBieCenter.cs b/Main/System/NewBieGuidance/NewBieCenter.cs
index ff8b1dc..5df85e1 100644
--- a/Main/System/NewBieGuidance/NewBieCenter.cs
+++ b/Main/System/NewBieGuidance/NewBieCenter.cs
@@ -319,7 +319,7 @@
}
}
-
+
public bool IsPauseMainBattle(int _id)
{
var config = GuideConfig.Get(_id);
@@ -328,6 +328,12 @@
return false;
}
return GuideConfig.Get(_id).PauseMainBattle == 1;
+ }
+
+ public void ResumeGame()
+ {
+ BattleManager.Instance.storyBattleField.forceResumeGame = true;
+ BattleManager.Instance.storyBattleField.IsPause = false;
}
//闈�0浠h〃 鍙噸澶嶅紩瀵硷紝涓斾紭鍏堢骇浣庝細琚柊寮曞鏇挎崲锛屼笖涓嶆殏鍋滀富绾挎垬鏂�
@@ -552,6 +558,8 @@
return id;
}
+
+
}
public enum GuideTriggerType
diff --git a/Main/System/NewBieGuidance/NewBieWin.cs b/Main/System/NewBieGuidance/NewBieWin.cs
index f4b46b7..37e404b 100644
--- a/Main/System/NewBieGuidance/NewBieWin.cs
+++ b/Main/System/NewBieGuidance/NewBieWin.cs
@@ -112,14 +112,25 @@
CloseWindow();
return;
}
+ if (stepConfig.guideType == GuideType.Function)
+ {
+ UIManager.Instance.CloseWindow<PowerAddWin>();
+ }
Debug.Log($"寮曞ID锛歿NewBieCenter.Instance.currentGuide} 寮曞姝ラ锛歿step}");
lastShowTime = Time.time;
+ //閬垮厤寮硅澶囩晫闈㈠拰寮曞鍐茬獊
if (config.WinName != "EquipExchangeWin" && UIManager.Instance.IsOpened<EquipExchangeWin>())
{
UIManager.Instance.CloseWindow<EquipExchangeWin>();
+ }
+
+ //寮曞鐨勬槸鎴樻枟 瑙i櫎鏆傚仠
+ if (stepConfig.UIElementPath.Contains("HomeBtn") && UIManager.Instance.IsOpened<HomeWin>())
+ {
+ NewBieCenter.Instance.ResumeGame();
}
try
@@ -401,7 +412,15 @@
return UIManager.Instance.GetUIRoot().transform.Find(path);
}
-
+ public bool IsFuncOpenGuide()
+ {
+ if (stepConfig == null)
+ {
+ return false;
+ }
+
+ return stepConfig.guideType == GuideType.Function ;
+ }
}
diff --git a/Main/System/Redpoint/MainRedDot.cs b/Main/System/Redpoint/MainRedDot.cs
index 73b5bdc..24d557b 100644
--- a/Main/System/Redpoint/MainRedDot.cs
+++ b/Main/System/Redpoint/MainRedDot.cs
@@ -59,7 +59,8 @@
//绛惧埌
public const int RedPoint_SignKey = 107;
-
+ //鍧愰獞
+ public const int RedPoint_HorseKey = 108;
//姝﹀皢鍗�
public const int HeroCardRedpoint = 200;
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index e473b27..05c28c0 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -833,6 +833,7 @@
Chat = 19,//鑱婂ぉ
AutoFight = 20,//鑷姩鎴樻枟
Recharge = 22,//鍏呭��
+ Horse = 37, //鍧愰獞
BattlePass = 40, //鍩洪噾锛堟垬浠わ級
LLMJ = 41, //鍘嗙粌绉樼瑘
--
Gitblit v1.8.0