public AilmentTriggerSubDefinition ToAilmentTrigger(GameData gameData)
        {
            if (gameData == null)
            {
                throw new ArgumentNullException(nameof(gameData));
            }

            var newAT = new AilmentTriggerSubDefinition();

            newAT.triggerType         = TriggerType;
            newAT.focusMatters        = FocusMatters;
            newAT.onUnfocused         = OnUnfocused;
            newAT.exhaustionMatters   = ExhaustionMatters;
            newAT.onExhausted         = OnExhausted;
            newAT.upsetMatters        = UpsetMatters;
            newAT.onUpset             = OnUpset;
            newAT.thresholdValue      = ThresholdValue;
            newAT.thresholdPersistent = ThresholdPersistent;
            newAT.perentChance        = PerentChance;
            newAT.executeLimit        = ExecuteLimit;
            newAT.defaultDisabled     = DefaultDisabled;
            newAT.audibalized         = Audibalized;
            newAT.verbalized          = Verbalized;
            newAT.verbalizedIndex     = VerbalizedIndex;
            newAT.stepsProcessType    = StepsProcessType;

            newAT.steps = StepInfos.Select(x => x.ToAilmentStep(gameData)).ToList();

            return(newAT);
        }
        public AilmentTriggerInfo(AilmentTriggerSubDefinition ailmentTrigger)
        {
            TriggerType         = ailmentTrigger.triggerType;
            FocusMatters        = ailmentTrigger.focusMatters;
            OnUnfocused         = ailmentTrigger.onUnfocused;
            ExhaustionMatters   = ailmentTrigger.exhaustionMatters;
            OnExhausted         = ailmentTrigger.onExhausted;
            UpsetMatters        = ailmentTrigger.upsetMatters;
            OnUpset             = ailmentTrigger.onUpset;
            ThresholdValue      = ailmentTrigger.thresholdValue;
            ThresholdPersistent = ailmentTrigger.thresholdPersistent;
            PerentChance        = ailmentTrigger.perentChance;
            ExecuteLimit        = ailmentTrigger.executeLimit;
            DefaultDisabled     = ailmentTrigger.defaultDisabled;
            Audibalized         = ailmentTrigger.audibalized;
            Verbalized          = ailmentTrigger.verbalized;
            VerbalizedIndex     = ailmentTrigger.verbalizedIndex;
            StepsProcessType    = ailmentTrigger.stepsProcessType;

            if (ailmentTrigger.steps != null)
            {
                StepInfos = ailmentTrigger.steps.Select(x => new AilmentStepInfo(x)).ToList();
            }
        }