Ejemplo n.º 1
0
        public Fleet SendFleet(Celestial origin, Ships ships, Coordinate destination, Missions mission, Speeds speed, Model.Resources payload)
        {
            var request = new RestRequest
            {
                Resource = "/bot/planets/" + origin.ID + "/send-fleet",
                Method   = Method.POST,
            };

            request.AddParameter(new Parameter("galaxy", destination.Galaxy, ParameterType.GetOrPost));
            request.AddParameter(new Parameter("system", destination.System, ParameterType.GetOrPost));
            request.AddParameter(new Parameter("position", destination.Position, ParameterType.GetOrPost));
            request.AddParameter(new Parameter("type", (int)destination.Type, ParameterType.GetOrPost));

            Buildables buildable;

            foreach (PropertyInfo prop in ships.GetType().GetProperties())
            {
                int qty = (int)prop.GetValue(ships, null);
                if (qty == 0)
                {
                    continue;
                }
                if (Enum.TryParse <Buildables>(prop.Name, out buildable))
                {
                    request.AddParameter(new Parameter("ships", (int)buildable + "," + prop.GetValue(ships, null), ParameterType.GetOrPost));
                }
            }

            request.AddParameter(new Parameter("mission", (int)mission, ParameterType.GetOrPost));

            request.AddParameter(new Parameter("speed", (int)speed, ParameterType.GetOrPost));

            request.AddParameter(new Parameter("metal", payload.Metal, ParameterType.GetOrPost));
            request.AddParameter(new Parameter("crystal", payload.Crystal, ParameterType.GetOrPost));
            request.AddParameter(new Parameter("deuterium", payload.Deuterium, ParameterType.GetOrPost));

            var result = JsonConvert.DeserializeObject <OgamedResponse>(Client.Execute(request).Content);

            if (result.Status != "ok")
            {
                throw new Exception("An error has occurred: Status: " + result.Status + " - Message: " + result.Message);
            }
            else
            {
                return(JsonConvert.DeserializeObject <Fleet>(JsonConvert.SerializeObject(result.Result)));
            }
        }
Ejemplo n.º 2
0
        public Fleet SendFleet(Celestial origin, Ships ships, Coordinate destination, Missions mission, decimal speed, Model.Resources payload)
        {
            var request = new RestRequest {
                Resource = $"/bot/planets/{origin.ID}/send-fleet",
                Method   = Method.POST,
            };

            request.AddParameter("galaxy", destination.Galaxy, ParameterType.GetOrPost);
            request.AddParameter("system", destination.System, ParameterType.GetOrPost);
            request.AddParameter("position", destination.Position, ParameterType.GetOrPost);
            request.AddParameter("type", (int)destination.Type, ParameterType.GetOrPost);

            foreach (PropertyInfo prop in ships.GetType().GetProperties())
            {
                long qty = (long)prop.GetValue(ships, null);
                if (qty == 0)
                {
                    continue;
                }
                if (Enum.TryParse <Buildables>(prop.Name, out Buildables buildable))
                {
                    request.AddParameter("ships", (int)buildable + "," + prop.GetValue(ships, null), ParameterType.GetOrPost);
                }
            }

            request.AddParameter("mission", (int)mission, ParameterType.GetOrPost);

            request.AddParameter("speed", speed.ToString(), ParameterType.GetOrPost);

            request.AddParameter("metal", payload.Metal, ParameterType.GetOrPost);
            request.AddParameter("crystal", payload.Crystal, ParameterType.GetOrPost);
            request.AddParameter("deuterium", payload.Deuterium, ParameterType.GetOrPost);

            var result = JsonConvert.DeserializeObject <OgamedResponse>(Client.Execute(request).Content);

            if (result.Status != "ok")
            {
                throw new Exception($"An error has occurred: Status: {result.Status} - Message: {result.Message}");
            }
            else
            {
                return(JsonConvert.DeserializeObject <Fleet>(JsonConvert.SerializeObject(result.Result), new JsonSerializerSettings {
                    DateTimeZoneHandling = DateTimeZoneHandling.Local
                }));
            }
        }