public void onCombatStart() { GameObject target = GameDataTracker.combatExecutor.Clip; FighterClass targetInfo = target.GetComponent <FighterClass>(); SayDialogue dialogueCutscene = ScriptableObject.CreateInstance <SayDialogue>(); TextAsset textAsset = new TextAsset("Test test hello."); dialogueCutscene.inputText = textAsset; dialogueCutscene.heightOverSpeaker = targetInfo.CharacterHeight + 0.5f; dialogueCutscene.speakerName = targetInfo.name; CutsceneController.addCutsceneEvent(dialogueCutscene, target, true, GameDataTracker.cutsceneModeOptions.Cutscene); }
private bool GraphDeconstruct(DialogueContainer input) { while (!string.IsNullOrEmpty(currentGUID) && !textboxWait) { //Dialogue Node if (input.DialogueNodeData.Any(x => x.Guid == currentGUID)) { DialogueNodeData node = input.DialogueNodeData.First(x => x.Guid == currentGUID); textboxWait = true; SayDialogue dialogueCutscene = ScriptableObject.CreateInstance <SayDialogue>(); if (!string.IsNullOrEmpty(node.TargetPlayer)) { dialogueCutscene.speakerName = node.TargetPlayer; } else { dialogueCutscene.speakerName = speakerName; } dialogueCutscene.inputText = new TextAsset(node.DialogueText); dialogueCutscene.currentLinks = input.NodeLinks.Where(x => x.BaseNodeGuid == currentGUID).ToList(); dialogueCutscene.deconstructerSource = this; CutsceneController.addCutsceneEvent(dialogueCutscene, cutsceneSource, true, GameDataTracker.cutsceneModeOptions.Cutscene); continue; } //Animation Trigger if (input.AnimationTriggerNodeData.Any(x => x.Guid == currentGUID)) { AnimationTriggerNodeData node = input.AnimationTriggerNodeData.First(x => x.Guid == currentGUID); AnimationTriggerCutscene animationTriggerCutscene = ScriptableObject.CreateInstance <AnimationTriggerCutscene>(); animationTriggerCutscene.TriggerName = node.TriggerName; animationTriggerCutscene.TargetName = node.TargetPlayer; CutsceneController.addCutsceneEvent(animationTriggerCutscene, cutsceneSource, false, GameDataTracker.cutsceneModeOptions.Cutscene); currentGUID = FindNextNode(input, currentGUID); continue; } //Set Flag if (input.SetFlagNodeData.Any(x => x.Guid == currentGUID)) { SetFlagNodeData SetFlagNode = input.SetFlagNodeData.First(x => x.Guid == currentGUID); string FlagName = SetFlagNode.FlagName; string FlagTag = SetFlagNode.FlagTag; if (GameDataTracker.stringFlags.ContainsKey(FlagName)) { GameDataTracker.stringFlags[FlagName] = FlagTag; } else { GameDataTracker.stringFlags.Add(FlagName, FlagTag); } currentGUID = FindNextNode(input, currentGUID); continue; } //Get Flag if (input.GetFlagNodeData.Any(x => x.Guid == currentGUID)) { GetFlagNodeData GetFlagNode = input.GetFlagNodeData.First(x => x.Guid == currentGUID); string FlagName = GetFlagNode.FlagName; if (GameDataTracker.stringFlags.ContainsKey(FlagName)) { string FlagTag = GameDataTracker.stringFlags[FlagName]; if (input.NodeLinks.Any(x => x.PortName == FlagTag)) { currentGUID = input.NodeLinks.First(x => x.PortName == FlagTag && x.BaseNodeGuid == currentGUID).TargetNodeGuid; } else { currentGUID = input.NodeLinks.First(x => x.PortName == "Other" && x.BaseNodeGuid == currentGUID).TargetNodeGuid; } } else { currentGUID = input.NodeLinks.First(x => x.PortName == "Other" && x.BaseNodeGuid == currentGUID).TargetNodeGuid; } continue; } //Boolean Set Flag if (input.BooleanSetFlagNodeData.Any(x => x.Guid == currentGUID)) { BooleanSetFlagNodeData BooleanSetFlagNode = input.BooleanSetFlagNodeData.First(x => x.Guid == currentGUID); string FlagName = BooleanSetFlagNode.FlagName; bool FlagBool = BooleanSetFlagNode.FlagBool; if (GameDataTracker.boolFlags.ContainsKey(FlagName)) { GameDataTracker.boolFlags[FlagName] = FlagBool; } else { GameDataTracker.boolFlags.Add(FlagName, FlagBool); } currentGUID = FindNextNode(input, currentGUID); continue; } //Boolean Get Flag if (input.BooleanGetFlagNodeData.Any(x => x.Guid == currentGUID)) { BooleanGetFlagNodeData BooleanGetFlagNode = input.BooleanGetFlagNodeData.First(x => x.Guid == currentGUID); string FlagName = BooleanGetFlagNode.FlagName; if (GameDataTracker.boolFlags.ContainsKey(FlagName)) { bool FlagBool = GameDataTracker.boolFlags[FlagName]; if (FlagBool) { currentGUID = input.NodeLinks.First(x => x.PortName == "True" && x.BaseNodeGuid == currentGUID).TargetNodeGuid; } else { currentGUID = input.NodeLinks.First(x => x.PortName == "False" && x.BaseNodeGuid == currentGUID).TargetNodeGuid; } } else { currentGUID = input.NodeLinks.First(x => x.PortName == "Other" && x.BaseNodeGuid == currentGUID).TargetNodeGuid; } continue; } //Move To Position if (input.MoveToPosNodeData.Any(x => x.Guid == currentGUID)) { MoveToPosNodeData MoveToPosNode = input.MoveToPosNodeData.First(x => x.Guid == currentGUID); string TargetObject = MoveToPosNode.TargetObject; string ReferenceObject = MoveToPosNode.ReferenceObject; bool Wait = MoveToPosNode.Wait; Vector3 Offset = MoveToPosNode.PosOffset; MoveToPosition moveToPosition = ScriptableObject.CreateInstance <MoveToPosition>(); moveToPosition.PositionOffset = Offset; moveToPosition.ReferenceObject = ReferenceObject; moveToPosition.TargetObject = TargetObject; moveToPosition.Wait = Wait; CutsceneController.addCutsceneEvent(moveToPosition, cutsceneSource, true, GameDataTracker.cutsceneModeOptions.Cutscene); currentGUID = FindNextNode(input, currentGUID); continue; } } if (!textboxWait && string.IsNullOrEmpty(currentGUID)) { done = true; return(true); } return(false); }