using System; namespace ET { public class ChangeBattleCharacterEvent : AEvent { /// /// 只给自己返回详细信息 /// /// /// public override async ETTask Run(EventType.ChangeBattleCharacter args) { var 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) { var unit = args.unit; var 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(); var teamList = team.GetUnits(); var targetTeamList = targetTeam.GetUnits(); foreach (var u in teamList) { m2C_SendUnitInfoList.UnitCharacterList.Add(await CharacterHelper.GetUnitCharacter(u)); } foreach (var 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; } } }