public MissionDetails(MissionDefinition missionDefinition, DestinationDetails destinationDetails, long missionTime, float passRate)
 {
     this.missionDefinition  = missionDefinition;
     this.destinationDetails = destinationDetails;
     this.missionTime        = missionTime;
     this.passRate           = passRate;
 }
Ejemplo n.º 2
0
        public static MissionDetails generateNewMission(DestinationDetails destinationDetails)
        {
            //retrieve the matching mission definition (currently always exploration for testing)
            MissionDefinition missionDefinition = getMissionDefinition(MissionDefinition.MissionType.EXPLORATION);

            //generate mission information
            MissionDetails missionDetails = generateMissionDetails(missionDefinition, destinationDetails);

            return(missionDetails);
        }
        public void generateNewMission()
        {
            //get the planet information
            DestinationDetails destinationDetails = addressManager.getDestinationDetails();

            //generate a new set of mission details
            MissionDetails missionDetails = MissionUtil.generateNewMission(destinationDetails);

            //Debug.Log(missionDetails.ToString());

            //store the new available mission to json
            addAvailableMission(missionDetails);

            //create a panel displaying the created missions details
            createAvailableMissionPanel(missionDetails);
        }
Ejemplo n.º 4
0
        public DestinationDetails getDestinationDetails()
        {
            /*int[] address = addressInput.getAddress();
             *
             * if(address == null) {
             *  //Address invalid
             *  return null;
             * }*/

            int[] address = DestinationUtil.generateRandomAddress(7);

            //check the address is a valid selection
            if (!DestinationUtil.validateAddress(address))
            {
                return(null);
            }

            //retrieve the destination details for the given address
            DestinationDetails destinationDetails = DestinationUtil.getDestinationData(address);

            return(destinationDetails);
        }
Ejemplo n.º 5
0
        public static MissionDetails generateMissionDetails(MissionDefinition missionDefinition, DestinationDetails destinationDetails)
        {
            //generate the time it will take to complete this mission (5 seconds - 2 days)
            long missionTime = new System.Random().Next(5, 172800);

            //generate the pass rate chance of completing this mission
            float passRate = missionDefinition.basePassRate;

            //generate and return a new set of mission details using the generated data
            return(new MissionDetails(missionDefinition, destinationDetails, missionTime, passRate));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// HTTP request.
        /// Instantiate the object using an HttpListenerContext.
        /// </summary>
        /// <param name="ctx">HttpListenerContext.</param>
        public HttpRequest(HttpListenerContext ctx)
        {
            if (ctx == null)
            {
                throw new ArgumentNullException(nameof(ctx));
            }
            if (ctx.Request == null)
            {
                throw new ArgumentNullException(nameof(ctx.Request));
            }

            ListenerContext = ctx;
            Keepalive       = ctx.Request.KeepAlive;
            ContentLength   = ctx.Request.ContentLength64;
            Useragent       = ctx.Request.UserAgent;
            ContentType     = ctx.Request.ContentType;

            _Uri = new Uri(ctx.Request.Url.ToString().Trim());

            ThreadId        = Thread.CurrentThread.ManagedThreadId;
            TimestampUtc    = DateTime.Now.ToUniversalTime();
            ProtocolVersion = "HTTP/" + ctx.Request.ProtocolVersion.ToString();
            Source          = new SourceDetails(ctx.Request.RemoteEndPoint.Address.ToString(), ctx.Request.RemoteEndPoint.Port);
            Destination     = new DestinationDetails(ctx.Request.LocalEndPoint.Address.ToString(), ctx.Request.LocalEndPoint.Port, _Uri.Host);
            Method          = (HttpMethod)Enum.Parse(typeof(HttpMethod), ctx.Request.HttpMethod, true);
            Url             = new UrlDetails(ctx.Request.Url.ToString().Trim(), ctx.Request.RawUrl.ToString().Trim());
            Query           = new QueryDetails(Url.Full);

            Headers = new Dictionary <string, string>();
            for (int i = 0; i < ctx.Request.Headers.Count; i++)
            {
                string key = ctx.Request.Headers.GetKey(i);
                string val = ctx.Request.Headers.Get(i);
                Headers = AddToDict(key, val, Headers);
            }

            foreach (KeyValuePair <string, string> curr in Headers)
            {
                if (String.IsNullOrEmpty(curr.Key))
                {
                    continue;
                }
                if (String.IsNullOrEmpty(curr.Value))
                {
                    continue;
                }

                if (curr.Key.ToLower().Equals("transfer-encoding"))
                {
                    if (curr.Value.ToLower().Contains("chunked"))
                    {
                        ChunkedTransfer = true;
                    }
                    if (curr.Value.ToLower().Contains("gzip"))
                    {
                        Gzip = true;
                    }
                    if (curr.Value.ToLower().Contains("deflate"))
                    {
                        Deflate = true;
                    }
                }
            }

            Data = ctx.Request.InputStream;
        }