Example #1
0
        public override void ParseCue(string cueToken, string cueData)
        {
            switch (cueToken)
            {
            case "VICTIMS":
                // def.NumVictims = int.Parse(cueData);
                break;

            case "BG":
                def.Actions.Add(StageActionFactory.NewBackground(cueData));
                break;

            case "BGM":
                def.Actions.Add(StageActionFactory.NewBackgroundMusic(cueData));
                break;

            case "VO":
                def.Actions.Add(StageActionFactory.NewVOAction(cueData));
                break;

            default:
                mCurrentCharacterDevName = cueToken;

                foreach (var action in DialogueParser.ParseCue(mCurrentCharacterDevName, cueData))
                {
                    def.Actions.Add(action);
                }
                break;
            }
        }
Example #2
0
        private static IEnumerable <StageAction> ParseStageActions(string currentCharacterDevName, string[] cues)
        {
            List <StageAction> results = new List <StageAction>();
            var charMoves = new List <CharacterMove>();

            string characterName = currentCharacterDevName;

            foreach (string cue in cues)
            {
                if (!int.TryParse(cue, out int newStagePos))
                {
                    string      expression       = cue;
                    StageAction expressionAction = StageActionFactory.NewExpressionAction(characterName, expression);
                    results.Add(expressionAction);
                    // yield return expressionAction;
                }
                else
                {
                    charMoves.Add(new CharacterMove(characterName, newStagePos));
                    StageAction stageAction = StageActionFactory.NewStageMoveAction(charMoves);
                    // yield return stageAction;
                    results.Add(stageAction);
                }
            }

            return(results);
        }
Example #3
0
        public static StageAction ParseActionVitals(string cueData)
        {
            string[] cues        = cueData.Split(ParseTokens.CUE_SEPARATOR);
            string   vitalType   = cues[0].Trim();
            int      vitalAmount = int.Parse(cues[1].Trim());

            var action = StageActionFactory.NewVitalAction(vitalType, vitalAmount);

            return(action);
        }
Example #4
0
        public static IEnumerable <StageAction> ParseStageActions(int a, string lastCharacterDevName, string[] cues)
        {
            List <StageAction>   results   = new List <StageAction>();
            List <CharacterMove> charMoves = new List <CharacterMove>();

            // int charIdx;
            // int actionIdx ;
            for (int charIdx = -1, actionIdx = 0; charIdx < a; charIdx += 2, actionIdx += 2)
            {
                string characterName;
                if (charIdx == -1)
                {
                    characterName = lastCharacterDevName;
                }
                else
                {
                    characterName = cues[charIdx].Trim();
                }

                string cueMeta = cues[actionIdx].Trim();

                string expression;

                if (int.TryParse(cueMeta, out int newStagePos))
                {
                    // ZLog.Info($"[MOVE] {characterName} to pos: {newStagePos}");
                    charMoves.Add(new CharacterMove(characterName, newStagePos));
                    continue;
                    // throw new ArgumentException($"Failed to parse: {cueMeta} as a numeric stage position");
                }

                expression = cueMeta;
                StageAction expressionAction = StageActionFactory.NewExpressionAction(characterName, expression);

                results.Add(expressionAction);
                return(results);
                // yield return expressionAction;
                // yield break;
            }

            if (charMoves.Count == 0)
            {
                // yield break;
                return(results);
            }
            StageAction stageAction = StageActionFactory.NewStageMoveAction(charMoves);

            results.Add(stageAction);

            return(results);
            // yield return stageAction;
        }
Example #5
0
        public override void ParseMisc(string content)
        {
            if (mLastDialogueAction != null)
            {
                if (mLastDialogueAction.DialogueText == "")
                {
                    mLastDialogueAction.DialogueText = content;
                }
                else
                {
                    mLastDialogueAction.DialogueText = $"{mLastDialogueAction.DialogueText}{Environment.NewLine}{content}";
                }
            }
            else
            {
                mLastDialogueAction = StageActionFactory.NewDialogueAction(mCurrentCharacterDevName, content);

                def.Actions.Add(mLastDialogueAction);
            }
        }
Example #6
0
        public override void ParseCue(string cueToken, string cueData)
        {
            if (mSettings.KnownInitGunks.Contains(cueToken))
            {
                int gunkAmount = int.Parse(cueData);

                def.Actions.Add(StageActionFactory.NewGunkInit(cueToken, gunkAmount));
                return;
            }

            if (mSettings.KnownIndexedGunks.Contains(cueToken))
            {
                int[] data = cueData.AsIntArray();

                def.Actions.Add(StageActionFactory.NewGunkIndices(cueToken, data));
                return;
            }

            if (mSettings.KnownSpeakerNames.Contains(cueToken))
            {
                mCurrentCharacterDevName = cueToken;

                mLastDialogueAction = StageActionFactory.NewDialogueAction(mCurrentCharacterDevName, "");

                def.Actions.Add(mLastDialogueAction);
                return;
            }

            switch (cueToken)
            {
            case "ACTION_NEW_PATIENT":
                ZLog.Warn("Need to handle ACTION_NEW_PATIENT");
                return;

            case "VO":
                def.Actions.Add(StageActionFactory.NewVOAction(cueData));
                return;
            }

            throw new InvalidOperationException($"[PHASE] Unknown cue token! token: {cueToken}, is this a speaker or surgery gunk?");
        }
Example #7
0
        public override void ParseCue(string cueToken, string cueData)
        {
            switch (cueToken)
            {
            case "BREAK":

                def.Actions.Add(StageActionFactory.GenerateBreakAction());

                break;

            default:
                mCurrentCharacterDevName = cueToken;

                foreach (var action in DialogueParser.ParseCueNoName(cueToken, cueData))
                {
                    def.Actions.Add(action);
                }

                break;
            }
        }
Example #8
0
        public static bool TryParseDialogueObj(object obj, out StageAction stageAction)
        {
            switch (obj)
            {
            case ActionChoiceDef actionChoiceDef:

                stageAction = StageActionFactory.NewChoicesAction(actionChoiceDef);
                return(true);

            case LoveMinDef loveMinDef:

                stageAction = StageActionFactory.NewLoveMinAction(loveMinDef);
                return(true);

            case CheckFlagDef checkFlagDef:

                stageAction = StageActionFactory.NewCheckFlagAction(checkFlagDef);
                return(true);
            }

            stageAction = null;
            return(false);
        }
Example #9
0
        public static StageAction ParseLove(string cueData)
        {
            string[] cues = cueData.Split(ParseTokens.CUE_SEPARATOR);

            int    loveDelta        = 0;
            string characterDevName = null;

            switch (cues.Length)
            {
            case 1:
                loveDelta = int.Parse(cues[0].Trim());
                break;

            case 2:
                characterDevName = cues[0].Trim();
                loveDelta        = int.Parse(cues[1].Trim());
                break;
            }

            var action = StageActionFactory.NewLoveDelta(characterDevName, loveDelta);

            return(action);
        }
Example #10
0
        public override void ParseMisc(string content)
        {
            var dialogue = StageActionFactory.NewDialogueAction(null, content);

            def.Actions.Add(dialogue);
        }
Example #11
0
        private static StageAction ParseSetFlag(string cueData)
        {
            string[] cues = cueData.Split(ParseTokens.CUE_SEPARATOR);

            return(StageActionFactory.NewSetFlag(cues[0].Trim(), bool.Parse(cues[1].Trim())));
        }
Example #12
0
        public override void ParseMisc(string content)
        {
            var dialogue = StageActionFactory.NewDialogueAction(mCurrentCharacterDevName, content);

            def.Actions.Add(dialogue);
        }