public void SendReward() { var portal = Spacemap.Activatables.Values.FirstOrDefault(x => x is Portal && (x as Portal).Position == (SelectedFactionId == 1 ? MMOPosition : SelectedFactionId == 2 ? EICPosition : VRUPosition)); GameManager.SendCommandToMap(Spacemap.Id, ActivatePortalCommand.write((portal as Portal).TargetSpaceMapId, portal.Id)); switch (SelectedFactionId) { case 1: Mmo++; GameManager.SendPacketToAll($"0|A|STM|msg_spaceball_company_scored|%COMPANY%|MMO"); break; case 2: Eic++; GameManager.SendPacketToAll($"0|A|STM|msg_spaceball_company_scored|%COMPANY%|EIC"); break; case 3: Vru++; GameManager.SendPacketToAll($"0|A|STM|msg_spaceball_company_scored|%COMPANY%|VRU"); break; } GameManager.SendPacketToAll($"0|n|ssi|{Mmo}|{Eic}|{Vru}"); for (int i = 0; i <= 20; i++) { new CargoBox(Position.Random(Spacemap, Position.X - 1000, Position.X + 500, Position.Y - 1000, Position.Y + 500), Spacemap, false, true); } if (Mmo >= EventManager.Spaceball.Limit || Eic >= EventManager.Spaceball.Limit || Vru >= EventManager.Spaceball.Limit) { EventManager.Spaceball.Stop(); } else { Respawn(); } }
public override async void Click(GameSession gameSession) { try { var player = gameSession.Player; if (!Working || GameManager.GetSpacemap(TargetSpaceMapId) == null || TargetPosition == null) { return; } if (player.Storage.Jumping) { return; } player.Storage.Jumping = true; player.SendCommand(ActivatePortalCommand.write(TargetSpaceMapId, Id)); await Task.Delay(JUMP_DELAY); player.LastCombatTime = DateTime.Now.AddSeconds(-999); player.Spacemap.RemoveCharacter(player); player.CurrentInRangePortalId = -1; player.Deselection(); player.Storage.InRangeAssets.Clear(); player.InRangeCharacters.Clear(); player.SetPosition(TargetPosition); player.Spacemap = GameManager.GetSpacemap(TargetSpaceMapId); player.Spacemap.AddAndInitPlayer(player); player.Storage.Jumping = false; } catch (Exception e) { Out.WriteLine("Click void exception: " + e, "Portal.cs"); Logger.Log("error_log", $"- [Portal.cs] Click void exception: {e}"); } }