using ET; using ET.EventType; using System; using System.Text; namespace ET { public class OnClickMonsterEvent : AEvent { public override async ETTask Run(OnClickMonster args) { await ETTask.CompletedTask; MonsterInfo monsterInfo = args.monsterInfo; if (monsterInfo == null) return; switch (monsterInfo.UnitSceneType) { case UnitSceneType.MainStory: int region = monsterInfo.Region; OnClickMainstory(region).Coroutine(); break; case UnitSceneType.Trial: OnClickTrialCopy().Coroutine(); break; case UnitSceneType.Boss: OnClickBoss().Coroutine(); break; case UnitSceneType.ManulEquip: OnClickManulEquip().Coroutine(); break; } } private async ETVoid OnClickMainstory(int region) { M2C_StartMainStoryFight ret = await SessionComponent.Instance.Call(new C2M_StartMainStoryFight() { Region = region }); if (!ret.Message.IsNullOrEmpty()) { Game.EventSystem.Publish(new ET.EventType.ShowTipUI { tip = ret.Message }).Coroutine(); return; } } private async ETVoid OnClickTrialCopy() { M2C_StartTrialCopyFight ret = await SessionComponent.Instance.Call(new C2M_StartTrialCopyFight()); if (!ret.Message.IsNullOrEmpty()) { Game.EventSystem.Publish(new ET.EventType.ShowTipUI { tip = ret.Message }).Coroutine(); return; } Game.EventSystem.Publish(new ET.EventType.StartTrialCopyFight { zoneScene = SessionComponent.Instance.Session.ZoneScene(), copyId = ret.TrialCopyId, list = ret.UnitIdList }).Coroutine(); TrialCopyMonsterTeamComponent.Instance.RemoveAll(); } private async ETVoid OnClickBoss() { M2C_StartBossFightRequest ret = await SessionComponent.Instance.Call(new C2M_StartBossFightRequest()); if (!ret.Message.IsNullOrEmpty()) { Game.EventSystem.Publish(new ET.EventType.ShowTipUI { tip = ret.Message }).Coroutine(); return; } byte[] bytes = BitConverter.GetBytes(ret.Key + DateTime.UtcNow.Year); GameKeyComponent keyComponent = GameKeyComponent.Instance; Utility.Encryption.GetSelfXorBytes(bytes, keyComponent.xorKey); //bytes = SecurityUtil.Xor(bytes); long key = BitConverter.ToInt64(bytes, 0); Game.EventSystem.Publish(new ET.EventType.ClickBoss_ShowAttackUI { key = key }).Coroutine(); } private async ETVoid OnClickManulEquip() { } } }