From d165af063d7365e143d92c3a950a0b52e683a66e Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 23 一月 2026 15:33:29 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Equip/EquipModel.cs | 25
Main/System/FuncPreset/FuncPresetChooseCell.cs | 73 ++
Main/System/Main/MoneyMoveByPath.cs | 8
Main/System/InternalAffairs/AffairFuncCell.cs | 2
Main/System/FuncPreset/FuncPresetChooseCell.cs.meta | 2
Main/System/Login/LoginWin.cs | 2
Main/System/BoneField/AdsManager.cs | 52 +
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB132_tagSCMinggeInfo.cs | 7
Main/System/FuncPreset/FuncPresetManager.cs | 146 +++
Main/Utility/OperationLogCollect.cs | 4
Main/System/Settlement/BoneBattleVictoryWin.cs | 2
Main/System/BoneField/BoneFieldManager.cs | 75 +
Main/System/Team/TeamManager.cs | 11
Main/System/Mingge/MinggeEquipCell.cs | 44 +
Main/System/Main/HomeWin.cs | 32
Main/System/Mingge/MinggeEquipChangeCell.cs.meta | 2
Main/System/FuncPreset/FuncPresetChooseCells.cs | 69 +
Main/System/Mingge/MinggeEquipWin.cs | 96 ++
Main/System/Mingge/MinggeManager.cs | 258 +++++++
Main/System/BattlePass/BattlePassManager.Common.cs | 1
Main/System/BoneField/BoneFieldChallengeButton.cs | 4
Main/System/AssetVersion/AssetVersionUtility.cs | 2
Main/System/Main/AutoFightModel.cs | 136 +-
Main/Utility/EnumHelper.cs | 4
Main/System/Mingge/MinggeWin.cs | 221 ++++++
Main/System/Main/FightPowerManager.cs | 158 ++++
Main/System/Mingge/MinggeEquipChangeCell.cs | 333 +++++++++
Main/System/BoneField/BoneFieldWin.cs | 16
Main/System/ItemTip/ItemTipUtility.cs | 67 -
Main/System/Hero/HeroInfo.cs | 11
/dev/null | 18
Main/Utility/UIHelper.cs | 8
Main/Config/PartialConfigs/PresetUnlockConfig.cs | 29
Main/System/Mingge/MinggeEquipWin.cs.meta | 2
Main/System/Mingge/MinggeItemCell.cs | 54 +
Main/System/FuncPreset/FuncPresetChooseCells.cs.meta | 2
Main/System/Login/LoginManager.cs | 139 ++-
Main/System/Settlement/BoneBattleFailWin.cs | 2
Main/System/ChallengeTab/BoneFieldTabHandler.cs | 2
39 files changed, 1,838 insertions(+), 281 deletions(-)
diff --git a/Main/Config/PartialConfigs/PresetUnlockConfig.cs b/Main/Config/PartialConfigs/PresetUnlockConfig.cs
index 80208b7..f96c119 100644
--- a/Main/Config/PartialConfigs/PresetUnlockConfig.cs
+++ b/Main/Config/PartialConfigs/PresetUnlockConfig.cs
@@ -2,7 +2,7 @@
public partial class PresetUnlockConfig : ConfigBase<int, PresetUnlockConfig>
{
static Dictionary<int, Dictionary<int, PresetUnlockConfig>> m_PresetUnlockDict = new Dictionary<int, Dictionary<int, PresetUnlockConfig>>();
-
+ static Dictionary<int, int> m_UnLockTypeDict = new Dictionary<int, int>();
protected override void OnConfigParseCompleted()
{
if (!m_PresetUnlockDict.ContainsKey(PresetType))
@@ -10,6 +10,15 @@
m_PresetUnlockDict[PresetType] = new Dictionary<int, PresetUnlockConfig>();
}
m_PresetUnlockDict[PresetType][PresetID] = this;
+
+ if (!m_UnLockTypeDict.ContainsKey(PresetType))
+ {
+ m_UnLockTypeDict[PresetType] = UnlockType;
+ }
+ else if (m_UnLockTypeDict[PresetType] < UnlockType)
+ {
+ m_UnLockTypeDict[PresetType] = UnlockType;
+ }
}
public static PresetUnlockConfig GetPresetUnlockConfig(int presetType, int presetID)
@@ -21,4 +30,22 @@
return null;
}
+ public static int GetUnlockType(int presetType)
+ {
+ if (m_UnLockTypeDict.ContainsKey(presetType))
+ {
+ return m_UnLockTypeDict[presetType];
+ }
+ return 0;
+ }
+
+ public static int GetFuncPresetMaxCount(int presetType)
+ {
+ if (m_PresetUnlockDict.ContainsKey(presetType))
+ {
+ return m_PresetUnlockDict[presetType].Count;
+ }
+ return 0;
+ }
+
}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB132_tagSCMinggeInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB132_tagSCMinggeInfo.cs
index b15c72f..805ba6f 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB132_tagSCMinggeInfo.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB132_tagSCMinggeInfo.cs
@@ -1,11 +1,12 @@
-using UnityEngine;
-using System.Collections;
-
+using UnityEngine;
+using System.Collections;
+
// B1 32 鍛芥牸淇℃伅 #tagSCMinggeInfo
public class DTCB132_tagSCMinggeInfo : DtcBasic {
public override void Done(GameNetPackBasic vNetPack) {
base.Done(vNetPack);
HB132_tagSCMinggeInfo vNetData = vNetPack as HB132_tagSCMinggeInfo;
+ MinggeManager.Instance.UpdateMinggeInfo(vNetData);
}
}
diff --git a/Main/System/AssetVersion/AssetVersionUtility.cs b/Main/System/AssetVersion/AssetVersionUtility.cs
index db5a9d0..cb0faa2 100644
--- a/Main/System/AssetVersion/AssetVersionUtility.cs
+++ b/Main/System/AssetVersion/AssetVersionUtility.cs
@@ -56,7 +56,7 @@
public static DateTime assetsBuildTime = DateTime.MinValue;
- static Dictionary<string, AssetVersion> assetVersions = new Dictionary<string, AssetVersion>();
+ public static Dictionary<string, AssetVersion> assetVersions = new Dictionary<string, AssetVersion>();
//鏈湴LogicBytes鏂囦欢鍜� assetVersions 姣旇緝鏄惁闇�瑕佷笅杞�
static Dictionary<string, AssetVersion> localAssetVersions = new Dictionary<string, AssetVersion>();
static List<AssetVersion> priorDownLoadAssetVersions = new List<AssetVersion>();
diff --git a/Main/System/BattlePass/BattlePassManager.Common.cs b/Main/System/BattlePass/BattlePassManager.Common.cs
index 40b7c61..c6f92bc 100644
--- a/Main/System/BattlePass/BattlePassManager.Common.cs
+++ b/Main/System/BattlePass/BattlePassManager.Common.cs
@@ -20,6 +20,7 @@
{4, 28},
{5, 27},
{7, 53},
+ {8, 54}
};
public int[] battlePassTypeSortList;
diff --git a/Main/System/BoneField/AdsManager.cs b/Main/System/BoneField/AdsManager.cs
index 262527e..cdeecb9 100644
--- a/Main/System/BoneField/AdsManager.cs
+++ b/Main/System/BoneField/AdsManager.cs
@@ -10,6 +10,8 @@
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEvent;
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += UpdateRedpoint;
+ DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent;
+ FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
var keys = ADAwardConfig.GetKeys();
for (int i = 0; i < keys.Count; i++)
@@ -27,11 +29,33 @@
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEvent;
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= UpdateRedpoint;
+ DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+ }
+
+ private void OnFuncStateChangeEvent(int funcId)
+ {
+ switch (funcId)
+ {
+ case (int)FuncOpenEnum.BoneBattle:
+ UpdateBoneAdRedPoint();
+ break;
+ }
}
public void OnBeforePlayerDataInitializeEvent()
{
adsInfoDict.Clear();
+ }
+
+ private void OnUpdateFBInfoChangeEvent(int mapID)
+ {
+ switch (mapID)
+ {
+ case 30010:
+ UpdateBoneAdRedPoint();
+ break;
+ }
}
void SendGetReward(int ADID)
@@ -114,7 +138,7 @@
foreach (var key in redPointDict.Keys)
{
redPointDict[key].state = RedPointState.None;
-
+
var config = ADAwardConfig.Get(key);
if (!FuncOpen.Instance.IsFuncOpen(config.FuncID))
{
@@ -122,9 +146,33 @@
}
if (GetADCntByADID(key) < config.ADCntMax)
{
- redPointDict[key].state = RedPointState.Simple;
+ switch (key)
+ {
+ //鐧介
+ case 1:
+ UpdateBoneAdRedPoint();
+ break;
+ default:
+ redPointDict[key].state = RedPointState.Simple;
+ break;
+ }
}
}
}
+
+
+ private void UpdateBoneAdRedPoint()
+ {
+ int key = 1;
+ if (!ADAwardConfig.HasKey(key))
+ return;
+ var config = ADAwardConfig.Get(key);
+ if (!FuncOpen.Instance.IsFuncOpen(config.FuncID))
+ return;
+ if (redPointDict.IsNullOrEmpty() || !redPointDict.ContainsKey(key))
+ return;
+ bool isNoChallenge = BoneFieldManager.Instance.IsNoChallenge();
+ redPointDict[key].state = isNoChallenge ? RedPointState.None : RedPointState.Simple;
+ }
}
diff --git a/Main/System/BoneField/BoneFieldChallengeButton.cs b/Main/System/BoneField/BoneFieldChallengeButton.cs
index e3d552d..e7cb0dc 100644
--- a/Main/System/BoneField/BoneFieldChallengeButton.cs
+++ b/Main/System/BoneField/BoneFieldChallengeButton.cs
@@ -21,8 +21,8 @@
this.isHasNextLineID = isHasNextLineID;
this.lvLimitMin = lvLimitMin;
isLvOk = PlayerDatas.Instance.baseData.LV >= lvLimitMin;
- long myFightPower = PlayerDatas.Instance.baseData.FightPower;
- imgChallengeRed.SetActive(isLvOk && isHasNextLineID && myFightPower >= bossFightPower);
+ bool isShowRed = BoneFieldManager.Instance.IsShowChallengeRed();
+ imgChallengeRed.SetActive(isShowRed);
txtChallengeLv.SetActive(!isLvOk);
txtChallengeLv.text = Language.Get("BoneField07", lvLimitMin);
txtChallengeYes.SetActive(isLvOk && isHasNextLineID);
diff --git a/Main/System/BoneField/BoneFieldManager.cs b/Main/System/BoneField/BoneFieldManager.cs
index e915b7b..bfc1f3a 100644
--- a/Main/System/BoneField/BoneFieldManager.cs
+++ b/Main/System/BoneField/BoneFieldManager.cs
@@ -5,13 +5,13 @@
public readonly int DataMapID = 30010; // 鐧介鐩堥噹(鎴橀敜绉樺)
public readonly int MinStartLineID = 1; // funcLineID浠�1寮�濮�
- public readonly int funcId = 9; //鍔熻兘ID
public Redpoint parentRedpoint = new Redpoint(MainRedDot.MainChallengeRedpoint, MainRedDot.BoneFieldRepoint);
public override void Init()
{
DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent;
AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent;
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+ PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh;
TimeMgr.Instance.OnDayEvent += OnDayEvent;
}
@@ -20,12 +20,13 @@
DungeonManager.Instance.UpdateFBInfoListEvent -= OnUpdateFBInfoChangeEvent;
AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent;
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+ PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh;
TimeMgr.Instance.OnDayEvent -= OnDayEvent;
}
private void OnFuncStateChangeEvent(int obj)
{
- if (obj != funcId)
+ if (obj != (int)FuncOpenEnum.BoneBattle)
return;
UpdateRedPoint();
}
@@ -51,39 +52,75 @@
UpdateRedPoint();
}
+ private void OnPlayerDataRefresh(PlayerDataType type)
+ {
+ if (type == PlayerDataType.FightPower)
+ {
+ UpdateRedPoint();
+ }
+ else if (type == PlayerDataType.LV)
+ {
+ UpdateRedPoint();
+ }
+ }
+
public void UpdateRedPoint()
{
parentRedpoint.state = RedPointState.None;
- if (!FuncOpen.Instance.IsFuncOpen(funcId))
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BoneBattle))
return;
+
+ bool isShowChallengeRed = IsShowChallengeRed();
+ if (isShowChallengeRed)
+ {
+ parentRedpoint.state = RedPointState.Simple;
+ return;
+ }
+
+ bool isShowSweepRed = IsShowSweepRed();
+ if (isShowSweepRed)
+ {
+ parentRedpoint.state = RedPointState.Simple;
+ return;
+ }
+
+ }
+ public bool IsShowChallengeRed()
+ {
if (!DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo))
- return;
+ return false;
bool isHasNextLineID = IsHasNextLineID(fbInfo);
int nowPassLineID = GetNowPassLineID(fbInfo);
DungeonConfig.TryGetDungeonID(DataMapID, nowPassLineID, out int dungeonID);
if (!DungeonConfig.HasKey(dungeonID))
- return;
+ return false;
DungeonConfig dungeonConfig = DungeonConfig.Get(dungeonID);
bool isLvOk = PlayerDatas.Instance.baseData.LV >= dungeonConfig.LVLimitMin;
long myFightPower = PlayerDatas.Instance.baseData.FightPower;
- if (myFightPower >= dungeonConfig.FightPower)
+ return isLvOk && isHasNextLineID && myFightPower >= dungeonConfig.FightPower;
+ }
+
+ public bool IsShowSweepRed()
+ {
+ bool isNoChallenge = IsNoChallenge();
+ if (isNoChallenge)
+ return false;
+ if (TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount))
{
- if (isLvOk && isHasNextLineID)
+ bool isSweepCountOk = showrealRemainSweepCount > 0;
+ if (isSweepCountOk)
{
- parentRedpoint.state = RedPointState.Simple;
+ return true;
}
}
- else
- {
- if (TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount))
- {
- bool isSweepCountOk = showrealRemainSweepCount > 0;
- if (isSweepCountOk)
- {
- parentRedpoint.state = RedPointState.Simple;
- }
- }
- }
+ return false;
+ }
+
+ public bool IsNoChallenge()
+ {
+ if (!DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo))
+ return true;
+ return fbInfo.PassLineID <= 0;
}
public bool IsHasNextLineID(FBInfo fBInfo)
diff --git a/Main/System/BoneField/BoneFieldWin.cs b/Main/System/BoneField/BoneFieldWin.cs
index c84dbc9..3c01fc2 100644
--- a/Main/System/BoneField/BoneFieldWin.cs
+++ b/Main/System/BoneField/BoneFieldWin.cs
@@ -165,8 +165,8 @@
DisplaySkillWordsList(lineupConfig);
DisplayItemCellList(challengeItemCells1, dungeonConfig.PassAwardList);
DisplayItemCellList(challengeItemCells2, dungeonConfig.PassAwardList);
-
- if (fbInfo.PassLineID > 0)
+ bool isNoChallenge = BoneFieldManager.Instance.IsNoChallenge();
+ if (!isNoChallenge)
{
DungeonConfig.TryGetDungeonID(dataMapID, (int)fbInfo.PassLineID, out int sweepDungeonID);
if (!DungeonConfig.HasKey(dungeonID))
@@ -189,8 +189,9 @@
public void DisplayChallengeButton(DungeonConfig dungeonConfig, FBInfo fBInfo)
{
- transNoChallenge.SetActive(fBInfo.PassLineID <= 0);
- transHasChallenge.SetActive(fBInfo.PassLineID > 0);
+ bool isNoChallenge = BoneFieldManager.Instance.IsNoChallenge();
+ transNoChallenge.SetActive(isNoChallenge);
+ transHasChallenge.SetActive(!isNoChallenge);
btnChallenge1.Display(dungeonConfig.LVLimitMin, isHasNextLineID, dungeonConfig.FightPower);
btnChallenge2.Display(dungeonConfig.LVLimitMin, isHasNextLineID, dungeonConfig.FightPower);
}
@@ -204,8 +205,9 @@
bool isSweepCountOk = showrealRemainSweepCount > 0;
btnSweep.interactable = isSweepCountOk;
imgSweep.gray = !isSweepCountOk;
- long myFightPower = PlayerDatas.Instance.baseData.FightPower;
- imgSweepRed.SetActive(isSweepCountOk && myFightPower < dungeonConfig.FightPower);
+ bool isShowChallengeRed = BoneFieldManager.Instance.IsShowChallengeRed();
+ bool isShowSweepRed = BoneFieldManager.Instance.IsShowSweepRed();
+ imgSweepRed.SetActive(!isShowChallengeRed && isShowSweepRed);
txtTodaySweepCount.SetActive(showSweepMaxCount > showrealRemainSweepCount);
txtTodaySweepCount.text = UIHelper.AppendColor(isSweepCountOk ? TextColType.LightGreen : TextColType.Red, Language.Get("BoneField08", showrealRemainSweepCount, showSweepMaxCount));
@@ -231,7 +233,7 @@
txtNeedMoneyCount.text = payMoneyValue.ToString();
}
}
- }
+ }
public void DisplayAdsButton(ADAwardConfig aDAwardConfig)
{
diff --git a/Main/System/ChallengeTab/BoneFieldTabHandler.cs b/Main/System/ChallengeTab/BoneFieldTabHandler.cs
index bb0c18c..d3f48a6 100644
--- a/Main/System/ChallengeTab/BoneFieldTabHandler.cs
+++ b/Main/System/ChallengeTab/BoneFieldTabHandler.cs
@@ -5,7 +5,7 @@
{
protected override int GetIndex() => 2;
protected override int GetOpenState() => 0; // 0=FuncID
- protected override int GetFuncId() => BoneFieldManager.Instance.funcId;
+ protected override int GetFuncId() => (int)FuncOpenEnum.BoneBattle;
protected override int GetRedpointId() => MainRedDot.BoneFieldRepoint;
protected override string GetCountInfo()
diff --git a/Main/System/Equip/EquipModel.cs b/Main/System/Equip/EquipModel.cs
index 10ca09d..f3c8966 100644
--- a/Main/System/Equip/EquipModel.cs
+++ b/Main/System/Equip/EquipModel.cs
@@ -190,18 +190,16 @@
//澶勭悊鎵�鏈夋帀钀界殑鐗╁搧
public void CalcAllFloorItems()
{
- int cnt = PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems().Count;
- if (cnt == 0)
- {
- Debug.Log("CalcAllFloorItems 娌℃湁鎺夎惤鐗╁搧");
+
+ var items = PackManager.Instance.GetItems(PackType.DropItem);
+ if (items.IsNullOrEmpty())
return;
- }
-
+ int cnt = items.Count;
needMoreDrop = cnt == 20;
//鏋勫缓鎵�鏈夌墿鍝�
- foreach (var item in PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems())
+ foreach (var item in items)
{
CalcFloorEquip(item.gridIndex);
}
@@ -475,7 +473,7 @@
return equip.GetUseData(23);
}
- //鎴樻枟灞炴�D鍒楄〃
+ //瑁呭鎴樻枟灞炴�D鍒楄〃, 濡傛灉鏄崷鐜夌殑璇濆熀纭�鍜屾垬鏂楅兘鏀句竴璧�
public List<int> GetEquipFightAttrs(ItemModel equip)
{
if (equip == null)
@@ -505,6 +503,17 @@
return equip.GetUseData(37);
}
+ public int GetEquipSkillID(ItemModel equip)
+ {
+ if (equip == null)
+ {
+ return 0;
+ }
+ var _list = equip.GetUseData(37);
+ return _list.IsNullOrEmpty() ? 0 : _list[0];
+ }
+
+
//寰楀埌瑁呭浣嶅搴旂殑閮ㄤ綅鍚嶇О
public string GetEquipPlaceName(int place)
{
diff --git a/Main/System/FuncPreset/FuncPresetChooseCell.cs b/Main/System/FuncPreset/FuncPresetChooseCell.cs
new file mode 100644
index 0000000..66db8d2
--- /dev/null
+++ b/Main/System/FuncPreset/FuncPresetChooseCell.cs
@@ -0,0 +1,73 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+//鏂规棰勮 鏂规閫夋嫨缁勪欢
+public class FuncPresetChooseCell : MonoBehaviour
+{
+ [SerializeField] Transform unFoldObj; //灞曞紑
+ [SerializeField] Transform foldObj; //鎶樺彔 鍦ㄦ鐘舵�佷篃鏈夐�変腑闈為�変腑
+ [SerializeField] Image lockImg;
+ [SerializeField] Text numText;
+ [SerializeField] Image selectImg;
+ [SerializeField] Button unFoldBtn; //瑙i攣鎴栬�呭睍寮�
+
+ [SerializeField] Text caseNameText;
+ [SerializeField] Button changeNameBtn;
+ [SerializeField] Text numUnFoldText;
+ [SerializeField] Button foldBtn; //鎶樺彔
+
+
+ public void Display(int battleType, int funcType, int id, bool isUnFold)
+ {
+ var data = FuncPresetManager.Instance.GetFuncPreset(funcType, id);
+ if (data == null)
+ {
+ return;
+ }
+ var selectID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType(battleType, funcType);
+ if (isUnFold)
+ {
+ unFoldObj.SetActive(true);
+ foldObj.SetActive(false);
+
+ caseNameText.text = data.PresetName;
+ numUnFoldText.text = id.ToString();
+ changeNameBtn.AddListener(ChangeName);
+ foldBtn.AddListener(()=>Fold(funcType, id));
+ }
+ else
+ {
+ unFoldObj.SetActive(false);
+ foldObj.SetActive(true);
+
+ unFoldBtn.AddListener(() => UnFold(funcType, id));
+ lockImg.SetActive(!data.unLock);
+ numText.text = id.ToString();
+ selectImg.SetActive(selectID == id);
+ }
+
+
+ }
+
+
+ void ChangeName()
+ {
+ // UIManager.Instance.OpenWindow<FuncPresetChangeNameWin>();
+ }
+
+ void Fold(int funcType, int id)
+ {
+ FuncPresetManager.Instance.OnSelectPresetEvent?.Invoke(funcType, id, false);
+ }
+
+ void UnFold(int funcType, int id)
+ {
+ var data = FuncPresetManager.Instance.GetFuncPreset(funcType, id);
+ if (!data.unLock)
+ {
+ // 鏈В閿� 鍒欒喘涔�
+ return;
+ }
+ FuncPresetManager.Instance.OnSelectPresetEvent?.Invoke(funcType, id, true);
+ }
+}
diff --git a/Main/System/Mingge/MinggeCaseCell.cs.meta b/Main/System/FuncPreset/FuncPresetChooseCell.cs.meta
similarity index 83%
rename from Main/System/Mingge/MinggeCaseCell.cs.meta
rename to Main/System/FuncPreset/FuncPresetChooseCell.cs.meta
index 7a776d9..78a10ab 100644
--- a/Main/System/Mingge/MinggeCaseCell.cs.meta
+++ b/Main/System/FuncPreset/FuncPresetChooseCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d82ac7d0e4493ee4fb4fe720c72564fb
+guid: e19596bebfefd1e4c943e65ebddd11f1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/FuncPreset/FuncPresetChooseCells.cs b/Main/System/FuncPreset/FuncPresetChooseCells.cs
new file mode 100644
index 0000000..e44dd53
--- /dev/null
+++ b/Main/System/FuncPreset/FuncPresetChooseCells.cs
@@ -0,0 +1,69 @@
+using UnityEngine;
+
+//鏂规棰勮: 澶氭柟妗堥�夋嫨缁勪欢
+//鎺у埗鏄鹃殣锛� 1.鏈紑鍚椂鍏ㄤ笉鏄剧ず
+// 2.寮�鍚悗鏄剧ず宸茶В閿� + 鏈В閿� 3+0
+ //a. 鎸夊厓瀹濊В閿佺殑涓洪�愪竴寮�鍚紝榛樿寮�鍚痻涓紝绗瑇+1涓樉绀烘潯浠堕渶瑕併�愭祦娲鹃璁俱�戝姛鑳藉紑鍚�, 鍙В閿佸悗閫愪竴淇濈暀涓�涓攣浣忕殑锛堢洿鍒板叏寮�鍚級锛�
+ //b. 鎸夊姛鑳芥潯浠跺紑鍚殑锛屽鏋滈粯璁ゅ彧寮�鍏朵竴涓柟妗堢殑鎯呭喌涓嶆樉绀猴紝杈惧埌涓嬩竴涓柟妗堢殑鏉′欢婊¤冻鍚庡叏鏄剧ず锛涢粯璁ゅぇ浜�1涓殑鎯呭喌鐩存帴鍏ㄦ樉绀�
+// 3.褰撳皬浜�4涓殑鏃跺�欙紝娌℃湁涓嬫媺鏄剧ず锛屽鏋滃彲浠ヨ秴杩�4涓殑鏄剧ず涓嬫媺
+// 4.褰撳ぇ浜�4涓殑鏃跺�欙紝閫夋嫨瓒呰繃鏂规4鏃讹紝绗洓涓樉绀轰负閫変腑鐨勬柟妗�; 鍚﹀垯閲嶅紑鐨勬椂鍊欓粯璁ゆ樉绀�1-4 涓嶈褰曞巻鍙茬偣鍑�
+// 5.鍚嶅瓧灞曞紑鍒嗕袱绉嶆儏鍐碉紝澶栧眰鍔熻兘榛樿涓嶅睍寮�锛岀偣鍑诲悗鍒囨崲灞曞紑鐘舵�侊紱娴佹淳棰勮鐣岄潰閲屽彧鏈夊睍寮�鐘舵�佷笉鍙敹缂�
+public class FuncPresetChooseCells : MonoBehaviour
+{
+ [SerializeField] FuncPresetChooseCell[] cells;
+
+ int curBbattleType;
+ bool isUnFold = false; //鏄惁灞曞紑
+ bool forceUnFold = false; //寮哄埗灞曞紑锛屼笉鑳芥敹缂�
+
+ /// <summary>
+ /// 鏄剧ず鏂规棰勮
+ /// </summary>
+ /// <param name="battleType"></param>
+ /// <param name="funcType"></param>
+ /// <param name="forceUnFold"> 寮哄埗灞曞紑锛屼笉鑳芥敹缂�</param>
+ public void Display(int battleType, int funcType, bool _forceUnFold = false)
+ {
+ forceUnFold = _forceUnFold;
+ var _unFoldState = forceUnFold ? true : isUnFold;
+ curBbattleType = battleType;
+ var selectID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType(battleType, funcType);
+ for (int i = 0; i < cells.Length; i++)
+ {
+ if (i < 3)
+ {
+ cells[i].Display(battleType, funcType, i + 1, _unFoldState);
+ }
+ else
+ {
+ //绗洓涓姩鎬佸彉鍖�
+ cells[i].Display(battleType, funcType, selectID > 4 ? selectID : 4, _unFoldState);
+ }
+ }
+ }
+
+
+ void OnEnable()
+ {
+ if (!forceUnFold)
+ {
+ FuncPresetManager.Instance.OnSelectPresetEvent += OnSelectPresetEvent;
+ }
+ }
+
+ void OnDisable()
+ {
+ if (!forceUnFold)
+ {
+ isUnFold = false;
+ FuncPresetManager.Instance.OnSelectPresetEvent -= OnSelectPresetEvent;
+ }
+ }
+
+ void OnSelectPresetEvent(int funcType, int id, bool _isUnFold)
+ {
+ isUnFold = _isUnFold;
+ int index = id > 4 ? 3 : id - 1;
+ cells[index].Display(curBbattleType, funcType, id, isUnFold);
+ }
+}
diff --git a/Main/System/Mingge/MinggeCaseCell.cs.meta b/Main/System/FuncPreset/FuncPresetChooseCells.cs.meta
similarity index 83%
copy from Main/System/Mingge/MinggeCaseCell.cs.meta
copy to Main/System/FuncPreset/FuncPresetChooseCells.cs.meta
index 7a776d9..a2fa231 100644
--- a/Main/System/Mingge/MinggeCaseCell.cs.meta
+++ b/Main/System/FuncPreset/FuncPresetChooseCells.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d82ac7d0e4493ee4fb4fe720c72564fb
+guid: c377e47a1d94e154387ee9c6b4b1d106
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/FuncPreset/FuncPresetManager.cs b/Main/System/FuncPreset/FuncPresetManager.cs
index f689ee0..1bff3a7 100644
--- a/Main/System/FuncPreset/FuncPresetManager.cs
+++ b/Main/System/FuncPreset/FuncPresetManager.cs
@@ -22,7 +22,9 @@
public const int GlobalDefaultPresetID = 1; //榛樿鍏ㄥ眬鏂规ID
public const int FuncDefaultPresetID = 1; //榛樿瀛愬姛鑳芥柟妗圛D
- public int teamPresetMaxID = 1; //闃靛棰勮鏈�澶D, 榛樿1鎸夎В閿佸紑鏀�
+ public int[] openConditions; //娴佹淳棰勮锛堜篃鍙叏灞�鏂规/鎴樻枟鏂规锛� 寮�鍚潯浠躲�愬紑鏈嶇N澶╋紝涓荤嚎閫氬叧X-Y锛屽畾鍐涢榿杈惧埌N灞傘��
+
+ public Action<int, int, bool> OnSelectPresetEvent; //閫夋嫨鍔熻兘棰勮鏂规浜嬩欢 鍔熻兘绫诲瀷 鏂规ID 鏄惁灞曞紑
public override void Init()
{
@@ -38,13 +40,46 @@
void ParseConfig()
{
-
+ var config = FuncConfigConfig.Get("FuncPreset");
+ openConditions = JsonMapper.ToObject<int[]>(config.Numerical1);
}
private void OnBeforePlayerDataInitialize()
{
battlePreSetDict.Clear();
+ m_FuncPresetSaveDict.Clear();
InitFuncPreset();
+ }
+
+ //娴佹淳瑙i攣
+ public bool IsOpen()
+ {
+ //鐗规畩绾﹀畾
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Mingge))
+ return false;
+
+ if (TimeUtility.OpenDay < openConditions[0] - 1)
+ {
+ return false;
+ }
+ if (PlayerDatas.Instance.baseData.ExAttr1 / 100 <= openConditions[1])
+ {
+ return false;
+ }
+ int layerNum = 0;
+ WarlordPavilionManager.Instance.TryGetHistoryMaxPassLayerNum(out layerNum);
+ if (layerNum < openConditions[2])
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ //鎻愬墠鏄剧ず
+ public bool IsPreShow()
+ {
+ return FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Mingge);
}
void InitFuncPreset()
@@ -68,9 +103,7 @@
unLock = config.UnlockType == 0,
PresetName = Language.Get("Mingge13") + config.PresetID,
};
-
}
-
}
public void UpdateFuncPresetInfoList(HB161_tagSCFuncPresetInfoList vNetData)
@@ -127,25 +160,114 @@
OnBattelePresetEvent?.Invoke();
}
- //鑾峰彇鍏ㄥ眬鏂规ID锛屽鏋滃彇涓嶅埌榛樿鏂规1
- public int GetGlobalPresetID(int type)
+ //鏍规嵁鎴樻枟鑾峰彇鍏ㄥ眬鏂规ID锛屽鏋滃彇涓嶅埌榛樿鏂规1
+ public int GetGlobalPresetID(int battlePresetType)
{
- if (battlePreSetDict.ContainsKey(type))
+ if (battlePreSetDict.ContainsKey(battlePresetType))
{
- return battlePreSetDict[type];
+ return battlePreSetDict[battlePresetType];
}
return 1;
}
- //鑾峰彇瀛愬姛鑳芥柟妗圛D锛屽鏋滃彇涓嶅埌榛樿鏂规1
- public int GetFuncPresetID(int type, int presetID)
+ //鎸囧畾鎴樻枟妯″紡涓嬭幏鍙栧瓙鍔熻兘鏂规ID锛屽鏋滃彇涓嶅埌榛樿鏂规1
+ public int GetFuncPresetIDByBattleType(int battlePresetType, int funcType)
{
- if (m_FuncPresetSaveDict.ContainsKey(presetID) && m_FuncPresetSaveDict[presetID].ContainsKey(type))
+ int globalPresetID = GetGlobalPresetID(battlePresetType);
+ if (m_FuncPresetSaveDict.ContainsKey(globalPresetID) && m_FuncPresetSaveDict[globalPresetID].ContainsKey(funcType))
{
- return m_FuncPresetSaveDict[presetID][type];
+ return m_FuncPresetSaveDict[globalPresetID][funcType];
}
return 1;
}
+
+ //鎸囧畾娴佹淳鑾峰彇瀛愬姛鑳芥柟妗圛D锛屽鏋滃彇涓嶅埌榛樿鏂规1
+ public int GetFuncPresetID(int globalPresetID, int funcType)
+ {
+ if (m_FuncPresetSaveDict.ContainsKey(globalPresetID) && m_FuncPresetSaveDict[globalPresetID].ContainsKey(funcType))
+ {
+ return m_FuncPresetSaveDict[globalPresetID][funcType];
+ }
+ return 1;
+ }
+
+ //鑾峰彇瀛愬姛鑳芥柟妗圛D锛屽鏋滃彇涓嶅埌榛樿鏂规1; 榛樿鍙栧綋鍓嶆祦娲句笅鐨�
+ public int GetFuncPresetID(int funcType)
+ {
+ int globalPresetID = GetGlobalPresetID((int)BattlePreSetType.Story);
+ if (m_FuncPresetSaveDict.ContainsKey(globalPresetID) && m_FuncPresetSaveDict[globalPresetID].ContainsKey(funcType))
+ {
+ return m_FuncPresetSaveDict[globalPresetID][funcType];
+ }
+ return 1;
+ }
+
+ //
+ public FuncPreset GetFuncPreset(int funcType, int presetID)
+ {
+ if (m_FuncPresetDict.ContainsKey(funcType) && m_FuncPresetDict[funcType].ContainsKey(presetID))
+ {
+ return m_FuncPresetDict[funcType][presetID];
+ }
+ return null;
+ }
+
+ // 杩欓噷铏界劧浼犵殑鏄� battleType锛屼絾鏄疄闄呰繕鏄牴鎹叏灞�鏂规ID鍋氬搴斾慨鏀癸紱濡傛灉杩欎釜鍏ㄥ眬鏂规鍏朵粬鍦版柟鏈変娇鐢ㄤ篃鏄悓姝ュ彉鍖�
+ public void SaveFuncPresetID(int battleType, int funcType, int presetID)
+ {
+ var pack = new CB262_tagCSFuncPresetSwitch();
+ pack.FuncPresetType = (byte)funcType;
+ pack.PresetID = (byte)presetID;
+ pack.BatPresetID = (byte)battleType;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ public void SaveBattlePresetID(int battleType, int globalPresetID)
+ {
+ var pack = new CB263_tagCSBatPresetSwitch();
+ pack.BatPresetID = (byte)globalPresetID;
+ pack.BatPresetType = (byte)battleType;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ //瑕佹樉绀虹殑鏂规鏁伴噺; 鏍规嵁鎯呭喌浼氬寘鍚湭瑙i攣
+ //a. 鎸夊厓瀹濊В閿佺殑涓洪�愪竴寮�鍚紝榛樿寮�鍚痻涓紝绗瑇+1涓樉绀烘潯浠堕渶瑕併�愭祦娲鹃璁俱�戝姛鑳藉紑鍚�, 鍙В閿佸悗閫愪竴淇濈暀涓�涓攣浣忕殑锛堢洿鍒板叏寮�鍚級锛�
+ //b. 鎸夊姛鑳芥潯浠跺紑鍚殑锛屽鏋滈粯璁ゅ彧寮�鍏朵竴涓柟妗堢殑鎯呭喌涓嶆樉绀猴紝杈惧埌涓嬩竴涓柟妗堢殑鏉′欢婊¤冻鍚庡叏鏄剧ず锛涢粯璁ゅぇ浜�1涓殑鎯呭喌鐩存帴鍏ㄦ樉绀�
+ public int GetShowFuncPresetCount(int funcType)
+ {
+ var showCount = GetUnlockCnt(funcType);
+ var maxCount = PresetUnlockConfig.GetFuncPresetMaxCount(funcType);
+ var unlockType = PresetUnlockConfig.GetUnlockType((int)FuncPresetType.Mingge);
+ if (unlockType > 1)
+ {
+ //闈炲厓瀹濊В閿�
+ //鍙湁1涓柟妗堝垯涓嶆樉绀猴紝澶т簬1涓垯鍏ㄦ樉绀�
+ return showCount == 1 ? 0 : maxCount;
+ }
+ if (!IsOpen())
+ {
+ //鏈紑鍚椂锛岄粯璁ゅぇ浜�1鍒欐樉绀�
+ return showCount == 1 ? 0 : showCount;
+ }
+
+ return showCount == maxCount ? showCount : showCount + 1;
+ }
+
+ public int GetUnlockCnt(int funcType)
+ {
+ int count = 0;
+ if (m_FuncPresetDict.ContainsKey(funcType))
+ {
+ for (int i = 0; i < m_FuncPresetDict[funcType].Count; i++)
+ {
+ if (m_FuncPresetDict[funcType][i + 1].unLock)
+ {
+ count++;
+ }
+ }
+ }
+ return count;
+ }
}
diff --git a/Main/System/Hero/HeroInfo.cs b/Main/System/Hero/HeroInfo.cs
index 842b847..61ab98d 100644
--- a/Main/System/Hero/HeroInfo.cs
+++ b/Main/System/Hero/HeroInfo.cs
@@ -48,7 +48,7 @@
{
get
{
- return itemHero.GetUseDataFirstValue(80) == 1;
+ return itemHero.GetUseDataFirstValue(83) != 0;
}
}
@@ -120,7 +120,8 @@
//鏄惁涓婁换浣曢樀瀹�
public bool IsInAnyTeam()
{
- for (int i = 1; i < FuncPresetManager.Instance.teamPresetMaxID; i++)
+ var maxCnt = FuncPresetManager.Instance.GetUnlockCnt((int)FuncPresetType.Mingge);
+ for (int i = 1; i < maxCnt + 1; i++)
{
if (TeamManager.Instance.GetTeam(i).HasHeroInServer(itemHero.guid))
{
@@ -133,7 +134,8 @@
//鏄惁涓婁换浣曢樀瀹癸紝涓斿彧鏈変竴鍙�
public bool IsInAnyTeamJustOne()
{
- for (int i = 1; i < FuncPresetManager.Instance.teamPresetMaxID; i++)
+ var maxCnt = FuncPresetManager.Instance.GetUnlockCnt((int)FuncPresetType.Mingge);
+ for (int i = 1; i < maxCnt + 1; i++)
{
var team = TeamManager.Instance.GetTeam(i);
if (team.HasHeroInServer(itemHero.guid))
@@ -148,7 +150,8 @@
//涓嬮樀鎵�鏈夐樀瀹�
public void LeaveAllTeam()
{
- for (int i = 1; i < FuncPresetManager.Instance.teamPresetMaxID; i++)
+ var maxCnt = FuncPresetManager.Instance.GetUnlockCnt((int)FuncPresetType.Mingge);
+ for (int i = 1; i < maxCnt + 1; i++)
{
int pos;
var team = TeamManager.Instance.GetTeam(i);
diff --git a/Main/System/InternalAffairs/AffairFuncCell.cs b/Main/System/InternalAffairs/AffairFuncCell.cs
index 006b9ca..b632253 100644
--- a/Main/System/InternalAffairs/AffairFuncCell.cs
+++ b/Main/System/InternalAffairs/AffairFuncCell.cs
@@ -57,7 +57,7 @@
}
else if (funcID == 54)
{
- UIManager.Instance.OpenWindow<GubaoBaseWin>();
+ UIManager.Instance.OpenWindow<MinggeWin>();
}
diff --git a/Main/System/ItemTip/ItemTipUtility.cs b/Main/System/ItemTip/ItemTipUtility.cs
index ea18a42..fadcf96 100644
--- a/Main/System/ItemTip/ItemTipUtility.cs
+++ b/Main/System/ItemTip/ItemTipUtility.cs
@@ -20,6 +20,7 @@
BoxChooseItem, //瀹濈鑷�夌墿鍝�
TreasurePavilion, //鍙ゅ疂鐗╁搧锛堢鐗囷級
Hero, //姝﹀皢
+ Mingge, //鍛芥牸
}
public class TipData
@@ -297,26 +298,8 @@
mainTipData.guid = PackManager.Instance.GetItemGUIDByID(itemId, true, PackType.DropItem);
}
- // mainTipData = CreateNormalEquipData(itemId);
- // if (item.isAuctionEquip && !item.legendProperty.Equals(default(LegendProperty)))
- // {
- // mainTipData.legendProperty = item.legendProperty;
- // mainTipData.baseInfo.score = item.score;
- // mainTipData.baseInfo.isPreview = false;
- // }
-
- // if (item.compare)
- // {
- // if (ItemLogicUtility.Instance.IsJobCompatibleItem(itemId))
- // {
- // var equipedGuid = equipModel.GetEquip(new Int2(config.LV, config.EquipPlace));
- // if (equipedGuid != string.Empty)
- // {
- // secondaryData = CreateNormalEquipData(equipedGuid, false);
- // }
- // }
- // }
break;
+
default:
mainTipData = CreateItemData(itemId);
break;
@@ -380,32 +363,13 @@
mainTipData = new TipData() { guid = guid };
break;
default:
- // if (item.isAuction)
- // {
- // mainTipData = CreateEquipAuctionData(guid, operatable);
- // if (ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId))
- // {
- // var equipedGuid = equipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace));
- // if (equipedGuid != string.Empty)
- // {
- // secondaryData = CreateNormalEquipData(equipedGuid, false);
- // }
- // }
- // }
- // else
- // {
- // mainTipData = CreateNormalEquipData(guid, operatable);
- // var equipedGuid = equipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace));
- // if (equipedGuid != guid)
- // {
- // secondaryData = CreateNormalEquipData(equipedGuid, false);
- // }
- // }
break;
}
break;
-
+ case TipType.Mingge:
+ mainTipData = new TipData() { guid = guid };
+ break;
default:
mainTipData = CreateItemData(guid, operatable);
break;
@@ -425,11 +389,9 @@
case TipType.BoxChooseItem:
UIManager.Instance.OpenWindow<ChooseItemsWin>();
break;
- // case TipType.TreasurePavilion:
- // TreasurePavilionModel.Instance.selectGubao = item.config.EffectValueA1;
- // TreasurePavilionModel.Instance.showTipFromPiece = item.itemId;
- // WindowCenter.Instance.OpenIL<TreasurePavilionTipWin>();
- // break;
+ case TipType.Mingge:
+ // UIManager.Instance.OpenWindow<MinggeWin>();
+ break;
default:
UIManager.Instance.OpenWindow<ItemTipWin>();
break;
@@ -1679,6 +1641,19 @@
return TipType.TreasurePavilion;
case 150:
return TipType.Hero;
+ case 201:
+ case 202:
+ case 203:
+ case 204:
+ case 205:
+ case 206:
+ case 207:
+ case 208:
+ case 209:
+ case 210:
+ case 211:
+ case 212:
+ return TipType.Mingge;
default:
return TipType.Item;
}
diff --git a/Main/System/Login/LoginManager.cs b/Main/System/Login/LoginManager.cs
index a51c094..1f81e89 100644
--- a/Main/System/Login/LoginManager.cs
+++ b/Main/System/Login/LoginManager.cs
@@ -10,6 +10,8 @@
public readonly static string USER_ACCOUNT = Application.dataPath + "UserAccount";
public readonly static string USER_PASSWORD = Application.dataPath + "UserPassword";
+ public string hotVersion = "";
+
public bool sdkLogined
{
get;
@@ -302,6 +304,65 @@
}
}
+ //logicversion 鍜宎ssetversion 涓や釜鏂囦欢 鐨勫唴瀹筸d5鍏ㄥ紓鎴栧彇鏈�鍚庝袱涓瓧姣�
+ public void RefreshHotVersion()
+ {
+ try
+ {
+ string logicVersionMd5 = "";
+ string assetVersionMd5 = "";
+ // 鍒濆鍖栫粨鏋滃瓧鑺傛暟缁�(MD5 鏄� 16 瀛楄妭)
+ byte[] resultBytes = new byte[16];
+ foreach (var item in LocalResManager.Instance.assetVersions)
+ {
+ // 瀵规瘡涓� MD5 杩涜寮傛垨杩愮畻
+ byte[] md5Bytes = HexStringToByteArray(item.Value.md5);
+ for (int j = 0; j < 16; j++)
+ {
+ resultBytes[j] ^= md5Bytes[j];
+ }
+
+ }
+ //鍙栨渶鍚庝袱浣�
+ logicVersionMd5 = BitConverter.ToString(resultBytes).Replace("-", "").ToLower().Substring(14, 2);
+
+ resultBytes = new byte[16];
+ foreach (var item in AssetVersionUtility.assetVersions)
+ {
+ // 瀵规瘡涓� MD5 杩涜寮傛垨杩愮畻
+ byte[] md5Bytes = HexStringToByteArray(item.Value.md5);
+ for (int j = 0; j < 16; j++)
+ {
+ resultBytes[j] ^= md5Bytes[j];
+ }
+
+ }
+ assetVersionMd5 = BitConverter.ToString(resultBytes).Replace("-", "").ToLower().Substring(14, 2);
+ hotVersion = logicVersionMd5 + assetVersionMd5;
+ Debug.Log($"RefreshHotVersion {hotVersion}");
+ }
+ catch
+ {
+ Debug.LogError("RefreshHotVersion 閿欒");
+ }
+ }
+
+
+
+ // 杈呭姪鏂规硶:鍗佸叚杩涘埗瀛楃涓茶浆瀛楄妭鏁扮粍
+ private byte[] HexStringToByteArray(string hex)
+ {
+ byte[] bytes = new byte[hex.Length / 2];
+ for (int i = 0; i < hex.Length; i += 2)
+ {
+ bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
+ }
+ return bytes;
+ }
+
+
+
+
public C0101_tagCPlayerLogin Get0101SendPackage(H0101_tagServerPrepared _serverInfo)
{
GameNetSystem.Instance.SetIsWaitLogin(false);
@@ -328,46 +389,48 @@
send.Extra = "";
break;
case VersionAuthority.Release:
- {
- var deviceInfo = DeviceUtility.GetDeviceModel();
- deviceInfo.Replace(" ", "").Replace("=", "").Replace("%", "").Replace("-", "").Replace("|", "");
- var versionStr = StringUtility.Concat(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex.ToString(), "_", deviceInfo);
-
- send.Extra = StringUtility.Concat(VersionConfig.Get().SpID, "|",
- SDKUtils.Instance.Device.uniqueID, "|",
- sdkLoginResult.token, "|",
- sdkLoginResult.qkUserName, "|",
- versionStr.Substring(0, Math.Min(24, versionStr.Length)));
-
-
- Debug.Log("=====> extra: " + send.Extra);
- send.ExtraLen = (ushort)send.Extra.Length;
-
- send.IDType = (byte)SDKUtils.Instance.ChannelPlatform;
- send.Password = sdkLoginResult.token;
- send.AccID = sdkLoginResult.account;
- send.MAC = DeviceUtility.GetMac();
- send.Version = _serverInfo.Version;
- send.LineNO = 255;
- send.AppID = VersionConfig.Get().appId;
- send.AccountID = (uint)sdkLoginResult.accountID;
- send.TokenExpire = sdkLoginResult.tokenExpire;
- send.Phone = (byte)sdkLoginResult.phone;
- send.ServerID = (uint)ServerListCenter.Instance.currentServer.region_flag;
- if (sdkIDCheckIDAuthentication.type == "1")
{
- send.Adult = 1;
+ var deviceInfo = DeviceUtility.GetDeviceModel();
+ deviceInfo.Replace(" ", "").Replace("=", "").Replace("%", "").Replace("-", "").Replace("|", "");
+ var versionStr = StringUtility.Concat(VersionConfig.Get().version, "_",
+ VersionConfig.Get().buildIndex.ToString(), "_",
+ hotVersion, "-", deviceInfo);
+
+ send.Extra = StringUtility.Concat(VersionConfig.Get().SpID, "|",
+ SDKUtils.Instance.Device.uniqueID, "|",
+ sdkLoginResult.token, "|",
+ sdkLoginResult.qkUserName, "|",
+ versionStr.Substring(0, Math.Min(24, versionStr.Length)));
+
+
+ Debug.Log("=====> extra: " + send.Extra);
+ send.ExtraLen = (ushort)send.Extra.Length;
+
+ send.IDType = (byte)SDKUtils.Instance.ChannelPlatform;
+ send.Password = sdkLoginResult.token;
+ send.AccID = sdkLoginResult.account;
+ send.MAC = DeviceUtility.GetMac();
+ send.Version = _serverInfo.Version;
+ send.LineNO = 255;
+ send.AppID = VersionConfig.Get().appId;
+ send.AccountID = (uint)sdkLoginResult.accountID;
+ send.TokenExpire = sdkLoginResult.tokenExpire;
+ send.Phone = (byte)sdkLoginResult.phone;
+ send.ServerID = (uint)ServerListCenter.Instance.currentServer.region_flag;
+ if (sdkIDCheckIDAuthentication.type == "1")
+ {
+ send.Adult = 1;
+ }
+ else if (sdkIDCheckIDAuthentication.type == "2")
+ {
+ send.Adult = MathUtility.CheckAdult(sdkIDCheckIDAuthentication.card_id) ? (byte)1 : (byte)0;
+ }
+ else
+ {
+ send.Adult = 0;
+ }
+ break;
}
- else if (sdkIDCheckIDAuthentication.type == "2")
- {
- send.Adult = MathUtility.CheckAdult(sdkIDCheckIDAuthentication.card_id) ? (byte)1 : (byte)0;
- }
- else
- {
- send.Adult = 0;
- }
- break;
- }
}
return send;
diff --git a/Main/System/Login/LoginWin.cs b/Main/System/Login/LoginWin.cs
index 301ef5c..e81f412 100644
--- a/Main/System/Login/LoginWin.cs
+++ b/Main/System/Login/LoginWin.cs
@@ -89,7 +89,7 @@
{
base.OnPreOpen();
Debug.Log("鎵撳紑鐧诲綍绐楀彛");
-
+ LoginManager.Instance.RefreshHotVersion();
ServerListCenter.Instance.serverSelectEvent += OnServerChange;
ServerListCenter.Instance.onServerListRefreshEvent += OnServerListRefresh;
diff --git a/Main/System/Main/AutoFightModel.cs b/Main/System/Main/AutoFightModel.cs
index 183d973..a2d0d14 100644
--- a/Main/System/Main/AutoFightModel.cs
+++ b/Main/System/Main/AutoFightModel.cs
@@ -80,6 +80,7 @@
}
}
+ public event Action<bool> OnAutoChallengeBossEvent;
//鑷姩鎸戞垬棣栭
public bool isAutoChallengeBoss
{
@@ -90,6 +91,7 @@
set
{
QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_ChallengeBoss, value);
+ OnAutoChallengeBossEvent?.Invoke(value);
}
}
@@ -107,9 +109,11 @@
if (m_NowChallengeCount >= tryChallengeCount)
{
m_NowChallengeCount = -1; //浠h〃鍋滄缁х画鎸戞垬BOSS, 浣嗕笉鏄仠姝㈡垬鏂�
+ isAutoChallengeBoss = false; //鍙栨秷鍕鹃�夎嚜鍔ㄦ寫鎴榖oss
}
}
}
+
//鑷姩鎸戞垬棣栭锛屾垬璐娆″仠姝�
public int tryChallengeCount
@@ -208,81 +212,81 @@
{
ProccessCloseWin();
}
- void ProccessCloseWin()
+ void ProccessCloseWin()
{
if (!isAutoAttack)
return;
- if (isAutoChallengeBoss)
- {
- if (UIManager.Instance.IsOpened<BattleVictoryWin>())
- {
- if (!winWaitCloseDict.ContainsKey("BattleVictoryWin"))
- {
- winWaitCloseDict["BattleVictoryWin"] = 0;
- }
+ if (isAutoChallengeBoss)
+ {
+ if (UIManager.Instance.IsOpened<BattleVictoryWin>())
+ {
+ if (!winWaitCloseDict.ContainsKey("BattleVictoryWin"))
+ {
+ winWaitCloseDict["BattleVictoryWin"] = 0;
+ }
- if (winWaitCloseDict["BattleVictoryWin"] == 0)
- {
- winWaitCloseDict["BattleVictoryWin"] = (int)Time.time;
- }
- else if (Time.time - winWaitCloseDict["BattleVictoryWin"] > AutoFightModel.Instance.autoCloseWinCD)
- {
- UIManager.Instance.CloseWindow<BattleVictoryWin>();
- winWaitCloseDict["BattleVictoryWin"] = 0;
- }
- }
+ if (winWaitCloseDict["BattleVictoryWin"] == 0)
+ {
+ winWaitCloseDict["BattleVictoryWin"] = (int)Time.time;
+ }
+ else if (Time.time - winWaitCloseDict["BattleVictoryWin"] > AutoFightModel.Instance.autoCloseWinCD)
+ {
+ UIManager.Instance.CloseWindow<BattleVictoryWin>();
+ winWaitCloseDict["BattleVictoryWin"] = 0;
+ }
+ }
- if (UIManager.Instance.IsOpened<BattleFailWin>())
- {
- if (!winWaitCloseDict.ContainsKey("BattleFailWin"))
- {
- winWaitCloseDict["BattleFailWin"] = 0;
- }
+ if (UIManager.Instance.IsOpened<BattleFailWin>())
+ {
+ if (!winWaitCloseDict.ContainsKey("BattleFailWin"))
+ {
+ winWaitCloseDict["BattleFailWin"] = 0;
+ }
- if (winWaitCloseDict["BattleFailWin"] == 0)
- {
- winWaitCloseDict["BattleFailWin"] = (int)Time.time;
- }
- else if (Time.time - winWaitCloseDict["BattleFailWin"] > autoCloseWinCD)
- {
- UIManager.Instance.CloseWindow<BattleFailWin>();
- winWaitCloseDict["BattleFailWin"] = 0;
- }
- }
- }
-
- if (isAutoFinishTask)
- {
- if (TaskManager.Instance.GetMainTaskState() == 2 && UIManager.Instance.IsOpened<HomeWin>()
+ if (winWaitCloseDict["BattleFailWin"] == 0)
+ {
+ winWaitCloseDict["BattleFailWin"] = (int)Time.time;
+ }
+ else if (Time.time - winWaitCloseDict["BattleFailWin"] > autoCloseWinCD)
+ {
+ UIManager.Instance.CloseWindow<BattleFailWin>();
+ winWaitCloseDict["BattleFailWin"] = 0;
+ }
+ }
+ }
+
+ if (isAutoFinishTask)
+ {
+ if (TaskManager.Instance.GetMainTaskState() == 2 && UIManager.Instance.IsOpened<HomeWin>()
&& !UIManager.Instance.ExistAnyFullScreenOrMaskWin("") && !NewBieCenter.Instance.inGuiding)
- {
- //棰嗗彇浠诲姟濂栧姳
- CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
- getReward.RewardType = 66;
- getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
- GameNetSystem.Instance.SendInfo(getReward);
- return;
- }
+ {
+ //棰嗗彇浠诲姟濂栧姳
+ CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
+ getReward.RewardType = 66;
+ getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
+ GameNetSystem.Instance.SendInfo(getReward);
+ return;
+ }
- if (UIManager.Instance.IsOpened<CommonGetItemWin>() && ItemLogicUtility.Instance.getItemEventName == "Task")
- {
- if (!winWaitCloseDict.ContainsKey("CommonGetItemWin"))
- {
- winWaitCloseDict["CommonGetItemWin"] = 0;
- }
+ if (UIManager.Instance.IsOpened<CommonGetItemWin>() && ItemLogicUtility.Instance.getItemEventName == "Task")
+ {
+ if (!winWaitCloseDict.ContainsKey("CommonGetItemWin"))
+ {
+ winWaitCloseDict["CommonGetItemWin"] = 0;
+ }
- if (winWaitCloseDict["CommonGetItemWin"] == 0)
- {
- winWaitCloseDict["CommonGetItemWin"] = (int)Time.time;
- }
- else if (Time.time - winWaitCloseDict["CommonGetItemWin"] > autoCloseWinCD)
- {
- UIManager.Instance.CloseWindow<CommonGetItemWin>();
- winWaitCloseDict["CommonGetItemWin"] = 0;
- }
- }
- }
- }
+ if (winWaitCloseDict["CommonGetItemWin"] == 0)
+ {
+ winWaitCloseDict["CommonGetItemWin"] = (int)Time.time;
+ }
+ else if (Time.time - winWaitCloseDict["CommonGetItemWin"] > autoCloseWinCD)
+ {
+ UIManager.Instance.CloseWindow<CommonGetItemWin>();
+ winWaitCloseDict["CommonGetItemWin"] = 0;
+ }
+ }
+ }
+ }
public void SaveAutoFightSetting()
diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index a408d50..4055c16 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -123,23 +123,38 @@
int teamTypeCalc = 1; //涓嶅悓闃靛鎴樺姏涓嶅悓
bool isPreviewTeamPower; //棰勮闃靛锛堥槦浼嶏級鎴樺姏
int dropIndexCalc = -1; //鎺夎惤瑁呭鍦ㄩ樀瀹圭殑绱㈠紩锛岀敤浜庨瑙堟垬鍔涘姣�
+ int minggePresetID; //鍛芥牸棰勮ID
+ int minggeDropIndex; //鎺夎惤鍛芥牸鍦ㄨ儗鍖呯殑绱㈠紩 锛岀敤浜庨瑙堟垬鍔涘姣�
//璁$畻闃靛鎴樺姏锛岃澶囧姣旂瓑鎯呭喌闇�瑕佷唬鍏�
/// <summary>
///
/// </summary>
- /// <param name="teamType">闃靛绫诲瀷</param>
+ /// <param name="teamType">闃靛绫诲瀷锛氭柟妗圛D涓嬬殑闃熶紞</param>
/// <param name="dropindex">鎺夎惤瑁呭鐨勭储寮曪紝-1浠h〃涓嶆浛鎹㈣绠�</param>
/// <param name="ispreview">棰勮闃靛鎴樺姏</param>
- public void InitFightPowerParam(int teamType = 1, int dropindex = -1, bool ispreview = false)
+ public void InitFightPowerParam(int teamType = 0, int dropindex = -1, bool ispreview = false,
+ int _minggePresetID = 0, int _minggeDropIndex = -1)
{
#if !UNITY_EDITOR
openLog = false;
#endif
+ if (teamType == 0)
+ {
+ // 娌℃湁璁剧疆榛樿浣跨敤涓婚樀瀹�
+ teamType = TeamManager.Instance.GetMainTeamID();
+ }
+ if (_minggePresetID == 0)
+ {
+ // 娌℃湁璁剧疆榛樿褰撳墠娴佹淳涓嬪懡鏍兼柟妗�
+ _minggePresetID = FuncPresetManager.Instance.GetFuncPresetID((int)FuncPresetType.Mingge);
+ }
teamTypeCalc = teamType;
+ minggePresetID = _minggePresetID;
isPreviewTeamPower = ispreview;
dropIndexCalc = dropindex;
+ minggeDropIndex = _minggeDropIndex;
#if UNITY_EDITOR
FightPowerDebug("鎴樺姏锛氬垵濮嬪寲鍙傛暟 dropIndex锛�" + dropIndexCalc + " 闃靛瀷锛�" + teamTypeCalc + " ispreview:" + ispreview);
#endif
@@ -158,6 +173,7 @@
public Dictionary<int, int> equipAttrs = new Dictionary<int, int>(); //瑁呭灞炴��
// public Dictionary<string, int> lineUpPerDict = new Dictionary<string, int>(); //闃靛灞炴�у姞鎴�
public Dictionary<int, int> countryAttrs = new Dictionary<int, int>(); //闃靛鍥藉锛堝厜鐜級灞炴��
+ public Dictionary<int, int> minggeAttrs = new Dictionary<int, int>(); //鍛芥牸灞炴�� 鎶�鑳芥垬鍔涗负鍥哄畾鐨勫彧绠椾釜鏁板尯鍒嵆鍙�
float allHeroAddPer = 0; //鎵�鏈夋灏嗗姞鎴�
@@ -216,13 +232,18 @@
void RefrehEquipAttrs()
{
equipAttrs.Clear(); //韬笂瑁呭灞炴�ч噸缃�
+ ItemModel dropEquip = null;
+ if (dropIndexCalc != -1)
+ {
+ dropEquip = PackManager.Instance.GetItemByIndex(PackType.DropItem, dropIndexCalc);
+ }
+
for (int i = 0; i < EquipModel.TotleEquip; i++)
{
var equip = EquipModel.Instance.GetEquip(i);
if (dropIndexCalc != -1)
{
- var dropEquip = PackManager.Instance.GetItemByIndex(PackType.DropItem, dropIndexCalc);
- if (dropEquip.config.EquipPlace - 1 == i)
+ if (dropEquip != null && dropEquip.config.EquipPlace - 1 == i)
{
equip = dropEquip; //鏇挎崲璁$畻鎬绘垬鍔�
}
@@ -288,6 +309,59 @@
#endif
}
+ //绫讳技瑁呭闇�瑕佸疄鏃舵浛鎹㈠姣旓紱鍔熻兘澶勬煡鐪嬮噸绠椾竴娆℃樉绀�
+ void RefrehMinggeAttrs()
+ {
+ minggeAttrs.Clear(); //韬笂鍛芥牸灞炴�ч噸缃�
+ ItemModel dropEquip = null;
+ int packIndex = -1;
+ if (minggeDropIndex != -1)
+ {
+ dropEquip = PackManager.Instance.GetItemByIndex(PackType.MinggeDrop, minggeDropIndex);
+ packIndex = MinggeManager.Instance.GetPackIndex(minggePresetID, dropEquip.config.EquipPlace);
+ }
+
+ var starIndex = (minggePresetID - 1) * MinggeManager.TotleEquip;
+
+ for (int i = starIndex; i < starIndex + MinggeManager.TotleEquip; i++)
+ {
+ var equip = PackManager.Instance.GetItemByIndex(PackType.Mingge, i);
+ if (minggeDropIndex != -1)
+ {
+ if (dropEquip != null && packIndex == i)
+ {
+ equip = dropEquip; //鏇挎崲璁$畻鎬绘垬鍔�
+ }
+ }
+ if (equip == null)
+ {
+ continue;
+ }
+
+ var fightIDAttrs = EquipModel.Instance.GetEquipFightAttrs(equip);
+ var fightValueAttrs = EquipModel.Instance.GetEquipFightValues(equip);
+ if (fightIDAttrs != null)
+ {
+ for (int j = 0; j < fightIDAttrs.Count; j++)
+ {
+ if (!minggeAttrs.ContainsKey(fightIDAttrs[j]))
+ {
+ minggeAttrs[fightIDAttrs[j]] = fightValueAttrs[j];
+ }
+ else
+ {
+ minggeAttrs[fightIDAttrs[j]] += fightValueAttrs[j];
+ }
+ }
+ }
+ }
+
+#if UNITY_EDITOR
+ FightPowerDebug("鎴樺姏锛氬懡鏍煎睘鎬� " + JsonMapper.ToJson(minggeAttrs));
+#endif
+ }
+
+
#endregion
//鍗曞睘鎬у叕寮忓垎鍩虹涓夌淮鍜屾垬鏂楀睘鎬�
@@ -316,7 +390,7 @@
public double GetPropertyVaule(int attrType, HeroInfo hero, int type)
{
// propertyVariables.Clear();
-
+
propertyVariables[LV_VALUE] = lvAttrs.ContainsKey(attrType) ? lvAttrs[attrType] : 0;
propertyVariables[EQUIP_VALUE] = equipAttrs.ContainsKey(attrType) ? equipAttrs[attrType] : 0;
// propertyVariables[BOOK_VALUE] = 0;
@@ -335,8 +409,8 @@
propertyVariables[FATES_PER] = HeroFatesManager.Instance.GetAttrPer(attrType) / 10000.0f;
propertyVariables[DINGJUNGE_VALUE] = 0; //榛樿涓嶉渶瑕佸姞锛岀埇濉旂壒娈婄敤锛岄厤鍚堝叕寮�
propertyVariables[DINGJUNGE_PER] = 0; //榛樿涓嶉渶瑕佸姞锛岀埇濉旂壒娈婄敤锛岄厤鍚堝叕寮�
- propertyVariables[MINGGE_VALUE] = 0;
- propertyVariables[MINGGE_PER] = 0;
+ propertyVariables[MINGGE_VALUE] = minggeAttrs.ContainsKey(attrType) ? minggeAttrs[attrType] : 0;
+ propertyVariables[MINGGE_PER] = (minggeAttrs.ContainsKey(attrType) ? minggeAttrs[attrType] : 0) / 10000.0f;
//鍏ㄤ綋鍗$墝鍔犳垚
propertyVariables[HERO_CARDPER] = allHeroAddPer;
@@ -439,6 +513,7 @@
RefreshLVAttrs();
RefreshOfficialAttrs();
RefrehEquipAttrs();
+ RefrehMinggeAttrs();
RefreshTeamAttrs();
// --- 绠楀崟姝﹀皢鍔熻兘灞炴�ф垬鍔� 鍚庣浉鍔�---
@@ -465,8 +540,9 @@
}
+ fightPower += GetMinggeSkillPower();
// #if UNITY_EDITOR
- FightPowerDebug("鎴樺姏锛氳绠楀畬姣� " + fightPower);
+ FightPowerDebug("鎴樺姏锛氳绠楀畬姣� " + fightPower);
// #endif
return fightPower;
}
@@ -583,6 +659,49 @@
return fightPower + skillPower;
}
+ //鍛芥牸鎶�鑳芥垬鍔涳細鎶�鑳芥垬鍔�*涓暟锛涘鏋滄槸鏇挎崲鐨勮鍒ゆ柇鏄惁鎶�鑳戒釜鏁板彉鍖�
+ long GetMinggeSkillPower()
+ {
+ //褰撳墠鏂规鎶�鑳戒俊鎭�
+ int _skillTypeID = 0; //鍙栧叾涓竴涓敤浜庤绠楀嵆鍙�
+ var count = MinggeManager.Instance.GetMinggeSkillCountByPresetID(minggePresetID, out _skillTypeID);
+
+ ItemModel dropEquip = null;
+ if (minggeDropIndex != -1)
+ {
+ dropEquip = PackManager.Instance.GetItemByIndex(PackType.MinggeDrop, minggeDropIndex);
+ //甯︽妧鑳界殑鍛芥牸 闇�鍒ゆ柇鏄惁鎶�鑳戒釜鏁板彉鍖�
+ if (MinggeManager.Instance.minggeSkillEquipPlaceList.Contains(dropEquip.config.EquipPlace))
+ {
+ var packIndex = MinggeManager.Instance.GetPackIndex(minggePresetID, minggeDropIndex);
+ //瑕佸姣旂殑瑁呭
+ var equip = PackManager.Instance.GetItemByIndex(PackType.Mingge, packIndex);
+ if (equip == null)
+ {
+ count++;
+ if (_skillTypeID == 0)
+ {
+ _skillTypeID = EquipModel.Instance.GetEquipSkillID(dropEquip);
+ }
+ }
+
+ }
+ }
+
+ if (_skillTypeID == 0)
+ return 0;
+
+
+ //鍔犱笂鎶�鑳芥垬鍔�
+ fightPowerVariables.Clear();
+ fightPowerVariables[PLAYER_LV] = PlayerDatas.Instance.baseData.LV;
+ fightPowerVariables[OFFICIAL_LV] = PlayerDatas.Instance.baseData.realmLevel;
+ fightPowerVariables[SKILL_POWER] = SkillConfig.Get(_skillTypeID).FightPower;
+
+ long skillPower = (long)FightPowerFormula.GetSkillsFightPower(fightPowerVariables);
+
+ return skillPower * count;
+ }
/// <summary>
@@ -594,13 +713,26 @@
{
InitFightPowerParam();
var fightPower = CalculatePower();
-
+
InitFightPowerParam(dropindex: item.gridIndex);
var tmpFightPower = CalculatePower();
return tmpFightPower - fightPower;
}
-
+ /// <summary>
+ /// 鍛芥牸瑁呭瀵规瘮
+ /// </summary>
+ /// minggePresetID 鎸囪瀵规瘮鐨勫摢濂楁柟妗堜笅鐨勫懡鏍硷紝鐜╁鍙互鐐瑰嚮鍒囨崲瀵规瘮锛岃嚜鍔ㄩ粯璁や細閬嶅巻鎵�鏈夋縺娲绘柟妗�
+ public long GetFightPowerMinggeChange(ItemModel item, int minggePresetID)
+ {
+ InitFightPowerParam(_minggePresetID: minggePresetID);
+ var fightPower = CalculatePower();
+
+ InitFightPowerParam(_minggePresetID: minggePresetID, _minggeDropIndex: item.gridIndex);
+ var tmpFightPower = CalculatePower();
+ return tmpFightPower - fightPower;
+ }
+
// 鍗曡嫳闆勬煡鐪嬫垬鍔�
// 1. 涓婇樀鑻遍泟鏄剧ず锛屽湪涓荤嚎闃靛涓嬬殑鎴樺姏
@@ -627,11 +759,13 @@
InitFightPowerParam(ispreview: ispreview);
RefreshLVAttrs();
RefreshOfficialAttrs();
+ RefrehMinggeAttrs();
RefrehEquipAttrs();
RefreshTeamAttrs();
var fightPower = CalculateTeamHeroPower(heroInfo);
-
+ fightPower += GetMinggeSkillPower();
+
//璁$畻瀹屾仮澶嶉槦浼�
if (ispreview)
team.RestoreTeam();
@@ -642,7 +776,7 @@
//鏌ョ湅闃靛鎴樺姏
public long GetTeamFightPower(int team, bool isPreview)
{
- InitFightPowerParam(team, -1, isPreview);
+ InitFightPowerParam(team, ispreview:isPreview);
return CalculatePower();
}
#endregion
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index dbb0079..91d98ff 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -92,10 +92,10 @@
[SerializeField] ButtonEx btnChatWin;
[SerializeField] TextEx txtChatChannel;
-
[SerializeField] Transform transChatBulletView;
GameObject chatBulletViewPrefab;
+ [SerializeField] UIEffectPlayer autoFightBossUIEffectPlayer;
/// <summary>
@@ -266,6 +266,8 @@
TimeMgr.Instance.OnDayEvent += OnDayEvent;
ChatManager.Instance.OnUpdateTalkEvent += OnUpdateTalkEvent;
UIManager.Instance.OnOpenWindow += OnOpenWindow;
+ AutoFightModel.Instance.OnAutoChallengeBossEvent += OnAutoChallengeBossEvent;
+ TryPlayAutoFightBoss();
Display();
DisplayFirstChargeBtn();
DisplayOSActivity();
@@ -274,9 +276,8 @@
// battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
DelayPlayMusic().Forget();
+
}
-
-
protected override void OnPreClose()
{
@@ -300,10 +301,22 @@
TimeMgr.Instance.OnDayEvent -= OnDayEvent;
ChatManager.Instance.OnUpdateTalkEvent -= OnUpdateTalkEvent;
UIManager.Instance.OnOpenWindow -= OnOpenWindow;
-
+ AutoFightModel.Instance.OnAutoChallengeBossEvent += OnAutoChallengeBossEvent;
// 鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
UIManager.Instance.CloseWindow<BattleWin>();
+ }
+
+ private void OnAutoChallengeBossEvent(bool isStart)
+ {
+ if (isStart)
+ {
+ autoFightBossUIEffectPlayer.Play();
+ }
+ else
+ {
+ autoFightBossUIEffectPlayer.Stop();
+ }
}
private void OnOpenWindow(UIBase win)
@@ -511,6 +524,15 @@
blessLVText.text = BlessLVManager.Instance.m_TreeLV.ToString();
}
+ void TryPlayAutoFightBoss()
+ {
+ autoFightBossUIEffectPlayer.Stop();
+ if (AutoFightModel.Instance.isAutoAttackSet && AutoFightModel.Instance.isAutoChallengeBoss)
+ {
+ autoFightBossUIEffectPlayer.Play();
+ }
+ }
+
void DisplayAutoFight()
{
if (AutoFightModel.Instance.isAutoAttackSet)
@@ -523,7 +545,7 @@
autoCloseImg.SetActive(true);
autoOpenEffect.Stop();
}
-
+ TryPlayAutoFightBoss();
}
diff --git a/Main/System/Main/MoneyMoveByPath.cs b/Main/System/Main/MoneyMoveByPath.cs
index bf052e7..9ab0326 100644
--- a/Main/System/Main/MoneyMoveByPath.cs
+++ b/Main/System/Main/MoneyMoveByPath.cs
@@ -31,7 +31,8 @@
/// <param name="targetPosition">鐩殑鍦板潗鏍�</param>
/// <param name="moneyType">璐у竵绫诲瀷</param>
/// <param name="num">鎺夊嚑涓揣甯�</param>
- public void PlayAnimation(int moneyType, int num)
+ /// <param name="type">1 璐у竵 2 鐗╁搧</param>
+ public void PlayAnimation(int id, int num, int type = 1)
{
int createImgCnt = 0;
if (imgMoneys.IsNullOrEmpty())
@@ -51,7 +52,10 @@
//鎸傜埗鑺傜偣
imgMoney.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one);
var moneyImg = imgMoney.GetComponent<ImageEx>();
- moneyImg.SetIconWithMoneyType(moneyType);
+ if (type == 1)
+ moneyImg.SetIconWithMoneyType(id);
+ else
+ moneyImg.SetItemSprite(id);
moneyImg.raycastTarget = false;
moneyImg.GetComponent<RectTransform>().sizeDelta = IconSize;
imgMoneys.Add(moneyImg);
diff --git a/Main/System/Mingge/MinggeCaseCell.cs b/Main/System/Mingge/MinggeCaseCell.cs
deleted file mode 100644
index 7126763..0000000
--- a/Main/System/Mingge/MinggeCaseCell.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-锘縰sing UnityEngine;
-using UnityEngine.UI;
-using System.Collections.Generic;
-
-//鍛芥牸鏂规
-public class MinggeCaseCell : MonoBehaviour
-{
- [SerializeField] Text caseNameText;
- [SerializeField] Transform selectObj;
- [SerializeField] Transform unSelectObj;
-
- public void Display(int index)
- {
-
- }
-
-}
-
diff --git a/Main/System/Mingge/MinggeEquipCell.cs b/Main/System/Mingge/MinggeEquipCell.cs
index 8b6c761..0bd8aad 100644
--- a/Main/System/Mingge/MinggeEquipCell.cs
+++ b/Main/System/Mingge/MinggeEquipCell.cs
@@ -1,8 +1,9 @@
锘縰sing UnityEngine;
using UnityEngine.UI;
-using System.Collections.Generic;
+using DG.Tweening;
+//瀹炶鐨勬樉绀�
public class MinggeEquipCell : MonoBehaviour
{
[SerializeField] UIEffectPlayer loopEffect;
@@ -12,20 +13,24 @@
[SerializeField] Image skillImage; //鍙湁甯︽剰璞℃妧鑳芥墠鏄剧ず
[SerializeField] UIEffectPlayer activeEffect;
[SerializeField] Button button;
+ [SerializeField] Transform flyStartObj;
[Header("鍛芥牸瑁呭浣�")]
- public int equipIndex;
+ public int equipIndex;
+ string lastGuid = "uninit";
public void Display()
{
- var packIndex = equipIndex - 1; //瀵瑰簲鍗︾帀鑳屽寘绱㈠紩 = (濂楃紪鍙�-1)*12+瑁呭浣�-1
+ var presetID = FuncPresetManager.Instance.GetFuncPresetID((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
+ var packIndex = MinggeManager.Instance.GetPackIndex(presetID, equipIndex);//瀵瑰簲鍗︾帀鑳屽寘绱㈠紩
var item = PackManager.Instance.GetItemByIndex(PackType.Mingge, packIndex);
if (item == null)
{
loopEffect?.Stop();
- posNameText.text = Language.Get($"MinggeGird{packIndex}");
+ posNameText.text = Language.Get($"MinggeGird{equipIndex}");
iconImage.SetActive(false);
button.RemoveAllListeners();
+ lastGuid = "";
return;
}
posNameText.text = "";
@@ -35,8 +40,17 @@
if (packIndex <= 4 && skillImage != null)
{
skillImage.SetActive(true);
- skillImage.SetSprite($"MinggeSkill_{itemID}");
- loopEffect.Play();
+ var skillID = EquipModel.Instance.GetEquipSkillID(item);
+ if (skillID != 0)
+ {
+ skillImage.SetSprite($"MinggeSkill_{skillID}");
+ loopEffect.Play();
+ }
+ else
+ {
+ skillImage.SetActive(false);
+ loopEffect.Stop();
+ }
}
else
{
@@ -49,11 +63,25 @@
{
ItemTipUtility.Show(itemID);
});
+
+ if (lastGuid == "uninit")
+ {
+ lastGuid = item.guid;
+ }
+ else if (lastGuid != item.guid)
+ {
+ lastGuid = item.guid;
+ PlayEffect();
+ }
}
-
+
public void PlayEffect()
{
- activeEffect.Play();
+ iconImage.transform.position = flyStartObj.position;
+ iconImage.transform.DOLocalMove(Vector3.zero, 0.2f).SetEase(Ease.InQuad).OnComplete(() =>
+ {
+ activeEffect.Play();
+ });
}
}
diff --git a/Main/System/Mingge/MinggeEquipChangeCell.cs b/Main/System/Mingge/MinggeEquipChangeCell.cs
new file mode 100644
index 0000000..7875af7
--- /dev/null
+++ b/Main/System/Mingge/MinggeEquipChangeCell.cs
@@ -0,0 +1,333 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+using System.Collections.Generic;
+using System;
+
+
+public class MinggeEquipChangeCell : MonoBehaviour
+{
+
+ [SerializeField] MinggeItemCell itemCell;
+ [SerializeField] Text itemName;
+ [SerializeField] OutlineEx itemNameOutline;
+ [SerializeField] GameObject presetGO;
+ [SerializeField] Text presetName;
+ [SerializeField] Image nameBG;
+ [SerializeField] Image bgFlower; //鑳屾櫙鑺辩汗鍙樿壊
+ [SerializeField] Text fightPowerNum;
+ [SerializeField] List<Text> fightAttrNames;
+ [SerializeField] List<Text> fightAttrValues;
+ [SerializeField] List<Image> fightAttrStates;
+ [SerializeField] Text skillDesc;
+ [SerializeField] GameObject decomposeObject;
+ [SerializeField] Toggle decomposeCheck;
+ [SerializeField] Button decomposeButton;
+ [SerializeField] Button exchangeButton;
+ [SerializeField] Button putonButton;
+
+ [SerializeField] UIEffectPlayer uieffect;
+
+ int cmpResult = 0; // 瑁呭瀵规瘮缁撴灉 0鐩稿悓 1鏇村己 2鏇村急
+ bool isToggle = true;
+ int selectMinggePresetID = 0;
+
+ void Start()
+ {
+ if (putonButton == null)
+ {
+ return;
+ }
+ putonButton.AddListener(() =>
+ {
+ MinggeManager.Instance.SendChangeMingge(selectMinggePresetID, MinggeManager.Instance.selectFloorEquip.gridIndex, decomposeCheck.isOn);
+ });
+
+ exchangeButton.AddListener(ExchangeEquip);
+ decomposeButton.AddListener(DecomposeEquip);
+
+ decomposeCheck.onValueChanged.RemoveAllListeners();
+ decomposeCheck.onValueChanged.AddListener((bool isOn) =>
+ {
+ isToggle = !isToggle;
+ });
+
+ }
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="equip">鏈欢鍛芥牸鐗╁搧鏁版嵁</param>
+ /// <param name="isNewEquip">鏄惁鏂拌澶囷紙鍗冲懡鏍兼帀钀借儗鍖呴噷鐨勮澶囷級</param>
+ /// <param name="oldEquip">姣斿鐨勮澶�</param>
+ /// <param name="selectPresetID">閫変腑鐨勬柟妗堝姣�</param>
+ public void Display(ItemModel equip, bool isNewEquip, ItemModel oldEquip, int selectPresetID)
+ {
+ selectMinggePresetID = selectPresetID;
+ if (oldEquip == null)
+ cmpResult = 1;
+
+ itemCell.Display(equip.guid);
+ string qualityName = Language.Get("L1039", MGGuayuQualityConfig.Get(equip.config.ItemColor).ColorName);
+ itemName.text = UIHelper.AppendColor(equip.config.ItemColor, qualityName + equip.config.ItemName, true, 2);
+ itemNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(equip.config.ItemColor);
+ nameBG.SetSprite("MinggeNameBG" + equip.config.ItemColor);
+ bgFlower.color = UIHelper.GetUIColor(equip.config.ItemColor + 1);
+
+ var activePresetCnt = FuncPresetManager.Instance.GetUnlockCnt((int)FuncPresetType.Mingge);
+ if (!isNewEquip)
+ {
+ presetGO.SetActive(activePresetCnt > 1);
+ presetName.text = FuncPresetManager.Instance.GetFuncPreset((int)FuncPresetType.Mingge, MinggeManager.Instance.equipShowPresetID).PresetName;
+ }
+ else
+ {
+ if (oldEquip == null)
+ {
+ presetGO.SetActive(activePresetCnt > 1);
+ presetName.text = FuncPresetManager.Instance.GetFuncPreset((int)FuncPresetType.Mingge, MinggeManager.Instance.equipShowPresetID).PresetName;
+ }
+ else
+ {
+ presetGO.SetActive(false);
+ }
+ decomposeCheck.isOn = isToggle;
+
+ if (oldEquip == null)
+ {
+ decomposeObject.SetActive(false);
+ decomposeButton.SetActive(false);
+ exchangeButton.SetActive(false);
+ putonButton.SetActive(true);
+ }
+ else
+ {
+ decomposeObject.SetActive(true);
+ decomposeButton.SetActive(true);
+ exchangeButton.SetActive(true);
+ putonButton.SetActive(false);
+ }
+
+
+ long showFightPower = FightPowerManager.Instance.GetFightPowerMinggeChange(MinggeManager.Instance.selectFloorEquip, selectPresetID);
+
+ if (showFightPower < 0)
+ {
+ fightPowerNum.text = UIHelper.AppendColor(TextColType.Red, $"-{UIHelper.ReplaceLargeNum(Math.Abs(showFightPower))}", false);
+ cmpResult = 2;
+ }
+ else
+ {
+ cmpResult = showFightPower > 0 ? 1 : 0;
+ fightPowerNum.text = UIHelper.AppendColor(TextColType.Green, $"+{UIHelper.ReplaceLargeNum(showFightPower)}", false);
+
+ }
+ }
+
+ var fightAttrs = EquipModel.Instance.GetEquipFightAttrs(equip);
+ var fightValues = EquipModel.Instance.GetEquipFightValues(equip);
+
+
+ for (var i = 0; i < fightAttrNames.Count; i++)
+ {
+ if (i >= fightAttrs.Count)
+ {
+ //鏄剧ず閿佷綇
+ fightAttrNames[i].text = Language.Get("Mingge27", MinggeManager.Instance.unlockAttrLVList[i - 1] - 1);
+ fightAttrValues[i].SetActive(false);
+ }
+ else
+ {
+ fightAttrNames[i].text = PlayerPropertyConfig.Get(fightAttrs[i]).Name;
+ fightAttrValues[i].SetActive(true);
+ fightAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(fightAttrs[i], fightValues[i]);
+ }
+ }
+
+ ShowAttrState(isNewEquip);
+ RefreshEffect(equip);
+
+ var skillID = EquipModel.Instance.GetEquipSkillID(equip);
+ if (skillID == 0)
+ {
+ skillDesc.text = "";
+ }
+ else
+ {
+ var dict = MinggeManager.Instance.GetMinggeSkillTypeIDDict();
+ //濡傛灉鏄棫瑁呭 鏄剧ず褰撳墠鏁伴噺锛涙柊瑁呭涓嶅悓鎶�鑳芥暟閲�+1锛屽悓鎶�鑳戒笉鍙�
+ var hasCnt = dict.ContainsKey(skillID) ? dict[skillID].Count : 0;
+ var oldSkillID = isNewEquip && oldEquip != null ? EquipModel.Instance.GetEquipSkillID(oldEquip) : 0;
+ var showCnt = isNewEquip ? (oldSkillID == skillID ? hasCnt : hasCnt + 1) : hasCnt;
+ skillDesc.text = SkillConfig.Get(skillID).Description + " " + Language.Get("HeroFates11", showCnt, MinggeManager.Instance.maxSuiteSkillCount);
+ }
+ }
+
+
+ void RefreshEffect(ItemModel equip)
+ {
+ int effectID = EquipModel.Instance.equipUIEffects[Math.Min(equip.config.ItemColor + 1, EquipModel.Instance.equipUIEffects.Length) - 1];
+ if (effectID == 0)
+ {
+ uieffect.Stop();
+ }
+ else
+ {
+ uieffect.Stop();
+ uieffect.effectId = effectID;
+ uieffect.Play();
+ }
+
+ }
+
+
+ //鏇挎崲瑁呭
+ void ExchangeEquip()
+ {
+ //绌挎洿寮辫澶� 瑕佹彁绀�
+ if (cmpResult == 2 && decomposeCheck.isOn)
+ {
+ ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
+ Language.Get("Mingge28"), (bool ok) =>
+ {
+ if (ok)
+ {
+ MinggeManager.Instance.SendChangeMingge(selectMinggePresetID, MinggeManager.Instance.selectFloorEquip.gridIndex, decomposeCheck.isOn);
+ }
+
+ });
+ }
+ else
+ {
+ MinggeManager.Instance.SendChangeMingge(selectMinggePresetID, MinggeManager.Instance.selectFloorEquip.gridIndex, decomposeCheck.isOn);
+ }
+
+ }
+
+ //鍒嗚В瑁呭
+ void DecomposeEquip()
+ {
+ //鍒嗚В鏇村己瑁呭瑕佹彁绀�
+ if (cmpResult == 1)
+ {
+ ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
+ Language.Get("Mingge29"), (bool ok) =>
+ {
+ if (ok)
+ {
+ MinggeManager.Instance.SendDecompose(new byte[] { (byte)MinggeManager.Instance.selectFloorEquip.gridIndex });
+ }
+
+ });
+ }
+ else
+ {
+ MinggeManager.Instance.SendDecompose(new byte[] { (byte)MinggeManager.Instance.selectFloorEquip.gridIndex });
+ }
+ }
+
+ void ShowAttrState(bool isNewEquip)
+ {
+ ItemModel oldEquip = null;
+
+ if (isNewEquip)
+ {
+ //鎵炬槸鍚︽湁瀵规瘮瑁呭
+ oldEquip = PackManager.Instance.GetItemByIndex(PackType.Mingge, MinggeManager.Instance.GetPackIndex(selectMinggePresetID,
+ MinggeManager.Instance.selectFloorEquip.config.EquipPlace));
+ }
+
+ if (oldEquip == null)
+ {
+ //鍗曡澶� 鍜� 鏃ц澶囦細璧拌繖涓�昏緫
+ for (int i = 0; i < fightAttrStates.Count; i++)
+ {
+ if (!isNewEquip)
+ {
+ //瀵规瘮鐨勬椂鍊欐棫瑁呭UI
+ oldEquip = PackManager.Instance.GetItemByIndex(PackType.Mingge, MinggeManager.Instance.GetPackIndex(selectMinggePresetID,
+ MinggeManager.Instance.selectFloorEquip.config.EquipPlace));
+ var list2 = EquipModel.Instance.GetEquipFightValues(oldEquip);
+
+ if (list2 == null || i >= list2.Count)
+ {
+ fightAttrStates[i].SetActive(true);
+ fightAttrStates[i].SetOrgSprite("heroreborn_img_108", "Common");
+ fightAttrStates[i].SetNativeSize();
+ fightAttrStates[i].transform.localScale = new Vector3(0.7f, 0.7f, 0.7f);
+ }
+ else
+ {
+ fightAttrStates[i].SetActive(false);
+ }
+ continue;
+ }
+
+
+ var list = EquipModel.Instance.GetEquipFightValues(MinggeManager.Instance.selectFloorEquip);
+ if (list == null || i >= list.Count)
+ {
+ fightAttrStates[i].SetActive(true);
+ fightAttrStates[i].SetOrgSprite("heroreborn_img_108", "Common");
+ fightAttrStates[i].SetNativeSize();
+ fightAttrStates[i].transform.localScale = new Vector3(0.7f, 0.7f, 0.7f);
+ }
+ else
+ {
+ fightAttrStates[i].SetActive(true);
+ fightAttrStates[i].SetSprite("GiftState2");
+ fightAttrStates[i].SetNativeSize();
+
+ fightAttrStates[i].transform.localScale = Vector3.one;
+ }
+ }
+
+ return;
+ }
+
+
+
+ for (int i = 0; i < fightAttrStates.Count; i++)
+ {
+ //鎴樻枟灞炴�� 鎺掑簭鍜屼釜鏁颁笉涓�鑷� 鏍规嵁ID杩涜瀵规瘮
+ var list = EquipModel.Instance.GetEquipFightValues(MinggeManager.Instance.selectFloorEquip);
+ var list2 = EquipModel.Instance.GetEquipFightValues(oldEquip);
+
+ var idList = EquipModel.Instance.GetEquipFightAttrs(MinggeManager.Instance.selectFloorEquip);
+ var idList2 = EquipModel.Instance.GetEquipFightAttrs(oldEquip);
+
+ if (list == null || i >= list.Count)
+ {
+ fightAttrStates[i].SetActive(true);
+ fightAttrStates[i].SetOrgSprite("heroreborn_img_108", "Common");
+ fightAttrStates[i].SetNativeSize();
+ fightAttrStates[i].transform.localScale = new Vector3(0.7f, 0.7f, 0.7f);
+ }
+ else
+ {
+ fightAttrStates[i].transform.localScale = Vector3.one;
+ fightAttrStates[i].SetActive(true);
+ var value = !list2.IsNullOrEmpty() && i < list2.Count ? list2[i] : 0;
+ var id = !idList2.IsNullOrEmpty() && i < idList2.Count ? idList2[i] : 0;
+ if (idList[i] == id && list[i] == value)
+ {
+ fightAttrStates[i].SetActive(false);
+ }
+ else
+ {
+ fightAttrStates[i].SetActive(true);
+ if (idList[i] != id)
+ {
+ fightAttrStates[i].SetSprite("GiftState1");
+ }
+ else
+ {
+ fightAttrStates[i].SetSprite(list[i] > value ? "EquipUpIcon" : "EquipDownIcon");
+ }
+ fightAttrStates[i].SetNativeSize();
+
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/Main/System/Mingge/MinggeCaseCell.cs.meta b/Main/System/Mingge/MinggeEquipChangeCell.cs.meta
similarity index 83%
copy from Main/System/Mingge/MinggeCaseCell.cs.meta
copy to Main/System/Mingge/MinggeEquipChangeCell.cs.meta
index 7a776d9..434d0e1 100644
--- a/Main/System/Mingge/MinggeCaseCell.cs.meta
+++ b/Main/System/Mingge/MinggeEquipChangeCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d82ac7d0e4493ee4fb4fe720c72564fb
+guid: 12d21be6f160f244d9d97557fda832a8
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/Mingge/MinggeEquipWin.cs b/Main/System/Mingge/MinggeEquipWin.cs
new file mode 100644
index 0000000..329fd98
--- /dev/null
+++ b/Main/System/Mingge/MinggeEquipWin.cs
@@ -0,0 +1,96 @@
+锘縰sing System;
+using UnityEngine;
+using UnityEngine.UI;
+public class MinggeEquipWin : UIBase
+{
+ [SerializeField] MinggeEquipChangeCell oldEquipCell;
+ [SerializeField] MinggeEquipChangeCell newEquipCell;
+ [SerializeField] Transform presetObj;
+ [SerializeField] GroupButtonEx[] presetBtns;
+
+ int selectPresetID = 0;
+ int lastDropIndex = -1;
+ protected override void InitComponent()
+ {
+ for (int i = 0; i < presetBtns.Length; i++)
+ {
+ presetBtns[i].AddListener(() =>
+ {
+ selectPresetID = i;
+ Display();
+ });
+ }
+ }
+
+ protected override void OnPreOpen()
+ {
+ selectPresetID = MinggeManager.Instance.equipShowPresetID;
+ lastDropIndex = MinggeManager.Instance.selectFloorEquip.gridIndex;
+ PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
+ Display();
+
+ }
+
+ protected override void OnPreClose()
+ {
+ PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
+ }
+
+ void RefreshItemEvent(PackType packType, int index, int itemID)
+ {
+ if (packType == PackType.Mingge)
+ {
+ MinggeManager.Instance.selectFloorEquip = PackManager.Instance.GetItemByIndex(PackType.MinggeDrop, lastDropIndex);
+ Display();
+ }
+ }
+
+ void Display()
+ {
+ var cnt = FuncPresetManager.Instance.GetUnlockCnt((int)FuncPresetType.Mingge);
+ if (cnt == 1)
+ {
+ cnt = 0;
+ }
+ if (cnt > 0)
+ {
+ presetObj.SetActive(true);
+ for (int i = 0; i < presetBtns.Length; i++)
+ {
+ presetBtns[i].SetActive(i < cnt);
+ }
+
+ }
+ else
+ {
+ presetObj.SetActive(false);
+ }
+
+ var packIndex = MinggeManager.Instance.GetPackIndex(selectPresetID, MinggeManager.Instance.selectFloorEquip.config.EquipPlace);
+ var oldEquip = PackManager.Instance.GetItemByIndex(PackType.Mingge, packIndex);
+ if (oldEquip == null)
+ {
+ oldEquipCell.SetActive(false);
+ newEquipCell.SetActive(true);
+ newEquipCell.Display(MinggeManager.Instance.selectFloorEquip, true, oldEquip, selectPresetID);
+ }
+ else
+ {
+ if (oldEquip.guid == MinggeManager.Instance.selectFloorEquip.guid)
+ {
+ Debug.LogError("Display: 鏂版棫鍛芥牸鐩稿悓GUID 瀹㈡埛绔富鍔ㄥ垹闄よ儗鍖呯墿鍝佺储寮�=" + MinggeManager.Instance.selectFloorEquip.gridIndex);
+ PackManager.Instance.GetSinglePack(PackType.MinggeDrop).RemoveItem(MinggeManager.Instance.selectFloorEquip.gridIndex);
+ CloseWindow();
+ return;
+ }
+ oldEquipCell.SetActive(true);
+ newEquipCell.SetActive(true);
+ oldEquipCell.Display(oldEquip, false, null, selectPresetID);
+ newEquipCell.Display(MinggeManager.Instance.selectFloorEquip, true, oldEquip, selectPresetID);
+
+ }
+
+
+ }
+}
+
diff --git a/Main/System/Mingge/MinggeCaseCell.cs.meta b/Main/System/Mingge/MinggeEquipWin.cs.meta
similarity index 83%
copy from Main/System/Mingge/MinggeCaseCell.cs.meta
copy to Main/System/Mingge/MinggeEquipWin.cs.meta
index 7a776d9..6c68b4b 100644
--- a/Main/System/Mingge/MinggeCaseCell.cs.meta
+++ b/Main/System/Mingge/MinggeEquipWin.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d82ac7d0e4493ee4fb4fe720c72564fb
+guid: 70c6870ff9894174fabb4d0d87940a3f
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/Mingge/MinggeItemCell.cs b/Main/System/Mingge/MinggeItemCell.cs
index 950e6d0..c57fb12 100644
--- a/Main/System/Mingge/MinggeItemCell.cs
+++ b/Main/System/Mingge/MinggeItemCell.cs
@@ -1,16 +1,62 @@
锘縰sing UnityEngine;
using UnityEngine.UI;
-using System.Collections.Generic;
+//鐗╁搧鍥炬爣鏄剧ず
public class MinggeItemCell : MonoBehaviour
{
-
- public void Display(int index)
+ [SerializeField] UIEffectPlayer loopEffect; //鍩虹鍝佽川鐗规晥
+ [SerializeField] Text lvText;
+ [SerializeField] Image iconImage;
+ [SerializeField] Image skillImage; //鍙湁甯︽剰璞℃妧鑳芥墠鏄剧ず
+ [SerializeField] Image bgIcon;
+ public void Display(string guid)
{
-
+ var item = PackManager.Instance.GetItemByGuid(guid);
+ if (item == null)
+ {
+ return;
+ }
+ int itemID = item.config.ID;
+ iconImage.SetItemSprite(itemID);
+
+ var skillID = EquipModel.Instance.GetEquipSkillID(item);
+ if (skillID != 0)
+ {
+ skillImage.SetActive(true);
+ skillImage.SetSprite($"MinggeSkill_{skillID}");
+ }
+ else
+ {
+ skillImage.SetActive(false);
+ }
+ var lv = EquipModel.Instance.GetEquipLV(item);
+
+ lvText.text = lv == 0 ? "" : Language.Get("L1113", lv);
+ DisPlayEffect(item.config);
+
+ bgIcon.SetSprite("equipQuality" + (item.config.ItemColor + 1));
+
}
+
+
+ void DisPlayEffect(ItemConfig config)
+ {
+
+ if (config.ItemColor >= 6)
+ {
+ loopEffect.effectId = 1026;
+
+ loopEffect.PlayByArrIndex(config.ItemColor - 6, true, true);
+ }
+ else
+ {
+ loopEffect.Stop();
+ }
+ //鐗规晥鍙傝�冨昂瀵�106*150 鍚屾瘮渚嬬缉鏀�
+ loopEffect.transform.localScale = new Vector3(1, 0.76f, 1);
+ }
}
diff --git a/Main/System/Mingge/MinggeManager.cs b/Main/System/Mingge/MinggeManager.cs
index 97f7a4e..5fb091b 100644
--- a/Main/System/Mingge/MinggeManager.cs
+++ b/Main/System/Mingge/MinggeManager.cs
@@ -6,37 +6,295 @@
public class MinggeManager : GameSystemManager<MinggeManager>
{
+ public int m_GanwuLV; //鎰熸偀绛夌骇锛屼粠1寮�濮�
+ public int m_GanwuExp; //褰撳墠鎰熸偀绛夌骇缁忛獙锛屾瘡绾т粠0寮�濮�
+ public int m_Lingying; //褰撳墠鐏靛簲鍊�
+ public event Action OnMinggeInfoUpdate;
+
+ public int equipShowPresetID; // 鏄剧ず瑁呭鏃讹紝褰撳墠鐨勫瓙鏂规ID
+ public ItemModel selectFloorEquip;
+
+ bool waitTYOPPack;
+ public event Action<int> OnOPCallbackEvent;
+
+ public Dictionary<int, long> minggeAttrDict = new Dictionary<int, long>();
+
+
+ //鑷姩璁剧疆
+ public int autoCostCnt; //鑷姩鎺ㄦ紨娑堣�椾釜鏁�
+ public bool isOpenAuto;
+
+
+
+ //閰嶇疆
+ public const int TotleEquip = 12; //涓�濂楄澶囩殑鎬绘暟
+ public int[] unlockAttrLVList; //瑙i攣灞炴�ф墍闇�鍛芥牸鐗╁搧绛夌骇鍒楄〃
public int tyItemID; //鎺ㄦ紨鐗╁搧ID
public int qlItemID; //绁堢伒鐗╁搧ID
public int[] minggeItemTypeList; //鍙惡甯︽剰璞$殑鍗︾帀绫诲瀷鍒楄〃
+ public List<int> minggeSkillEquipPlaceList = new List<int>(); //鍙惡甯︽剰璞$殑鍗︾帀绫诲瀷鐨勮澶囦綅缃�
+ public int maxSuiteSkillCount;
public int[] minggeSkillTypeIDList; //鎰忓悜鏁堟灉鎶�鑳絋ypeID鍒楄〃
+ public int deitemID; //鍗︾帀鍒嗚В鐨勭墿鍝両D
public override void Init()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
+ PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
+ DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent += OnEquipResult;
ParseConfig();
}
public override void Release()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
+ PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
+ DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent -= OnEquipResult;
}
void ParseConfig()
{
var config = FuncConfigConfig.Get("MinggeCfg");
+ unlockAttrLVList = JsonMapper.ToObject<int[]>(config.Numerical1);
tyItemID = int.Parse(config.Numerical2);
qlItemID = int.Parse(config.Numerical3);
config = FuncConfigConfig.Get("MinggeTY");
+ deitemID = ConfigParse.GetMultipleStr<int>(config.Numerical1)[0];
minggeItemTypeList = JsonMapper.ToObject<int[]>(config.Numerical4);
minggeSkillTypeIDList = JsonMapper.ToObject<int[]>(config.Numerical5);
+
+ for (int i = 0; i < minggeItemTypeList.Length; i++)
+ {
+ minggeSkillEquipPlaceList.Add(MGGuayuTypeConfig.Get(minggeItemTypeList[i]).EquipPlace);
+ }
+ maxSuiteSkillCount = minggeSkillEquipPlaceList.Count;
}
private void OnBeforePlayerDataInitialize()
{
+ m_GanwuLV = 1;
+ m_GanwuExp = 0;
+ m_Lingying = 0;
+ waitTYOPPack = false;
+ }
+ private void OnEquipResult(HA814_tagMCMakeItemAnswer info)
+ {
+ if (info.MakeType != (int)MakeType.MinggeTY)
+ return;
+
+ OnOPCallbackEvent?.Invoke(0);
+
}
+ void RefreshItemEvent(PackType type, int index, int itemID)
+ {
+ if (type == PackType.MinggeDrop)
+ {
+ waitTYOPPack = false;
+ CalcEquip();
+ }
+ }
+
+ //澶勭悊鏈鐞嗙殑鍛芥牸
+ public bool CalcEquip()
+ {
+ var items = PackManager.Instance.GetItems(PackType.MinggeDrop);
+ if (items.IsNullOrEmpty())
+ {
+ if (UIManager.Instance.IsOpened<MinggeEquipWin>())
+ {
+ UIManager.Instance.CloseWindow<MinggeEquipWin>();
+ }
+ return false;
+ }
+
+ foreach (var item in items)
+ {
+ if (OpenMinggeEquipWin(item))
+ {
+ //闇�瑕佺帺瀹跺鐞嗙殑鏃跺�欓��鍑�
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public void UpdateMinggeInfo(HB132_tagSCMinggeInfo netPack)
+ {
+ m_GanwuLV = netPack.GanwuLV;
+ m_GanwuExp = (int)netPack.GanwuExp;
+ m_Lingying = (int)netPack.Lingying;
+
+ OnMinggeInfoUpdate?.Invoke();
+ }
+
+
+ //鎰忓悜鎶�鑳絀D锛氥�恎uid..銆�
+ public Dictionary<int, List<string>> GetMinggeSkillTypeIDDict()
+ {
+ var presetID = FuncPresetManager.Instance.GetFuncPresetID((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
+ var startIndex = (presetID - 1) * TotleEquip;//瀵瑰簲鍗︾帀鑳屽寘绱㈠紩 = (濂楃紪鍙�-1)*12+瑁呭浣�-1
+
+ var dict = new Dictionary<int, List<string>>();
+ for (int i = 0; i < minggeSkillEquipPlaceList.Count; i++)
+ {
+ var equip = PackManager.Instance.GetItemByIndex(PackType.Mingge, startIndex + minggeSkillEquipPlaceList[i] - 1);
+ var skillID = EquipModel.Instance.GetEquipSkillID(equip);
+ if (skillID == 0) continue;
+ if (dict.ContainsKey(skillID))
+ {
+ dict[skillID].Add(equip.guid);
+ }
+ else
+ {
+ dict[skillID] = new List<string>() { equip.guid };
+ }
+ }
+ return dict;
+ }
+
+ //鑾峰緱鍛芥牸鎶�鑳戒釜鏁帮紝杩斿洖涓暟鍜屾妧鑳絀D锛屼笉绠′粈涔堟妧鑳芥垬鍔涢兘鏄竴鏍风殑
+ public int GetMinggeSkillCountByPresetID(int presetID, out int _skillTypeID)
+ {
+ _skillTypeID = 0;
+ var startIndex = (presetID - 1) * TotleEquip;//瀵瑰簲鍗︾帀鑳屽寘绱㈠紩 = (濂楃紪鍙�-1)*12+瑁呭浣�-1
+
+ int count = 0;
+ for (int i = 0; i < minggeSkillEquipPlaceList.Count; i++)
+ {
+ var equip = PackManager.Instance.GetItemByIndex(PackType.Mingge, startIndex + minggeSkillEquipPlaceList[i] - 1);
+ var skillID = EquipModel.Instance.GetEquipSkillID(equip);
+ if (skillID == 0)
+ continue;
+
+ count++;
+ _skillTypeID = skillID;
+ }
+ return count;
+ }
+
+ public bool OpenMinggeEquipWin(ItemModel equip)
+ {
+ if (equip == null)
+ {
+ return false;
+ }
+
+ if (!DTC0403_tagPlayerLoginLoadOK.finishedLogin)
+ {
+ return false;
+ }
+
+ if (UIManager.Instance.IsOpened<MinggeEquipWin>())
+ {
+ return false;
+ }
+ //鑷姩澶勭悊锛� 鍒ゆ柇鍒嗚В 鍜屾垬鍔涢珮浣� 鍜屽喅瀹氭槸鍝釜鏂规涓嬬殑瑁呭瀵规瘮
+
+
+ //闈炶嚜鍔ㄦ儏鍐典笅锛岄粯璁ゅ綋鍓嶆柟妗�
+ equipShowPresetID = FuncPresetManager.Instance.GetFuncPresetID((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
+ selectFloorEquip = equip;
+ if (UIManager.Instance.IsOpened<MinggeWin>())
+ {
+ UIManager.Instance.OpenWindow<MinggeEquipWin>();
+ }
+ return true;
+
+ }
+
+ public int GetPackIndex(int presetID, int equipPlace)
+ {
+ return (presetID - 1) * TotleEquip + equipPlace - 1;//瀵瑰簲鍗︾帀鑳屽寘绱㈠紩 = (濂楃紪鍙�-1)*12+瑁呭浣�-1
+ }
+
+ public void SendTY(int count)
+ {
+
+ if (CalcEquip())
+ {
+ return;
+ }
+ if (waitTYOPPack)
+ {
+ return;
+ }
+
+ if (!ItemLogicUtility.CheckItemCount(PackType.Item, tyItemID, count, 2))
+ {
+ return;
+ }
+ waitTYOPPack = true;
+
+ var pack = new CB250_tagCSMinggeTuiyan();
+ pack.Count = (byte)count;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ public void SendChangeMingge(int selectMinggePresetID, int dropIndex, bool autodec)
+ {
+ var pack = new CB252_tagCSMinggeEquip();
+ pack.MGNum = (byte)selectMinggePresetID;
+ pack.Index = (byte)dropIndex;
+ pack.AutoDec = (byte)(autodec ? 1 : 0);
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ public void SendDecompose(byte[] itemIndexList)
+ {
+ var pack = new CB251_tagCSMinggeDecompose();
+ pack.IndexList = itemIndexList;
+ pack.Count = (byte)itemIndexList.Length;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+
+ public void RefrehMinggeAttrs()
+ {
+ minggeAttrDict.Clear(); //韬笂鍛芥牸灞炴�ч噸缃�
+
+ var minggePresetID = FuncPresetManager.Instance.GetFuncPresetID((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
+ var starIndex = (minggePresetID - 1) * TotleEquip;
+
+ for (int i = starIndex; i < starIndex + TotleEquip; i++)
+ {
+ var equip = PackManager.Instance.GetItemByIndex(PackType.Mingge, i);
+ if (equip == null)
+ {
+ continue;
+ }
+
+ var fightIDAttrs = EquipModel.Instance.GetEquipFightAttrs(equip);
+ var fightValueAttrs = EquipModel.Instance.GetEquipFightValues(equip);
+ if (fightIDAttrs != null)
+ {
+ for (int j = 0; j < fightIDAttrs.Count; j++)
+ {
+ if (!minggeAttrDict.ContainsKey(fightIDAttrs[j]))
+ {
+ minggeAttrDict[fightIDAttrs[j]] = fightValueAttrs[j];
+ }
+ else
+ {
+ minggeAttrDict[fightIDAttrs[j]] += fightValueAttrs[j];
+ }
+ }
+ }
+ }
+
+ }
+
+
+
+
+ #region 绾㈢偣
+ Redpoint tmpRP = new Redpoint(MainRedDot.MainAffairsRedpoint, MainRedDot.RedPoint_Mingge);
+ Redpoint redpointMG = new Redpoint(MainRedDot.RedPoint_Mingge, MainRedDot.RedPoint_Mingge * 10 + 1);
+ Redpoint redpointPray = new Redpoint(MainRedDot.RedPoint_Mingge, MainRedDot.RedPoint_Mingge * 10 + 2);
+
+ #endregion
}
\ No newline at end of file
diff --git a/Main/System/Mingge/MinggeWin.cs b/Main/System/Mingge/MinggeWin.cs
index e797886..b1fff9c 100644
--- a/Main/System/Mingge/MinggeWin.cs
+++ b/Main/System/Mingge/MinggeWin.cs
@@ -1,33 +1,246 @@
锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
using UnityEngine;
using UnityEngine.UI;
public class MinggeWin : UIBase
{
[SerializeField] Button seeAttrBtn;
[SerializeField] MinggeEquipCell[] equipCells;
- [SerializeField] MinggeCaseCell[] caseCells;
+ [SerializeField] UIEffectPlayer tyEffect; //鎺ㄦ紨鐗规晥
+ [SerializeField] Image dropIcon;
+ [SerializeField] Image dropSkillIcon;
+ [SerializeField] MoneyMoveByPath moneyMoveByPathCell; //鎺夎惤鐗╅噾閽�
+ [SerializeField] Transform caseesObj;
[SerializeField] Text rankLevelText;
-
+ [SerializeField] Text processExpText;
+ [SerializeField] Image processImg;
+ [SerializeField] UIEffectPlayer processEffect;
+ [SerializeField] UIEffectPlayer lvUpEffect;
+ [SerializeField] Text[] suiteNameTexts; //甯︽寜閽�
+ [SerializeField] Text[] baseAttrTexts;
+ [SerializeField] Text[] fightAttrTexts;
+
+ [SerializeField] Button autoBtn;
+ [SerializeField] UIEffectPlayer autoEffect; //寮�
+ [SerializeField] Image autoImg; //鍏�
+ [SerializeField] Button prayBtn;
+ [SerializeField] Button tyBtn;
+ [SerializeField] Image tyItemImg;
+ [SerializeField] Text tyItemCntText;
+
+
+ int lastLV = 0;
+ int lastExp = 0;
protected override void InitComponent()
{
-
+ var presetObj = UIUtility.CreateWidget("FuncPresetChooseCells", "FuncPresetChooseCells");
+ presetObj.transform.SetParentEx(caseesObj, Vector3.zero, Quaternion.identity, Vector3.one);
+ seeAttrBtn.AddListener(() =>
+ {
+ AttributeManager.Instance.OpenTotalAttributeWin(MinggeManager.Instance.minggeAttrDict);
+ });
+ tyBtn.AddListener(SendTuiyan);
+ for (int i = 0; i < suiteNameTexts.Length; i++)
+ {
+ int index = i;
+ suiteNameTexts[i].GetComponent<Button>().AddListener(() =>
+ {
+ ClickSuite(index);
+ });
+ }
}
protected override void OnPreOpen()
{
-
+ MinggeManager.Instance.RefrehMinggeAttrs();
+ PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
+ PackManager.Instance.DeleteItemEvent += DeleteDropItem;
+ MinggeManager.Instance.OnMinggeInfoUpdate += OnMinggeInfoUpdate;
+ UIManager.Instance.OnCloseWindow += OnCloseWindow;
+ lastLV = MinggeManager.Instance.m_GanwuLV;
+ lastExp = MinggeManager.Instance.m_GanwuExp;
Display();
+
}
protected override void OnPreClose()
{
+ PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
+ PackManager.Instance.DeleteItemEvent -= DeleteDropItem;
+ MinggeManager.Instance.OnMinggeInfoUpdate -= OnMinggeInfoUpdate;
+ UIManager.Instance.OnCloseWindow -= OnCloseWindow;
+ }
+ void OnCloseWindow(UIBase win)
+ {
+ if (win is MinggeEquipWin)
+ {
+ if (MinggeManager.Instance.m_GanwuExp == 0)
+ {
+ lvUpEffect.Play();
+ }
+ processEffect.Play();
+ }
}
void Display()
{
+ DisplayMGGanwu();
+ DisplaySlotEquip();
+ DisplayDrop();
+
+ DisplayCostItem();
+ moneyMoveByPathCell.SetActive(false);
+ }
+ void RefreshItemEvent(PackType type, int index, int itemID)
+ {
+ if (type == PackType.Mingge)
+ {
+ DisplaySlotEquip();
+ }
+ else if (type == PackType.MinggeDrop)
+ {
+ DisplayDrop();
+ }
+ else if (type == PackType.Item)
+ {
+ if (itemID == MinggeManager.Instance.tyItemID)
+ {
+ DisplayCostItem();
+ }
+ }
+ }
+
+ void DisplayCostItem()
+ {
+ tyItemImg.SetItemSprite(MinggeManager.Instance.tyItemID);
+ tyItemCntText.text = UIHelper.ShowUseItem(PackType.Item, MinggeManager.Instance.tyItemID, 1);
+ }
+
+ void DisplaySlotEquip()
+ {
+ for (int i = 0; i < equipCells.Length; i++)
+ {
+ equipCells[i].Display();
+ }
+ DisplaySuite();
+ DisplayAttr();
+ }
+
+ void DisplayAttr()
+ {
+ var attrIDList = PlayerPropertyConfig.playerPropertyDict[PlayerPropertyConfig.baseType];
+ string format = "{0}" + UIHelper.AppendColor(TextColType.Green, "+{1}", false);
+ for (int i = 0; i < baseAttrTexts.Length; i++)
+ {
+ var value = MinggeManager.Instance.minggeAttrDict.ContainsKey(attrIDList[i]) ? MinggeManager.Instance.minggeAttrDict[attrIDList[i]] : 0;
+ baseAttrTexts[i].text = PlayerPropertyConfig.GetFullDescription(attrIDList[i], value, format);
+ }
+
+ List<int> attrIDList1 = new List<int>();
+ attrIDList1.AddRange(PlayerPropertyConfig.playerPropertyDict[PlayerPropertyConfig.fightType]);
+ attrIDList1.AddRange(PlayerPropertyConfig.playerPropertyDict[PlayerPropertyConfig.fightAntiType]);
+ for (int i = 0; i < fightAttrTexts.Length; i++)
+ {
+ var value = MinggeManager.Instance.minggeAttrDict.ContainsKey(attrIDList1[i]) ? MinggeManager.Instance.minggeAttrDict[attrIDList1[i]] : 0;
+ fightAttrTexts[i].text = PlayerPropertyConfig.GetFullDescription(attrIDList1[i], value, format);
+ }
+ }
+
+ void DisplayDrop()
+ {
+ //鎵惧埌绗竴浠舵樉绀�
+ var dropItems = PackManager.Instance.GetItems(PackType.MinggeDrop);
+ if (dropItems.IsNullOrEmpty())
+ {
+ dropIcon.SetActive(false);
+ // moneyMoveByPathCell.SetActive(false);
+ return;
+ }
+ dropIcon.SetActive(true);
+ dropIcon.SetOrgSprite(dropItems[0].config.IconKey, "Icon");
+ var skillID = EquipModel.Instance.GetEquipSkillID(dropItems[0]);
+ if (skillID == 0)
+ {
+ dropSkillIcon.SetActive(false);
+ }
+ else
+ {
+ dropSkillIcon.SetActive(true);
+ dropSkillIcon.SetSprite($"MinggeSkill_{skillID}");
+ }
+ }
+
+ void DeleteDropItem(PackType packType, string guid, int itemID, int index, int clearType)
+ {
+ if (packType != PackType.MinggeDrop)
+ return;
+
+ dropIcon.SetActive(false);
+ moneyMoveByPathCell.SetActive(true);
+ moneyMoveByPathCell.PlayAnimation(MinggeManager.Instance.deitemID, 8, 2);
+ }
+
+ void SendTuiyan()
+ {
+ MinggeManager.Instance.SendTY(1);
+ tyEffect.Play();
+ }
+
+
+ void OnMinggeInfoUpdate()
+ {
+ DisplayMGGanwu();
+ }
+
+ void DisplayMGGanwu()
+ {
+ var config = MGGanwuLVConfig.Get(MinggeManager.Instance.m_GanwuLV);
+ rankLevelText.text = Language.Get("Mingge26", UIHelper.ChineseNumber(MinggeManager.Instance.m_GanwuLV));
+ processExpText.text = $"{MinggeManager.Instance.m_GanwuExp}/{config.NextNeedExp}";
+ processImg.fillAmount = MinggeManager.Instance.m_GanwuExp / (float)config.NextNeedExp;
+
+ if (lastLV != MinggeManager.Instance.m_GanwuLV)
+ {
+ lastLV = MinggeManager.Instance.m_GanwuLV;
+ lvUpEffect.Play();
+ }
+
+ if (lastExp != MinggeManager.Instance.m_GanwuExp)
+ {
+ lastExp = MinggeManager.Instance.m_GanwuExp;
+ processEffect.Play();
+ }
+ }
+
+ void DisplaySuite()
+ {
+ var dict = MinggeManager.Instance.GetMinggeSkillTypeIDDict();
+ var keys = dict.Keys.ToList();
+ keys.Sort();
+ for (int i = 0; i < suiteNameTexts.Length; i++)
+ {
+ if (i >= keys.Count)
+ {
+ suiteNameTexts[i].SetActive(false);
+ continue;
+ }
+ suiteNameTexts[i].SetActive(true);
+ suiteNameTexts[i].text = Language.Get($"MinggeSkillType_{keys[i]}") + $"({dict[keys[i]].Count})";
+ }
+ }
+
+ void ClickSuite(int index)
+ {
+ var dict = MinggeManager.Instance.GetMinggeSkillTypeIDDict();
+ var keys = dict.Keys.ToList();
+ keys.Sort();
+ if (index >= keys.Count)
+ return;
+ ItemTipUtility.Show(dict[keys[index]][0]);
}
}
diff --git a/Main/System/Settlement/BoneBattleFailWin.cs b/Main/System/Settlement/BoneBattleFailWin.cs
index 6d410d6..9dabd6f 100644
--- a/Main/System/Settlement/BoneBattleFailWin.cs
+++ b/Main/System/Settlement/BoneBattleFailWin.cs
@@ -36,7 +36,7 @@
protected override void OnPreOpen()
{
- int funcId = BoneFieldManager.Instance.funcId;
+ int funcId = (int)FuncOpenEnum.BoneBattle;
txtFuncName.text = FuncOpenLVConfig.HasKey(funcId) ? FuncOpenLVConfig.Get(funcId).Name : string.Empty;
if (!FirstChargeManager.Instance.GetLocalFail())
{
diff --git a/Main/System/Settlement/BoneBattleVictoryWin.cs b/Main/System/Settlement/BoneBattleVictoryWin.cs
index 765321f..2cfb115 100644
--- a/Main/System/Settlement/BoneBattleVictoryWin.cs
+++ b/Main/System/Settlement/BoneBattleVictoryWin.cs
@@ -22,7 +22,7 @@
{
scroller.OnRefreshCell += OnRefreshCell;
CreateScroller();
- int funcId = BoneFieldManager.Instance.funcId;
+ int funcId = (int)FuncOpenEnum.BoneBattle;
txtFuncName.text = FuncOpenLVConfig.HasKey(funcId) ? FuncOpenLVConfig.Get(funcId).Name : string.Empty;
}
diff --git a/Main/System/Team/TeamManager.cs b/Main/System/Team/TeamManager.cs
index 4fc2b47..1fd3e90 100644
--- a/Main/System/Team/TeamManager.cs
+++ b/Main/System/Team/TeamManager.cs
@@ -72,16 +72,16 @@
return teamDict.ContainsKey(teamType);
}
- //閫氳繃闃靛鏂规ID鑾峰彇闃靛
- public TeamBase GetTeam(int teamType)
+ //閫氳繃闃靛鏂规ID鑾峰彇闃靛 浠�1寮�濮�
+ public TeamBase GetTeam(int presetID)
{
TeamBase team = null;
- if (!teamDict.TryGetValue(teamType, out team))
+ if (!teamDict.TryGetValue(presetID, out team))
{
- team = new TeamBase(teamType);
+ team = new TeamBase(presetID);
// team.CreateDefault(HeroManager.Instance.GetPowerfulHeroList());
- teamDict.Add(teamType, team);
+ teamDict.Add(presetID, team);
}
return team;
@@ -109,6 +109,7 @@
return FuncPresetManager.Instance.GetFuncPresetID((int)BattlePreSetType.Story, (int)FuncPresetType.Team);
}
+ // 鑾峰彇鎸囧畾鐨勬柟妗圛D
public int GetTeamID(int battleType)
{
return FuncPresetManager.Instance.GetFuncPresetID(battleType, (int)FuncPresetType.Team);
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index 22d3d9f..b0f4845 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -789,7 +789,8 @@
RuneCompound = 22,//绗﹀嵃鍚堟垚
GatherSoulCompound = 23,//鑱氶瓊鍚堟垚
GatherSoulDecompose = 24,//鑱氶瓊鍒嗚В
- EquipOP, // 25 涓荤晫闈㈣澶囧垎瑙�/鏇挎崲鍥炲 瀵瑰簲 B4 15 涓荤嚎鎺夎惤鐗╁搧鎿嶄綔 #tagCSMainDropItemOP
+ EquipOP = 25, // 25 涓荤晫闈㈣澶囧垎瑙�/鏇挎崲鍥炲 瀵瑰簲 B4 15 涓荤嚎鎺夎惤鐗╁搧鎿嶄綔 #tagCSMainDropItemOP
+ MinggeTY = 26,
}
@@ -817,6 +818,7 @@
Official = 3,//鍐呮斂
BeautyMM = 7,//绾㈤
GoldRush = 8, //娣橀噾
+ BoneBattle = 9, //鐧介鐩堥噹
Realm = 10, //澧冪晫 瀹樿亴
Guild = 11,// 鍏細
BlessLV = 12, //绁濈绛夌骇
diff --git a/Main/Utility/OperationLogCollect.cs b/Main/Utility/OperationLogCollect.cs
index 58acbe5..7b83620 100644
--- a/Main/Utility/OperationLogCollect.cs
+++ b/Main/Utility/OperationLogCollect.cs
@@ -129,7 +129,7 @@
var contentPrefix = StringUtility.Concat("IMEI:", DeviceUtility.GetDeviceUniquenessIdentify(), ";");
contentPrefix = StringUtility.Concat(contentPrefix, "Version:", StringUtility.Concat(VersionConfig.Get().version, "_",
- VersionConfig.Get().buildIndex.ToString()), Language.Id, ";");
+ VersionConfig.Get().buildIndex.ToString(), "-", LoginManager.Instance.hotVersion), Language.Id, ";");
contentPrefix = StringUtility.Concat(contentPrefix, "Brand:", DeviceUtility.GetDeviceName(), ";");
contentPrefix = StringUtility.Concat(contentPrefix, "MI5:", DeviceUtility.GetDeviceModel(), ";");
contentPrefix = StringUtility.Concat(contentPrefix, "os_version:", DeviceUtility.GetDeviceOSLevel(), ";");
@@ -162,7 +162,7 @@
var contentPrefix = StringUtility.Concat("IMEI:", DeviceUtility.GetDeviceUniquenessIdentify(), ";");
contentPrefix = StringUtility.Concat(contentPrefix, "Version:", StringUtility.Concat(VersionConfig.Get().version, "_",
- VersionConfig.Get().buildIndex.ToString()), Language.Id, ";");
+ VersionConfig.Get().buildIndex.ToString(), "-", LoginManager.Instance.hotVersion), Language.Id, ";");
contentPrefix = StringUtility.Concat(contentPrefix, "Brand:", DeviceUtility.GetDeviceName(), ";");
contentPrefix = StringUtility.Concat(contentPrefix, "MI5:", DeviceUtility.GetDeviceModel(), ";");
contentPrefix = StringUtility.Concat(contentPrefix, "os_version:", DeviceUtility.GetDeviceOSLevel(), ";");
diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index e685d0d..e4ebbab 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -917,12 +917,12 @@
//鐗╁搧 鍚勫姛鑳藉搧璐� 浠庣簿鑹�1鍝佽川 瀵瑰簲 3寮�濮�
/// <summary>
- /// 棰滆壊瀹氫箟鏍规嵁鍒嗙粍澶勭悊锛屽鏅�氱墿鍝佺殑棰滆壊绮捐壇鏄�1寮�濮嬶紝鏍戝拰瑁呭涔熸槸绮楃硻1寮�濮嬶紝闇�瑕佽皟鏁村尮閰�
+ /// 棰滆壊瀹氫箟鏍规嵁鍒嗙粍澶勭悊锛屽鏅�氱墿鍝佺殑棰滆壊绮捐壇鏄�1寮�濮嬶紝鏍戝拰瑁呭涔熸槸绮楃硻1寮�濮嬶紝鍛芥牸鏄粠棰滆壊2寮�濮嬮渶瑕佽皟鏁村尮閰�
/// </summary>
/// <param name="itemColor"></param>
/// <param name="msg"></param>
/// <param name="bright"></param>
- /// <param name="colorGroupType">0 閫氱敤鍔熻兘鍝佽川鍒嗙粍绮捐壇鍒扮璇�</param>
+ /// <param name="colorGroupType">0 閫氱敤鍔熻兘鍝佽川鍒嗙粍绮捐壇鍒扮璇� 1 绁濈鍜岃澶囩敤 2鍛芥牸鐢�</param>
/// <returns></returns>
public static string AppendColor(int itemColor, string msg, bool bright = true, int colorGroupType = 0)
{
@@ -930,6 +930,10 @@
{
itemColor = itemColor + 2;
}
+ else if (colorGroupType == 2)
+ {
+ itemColor = itemColor + 1;
+ }
switch (itemColor)
{
--
Gitblit v1.8.0