private void UpdateMovement()
    {
        var forwardDelta = Input.GetAxis("Vertical") * Time.deltaTime * ExperimentModel.getMovementSpeed();

        Vector3 forwardVector;

        if (PlayerMovementMode == MovementMode.BodyRelatve)
        {
            forwardVector = transform.forward * forwardDelta;
        }
        else
        {
            Vector3 fakeForward = headTransform.forward;
            fakeForward.y = 0;
            fakeForward.Normalize();
            forwardVector = fakeForward * forwardDelta;
        }

        if (UnityEngine.XR.XRSettings.enabled)
        {
            GetComponent <SphereCollider>().center = headTransform.localPosition;
        }

        transform.position += forwardVector;
    }
Beispiel #2
0
        /// <summary>
        /// GET: /Experiment/
        /// </summary>
        /// <returns>The index view</returns>
        public ActionResult Index()
        {
            ExperimentModel model = new ExperimentModel();

            model.Experiment = this.experimentService.InitialiseExperiment();

            return(this.View(model));
        }
 public static void UpdateGameOptions(this ExperimentModel experiment, GameOptions options)
 {
     //Okay, this probably isn't the optimal structure. Maybe this shouldn't be an extension
     //method.
     foreach (var variableName in experiment.Variables.Keys)
     {
         ApplyVariable(experiment, variableName, options);
     }
 }
Beispiel #4
0
        public async Task <IActionResult> CreateExperiment(ExperimentModel experimentModel)
        {
            if (ModelState.IsValid)
            {
                var mappedExperiment = mapper.Map <Experimet>(experimentModel);
                mappedExperiment.StatusExperiment = StatusExperiment.NotStarted;
                var experiment = await experimentService.CreateNewExperiment(mappedExperiment);

                return(RedirectToAction(nameof(ExperimentProcess), new { id = experiment.Id }));
            }
            return(View());
        }
Beispiel #5
0
        public async Task <IActionResult> CreateExperiment(string researchId)
        {
            var research = await researchService.GetResearchAsync(Guid.Parse(researchId));

            var experimentModel = new ExperimentModel()
            {
                Research   = research,
                ResearchId = research.Id
            };

            return(View(experimentModel));
        }
Beispiel #6
0
        public async Task <IActionResult> StratProcessing(ExperimentModel exp)
        {
            if (ModelState.IsValid)
            {
                var kmc        = new KMC();
                var experiment = await experimentService.GetExperimentAsync(exp.Id);

                var processedData = kmc.BuildAcidDictionary(exp.Kmer, experiment.Data);
                experiment.JsonResult       = JsonConvert.SerializeObject(processedData);
                experiment.StatusExperiment = StatusExperiment.Done;
                await experimentService.UpdeteExperiment(experiment);

                return(RedirectToAction(nameof(ExperimentProcess), new { id = experiment.Id }));
            }
            return(RedirectToAction(nameof(ExperimentProcess), new { id = exp.Id }));
        }
Beispiel #7
0
        /// <summary>
        /// POST: /Experiment/Save
        /// </summary>
        /// <param name="model">The experiment model which stores the experiment values to save</param>
        /// <returns>The Save view</returns>
        public ActionResult Save(ExperimentModel model)
        {
            Experiment expToUpdate = this.experimentService.Get(model.Experiment.Id);

            expToUpdate.XPosition    = model.Experiment.XPosition;
            expToUpdate.YPosition    = model.Experiment.YPosition;
            expToUpdate.StartTime    = model.Experiment.StartTime;
            expToUpdate.EndTime      = model.Experiment.EndTime;
            expToUpdate.ReactionTime = model.Experiment.EndTime - model.Experiment.StartTime;
            expToUpdate.EndDiameter  = model.Experiment.EndDiameter;
            expToUpdate.EndOpacity   = model.Experiment.EndOpacity;

            this.experimentService.Save(expToUpdate);

            model.Experiment = expToUpdate;

            return(this.View(model));
        }
 public async Task <Result> DeleteExperimentCommand(ExperimentModel value)
 {
     using var schemaRegistry  = new CachedSchemaRegistryClient(schemaRegistryConfig);
     using var producerBuilder = new ProducerBuilder <Null, ExperimentModel>(producerConfig)
                                 .SetValueSerializer(new JsonSerializer <ExperimentModel>(schemaRegistry, jsonSerializerConfig))
                                 .Build();
     {
         try
         {
             var producer = await producerBuilder.ProduceAsync("DeleteExperimentCommand", new Message <Null, ExperimentModel> {
                 Value = value
             });
         }
         catch (ProduceException <Null, ExperimentModel> produceException)
         {
             return(Result.Failure(produceException.Message));
         }
     }
     return(Result.Ok());
 }
Beispiel #9
0
 public async Task <Result> ExperimentDeletedEvent(ExperimentModel value)
 {
     using var schemaRegistry  = new CachedSchemaRegistryClient(schemaRegistryConfig);
     using var producerBuilder = new ProducerBuilder <Null, ExperimentModel>(producerConfig)
                                 .SetValueSerializer(new JsonSerializer <ExperimentModel>(schemaRegistry, jsonSerializerConfig))
                                 .Build();
     {
         try
         {
             var currentTicks = DateTime.Now.Ticks.ToString();
             var producer     = await producerBuilder.ProduceAsync("ExperimentDeletedEvent", new Message <Null, ExperimentModel> {
                 Value = value
             });
         }
         catch (ProduceException <Null, ExperimentModel> produceException)
         {
             return(Result.Failure(produceException.Message));
         }
     }
     return(Result.Ok());
 }
        public Result CreateExperimentCommand(ExperimentModel value)
        {
            var task = Task.Run(() =>
            {
                using var schemaRegistry  = new CachedSchemaRegistryClient(schemaRegistryConfig);
                using var producerBuilder = new ProducerBuilder <Null, ExperimentModel>(producerConfig)
                                            .SetValueSerializer(new JsonSerializer <ExperimentModel>(schemaRegistry, jsonSerializerConfig))
                                            .Build();
                try
                {
                    var producer = producerBuilder.ProduceAsync("CreateExperimentCommand", new Message <Null, ExperimentModel> {
                        Value = value
                    });
                }
                catch (ProduceException <Null, ExperimentModel> produceException)
                {
                }
            });

            return(Result.Ok());
        }
Beispiel #11
0
        public Result ExperimentCreatedEvent(ExperimentModel value)
        {
            var task = Task.Run(async() =>
            {
                using var schemaRegistry  = new CachedSchemaRegistryClient(schemaRegistryConfig);
                using var producerBuilder = new ProducerBuilder <Null, ExperimentModel>(producerConfig)
                                            .SetValueSerializer(new JsonSerializer <ExperimentModel>(schemaRegistry, jsonSerializerConfig))
                                            .Build();
                try
                {
                    var currentTicks = DateTime.Now.Ticks.ToString();
                    var producer     = await producerBuilder.ProduceAsync("ExperimentCreatedEvent", new Message <Null, ExperimentModel> {
                        Value = value
                    });
                }
                catch (ProduceException <Null, ExperimentModel> produceException)
                {
                }
            });

            return(Result.Ok());
        }
        private static void ApplyVariable(ExperimentModel experiment, string variableName, GameOptions options)
        {
            var value = experiment.Variables[variableName];

            switch (variableName.ToLower())
            {
            case "lynchrule":
                options.LynchRules = value.ToEnum <LynchRules>();
                break;

            case "seercount":
                options.SeerCount = value.ToInt32();
                break;

            case "huntercount":
                options.HunterCount = value.ToInt32();
                break;

            case "seerpercentscannedthreshold":
                options.SeerPercentScannedThreshold = value.ToDecimal();
                break;

            case "seerwolfpercentthreshold":
                options.SeerWolfPercentThreshold = value.ToDecimal();
                break;

            case "seerwolfcountthreshold":
                options.SeerWolfCountThreshold = value.ToInt32();
                break;

            case "seerlivingscancountthreshold":
                options.SeerLivingScanCountThreshold = value.ToInt32();
                break;

            default:
                throw new InvalidOperationException("Unexpected Variable Name: " + variableName);
            }
        }
 public async Task <Result> Delete([FromBody] ExperimentModel value)
 {
     return(await _experimentCommandsService.DeleteExperimentCommand(value));
 }
 public async Task <Result> Put(long id, [FromBody] ExperimentModel value)
 {
     return(await _experimentCommandsService.UpadateExperimentCommand(id, value));
 }
 public Result Post([FromBody] ExperimentModel value)
 {
     return(_experimentCommandsService.CreateExperimentCommand(value));
 }