public Task InitializeAsync(Abstractions.Model.Game.Player player) { _ = player.SendAsync(new SendMapRegionMessage(player)).ContinueWith(_ => { var defaultTabs = _tabManager.Default; for (int tab = 0; tab < defaultTabs.Length; tab++) { var interfaceId = defaultTabs[tab]; _ = _tabManager.SetTabAsync(player, tab, interfaceId); } }); var openLoginScreenMessage = new SendInterfaceMessage { InterfaceId = 549 }; _ = _protoMessageSender.SendAsync(player, openLoginScreenMessage); _ = _protoMessageSender.SendAsync(player, new OpenInterfaceMessage { Window = 549, Position = 2, InterfaceId = 378, Walkable = true }); _ = _protoMessageSender.SendAsync(player, new OpenInterfaceMessage { Window = 549, Position = 3, InterfaceId = 17, Walkable = true }); return(Task.CompletedTask); }
public Task SetTabAsync(Abstractions.Model.Game.Player player, int tabId, int interfaceId) { var switchTabMessage = new ThreeOneSevenEncoderMessages.Types.SwitchTabInterfaceMessage { InterfaceId = interfaceId, TabId = tabId }; return(_protoMessageSender.SendAsync(player, switchTabMessage)); }
public Task SetTabAsync(Abstractions.Model.Game.Player player, int tabId, int interfaceId) { var switchTabMessage = new OpenInterfaceMessage { InterfaceId = interfaceId, Window = 548, //Main window Position = TabIds[tabId], Walkable = true }; return(_protoMessageSender.SendAsync(player, switchTabMessage)); }
public async Task PreUpdateAsync(Player player, Dictionary <RegionCoordinates, HashSet <RegionUpdateMessage> > encodes, Dictionary <RegionCoordinates, HashSet <RegionUpdateMessage> > updates) { Position old = player.Position; _walkingQueueHandler.Pulse(player); var local = true; if (player.IsTeleporting) { player.ResetViewingDistance(); local = false; } Position position = player.Position; if (!player.HasLastKnownRegion() || IsRegionUpdateRequired(player)) { player.RegionChanged = true; local = false; player.LastKnownRegion = position; await _protoMessageSender.SendAsync(player, new RegionChangeMessage { CentralRegionX = position.CentralRegionX, CentralRegionY = position.CentralRegionY }); } var oldViewable = _regionRepository.FromPosition(old).GetSurrounding(); var newViewable = _regionRepository.FromPosition(position).GetSurrounding(); var differences = newViewable.ToHashSet(); differences.RemoveWhere(t => !oldViewable.Contains(t)); var full = newViewable.ToHashSet(); if (local) { full.RemoveWhere(t => oldViewable.Contains(t)); } await SendUpdates(player, player.LastKnownRegion, differences, full, encodes, updates); }
public async Task OnWelcomeScreenClick(DecoderMessage <ClickButtonMessage> decoderMessage) { var player = decoderMessage.Player; var buttonPackedId = decoderMessage.Message.ButtonId; switch (buttonPackedId) { case 6: await _messageSender.SendAsync(player, new SendInterfaceMessage { InterfaceId = 548 }); player.UpdateAppearance(); return; } }
public Task InitializeAsync(Abstractions.Model.Game.Player player) { var initMessage = new ThreeOneSevenEncoderMessages.Types. IdAssignmentMessage { IsMembers = true, NewId = 1 }; _ = _protoMessageSender.SendAsync(player, initMessage); player.UpdateAppearance(); var defaultTabs = _tabManager.Default; for (int tab = 0; tab < defaultTabs.Length; tab++) { var interfaceId = defaultTabs[tab]; _ = _tabManager.SetTabAsync(player, tab, interfaceId); } return(Task.CompletedTask); }
public async Task OnLogoutClick(DecoderMessage <ButtonMessage> buttonMessage) { await _playerSerializer.AddOrUpdateAsync(buttonMessage.Player); await _protoMessageSender.SendAsync(buttonMessage.Player, new LogoutMessage()); }