123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- 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;
- CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
- CombatEventManager.Instance.AddEventListener(CombatEventType.RecoverUpdate, RecoverUpdate);
- }
- 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);
- }
- 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);
- }
- }
- private void HeroInjured(IEventData iEventData)
- {
- HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
- if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity)
- {
- string msg =
- $"我攻击了目标 {heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo.heroName}" +
- $" 造成伤害 {heroInjuredEventData.HarmReturnInfo.att} 伤害类型 {heroInjuredEventData.HarmReturnInfo.attType}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- string harmKey = "无";
- SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
- if (skillBasic != null)
- {
- harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
- }
- BuffBasic buffBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as BuffBasic;
- if (buffBasic != null)
- {
- harmKey = "B" + LanguageManager.Instance.Text(buffBasic.buffInf.BuffConfig.buffName);
- }
- allHarm += heroInjuredEventData.HarmReturnInfo.att;
- CombatInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att);
- }
- else if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
- {
- string msg =
- $"被攻击 {heroInjuredEventData.HarmReturnInfo.source.CurrCombatHeroInfo.heroName}" +
- $" 受到伤害 {heroInjuredEventData.HarmReturnInfo.att} 伤害类型 {heroInjuredEventData.HarmReturnInfo.attType}";
- float t = CombatController.currActiveCombat.combatTime;
- MsgModule.Add(t, msg);
- string harmKey = "其他";
- SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
- if (skillBasic != null)
- {
- harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
- }
- BuffBasic buffBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as BuffBasic;
- if (buffBasic != null)
- {
- harmKey = "B" + LanguageManager.Instance.Text(buffBasic.buffInf.BuffConfig.buffName);
- }
- allBeiZhiLiao += heroInjuredEventData.HarmReturnInfo.att;
- InjuredInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att);
- }
- }
- public void Dispose()
- {
- CombatHeroEntity = null;
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.RecoverUpdate, RecoverUpdate);
- }
- }
- }
|