Ejemplo n.º 1
0
        public AbilityStepInfo(AbilityStepSubDefinition def, AssetProvider assetProvider)
        {
            if (def == null)
            {
                throw new ArgumentNullException(nameof(def));
            }
            if (assetProvider == null)
            {
                throw new ArgumentNullException(nameof(assetProvider));
            }

            StepType          = def.stepType;
            Handle            = def.handle;
            ValueRef          = def.valueRef;
            PuzzleSetRef      = def.puzzleSetRef;
            MinRequirement    = def.minRequirement;
            ResourceType      = def.resourceType;
            AffectionType     = def.affectionType;
            Negative          = def.negative;
            OppositeGirl      = def.oppositeGirl;
            ValueType         = def.valueType;
            Min               = def.min;
            Max               = def.max;
            CombineValues     = def.combineValues;
            CombineOperation  = def.combineOperation;
            ResourceMaxValue  = def.resourceMaxValue;
            GirlValueType     = def.girlValueType;
            ConditionType     = def.conditionType;
            PercentOfValue    = def.percentOfValue;
            OrCheck           = def.orCheck;
            Limit             = def.limit;
            Merged            = def.merged;
            FlatMerge         = def.flatMerge;
            Weighted          = def.weighted;
            VisualEffectType  = def.visualEffectType;
            EnergyType        = def.energyType;
            SplashText        = def.splashText;
            AilmentItemType   = def.ailmentItemType;
            AilmentAlterType  = def.ailmentAlterType;
            AilmentTargetType = def.ailmentTargetType;
            AilmentIndex      = def.ailmentIndex;

            AilmentDefinitionID = def.ailmentDefinition?.id ?? -1;
            EnergyDefinitionID  = def.energyDefinition?.id ?? -1;

            if (def.audioKlip != null)
            {
                AudioKlipInfo = new AudioKlipInfo(def.audioKlip, assetProvider);
            }
            if (def.tokenConditionSet != null)
            {
                TokenConditionSetInfo = new TokenConditionSetInfo(def.tokenConditionSet);
            }

            if (def.tokenDefinitions != null)
            {
                TokenDefinitionIDs = def.tokenDefinitions.Select(x => x.id).ToList();
            }
        }
Ejemplo n.º 2
0
        public AbilityStepSubDefinition ToAbilityStep(GameData gameData, AssetProvider assetProvider)
        {
            if (gameData == null)
            {
                throw new ArgumentNullException(nameof(gameData));
            }
            if (assetProvider == null)
            {
                throw new ArgumentNullException(nameof(assetProvider));
            }

            var newDef = new AbilityStepSubDefinition();

            newDef.stepType          = StepType;
            newDef.handle            = Handle;
            newDef.valueRef          = ValueRef;
            newDef.puzzleSetRef      = PuzzleSetRef;
            newDef.minRequirement    = MinRequirement;
            newDef.resourceType      = ResourceType;
            newDef.affectionType     = AffectionType;
            newDef.negative          = Negative;
            newDef.oppositeGirl      = OppositeGirl;
            newDef.valueType         = ValueType;
            newDef.min               = Min;
            newDef.max               = Max;
            newDef.combineValues     = CombineValues;
            newDef.combineOperation  = CombineOperation;
            newDef.resourceMaxValue  = ResourceMaxValue;
            newDef.girlValueType     = GirlValueType;
            newDef.conditionType     = ConditionType;
            newDef.percentOfValue    = PercentOfValue;
            newDef.orCheck           = OrCheck;
            newDef.limit             = Limit;
            newDef.merged            = Merged;
            newDef.flatMerge         = FlatMerge;
            newDef.weighted          = Weighted;
            newDef.visualEffectType  = VisualEffectType;
            newDef.energyType        = EnergyType;
            newDef.splashText        = SplashText;
            newDef.ailmentItemType   = AilmentItemType;
            newDef.ailmentAlterType  = AilmentAlterType;
            newDef.ailmentTargetType = AilmentTargetType;
            newDef.ailmentIndex      = AilmentIndex;

            newDef.energyDefinition  = gameData.Energy.Get(EnergyDefinitionID);
            newDef.ailmentDefinition = gameData.Ailments.Get(AilmentDefinitionID);
            newDef.energyDefinition  = gameData.Energy.Get(EnergyDefinitionID);

            if (AudioKlipInfo != null)
            {
                newDef.audioKlip = AudioKlipInfo.ToAudioKlip(assetProvider);
            }
            if (TokenConditionSetInfo != null)
            {
                newDef.tokenConditionSet = TokenConditionSetInfo.ToTokenConditionSet(gameData);
            }

            if (TokenDefinitionIDs != null)
            {
                newDef.tokenDefinitions = TokenDefinitionIDs.Select(x => gameData.Tokens.Get(x)).ToList();
            }

            return(newDef);
        }