using System; using System.Collections.Generic; namespace ET { public class ChangeBattleCharacterEvent : AEvent { /// /// 只给自己返回详细信息 /// /// /// 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 { /// /// 给队伍所有人广播unit的信息 /// /// /// 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().BrocastInterval(sendUnitInfo); await ETTask.CompletedTask; } } public class ChangeAllPvpCharacterEvent : AEvent { /// /// 给双方广播对方的信息 /// /// /// 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 teamList = team.GetUnits(); LinkedList 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; } } }