From 464c36a0811d5a2ef317ebf1adc1711baab52856 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 04 八月 2025 10:51:47 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Hero/HeroInfo.Fetter.cs | 45 +
Main/System/KnapSack/Logic/composeLineCell.cs.meta | 2
Main/System/KnapSack/Logic/composeLineCell.cs | 14
Main/System/KnapSack/Logic/RolePackLineCell.cs.meta | 2
Main/System/Message/ColorAnalysis.cs | 105 +-
Main/System/Hero/HeroInfo.Properties.cs | 12
Main/System/HeroUI/HeroScenePosCell.cs | 2
Main/Config/PartialConfigs/PlayerPropertyConfig.cs | 14
Main/System/KnapSack/New/CommonItemBaisc.cs | 253 +++++---
Main/System/KnapSack/New/ItemCell.cs | 10
Main/Component/UI/Common/GroupButtonEx.cs | 4
Main/Config/PartialConfigs/HeroFetterConfig.cs | 13
Main/Utility/EnumHelper.cs | 3
Main/System/HeroUI/HeroBaseWin.cs | 25
Main/System/HeroUI/HeroFormationCell.cs.meta | 2
Main/Config/PartialConfigs/HeroLineupHaloConfig.cs | 10
Main/System/Hero/HeroInfo.cs | 1
Main/System/KnapSack/Logic/PackGirdCell.cs.meta | 2
Main/System/HeroUI/HeroSelectBehaviour.cs | 22
Main/System/Main/FuncsBaseWin.cs | 12
Main/Config/ConfigManager.cs | 114 ---
Main/Component/UI/Effect/UIEffectPlayer.cs | 10
Main/System/HeroUI/HeroConnectionHeadCell.cs | 6
Main/System/KnapSack/Logic/ItemLogicUtility.cs | 2
Main/System/GeneralConfig/GeneralDefine.cs | 2
Main/System/Hero/HeroManager.cs | 34
Main/System/Main/HomeWin.cs | 11
Main/Config/Configs/ItemConfig.cs | 37
Main/System/KnapSack/Logic/SinglePack.cs | 8
Main/System/HeroUI/HeroFormationCell.cs | 71 ++
Main/Component/UI/Effect/EffectPlayer.cs | 1
Main/System/Team/TeamBase.cs | 10
Main/Core/ResModule/GameObjectPoolManager.cs | 64 ++
Main/System/KnapSack/Logic/PackGirdCell.cs | 17
Main/System/KnapSack/Logic/RolePackLineCell.cs | 26
Main/System/KnapSack/PackManager.cs | 60 +
Main/System/Hero/UIHeroController.cs | 5
Main/System/KnapSack/Logic/RolePackWin.cs | 184 ++++++
Main/System/HeroUI/HeroFormationWin.cs.meta | 2
Main/System/HeroUI/HeroFormationWin.cs | 70 ++
/dev/null | 56 --
Main/System/Team/TeamType.cs | 10
Main/Utility/UIHelper.cs | 32
Main/System/HeroUI/HeroConnectionCell.cs | 22
Main/System/HeroUI/HeroPosWin.cs | 181 +++++
Main/System/KnapSack/Logic/RolePackWin.cs.meta | 2
Main/System/Main/MainWin.cs | 18
Main/Component/UI/Common/GroupButtonExManager.cs | 22
Main/System/HeroUI/HeroUIManager.cs | 45 +
49 files changed, 1,162 insertions(+), 513 deletions(-)
diff --git a/Main/Component/UI/Common/GroupButtonEx.cs b/Main/Component/UI/Common/GroupButtonEx.cs
index 99fa338..f56f99a 100644
--- a/Main/Component/UI/Common/GroupButtonEx.cs
+++ b/Main/Component/UI/Common/GroupButtonEx.cs
@@ -103,7 +103,7 @@
SelectBtn();
}
- // 閫変腑褰撳墠鎸夐挳
+ // 閫変腑褰撳墠鎸夐挳锛屽彧澶勭悊鍒锋柊鏄剧ず
public void SelectBtn(bool forceRefresh = false)
{
if (m_State == TitleBtnState.Click && !forceRefresh)
@@ -115,8 +115,6 @@
m_Manager.SelectButton(this);
}
- // 璁剧疆褰撳墠鎸夐挳涓洪�変腑鐘舵��
- state = TitleBtnState.Click;
}
// 鏇存柊鎸夐挳鐘舵��
diff --git a/Main/Component/UI/Common/GroupButtonExManager.cs b/Main/Component/UI/Common/GroupButtonExManager.cs
index bd88ecf..176a92b 100644
--- a/Main/Component/UI/Common/GroupButtonExManager.cs
+++ b/Main/Component/UI/Common/GroupButtonExManager.cs
@@ -7,6 +7,7 @@
using System.Collections.Generic;
using System;
+using Cysharp.Threading.Tasks;
/// <summary>
/// 鎸夐挳缁勭鐞嗗櫒锛岃礋璐g鐞咷roupButtonEx缁勪欢鐨勭粍鍏崇郴鍜岀姸鎬佸垏鎹�
@@ -16,8 +17,8 @@
{
// 鎸夐挳缁勫垪琛�
private List<GroupButtonEx> m_Buttons = new List<GroupButtonEx>();
-
- [SerializeField] Color m_SelectedTextColor = Color.white; // 閫変腑鐘舵�佹枃瀛楅鑹�
+
+ [SerializeField] Color m_SelectedTextColor = UIHelper.GetUIColor(TextColType.titleSelectColor); // 閫変腑鐘舵�佹枃瀛楅鑹�
public Color selectedTextColor {
get { return m_SelectedTextColor; }
set {
@@ -25,12 +26,24 @@
}
}
- [SerializeField] Color m_NormalTextColor = new Color(0.7f, 0.7f, 0.7f); // 鏈�変腑鐘舵�佹枃瀛楅鑹�
+ [SerializeField] Color m_NormalTextColor = UIHelper.GetUIColor(TextColType.titleUnSelectColor); // 鏈�変腑鐘舵�佹枃瀛楅鑹�
public Color normalTextColor {
get { return m_NormalTextColor; }
set {
m_NormalTextColor = value;
}
+ }
+
+
+ void OnEnable()
+ {
+ ExecuteNextFrame();
+ }
+
+ protected async void ExecuteNextFrame()
+ {
+ await UniTask.DelayFrame(1);
+ UpdateAllButtonsState();
}
/// <summary>
@@ -70,6 +83,7 @@
if (button == null)
return;
+ button.state = TitleBtnState.Click;
// 鍙栨秷鍏朵粬鎸夐挳鐨勯�変腑鐘舵��
foreach (var btn in m_Buttons)
{
@@ -119,7 +133,7 @@
/// </summary>
private void UpdateAllButtonsState()
{
- SortBtns();
+ // SortBtns();
foreach (var btn in m_Buttons)
{
diff --git a/Main/Component/UI/Common/ItemBaseEffect.cs b/Main/Component/UI/Common/ItemBaseEffect.cs
deleted file mode 100644
index d7866fd..0000000
--- a/Main/Component/UI/Common/ItemBaseEffect.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-public class ItemBaseEffect : MonoBehaviour
-{
- [SerializeField] UIEffectPlayer m_SuitEffect;
-
- int itemId = 0;
-
- private void OnEnable()
- {
- Display(itemId);
- }
-
- public void Display(int itemId, bool dirty = false)
- {
- this.itemId = itemId;
- var curItem = ItemConfig.Get(this.itemId);
- bool isPlay = true;
- if (curItem == null)
- {
- isPlay = false;
- return;
- }
-
- int effectId = 0;
- switch (curItem.ItemColor)
- {
- case 4:
- effectId = 7119;
- break;
- case 5:
- effectId = 7120;
- break;
- case 6:
- case 7:
- case 8:
- effectId = 7121;
- break;
- }
-
- if (curItem.BaseEffectID != 0)
- {
- effectId = curItem.BaseEffectID;
- }
-
- if (m_SuitEffect.effectId != effectId)
- {
- //鍚屼竴涓綅缃浛鎹㈢壒鏁堥渶瑕佸厛閲婃斁
- m_SuitEffect.Stop();
- }
- m_SuitEffect.effectId = effectId;
-
- if (m_SuitEffect.effectId == 0)
- {
- isPlay = false;
- }
- if (isPlay)
- {
- m_SuitEffect.SetActive(true);
- }
- else
- {
- m_SuitEffect.SetActive(false);
- }
- }
-
- public static ItemBaseEffect Create(RectTransform transform)
- {
- var go = UIUtility.CreateWidget("ItemBaseEffect", "ItemBaseEffect");
- var behaviour = go.GetComponent<ItemBaseEffect>();
-
- var scale = 1f;
- var itemBasic = transform.GetComponentInParent<CommonItemBaisc>();
- if (itemBasic == null)
- itemBasic = transform.GetComponentInParent<ItemCell>();
- if (itemBasic != null)
- {
- scale = GetEffectScale(itemBasic.format);
- }
- else
- {
- var itemBehaviour = transform.GetComponentInParent<ItemBehaviour>();
- if (itemBehaviour != null)
- {
- if (itemBehaviour.backGround != null)
- {
- var size = itemBehaviour.backGround.rectTransform.rect.width;
- scale = size / 84;
- }
- }
-
- }
-
- var rect = go.transform as RectTransform;
- go.transform.SetParentEx(transform, Vector3.zero, Quaternion.identity, Vector3.one);
- rect.MatchWhith(transform);
- go.transform.localScale = Vector3.one * scale;
- go.transform.SetAsLastSibling();
-
- return behaviour;
- }
-
-
- static float GetEffectScale(ItemCellformat format)
- {
- switch (format)
- {
- case ItemCellformat.Format_120x120:
- return 1.2f;
- case ItemCellformat.Format_100x100:
- return 1.1f;
- case ItemCellformat.Format_84x84:
- return 1f;
- case ItemCellformat.Format_80x80:
- return 0.95f;
- case ItemCellformat.Format_70x70:
- return 0.83f;
- case ItemCellformat.Format_64x64:
- return 0.76f;
- default:
- return 1f;
- }
- }
-}
diff --git a/Main/Component/UI/Common/ItemBaseEffect.cs.meta b/Main/Component/UI/Common/ItemBaseEffect.cs.meta
deleted file mode 100644
index 423ea25..0000000
--- a/Main/Component/UI/Common/ItemBaseEffect.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: ad12bde7ddfa38e44aa5dc55f1075bc2
-timeCreated: 1603121065
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Main/Component/UI/Common/ItemBehaviour.cs b/Main/Component/UI/Common/ItemBehaviour.cs
deleted file mode 100644
index 8a1e820..0000000
--- a/Main/Component/UI/Common/ItemBehaviour.cs
+++ /dev/null
@@ -1,185 +0,0 @@
-锘�//--------------------------------------------------------
-// [Author]: 鐜╀釜娓告垙
-// [ Date ]: Monday, July 31, 2017
-//--------------------------------------------------------
-using UnityEngine;
-using System.Collections;
-using UnityEngine.UI;
-using System;
-
-
-public class ItemBehaviour : MonoBehaviour
-{
-
-
- [SerializeField] ImageEx m_Icon;
- public ImageEx icon { get { return m_Icon; } }
-
- [SerializeField] ImageEx m_BackGround;
- public ImageEx backGround { get { return m_BackGround; } }
-
- [SerializeField] Transform m_CountContainer;
- public Transform countContainer { get { return m_CountContainer; } }
-
- [SerializeField] Text m_Count;
- public Text count { get { return m_Count; } }
-
- [SerializeField] Button m_ViewDetails;
-
- [SerializeField] ItemType m_ItemType = ItemType.Rewards;
-
- //鐗╁搧鍩虹鐗规晥锛堢墿鍝佽〃锛�
- ItemBaseEffect m_ItemBaseEffect;
- ItemBaseEffect itemBaseEffect
- {
- get
- {
- if (m_ItemBaseEffect == null)
- {
- m_ItemBaseEffect = ItemBaseEffect.Create(transform as RectTransform);
- }
- return m_ItemBaseEffect;
- }
- }
-
- bool m_ShowCount = true;
- public bool showCount
- {
- get
- {
- return m_ShowCount;
- }
- set
- {
- if (m_ShowCount != value)
- {
- m_ShowCount = value;
- DisplayCount();
- }
- }
- }
-
- public int itemId
- {
- get; private set;
- }
-
- public int itemCount
- {
- get; private set;
- }
-
- public int itemQuality { get; private set; }
-
- private void Awake()
- {
- if (m_ViewDetails != null)
- {
- m_ViewDetails.SetListener(ViewDetails);
- }
- }
-
- public void SetItem(Item _item)
- {
- SetItem(_item.id, _item.count, _item.quality);
- }
-
- public void SetItem(int _id, int _count, int _quality = 0)
- {
- itemId = _id;
- itemCount = _count;
- itemQuality = _quality;
- DisplayBaseInfo();
- DisplayCount();
- }
-
- public void SetCount(int _count)
- {
- itemCount = _count;
- DisplayCount();
- }
-
- public void DisplayEmpty()
- {
- try
- {
- icon.SetActive(false);
- backGround.SetActive(false);
- if (countContainer != null)
- {
- countContainer.SetActive(false);
- }
- }
- catch (System.Exception ex)
- {
- Debug.Log(ex);
- }
- }
-
- private void DisplayBaseInfo()
- {
- try
- {
- var itemInfo = ItemConfig.Get(itemId);
- if (icon != null)
- {
- icon.SetActive(true);
- icon.SetSprite(itemInfo.IconKey);
- }
-
- if (backGround != null)
- {
- backGround.SetActive(true);
- backGround.SetItemBackGround(itemQuality != 0 ? itemQuality : itemInfo.ItemColor, itemInfo.QualityEchoType);
- }
-
- itemBaseEffect.Display(itemId);
- }
- catch (Exception e)
- {
- Debug.Log(e);
- }
- }
-
- private void DisplayCount()
- {
- if (countContainer == null)
- {
- return;
- }
- switch (m_ItemType)
- {
- case ItemType.Rewards:
- if (showCount && itemCount > 1)
- {
- countContainer.SetActive(true);
- count.text = UIHelper.ReplaceLargeNum((ulong)itemCount);
- }
- else
- {
- countContainer.SetActive(false);
- }
- break;
- case ItemType.Use:
- var _itemCnt = PackManager.Instance.GetItemCountByID(PackType.Item, itemId);
- count.text = StringUtility.Contact(_itemCnt >= itemCount ? "<color=#35e112>" : "<color=#ff0303>", _itemCnt,
- "</color><color=#f7f7f7>/", itemCount, "</color>");
- break;
- }
- }
-
- private void ViewDetails()
- {
- ItemTipUtility.Show(itemId);
- }
-
- public enum ItemType
- {
- Rewards,
- Use,
- }
-}
-
-
-
-
diff --git a/Main/Component/UI/Common/ItemBehaviour.cs.meta b/Main/Component/UI/Common/ItemBehaviour.cs.meta
deleted file mode 100644
index cec07ae..0000000
--- a/Main/Component/UI/Common/ItemBehaviour.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: a11c4ed088f00fb4baea8b08f0cfa42f
-timeCreated: 1501488202
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Main/Component/UI/Effect/EffectPlayer.cs b/Main/Component/UI/Effect/EffectPlayer.cs
index 0246021..16010c2 100644
--- a/Main/Component/UI/Effect/EffectPlayer.cs
+++ b/Main/Component/UI/Effect/EffectPlayer.cs
@@ -169,6 +169,7 @@
}
PlayerEffect(true);
+ SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
}
diff --git a/Main/Component/UI/Effect/UIEffectPlayer.cs b/Main/Component/UI/Effect/UIEffectPlayer.cs
index 3de63e7..a8fc647 100644
--- a/Main/Component/UI/Effect/UIEffectPlayer.cs
+++ b/Main/Component/UI/Effect/UIEffectPlayer.cs
@@ -73,12 +73,17 @@
{
PlayerEffect(false);
}
-
+ SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
}
protected override void PlaySpineEffect()
{
+ if (spineComp == null)
+ {
+ spineComp = gameObject.AddMissingComponent<SkeletonGraphic>();
+ }
+
if (spineComp.skeletonDataAsset == null)
{
//LoadAsset 宸茬粡鏈夌紦瀛楽keletonDataAsset
@@ -86,6 +91,7 @@
spineComp.raycastTarget = false;
spineComp.Initialize(true);
spineAnimationState = spineComp.AnimationState;
+ spineAnimationState.Data.DefaultMix = 0f;
spineAnimationState.Complete -= OnSpineAnimationComplete;
spineAnimationState.Complete += OnSpineAnimationComplete;
}
@@ -103,7 +109,7 @@
if (skeletonData.Animations.Count > 0)
{
string defaultAnimationName = skeletonData.Animations.Items[0].Name;
- spineComp.AnimationState.SetAnimation(0, defaultAnimationName, isPlaySpineLoop);
+ spineAnimationState.SetAnimation(0, defaultAnimationName, isPlaySpineLoop);
}
else
{
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index f6e63cb..6061df9 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -38,51 +38,25 @@
// 鍔犺浇閰嶇疆鏂囦欢
HashSet<Type> configTypes = new HashSet<Type>() {
- typeof(ChatBubbleBoxConfig),
+ typeof(ChestsAwardConfig),
typeof(CTGConfig),
- typeof(DailyLivenessRewardConfig),
- typeof(DailyQuestConfig),
- typeof(DailyQuestOpenTimeConfig),
- typeof(DienstgradConfig),
- typeof(DirtyNameConfig),
typeof(DirtyWordConfig),
- typeof(EffectConfig),
typeof(EquipGSParamConfig),
- typeof(EquipPlaceMapConfig),
- typeof(FamilyEmblemConfig),
- typeof(FrameAnimationConfig),
- typeof(FuncConfigConfig),
- typeof(FuncOpenLVConfig),
- typeof(FunctionTeamSetConfig),
- typeof(GetItemWaysConfig),
- typeof(GmCmdConfig),
- typeof(HeroAwakeConfig),
- typeof(HeroConfig),
+ typeof(FaceConfig),
typeof(HeroLineupHaloConfig),
- typeof(HeroQualityAwakeConfig),
- typeof(HeroQualityBreakConfig),
- typeof(HeroQualityConfig),
typeof(HeroQualityLVConfig),
- typeof(HeroSkinConfig),
typeof(ItemConfig),
- typeof(KickOutReasonConfig),
typeof(MainChapterConfig),
typeof(MainLevelConfig),
typeof(NPCConfig),
+ typeof(NPCExConfig),
typeof(NPCLineupConfig),
typeof(OrderInfoConfig),
typeof(PlayerFaceConfig),
- typeof(PlayerLVConfig),
- typeof(PlayerPropertyConfig),
- typeof(priorbundleConfig),
- typeof(RealmConfig),
- typeof(RealmLVUPTaskConfig),
- typeof(RuleConfig),
- typeof(SkillConfig),
- typeof(TaskConfig),
+ typeof(StoreConfig),
+ typeof(SuccessConfig),
+ typeof(SysInfoConfig),
typeof(TitleStarUpConfig),
- typeof(TreasureCntAwardConfig),
- typeof(TreasureItemLibConfig),
typeof(TreasureSetConfig),
typeof(TreeLVConfig),
typeof(XBGetItemConfig)
@@ -235,96 +209,44 @@
public override void Release()
{
- // 娓呯┖ ChatBubbleBoxConfig 瀛楀吀
- ClearConfigDictionary<ChatBubbleBoxConfig>();
+ // 娓呯┖ ChestsAwardConfig 瀛楀吀
+ ClearConfigDictionary<ChestsAwardConfig>();
// 娓呯┖ CTGConfig 瀛楀吀
ClearConfigDictionary<CTGConfig>();
- // 娓呯┖ DailyLivenessRewardConfig 瀛楀吀
- ClearConfigDictionary<DailyLivenessRewardConfig>();
- // 娓呯┖ DailyQuestConfig 瀛楀吀
- ClearConfigDictionary<DailyQuestConfig>();
- // 娓呯┖ DailyQuestOpenTimeConfig 瀛楀吀
- ClearConfigDictionary<DailyQuestOpenTimeConfig>();
- // 娓呯┖ DienstgradConfig 瀛楀吀
- ClearConfigDictionary<DienstgradConfig>();
- // 娓呯┖ DirtyNameConfig 瀛楀吀
- ClearConfigDictionary<DirtyNameConfig>();
// 娓呯┖ DirtyWordConfig 瀛楀吀
ClearConfigDictionary<DirtyWordConfig>();
- // 娓呯┖ EffectConfig 瀛楀吀
- ClearConfigDictionary<EffectConfig>();
// 娓呯┖ EquipGSParamConfig 瀛楀吀
ClearConfigDictionary<EquipGSParamConfig>();
- // 娓呯┖ EquipPlaceMapConfig 瀛楀吀
- ClearConfigDictionary<EquipPlaceMapConfig>();
- // 娓呯┖ FamilyEmblemConfig 瀛楀吀
- ClearConfigDictionary<FamilyEmblemConfig>();
- // 娓呯┖ FrameAnimationConfig 瀛楀吀
- ClearConfigDictionary<FrameAnimationConfig>();
- // 娓呯┖ FuncConfigConfig 瀛楀吀
- ClearConfigDictionary<FuncConfigConfig>();
- // 娓呯┖ FuncOpenLVConfig 瀛楀吀
- ClearConfigDictionary<FuncOpenLVConfig>();
- // 娓呯┖ FunctionTeamSetConfig 瀛楀吀
- ClearConfigDictionary<FunctionTeamSetConfig>();
- // 娓呯┖ GetItemWaysConfig 瀛楀吀
- ClearConfigDictionary<GetItemWaysConfig>();
- // 娓呯┖ GmCmdConfig 瀛楀吀
- ClearConfigDictionary<GmCmdConfig>();
- // 娓呯┖ HeroAwakeConfig 瀛楀吀
- ClearConfigDictionary<HeroAwakeConfig>();
- // 娓呯┖ HeroConfig 瀛楀吀
- ClearConfigDictionary<HeroConfig>();
+ // 娓呯┖ FaceConfig 瀛楀吀
+ ClearConfigDictionary<FaceConfig>();
// 娓呯┖ HeroLineupHaloConfig 瀛楀吀
ClearConfigDictionary<HeroLineupHaloConfig>();
- // 娓呯┖ HeroQualityAwakeConfig 瀛楀吀
- ClearConfigDictionary<HeroQualityAwakeConfig>();
- // 娓呯┖ HeroQualityBreakConfig 瀛楀吀
- ClearConfigDictionary<HeroQualityBreakConfig>();
- // 娓呯┖ HeroQualityConfig 瀛楀吀
- ClearConfigDictionary<HeroQualityConfig>();
// 娓呯┖ HeroQualityLVConfig 瀛楀吀
ClearConfigDictionary<HeroQualityLVConfig>();
- // 娓呯┖ HeroSkinConfig 瀛楀吀
- ClearConfigDictionary<HeroSkinConfig>();
// 娓呯┖ ItemConfig 瀛楀吀
ClearConfigDictionary<ItemConfig>();
- // 娓呯┖ KickOutReasonConfig 瀛楀吀
- ClearConfigDictionary<KickOutReasonConfig>();
// 娓呯┖ MainChapterConfig 瀛楀吀
ClearConfigDictionary<MainChapterConfig>();
// 娓呯┖ MainLevelConfig 瀛楀吀
ClearConfigDictionary<MainLevelConfig>();
// 娓呯┖ NPCConfig 瀛楀吀
ClearConfigDictionary<NPCConfig>();
+ // 娓呯┖ NPCExConfig 瀛楀吀
+ ClearConfigDictionary<NPCExConfig>();
// 娓呯┖ NPCLineupConfig 瀛楀吀
ClearConfigDictionary<NPCLineupConfig>();
// 娓呯┖ OrderInfoConfig 瀛楀吀
ClearConfigDictionary<OrderInfoConfig>();
// 娓呯┖ PlayerFaceConfig 瀛楀吀
ClearConfigDictionary<PlayerFaceConfig>();
- // 娓呯┖ PlayerLVConfig 瀛楀吀
- ClearConfigDictionary<PlayerLVConfig>();
- // 娓呯┖ PlayerPropertyConfig 瀛楀吀
- ClearConfigDictionary<PlayerPropertyConfig>();
- // 娓呯┖ priorbundleConfig 瀛楀吀
- ClearConfigDictionary<priorbundleConfig>();
- // 娓呯┖ RealmConfig 瀛楀吀
- ClearConfigDictionary<RealmConfig>();
- // 娓呯┖ RealmLVUPTaskConfig 瀛楀吀
- ClearConfigDictionary<RealmLVUPTaskConfig>();
- // 娓呯┖ RuleConfig 瀛楀吀
- ClearConfigDictionary<RuleConfig>();
- // 娓呯┖ SkillConfig 瀛楀吀
- ClearConfigDictionary<SkillConfig>();
- // 娓呯┖ TaskConfig 瀛楀吀
- ClearConfigDictionary<TaskConfig>();
+ // 娓呯┖ StoreConfig 瀛楀吀
+ ClearConfigDictionary<StoreConfig>();
+ // 娓呯┖ SuccessConfig 瀛楀吀
+ ClearConfigDictionary<SuccessConfig>();
+ // 娓呯┖ SysInfoConfig 瀛楀吀
+ ClearConfigDictionary<SysInfoConfig>();
// 娓呯┖ TitleStarUpConfig 瀛楀吀
ClearConfigDictionary<TitleStarUpConfig>();
- // 娓呯┖ TreasureCntAwardConfig 瀛楀吀
- ClearConfigDictionary<TreasureCntAwardConfig>();
- // 娓呯┖ TreasureItemLibConfig 瀛楀吀
- ClearConfigDictionary<TreasureItemLibConfig>();
// 娓呯┖ TreasureSetConfig 瀛楀吀
ClearConfigDictionary<TreasureSetConfig>();
// 娓呯┖ TreeLVConfig 瀛楀吀
diff --git a/Main/Config/Configs/ItemConfig.cs b/Main/Config/Configs/ItemConfig.cs
index be83867..a39fdc4 100644
--- a/Main/Config/Configs/ItemConfig.cs
+++ b/Main/Config/Configs/ItemConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�7鏈�26鏃�
+// [ Date ]: Monday, August 4, 2025
//--------------------------------------------------------
using System.Collections.Generic;
@@ -71,7 +71,6 @@
public int ChangeOrd;
public string Description;
public string QualityName;
- public int QualityEchoType;
public int LimitSTR;
public int LimitPHY;
public int LimitPNE;
@@ -227,31 +226,29 @@
QualityName = tables[59];
- int.TryParse(tables[60],out QualityEchoType);
+ int.TryParse(tables[60],out LimitSTR);
- int.TryParse(tables[61],out LimitSTR);
+ int.TryParse(tables[61],out LimitPHY);
- int.TryParse(tables[62],out LimitPHY);
+ int.TryParse(tables[62],out LimitPNE);
- int.TryParse(tables[63],out LimitPNE);
+ Template = tables[63];
- Template = tables[64];
+ int.TryParse(tables[64],out DropItemPattern);
- int.TryParse(tables[65],out DropItemPattern);
+ int.TryParse(tables[65],out SellTip);
- int.TryParse(tables[66],out SellTip);
+ int.TryParse(tables[66],out BatchUse);
- int.TryParse(tables[67],out BatchUse);
+ int.TryParse(tables[67],out Jump);
- int.TryParse(tables[68],out Jump);
-
- if (tables[69].Contains("["))
+ if (tables[68].Contains("["))
{
- GetWay = JsonMapper.ToObject<int[]>(tables[69]);
+ GetWay = JsonMapper.ToObject<int[]>(tables[68]);
}
else
{
- string[] GetWayStringArray = tables[69].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] GetWayStringArray = tables[68].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
GetWay = new int[GetWayStringArray.Length];
for (int i=0;i<GetWayStringArray.Length;i++)
{
@@ -259,15 +256,15 @@
}
}
- ItemTypeName = tables[70];
+ ItemTypeName = tables[69];
- if (tables[71].Contains("["))
+ if (tables[70].Contains("["))
{
- UseCondiType = JsonMapper.ToObject<int[]>(tables[71]);
+ UseCondiType = JsonMapper.ToObject<int[]>(tables[70]);
}
else
{
- string[] UseCondiTypeStringArray = tables[71].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] UseCondiTypeStringArray = tables[70].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
UseCondiType = new int[UseCondiTypeStringArray.Length];
for (int i=0;i<UseCondiTypeStringArray.Length;i++)
{
@@ -275,7 +272,7 @@
}
}
- int.TryParse(tables[72],out BaseEffectID);
+ int.TryParse(tables[71],out BaseEffectID);
}
catch (Exception exception)
{
diff --git a/Main/Config/PartialConfigs/HeroFetterConfig.cs b/Main/Config/PartialConfigs/HeroFetterConfig.cs
index 26b58b9..bc0a885 100644
--- a/Main/Config/PartialConfigs/HeroFetterConfig.cs
+++ b/Main/Config/PartialConfigs/HeroFetterConfig.cs
@@ -1,18 +1,19 @@
锘�
using System.Collections.Generic;
using System.IO;
-using System.Threading;
using System;
using UnityEngine;
using LitJson;
+using System.Linq;
+//缇佺粖锛氭灏�
public partial class HeroFetterConfig : ConfigBase<int, HeroFetterConfig>
{
private Dictionary<HeroAttrType, int> attrValues = new Dictionary<HeroAttrType, int>();
protected override void OnConfigParseCompleted()
- {
- base.OnConfigParseCompleted();
+ {
+ base.OnConfigParseCompleted();
// public int[] AttrIDList;
// public int[] AttrValueList;
@@ -34,7 +35,9 @@
attrValues.Add((HeroAttrType)AttrIDList[i], AttrValueList[i]);
}
- }
+
+
+ }
public int GetFetterAttr(HeroAttrType attrType)
{
@@ -45,4 +48,6 @@
return 0;
}
+
+
}
diff --git a/Main/Config/PartialConfigs/HeroLineupHaloConfig.cs b/Main/Config/PartialConfigs/HeroLineupHaloConfig.cs
index 832b17e..59d8155 100644
--- a/Main/Config/PartialConfigs/HeroLineupHaloConfig.cs
+++ b/Main/Config/PartialConfigs/HeroLineupHaloConfig.cs
@@ -4,7 +4,7 @@
public partial class HeroLineupHaloConfig : ConfigBase<int, HeroLineupHaloConfig>
{
// 鍥藉 鏁伴噺
- public static Dictionary<int, Dictionary<int, HeroLineupHaloConfig>> configDics = new Dictionary<int, Dictionary<int, HeroLineupHaloConfig>>();
+ private static Dictionary<int, Dictionary<int, HeroLineupHaloConfig>> configDics = new Dictionary<int, Dictionary<int, HeroLineupHaloConfig>>();
protected override void OnConfigParseCompleted()
{
@@ -32,4 +32,12 @@
return configDics[country][count];
}
+ public static Dictionary<int, HeroLineupHaloConfig> GetAttrsByCountry(int country)
+ {
+ Dictionary<int, HeroLineupHaloConfig> attrs;
+ configDics.TryGetValue(country, out attrs);
+
+ return attrs;
+ }
+
}
\ No newline at end of file
diff --git a/Main/Config/PartialConfigs/PlayerPropertyConfig.cs b/Main/Config/PartialConfigs/PlayerPropertyConfig.cs
index 179c143..4ea7bc6 100644
--- a/Main/Config/PartialConfigs/PlayerPropertyConfig.cs
+++ b/Main/Config/PartialConfigs/PlayerPropertyConfig.cs
@@ -76,7 +76,7 @@
return GetFullDescription(property.x, property.y);
}
- public static string GetFullDescription(int id, long value)
+ public static string GetFullDescription(int id, long value, string format="{0}+{1}")
{
var config = Get(id);
if (config == null)
@@ -86,18 +86,18 @@
if (config.ShowName.Contains("%s"))
{
- if (id == 52)
- {
- return Regex.Replace(config.ShowName, "%s", (value * 0.0001f).ToString("f2"));
- }
- else
+ // if (id == 52)
+ // {
+ // return Regex.Replace(config.ShowName, "%s", (value * 0.0001f).ToString("f2"));
+ // }
+ // else
{
return Regex.Replace(config.ShowName, "%s", value.ToString());
}
}
else
{
- return string.Format("{0} +{1}", config.ShowName, GetValueDescription(id, value));
+ return string.Format(format, config.ShowName, GetValueDescription(id, value));
}
}
diff --git a/Main/Core/ResModule/GameObjectPoolManager.cs b/Main/Core/ResModule/GameObjectPoolManager.cs
index 5214318..942a36e 100644
--- a/Main/Core/ResModule/GameObjectPoolManager.cs
+++ b/Main/Core/ResModule/GameObjectPoolManager.cs
@@ -2,6 +2,11 @@
using UnityEngine;
using System;
using Cysharp.Threading.Tasks;
+using System.Linq;
+
+#if UNITY_EDITOR
+using UnityEngine.Profiling;
+#endif
public class GameObjectPoolManager : SingletonMonobehaviour<GameObjectPoolManager>
@@ -10,6 +15,7 @@
private bool m_ShowDebugPanel = false;
private Vector2 m_ScrollPosition = Vector2.zero;
+
private void OnGUI()
{
if (!m_ShowDebugPanel) return;
@@ -19,6 +25,7 @@
m_ScrollPosition = GUILayout.BeginScrollView(m_ScrollPosition, GUILayout.Width(380), GUILayout.Height(580));
GUILayout.Label("瀵硅薄姹犺皟璇曢潰鏉�", GUILayout.Height(30));
+ LogPoolMemoryUsage();
GUILayout.Space(10);
foreach (var poolEntry in m_PoolDict)
@@ -49,6 +56,63 @@
Instance.m_ShowDebugPanel = !Instance.m_ShowDebugPanel;
}
}
+
+ public void LogPoolMemoryUsage()
+ {
+ long totalMemory = 0;
+ long totalFreeMemory = 0;
+ var prefabMemoryDict = new Dictionary<string, long>();
+
+ foreach (var poolEntry in m_PoolDict)
+ {
+ int prefabInstanceId = poolEntry.Key;
+ GameObjectPool pool = poolEntry.Value;
+ string prefabName = pool.Prefab.name;
+ long prefabMemory = 0;
+ long freeMemory = 0;
+
+ // 璁$畻娲昏穬瀵硅薄鐨勫唴瀛樺崰鐢�
+ foreach (var gameObject in pool.m_ActiveHashSet)
+ {
+ if (gameObject != null)
+ {
+ long memory = Profiler.GetRuntimeMemorySizeLong(gameObject);
+ prefabMemory += memory;
+ }
+ }
+
+ // 璁$畻绌洪棽瀵硅薄鐨勫唴瀛樺崰鐢�
+ foreach (var gameObject in pool.m_FreeQueue)
+ {
+ if (gameObject != null)
+ {
+ long memory = Profiler.GetRuntimeMemorySizeLong(gameObject);
+ prefabMemory += memory;
+ freeMemory += memory;
+ }
+ }
+
+ totalMemory += prefabMemory;
+ totalFreeMemory += freeMemory;
+ prefabMemoryDict[prefabName] = prefabMemory;
+ }
+
+ // 鎸夊唴瀛樺崰鐢ㄦ帓搴�
+ var sortedPrefabs = prefabMemoryDict.OrderByDescending(kv => kv.Value).Take(3).ToList();
+
+ GUILayout.Label($"鎬诲唴瀛樺崰鐢�: {totalMemory / 1024} KB", GUILayout.Height(30));
+ GUILayout.Label($"绌洪棽鍐呭瓨鍗犵敤: {totalFreeMemory / 1024} KB", GUILayout.Height(30));
+ GUILayout.Label("鍗犵敤鏈�楂樼殑鍓�3棰勫埗浣撳悕:", GUILayout.Height(30));
+ foreach (var prefabInstance in sortedPrefabs)
+ {
+ GUILayout.BeginHorizontal("Box");
+ GUILayout.Label($"{prefabInstance.Key}({prefabInstance.Value / 1024} KB)", GUILayout.Height(25));
+ GUILayout.EndHorizontal();
+ }
+
+ }
+
+
#endif
// 姹犵粺璁℃暟鎹�
public Dictionary<int, PoolStats> PoolStatistics { get; private set; } = new Dictionary<int, PoolStats>();
diff --git a/Main/System/GeneralConfig/GeneralDefine.cs b/Main/System/GeneralConfig/GeneralDefine.cs
index 7b2c547..302a4e9 100644
--- a/Main/System/GeneralConfig/GeneralDefine.cs
+++ b/Main/System/GeneralConfig/GeneralDefine.cs
@@ -12,7 +12,6 @@
public const int CrossFamilyBattleMapID = 32090;
public static int initDepotGridCount { get; private set; }
public static int maxDepotGridCount { get; private set; }
- public static int initBagGridCount { get; private set; }
public static int maxBagGridCount { get; private set; }
public static int maxXBGridCount { get; private set; }
public static int playerMaxLevel { get; private set; }
@@ -260,7 +259,6 @@
// BlueEquipJumpLevel = GetInt("BlueEquipJumpLevel");
// initDepotGridCount = GetInt("InitDepotCellCount");
// maxDepotGridCount = GetInt("MaxDepotCellCount");
- // initBagGridCount = GetInt("InitBagCellCount");
// maxBagGridCount = GetInt("MaxBagCellCount");
// maxXBGridCount = GetInt("TreasureSet", 3);
diff --git a/Main/System/Hero/HeroFetterInfo.cs b/Main/System/Hero/HeroFetterInfo.cs
deleted file mode 100644
index 2bab5c8..0000000
--- a/Main/System/Hero/HeroFetterInfo.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-public class HeroFetterInfo
-{
- private HeroInfo heroInfo;
- private int fetterId;
-
- public HeroFetterConfig fetterConfig;
-
- protected bool isActive = false;
-
- public HeroFetterInfo(HeroInfo _heroInfo, int _fetterId)
- {
- heroInfo = _heroInfo;
- fetterId = _fetterId;
-
- fetterConfig = HeroFetterConfig.Get(fetterId);
- }
-
- // 鏄惁婵�娲讳簡缇佺粖
- public bool IsActiveFetter()
- {
- return isActive;
- }
-
- public void SetIsActiveFetter(TeamBase teamBase)
- {
- int fetterHeroCount = fetterConfig.HeroIDList.Length;
-
- int count = 0;
-
- for (int i = 0; i < teamBase.serverHeroes.Length; i++)
- {
- TeamHero teamHero = teamBase.serverHeroes[i];
-
- if (null == teamHero)
- continue;
-
- if (Array.IndexOf(fetterConfig.HeroIDList, teamHero.heroId) >= 0)
- {
- count++;
- }
- }
-
- isActive = (count >= fetterHeroCount);
- }
-
- public int GetFetterAttr(HeroAttrType attrType)
- {
- if (!isActive)
- return 0;
-
- return fetterConfig.GetFetterAttr(attrType);
- }
-}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroInfo.Fetter.cs b/Main/System/Hero/HeroInfo.Fetter.cs
index b5e0f71..9175f06 100644
--- a/Main/System/Hero/HeroInfo.Fetter.cs
+++ b/Main/System/Hero/HeroInfo.Fetter.cs
@@ -1,21 +1,44 @@
+using System.Collections.Generic;
+using System.Linq;
+
public partial class HeroInfo
{
// 缇佺粖閰嶇疆
- public HeroFetterConfig fetterConfig;
+ public HeroFetterConfig fetterConfig;
- protected int GetIFByInheritFetterPercent(HeroAttrType attrType)
+
+ public List<int> GetActiveFetter(HeroConfig config, TeamBase teamBase)
{
- // YYL TODO
- int total = 0;
- for (int i = 0; i < fetterInfoList.Count; i++)
- {
- HeroFetterInfo fetterInfo = fetterInfoList[i];
- total += fetterInfo.GetFetterAttr(attrType);
- }
- return total;
- }
+ List<int> list = new List<int>();
+ if (config.FetterIDList.Length == 0)
+ return list;
+ foreach (var fetterID in config.FetterIDList)
+ {
+ HeroFetterConfig fetterConfig = HeroFetterConfig.Get(fetterID);
+ int count = 0;
+ for (int i = 0; i < teamBase.tempHeroes.Length; i++)
+ {
+ TeamHero teamHero = teamBase.tempHeroes[i];
+
+ if (null == teamHero)
+ continue;
+
+ if (fetterConfig.HeroIDList.Contains(teamHero.heroId))
+ {
+ count++;
+ }
+ if (count >= fetterConfig.HeroIDList.Length)
+ {
+ list.Add(fetterID);
+ break;
+ }
+ }
+ }
+
+ return list;
+ }
}
diff --git a/Main/System/Hero/HeroInfo.Properties.cs b/Main/System/Hero/HeroInfo.Properties.cs
index 0d25126..4b383dd 100644
--- a/Main/System/Hero/HeroInfo.Properties.cs
+++ b/Main/System/Hero/HeroInfo.Properties.cs
@@ -115,7 +115,7 @@
return GetStableProperties(attrType)
* GetCultivationPercent(attrType)
* GetInheritRate(attrType)
- * GetInfluenceByInheritPercent(attrType);
+ * GetTotalPercent(attrType);
}
@@ -139,15 +139,15 @@
}
// 琚户鎵挎瘮渚嬪奖鍝嶇殑鐧惧垎姣斿睘鎬�
- public int GetInfluenceByInheritPercent(HeroAttrType attrType)
+ public int GetTotalPercent(HeroAttrType attrType)
{
// 锛�1+缇佺粖鍔犳垚%+娼滆兘鍔犳垚%+澶╄祴鍔犳垚%+瑙夐啋鏁堟灉鍔犳垚%锛�
int IFByInheritPercent = 100;
- IFByInheritPercent += GetIFByInheritFetterPercent(attrType); //缇佺粖鍔犳垚 HeroInfo.Fetter
- IFByInheritPercent += GetIFByInheritBreakPercent(attrType); //娼滆兘鍔犳垚 HeroInfo.Break
- IFByInheritPercent += GetIFByInheritTalentPercent(attrType); //澶╄祴鍔犳垚 HeroInfo.Talent
- IFByInheritPercent += GetIFByInheritAwakePercent(attrType); //瑙夐啋鍔犳垚 HeroInfo.Awake
+ // IFByInheritPercent += GetIFByInheritFetterPercent(attrType); //缇佺粖鍔犳垚 HeroInfo.Fetter
+ // IFByInheritPercent += GetIFByInheritBreakPercent(attrType); //娼滆兘鍔犳垚 HeroInfo.Break
+ // IFByInheritPercent += GetIFByInheritTalentPercent(attrType); //澶╄祴鍔犳垚 HeroInfo.Talent
+ // IFByInheritPercent += GetIFByInheritAwakePercent(attrType); //瑙夐啋鍔犳垚 HeroInfo.Awake
return IFByInheritPercent;
}
diff --git a/Main/System/Hero/HeroInfo.cs b/Main/System/Hero/HeroInfo.cs
index a480fbf..d0cab14 100644
--- a/Main/System/Hero/HeroInfo.cs
+++ b/Main/System/Hero/HeroInfo.cs
@@ -41,7 +41,6 @@
- public List<HeroFetterInfo> fetterInfoList = new List<HeroFetterInfo>();
public List<HeroTalentInfo> talentList = new List<HeroTalentInfo>();
diff --git a/Main/System/Hero/HeroManager.cs b/Main/System/Hero/HeroManager.cs
index af90076..416dbc2 100644
--- a/Main/System/Hero/HeroManager.cs
+++ b/Main/System/Hero/HeroManager.cs
@@ -40,7 +40,7 @@
void OnBeforePlayerDataInitialize()
{
-
+
heroInfoDict.Clear();
}
@@ -73,7 +73,7 @@
heroInfoDict.TryGetValue(guid, out heroInfo);
heroInfoDict.Remove(guid);
-
+
if (null != heroInfo)
onHeroDeleteEvent?.Invoke(heroInfo);
}
@@ -95,12 +95,27 @@
{
if (job == 0 && country == 0)
return heroInfoDict.Keys.ToList();
-
- return heroInfoDict.Keys.Where((x) =>
+
+
+ List<string> retGuidList = new List<string>();
+ foreach (string guid in heroInfoDict.Keys)
{
- HeroInfo heroInfo = heroInfoDict[x];
- return heroInfo.heroConfig.Class == job && heroInfo.heroConfig.Country == country;
- }).ToList();
+ HeroInfo heroInfo = heroInfoDict[guid];
+ //0浠h〃鍏ㄩ儴
+ if (job == 0 || country == 0)
+ {
+ if (job != 0 && job == heroInfo.heroConfig.Class)
+ retGuidList.Add(guid);
+ if (country != 0 && country == heroInfo.heroConfig.Country)
+ retGuidList.Add(guid);
+ }
+ else
+ {
+ if (job == heroInfo.heroConfig.Class && country == heroInfo.heroConfig.Country)
+ retGuidList.Add(guid);
+ }
+ }
+ return retGuidList;
}
public List<HeroInfo> GetPowerfulHeroList()
@@ -131,7 +146,10 @@
}
-
+ public int GetHeroCount()
+ {
+ return heroInfoDict.Count;
+ }
}
\ No newline at end of file
diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs
index c2291e3..20fd6af 100644
--- a/Main/System/Hero/UIHeroController.cs
+++ b/Main/System/Hero/UIHeroController.cs
@@ -48,6 +48,7 @@
skeletonGraphic.Initialize(true);
this.transform.localScale = Vector3.one * scale;
spineAnimationState = skeletonGraphic.AnimationState;
+ spineAnimationState.Data.DefaultMix = 0f;
PlayAnimation(MotionName.idle, true);
spineAnimationState.Complete -= OnAnimationComplete;
spineAnimationState.Complete += OnAnimationComplete;
@@ -73,8 +74,8 @@
{
if (spineAnimationState == null) return;
- // 鐩存帴浣跨敤 ToString() 鑰屼笉鏄皟鐢� GetAnimationName
- spineAnimationState.SetAnimation(0, motionName.ToString(), loop);
+ // 鐩存帴浣跨敤 ToString() 鑰屼笉鏄皟鐢� GetAnimationName
+ spineAnimationState.SetAnimation(0, motionName.ToString(), loop);
}
/// <summary>
diff --git a/Main/System/HeroUI/HeroBaseWin.cs b/Main/System/HeroUI/HeroBaseWin.cs
index 3efbd11..6f4d8a7 100644
--- a/Main/System/HeroUI/HeroBaseWin.cs
+++ b/Main/System/HeroUI/HeroBaseWin.cs
@@ -9,10 +9,6 @@
public class HeroBaseWin : FunctionsBaseWin
{
- [SerializeField] List<Image> funcSelectImgList;
- [SerializeField] List<Image> funcUnSelectImgList;
- [SerializeField] List<Text> titleNameList;
-
/// </summary>
protected override void InitComponent()
{
@@ -23,6 +19,7 @@
protected override void OnPreOpen()
{
base.OnPreOpen();
+ tabButtons[functionOrder].SelectBtn(true);
}
protected override void OnPreClose()
@@ -37,26 +34,6 @@
}
- protected override void UpdateButtonsState()
- {
- for (int i = 0; i < funcSelectImgList.Count; i++)
- {
- if (i == functionOrder)
- {
- funcSelectImgList[i].SetActive(true);
- funcUnSelectImgList[i].SetActive(false);
- titleNameList[i].color = UIHelper.GetUIColor(TextColType.titleSelectColor);
-
- }
- else
- {
- funcSelectImgList[i].SetActive(false);
- funcUnSelectImgList[i].SetActive(true);
- titleNameList[i].color = UIHelper.GetUIColor(TextColType.titleUnSelectColor);
-
- }
- }
- }
protected override void OpenSubUIByTabIndex()
{
diff --git a/Main/System/HeroUI/HeroConnectionCell.cs b/Main/System/HeroUI/HeroConnectionCell.cs
index 7cdeae4..f09ef80 100644
--- a/Main/System/HeroUI/HeroConnectionCell.cs
+++ b/Main/System/HeroUI/HeroConnectionCell.cs
@@ -7,9 +7,27 @@
[SerializeField] HeroConnectionHeadCell[] heros;
[SerializeField] Text connAttrText;
- public void Display()
+ public void Display(int fetterID)
{
-
+ HeroFetterConfig heroFetterConfig = HeroFetterConfig.Get(fetterID);
+ for (int i = 0; i < heros.Length; i++)
+ {
+ if (i < heroFetterConfig.HeroIDList.Length)
+ {
+ heros[i].SetActive(true);
+ heros[i].Display(heroFetterConfig.HeroIDList[i], i);
+ }
+ else
+ {
+ heros[i].SetActive(false);
+ }
+ }
+ string attrStr = "";
+ for (int i = 0; i < heroFetterConfig.AttrIDList.Length; i++)
+ {
+ attrStr += PlayerPropertyConfig.GetFullDescription(heroFetterConfig.AttrIDList[i], heroFetterConfig.AttrValueList[i]) + " ";
+ }
+ connAttrText.text = Language.Get("L1100", heroFetterConfig.FetterName, UIHelper.AppendColor(TextColType.lightYellow, attrStr));
}
}
diff --git a/Main/System/HeroUI/HeroConnectionHeadCell.cs b/Main/System/HeroUI/HeroConnectionHeadCell.cs
index 540cffc..0b13c49 100644
--- a/Main/System/HeroUI/HeroConnectionHeadCell.cs
+++ b/Main/System/HeroUI/HeroConnectionHeadCell.cs
@@ -9,6 +9,12 @@
[SerializeField] Text nameText;
[SerializeField] Image connMarkImg; //閾炬帴鐨勯攣鍥炬爣锛岀涓�涓笉鏄剧ず
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="heroID"></param>
+ /// <param name="index"> 鍙槸涓轰簡璁╃涓�涓笉鏄剧ず閿佸浘鏍囩敤</param>
+ /// <param name="guid">閮ㄥ垎鐣岄潰鏄剧ず涓嶅悓鐨偆鍥炬爣</param>
public void Display(int heroID, int index, string guid = "")
{
int skinID = 0;
diff --git a/Main/System/HeroUI/HeroFormationCell.cs b/Main/System/HeroUI/HeroFormationCell.cs
new file mode 100644
index 0000000..914eb12
--- /dev/null
+++ b/Main/System/HeroUI/HeroFormationCell.cs
@@ -0,0 +1,71 @@
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+//闃靛瀷
+public class HeroFormationCell : CellView
+{
+ [SerializeField] Image activeImg;
+ [SerializeField] Image countryOnImg; //涓婇樀闃靛瀷婵�娲诲浗瀹�
+ [SerializeField] Image[] OnCountImgs; //涓婇樀鏁伴噺婵�娲�
+ [SerializeField] RichText attrText;
+
+ public void Display(int index)
+ {
+ Int2 result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.selectTeamType);
+
+ var config = HeroLineupHaloConfig.GetConfig(result.x, result.y);
+ bool sameCountry = result.x == (index + 1);
+
+ activeImg.SetActive(config != null && sameCountry);
+
+
+ countryOnImg.SetSprite("heroTeamCountry" + (index + 1));
+ if (config == null || !sameCountry)
+ {
+ for (int i = 0; i < OnCountImgs.Length; i++)
+ {
+ OnCountImgs[i].SetActive(false);
+ }
+ }
+ else
+ {
+ for (int i = 0; i < OnCountImgs.Length; i++)
+ {
+ if (i < result.y)
+ {
+ OnCountImgs[i].SetActive(true);
+ OnCountImgs[i].SetSprite("heroTeamCountryPoint" + result.x);
+ }
+ else
+ {
+ OnCountImgs[i].SetActive(false);
+ }
+ }
+ }
+
+
+ var attrDict = HeroLineupHaloConfig.GetAttrsByCountry(index + 1);
+ var countList = attrDict.Keys.ToList();
+ countList.Sort();
+ string text = string.Empty;
+ for (int k = 0; k < countList.Count; k++)
+ {
+ int count = countList[k];
+ string lineText = string.Empty;
+ bool isActive = sameCountry && count <= result.y;
+ string countStr = isActive ? UIHelper.AppendColor(TextColType.Green, count.ToString()) : count.ToString();
+ lineText = (k == 0 ? "" : "</r>") + Language.Get("herocard37", countStr, RichTextMsgReplaceConfig.GetRichReplace("Country", index + 1));
+ var attrConfig = attrDict[count];
+ for (int i = 0; i < attrConfig.AttrIDList.Length; i++)
+ {
+ string format = !isActive ? "{0}+{1}" : "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}");
+ lineText += " " + PlayerPropertyConfig.GetFullDescription(attrConfig.AttrIDList[i], attrConfig.AttrValueList[i], format);
+ }
+
+ text += UIHelper.AppendColor(isActive ? TextColType.NavyBrown : TextColType.Gray, lineText);
+ }
+ attrText.text = text;
+ }
+}
+
diff --git a/Main/System/Hero/HeroFetterInfo.cs.meta b/Main/System/HeroUI/HeroFormationCell.cs.meta
similarity index 83%
rename from Main/System/Hero/HeroFetterInfo.cs.meta
rename to Main/System/HeroUI/HeroFormationCell.cs.meta
index b759df1..37d6bc3 100644
--- a/Main/System/Hero/HeroFetterInfo.cs.meta
+++ b/Main/System/HeroUI/HeroFormationCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 61d40aba9c2091445ae692419d4c5ebf
+guid: bfc8cbe2e59ef934db88a564da0a7869
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/HeroUI/HeroFormationWin.cs b/Main/System/HeroUI/HeroFormationWin.cs
new file mode 100644
index 0000000..4c8e657
--- /dev/null
+++ b/Main/System/HeroUI/HeroFormationWin.cs
@@ -0,0 +1,70 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 姝﹀皢闃靛瀷婵�娲荤晫闈�
+/// </summary>
+public class HeroFormationWin : UIBase
+{
+ [SerializeField] Button closeBtn;
+ [SerializeField] ScrollerController scroller;
+ [SerializeField] Text totalAttrText;
+
+
+ protected override void InitComponent()
+ {
+ closeBtn.AddListener(CloseWindow);
+ }
+
+
+ protected override void OnPreOpen()
+ {
+ scroller.OnRefreshCell += OnRefreshCell;
+ CreateScroller();
+
+ Int2 result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.selectTeamType);
+
+ var config = HeroLineupHaloConfig.GetConfig(result.x, result.y);
+ if (config == null)
+ {
+ totalAttrText.text = "";
+ }
+ else
+ {
+ string lineText = string.Empty;
+
+ for (int i = 0; i < config.AttrIDList.Length; i++)
+ {
+ string format = "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}");
+ lineText += " " + PlayerPropertyConfig.GetFullDescription(config.AttrIDList[i], config.AttrValueList[i], format);
+ }
+ totalAttrText.text = Language.Get("herocard36") + lineText.Trim();
+ }
+ }
+
+ protected override void OnPreClose()
+ {
+ scroller.OnRefreshCell -= OnRefreshCell;
+ }
+
+
+
+ void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as HeroFormationCell;
+ _cell.Display(cell.index);
+ }
+
+ void CreateScroller()
+ {
+ scroller.Refresh();
+ for (int i = 0; i < 4; i++)
+ {
+ scroller.AddCell(ScrollerDataType.Header, i);
+ }
+ scroller.Restart();
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroFetterInfo.cs.meta b/Main/System/HeroUI/HeroFormationWin.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroFetterInfo.cs.meta
copy to Main/System/HeroUI/HeroFormationWin.cs.meta
index b759df1..fff13af 100644
--- a/Main/System/Hero/HeroFetterInfo.cs.meta
+++ b/Main/System/HeroUI/HeroFormationWin.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 61d40aba9c2091445ae692419d4c5ebf
+guid: 93fbb2862890fb440bc497898f9935ef
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/HeroUI/HeroPosWin.cs b/Main/System/HeroUI/HeroPosWin.cs
index 8656678..0cbf08c 100644
--- a/Main/System/HeroUI/HeroPosWin.cs
+++ b/Main/System/HeroUI/HeroPosWin.cs
@@ -3,14 +3,19 @@
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
+using Cysharp.Threading.Tasks;
+using System.Threading;
+using System;
/// <summary>
-/// 姝﹀皢甯冮樀: 濡傛灉鍙互鍚屾椂鎵撳紑澶氫釜甯冮樀鐣岄潰 鍒欎娇鐢� functionOrder锛氬竷闃电被鍨�
+/// 姝﹀皢甯冮樀鐣岄潰
/// </summary>
public class HeroPosWin : UIBase
{
[SerializeField] Text[] attrOnList; //涓婇樀灞炴�у姞鎴�
+ [SerializeField] Button countryOnBtn;
[SerializeField] Image countryOnImg; //涓婇樀闃靛瀷婵�娲诲浗瀹�
+ [SerializeField] UIEffectPlayer countryEffect;
[SerializeField] List<Image> OnCountImgs; //涓婇樀鏁伴噺婵�娲�
[SerializeField] List<Image> scenePosImgs; //鍦烘櫙甯冮樀浣嶇疆
[SerializeField] HeroScenePosCell[] sceneHero;
@@ -22,14 +27,14 @@
[SerializeField] ScrollerController heroListScroller;
[SerializeField] Transform heroListEmpty;
[SerializeField] Toggle showConnTipToggleBtn;
- private bool isToggleOn = false;
+
[SerializeField] HeroSelectBehaviour fiterManager; //姝﹀皢绛涢��
[SerializeField] Button oneKeyOnBtn; //涓�閿笂闃�
[SerializeField] Button saveBtn; //淇濆瓨闃靛瀷
[SerializeField] Button backBtn; //閫�鍑虹晫闈�
[SerializeField] GroupButtonEx jjcBtn; //绔炴妧鍦�
- [SerializeField] GroupButtonEx tttBtn; //閫氬ぉ濉�
+ // [SerializeField] GroupButtonEx tttBtn; //閫氬ぉ濉�
[SerializeField] GroupButtonEx mainFBBtn; //涓荤嚎鍓湰
//缇佺粖
@@ -38,43 +43,75 @@
[SerializeField] CanvasGroup flyAlphaTween;
Sequence sequence;
+ CancellationTokenSource _cts;
+ Queue<int> showConnectTipQueue = new Queue<int>();
+
+ private bool m_IsToggleOn = false;
+ private bool isToggleOn
+ {
+ get { return m_IsToggleOn; }
+ set
+ {
+ if (m_IsToggleOn != value)
+ {
+ m_IsToggleOn = value;
+ LocalSave.SetBool("ShowConn" + PlayerDatas.Instance.baseData.PlayerID, value);
+ }
+ }
+ }
protected override void InitComponent()
{
attackTeamBtn.AddListener(() =>
{
- if (HeroUIManager.Instance.selectTeamType == TeamType.Arena)
- {
- return;
- }
-
- HeroUIManager.Instance.selectTeamType = (TeamType)HeroUIManager.Instance.GetSelectTeamTypeByAttackType(0);
- Refresh();
+ SelectTeamFunc((TeamType)HeroUIManager.Instance.GetSelectTeamTypeByAttackType(0));
});
defendTeamBtn.AddListener(() =>
{
- if (HeroUIManager.Instance.selectTeamType == TeamType.ArenaDefense)
- {
- return;
- }
- HeroUIManager.Instance.selectTeamType = (TeamType)HeroUIManager.Instance.GetSelectTeamTypeByAttackType(1);
- Refresh();
+ SelectTeamFunc((TeamType)HeroUIManager.Instance.GetSelectTeamTypeByAttackType(1));
});
+
+ mainFBBtn.AddListener(() =>
+ {
+ SelectTeamFunc(TeamType.Story);
+ });
+
+ jjcBtn.AddListener(() =>
+ {
+ SelectTeamFunc(TeamType.Arena);
+ });
+ // tttBtn.AddListener(() =>
+ // {
+ // SelectTeamFunc(TeamType.Tower);
+ // });
showConnTipToggleBtn.AddListener((value) =>
{
isToggleOn = showConnTipToggleBtn.isOn;
+ if (isToggleOn == false)
+ {
+ CancelCurrentTask();
+ }
});
oneKeyOnBtn.AddListener(OneKeyOnPos);
saveBtn.AddListener(SaveTeam);
backBtn.AddListener(CloseWindow);
+
+ countryOnBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<HeroFormationWin>();
+ });
+
+ m_IsToggleOn = LocalSave.GetBool("ShowConn" + PlayerDatas.Instance.baseData.PlayerID, false);
}
protected override void OnPreOpen()
{
- HeroUIManager.Instance.SortHeroOnTeamList(); //鎵撳紑鐣岄潰鍜屼繚瀛橈紙鏈嶅姟绔級鏇存柊闃靛鏄埛鏂�
+ HeroUIManager.Instance.selectTeamPosJob = 0;
+ HeroUIManager.Instance.selectTeamPosCountry = 0;
+ HeroUIManager.Instance.SortHeroOnTeamList();
heroListScroller.OnRefreshCell += OnRefreshCell;
HeroUIManager.Instance.OnTeamPosChangeEvent += TeamChangeEvent;
CreateScroller();
@@ -83,7 +120,10 @@
protected override void OnPreClose()
{
+ CancelCurrentTask();
heroListScroller.OnRefreshCell -= OnRefreshCell;
+ HeroUIManager.Instance.OnTeamPosChangeEvent -= TeamChangeEvent;
+ TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType).RestoreTeam();
}
@@ -94,8 +134,9 @@
RefreshOnTeamBtn();
RefreshTeamHero();
RefreshFlyHead();
+ RefreshConn();
- if (HeroUIManager.Instance.heroOnTeamSortList.Count == 0)
+ if (HeroManager.Instance.GetHeroCount() == 0)
{
heroListEmpty.SetActive(true);
heroListScroller.SetActive(false);
@@ -108,10 +149,12 @@
showConnTipToggleBtn.isOn = isToggleOn;
- fiterManager.Display(0, 0, 0, SelectJobCountry);
+ fiterManager.Display(0, HeroUIManager.Instance.selectTeamPosJob, HeroUIManager.Instance.selectTeamPosCountry, SelectJobCountry);
fightPowerText.text = "1234k";
+
+
}
void RefreshFlyHead()
@@ -123,11 +166,21 @@
flyHead.transform.localScale = Vector3.zero;
}
+ void RefreshConn()
+ {
+ connetionForm.SetActive(false);
+ var canvasConn = connetionForm.GetComponent<Canvas>();
+ canvasConn.sortingLayerID = canvas.sortingLayerID;
+ canvasConn.sortingOrder = canvas.sortingOrder + 9;
+ CancelCurrentTask();
+ }
+
void SelectJobCountry(int job, int country)
{
HeroUIManager.Instance.selectTeamPosJob = job;
HeroUIManager.Instance.selectTeamPosCountry = country;
HeroUIManager.Instance.SortHeroOnTeamList();
+ CreateScroller();
}
void OnRefreshCell(ScrollerDataType type, CellView cell)
@@ -176,14 +229,14 @@
}
//涓婇樀姝﹀皢鍥藉鍏夌幆婵�娲�
- void RefreshOnTeamCountry()
+ void RefreshOnTeamCountry(bool playEffect = false)
{
Int2 result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.selectTeamType);
var config = HeroLineupHaloConfig.GetConfig(result.x, result.y);
if (config == null)
{
- countryOnImg.SetSprite("heroTeamCountry" + result.x);
+ countryOnImg.SetSprite("heroTeamCountry0");
for (int i = 0; i < OnCountImgs.Count; i++)
{
OnCountImgs[i].SetActive(false);
@@ -204,8 +257,9 @@
OnCountImgs[i].SetActive(false);
}
}
+ if (playEffect)
+ countryEffect.Play();
}
-
}
@@ -258,7 +312,7 @@
}
void RefreshPosScale()
- {
+ {
for (int i = 0; i < scenePosImgs.Count; i++)
{
scenePosImgs[i].transform.localScale = Vector3.one;
@@ -292,6 +346,7 @@
}
RefreshPosScale();
heroListScroller.m_Scorller.RefreshActiveCellViews();
+ RefreshOnTeamCountry(true);
//琛ㄧ幇椋炲叆锛岃繛缁偣鍑讳笉鍚屽ご鍍忚Е鍙戠殑璇濆垯閲嶇疆
if (flyFrom > -1)
@@ -317,7 +372,72 @@
.Join(flyHead.transform.DOScale(new Vector3(0.5f, 0.5f, 0.5f), HeroUIManager.clickFlyPosTime).SetEase(Ease.OutQuad))
.Join(flyAlphaTween.DOFade(0f, HeroUIManager.clickFlyPosTime).SetEase(Ease.OutQuad));
sequence.onComplete = () => { flyHead.transform.localScale = Vector3.zero; };
+
+ if (isToggleOn)
+ {
+ ShowFetter(flyHero);
+ }
}
+ }
+
+ void ShowFetter(HeroInfo hero)
+ {
+ var heroConfig = hero.heroConfig;
+ var fetterList = hero.GetActiveFetter(heroConfig, TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType));
+ for (int i = 0; i < fetterList.Count; i++)
+ {
+ if(!showConnectTipQueue.Contains(fetterList[i]))
+ showConnectTipQueue.Enqueue(fetterList[i]);
+ }
+
+ if (_cts == null)
+ {
+ _cts = new CancellationTokenSource();
+ RunTaskAsync(_cts.Token).Forget(); // Forget() 琛ㄧず涓嶇瓑寰呮浠诲姟瀹屾垚
+ }
+
+ }
+ async UniTask RunTaskAsync(CancellationToken token)
+ {
+ try
+ {
+ while (showConnectTipQueue.Count > 0)
+ {
+ await UniTask.Delay(300, cancellationToken: token);
+ showConnectTipQueue.TryDequeue(out int fetterID);
+ if (fetterID == 0)
+ {
+ continue;
+ }
+ connetionForm.SetActive(true);
+ connetionForm.Display(fetterID);
+ //鏄剧ず1.5绉掑悗鍏抽棴
+ await UniTask.Delay(1500, cancellationToken: token);
+ connetionForm.SetActive(false);
+ }
+
+ }
+ catch (OperationCanceledException)
+ {
+ Debug.Log("缇佺粖 鍗忕▼琚彇娑�");
+ connetionForm.SetActive(false);
+ }
+ finally
+ {
+ _cts?.Dispose(); // 閲婃斁璧勬簮
+ _cts = null; // 缃┖閬垮厤閲嶅鍙栨秷
+ showConnectTipQueue.Clear();
+ }
+
+ }
+
+ // 鍙栨秷褰撳墠姝e湪杩愯鐨勪换鍔�
+ public void CancelCurrentTask()
+ {
+ _cts?.Cancel(); // 瑙﹀彂鍙栨秷
+ _cts?.Dispose(); // 閲婃斁璧勬簮
+ _cts = null; // 缃┖閬垮厤閲嶅鍙栨秷
+ showConnectTipQueue.Clear();
}
void OneKeyOnPos()
@@ -339,4 +459,19 @@
var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType);
team.SaveTeam();
}
+
+ void SelectTeamFunc(TeamType type)
+ {
+ if (HeroUIManager.Instance.selectTeamType == type)
+ {
+ return;
+ }
+
+ HeroUIManager.Instance.selectTeamPosJob = 0;
+ HeroUIManager.Instance.selectTeamPosCountry = 0;
+ HeroUIManager.Instance.SortHeroOnTeamList();
+ HeroUIManager.Instance.selectTeamType = type;
+ Refresh();
+ heroListScroller.m_Scorller.RefreshActiveCellViews();
+ }
}
\ No newline at end of file
diff --git a/Main/System/HeroUI/HeroScenePosCell.cs b/Main/System/HeroUI/HeroScenePosCell.cs
index 9846fdc..a8351d2 100644
--- a/Main/System/HeroUI/HeroScenePosCell.cs
+++ b/Main/System/HeroUI/HeroScenePosCell.cs
@@ -39,7 +39,7 @@
heroConfig.AtkDistType == 2 && TeamConst.TeamPos1Array.Contains(index))
{
suggestForm.SetActive(true);
- jobTip.text = Language.Get("heroClass" + heroConfig.Class);
+ jobTip.text = RichTextMsgReplaceConfig.GetRichReplace("Class", heroConfig.Class);
posTip.text = Language.Get("heroAtkDistType" + heroConfig.AtkDistType);
}
else
diff --git a/Main/System/HeroUI/HeroSelectBehaviour.cs b/Main/System/HeroUI/HeroSelectBehaviour.cs
index 2430711..0385c40 100644
--- a/Main/System/HeroUI/HeroSelectBehaviour.cs
+++ b/Main/System/HeroUI/HeroSelectBehaviour.cs
@@ -12,16 +12,16 @@
[SerializeField] Button unFoldBtn; //灞曞紑鎸夐挳
[SerializeField] GroupButtonEx[] jobsBtn;
[SerializeField] GroupButtonEx[] countrysBtn;
- [SerializeField] GroupButtonExManager jobManager;
- [SerializeField] GroupButtonExManager countryManager;
+ [SerializeField] GroupButtonExManager jobManager;
+ [SerializeField] GroupButtonExManager countryManager;
int m_Job = 0;
int m_Country = 0;
int foldState = 0; //0 鏀惰捣锛�1 灞曞紑
//鐐瑰嚮鎸夐挳闇�閫氱煡鍝嶅簲澶栭儴浜嬩欢
- public Action<int, int> selectAction;
-
+ private Action<int, int> selectAction;
+
@@ -92,5 +92,19 @@
unFoldForm.SetActive(foldState == 1);
foldForm.SetActive(foldState == 0);
}
+
+
+ private void LateUpdate()
+ {
+ if (foldState == 0)
+ return;
+ if (Input.GetMouseButtonDown(0))
+ {
+ if (!RectTransformUtility.RectangleContainsScreenPoint(this.transform as RectTransform, Input.mousePosition, CameraManager.uiCamera))
+ {
+ foldBtn.onClick.Invoke();
+ }
+ }
+ }
}
diff --git a/Main/System/HeroUI/HeroUIManager.cs b/Main/System/HeroUI/HeroUIManager.cs
index 1efeaae..6890863 100644
--- a/Main/System/HeroUI/HeroUIManager.cs
+++ b/Main/System/HeroUI/HeroUIManager.cs
@@ -93,7 +93,24 @@
#region 甯冮樀鐣岄潰
public List<string> heroOnTeamSortList { get; private set; } = new List<string>(); //涓嶅悓涓婇樀鐨勫垪琛ㄦ帓搴�
- public TeamType selectTeamType = TeamType.Story; //褰撳墠閫変腑鐨勬槸鍝釜闃靛, 甯冮樀鐩稿叧閫昏緫浣跨敤
+ private TeamType m_SelectTeamType = TeamType.Story; //褰撳墠閫変腑鐨勬槸鍝釜闃靛, 甯冮樀鐩稿叧閫昏緫浣跨敤
+ public TeamType selectTeamType
+ {
+ get { return m_SelectTeamType; }
+ set
+ {
+ if (m_SelectTeamType == value)
+ return;
+ //涓婁竴涓樀瀹归渶瑕佹仮澶嶅埌鍘熺姸鎬�
+ if (m_SelectTeamType != TeamType.None)
+ {
+ TeamManager.Instance.GetTeam(m_SelectTeamType).RestoreTeam();
+ }
+
+ m_SelectTeamType = value;
+ }
+ }
+
public int selectTeamPosJob = 0; //甯冮樀鐣岄潰 绛涢�夎亴涓�
public int selectTeamPosCountry = 0; //甯冮樀鐣岄潰 绛涢�夊浗瀹�
@@ -160,23 +177,21 @@
var team = TeamManager.Instance.GetTeam(teamType);
if (team != null)
{
- for (int i = 0; i < team.serverHeroes.Length; i++)
+ for (int i = 0; i < team.tempHeroes.Length; i++)
{
- if (team.serverHeroes[i] == null)
+ if (team.tempHeroes[i] == null)
continue;
- var hero = HeroManager.Instance.GetHero(team.serverHeroes[i].guid);
- if (hero != null)
- {
- if (!heroCountryCount.ContainsKey(hero.heroCountry))
- {
- heroCountryCount.Add(hero.heroCountry, 1);
- }
- else
- {
- heroCountryCount[hero.heroCountry] += 1;
- }
+ var country = (HeroCountry)team.tempHeroes[i].heroConfig.Country;
+ if (!heroCountryCount.ContainsKey(country))
+ {
+ heroCountryCount.Add(country, 1);
}
+ else
+ {
+ heroCountryCount[country] = heroCountryCount[country] + 1;
+ }
+
}
}
@@ -226,7 +241,7 @@
//鎺ㄨ崘闃靛鐨勭畻娉曢�昏緫
//鑷姩閫夋嫨浼樺厛绾э細姝﹀皢绛夌骇锛炵獊鐮寸瓑绾э紴姝﹀皢瑙夐啋闃剁骇锛炴灏嗗搧璐紴姝﹀皢鍚炲櫖鏄熺骇锛炴灏咺D
var tmpList = HeroManager.Instance.GetHeroGuidList();
- tmpList.Sort(CmpHeroByTeamType);
+ tmpList.Sort(CmpHeroRecommend);
//鎺ㄨ崘鏈�澶�6涓紝瀛樺湪鐩稿悓heroid锛屽垯璺宠繃
diff --git a/Main/System/KnapSack/Logic/ItemLogicUtility.cs b/Main/System/KnapSack/Logic/ItemLogicUtility.cs
index ac55fb5..e43d797 100644
--- a/Main/System/KnapSack/Logic/ItemLogicUtility.cs
+++ b/Main/System/KnapSack/Logic/ItemLogicUtility.cs
@@ -352,7 +352,7 @@
SinglePack singlePack = packModel.GetSinglePack(PackType.Item);
if (singlePack == null) return false;
- int startLockIndex = singlePack.unlockedGridCount - GeneralDefine.initBagGridCount;
+ int startLockIndex = singlePack.unlockedGridCount - PackManager.Instance.initBagGridCount;
FuncConfigConfig _tagFuncModel = FuncConfigConfig.Get("OpenBagItem");
int haveCount = packModel.GetItemCountByID(PackType.Item, itemId);
Equation.Instance.Clear();
diff --git a/Main/System/KnapSack/Logic/PackGirdCell.cs b/Main/System/KnapSack/Logic/PackGirdCell.cs
new file mode 100644
index 0000000..16b5df8
--- /dev/null
+++ b/Main/System/KnapSack/Logic/PackGirdCell.cs
@@ -0,0 +1,17 @@
+锘縰sing UnityEngine;
+
+/// <summary>
+/// 鑳屽寘鏍煎瓙
+/// </summary>
+public class PackGirdCell : MonoBehaviour
+{
+ [SerializeField] ItemCell itemCell;
+ [SerializeField] RedpointBehaviour redPoint; // 姝ゅ绾㈢偣鍙互鐢ㄥ浘鐗囪〃绀�
+ public void Display(int index)
+ {
+ var guid = PackManager.Instance.GetSinglePack(PackType.Item).itemGuidList[index];
+ if (string.IsNullOrEmpty(guid))
+ return;
+ itemCell.Init(PackManager.Instance.GetItemByGuid(guid));
+ }
+}
diff --git a/Main/System/Hero/HeroFetterInfo.cs.meta b/Main/System/KnapSack/Logic/PackGirdCell.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroFetterInfo.cs.meta
copy to Main/System/KnapSack/Logic/PackGirdCell.cs.meta
index b759df1..d25b99a 100644
--- a/Main/System/Hero/HeroFetterInfo.cs.meta
+++ b/Main/System/KnapSack/Logic/PackGirdCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 61d40aba9c2091445ae692419d4c5ebf
+guid: 3c64a63d0c44fce40a3d1b90b18b2324
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/KnapSack/Logic/RolePackLineCell.cs b/Main/System/KnapSack/Logic/RolePackLineCell.cs
new file mode 100644
index 0000000..bb860db
--- /dev/null
+++ b/Main/System/KnapSack/Logic/RolePackLineCell.cs
@@ -0,0 +1,26 @@
+锘縰sing UnityEngine;
+
+/// <summary>
+/// 鑳屽寘鏍煎瓙琛�
+/// </summary>
+public class RolePackLineCell : CellView
+{
+ [SerializeField] PackGirdCell[] itemCell;
+ public void Display(int index)
+ {
+ var itemPack = PackManager.Instance.GetSinglePack(PackType.Item);
+ for (int i = 0; i < itemCell.Length; i++)
+ {
+ if (index + i < itemPack.itemGuidList.Count)
+ {
+ itemCell[i].SetActive(true);
+ itemCell[i].Display(index + i);
+ }
+ else
+ {
+ itemCell[i].SetActive(false);
+ }
+ }
+
+ }
+}
diff --git a/Main/System/Hero/HeroFetterInfo.cs.meta b/Main/System/KnapSack/Logic/RolePackLineCell.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroFetterInfo.cs.meta
copy to Main/System/KnapSack/Logic/RolePackLineCell.cs.meta
index b759df1..a1191e5 100644
--- a/Main/System/Hero/HeroFetterInfo.cs.meta
+++ b/Main/System/KnapSack/Logic/RolePackLineCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 61d40aba9c2091445ae692419d4c5ebf
+guid: b5df92a5e4b691444919db543a27de21
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/KnapSack/Logic/RolePackWin.cs b/Main/System/KnapSack/Logic/RolePackWin.cs
new file mode 100644
index 0000000..cabf0db
--- /dev/null
+++ b/Main/System/KnapSack/Logic/RolePackWin.cs
@@ -0,0 +1,184 @@
+using System;
+using UnityEngine;
+
+/// <summary>
+/// 鑳屽寘鐣岄潰
+/// </summary>
+public class RolePackWin : UIBase
+{
+
+ [SerializeField] ScrollerController packScroller;
+ [SerializeField] ScrollerController composeScroller;
+ [SerializeField] GroupButtonEx packBtn;
+ [SerializeField] GroupButtonEx composeBtn;
+
+
+ SinglePack itemPack;
+ bool isRefreshPack = false; //鏄惁鍒锋柊鑳屽寘
+ /// </summary>
+ protected override void InitComponent()
+ {
+ packBtn.AddListener(() =>
+ {
+ functionOrder = 0;
+ Refresh();
+ });
+ composeBtn.AddListener(() =>
+ {
+ functionOrder = 1;
+ Refresh();
+ });
+ }
+
+
+ protected override void OnPreOpen()
+ {
+ itemPack = PackManager.Instance.GetSinglePack(PackType.Item);
+ packScroller.OnRefreshCell += RefreshPackCell;
+ composeScroller.OnRefreshCell += RefreshComposeCell;
+ PackManager.Instance.refrechPackEvent += RefrechPackEvent;
+ PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
+
+ if (functionOrder == 0)
+ {
+ packBtn.SelectBtn();
+ }
+ else
+ {
+ composeBtn.SelectBtn();
+ }
+ SortItems();
+ Refresh();
+ }
+
+ protected override void OnPreClose()
+ {
+ packScroller.OnRefreshCell -= RefreshPackCell;
+ composeScroller.OnRefreshCell -= RefreshComposeCell;
+ PackManager.Instance.refrechPackEvent -= RefrechPackEvent;
+ }
+
+ float cdTime = 0f;
+ void LateUpdate()
+ {
+ if (isRefreshPack)
+ {
+ //鍒锋柊cd0.2绉�
+ if (Time.time > cdTime + 0.2f)
+ {
+ SortItems();
+ Refresh();
+ isRefreshPack = false;
+ cdTime = Time.time;
+ }
+
+ }
+ }
+
+ void RefrechPackEvent(PackType type)
+ {
+ if (type != PackType.Item)
+ {
+ return;
+ }
+ //寤惰繜0.2绉掑埛鏂� 璁剧疆 isRefreshPack涓簍rue
+ isRefreshPack = true;
+
+ }
+
+ void RefreshItemEvent(PackType type, int index, int itemID)
+ {
+ if (type != PackType.Item)
+ {
+ return;
+ }
+ isRefreshPack = true;
+ }
+
+
+ public override void Refresh()
+ {
+
+ packScroller.SetActive(functionOrder == 0);
+ composeScroller.SetActive(functionOrder != 0);
+ CreatePackScroller();
+ CreateComposeScroller();
+ }
+
+ void SortItems()
+ {
+ itemPack.itemGuidList.Clear();
+ var itemDict = itemPack.GetAllItems();
+ foreach (var itemID in itemDict.Values)
+ {
+ itemPack.itemGuidList.Add(itemID.guid);
+ }
+ itemPack.itemGuidList.Sort(CmpItem);
+ }
+
+ int CmpItem(string guidA, string guidB)
+ {
+ var itemA = PackManager.Instance.GetItemByGuid(guidA);
+ var itemB = PackManager.Instance.GetItemByGuid(guidB);
+
+ var typeIndexA = Array.IndexOf(PackManager.Instance.itemPackSortTyps, itemA.config.Type);
+ var typeIndexB = Array.IndexOf(PackManager.Instance.itemPackSortTyps, itemB.config.Type);
+ if (typeIndexA != typeIndexB)
+ {
+ return typeIndexA - typeIndexB;
+ }
+
+ var qualityA = itemA.config.ItemColor;
+ var qualityB = itemB.config.ItemColor;
+ if (qualityA != qualityB)
+ {
+ return qualityB - qualityA;
+ }
+
+ var lvA = itemA.config.LV;
+ var lvB = itemB.config.LV;
+ if (lvA != lvB)
+ {
+ return lvB - lvA;
+ }
+
+ var itemIDA = itemA.config.ID;
+ var itemIDB = itemB.config.ID;
+ return itemIDA - itemIDB;
+ }
+
+ void CreatePackScroller()
+ {
+ if (functionOrder != 0)
+ {
+ return;
+ }
+ packScroller.Refresh();
+ for (int i = 0; i < itemPack.itemGuidList.Count; i++)
+ {
+ if (i % 5 == 0)
+ {
+ packScroller.AddCell(ScrollerDataType.Header, i);
+ }
+ }
+ packScroller.Restart();
+ }
+
+ void CreateComposeScroller()
+ {
+ if (functionOrder != 1)
+ {
+ return;
+ }
+ }
+
+ void RefreshPackCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as RolePackLineCell;
+ _cell.Display(cell.index);
+ }
+
+ void RefreshComposeCell(ScrollerDataType type, CellView cell)
+ {
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroFetterInfo.cs.meta b/Main/System/KnapSack/Logic/RolePackWin.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroFetterInfo.cs.meta
copy to Main/System/KnapSack/Logic/RolePackWin.cs.meta
index b759df1..f7f55ff 100644
--- a/Main/System/Hero/HeroFetterInfo.cs.meta
+++ b/Main/System/KnapSack/Logic/RolePackWin.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 61d40aba9c2091445ae692419d4c5ebf
+guid: bbbbfd91a59637f4cb7cee421f98052c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/KnapSack/Logic/SinglePack.cs b/Main/System/KnapSack/Logic/SinglePack.cs
index c597917..36f22b3 100644
--- a/Main/System/KnapSack/Logic/SinglePack.cs
+++ b/Main/System/KnapSack/Logic/SinglePack.cs
@@ -1,7 +1,4 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+锘縰sing System.Collections.Generic;
public class SinglePack
{
@@ -9,6 +6,9 @@
public int unlockedGridCount { get; private set; } //宸插紑鍚儗鍖呮牸瀛愭暟
private Dictionary<int, ItemModel> items = new Dictionary<int, ItemModel>(); //key 鐗╁搧浣嶇疆绱㈠紩
private Dictionary<int, List<int>> itemIDs = new Dictionary<int, List<int>>(); //key 鐗╁搧ID锛氱墿鍝佷綅缃储寮�
+
+ public List<string> itemGuidList = new List<string>(); //鍓嶇鐣岄潰GUID鎺掑簭锛屽悇涓儗鍖呮牴鎹疄闄呮儏鍐典娇鐢�
+
public SinglePack(PackType type)
{
this.type = type;
diff --git a/Main/System/KnapSack/Logic/composeLineCell.cs b/Main/System/KnapSack/Logic/composeLineCell.cs
new file mode 100644
index 0000000..72122ec
--- /dev/null
+++ b/Main/System/KnapSack/Logic/composeLineCell.cs
@@ -0,0 +1,14 @@
+锘縰sing UnityEngine;
+
+/// <summary>
+/// 鍚堟垚鏍煎瓙琛�
+/// </summary>
+public class composeLineCell : CellView
+{
+ [SerializeField] PackGirdCell[] itemCell;
+ public void Display(int index)
+ {
+
+
+ }
+}
diff --git a/Main/System/Hero/HeroFetterInfo.cs.meta b/Main/System/KnapSack/Logic/composeLineCell.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroFetterInfo.cs.meta
copy to Main/System/KnapSack/Logic/composeLineCell.cs.meta
index b759df1..0418484 100644
--- a/Main/System/Hero/HeroFetterInfo.cs.meta
+++ b/Main/System/KnapSack/Logic/composeLineCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 61d40aba9c2091445ae692419d4c5ebf
+guid: ff43611139197a9479fcc08c18d025f4
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/KnapSack/New/CommonItemBaisc.cs b/Main/System/KnapSack/New/CommonItemBaisc.cs
index a2bb5ed..6ba1861 100644
--- a/Main/System/KnapSack/New/CommonItemBaisc.cs
+++ b/Main/System/KnapSack/New/CommonItemBaisc.cs
@@ -20,11 +20,12 @@
public ItemCellformat format { get { return m_Format; } set { m_Format = value; } }
Image m_BgIcon;
- private Image bgIcon {
- get {
+ private Image bgIcon
+ {
+ get
+ {
if (m_BgIcon == null)
{
- LoadPrefab();
m_BgIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_BackGround");
}
return m_BgIcon;
@@ -32,11 +33,12 @@
}
Image m_ItemIcon;
- private Image itemIcon {
- get {
+ private Image itemIcon
+ {
+ get
+ {
if (m_ItemIcon == null)
{
- LoadPrefab();
m_ItemIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_Icon");
}
return m_ItemIcon;
@@ -45,11 +47,12 @@
Image m_StateIcon;
- public Image stateIcon {
- get {
+ public Image stateIcon
+ {
+ get
+ {
if (m_StateIcon == null)
{
- LoadPrefab();
m_StateIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_State");
}
return m_StateIcon;
@@ -57,61 +60,99 @@
}
Text m_CountText;
- public Text countText {
- get {
+ public Text countText
+ {
+ get
+ {
if (m_CountText == null)
{
- LoadPrefab();
m_CountText = this.transform.GetComponent<Text>("Container_ItemCell/Txt_Count");
}
return m_CountText;
}
}
+ Image m_CountryIcon;
+ public Image countryIcon
+ {
+ get
+ {
+ if (m_CountryIcon == null)
+ {
+ m_CountryIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_Country");
+ }
+ return m_CountryIcon;
+ }
+ }
+
+ Image m_PieceIcon;
+ public Image pieceIcon
+ {
+ get
+ {
+ if (m_PieceIcon == null)
+ {
+ m_PieceIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_Piece");
+ }
+ return m_PieceIcon;
+ }
+ }
+
+ Transform m_TimeForm;
+ public Transform timeForm
+ {
+ get
+ {
+ if (m_TimeForm == null)
+ {
+ m_TimeForm = this.transform.Find("Container_ItemCell/Bg_Time");
+ }
+ return m_TimeForm;
+ }
+ }
+
+ Text m_TimeText;
+ public Text timeText
+ {
+ get
+ {
+ if (m_TimeText == null)
+ {
+ m_TimeText = this.transform.GetComponent<Text>("Container_ItemCell/Bg_Time/Txt_Time");
+ }
+ return m_TimeText;
+ }
+ }
+
+
Button m_Button;
- public Button button {
- get {
+ public Button button
+ {
+ get
+ {
if (m_Button == null)
{
- LoadPrefab();
m_Button = this.GetComponent<Button>("Container_ItemCell");
}
return m_Button;
}
}
- // EquipSuitEffect m_SuitEffect;
- // EquipSuitEffect suitEffect {
- // get {
- // if (m_SuitEffect == null)
- // {
- // LoadPrefab();
- // //clone 浼氶�犳垚浜屾鍒涘缓
- // m_SuitEffect = transform.GetComponentInChildren<EquipSuitEffect>();
- // if (m_SuitEffect == null)
- // m_SuitEffect = EquipSuitEffect.Create(transform as RectTransform);
- // }
- // return m_SuitEffect;
- // }
- // }
//鐗╁搧鍩虹鐗规晥锛堢墿鍝佽〃锛�
- ItemBaseEffect m_ItemBaseEffect;
- ItemBaseEffect itemBaseEffect {
- get {
+ UIEffectPlayer m_ItemBaseEffect;
+ UIEffectPlayer itemBaseEffect
+ {
+ get
+ {
if (m_ItemBaseEffect == null)
{
- LoadPrefab();
- //clone 浼氶�犳垚浜屾鍒涘缓
- m_ItemBaseEffect = transform.GetComponentInChildren<ItemBaseEffect>();
- if (m_ItemBaseEffect == null)
- m_ItemBaseEffect = ItemBaseEffect.Create(transform as RectTransform);
+ m_ItemBaseEffect = transform.GetComponentInChildren<UIEffectPlayer>();
}
return m_ItemBaseEffect;
}
}
- // public bool suitEffectDirty { get; set; }
GameObject cellContainer;
protected void LoadPrefab()
@@ -127,31 +168,11 @@
}
if (cellContainer == null)
{
- switch (format)
- {
- case ItemCellformat.Format_64x64:
- cellContainer = UIUtility.CreateWidget("ItemCell_64", "Container_ItemCell");
- break;
- case ItemCellformat.Format_70x70:
- cellContainer = UIUtility.CreateWidget("ItemCell_70", "Container_ItemCell");
- break;
- case ItemCellformat.Format_80x80:
- cellContainer = UIUtility.CreateWidget("ItemCell_80", "Container_ItemCell");
- break;
- case ItemCellformat.Format_84x84:
- cellContainer = UIUtility.CreateWidget("ItemCell_84", "Container_ItemCell");
- break;
- case ItemCellformat.Format_100x100:
- cellContainer = UIUtility.CreateWidget("ItemCell_100", "Container_ItemCell");
- break;
- case ItemCellformat.Format_120x120:
- cellContainer = UIUtility.CreateWidget("ItemCell_120", "Container_ItemCell");
- break;
- }
+ cellContainer = UIUtility.CreateWidget("ItemCell_120", "Container_ItemCell");
if (cellContainer != null)
{
- cellContainer.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one);
+ cellContainer.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one * GetScale(format));
cellContainer.transform.SetAsFirstSibling();
}
}
@@ -159,7 +180,11 @@
public int itemId { get; private set; }
PackManager packModel { get { return PackManager.Instance; } }
- // EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
+
+ void OnEnable()
+ {
+ LoadPrefab();
+ }
/// <summary>
/// 鍒濆鍖栨暟鎹� bool鍊肩敤鏉ュ垽鏂槸鍚﹂渶瑕佸睍绀鸿瘎鍒嗛珮浣庢垨鑰呰亴涓氶檺鍒�
@@ -191,7 +216,7 @@
bgIcon.SetActive(true);
itemIcon.SetSprite(config.IconKey);
ItemConfig itemConfig = ItemConfig.Get(itemId);
- bgIcon.SetItemBackGround(ItemLogicUtility.Instance.GetItemQuality(itemId, useDataDic), itemConfig.QualityEchoType);
+ bgIcon.SetItemBackGround(ItemLogicUtility.Instance.GetItemQuality(itemId, useDataDic));
if (packModel.textCountShow.ContainsKey(itemId))
{
countText.SetActive(true);
@@ -217,29 +242,41 @@
}
}
- // suitEffect.Display(itemId, suitEffectDirty);
- // suitEffectDirty = false;
- itemBaseEffect.Display(itemId);
- var compareReslut = isCompare ? Compare(type, itemId, score, guid) : 0;
- switch (compareReslut)
+ DisPlayEffect(config);
+
+ // var compareReslut = isCompare ? Compare(type, itemId, score, guid) : 0;
+ // switch (compareReslut)
+ // {
+ // case -1:
+ // stateIcon.SetActive(true);
+ // stateIcon.SetSprite("EquipDownIcon");
+ // break;
+ // case 0:
+ // stateIcon.SetActive(false);
+ // break;
+ // case 1:
+ // stateIcon.SetActive(true);
+ // stateIcon.SetSprite("EquipUpIcon");
+ // break;
+ // case 99:
+ // stateIcon.SetActive(true);
+ // stateIcon.SetSprite("EquipForbidIcon");
+ // break;
+ // }
+
+ if (config.Type == (int)ItemType.Hero)
{
- case -1:
- stateIcon.SetActive(true);
- stateIcon.SetSprite("EquipDownIcon");
- break;
- case 0:
- stateIcon.SetActive(false);
- break;
- case 1:
- stateIcon.SetActive(true);
- stateIcon.SetSprite("EquipUpIcon");
- break;
- case 99:
- stateIcon.SetActive(true);
- stateIcon.SetSprite("EquipForbidIcon");
- break;
+ var heroConfig = HeroConfig.Get(itemId);
+ countryIcon.SetActive(true);
+ countryIcon.SetSprite("herocountry" + heroConfig.Country);
+
}
+ else
+ {
+ countryIcon.SetActive(false);
+ }
+ // pieceIcon.SetActive(); //寰呯瓥鍒掔‘瀹�
}
// / <summary>
@@ -286,21 +323,43 @@
}
}
- // int GetDogzEquipScore(int equipPlace)
- // {
- // var dogzModel = ModelCenter.Instance.GetModel<DogzModel>();
- // ItemModel putOnModel = null;
- // dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, equipPlace, out putOnModel);
- // return putOnModel == null ? 0 : putOnModel.score;
- // }
-
- // int GetSpiritWeaponScore(int equipPlace)
- // {
- // var spiritWeaponModel = ModelCenter.Instance.GetModel<SpiritWeaponModel>();
- // var guid = spiritWeaponModel.GetSpiritWeapon((RoleEquipType)equipPlace);
- // var item = packModel.GetItemByGuid(guid);
- // return item != null ? item.score : 0;
- // }
+ void DisPlayEffect(ItemConfig config)
+ {
+ if (config.BaseEffectID == 0)
+ {
+ if (itemBaseEffect != null)
+ {
+ itemBaseEffect.SetActive(false);
+ }
+ }
+ else
+ {
+ itemBaseEffect.SetActive(true);
+ itemBaseEffect.effectId = config.BaseEffectID;
+ itemBaseEffect.Play();
+ }
+ }
+
+ float GetScale(ItemCellformat format)
+ {
+ switch (format)
+ {
+ case ItemCellformat.Format_120x120:
+ return 1f;
+ case ItemCellformat.Format_100x100:
+ return 0.83f;
+ case ItemCellformat.Format_84x84:
+ return 0.7f;
+ case ItemCellformat.Format_80x80:
+ return 0.66f;
+ case ItemCellformat.Format_70x70:
+ return 0.58f;
+ case ItemCellformat.Format_64x64:
+ return 0.53f;
+ default:
+ return 1f;
+ }
+ }
}
diff --git a/Main/System/KnapSack/New/ItemCell.cs b/Main/System/KnapSack/New/ItemCell.cs
index cfe14d8..6602211 100644
--- a/Main/System/KnapSack/New/ItemCell.cs
+++ b/Main/System/KnapSack/New/ItemCell.cs
@@ -1,14 +1,14 @@
-锘縰sing UnityEngine;
-using UnityEngine.UI;
-using System.Collections.Generic;
-using System;
-
+锘�
public class ItemCell : CommonItemBaisc
{
public override void Init(ItemModel model, bool isCompare = false)
{
+ if (model == null)
+ {
+ return;
+ }
base.Init(model, isCompare);
}
diff --git a/Main/System/KnapSack/PackManager.cs b/Main/System/KnapSack/PackManager.cs
index 22e4249..d4acb33 100644
--- a/Main/System/KnapSack/PackManager.cs
+++ b/Main/System/KnapSack/PackManager.cs
@@ -3,12 +3,16 @@
using System.Linq;
using UnityEngine;
using LitJson;
-using System.Text.RegularExpressions;
using System.Collections;
+using System.IO;
public class PackManager : GameSystemManager<PackManager>
-//public class PackModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
{
+ public Dictionary<int, int> PackMaxCountDict = new Dictionary<int, int>(); //鑳屽寘绫诲瀷锛氳儗鍖呮牸瀛愭渶澶ф暟閲�
+ public Dictionary<int, int> PackInitCountDict = new Dictionary<int, int>(); //鑳屽寘绫诲瀷锛氬垵濮嬫暟閲�
+ public int initBagGridCount { get; private set; } //鍒濆鐗╁搧鑳屽寘鏍煎瓙鏁�
+ public int[] itemPackSortTyps { get; private set; } //鑳屽寘鐗╁搧鐨勬寜绫诲瀷鎺掑簭
+
public static string StrengthAttrShift_RecordKey = "";
public const string RecordKnapsackTitle = "RecordKnapsackTitle";
@@ -329,6 +333,7 @@
DeleteItemDictByGUID(type, guid);
}
}
+ refrechPackEvent?.Invoke(type);
}
public void RemoveItem(H0709_tagClearItem clearItem)
@@ -474,13 +479,54 @@
#region 鐜╁瑁呭鐗规畩閫昏緫
void ParseConfig()
{
-
-
var config = FuncConfigConfig.Get("CommonShowAwards");
commonShowAwardEvents = JsonMapper.ToObject<List<string>>(config.Numerical1);
+ config= FuncConfigConfig.Get("InitBagCellCount");
+ initBagGridCount = int.Parse(config.Numerical1);
+ PackInitCountDict = ConfigParse.ParseIntDict(config.Numerical2);
+
+ config = FuncConfigConfig.Get("PackageSortPriority");
+ itemPackSortTyps = ConfigParse.GetMultipleStr<int>(config.Numerical1);
+ ParsePackConfigIni();
}
+ void ParsePackConfigIni()
+ {
+ string[] lines = LoadConfigIni("MapServerConfig");
+ foreach (string line in lines)
+ {
+ if (line.StartsWith("PackCnt") && line.Contains("="))
+ {
+ string[] parts = line.Split('=');
+ if (parts.Length == 2 && int.TryParse(parts[1], out int count))
+ {
+ string packTypeStr = parts[0].Replace("PackCnt", "");
+ if (int.TryParse(packTypeStr, out int packTypeIndex))
+ {
+ PackMaxCountDict[packTypeIndex] = count;
+ }
+ }
+ }
+ }
+ }
+
+ public string[] LoadConfigIni(string name)
+ {
+ string path = string.Empty;
+#if UNITY_EDITOR
+ if (!AssetSource.isUseAssetBundle)
+ {
+ path = ResourcesPath.CONFIG_FODLER + "/" + name + ".ini";
+ }
+ else
+#endif
+ {
+ path = AssetVersionUtility.GetAssetFilePath($"Config/{name}.ini");
+ }
+
+ return File.ReadAllLines(path);
+ }
private void UpdateSecond()
@@ -550,7 +596,11 @@
public SinglePack GetSinglePack(PackType type)
{
SinglePack singlePack = null;
- playerPackDict.TryGetValue(type, out singlePack);
+ if (!playerPackDict.TryGetValue(type, out singlePack))
+ {
+ singlePack = new SinglePack(type);
+ playerPackDict.Add(type, singlePack);
+ }
return singlePack;
}
diff --git a/Main/System/Main/FuncsBaseWin.cs b/Main/System/Main/FuncsBaseWin.cs
index 94d3429..2a2689c 100644
--- a/Main/System/Main/FuncsBaseWin.cs
+++ b/Main/System/Main/FuncsBaseWin.cs
@@ -9,7 +9,7 @@
public abstract class FunctionsBaseWin : UIBase
{
// 鏍囩鎸夐挳缁�
- public Button[] tabButtons;
+ public GroupButtonEx[] tabButtons;
// 褰撳墠鎵撳紑鐨勫瓙鐣岄潰
protected UIBase currentSubUI;
@@ -19,8 +19,6 @@
/// </summary>
protected override void InitComponent()
{
- base.InitComponent();
-
// 鍒濆鍖朥I缁勪欢浜嬩欢
InitButtonEvents();
}
@@ -71,9 +69,6 @@
// 鏇存柊褰撳墠閫変腑鐨勬爣绛剧储寮�
functionOrder = index;
- // 鏇存柊鎸夐挳鐘舵��
- UpdateButtonsState();
-
// 鍏抽棴褰撳墠鎵撳紑鐨勫瓙鐣岄潰
CloseCurrentSubUI();
@@ -96,10 +91,7 @@
}
- /// <summary>
- /// 鏇存柊鎸夐挳鐘舵��
- /// </summary>
- protected abstract void UpdateButtonsState();
+
/// <summary>
/// 鏍规嵁鏍囩绱㈠紩鎵撳紑瀵瑰簲鐨勫瓙鐣岄潰
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 3b77d73..168cd28 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -25,6 +25,8 @@
//鍏冲崱
[SerializeField] Button bossBtn;
+ [SerializeField] Button changeHeroPosBtn;
+
/// <summary>
/// 鍒濆鍖栫粍浠�
/// </summary>
@@ -34,6 +36,12 @@
bossBtn.AddListener(() =>
{
UIManager.Instance.OpenWindow<MainBossEnterWin>();
+ });
+
+ changeHeroPosBtn.AddListener(() =>
+ {
+ HeroUIManager.Instance.selectTeamType = TeamType.Story;
+ UIManager.Instance.OpenWindow<HeroPosWin>();
});
}
@@ -52,9 +60,6 @@
TaskManager.Instance.OnTaskUpdate += UpdateTask;
Refresh();
UIManager.Instance.OpenWindow<BattleWin>();
-
- taskEffect.effectId = Random.Range(1007, 1008);
- taskEffect.Play();
}
protected override void OnOpen()
{
diff --git a/Main/System/Main/MainWin.cs b/Main/System/Main/MainWin.cs
index b589ac7..95327a6 100644
--- a/Main/System/Main/MainWin.cs
+++ b/Main/System/Main/MainWin.cs
@@ -121,22 +121,6 @@
}
-
- /// <summary>
- /// 鏇存柊鎸夐挳鐘舵��
- /// </summary>
- protected override void UpdateButtonsState()
- {
- // 閬嶅巻鎵�鏈夋寜閽紝璁剧疆閫変腑鐘舵��
- // for (int i = 0; i < tabButtons.Length; i++)
- // {
-
- // // bottomTabButtons[i].image.color = (i == currentTabIndex) ? Color.white : Color.gray;
- // }
- }
-
-
-
/// <summary>
/// 鏍规嵁鏍囩绱㈠紩鎵撳紑瀵瑰簲鐨勫瓙鐣岄潰
/// </summary>
@@ -154,7 +138,7 @@
Debug.Log("鎵撳紑涓诲煄鐣岄潰");
break;
case 1:
- // currentSubUI = UIManager.Instance.OpenUI<CharacterUI>();
+ currentSubUI = UIManager.Instance.OpenWindow<RolePackWin>();
Debug.Log("鎵撳紑鍐呮斂鐣岄潰");
break;
case 2:
diff --git a/Main/System/Message/ColorAnalysis.cs b/Main/System/Message/ColorAnalysis.cs
index a719dc8..5cda495 100644
--- a/Main/System/Message/ColorAnalysis.cs
+++ b/Main/System/Message/ColorAnalysis.cs
@@ -9,25 +9,26 @@
public override string Analysis(string val, bool IsRich)
{
- if (!Color_Start_Regex.IsMatch(val) || RichTextMgr.Inst.presentRichText == null)
- {
- return val;
- }
- int index = 0;
- m_StringBuilder.Length = 0;
- var _text = RichTextMgr.Inst.presentRichText;
- if (_text.colorType == RichText.ColorType.Bright)
- {
- return val;
- }
- foreach (Match match in Color_Start_Regex.Matches(val))
- {
- m_StringBuilder.Append(val.Substring(index, match.Groups[1].Index - index));
- m_StringBuilder.Append(GetColorMap(match.Groups[1].Value));
- index = match.Groups[1].Index + match.Groups[1].Length;
- }
- m_StringBuilder.Append(val.Substring(index, val.Length - index));
- return m_StringBuilder.ToString();
+ return val;
+ // if (!Color_Start_Regex.IsMatch(val) || RichTextMgr.Inst.presentRichText == null)
+ // {
+ // return val;
+ // }
+ // int index = 0;
+ // m_StringBuilder.Length = 0;
+ // var _text = RichTextMgr.Inst.presentRichText;
+ // if (_text.colorType == RichText.ColorType.Bright)
+ // {
+ // return val;
+ // }
+ // foreach (Match match in Color_Start_Regex.Matches(val))
+ // {
+ // m_StringBuilder.Append(val.Substring(index, match.Groups[1].Index - index));
+ // m_StringBuilder.Append(GetColorMap(match.Groups[1].Value));
+ // index = match.Groups[1].Index + match.Groups[1].Length;
+ // }
+ // m_StringBuilder.Append(val.Substring(index, val.Length - index));
+ // return m_StringBuilder.ToString();
}
private string GetColorMap(string _value)
@@ -36,39 +37,39 @@
{
_value = _value.Substring(0, 6);
}
- switch (_value.ToLower())
- {
- case "109d06":
- return "35e122";
- case "ff6701":
- return "f8983b";
- case "006be3":
- return "31cefb";
- case "ff0303":
- return "fa0101";
- case "12a199":
- return "13a199";
- case "686868":
- return "f7f7f7";
- case "da48d5":
- return "ec4bf6";
- case "f6408d":
- return "ff7c7c";
- case "bb8800":
- return "ffde00";
- case "666666":
- return "dddddd";
- case "9460ff":
- return "7999ff";
- case "0066ff":
- return "00c6ff";
- case "00b337":
- return "66ff00";
- case "ff6600":
- return "ff9000";
- case "ff00f6":
- return "f000ff";
- }
+ // switch (_value.ToLower())
+ // {
+ // case "109d06":
+ // return "35e122";
+ // case "ff6701":
+ // return "f8983b";
+ // case "006be3":
+ // return "31cefb";
+ // case "ff0303":
+ // return "fa0101";
+ // case "12a199":
+ // return "13a199";
+ // case "686868":
+ // return "f7f7f7";
+ // case "da48d5":
+ // return "ec4bf6";
+ // case "f6408d":
+ // return "ff7c7c";
+ // case "bb8800":
+ // return "ffde00";
+ // case "666666":
+ // return "dddddd";
+ // case "9460ff":
+ // return "7999ff";
+ // case "0066ff":
+ // return "00c6ff";
+ // case "00b337":
+ // return "66ff00";
+ // case "ff6600":
+ // return "ff9000";
+ // case "ff00f6":
+ // return "f000ff";
+ // }
return _value;
}
diff --git a/Main/System/Team/TeamBase.cs b/Main/System/Team/TeamBase.cs
index 14622c7..f578df0 100644
--- a/Main/System/Team/TeamBase.cs
+++ b/Main/System/Team/TeamBase.cs
@@ -252,6 +252,16 @@
tempHeroes[posNum] = hero;
}
+ // 甯冮樀鎺ュ彛: 鎭㈠闃靛
+ public void RestoreTeam()
+ {
+ for (int i = 0; i < tempHeroes.Length; i++)
+ {
+ tempHeroes[i] = serverHeroes[i];
+ }
+ }
+
+
public void AddHero(HeroInfo heroInfo, int targetPosition)
{
if (targetPosition < 0 || targetPosition >= tempHeroes.Length)
diff --git a/Main/System/Team/TeamType.cs b/Main/System/Team/TeamType.cs
index 8140550..79b7b12 100644
--- a/Main/System/Team/TeamType.cs
+++ b/Main/System/Team/TeamType.cs
@@ -3,12 +3,8 @@
public enum TeamType
{
None = 0,
- // PVE
- Story = 1,
- // PVP 杩涙敾
- Arena = 2,
- // PVP 闃插畧
- ArenaDefense = 3,
- Tower = 4,
+ Story = 1, //涓荤嚎
+ Arena = 2, //绔炴妧鍦鸿繘鏀�
+ ArenaDefense = 3, //绔炴妧鍦洪槻瀹�
}
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index 959cc05..3e95377 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -792,6 +792,7 @@
Equip_Wing = 113, // 缈呰唨
Guard_1 = 114, // 鐏靛畧 1
Guard_2 = 115, //鐏靛畧 2
+ Hero = 150, //姝﹀皢
}
@@ -1085,7 +1086,7 @@
White = 1,
titleSelectColor = 2,
titleUnSelectColor = 3,
-
+ lightYellow = 4, //娴呴粍鑹�
Red = 5,
Pink = 6,
/// <summary>
diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index b3bdcd3..f135ca8 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -113,13 +113,13 @@
}
// 鍩轰簬itemColor 涓嬶紝ColorEx鍋氫簩绾у尯鍒�
- public static void SetItemBackGround(this Image _image, int itemColor, int ColorEx = 0)
+ public static void SetItemBackGround(this Image _image, int itemColor)
{
if (_image == null)
{
return;
}
- _image.SetSprite(string.Format("Common_Public_ItemColor{0}{1}", itemColor, ColorEx));
+ _image.SetSprite($"ItemBG{itemColor}");
}
/// <summary>
/// 鍓╀綑鏃堕棿
@@ -515,10 +515,10 @@
public static readonly Color s_NavyBrown = new Color32(110, 76, 49, 255);//6e4c31
public static readonly Color s_Black = new Color32(0, 0, 0, 255);
- public static readonly Color s_NavyYellow = new Color32(255, 239, 71, 255);
+ public static readonly Color s_NavyYellow = new Color32(242, 238, 2, 255); //f2ee02
public static readonly Color s_LightGreen = new Color32(42, 227, 55, 255);//2ae337
public static readonly Color s_LightWhite = new Color32(245, 246, 230, 255); //f5f6e6
- public static readonly Color s_Gray = new Color32(187, 187, 187, 255); //bbbbbb
+ public static readonly Color s_Gray = new Color32(132, 121, 123, 255); //84797b
public static readonly Color s_Gold = new Color32(255, 239, 71, 255);//ffef47
public static readonly Color s_EarthYellow = new Color32(248, 152, 59, 255);//f8983b
@@ -645,9 +645,9 @@
case TextColType.White:
return bright ? s_BrightWhiteColor : s_DarkWhiteColor; // s_BrightWhiteColor 鏄寒搴曠伆鑹�
case TextColType.titleSelectColor:
- return new Color32(114, 157, 228, 255);
- case TextColType.titleUnSelectColor:
return new Color32(127, 65, 57, 255);
+ case TextColType.titleUnSelectColor:
+ return new Color32(110, 92, 96, 255);
case TextColType.Red:
return bright ? s_BrightRedColor : s_DarkRedColor;
case TextColType.Pink:
@@ -660,6 +660,8 @@
return s_BrightGreenColor;
case TextColType.Black:
return s_Black;
+ case TextColType.lightYellow: //娴呴粍鑹�
+ return new Color32(252, 237, 185, 255);
case TextColType.NavyYellow:
return s_NavyYellow;
case TextColType.LightGreen:
@@ -771,12 +773,12 @@
public static string AppendColor(TextColType type, string msg, bool bright = false)
{
- if (m_TextColorRegex.IsMatch(msg) && msg.ToLower().StartsWith("<color=#")
- && msg.ToLower().EndsWith("</color>"))
- {
- Match match = m_TextColorRegex.Match(msg);
- msg = match.Groups[1].Value;
- }
+ // if (m_TextColorRegex.IsMatch(msg) && msg.ToLower().StartsWith("<color=#")
+ // && msg.ToLower().EndsWith("</color>"))
+ // {
+ // Match match = m_TextColorRegex.Match(msg);
+ // msg = match.Groups[1].Value;
+ // }
switch (type)
{
case TextColType.None:
@@ -803,7 +805,11 @@
case TextColType.LightGreen:
return StringUtility.Contact("<color=#", "8ddc11", ">", msg, "</color>");
case TextColType.Gray:
- return StringUtility.Contact("<color=#", "686868", ">", msg, "</color>");
+ return StringUtility.Contact("<color=#", "84797b", ">", msg, "</color>");
+ case TextColType.lightYellow:
+ return StringUtility.Contact("<color=#", "fcedb9", ">", msg, "</color>");
+ case TextColType.NavyYellow:
+ return StringUtility.Contact("<color=#", "f2ee02", ">", msg, "</color>");
}
return msg;
}
--
Gitblit v1.8.0