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; } }
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); }
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); }
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; }
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); } }
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?"); }
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; } }
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); }
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); }
public override void ParseMisc(string content) { var dialogue = StageActionFactory.NewDialogueAction(null, content); def.Actions.Add(dialogue); }
private static StageAction ParseSetFlag(string cueData) { string[] cues = cueData.Split(ParseTokens.CUE_SEPARATOR); return(StageActionFactory.NewSetFlag(cues[0].Trim(), bool.Parse(cues[1].Trim()))); }
public override void ParseMisc(string content) { var dialogue = StageActionFactory.NewDialogueAction(mCurrentCharacterDevName, content); def.Actions.Add(dialogue); }