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

75 lines
2.6 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using System;
2021-04-11 19:50:39 +08:00
using System.Collections.Generic;
2021-04-08 20:09:59 +08:00
namespace ET
{
public class ChangeBattleCharacterEvent : AEvent<EventType.ChangeBattleCharacter>
{
/// <summary>
/// 只给自己返回详细信息
/// </summary>
/// <param name="unit"></param>
/// <returns></returns>
public override async ETTask Run(EventType.ChangeBattleCharacter args)
{
2021-04-11 19:50:39 +08:00
Unit unit = args.unit;
2021-04-08 20:09:59 +08:00
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)
{
2021-04-11 19:50:39 +08:00
Unit unit = args.unit;
M2C_SendUnitInfo sendUnitInfo = new M2C_SendUnitInfo() { UnitCharacter =await CharacterHelper.GetUnitCharacter(unit) };
2021-04-08 20:09:59 +08:00
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();
2021-04-11 19:50:39 +08:00
LinkedList<Unit> teamList = team.GetUnits();
LinkedList<Unit> targetTeamList = targetTeam.GetUnits();
foreach (Unit u in teamList)
2021-04-08 20:09:59 +08:00
{
m2C_SendUnitInfoList.UnitCharacterList.Add(await CharacterHelper.GetUnitCharacter(u));
}
2021-04-11 19:50:39 +08:00
foreach (Unit u in targetTeamList)
2021-04-08 20:09:59 +08:00
{
m2C_SendUnitInfoList.UnitCharacterList.Add(await CharacterHelper.GetUnitCharacter(u));
}
MessageHelper.Broadcast(teamList,targetTeamList, m2C_SendUnitInfoList);
}
catch (Exception e)
{
Log.Error(e);
}
await ETTask.CompletedTask;
}
}
}