Ejemplo n.º 1
0
        private void BuildDelayResult(JObject resultObject)
        {
            Main.LogDebug("[BuildDelayResult] Building 'Delay' result");
            string  name          = resultObject.ContainsKey("Name") ? resultObject["Name"].ToString() : "Unnamed Delay Result";
            float   time          = resultObject.ContainsKey("Time") ? (float)resultObject["Time"] : -1;
            int     rounds        = resultObject.ContainsKey("Rounds") ? (int)resultObject["Rounds"] : -1;
            int     phases        = resultObject.ContainsKey("Phases") ? (int)resultObject["Phases"] : -1;
            JObject skipIfTrigger = resultObject.ContainsKey("SkipIf") ? (JObject)resultObject["SkipIf"] : null;
            List <DesignConditional> childSkipIfConditionals = new List <DesignConditional>();

            JArray childResultsArray          = (JArray)resultObject["Results"];
            JArray childResultsIfSkippedArray = resultObject.ContainsKey("ResultsIfSkipped") ? (JArray)resultObject["ResultsIfSkipped"] : null;

            List <DesignResult> createdChildResults = new List <DesignResult>();
            ResultsBuilder      childResultsBuilder = new ResultsBuilder(this.contractTypeBuilder, childResultsArray);

            createdChildResults = childResultsBuilder.Build();

            List <DesignResult> createdChildResultsIfSkipped = new List <DesignResult>();

            if (childResultsIfSkippedArray != null)
            {
                ResultsBuilder childResultsIfSkippedBuilder = new ResultsBuilder(this.contractTypeBuilder, childResultsIfSkippedArray);
                createdChildResultsIfSkipped = childResultsIfSkippedBuilder.Build();
            }

            DelayResult result = ScriptableObject.CreateInstance <DelayResult>();

            result.Name             = name;
            result.Time             = time;
            result.Rounds           = rounds;
            result.Phases           = phases;
            result.Results          = createdChildResults;
            result.ResultsIfSkipped = createdChildResultsIfSkipped;

            results.Add(result);

            if (skipIfTrigger != null)
            {
                GenericTriggerBuilder          genericTrigger = new GenericTriggerBuilder(this.contractTypeBuilder, skipIfTrigger, "DelaySkipIfTrigger");
                ActivateDelaySkipResultsResult triggerResult  = ScriptableObject.CreateInstance <ActivateDelaySkipResultsResult>();
                triggerResult.DelayResult = result;
                genericTrigger.Results    = new List <DesignResult>()
                {
                    triggerResult
                };
                genericTrigger.Build();
            }
        }
Ejemplo n.º 2
0
        private void BuildDelayResult(JObject resultObject)
        {
            Main.LogDebug("[BuildDelayResult] Building 'Delay' result");
            string name              = resultObject.ContainsKey("Name") ? resultObject["Name"].ToString() : "Unnamed Delay Result";
            float  time              = resultObject.ContainsKey("Time") ? (float)resultObject["Time"] : -1;
            int    rounds            = resultObject.ContainsKey("Rounds") ? (int)resultObject["Rounds"] : -1;
            int    phases            = resultObject.ContainsKey("Phases") ? (int)resultObject["Phases"] : -1;
            JArray childResultsArray = (JArray)resultObject["Results"];
            List <DesignResult> createdChildResults = new List <DesignResult>();
            ResultsBuilder      childResultsBuilder = new ResultsBuilder(this.contractTypeBuilder, childResultsArray);

            createdChildResults = childResultsBuilder.Build();

            DelayResult result = ScriptableObject.CreateInstance <DelayResult>();

            result.Name    = name;
            result.Time    = time;
            result.Rounds  = rounds;
            result.Phases  = phases;
            result.Results = createdChildResults;

            results.Add(result);
        }