protected void SaveLoadout(ShipLoadoutData shipLoadout, ShipMenu shipMenu, string fileName)
    {
        shipMenu.GetSelections();
        SaveToLoadoutData(shipLoadout, shipMenu);

        File.WriteAllText(Database.savePath + fileName, shipLoadout.GetJson());
    }
Example #2
0
        public static void ActivateAdminMenu()
        {
            _displayingAdminMenu = true;
            List <MenuButtonMetadataItem> menuItems = new List <MenuButtonMetadataItem>();

            menuItems.Add(new MenuButtonMetadataItem(Guid.Empty, "Warp: select starting point", "SelectWarpStart"));
            menuItems.Add(new MenuButtonMetadataItem(Guid.Empty, "Warp: new starting point", "AddWarpStart"));
            menuItems.Add(new MenuButtonMetadataItem(Guid.Empty, "Warp: new ending point", "AddWarpEnd"));
            menuItems.Add(new MenuButtonMetadataItem(Guid.Empty, "Spawn: ship", "AddShip"));
            menuItems.Add(new MenuButtonMetadataItem(Guid.Empty, "Spawn: asteroid", "AddAsteroid"));
            menuItems.Add(new MenuButtonMetadataItem(Guid.Empty, "Spawn: moon", "AddMoon"));
            menuItems.Add(new MenuButtonMetadataItem(Guid.Empty, "Spawn: shipmodule", "AddShipModule"));
            menuItems.Add(new MenuButtonMetadataItem(Guid.Empty, "Move: specify destination", "MoveToSpecificCoordinates"));
            ShipMenu.SetElements(menuItems);
            _mainConsole.Children.Add(ShipMenu);
            _mainConsole.Children.MoveToTop(ShipMenu);
            string menuTitle = "Do administrative action";

            ShipMenu.ShowMenu(menuTitle);
            int cellX = 0;

            while (cellX < menuTitle.Length)
            {
                cellX++;
                ShipMenu.SetEffect(cellX, 0, ShipMenu.menuFade);
            }
        }
Example #3
0
 /// <summary>
 /// Takes a list of ships that have been encapsulated into a GetShipsForMenuResult object and
 /// pops open a menu from which they can be chosen to interact with.
 /// </summary>
 /// <param name="shipresult">The result of a call to the server for data.</param>
 private static void ProcessShipsForMenu(GetShipsForMenuResult shipresult)
 {
     if (shipresult.Success)
     {
         _displayingShipMenu = true;
         List <MenuButtonMetadataItem> ships = new List <MenuButtonMetadataItem>();
         foreach (var item in shipresult.Ships)
         {
             ships.Add(new MenuButtonMetadataItem(item.Id, item.Name, "Ship"));
         }
         ShipMenu.SetElements(ships);
         _mainConsole.Children.Add(ShipMenu);
         _mainConsole.Children.MoveToTop(ShipMenu);
         string menuTitle = "Manage your ship(s)";
         ShipMenu.ShowMenu(menuTitle);
         int cellX = 0;
         while (cellX < menuTitle.Length)
         {
             cellX++;
             ShipMenu.SetEffect(cellX, 0, ShipMenu.menuFade);
         }
     }
     else
     {
         CreateErrorWindow(shipresult.Error, _mainConsole);
     }
 }
    //loads the ship's saved loadout
    protected void LoadLoadouts(ShipLoadoutData shipLoadout, ShipMenu shipMenu, string fileName)
    {
        if (File.Exists(Database.savePath + fileName))
        {
            string tempJson = File.ReadAllText(Database.savePath + fileName);
            JsonUtility.FromJsonOverwrite(tempJson, shipLoadout);
        }

        shipMenu.SetSelections(shipLoadout);
    }
 //stores the selected ships and guns from shipMenu into the shipLoadout
 protected void SaveToLoadoutData(ShipLoadoutData shipLoadout, ShipMenu shipMenu)
 {
     if (shipMenu.GetShip() != "None")
     {
         shipLoadout.Ship = Database.ShipList[shipMenu.GetShip()];
         if (shipMenu.GetSlot1() != "None")
         {
             shipLoadout.Slot1 = Database.GunList[shipMenu.GetSlot1()];
         }
         else
         {
             shipLoadout.Slot1 = null;
         }
         if (shipMenu.GetSlot2() != "None")
         {
             shipLoadout.Slot2 = Database.GunList[shipMenu.GetSlot2()];
         }
         else
         {
             shipLoadout.Slot2 = null;
         }
         if (shipMenu.GetSlot3() != "None")
         {
             shipLoadout.Slot3 = Database.GunList[shipMenu.GetSlot3()];
         }
         else
         {
             shipLoadout.Slot3 = null;
         }
     }
     else
     {
         shipLoadout.Ship  = null;
         shipLoadout.Slot1 = null;
         shipLoadout.Slot2 = null;
         shipLoadout.Slot3 = null;
     }
 }
Example #6
0
        private static void BindEventHandlersForconnection()
        {
            connection.On <PingResponse>("ReceivePingResponse", (ping) =>
            {
                if (ping.PingId == lastPingId)
                {
                    pingStopWatch.Stop();
                    // Get the elapsed time as a TimeSpan value.
                    TimeSpan ts = pingStopWatch.Elapsed;
                    if (ts.TotalMilliseconds < 250)
                    {
                        _serverStatusConsole.Write("Scanner responsiveness: " + Math.Floor(ts.TotalMilliseconds) + " ms", ServerStatusConsole.MessageTypes.Ok);
                    }
                    else
                    {
                        _serverStatusConsole.Write("Scanner responsiveness degraded: " + Math.Floor(ts.TotalMilliseconds) + " ms", ServerStatusConsole.MessageTypes.Danger);
                    }
                }
                else
                {
                    pingStopWatch.Stop();
                    _serverStatusConsole.Write("Scanner responsiveness probe error.", ServerStatusConsole.MessageTypes.Danger);
                    _messageLogConsole.Write("Scanner responsiveness probe error.", MessageLogConsole.MessageTypes.Warning);
                }
            });

            connection.On <string>("ReceiveMessage", (message) =>
            {
                if (_gameStatus == GameStatus.LoggedIn)
                {
                    _messageLogConsole.Write("Receive Chat: " + message);
                }
            });

            connection.On <string>("ReceiveServerTime", (serverTime) =>
            {
                if (_gameStatus == GameStatus.LoggedIn)
                {
                    // TODO: REMOVE THIS
                    _messageLogConsole.Write("Time received: " + serverTime);
                }
            });

            connection.On <GetAccessTokenResult>("ReceiveAccessTokenResult", (result) =>
            {
                if (!result.Success)
                {
                    _shipMovementStatus = ShipMovementStatus.NotReady;
                    _gameStatus         = GameStatus.Startup;
                    CreateErrorWindow(result.Error, _loginWindow.Children.First());
                }
                else
                {
                    _shipMovementStatus = ShipMovementStatus.NotReady;
                    _gameStatus         = GameStatus.LoggedIn;
                    _accessToken        = result.Token;
                    RequestCameraCoordinates();

                    _messageLogConsole           = new MessageLogConsole(_mainConsole.Width, _mainConsole.Height / 4);
                    _messageLogConsole.Position  = new Point(0, _mainConsole.Height - _messageLogConsole.Height);
                    _messageLogConsole.IsVisible = true;
                    _mainConsole.Children.Add(_messageLogConsole);

                    _serverStatusConsole           = new ServerStatusConsole(_mainConsole.Width, 1);
                    _serverStatusConsole.Position  = new Point(0, _mainConsole.Height - _messageLogConsole.Height - 1);
                    _serverStatusConsole.IsVisible = true;
                    _mainConsole.Children.Add(_serverStatusConsole);

                    _spaceMap           = new SpaceMapConsole(_mainConsole.Width - 20, _mainConsole.Height - _messageLogConsole.Height - 2);
                    _spaceMap.Position  = new Point(0, 1);
                    _spaceMap.IsVisible = true;
                    _mainConsole.Children.Add(_spaceMap);

                    _shipConsole           = new SelectedShipConsole(20, _mainConsole.Height - _messageLogConsole.Height - 2);
                    _shipConsole.Position  = new Point(_spaceMap.Width, 1);
                    _shipConsole.IsVisible = true;
                    _mainConsole.Children.Add(_shipConsole);

                    _menuBarConsole           = new MenuBarConsole(_mainConsole.Width, 1);
                    _menuBarConsole.Position  = new Point(0, 0);
                    _menuBarConsole.IsVisible = true;
                    _mainConsole.Children.Add(_menuBarConsole);

                    GameState.ShipMenu      = new MenuConsole(_mainConsole.Width, _mainConsole.Height - 1);
                    GameState.CharacterMenu = new MenuConsole(_mainConsole.Width, _mainConsole.Height - 1);
                    GameState.AdminMenu     = new MenuConsole(_mainConsole.Width / 2, _mainConsole.Height - 1);

                    ShipMenu.Position      = new Point(0, 1);
                    CharacterMenu.Position = new Point(0, 1);
                    AdminMenu.Position     = new Point(_mainConsole.Width / 2, 1);

                    _loginWindow.IsVisible = false;
                    _loginWindow.Controls.RemoveAll();
                    _loginWindow.Clear();
                    StartHeartbeat(TimeSpan.FromSeconds(10), CancelHeartbeat);
                }
            });

            connection.On <GetAccessTokenResult>("ReceiveAccessTokenFromRefreshToken", (result) =>
            {
                if (result.Success)
                {
                    _accessToken = result.Token;
                }
            });

            connection.On <GetShipsForMenuResult>("ReceiveShipsForMenu", (result) =>
            {
                if (result.Success)
                {
                    _displayingShipMenu = true;
                    List <MenuButtonMetadataItem> ships = new List <MenuButtonMetadataItem>();
                    foreach (var item in result.Ships)
                    {
                        ships.Add(new MenuButtonMetadataItem(item.Id, item.Name, "Ship"));
                    }
                    ShipMenu.SetElements(ships);
                    _mainConsole.Children.Add(ShipMenu);
                    _mainConsole.Children.MoveToTop(ShipMenu);
                    string menuTitle = "Manage your ship(s)";
                    ShipMenu.ShowMenu(menuTitle);
                    int cellX = 0;
                    while (cellX < menuTitle.Length)
                    {
                        cellX++;
                        ShipMenu.SetEffect(cellX, 0, ShipMenu.menuFade);
                    }
                }
                else
                {
                    CreateErrorWindow(result.Error, _mainConsole);
                }
            });

            connection.On <ErrorFromServer>("ReceiveError", (result) =>
            {
                CreateErrorWindow(result, _mainConsole);
            });

            // retrieval of characters for menu.
            connection.On <GetCharactersForMenuResult>("ReceiveCharactersForMenu", (param) =>
            {
                ProcessCharactersForMenu(param);
            });

            connection.On <GetCharacterForManagementResult>("ReceiveCharacterForManagement", (param) =>
            {
                CreateCharacterWindow(param.Character);
            });

            connection.On <GetPlayerCameraCoordinatesResult>("ReceivePlayerCameraCoordinates", (param) =>
            {
                _messageLogConsole.Write("Camera coordinates received: " + param.X + "," + param.Y + "," + param.Z, MessageLogConsole.MessageTypes.Status);
            });

            connection.On <GetMapDataResult>("ReceiveMapData", (param) =>
            {
                SetMapData(param);
                DrawMapData();
            });

            connection.On <ShipMovementConfirmation>("ReceiveShipMovementConfirmation", (param) =>
            {
                _shipMovementStatus = ShipMovementStatus.Ready;
                DownloadMapAtShip(selectedShip);
            });

            connection.On <LootScanResponse>("ReceiveLootScanResponse", (param) =>
            {
                DisplayLootScanResults(param);
            });

            connection.On <Ship>("ReceiveShipForConsole", (param) =>
            {
                DisplayShipControlsOnConsole(param);
            });

            connection.Closed += async(error) =>
            {
                await Task.Delay(new Random().Next(0, 5) * 1000);

                await connection.StartAsync();
            };
        }
Example #7
0
	// Use this for initialization
	void Awake () {
		if (Instance != null && Instance != this) {
		    Destroy(Instance.gameObject);
		}
		Instance = this; //shitty singleton, but anything more ruins everything for whatever reason.
		                 // I'm not even mad rn.

        gameObject.SetActive(false);
	}