private static List <DialogueOption> LoadOptions(string file) { var path = Path.Combine("Dialogue", file); var data = CSVReader.Read(path); var options = new List <DialogueOption>(); for (var i = 0; i < data.Count; i++) { var datum = data[i]; var dialogueLine = data[i]["Line"] as string; var dialogueOutcomeString = data[i]["Dialogue Outcome"] as string; var speciesTypeString = data[i]["Species"] as string; var jobTypeString = data[i]["Job"] as string; var alcoholicRequiredString = data[i]["Alcoholic"] as string; DialogueOutcome dialogueOutcome = dialogueOutcomeString.Length == 0 ? dialogueOutcome = DialogueOutcome.Default : (DialogueOutcome)System.Enum.Parse(typeof(DialogueOutcome), dialogueOutcomeString); SpeciesType species = speciesTypeString.Length == 0 ? species = SpeciesType.None : (SpeciesType)System.Enum.Parse(typeof(SpeciesType), data[i]["Species"] as string); JobType job = jobTypeString.Length == 0 ? job = JobType.None : (JobType)System.Enum.Parse(typeof(JobType), data[i]["Job"] as string); Required alcoholRequired = alcoholicRequiredString.Length == 0 ? Required.None : (Required)System.Enum.Parse(typeof(Required), data[i]["Alcoholic"] as string); options.Add(new DialogueOption(dialogueLine, dialogueOutcome, species, job, alcoholRequired)); } return(options); }
public DialogueOption(string line, DialogueOutcome outcome, SpeciesType species, JobType job, Required required) { this.line = line; this.outcome = outcome; this.species = species; this.job = job; this.required = required; }
private Action TolstoyAsked(DialogueOutcome outcome) { return(() => { StaticStates.Get <PlayerDecisionsState>().TolstoyAskedToMakeDrink = true; EndConversation(outcome).Invoke(); }); }
protected Action EndConversation(DialogueOutcome outcome) { return(() => { entity.GetState <DialogueOutcomeState>().Outcome = outcome; if (OnDialoguOutcome != null) { OnDialoguOutcome(outcome); } onEnd(); DialogueSystem.Instance.StopDialogue(); }); }
private Action TolstoyAdvice(DialogueOutcome outcome, PlayerDecisionsState.TolstoyAdviceChoices choice) { return(() => { StaticStates.Get <PlayerDecisionsState>().TolstoyAdviceChoice = choice; if (choice == PlayerDecisionsState.TolstoyAdviceChoices.FindFavoriteDrink) { StaticStates.Get <PlayerDecisionsState>().TolstoyAskedToMakeDrink = true; } EndConversation(outcome).Invoke(); }); }
private void HandleDialogueOutcome(DialogueOutcome outcome) { switch (outcome) { case DialogueOutcome.Nice: reactingEntity.GetState <RelationshipState>().PlayerOpinion++; ActionManagerSystem.Instance.AddActionToFrontOfQueueForEntity(reactingEntity, new UpdateMoodAction(Mood.Happy)); break; case DialogueOutcome.Mean: reactingEntity.GetState <RelationshipState>().PlayerOpinion--; ActionManagerSystem.Instance.AddActionToFrontOfQueueForEntity(reactingEntity, new UpdateMoodAction(Mood.Angry)); break; default: break; } reactingEntity.GetState <ConversationState>().Conversation = null; }
public SetDialogueOutcomeAction(Entity entity, DialogueOutcome outcome) { this.outcome = outcome; }
public NoResponseConversation(string[] lines, DialogueOutcome outcome, float timeoutSeconds = 1.5f) { this.lines = lines; this.outcome = outcome; this.timeoutSeconds = timeoutSeconds; }
public SingleOutcomeConversation(string[] lines, string response, DialogueOutcome outcome) { this.lines = lines; this.response = response; this.outcome = outcome; }
public SingleOutcomeConversation(string line, string response, DialogueOutcome outcome) { this.lines = new string[] { line }; this.response = response; this.outcome = outcome; }