CTT/Server/Hotfix/Game/Event/ChangeCharacterEvent.cs

75 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
namespace ET
{
public class ChangeBattleCharacterEvent : AEvent<EventType.ChangeBattleCharacter>
{
/// <summary>
/// 只给自己返回详细信息
/// </summary>
/// <param name="unit"></param>
/// <returns></returns>
public override async ETTask Run(EventType.ChangeBattleCharacter args)
{
Unit unit = args.unit;
MessageHelper.SendActor(unit, new M2C_SendCharacter()
{
Id = unit.Id,
UnitCharacter =await CharacterHelper.GetUnitCharacter(unit),
});
await ETTask.CompletedTask;
}
}
public class ChangeUnitCharacterEvent : AEvent<EventType.ChangeUnitCharacter>
{
/// <summary>
/// 给队伍所有人广播unit的信息
/// </summary>
/// <param name="unit"></param>
/// <returns></returns>
public override async ETTask Run(EventType.ChangeUnitCharacter args)
{
Unit unit = args.unit;
M2C_SendUnitInfo sendUnitInfo = new M2C_SendUnitInfo() { UnitCharacter =await CharacterHelper.GetUnitCharacter(unit) };
unit.GetComponent<BrocastComponent>().BrocastInterval(sendUnitInfo);
await ETTask.CompletedTask;
}
}
public class ChangeAllPvpCharacterEvent : AEvent<EventType.ChangeAllUnitCharacter>
{
/// <summary>
/// 给双方广播对方的信息
/// </summary>
/// <param name="unit"></param>
/// <returns></returns>
public override async ETTask Run(EventType.ChangeAllUnitCharacter args)
{
try
{
Team team = args.team;
Team targetTeam = args.targetTeam;
M2C_SendUnitInfoList m2C_SendUnitInfoList = new M2C_SendUnitInfoList();
LinkedList<Unit> teamList = team.GetUnits();
LinkedList<Unit> targetTeamList = targetTeam.GetUnits();
foreach (Unit u in teamList)
{
m2C_SendUnitInfoList.UnitCharacterList.Add(await CharacterHelper.GetUnitCharacter(u));
}
foreach (Unit u in targetTeamList)
{
m2C_SendUnitInfoList.UnitCharacterList.Add(await CharacterHelper.GetUnitCharacter(u));
}
MessageHelper.Broadcast(teamList,targetTeamList, m2C_SendUnitInfoList);
}
catch (Exception e)
{
Log.Error(e);
}
await ETTask.CompletedTask;
}
}
}