public void execute(GameSession gameSession, string[] args) { var player = gameSession.Player; var portals = gameSession.Player.Range.Objects.ToList().Where(x => x.Value is Jumpgate); var portalArray = portals as KeyValuePair <int, Object>[] ?? portals.ToArray(); if (portalArray.Count() > 1) { Jumpgate closestJumpgate = null; foreach (var portal in portalArray) { var _portal = portal.Value as Jumpgate; if (closestJumpgate == null) { closestJumpgate = _portal; } else { if (_portal != null && closestJumpgate.Position.DistanceTo(player.Position) > _portal.Position.DistanceTo(player.Position)) { closestJumpgate = _portal; } } } closestJumpgate?.click(player); } else { foreach (var portal in portalArray) { (portal.Value as Jumpgate)?.click(player); } } }
public void LoadPortals() { var map = World.StorageManager.Spacemaps[16]; MmoPortal = map.Objects.FirstOrDefault(x => x.Value is Jumpgate gate && gate.DestinationMapId == 17).Value as Jumpgate; EicPortal = map.Objects.FirstOrDefault(x => x.Value is Jumpgate gate && gate.DestinationMapId == 21).Value as Jumpgate; VruPortal = map.Objects.FirstOrDefault(x => x.Value is Jumpgate gate && gate.DestinationMapId == 25).Value as Jumpgate; }
public void UnloadPortal(Jumpgate portal) { var gameSession = World.StorageManager.GetGameSession(Player.Id); if (LoadedObjects.ContainsKey(portal.Id)) { LoadedObjects.TryRemove(portal.Id, out Object output); } Packet.Builder.JumpgateRemoveCommand(gameSession, portal); }
public void LoadPortal(Jumpgate portal) { var gameSession = World.StorageManager.GetGameSession(Player.Id); if (!LoadedObjects.ContainsKey(portal.Id)) { LoadedObjects.Add(portal.Id, portal); } if (portal.Owner != null && portal.Owner != Player) { return; } //Packet.Builder.JumpgateCreateCommand(gameSession, portal); }
void GetJumpgateDataFromGDS() { Jumpgate jg = gds.SDS.FindJumpgateByID(jumpgateID); if (jg != null) { sectorID = jg.Sector_ID; name = jg.Name; description = jg.Description; base_toll = jg.Base_Toll; faction_id = jg.Faction_ID; destination_sector_id = jg.Destination_Sector_ID; destination_sector = gds.SDS.FindJumpgateByID(jg.Destination_Gate_ID).Name; destination_gate_id = jg.Destination_Gate_ID; } }
public void Score(Faction faction, Jumpgate portal) { switch (faction) { case Faction.MMO: MMOScore++; foreach (var session in World.StorageManager.GameSessions.Values) { if (session == null || !session.Player.Controller.Active) { continue; } Packet.Builder.SpaceBallUpdateScoreCommand(session, faction, MMOScore, portal.Id); } break; case Faction.EIC: EICScore++; foreach (var session in World.StorageManager.GameSessions.Values) { if (session == null || !session.Player.Controller.Active) { continue; } Packet.Builder.SpaceBallUpdateScoreCommand(session, faction, EICScore, portal.Id); } break; case Faction.VRU: VRUScore++; foreach (var session in World.StorageManager.GameSessions.Values) { if (session == null || !session.Player.Controller.Active) { continue; } Packet.Builder.SpaceBallUpdateScoreCommand(session, faction, VRUScore, portal.Id); } break; } for (var i = 0; i < 50; i++) { Spacemap.CreateLootBox(Vector.GetPosOnCircle(portal.Position, 50 * i), new Reward(RewardType.URIDIUM, 750), Types.BIG_PUMPKIN, 25000); } }
public void ScoreGoal(Faction faction, Jumpgate portal) { Npc.Score(faction, portal); Restart(); }