From 09bc892c7283df8757a07b646d5af21ddaa263d1 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 06 十一月 2025 18:22:34 +0800
Subject: [PATCH] 164 天子的考验-客户端
---
Main/System/Hero/HeroInfo.cs | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 159 insertions(+), 19 deletions(-)
diff --git a/Main/System/Hero/HeroInfo.cs b/Main/System/Hero/HeroInfo.cs
index 7043e73..e0b9657 100644
--- a/Main/System/Hero/HeroInfo.cs
+++ b/Main/System/Hero/HeroInfo.cs
@@ -1,32 +1,172 @@
using System.Collections.Generic;
using UnityEngine;
+using LitJson;
+// 姝﹀皢淇℃伅锛氬疄闄呰幏寰楃殑姝﹀皢锛屼笉鍖呭惈鍥鹃壌鏁版嵁
public partial class HeroInfo
{
- public long sid;
-
+ // 姝﹀皢閰嶇疆琛↖D
public int heroId;
- public int heroLevel;
+ // 姝﹀皢閰嶇疆
+ public HeroConfig heroConfig { get; private set; }
+ public ItemModel itemHero; //寮曠敤鑳屽寘閲岀殑 鏁版嵁鍚屾
- public int heroStar;
-
- public int breakLevel;
-
- // public List<int> heroEquipList;
-
- // public List<int> heroRuneList;
-
- // public List<int> heroMedalList;
-
- // public HeroConfig heroConfig;
-
- public HeroSkillMgr heroSkillMgr;
-
- public HeroInfo(/*TODO 绛夊緟鏈嶅姟鍣ㄦ暟鎹�*/)
+ public HeroCountry heroCountry
{
- heroSkillMgr = new HeroSkillMgr(this);
+ get
+ {
+ return (HeroCountry)heroConfig.Country;
+ }
}
+ // 鍝佽川閰嶇疆
+ public HeroQualityConfig qualityConfig { get; private set; }
+
+ public int Quality
+ {
+ get
+ {
+ return heroConfig.Quality;
+ }
+ }
+
+ // 姝﹀皢绛夌骇
+ public int heroLevel
+ {
+ get
+ {
+ if (itemHero == null)
+ return 0;
+ return itemHero.GetUseDataFirstValue(70);
+ }
+ }
+
+
+ public bool isLock
+ {
+ get
+ {
+ return itemHero.itemInfo.isLock;
+ }
+ }
+
+
+ //宸插涔犵殑鎵�鏈夋妧鑳藉彇鏈�楂樼骇鐨勬妧鑳�
+ Dictionary<int, int> allSkillTypeIDToID = new Dictionary<int, int>(); //鎶�鑳界被鍨婭D锛� 鏈�楂樻妧鑳絀D
+
+
+ public HeroInfo(ItemModel _itemHero)
+ {
+ UpdateHero(_itemHero);
+ }
+
+
+
+
+ public void UpdateHero(ItemModel _itemHero)
+ {
+ itemHero = _itemHero;
+ // HeroConfigUtility
+ heroId = itemHero.config.ID;
+
+ InitConfigs();
+
+ CalculateProperties();
+ // // 缇佺粖
+ // fetterInfoList.Clear();
+ // for (int i = 0; i < heroConfig.FetterIDList.Length; i++)
+ // {
+ // fetterInfoList.Add(new HeroFetterInfo(this, heroConfig.FetterIDList[i]));
+ // }
+
+ // 80 # 涓婚樀鍨嬩笂闃典綅缃�
+ }
+
+ protected void InitConfigs()
+ {
+ // 姝﹀皢閰嶇疆
+ heroConfig = HeroConfig.Get(heroId);
+ // 鍝佽川閰嶇疆
+ qualityConfig = HeroQualityConfig.Get(Quality);
+
+ // 鍝佽川绐佺牬閰嶇疆
+ qualityBreakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(Quality, breakLevel);
+
+ breakConfig = HeroBreakConfig.GetHeroBreakConfig(heroId, breakLevel);
+ awakeConfig = HeroAwakeConfig.GetHeroAwakeConfig(heroId, awakeLevel);
+ qualityAwakeConfig = HeroQualityAwakeConfig.GetQualityAwakeConfig(Quality, awakeLevel);
+
+ }
+
+
+
+ //鏄惁涓妜闃� 鏈嶅姟绔槦浼�
+ public bool IsInTeamByTeamType(TeamType teamType)
+ {
+ return TeamManager.Instance.GetTeam(teamType).HasHeroInServer(itemHero.guid);
+ }
+
+ //鏄惁涓婁换浣曢樀瀹�
+ public bool IsInAnyTeam()
+ {
+ for (int i = 1; i < (int)TeamType.Max; i++)
+ {
+ if (TeamManager.Instance.GetTeam((TeamType)i).HasHeroInServer(itemHero.guid))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ //鏄惁涓婁换浣曢樀瀹癸紝涓斿彧鏈変竴鍙�
+ public bool IsInAnyTeamJustOne()
+ {
+ for (int i = 1; i < (int)TeamType.Max; i++)
+ {
+ var team = TeamManager.Instance.GetTeam((TeamType)i);
+ if (team.HasHeroInServer(itemHero.guid))
+ {
+ if (team.GetTeamHeroCount() == 1)
+ return true;
+ }
+ }
+ return false;
+ }
+
+ //涓嬮樀鎵�鏈夐樀瀹�
+ public void LeaveAllTeam()
+ {
+ for (int i = 1; i < (int)TeamType.Max; i++)
+ {
+ int pos;
+ var team = TeamManager.Instance.GetTeam((TeamType)i);
+ if (TeamManager.Instance.GetTeam((TeamType)i).RemoveHero(this, out pos))
+ {
+ //濡傛灉鏄渶鍚庝竴涓灏嗭紝鍒欓粯璁や笂闃典竴涓�
+ team.SaveTeam();
+ }
+ }
+ }
+
+ public long GetSkillsFightPower()
+ {
+ long fightPower = 0;
+ foreach (var skillID in allSkillTypeIDToID.Values)
+ {
+ fightPower += SkillConfig.Get(skillID).FightPower;
+ }
+ return fightPower;
+ }
+
+
+ public void ChangeLockState()
+ {
+ var pack = new CB238_tagCSHeroLock();
+ pack.ItemIndex = (ushort)itemHero.gridIndex;
+ pack.IsLock = isLock ? (byte)0 : (byte)1;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0