123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- using System;
- using Common.Utility.CombatEvent;
- using Core.BattleReport;
- using Core.Language;
- using Fort23.Core;
- using GameLogic.Combat.Buff;
- using GameLogic.Combat.Skill;
- namespace GameLogic.Combat.CombatTool.CombatReport
- {
- public class CombatReportEntityInfo : IDisposable
- {
- public CombatHeroEntity CombatHeroEntity;
- /// <summary>
- /// 英雄数据面板
- /// </summary>
- public BattleReportValueDataModule HeroInfoModule = new BattleReportValueDataModule();
- /// <summary>
- /// 战斗照成信息面板
- /// </summary>
- public BattleReportValueDataModule CombatInfoModule = new BattleReportValueDataModule();
- /// <summary>
- /// 治疗信息
- /// </summary>
- public BattleReportValueDataModule zhiLiao = new BattleReportValueDataModule();
- /// <summary>
- /// 被治疗信息
- /// </summary>
- public BattleReportValueDataModule beiZhiLiao = new BattleReportValueDataModule();
- /// <summary>
- /// 战斗受到伤害信息面板
- /// </summary>
- public BattleReportValueDataModule InjuredInfoModule = new BattleReportValueDataModule();
- /// <summary>
- /// 战斗日子面板
- /// </summary>
- public ReportFightMassgeLogDataModule MsgModule = new ReportFightMassgeLogDataModule();
- public long allHarm = 0;
- public long allZhiLiao = 0;
- public long allBeiZhiLiao = 0;
- public long allChengShang = 0;
- public void Init(CombatHeroEntity combatHeroEntity)
- {
- CombatHeroEntity = combatHeroEntity;
- HeroInfoModule.SetMax("计算K", CombatHeroEntity.MaxCombatHeroInfo.k);
- HeroInfoModule.SetMax("生命", CombatHeroEntity.MaxCombatHeroInfo.hp.Value);
- HeroInfoModule.SetMax("攻击力", CombatHeroEntity.MaxCombatHeroInfo.attack.Value);
- HeroInfoModule.SetMax("防御", CombatHeroEntity.MaxCombatHeroInfo.defense.Value);
- HeroInfoModule.SetMax("攻击速度", CombatHeroEntity.MaxCombatHeroInfo.attSpeed.Value);
- HeroInfoModule.SetMax("额外攻击速度%", CombatHeroEntity.MaxCombatHeroInfo.addAttSpeed_bl);
- HeroInfoModule.SetMax("护盾值", CombatHeroEntity.MaxCombatHeroInfo.Shield.Value);
- HeroInfoModule.SetMax("神识", CombatHeroEntity.MaxCombatHeroInfo.shenshi.Value);
- HeroInfoModule.SetMax("金灵根", CombatHeroEntity.MaxCombatHeroInfo.Metal);
- HeroInfoModule.SetMax("木灵根", CombatHeroEntity.MaxCombatHeroInfo.Wood);
- HeroInfoModule.SetMax("水灵根", CombatHeroEntity.MaxCombatHeroInfo.Water);
- HeroInfoModule.SetMax("火灵根", CombatHeroEntity.MaxCombatHeroInfo.Fire);
- HeroInfoModule.SetMax("土灵根", CombatHeroEntity.MaxCombatHeroInfo.Earth);
-
- HeroInfoModule.SetMax("金伤势", CombatHeroEntity.MaxCombatHeroInfo.Metal_Injury);
- HeroInfoModule.SetMax("木伤势", CombatHeroEntity.MaxCombatHeroInfo.Wood_Injury);
- HeroInfoModule.SetMax("水伤势", CombatHeroEntity.MaxCombatHeroInfo.Water_Injury);
- HeroInfoModule.SetMax("火伤势", CombatHeroEntity.MaxCombatHeroInfo.Fire_Injury);
- HeroInfoModule.SetMax("土伤势", CombatHeroEntity.MaxCombatHeroInfo.Earth_Injury);
-
-
- CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
- CombatEventManager.Instance.AddEventListener(CombatEventType.RecoverUpdate, RecoverUpdate);
- CombatEventManager.Instance.AddEventListener(CombatEventType.AddBuff, AddBuff);
- CombatEventManager.Instance.AddEventListener(CombatEventType.RemoveBuff, RemoveBuff);
- CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
- CombatEventManager.Instance.AddEventListener(CombatEventType.UseMagicWeapon, UseMagicWeapon);
- }
- public void Update()
- {
- UpdateHeroInfo();
- }
- private void UpdateHeroInfo()
- {
- HeroInfoModule.Add("计算K", CombatHeroEntity.CurrCombatHeroInfo.k);
- HeroInfoModule.Add("生命", CombatHeroEntity.CurrCombatHeroInfo.hp.Value);
- HeroInfoModule.Add("攻击力", CombatHeroEntity.CurrCombatHeroInfo.attack.Value);
- HeroInfoModule.Add("防御", CombatHeroEntity.CurrCombatHeroInfo.defense.Value);
- HeroInfoModule.Add("攻击速度", CombatHeroEntity.CurrCombatHeroInfo.attSpeed.Value);
- HeroInfoModule.Add("额外攻击速度%", CombatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl);
- HeroInfoModule.Add("护盾值", CombatHeroEntity.CurrCombatHeroInfo.Shield.Value);
- HeroInfoModule.Add("神识", CombatHeroEntity.CurrCombatHeroInfo.shenshi.Value);
- HeroInfoModule.Add("金灵根", CombatHeroEntity.CurrCombatHeroInfo.Metal);
- HeroInfoModule.Add("木灵根", CombatHeroEntity.CurrCombatHeroInfo.Wood);
- HeroInfoModule.Add("水灵根", CombatHeroEntity.CurrCombatHeroInfo.Water);
- HeroInfoModule.Add("火灵根", CombatHeroEntity.CurrCombatHeroInfo.Fire);
- HeroInfoModule.Add("土灵根", CombatHeroEntity.CurrCombatHeroInfo.Earth);
-
- HeroInfoModule.Add("金伤势", CombatHeroEntity.CurrCombatHeroInfo.Metal_Injury);
- HeroInfoModule.Add("木伤势", CombatHeroEntity.CurrCombatHeroInfo.Wood_Injury);
- HeroInfoModule.Add("水伤势", CombatHeroEntity.CurrCombatHeroInfo.Water_Injury);
- HeroInfoModule.Add("火伤势", CombatHeroEntity.CurrCombatHeroInfo.Fire_Injury);
- HeroInfoModule.Add("土伤势", CombatHeroEntity.CurrCombatHeroInfo.Earth_Injury);
-
-
- }
- private void UseMagicWeapon(IEventData iEventData)
- {
- UseMagicWeaponEventData useMagicWeaponEventData = iEventData as UseMagicWeaponEventData;
- if (useMagicWeaponEventData.combatHeroEntity == CombatHeroEntity)
- {
- string msg =
- $"使用法宝 {useMagicWeaponEventData.combatMagicWeaponEntity.FaBaoInfo.FabaoConfig.ID}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- }
- }
- private void UseSkill(IEventData iEventData)
- {
- CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
- if (combatUseSkillEventData.useSkill.CombatHeroEntity == CombatHeroEntity)
- {
- string msg =
- $"使用技能 {combatUseSkillEventData.useSkill.SelfSkillConfig.ID}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- }
- }
- private void RemoveBuff(IEventData iEventData)
- {
- BuffEventData buffEventData = iEventData as BuffEventData;
- if (buffEventData.target == CombatHeroEntity)
- {
- string msg =
- $"移除了一个buff {buffEventData.BuffBasic.buffInf.BuffConfig.scriptsName}" +
- $" 数量 {buffEventData.BuffBasic.buffInf.count}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- }
- }
- private void AddBuff(IEventData iEventData)
- {
- BuffEventData buffEventData = iEventData as BuffEventData;
- if (buffEventData.target == CombatHeroEntity)
- {
- string msg =
- $"获得buff {buffEventData.BuffBasic.buffInf.BuffConfig.scriptsName}" +
- $" 数量 {buffEventData.BuffBasic.buffInf.count} 施放者{buffEventData.source.CurrCombatHeroInfo.modelID}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- }
- else if (buffEventData.source == CombatHeroEntity)
- {
- string msg =
- $"施加buff {buffEventData.BuffBasic.buffInf.BuffConfig.scriptsName}" +
- $" 数量 {buffEventData.BuffBasic.buffInf.count} 目标{buffEventData.target.CurrCombatHeroInfo.modelID}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- }
- }
- private void RecoverUpdate(IEventData iEventData)
- {
- HarmUpdateEventData recoverUpdateEventData = iEventData as HarmUpdateEventData;
- if (recoverUpdateEventData.HarmReturnInfo.source == CombatHeroEntity)
- {
- string msg =
- $"我治疗了目标 {recoverUpdateEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo.heroName}" +
- $" 治疗量 {recoverUpdateEventData.HarmReturnInfo.att} 治疗类型 {recoverUpdateEventData.HarmReturnInfo.attType}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- string harmKey = "无";
- SkillBasic skillBasic = recoverUpdateEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
- if (skillBasic != null)
- {
- harmKey = "S" + LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
- }
- BuffBasic buffBasic = recoverUpdateEventData.HarmReturnInfo.triggerData.Source as BuffBasic;
- if (buffBasic != null)
- {
- harmKey = "B" + LanguageManager.Instance.Text(buffBasic.buffInf.BuffConfig.buffName);
- }
- allZhiLiao += recoverUpdateEventData.HarmReturnInfo.att;
- zhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att,true);
- }
- else if (recoverUpdateEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
- {
- string msg =
- $"被治疗 {recoverUpdateEventData.HarmReturnInfo.source.CurrCombatHeroInfo.heroName}" +
- $" 受到治疗 {recoverUpdateEventData.HarmReturnInfo.att} 治疗类型 {recoverUpdateEventData.HarmReturnInfo.attType} 治疗来源{recoverUpdateEventData.HarmReturnInfo.triggerData.Source}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- string harmKey = "其他";
- SkillBasic skillBasic = recoverUpdateEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
- if (skillBasic != null)
- {
- harmKey = "S" + LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
- }
- BuffBasic buffBasic = recoverUpdateEventData.HarmReturnInfo.triggerData.Source as BuffBasic;
- if (buffBasic != null)
- {
- harmKey = "B" + LanguageManager.Instance.Text(buffBasic.buffInf.BuffConfig.buffName);
- }
- allBeiZhiLiao += recoverUpdateEventData.HarmReturnInfo.att;
- beiZhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att,true);
- }
- }
- private void HeroInjured(IEventData iEventData)
- {
- HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
- if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity)
- {
-
- string harmKey = "无";
- SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
- if (skillBasic != null)
- {
- harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name)+" id:"+skillBasic.SelfSkillConfig.ID;
- }
- BuffBasic buffBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as BuffBasic;
- if (buffBasic != null)
- {
- harmKey = "B" + LanguageManager.Instance.Text(buffBasic.buffInf.BuffConfig.buffName);
- }
- string msg =
- $"我攻击了目标 {heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo.heroName} 来源{harmKey} 原始伤害{ heroInjuredEventData.HarmReturnInfo.yuanShiAtt }" +
- $" 造成伤害 {heroInjuredEventData.HarmReturnInfo.att} 伤害类型 {heroInjuredEventData.HarmReturnInfo.attType}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
-
- allHarm += heroInjuredEventData.HarmReturnInfo.att;
- CombatInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att,true);
- }
- else if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
- {
-
- string harmKey = "其他";
- SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
- if (skillBasic != null)
- {
- harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name)+" id:"+skillBasic.SelfSkillConfig.ID;
- }
- BuffBasic buffBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as BuffBasic;
- if (buffBasic != null)
- {
- harmKey = "B" + LanguageManager.Instance.Text(buffBasic.buffInf.BuffConfig.buffName);
- }
- string msg =
- $"被攻击 {heroInjuredEventData.HarmReturnInfo.source.CurrCombatHeroInfo.heroName} 来源{harmKey} 原始伤害{ heroInjuredEventData.HarmReturnInfo.yuanShiAtt }" +
- $" 受到伤害 {heroInjuredEventData.HarmReturnInfo.att} 伤害类型 {heroInjuredEventData.HarmReturnInfo.attType}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- allChengShang += heroInjuredEventData.HarmReturnInfo.att;
- InjuredInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att,true);
- }
- }
- public void Dispose()
- {
- CombatHeroEntity = null;
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.RecoverUpdate, RecoverUpdate);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddBuff, AddBuff);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.RemoveBuff, RemoveBuff);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseMagicWeapon, UseMagicWeapon);
- }
- }
- }
|