CTT/Server/Hotfix/Game/Event/Battle/TreatEventEvent.cs

49 lines
1.4 KiB
C#

using ET.EventType;
using System;
using System.Collections.Generic;
namespace ET
{
public class TreatEventEvent : AEvent<TreatEvent>
{
public override async ETTask Run(TreatEvent args)
{
try
{
Unit attacker = args.attacker;
if (attacker.teamState == TeamState.Fight)
{
CopyBattle battleBase = BattleMgrCompnent.Instance.GetBattle(attacker);
if (battleBase == null)
{
Log.Error($"battleBase is null");
return;
}
if (battleBase.battleType == BattleType.FamilyBoss)
{
ChangeTreatData (battleBase,attacker, args.treat);
}
}
}
catch (Exception e)
{
Log.Error(e);
}
await ETTask.CompletedTask;
}
public static void ChangeTreatData(CopyBattle battleBase, Unit unit, int treat)
{
BossDamageMap map = battleBase.bossDamageMap;
for (int i = map.DamageList.Count - 1; i >= 0; i--)
{
BossDamagePerMemberMap info = map.DamageList[i];
if (info.Id == unit.Id)
{
info.Treat += treat;
return;
}
}
}
}
}