public static void SetCommandInServer(string command, double value)
        {
            bool erroConnnection = false;
            Task serverTask      = Task.Run(() =>
            {
                try
                {
                    StablishedConnnectionToServer();
                    double d         = Math.Truncate(value * 1000) / 1000;
                    string strToSend = d.ToString().Replace(',', '.');
                    string set_msg   = $"set {command} {strToSend}\n";
                    string answer    = $" {ConnectionToServer.sendMessage(Sender, set_msg)}";
                }
                catch (ServerConnectionManager.FlightSimulatorConnectionException)
                {
                    erroConnnection = true;
                }
            });

            serverTask.Wait();
            if (erroConnnection)
            {
                throw new FlightSimulatorConnectionException("Error connection with Server\n");
            }
        }
 public static void GetIndicatorsFromServer(IndicatorCollection IndicatorList)
 {
     try
     {
         StablishedConnnectionToServer();
         NumberFormatInfo nfi = new NumberFormatInfo();
         nfi.NumberDecimalSeparator = ".";
         string answer;
         for (int i = 0; i < ViewConstants.get_indicators.Length; i++)
         {
             answer = ConnectionToServer.sendEspecificMessageToGets(Sender, ViewConstants.get_indicators[i]);
             try
             {
                 double d = Convert.ToDouble(answer, nfi);
                 IndicatorList[i] = new Indicator()
                 {
                     Name = ViewConstants.indicators_name[i], Value = d
                 };
             }
             catch (FormatException)
             {
                 //In Case of ERR, do nothing
             }
         }
     }
     catch (SocketException)
     {
         throw new FlightSimulatorConnectionException("It wasn't able to connect to the Server\n");
     }
 }
Пример #3
0
    public virtual void OnDisconnect()
    {
        connectionToServer = null;

        if (spawned)
        {
            Destroy(gameObject);
        }
    }
        void CloseConnection()
        {
            if (_clientInfo != null && _clientInfo.LoggedIn)
            {
                this._clientInfo.LoggedIn = false;
            }

            ConnectionToServer.CloseConnection();
        }
Пример #5
0
 public static void ChangeCoinsDown(double _coins)
 {
     if (_coins > 0)
     {
         Coins        -= _coins;
         Statistic.t2 += _coins;
         ConnectionToServer.SendChangeCoins(-_coins);
         Tools.Message(MessageStatus.Info, string.Format(Localization.GetText("Text41"), Math.Round(_coins, 2)));
     }
 }
Пример #6
0
        private static void GetCarAction()
        {
            foreach (var car in Cars.Where(x => x.Status == CarStatus.Idle))
            {
                var act = ConnectionToServer.GetCarAction(car.Id);
                if (act != null)
                {
                    JObject a = JObject.Parse(act);
                    if (a.Properties().Count() > 0)
                    {
                        string com = a.Property("command").Value.ToString();
                        switch (com.Split(' ')[0])
                        {
                        case "Run":
                        {
                            Node n = Graph.FindNodeById(int.Parse(com.Split(' ')[1]));
                            if (n != null)
                            {
                                car.Run(n);
                            }
                            else
                            {
                                Tools.Message(MessageStatus.Error, "Error node id in command: " + com, true);
                            }
                            break;
                        }

                        case "Fueling":
                        {
                            car.Refueling();
                            break;
                        }

                        case "Repair":
                        {
                            car.Repair();
                            break;
                        }

                        case "Return":
                        {
                            car.Return();
                            break;
                        }

                        default:
                        {
                            Tools.Message(MessageStatus.Error, "Error command: " + com, true);
                            break;
                        }
                        }
                    }
                }
            }
        }
Пример #7
0
        private void SendChanges()
        {
            JObject newcar = new JObject();

            newcar["id"]      = this.Id;
            newcar["x"]       = this.Position.X;
            newcar["y"]       = this.Position.Y;
            newcar["fuel"]    = this.Fuel;
            newcar["wearout"] = this.Wearout;
            newcar["load"]    = this.Capacity;
            newcar["status"]  = GetIdStatus();
            ConnectionToServer.SendChangeCarStatus(newcar.ToString());
        }
 public static void StablishedConnnectionToServer()
 {
     try
     {
         if ((Sender == null || (Sender != null && Sender.Connected == false)) && !cancelConnection)
         {
             Sender = ConnectionToServer.openSocketToServer();
         }
     }
     catch (SocketException)
     {
         throw new FlightSimulatorConnectionException("It wasn't able to connect to the Server\n");
     }
 }
Пример #9
0
        //public ControllerMineSweeperGameCode C_MineSweeperGame { get; set; }
        //public ControllerLeaderBoard C_LeaderBoard { get; set; }
        //public ControllerOptions C_OptionsForm { get; set; }
        //public ControllerRegister C_RegisterForm { get; set; }
        //public ControllerLogin C_LoginPage { get; set; }

        //public ControllerSearchUser C_SearchPage { get; set; }

        // Controllers

        //public static FormVencedor V_Vencedor { get; private set; }
        //public static GameController C_Master { get; private set; }

        /// <summary>
        /// Initializes the singleton application object.  This is the first line of authored code
        /// executed, and as such is the logical equivalent of main() or WinMain().
        /// </summary>
        public App()
        {
            this.InitializeComponent();
            this.Suspending += OnSuspending;

            M_Grelha     = new TileGrid();
            M_Status     = new ConnectionToServer();
            M_Options    = new Options();
            M_BestScores = new BestScores();

            // class que vai permitir a reprodução de audio
            SoundPlayer = new SoundEffects();

            C_Master = new GameController();
        }
Пример #10
0
        private static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // Model
            M_Grelha     = new TileGrid();
            M_Status     = new ConnectionToServer();
            M_Options    = new Options();
            M_BestScores = new BestScores();

            // View
            V_StartForm       = new FormStart();
            V_MineSweeperGame = new FormMinesweeper();
            V_Login           = new FormLogin();
            V_Register        = new FormRegister();
            V_Vencedor        = new FormVencedor();

            // Controlador
            C_Master = new GameController();

            Application.Run(V_StartForm);
        }
        public static void HandlePackage(byte[] package, int playerId = -1)
        {
            try
            {
                IncomingGameEvent gameEvent;

                switch ((IncomingGameEventTypes)package[0])
                {
                case IncomingGameEventTypes.ChangeVelocity:
                    gameEvent = new ChangeVelocity(package);
                    break;

                case IncomingGameEventTypes.Split:
                    Console.WriteLine("SPLIT");
                    gameEvent = new Split(package);
                    break;

                case IncomingGameEventTypes.ConnectionToServer:
                    gameEvent = new ConnectionToServer(package);
                    break;

                case IncomingGameEventTypes.LeaveGame:
                    gameEvent = new LeaveGame(package);
                    break;

                default:
                    throw new Exception(String.Format("Incorrect package type: {0}", (IncomingGameEventTypes)package[0]));
                    break;
                }

                OnPackageIncame?.Invoke(null, new OnPackageIncameEventArgs(gameEvent));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Пример #12
0
        public static void BuyCar(int idType)
        {
            var type = Settings.FindTypeById(idType);

            if (type == null)
            {
                Tools.Message(MessageStatus.Info, string.Format(Localization.GetText("Text62"), idType), true); return;
            }
            if (!SimulationRun)
            {
                Tools.Message(MessageStatus.Info, Localization.GetText("Text42"), true); return;
            }
            if (Coins < type.CostCar)
            {
                Tools.Message(MessageStatus.Info, Localization.GetText("Text43"), true); return;
            }
            Car car = new Car(type);

            int maxId = Cars.Count > 0 ? Cars.Max(c => c.Id) : 0;

            car.Id = maxId + 1;
            ChangeCoinsDown(type.CostCar);
            Cars.Add(car);
            OnCreateCar?.Invoke(car);
            JObject newcar = new JObject();

            newcar["id"]      = car.Id;
            newcar["type"]    = car.Type.Id;
            newcar["x"]       = car.Position.X;
            newcar["y"]       = car.Position.Y;
            newcar["fuel"]    = car.Fuel;
            newcar["wearout"] = car.Wearout;
            newcar["load"]    = car.Capacity;
            newcar["status"]  = car.GetIdStatus();
            ConnectionToServer.SendAddCar(newcar.ToString());
            //Util.ConnectionToServer.SendDataToServer("Add car");
        }
 public virtual void OnConnect(ConnectionToServer connection)
 {
 }
Пример #14
0
 private void Button_Click_4(object sender, RoutedEventArgs e)
 {
     ConnectionToServer.SendSimulationStatus(true);
 }
Пример #15
0
 private void Button_Click_2(object sender, RoutedEventArgs e)
 {
     //ConnectionToServer.Test();
     ConnectionToServer.SendChangeCoins(50);
 }
Пример #16
0
        public static void LoadSettings()
        {
            XDocument settings = XDocument.Load("Settings.xml");

            foreach (var set in settings.Root.Elements())
            {
                switch (set.Name.LocalName)
                {
                case "graph":
                {
                    foreach (var n in set.Element("nodes").Elements())
                    {
                        graph.AddNode(new Point(double.Parse(n.Attribute("x").Value), double.Parse(n.Attribute("y").Value)), int.Parse(n.Attribute("id").Value));
                    }
                    foreach (var l in set.Element("links").Elements())
                    {
                        graph.AddLink(graph.FindNodeById(int.Parse(l.Attribute("node1").Value)), graph.FindNodeById(int.Parse(l.Attribute("node2").Value)));
                    }
                    break;
                }

                case "objects":
                {
                    foreach (var o in set.Elements())
                    {
                        if (o.Name.LocalName == "container")
                        {
                            AddContainer(int.Parse(o.Attribute("id").Value), int.Parse(o.Attribute("node").Value));
                        }
                        if (o.Name.LocalName == "station")
                        {
                            AddStation(int.Parse(o.Attribute("id").Value), int.Parse(o.Attribute("node").Value));
                        }
                        if (o.Name.LocalName == "dump")
                        {
                            AddDump(int.Parse(o.Attribute("id").Value), int.Parse(o.Attribute("node").Value));
                        }
                    }
                    break;
                }

                case "variables":
                {
                    foreach (var o in set.Elements())
                    {
                        Settings.LoadVar(o.Attribute("name").Value, o.Attribute("value").Value);
                    }
                    break;
                }

                case "local":
                {
                    Localization.SetDitionary(set);
                    break;
                }

                case "typecar":
                {
                    Settings.LoadTypeCar(set);
                    break;
                }
                }
            }
            dfs(Graph.ListNode[0]);
            if (Used.Count != Graph.ListNode.Count)
            {
                throw new Exception(Localization.GetText("Text44"));
            }
            foreach (Node node in Graph.ListNode)
            {
                if (node.OutLinks.Count == 0 || node.InLinks.Count == 0)
                {
                    throw new Exception(Localization.GetText("Text44"));
                }
            }
            //ConnectionToServer.TestConnectToServer();
            ConnectionToServer.SendJson(Graph.GetListNodes(), "Simulation", "LoadNodes");
            ConnectionToServer.SendJson(GetSettings(), "Simulation", "LoadSettings");
        }