From 9e89e605d5429babb4b33df2e47ea86dff9d2ba7 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 20 十一月 2025 11:55:04 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Hero/HeroManager.cs | 109 ++++++++++++++++++------------------------------------
1 files changed, 36 insertions(+), 73 deletions(-)
diff --git a/Main/System/Hero/HeroManager.cs b/Main/System/Hero/HeroManager.cs
index b6b3805..49ef7bd 100644
--- a/Main/System/Hero/HeroManager.cs
+++ b/Main/System/Hero/HeroManager.cs
@@ -10,23 +10,14 @@
//鍒濆鍒涘缓锛�0725锛夛紝鍚庣画璺熼殢鑳屽寘浜嬩欢澧炲姞鍒犻櫎 key = guid
protected Dictionary<string, HeroInfo> heroInfoDict = new Dictionary<string, HeroInfo>();
- //姝﹀皢鍒楄〃鐣岄潰
- public List<string> heroSortList = new List<string>();
-
- //姝﹀皢绾㈢偣
- //MainRedDot.HeroCardRedpoint * 1000 + hero.itemHero.gridIndex;
-
- public Action<HeroInfo> onNewHeroEvent;
-
public Action<HeroInfo> onHeroChangeEvent;
- public Action<HeroInfo> onHeroDeleteEvent;
+ public Action<int> onHeroDeleteEvent;
public override void Init()
{
base.Init();
- PackManager.Instance.refrechPackEvent += refrechPackEvent;
PackManager.Instance.ChangeItemEvent += ChangeHero;
PackManager.Instance.DeleteItemEvent += DeleteHero;
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
@@ -35,7 +26,6 @@
public override void Release()
{
base.Release();
- PackManager.Instance.refrechPackEvent -= refrechPackEvent;
PackManager.Instance.ChangeItemEvent -= ChangeHero;
PackManager.Instance.DeleteItemEvent -= DeleteHero;
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
@@ -43,17 +33,10 @@
void OnBeforePlayerDataInitialize()
{
- heroSortList.Clear();
+
heroInfoDict.Clear();
}
- void refrechPackEvent(PackType packType)
- {
- if (packType == PackType.Hero)
- {
- InitHerosInfo();
- }
- }
// isCreate bool锛歵rue浠h〃鍒涘缓 false 鍒锋柊瑙﹀彂
void ChangeHero(PackType packType, string guid, bool isCreate)
@@ -75,7 +58,7 @@
}
}
- void DeleteHero(PackType packType, string guid)
+ void DeleteHero(PackType packType, string guid, int itemID, int index, int clearType)
{
if (packType == PackType.Hero)
{
@@ -83,9 +66,8 @@
heroInfoDict.TryGetValue(guid, out heroInfo);
heroInfoDict.Remove(guid);
-
- if (null != heroInfo)
- onHeroDeleteEvent?.Invoke(heroInfo);
+
+ onHeroDeleteEvent?.Invoke(itemID);
}
}
@@ -101,17 +83,31 @@
return heroInfoDict.Values.ToList();
}
+ public List<string> GetHeroGuidList(int job = 0, int country = 0)
+ {
+ if (job == 0 && country == 0)
+ return heroInfoDict.Keys.ToList();
- void InitHerosInfo()
- {
- heroInfoDict.Clear();
- SinglePack heroPack = PackManager.Instance.GetSinglePack(PackType.Hero);
- Dictionary<int, ItemModel> heroes = heroPack.GetAllItems();
- foreach (ItemModel hero in heroes.Values)
+ List<string> retGuidList = new List<string>();
+ foreach (string guid in heroInfoDict.Keys)
{
- ChangeHero(hero.packType, hero.guid, true);
+ 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()
@@ -120,8 +116,8 @@
heroList.Sort((a, b) =>
{
- int power1 = a.CalculatePower();
- int power2 = b.CalculatePower();
+ long power1 = a.CalculateFightPower(false);
+ long power2 = b.CalculateFightPower(false);
if (power1 == power2)
{
@@ -141,52 +137,19 @@
return retList;
}
- public bool waitResortHeroList = false;
-
- //鍒锋柊鏃舵満, 鎵撳紑姝﹀皢鐣岄潰 鎴栬�� 鍏抽棴鍔熻兘鐣岄潰
- public void SortHeroList()
+ public int GetHeroCount()
{
- heroSortList = heroInfoDict.Keys.ToList();
- heroSortList.Sort(CmpHero);
+ return heroInfoDict.Count;
}
-
- int CmpHero(string guidA, string guidB)
+ public bool HasHero(int heroID)
{
- HeroInfo heroA = heroInfoDict[guidA];
- HeroInfo heroB = heroInfoDict[guidB];
- if (heroA == null || heroB == null)
- {
- return 0;
- }
- // 鎺掑簭瑙勫垯锛氫笂闃�>姝﹀皢绛夌骇锛炵獊鐮寸瓑绾э紴姝﹀皢瑙夐啋闃剁骇锛炴灏嗗搧璐紴姝﹀皢鍚炲櫖鏄熺骇锛炴灏咺D
- if (heroA.isInMainBattle != heroB.isInMainBattle)
- {
- return heroA.isInMainBattle ? -1 : 1;
- }
- if (heroA.heroLevel != heroB.heroLevel)
- {
- return heroA.heroLevel > heroB.heroLevel ? -1 : 1;
- }
- if (heroA.breakLevel != heroB.breakLevel)
- {
- return heroA.breakLevel > heroB.breakLevel ? -1 : 1;
- }
- if (heroA.awakeLevel != heroB.awakeLevel)
- {
- return heroA.awakeLevel > heroB.awakeLevel ? -1 : 1;
- }
- if (heroA.Quality != heroB.Quality)
- {
- return heroA.Quality > heroB.Quality ? -1 : 1;
- }
- if (heroA.heroStar != heroA.heroStar)
- {
- return heroA.heroStar > heroB.heroStar ? -1 : 1;
- }
-
- return heroA.heroId.CompareTo(heroB.heroId);
+ return PackManager.Instance.GetSinglePack(PackType.Hero).HasItem(heroID);
}
+ public int GetHeroCountByID(int heroID)
+ {
+ return (int)PackManager.Instance.GetSinglePack(PackType.Hero).GetCountById(heroID);
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0