From 853fca9637124fcc2d172115b113da88d8591fb3 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 26 一月 2026 01:58:53 +0800
Subject: [PATCH] 419 【内政】命格系统
---
Main/System/FuncPreset/FuncPresetChooseCell.cs | 45 ++-
Main/Component/UI/Common/SliderPanel.cs | 24 +
Main/System/Tip/ConfirmCancel.cs | 2
Main/System/FuncPreset/FuncPresetChooseMoreCell.cs.meta | 11
Main/System/Mingge/MinggeWin.cs | 26 +
Main/System/FuncPreset/FuncPresetChangeNameWin.cs.meta | 11
Main/System/Mingge/MinggePrayWin.cs | 157 +++++++++++
Main/System/FuncPreset/FuncPresetChangeNameWin.cs | 32 ++
Main/System/Main/FightPowerManager.cs | 12
Main/System/Mingge/MinggePrayWin.cs.meta | 11
Main/System/Mingge/MinggeSmallTipWin.cs | 100 ++++++
Main/System/ItemTip/ItemTipUtility.cs | 2
Main/System/FuncPreset/FuncPresetManager.cs | 89 +++++-
Main/System/Hero/HeroInfo.cs | 7
Main/System/Mingge/MinggePrayRateCell.cs | 39 ++
Main/System/Mingge/MinggePrayRateCell.cs.meta | 11
Main/Config/PartialConfigs/PresetUnlockConfig.cs | 2
Main/System/Mingge/MinggeEquipCell.cs | 6
Main/System/Attribute/TotalAttributeWin.cs | 2
Main/System/FuncPreset/FuncPresetChooseCells.cs | 88 ++++--
Main/System/FuncPreset/FuncPresetChooseMoreCell.cs | 61 ++++
Main/System/Mingge/MinggeEquipWin.cs | 16
Main/System/Mingge/MinggeManager.cs | 41 ++
23 files changed, 707 insertions(+), 88 deletions(-)
diff --git a/Main/Component/UI/Common/SliderPanel.cs b/Main/Component/UI/Common/SliderPanel.cs
index 019107b..e3548be 100644
--- a/Main/Component/UI/Common/SliderPanel.cs
+++ b/Main/Component/UI/Common/SliderPanel.cs
@@ -47,19 +47,25 @@
slider.value -= 1;
});
- maxBtn.AddListener(() =>
+ maxBtn?.AddListener(() =>
{
slider.value = slider.maxValue;
});
}
+ /// <summary>
+ /// 鍒濆鍖�
+ /// </summary>
+ /// <param name="_OnChangeEvent">鏁伴噺鍙樺寲浜嬩欢</param>
+ /// <param name="_maxCount">鏈�澶ф暟閲� 鍙互璁剧疆鏈�灏�1</param>
+ /// <param name="_count">鍒濆鏄剧ず鏁伴噺</param>
public void Init(Action<int> _OnChangeEvent, int _maxCount, int _count = 1)
{
count = _count;
maxCount = _maxCount;
- slider.value = count;
slider.minValue = 0;
slider.maxValue = _maxCount;
+ slider.value = count;
Refresh();
OnChangeEvent = _OnChangeEvent;
@@ -74,15 +80,21 @@
{
addBtn.interactable = false;
addBtn.SetColorful(null, false);
- maxBtn.interactable = false;
- maxBtn.SetColorful(null, false);
+ if (maxBtn != null)
+ {
+ maxBtn.interactable = false;
+ maxBtn.SetColorful(null, false);
+ }
}
else
{
addBtn.interactable = true;
addBtn.SetColorful(null, true);
- maxBtn.interactable = true;
- maxBtn.SetColorful(null, true);
+ if (maxBtn != null)
+ {
+ maxBtn.interactable = true;
+ maxBtn.SetColorful(null, true);
+ }
}
if (count <= 1)
diff --git a/Main/Config/PartialConfigs/PresetUnlockConfig.cs b/Main/Config/PartialConfigs/PresetUnlockConfig.cs
index f96c119..e91bbd0 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>();
+ static Dictionary<int, int> m_UnLockTypeDict = new Dictionary<int, int>(); // 棰勮绫诲瀷 瑙i攣绫诲瀷锛屾殏绾﹀畾鍙湁1绉�
protected override void OnConfigParseCompleted()
{
if (!m_PresetUnlockDict.ContainsKey(PresetType))
diff --git a/Main/System/Attribute/TotalAttributeWin.cs b/Main/System/Attribute/TotalAttributeWin.cs
index d925399..5e47032 100644
--- a/Main/System/Attribute/TotalAttributeWin.cs
+++ b/Main/System/Attribute/TotalAttributeWin.cs
@@ -93,7 +93,7 @@
});
}
- ForceRefreshLayout();
+ ForceRefreshLayout().Forget();
}
diff --git a/Main/System/FuncPreset/FuncPresetChangeNameWin.cs b/Main/System/FuncPreset/FuncPresetChangeNameWin.cs
new file mode 100644
index 0000000..b7bb3f5
--- /dev/null
+++ b/Main/System/FuncPreset/FuncPresetChangeNameWin.cs
@@ -0,0 +1,32 @@
+using System.Text;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class FuncPresetChangeNameWin : UIBase
+{
+ [SerializeField] InputField nameText;
+ [SerializeField] Button confirmBtn;
+
+ protected override void InitComponent()
+ {
+ confirmBtn.AddListener(OnConfirm);
+ }
+
+ void OnConfirm()
+ {
+ var len = (byte)Encoding.Default.GetBytes(nameText.text).Length;
+
+ if (len > 12)
+ {
+ return;
+ }
+ var pack = new CB261_tagCSFuncPresetUpdName();
+ pack.FuncPresetType = (byte)(functionOrder/100);
+ pack.PresetID = (byte)(functionOrder % 100);
+ pack.NameLen = len;
+ pack.PresetName = nameText.text;
+ GameNetSystem.Instance.SendInfo(pack);
+ CloseWindow();
+ }
+}
+
diff --git a/Main/System/FuncPreset/FuncPresetChangeNameWin.cs.meta b/Main/System/FuncPreset/FuncPresetChangeNameWin.cs.meta
new file mode 100644
index 0000000..3d5ee95
--- /dev/null
+++ b/Main/System/FuncPreset/FuncPresetChangeNameWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ddcba8cfb66dcd146b86ec62bffcd50d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FuncPreset/FuncPresetChooseCell.cs b/Main/System/FuncPreset/FuncPresetChooseCell.cs
index 66db8d2..fbd7f5b 100644
--- a/Main/System/FuncPreset/FuncPresetChooseCell.cs
+++ b/Main/System/FuncPreset/FuncPresetChooseCell.cs
@@ -9,12 +9,14 @@
[SerializeField] Image lockImg;
[SerializeField] Text numText;
[SerializeField] Image selectImg;
- [SerializeField] Button unFoldBtn; //瑙i攣鎴栬�呭睍寮�
+ [SerializeField] Button unFoldBtn; //瑙i攣 鎴栭�変腑
[SerializeField] Text caseNameText;
[SerializeField] Button changeNameBtn;
[SerializeField] Text numUnFoldText;
[SerializeField] Button foldBtn; //鎶樺彔
+
+ [SerializeField] FuncPresetChooseCells pareant;
public void Display(int battleType, int funcType, int id, bool isUnFold)
@@ -32,7 +34,7 @@
caseNameText.text = data.PresetName;
numUnFoldText.text = id.ToString();
- changeNameBtn.AddListener(ChangeName);
+ changeNameBtn.AddListener(()=>ChangeName(funcType, id));
foldBtn.AddListener(()=>Fold(funcType, id));
}
else
@@ -40,9 +42,28 @@
unFoldObj.SetActive(false);
foldObj.SetActive(true);
- unFoldBtn.AddListener(() => UnFold(funcType, id));
+ unFoldBtn.AddListener(() =>
+ {
+ if (id == selectID && pareant.unFoldID == 0)
+ {
+ //閫変腑鐘舵�佷笅鐐瑰嚮鎶樺彔锛屽垯涓嶆姌鍙�
+ pareant.unFoldID = id;
+ }
+ if (pareant.unFoldID == id)
+ {
+ FuncPresetManager.Instance.OnSelectPresetEvent?.Invoke(funcType, id, true);
+ }
+ else
+ {
+ if (FuncPresetManager.Instance.ClickFuncPreset(battleType, funcType, id))
+ {
+ pareant.unFoldID = id;
+ }
+ }
+ });
+
lockImg.SetActive(!data.unLock);
- numText.text = id.ToString();
+ numText.text = !data.unLock ? "" :id.ToString();
selectImg.SetActive(selectID == id);
}
@@ -50,24 +71,16 @@
}
- void ChangeName()
+ void ChangeName(int funcType, int id)
{
- // UIManager.Instance.OpenWindow<FuncPresetChangeNameWin>();
+ UIManager.Instance.OpenWindow<FuncPresetChangeNameWin>(funcType*100 + id);
}
void Fold(int funcType, int id)
{
+ pareant.unFoldID = 0;
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/FuncPreset/FuncPresetChooseCells.cs b/Main/System/FuncPreset/FuncPresetChooseCells.cs
index e44dd53..9b360a0 100644
--- a/Main/System/FuncPreset/FuncPresetChooseCells.cs
+++ b/Main/System/FuncPreset/FuncPresetChooseCells.cs
@@ -1,69 +1,101 @@
+using System;
+using Cysharp.Threading.Tasks;
using UnityEngine;
+using UnityEngine.UI;
//鏂规棰勮: 澶氭柟妗堥�夋嫨缁勪欢
//鎺у埗鏄鹃殣锛� 1.鏈紑鍚椂鍏ㄤ笉鏄剧ず
// 2.寮�鍚悗鏄剧ず宸茶В閿� + 鏈В閿� 3+0
- //a. 鎸夊厓瀹濊В閿佺殑涓洪�愪竴寮�鍚紝榛樿寮�鍚痻涓紝绗瑇+1涓樉绀烘潯浠堕渶瑕併�愭祦娲鹃璁俱�戝姛鑳藉紑鍚�, 鍙В閿佸悗閫愪竴淇濈暀涓�涓攣浣忕殑锛堢洿鍒板叏寮�鍚級锛�
- //b. 鎸夊姛鑳芥潯浠跺紑鍚殑锛屽鏋滈粯璁ゅ彧寮�鍏朵竴涓柟妗堢殑鎯呭喌涓嶆樉绀猴紝杈惧埌涓嬩竴涓柟妗堢殑鏉′欢婊¤冻鍚庡叏鏄剧ず锛涢粯璁ゅぇ浜�1涓殑鎯呭喌鐩存帴鍏ㄦ樉绀�
+//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; //寮哄埗灞曞紑锛屼笉鑳芥敹缂�
+ [SerializeField] Button unFoldBtn; //灞曞紑鏇村
+ //琚�変腑鐨勬柟妗堜細鏄剧ず鍦ㄥ灞傦紝濡傛灉涓嶆槸绗洓涓垯绗洓涓細鏄剧ず鍦ㄦ渶涓婇潰
+ [SerializeField] FuncPresetChooseMoreCell[] moreCells;
+ bool forceUnFold = false; //寮哄埗灞曞紑锛屼笉鑳芥敹缂�; 娴佹淳鐣岄潰鐨勯渶姹�
+ [NonSerialized] public int unFoldID = 0; //褰撳墠灞曞紑鐨勬柟妗圛D锛屽湪閫変腑鐨勬儏鍐典笅鎵嶇敓鏁�
+ int curBattleType;
/// <summary>
/// 鏄剧ず鏂规棰勮
/// </summary>
- /// <param name="battleType"></param>
- /// <param name="funcType"></param>
+ /// <param name="battleType">涓荤嚎鎴樻枟 鍏朵粬闃插畧</param>
+ /// <param name="funcType">鍔熻兘绫诲瀷</param>
+ /// <param name="unFoldID">灞曞紑鐨勬柟妗圛D锛岄粯璁�0锛屼笉灞曞紑</param>
/// <param name="forceUnFold"> 寮哄埗灞曞紑锛屼笉鑳芥敹缂�</param>
public void Display(int battleType, int funcType, bool _forceUnFold = false)
{
forceUnFold = _forceUnFold;
- var _unFoldState = forceUnFold ? true : isUnFold;
- curBbattleType = battleType;
+ curBattleType = battleType;
+
var selectID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType(battleType, funcType);
+ var showCount = FuncPresetManager.Instance.GetShowFuncPresetCount(funcType);
+ unFoldBtn.SetActive(showCount > 4);
+
for (int i = 0; i < cells.Length; i++)
{
- if (i < 3)
+ if (i < showCount)
{
- cells[i].Display(battleType, funcType, i + 1, _unFoldState);
+ cells[i].SetActive(true);
+ if (i < 3)
+ {
+ var _unFoldState = forceUnFold ? true : i + 1 == unFoldID;
+ cells[i].Display(battleType, funcType, i + 1, _unFoldState);
+ }
+ else
+ {
+ var _unFoldState = forceUnFold ? true : (selectID > 4 ? selectID : 4) == unFoldID;
+ //绗洓涓姩鎬佸彉鍖�
+ cells[i].Display(battleType, funcType, selectID > 4 ? selectID : 4, _unFoldState);
+ }
}
else
{
- //绗洓涓姩鎬佸彉鍖�
- cells[i].Display(battleType, funcType, selectID > 4 ? selectID : 4, _unFoldState);
+ cells[i].SetActive(false);
}
}
- }
+ var showMoreCount = showCount - 4;
+ for (int i = 0; i < showMoreCount; i++)
+ {
+ if (i < showMoreCount)
+ {
+ moreCells[i].SetActive(true);
+ var id = i + 5;
+ if (i == 0 && selectID > 4)
+ {
+ id = 4;
+ }
+ moreCells[i].Display(battleType, funcType, id);
+ }
+ else
+ {
+ moreCells[i].SetActive(false);
+ }
+ }
+
+ UIUtility.ForceRefreshLayout(this.transform).Forget();
+ }
void OnEnable()
{
- if (!forceUnFold)
- {
- FuncPresetManager.Instance.OnSelectPresetEvent += OnSelectPresetEvent;
- }
+ FuncPresetManager.Instance.OnSelectPresetEvent += OnSelectPresetEvent;
}
void OnDisable()
{
- if (!forceUnFold)
- {
- isUnFold = false;
- FuncPresetManager.Instance.OnSelectPresetEvent -= OnSelectPresetEvent;
- }
+ unFoldID = 0;
+ FuncPresetManager.Instance.OnSelectPresetEvent -= OnSelectPresetEvent;
}
- void OnSelectPresetEvent(int funcType, int id, bool _isUnFold)
+ void OnSelectPresetEvent(int funcType, int id, bool isUnFold)
{
- isUnFold = _isUnFold;
- int index = id > 4 ? 3 : id - 1;
- cells[index].Display(curBbattleType, funcType, id, isUnFold);
+ Display(curBattleType, funcType, forceUnFold);
}
}
diff --git a/Main/System/FuncPreset/FuncPresetChooseMoreCell.cs b/Main/System/FuncPreset/FuncPresetChooseMoreCell.cs
new file mode 100644
index 0000000..38b4284
--- /dev/null
+++ b/Main/System/FuncPreset/FuncPresetChooseMoreCell.cs
@@ -0,0 +1,61 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+//鏂规棰勮 鏂规閫夋嫨缁勪欢, 闅愯棌鐨勬柟妗�
+public class FuncPresetChooseMoreCell : MonoBehaviour
+{
+ [SerializeField] Button lockBtn;
+ [SerializeField] Button changeNameBtn;
+ [SerializeField] Text caseNameText;
+ [SerializeField] Button chooseBtn;
+
+ [SerializeField] Transform selectObj; //娴佹淳鍚嶆墠鏈夐�変腑锛屾柟妗堝悕閫変腑鍚庡氨鏄剧ず鍦ㄥ灞傜鍥涗釜
+ [SerializeField] FuncPresetChooseCells pareant;
+
+
+ public void Display(int battleType, int funcType, int id)
+ {
+ var data = FuncPresetManager.Instance.GetFuncPreset(funcType, id);
+ if (data == null)
+ {
+ return;
+ }
+ var selectID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType(battleType, funcType);
+ caseNameText.text = Language.Get("FuncPreset11", id, UIHelper.AppendColor(selectID == id ? TextColType.titleSelectColor : TextColType.titleUnSelectColor, data.PresetName));
+ if (data.unLock)
+ {
+ lockBtn.SetActive(false);
+ changeNameBtn.SetActive(true);
+ changeNameBtn.AddListener(()=>
+ {
+ ChangeName(funcType, id);
+ });
+ chooseBtn.AddListener(() =>
+ {
+ if (pareant)
+ {
+ pareant.unFoldID = id;
+ }
+ FuncPresetManager.Instance.ClickFuncPreset(battleType, funcType, id);
+ });
+ }
+ else
+ {
+ lockBtn.SetActive(true);
+ lockBtn.AddListener(() => FuncPresetManager.Instance.ClickFuncPreset(battleType, funcType, id));
+ changeNameBtn.SetActive(false);
+ chooseBtn.RemoveAllListeners();
+ }
+ selectObj?.SetActive(selectID == id);
+
+ }
+
+
+ void ChangeName(int funcType, int id)
+ {
+ UIManager.Instance.OpenWindow<FuncPresetChangeNameWin>(funcType*100 + id);
+ }
+
+
+
+}
diff --git a/Main/System/FuncPreset/FuncPresetChooseMoreCell.cs.meta b/Main/System/FuncPreset/FuncPresetChooseMoreCell.cs.meta
new file mode 100644
index 0000000..ffc7681
--- /dev/null
+++ b/Main/System/FuncPreset/FuncPresetChooseMoreCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9872e1f383702764ab1534fe3f862fe4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FuncPreset/FuncPresetManager.cs b/Main/System/FuncPreset/FuncPresetManager.cs
index 1bff3a7..9f1678d 100644
--- a/Main/System/FuncPreset/FuncPresetManager.cs
+++ b/Main/System/FuncPreset/FuncPresetManager.cs
@@ -9,7 +9,6 @@
{
//棰勮鏂规锛氬姛鑳界被鍨嬶紙鍚叏灞�鍜屽瓙鍔熻兘锛岄厤琛級-瀛愭柟妗圛D-棰勮鏂规瑙i攣鍚嶇О淇℃伅
Dictionary<int, Dictionary<int, FuncPreset>> m_FuncPresetDict = new Dictionary<int, Dictionary<int, FuncPreset>>();
- public event Action OnFuncPresetInfoListChanged; //娴佹淳璁剧疆鎬讳俊鎭�
//瀵瑰簲 BattlePreSetType 鎴樻枟绫诲瀷 锛� 鍏ㄥ眬鏂规ID
Dictionary<int, int> battlePreSetDict = new Dictionary<int, int>();
@@ -99,9 +98,8 @@
}
m_FuncPresetDict[config.PresetType][config.PresetID] = new FuncPreset()
{
- PresetID = config.PresetID,
unLock = config.UnlockType == 0,
- PresetName = Language.Get("Mingge13") + config.PresetID,
+ PresetName = Language.Get("Mingge13", config.PresetID)
};
}
}
@@ -119,16 +117,16 @@
{
var preset = funcPresetInfo.PresetList[j];
//璇ュ姛鑳介璁捐В閿佺姸鎬侊紝鎸夐璁綢D浜岃繘鍒朵綅杩愮畻璁板綍鏄惁宸茶В閿�
+ bool _unlock = (funcPresetInfo.UnlockState & (1 << preset.PresetID)) != 0;
m_FuncPresetDict[funcPresetInfo.FuncPresetType][preset.PresetID] = new FuncPreset()
{
- PresetID = preset.PresetID,
- unLock = (funcPresetInfo.UnlockState & (1 << preset.PresetID)) != 0,
- PresetName = string.IsNullOrEmpty(preset.PresetName) ? Language.Get("Mingge13") + preset.PresetID : preset.PresetName,
+ unLock = _unlock,
+ PresetName = string.IsNullOrEmpty(preset.PresetName) ? Language.Get("Mingge13", preset.PresetID) : preset.PresetName,
};
}
}
- OnFuncPresetInfoListChanged?.Invoke();
+ OnFuncPresetUseDataEvent?.Invoke();
}
//姣忎釜鍏ㄥ眬鏂规鐨勫瓨鍌ㄤ俊鎭�
@@ -191,7 +189,7 @@
return 1;
}
- //鑾峰彇瀛愬姛鑳芥柟妗圛D锛屽鏋滃彇涓嶅埌榛樿鏂规1; 榛樿鍙栧綋鍓嶆祦娲句笅鐨�
+ //鑾峰彇褰撳墠娴佹淳涓嬬殑瀛愬姛鑳界殑鏂规ID锛屽鏋滃彇涓嶅埌榛樿鏂规1
public int GetFuncPresetID(int funcType)
{
int globalPresetID = GetGlobalPresetID((int)BattlePreSetType.Story);
@@ -202,7 +200,7 @@
return 1;
}
- //
+ //鎸囧畾棰勮淇℃伅
public FuncPreset GetFuncPreset(int funcType, int presetID)
{
if (m_FuncPresetDict.ContainsKey(funcType) && m_FuncPresetDict[funcType].ContainsKey(presetID))
@@ -215,6 +213,11 @@
// 杩欓噷铏界劧浼犵殑鏄� battleType锛屼絾鏄疄闄呰繕鏄牴鎹叏灞�鏂规ID鍋氬搴斾慨鏀癸紱濡傛灉杩欎釜鍏ㄥ眬鏂规鍏朵粬鍦版柟鏈変娇鐢ㄤ篃鏄悓姝ュ彉鍖�
public void SaveFuncPresetID(int battleType, int funcType, int presetID)
{
+ if (funcType == 1)
+ {
+ SaveBattlePresetID(battleType, presetID);
+ return;
+ }
var pack = new CB262_tagCSFuncPresetSwitch();
pack.FuncPresetType = (byte)funcType;
pack.PresetID = (byte)presetID;
@@ -230,27 +233,44 @@
GameNetSystem.Instance.SendInfo(pack);
}
+ public void UnLockPreset(int funcType, int presetID)
+ {
+ var pack = new CB260_tagCSFuncPresetUnlock();
+ pack.FuncPresetType = (byte)funcType;
+ pack.PresetID = (byte)presetID;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
//瑕佹樉绀虹殑鏂规鏁伴噺; 鏍规嵁鎯呭喌浼氬寘鍚湭瑙i攣
//a. 鎸夊厓瀹濊В閿佺殑涓洪�愪竴寮�鍚紝榛樿寮�鍚痻涓紝绗瑇+1涓樉绀烘潯浠堕渶瑕併�愭祦娲鹃璁俱�戝姛鑳藉紑鍚�, 鍙В閿佸悗閫愪竴淇濈暀涓�涓攣浣忕殑锛堢洿鍒板叏寮�鍚級锛�
//b. 鎸夊姛鑳芥潯浠跺紑鍚殑锛屽鏋滈粯璁ゅ彧寮�鍏朵竴涓柟妗堢殑鎯呭喌涓嶆樉绀猴紝杈惧埌涓嬩竴涓柟妗堢殑鏉′欢婊¤冻鍚庡叏鏄剧ず锛涢粯璁ゅぇ浜�1涓殑鎯呭喌鐩存帴鍏ㄦ樉绀�
public int GetShowFuncPresetCount(int funcType)
{
- var showCount = GetUnlockCnt(funcType);
+ var unlockCnt = GetUnlockCnt(funcType);
var maxCount = PresetUnlockConfig.GetFuncPresetMaxCount(funcType);
var unlockType = PresetUnlockConfig.GetUnlockType((int)FuncPresetType.Mingge);
- if (unlockType > 1)
+ if (unlockType == 2)
{
- //闈炲厓瀹濊В閿�
+ //鍛芥牸鎸夋帹婕斿鐣岃В閿�
//鍙湁1涓柟妗堝垯涓嶆樉绀猴紝澶т簬1涓垯鍏ㄦ樉绀�
- return showCount == 1 ? 0 : maxCount;
+ if (unlockCnt == 1)
+ {
+ var config = PresetUnlockConfig.GetPresetUnlockConfig((int)FuncPresetType.Mingge, 2);
+ if (MinggeManager.Instance.m_GanwuLV >= config.UnlockValue)
+ {
+ return maxCount;
+ }
+ return 0;
+ }
+ return maxCount;
}
if (!IsOpen())
{
//鏈紑鍚椂锛岄粯璁ゅぇ浜�1鍒欐樉绀�
- return showCount == 1 ? 0 : showCount;
+ return unlockCnt == 1 ? 0 : unlockCnt;
}
- return showCount == maxCount ? showCount : showCount + 1;
+ return unlockCnt == maxCount ? unlockCnt : unlockCnt + 1;
}
public int GetUnlockCnt(int funcType)
@@ -268,12 +288,49 @@
}
return count;
}
+
+ //閫夋嫨鏂规锛氳В閿佹垨閫変腑
+ // 閫夋嫨鏂规杩斿洖true锛屽惁鍒欒繑鍥瀎alse
+ public bool ClickFuncPreset(int battleType, int funcType, int id)
+ {
+ var config = PresetUnlockConfig.GetPresetUnlockConfig(funcType, id);
+ var data = GetFuncPreset(funcType, id);
+ if (!data.unLock)
+ {
+ // 鏈В閿� 鍒欒喘涔�
+ if (config.UnlockType == 1)
+ {
+ ConfirmCancel.MoneyIconToggleConfirmByType(ToggleCheckType.FuncPreset, config.UnlockValue, 1,
+ Language.Get("FuncPreset12", UIHelper.GetIconNameWithMoneyType(1), config.UnlockValue), () =>
+ {
+ if (!UIHelper.CheckMoneyCount(1, config.UnlockValue, 2))
+ return;
+
+ UnLockPreset(funcType, id);
+ });
+ }
+ else if (config.UnlockType == 2)
+ {
+
+ if (MinggeManager.Instance.m_GanwuLV < config.UnlockValue)
+ {
+ SysNotifyMgr.Instance.ShowTip("FuncPreset1", config.UnlockValue);
+ return false;
+ }
+ UnLockPreset(funcType, id);
+ }
+ return false;
+ }
+
+ SaveFuncPresetID(battleType, funcType, id);
+ return true;
+ }
+
}
public class FuncPreset
{
- public int PresetID; //棰勮鏂规ID
public bool unLock; //鏄惁瑙i攣
public string PresetName; //棰勮鍚嶇О
}
diff --git a/Main/System/Hero/HeroInfo.cs b/Main/System/Hero/HeroInfo.cs
index 61ab98d..1a83b6c 100644
--- a/Main/System/Hero/HeroInfo.cs
+++ b/Main/System/Hero/HeroInfo.cs
@@ -48,7 +48,12 @@
{
get
{
- return itemHero.GetUseDataFirstValue(83) != 0;
+ var _list = itemHero.GetUseData(83);
+ // 榛樿娌℃湁棰勮鐨勮瘽灏辨槸鐢熸晥鐨�
+ if (_list == null || _list.Count == 0)
+ return true;
+ var id = FuncPresetManager.Instance.GetFuncPresetID((int)FuncPresetType.Team);
+ return _list.Contains(id);
}
}
diff --git a/Main/System/ItemTip/ItemTipUtility.cs b/Main/System/ItemTip/ItemTipUtility.cs
index fadcf96..df122a7 100644
--- a/Main/System/ItemTip/ItemTipUtility.cs
+++ b/Main/System/ItemTip/ItemTipUtility.cs
@@ -390,7 +390,7 @@
UIManager.Instance.OpenWindow<ChooseItemsWin>();
break;
case TipType.Mingge:
- // UIManager.Instance.OpenWindow<MinggeWin>();
+ UIManager.Instance.OpenWindow<MinggeSmallTipWin>();
break;
default:
UIManager.Instance.OpenWindow<ItemTipWin>();
diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index d6518d9..f487dcd 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -734,7 +734,17 @@
fightPowerVariables.Clear();
fightPowerVariables[PLAYER_LV] = PlayerDatas.Instance.baseData.LV;
fightPowerVariables[OFFICIAL_LV] = PlayerDatas.Instance.baseData.realmLevel;
- fightPowerVariables[SKILL_POWER] = SkillConfig.Get(item.Key + item.Value - 1).FightPower;
+ if (item.Value == 0)
+ {
+ continue;
+ }
+ var skill = SkillConfig.Get(item.Key + item.Value - 1);
+ if (skill == null)
+ {
+ Debug.LogError("skill is null" + (item.Key + item.Value - 1));
+ continue;
+ }
+ fightPowerVariables[SKILL_POWER] = skill.FightPower;
skillPower += (long)FightPowerFormula.GetSkillsFightPower(fightPowerVariables);
}
diff --git a/Main/System/Mingge/MinggeEquipCell.cs b/Main/System/Mingge/MinggeEquipCell.cs
index 0bd8aad..bec1b09 100644
--- a/Main/System/Mingge/MinggeEquipCell.cs
+++ b/Main/System/Mingge/MinggeEquipCell.cs
@@ -1,6 +1,7 @@
锘縰sing UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
+using System;
//瀹炶鐨勬樉绀�
@@ -44,7 +45,8 @@
if (skillID != 0)
{
skillImage.SetSprite($"MinggeSkill_{skillID}");
- loopEffect.Play();
+ var index = Array.IndexOf(EffectConfig.Get(loopEffect.effectId).animIndex, skillID);
+ loopEffect.Play(index);
}
else
{
@@ -61,7 +63,7 @@
button.AddListener(() =>
{
- ItemTipUtility.Show(itemID);
+ ItemTipUtility.Show(item.guid);
});
if (lastGuid == "uninit")
diff --git a/Main/System/Mingge/MinggeEquipWin.cs b/Main/System/Mingge/MinggeEquipWin.cs
index 329fd98..2a43dab 100644
--- a/Main/System/Mingge/MinggeEquipWin.cs
+++ b/Main/System/Mingge/MinggeEquipWin.cs
@@ -7,6 +7,7 @@
[SerializeField] MinggeEquipChangeCell newEquipCell;
[SerializeField] Transform presetObj;
[SerializeField] GroupButtonEx[] presetBtns;
+ [SerializeField] Text[] presetNameTexts;
int selectPresetID = 0;
int lastDropIndex = -1;
@@ -14,9 +15,10 @@
{
for (int i = 0; i < presetBtns.Length; i++)
{
+ int index = i + 1;
presetBtns[i].AddListener(() =>
{
- selectPresetID = i;
+ selectPresetID = index;
Display();
});
}
@@ -57,9 +59,17 @@
presetObj.SetActive(true);
for (int i = 0; i < presetBtns.Length; i++)
{
- presetBtns[i].SetActive(i < cnt);
+ if (i < cnt)
+ {
+ presetBtns[i].SetActive(true);
+ presetNameTexts[i].text = FuncPresetManager.Instance.GetFuncPreset((int)FuncPresetType.Mingge, i + 1).PresetName;
+ }
+ else
+ {
+ presetBtns[i].SetActive(false);
+ }
}
-
+ presetBtns[selectPresetID -1].SelectBtn();
}
else
{
diff --git a/Main/System/Mingge/MinggeManager.cs b/Main/System/Mingge/MinggeManager.cs
index 32efd6c..361fbeb 100644
--- a/Main/System/Mingge/MinggeManager.cs
+++ b/Main/System/Mingge/MinggeManager.cs
@@ -42,6 +42,7 @@
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent += OnEquipResult;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOK;
ParseConfig();
}
@@ -50,6 +51,7 @@
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent -= OnEquipResult;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOK;
}
@@ -80,6 +82,12 @@
m_Lingying = 0;
waitTYOPPack = false;
}
+
+ void OnPlayerLoginOK()
+ {
+ UpdateRedPoint();
+ }
+
private void OnEquipResult(HA814_tagMCMakeItemAnswer info)
{
if (info.MakeType != (int)MakeType.MinggeTY)
@@ -95,6 +103,11 @@
{
waitTYOPPack = false;
CalcEquip();
+ }
+
+ if (type == PackType.Item && (itemID == tyItemID || itemID == qlItemID))
+ {
+ UpdateRedPoint();
}
}
@@ -115,7 +128,7 @@
{
if (OpenMinggeEquipWin(item))
{
- //闇�瑕佺帺瀹跺鐞嗙殑鏃跺�欓��鍑�
+ //闇�瑕佺帺瀹跺鐞嗚澶�
return true;
}
}
@@ -203,6 +216,11 @@
selectFloorEquip = equip;
if (UIManager.Instance.IsOpened<MinggeWin>())
{
+ if (selectFloorEquip.config.EquipPlace == 0)
+ {
+ Debug.LogError($"閰嶇疆閿欒鐗╁搧 {selectFloorEquip.itemId} 瑁呭浣嶄负0");
+ return true;
+ }
UIManager.Instance.OpenWindow<MinggeEquipWin>();
}
return true;
@@ -216,7 +234,6 @@
public void SendTY(int count)
{
-
if (CalcEquip())
{
return;
@@ -298,5 +315,25 @@
Redpoint redpointMG = new Redpoint(MainRedDot.RedPoint_Mingge, MainRedDot.RedPoint_Mingge * 10 + 1);
Redpoint redpointPray = new Redpoint(MainRedDot.RedPoint_Mingge, MainRedDot.RedPoint_Mingge * 10 + 2);
+ void UpdateRedPoint()
+ {
+
+ redpointMG.state = RedPointState.None;
+ redpointPray.state = RedPointState.None;
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Mingge))
+ {
+ return;
+ }
+ if (PackManager.Instance.GetItemCountByID(PackType.Item, tyItemID) > 0)
+ {
+ redpointMG.state = RedPointState.Simple;
+ }
+
+ if (PackManager.Instance.GetItemCountByID(PackType.Item, qlItemID) > 0)
+ {
+ redpointPray.state = RedPointState.Simple;
+ }
+ }
+
#endregion
}
\ No newline at end of file
diff --git a/Main/System/Mingge/MinggePrayRateCell.cs b/Main/System/Mingge/MinggePrayRateCell.cs
new file mode 100644
index 0000000..8fa5fbd
--- /dev/null
+++ b/Main/System/Mingge/MinggePrayRateCell.cs
@@ -0,0 +1,39 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+using DG.Tweening;
+using System;
+using System.Collections.Generic;
+
+
+//绁堢伒姒傜巼
+public class MinggePrayRateCell : MonoBehaviour
+{
+ [SerializeField] Text rateText;
+ [SerializeField] Text nextRateText;
+ [SerializeField] Image qualityImg;
+ [SerializeField] Image arrowImg;
+
+ // maxRateNum 姒傜巼鏈�澶у�硷紝鐢ㄤ簬璁$畻鐧惧垎姣斿彇鏈�鍚庝袱浣�
+ public void Display(int index, List<int> bigRateList, List<int> littleRateList, int maxRateNum)
+ {
+ var rate = littleRateList[index];
+ var nextRate = bigRateList[index];
+
+ rateText.text = (rate / (float)maxRateNum * 100).ToString("0.##") + "%";
+ nextRateText.text = (nextRate / (float)maxRateNum * 100).ToString("0.##") + "%";
+ qualityImg.SetSprite("MinggeNameBG" + (index + 1));
+ if (rate == nextRate)
+ {
+ arrowImg.SetActive(false);
+ }
+ else
+ {
+ arrowImg.SetActive(true);
+ arrowImg.SetSprite(rate > nextRate ? "FightPointDown" : "FightPointUP");
+ }
+
+ }
+
+
+}
+
diff --git a/Main/System/Mingge/MinggePrayRateCell.cs.meta b/Main/System/Mingge/MinggePrayRateCell.cs.meta
new file mode 100644
index 0000000..53ddcba
--- /dev/null
+++ b/Main/System/Mingge/MinggePrayRateCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 71422f21c99778c40b1975f8e35aa6e3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Mingge/MinggePrayWin.cs b/Main/System/Mingge/MinggePrayWin.cs
new file mode 100644
index 0000000..7b57c1a
--- /dev/null
+++ b/Main/System/Mingge/MinggePrayWin.cs
@@ -0,0 +1,157 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+public class MinggePrayWin : UIBase
+{
+ [SerializeField] ItemCell itemCell;
+ [SerializeField] Text itemName;
+ [SerializeField] Text desce;
+ [SerializeField] Text qlValueText;
+ [SerializeField] MinggePrayRateCell[] prayRateCells;
+ [SerializeField] SliderPanel sliderPanel;
+ [SerializeField] Image itemIcon;
+ [SerializeField] Text countText;
+ [SerializeField] Button qlBtn;
+ [SerializeField] UIEffectPlayer qlEffect;
+
+ int useCnt = 1;
+
+ int qualityCnt;
+ int maxRateNum = 0;
+
+ protected override void InitComponent()
+ {
+ qlBtn.AddListener(QL);
+ var rateList = MGLingyingQualityConfig.Get(0).ItemColorWeightList;
+ qualityCnt = rateList.Length;
+ foreach (var rate in rateList)
+ {
+ maxRateNum += rate;
+ }
+ }
+
+ protected override void OnPreOpen()
+ {
+ MinggeManager.Instance.OnMinggeInfoUpdate += Display;
+ Display();
+ }
+
+ protected override void OnPreClose()
+ {
+ MinggeManager.Instance.OnMinggeInfoUpdate -= Display;
+ }
+
+ public void Display()
+ {
+ var config = ItemConfig.Get(MinggeManager.Instance.qlItemID);
+ itemCell.Init(new ItemCellModel(MinggeManager.Instance.qlItemID, false, 0));
+ itemName.text = config.ItemName;
+ desce.text = config.Description;
+ var maxCnt = PackManager.Instance.GetItemCountByID(PackType.Item, MinggeManager.Instance.qlItemID);
+ useCnt = Math.Max(1, (int)maxCnt);
+ sliderPanel.Init((value) => { OnSliderChange(value); }, useCnt, useCnt);
+ DisplayPrayRate();
+ DisplayCostItem();
+ }
+
+
+ void DisplayPrayRate()
+ {
+ qlValueText.text = MinggeManager.Instance.m_Lingying.ToString();
+ var littleRateList = GetRate(MinggeManager.Instance.m_Lingying);
+ var bigRateList = GetRate(MinggeManager.Instance.m_Lingying + useCnt);
+
+ for (int i = 0; i < prayRateCells.Length; i++)
+ {
+ if (i < qualityCnt)
+ {
+ prayRateCells[i].SetActive(true);
+ prayRateCells[i].Display(i, bigRateList, littleRateList, maxRateNum);
+ }
+ else
+ {
+ prayRateCells[i].SetActive(false);
+ }
+ }
+ }
+
+ void DisplayCostItem()
+ {
+ itemIcon.SetItemSprite(MinggeManager.Instance.qlItemID);
+ countText.text = UIHelper.ShowUseItem(PackType.Item, MinggeManager.Instance.qlItemID, useCnt);
+ }
+
+ void OnSliderChange(int value)
+ {
+ useCnt = Math.Max(1, value);
+ DisplayPrayRate();
+ DisplayCostItem();
+ }
+
+ void QL()
+ {
+ if (useCnt == 0)
+ {
+ return;
+ }
+ if (!ItemLogicUtility.CheckItemCount(PackType.Item, MinggeManager.Instance.qlItemID, useCnt, 2))
+ {
+ return;
+ }
+
+ var pack = new CB253_tagCSMinggeQiling();
+ pack.UseCount = (uint)useCnt;
+
+ GameNetSystem.Instance.SendInfo(pack);
+ qlEffect.Play();
+ }
+
+
+ public List<int> GetRate(int value)
+ {
+ var keys = MGLingyingQualityConfig.GetKeys();
+ keys.Sort();
+
+ int littleValue = 0;
+ int bigValue = 0;
+ for (int i = 0; i < keys.Count; i++)
+ {
+ var key = keys[i];
+ if (value < key)
+ {
+ bigValue = key;
+ littleValue = keys[i - 1];
+ break;
+ }
+ else if (i == keys.Count - 1 && value >= key)
+ {
+ bigValue = key;
+ littleValue = key;
+ }
+ }
+
+ var littleRateList = MGLingyingQualityConfig.Get(littleValue).ItemColorWeightList;
+ if (littleValue == bigValue)
+ {
+ return littleRateList.ToList();
+ }
+ var bigRateList = MGLingyingQualityConfig.Get(bigValue).ItemColorWeightList;
+
+ //瀵规瘮涓嬩竴闃舵鐨勭伒搴斿�奸厤缃紝姣旇緝鍚屽搧璐ㄧ殑鏉冮噸宸�间笌涓や釜闃舵鐨勭伒搴斿樊鍊兼眰鍑烘瘡澧炲姞1鐐圭伒搴斿鏌愪釜鍝佽川鐨勬潈閲嶅彉鍖栧�硷紝鍙樺寲鍊煎彲鑳芥彁鍗囨垨鑰呴檷浣�
+
+ var rateList = new List<int>();
+
+ for (int i = 0; i < littleRateList.Length; i++)
+ {
+ var littleRateValue = littleRateList[i];
+ var bigRateValue = bigRateList[i];
+ var diffRate = littleRateValue + (bigRateValue - littleRateValue) / (bigValue - littleValue) * (value - littleValue);
+ rateList.Add(diffRate);
+ }
+
+ return rateList;
+ }
+}
+
diff --git a/Main/System/Mingge/MinggePrayWin.cs.meta b/Main/System/Mingge/MinggePrayWin.cs.meta
new file mode 100644
index 0000000..86a6a21
--- /dev/null
+++ b/Main/System/Mingge/MinggePrayWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 35f6dd00232ff4447a857ee3d82bd456
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Mingge/MinggeSmallTipWin.cs b/Main/System/Mingge/MinggeSmallTipWin.cs
index 5c95be5..235c25b 100644
--- a/Main/System/Mingge/MinggeSmallTipWin.cs
+++ b/Main/System/Mingge/MinggeSmallTipWin.cs
@@ -1,29 +1,113 @@
锘縰sing System;
+using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
public class MinggeSmallTipWin : UIBase
{
- [SerializeField] Text m_text;
- protected override void InitComponent()
- {
+ [SerializeField] RectTransform content;
+ [SerializeField] RectTransform arrow;
+ [SerializeField] MinggeItemCell itemCell;
+ [SerializeField] Text itemName;
+ [SerializeField] OutlineEx itemNameOutline;
+ [SerializeField] List<TextEx> fightAttrNames;
+ [SerializeField] List<TextEx> fightAttrValues;
+ [SerializeField] TextEx[] skillDesces;
- }
protected override void OnPreOpen()
{
Display();
-
}
-
- protected override void OnPreClose()
+ protected override void NextFrameAfterOpen()
{
+ var worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
+
+ Vector2 screenAdjustedPos = CameraManager.uiCamera.WorldToScreenPoint(worldPos);
+
+ var beforePos = screenAdjustedPos;
+ var beforeAdjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(beforePos);
+
+ var rectWidth = content.rect.width * Screen.width / canvasScaler.referenceResolution.x;
+ screenAdjustedPos.x = Mathf.Clamp(screenAdjustedPos.x, rectWidth * 0.5f, Screen.width - rectWidth * 0.5f);
+ screenAdjustedPos.y -= 40;
+ var adjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(screenAdjustedPos);
+ adjustedPos.z = 0;
+ content.position = adjustedPos;
+
+ arrow.position = new Vector3(beforeAdjustedPos.x, arrow.position.y, 0);
}
+
- void Display()
+ public void Display()
{
+ var guid = ItemTipUtility.mainTipData.guid;
+ if (string.IsNullOrEmpty(guid))
+ {
+ DelayCloseWindow().Forget();
+ return;
+ }
+ var equip = PackManager.Instance.GetItemByGuid(guid);
+
+ 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);
+
+
+ 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 = "?";
+ fightAttrNames[i].colorType = TextColType.NavyGray;
+ fightAttrValues[i].text = Language.Get("Mingge27", MinggeManager.Instance.unlockAttrLVList[i - 1] - 1);
+ fightAttrValues[i].colorType = TextColType.NavyGray;
+ }
+ else
+ {
+ fightAttrNames[i].text = PlayerPropertyConfig.Get(fightAttrs[i]).Name;
+ fightAttrNames[i].colorType = TextColType.lightYellow;
+ fightAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(fightAttrs[i], fightValues[i]);
+ fightAttrValues[i].colorType = TextColType.lightYellow;
+ }
+ }
+
+ //鎶�鑳芥弿杩� 鎵�鏈夋妧鑳藉叏鏄剧ず
+ var skillID = EquipModel.Instance.GetEquipSkillID(equip);
+ if (skillID == 0)
+ {
+ for (int i = 0; i < skillDesces.Length; i++)
+ {
+ skillDesces[i].SetActive(false);
+ }
+ }
+ else
+ {
+ var dict = MinggeManager.Instance.GetMinggeSkillTypeIDDict();
+ //濡傛灉鏄棫瑁呭 鏄剧ず褰撳墠鏁伴噺锛涙柊瑁呭涓嶅悓鎶�鑳芥暟閲�+1锛屽悓鎶�鑳戒笉鍙�
+ var hasCnt = dict[skillID].Count;
+ for (int i = 0; i < skillDesces.Length; i++)
+ {
+ skillDesces[i].SetActive(true);
+ skillDesces[i].colorType = i == hasCnt - 1 ? TextColType.lightYellow : TextColType.NavyGray;
+ var showCnt = Math.Min(hasCnt, i + 1);
+ skillDesces[i].text = SkillConfig.Get(skillID).Description + " " + Language.Get("HeroFates11", showCnt, i + 1);
+ }
+ }
}
+
+
+
+
+
}
diff --git a/Main/System/Mingge/MinggeWin.cs b/Main/System/Mingge/MinggeWin.cs
index b1fff9c..2f3da22 100644
--- a/Main/System/Mingge/MinggeWin.cs
+++ b/Main/System/Mingge/MinggeWin.cs
@@ -29,13 +29,14 @@
[SerializeField] Image tyItemImg;
[SerializeField] Text tyItemCntText;
-
+ FuncPresetChooseCells presetChooseCells;
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);
+ presetChooseCells = presetObj.GetComponent<FuncPresetChooseCells>();
seeAttrBtn.AddListener(() =>
{
AttributeManager.Instance.OpenTotalAttributeWin(MinggeManager.Instance.minggeAttrDict);
@@ -49,6 +50,10 @@
ClickSuite(index);
});
}
+ prayBtn.AddListener(()=>
+ {
+ UIManager.Instance.OpenWindow<MinggePrayWin>();
+ });
}
protected override void OnPreOpen()
@@ -58,6 +63,7 @@
PackManager.Instance.DeleteItemEvent += DeleteDropItem;
MinggeManager.Instance.OnMinggeInfoUpdate += OnMinggeInfoUpdate;
UIManager.Instance.OnCloseWindow += OnCloseWindow;
+ FuncPresetManager.Instance.OnFuncPresetUseDataEvent += OnFuncPresetUseDataEvent;
lastLV = MinggeManager.Instance.m_GanwuLV;
lastExp = MinggeManager.Instance.m_GanwuExp;
Display();
@@ -71,6 +77,7 @@
PackManager.Instance.DeleteItemEvent -= DeleteDropItem;
MinggeManager.Instance.OnMinggeInfoUpdate -= OnMinggeInfoUpdate;
UIManager.Instance.OnCloseWindow -= OnCloseWindow;
+ FuncPresetManager.Instance.OnFuncPresetUseDataEvent -= OnFuncPresetUseDataEvent;
}
void OnCloseWindow(UIBase win)
@@ -85,6 +92,12 @@
}
}
+ void OnFuncPresetUseDataEvent()
+ {
+ MinggeManager.Instance.RefrehMinggeAttrs();
+ Display();
+ }
+
void Display()
{
DisplayMGGanwu();
@@ -93,6 +106,7 @@
DisplayCostItem();
moneyMoveByPathCell.SetActive(false);
+ presetChooseCells.Display((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
}
void RefreshItemEvent(PackType type, int index, int itemID)
{
@@ -185,7 +199,14 @@
void SendTuiyan()
{
- MinggeManager.Instance.SendTY(1);
+ if (MinggeManager.Instance.CalcEquip())
+ {
+ return;
+ }
+ tyEffect.onComplete += () =>
+ {
+ MinggeManager.Instance.SendTY(1);
+ };
tyEffect.Play();
}
@@ -193,6 +214,7 @@
void OnMinggeInfoUpdate()
{
DisplayMGGanwu();
+ presetChooseCells.Display((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
}
void DisplayMGGanwu()
diff --git a/Main/System/Tip/ConfirmCancel.cs b/Main/System/Tip/ConfirmCancel.cs
index 0b1541d..dfd4ad4 100644
--- a/Main/System/Tip/ConfirmCancel.cs
+++ b/Main/System/Tip/ConfirmCancel.cs
@@ -298,6 +298,7 @@
}
+ //璐у竵纭妗�:鏈夋樉绀哄嬀閫夌殑 娑堣�楀厓瀹濆嬀閫夌被鍨�
public static void MoneyIconToggleConfirmByType(ToggleCheckType type, int moneyCnt, int _moneyType, string fullTip, Action func)
{
if (toggleCheckDict.ContainsKey(type) && toggleCheckDict[type])
@@ -358,6 +359,7 @@
WashCancel = 1, //娲楃粌鍙栨秷
GoldRush = 2, //娣橀噾
BoneField = 3, //鐧介鐩堥噹
+ FuncPreset = 4, //鍔熻兘(娴佹淳)棰勮
}
--
Gitblit v1.8.0