Esempio n. 1
0
        public CutsceneStepSubDefinition ToCutsceneStep(GameData gameData, AssetProvider assetProvider)
        {
            var newCSS = new CutsceneStepSubDefinition();

            newCSS.skipStep                  = SkipStep;
            newCSS.stepType                  = StepType;
            newCSS.proceedType               = ProceedType;
            newCSS.dollTargetType            = DollTargetType;
            newCSS.targetDollOrientation     = TargetDollOrientation;
            newCSS.targetAlt                 = TargetAlt;
            newCSS.boolValue                 = BoolValue;
            newCSS.intValue                  = IntValue;
            newCSS.floatValue                = FloatValue;
            newCSS.stringValue               = StringValue;
            newCSS.easeType                  = (Ease)EaseType;
            newCSS.editorSelectedBranchIndex = EditorSelectedBranchIndex;
            newCSS.expressionType            = ExpressionType;
            newCSS.setMood = SetMood;
            newCSS.editorSelectedOptionIndex = EditorSelectedOptionIndex;
            newCSS.dollPositionType          = DollPositionType;
            newCSS.expressionIndex           = ExpressionIndex;
            newCSS.hairstyleIndex            = HairstyleIndex;
            newCSS.outfitIndex              = OutfitIndex;
            newCSS.animationType            = AnimationType;
            newCSS.subCutsceneType          = SubCutsceneType;
            newCSS.girlPairRelationshipType = GirlPairRelationshipType;
            newCSS.notificationType         = NotificationType;
            newCSS.proceedBool              = ProceedBool;
            newCSS.proceedFloat             = ProceedFloat;

            newCSS.targetGirlDefinition    = gameData.Girls.Get(TargetGirlDefinitionID);
            newCSS.girlDefinition          = gameData.Girls.Get(GirlDefinitionID);
            newCSS.dialogTriggerDefinition = gameData.DialogTriggers.Get(DialogTriggerDefinitionID);
            newCSS.subCutsceneDefinition   = gameData.Cutscenes.Get(SubCutsceneDefinitionID);

            newCSS.windowPrefab      = (UiWindow)assetProvider.GetAsset(WindowPrefabName);
            newCSS.emitterBehavior   = (EmitterBehavior)assetProvider.GetAsset(EmitterBehaviorName);
            newCSS.specialStepPrefab = (CutsceneStepSpecial)assetProvider.GetAsset(SpecialStepPrefabName);
            newCSS.bannerTextPrefab  = (BannerTextBehavior)assetProvider.GetAsset(BannerTextPrefabName);

            if (DialogLineInfo != null)
            {
                newCSS.dialogLine = DialogLineInfo.ToDialogLine(assetProvider);
            }
            if (LogicActionInfo != null)
            {
                newCSS.logicAction = LogicActionInfo.ToLogicAction(gameData, assetProvider);
            }
            if (AudioKlipInfo != null)
            {
                newCSS.audioKlip = AudioKlipInfo.ToAudioKlip(assetProvider);
            }
            if (PositionInfo != null)
            {
                newCSS.position = PositionInfo.ToVector2();
            }

            if (BranchInfos != null)
            {
                newCSS.branches = BranchInfos.Select(x => x.ToCutsceneBranch(gameData, assetProvider)).ToList();
            }
            if (DialogOptionInfos != null)
            {
                newCSS.dialogOptions = DialogOptionInfos.Select(x => x.ToCutsceneDialogOption(gameData, assetProvider)).ToList();
            }

            return(newCSS);
        }
Esempio n. 2
0
        public CutsceneStepInfo(CutsceneStepSubDefinition cutsceneStep, AssetProvider assetProvider)
        {
            if (cutsceneStep == null)
            {
                throw new ArgumentNullException(nameof(cutsceneStep));
            }
            if (assetProvider == null)
            {
                throw new ArgumentNullException(nameof(assetProvider));
            }

            SkipStep                  = cutsceneStep.skipStep;
            StepType                  = cutsceneStep.stepType;
            ProceedType               = cutsceneStep.proceedType;
            DollTargetType            = cutsceneStep.dollTargetType;
            TargetDollOrientation     = cutsceneStep.targetDollOrientation;
            TargetAlt                 = cutsceneStep.targetAlt;
            BoolValue                 = cutsceneStep.boolValue;
            IntValue                  = cutsceneStep.intValue;
            FloatValue                = cutsceneStep.floatValue;
            StringValue               = cutsceneStep.stringValue;
            EaseType                  = (int)cutsceneStep.easeType;
            EditorSelectedBranchIndex = cutsceneStep.editorSelectedBranchIndex;
            ExpressionType            = cutsceneStep.expressionType;
            SetMood = cutsceneStep.setMood;
            EditorSelectedOptionIndex = cutsceneStep.editorSelectedOptionIndex;
            DollPositionType          = cutsceneStep.dollPositionType;
            ExpressionIndex           = cutsceneStep.expressionIndex;
            HairstyleIndex            = cutsceneStep.hairstyleIndex;
            OutfitIndex              = cutsceneStep.outfitIndex;
            AnimationType            = cutsceneStep.animationType;
            SubCutsceneType          = cutsceneStep.subCutsceneType;
            GirlPairRelationshipType = cutsceneStep.girlPairRelationshipType;
            NotificationType         = cutsceneStep.notificationType;
            ProceedBool              = cutsceneStep.proceedBool;
            ProceedFloat             = cutsceneStep.proceedFloat;

            SubCutsceneDefinitionID   = cutsceneStep.subCutsceneDefinition?.id ?? -1;
            DialogTriggerDefinitionID = cutsceneStep.dialogTriggerDefinition?.id ?? -1;
            GirlDefinitionID          = cutsceneStep.girlDefinition?.id ?? -1;
            TargetGirlDefinitionID    = cutsceneStep.targetGirlDefinition?.id ?? -1;

            assetProvider.NameAndAddAsset(ref SpecialStepPrefabName, cutsceneStep.specialStepPrefab);
            assetProvider.NameAndAddAsset(ref WindowPrefabName, cutsceneStep.windowPrefab);
            assetProvider.NameAndAddAsset(ref EmitterBehaviorName, cutsceneStep.emitterBehavior);
            assetProvider.NameAndAddAsset(ref BannerTextPrefabName, cutsceneStep.bannerTextPrefab);

            if (cutsceneStep.audioKlip != null)
            {
                AudioKlipInfo = new AudioKlipInfo(cutsceneStep.audioKlip, assetProvider);
            }
            if (cutsceneStep.position != null)
            {
                PositionInfo = new VectorInfo(cutsceneStep.position);
            }
            if (cutsceneStep.dialogLine != null)
            {
                DialogLineInfo = new DialogLineInfo(cutsceneStep.dialogLine, assetProvider);
            }
            if (cutsceneStep.logicAction != null)
            {
                LogicActionInfo = new LogicActionInfo(cutsceneStep.logicAction, assetProvider);
            }

            if (cutsceneStep.dialogOptions != null)
            {
                DialogOptionInfos = cutsceneStep.dialogOptions.Select(x => new CutsceneDialogOptionInfo(x, assetProvider)).ToList();
            }
            if (cutsceneStep.branches != null)
            {
                BranchInfos = cutsceneStep.branches.Select(x => new CutsceneBranchInfo(x, assetProvider)).ToList();
            }
        }