namespace ET.Client { [MessageHandler(SceneType.Main)] [FriendOf(typeof(HeroComponent))] public class Hero_HeroInfoListHandler : MessageHandler { protected override async ETTask Run(Scene scene, Hero_HeroInfoList message) { HeroComponent component = scene.GetComponent() ?? scene.AddComponent(); component.HeroMap.Clear(); foreach (HeroInfo hero in message.heroes) { component.HeroMap[hero.heroId] = hero; } EventSystem.Instance.Publish(scene, new HeroListUpdatedEvent { Count = message.heroes.Count }); await ETTask.CompletedTask; } } }