コード例 #1
0
        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);
        }
コード例 #2
0
 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;
 }
コード例 #3
0
ファイル: LoveStory.cs プロジェクト: callumlawson/Sellout
 private Action TolstoyAsked(DialogueOutcome outcome)
 {
     return(() =>
     {
         StaticStates.Get <PlayerDecisionsState>().TolstoyAskedToMakeDrink = true;
         EndConversation(outcome).Invoke();
     });
 }
コード例 #4
0
 protected Action EndConversation(DialogueOutcome outcome)
 {
     return(() =>
     {
         entity.GetState <DialogueOutcomeState>().Outcome = outcome;
         if (OnDialoguOutcome != null)
         {
             OnDialoguOutcome(outcome);
         }
         onEnd();
         DialogueSystem.Instance.StopDialogue();
     });
 }
コード例 #5
0
ファイル: LoveStory.cs プロジェクト: callumlawson/Sellout
            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();
                });
            }
コード例 #6
0
        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;
        }
コード例 #7
0
 public SetDialogueOutcomeAction(Entity entity, DialogueOutcome outcome)
 {
     this.outcome = outcome;
 }
コード例 #8
0
 public NoResponseConversation(string[] lines, DialogueOutcome outcome, float timeoutSeconds = 1.5f)
 {
     this.lines          = lines;
     this.outcome        = outcome;
     this.timeoutSeconds = timeoutSeconds;
 }
コード例 #9
0
 public SingleOutcomeConversation(string[] lines, string response, DialogueOutcome outcome)
 {
     this.lines    = lines;
     this.response = response;
     this.outcome  = outcome;
 }
コード例 #10
0
 public SingleOutcomeConversation(string line, string response, DialogueOutcome outcome)
 {
     this.lines    = new string[] { line };
     this.response = response;
     this.outcome  = outcome;
 }