47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
using ET.EventType;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace ET
|
|
{
|
|
public class DamageEventEvent : AEvent<DamageEvent>
|
|
{
|
|
public override async ETTask Run(DamageEvent args)
|
|
{
|
|
try
|
|
{
|
|
Unit attacker = args.attacker;
|
|
CopyBattle battleBase = BattleMgrCompnent.Instance.GetBattle(attacker);
|
|
if (battleBase == null)
|
|
{
|
|
Log.Error($"battleBase is null");
|
|
return;
|
|
}
|
|
if (battleBase.battleType == BattleType.FamilyBoss)
|
|
{
|
|
ChangeDamageData(battleBase,attacker, args.damage);
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Log.Error(e);
|
|
}
|
|
await ETTask.CompletedTask;
|
|
}
|
|
public static void ChangeDamageData( CopyBattle battleBase, Unit unit, int damage)
|
|
{
|
|
BossDamageMap map = battleBase.bossDamageMap;
|
|
map.TotalDamage += damage;
|
|
for (int i = map.DamageList.Count - 1; i >= 0; i--)
|
|
{
|
|
BossDamagePerMemberMap info = map.DamageList[i];
|
|
if (info.Id == unit.Id)
|
|
{
|
|
info.Damage += damage;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|