// делаем простую линейную последовательность диалогов public SubStory PrepSubStory(string subname, int mode, Dialogue[] d, bool isReady) { SubStory sub; if ((sub = Seq_GetOne(subname)) != null) { return(sub); } sub = new SubStory(); sub.Sub_Init(null); // sub.Sub_Set (null, 0); sub.SubName = subname; sub.category = (int)mode; sub.MainStory = MainStory; for (int i = 0; i < d.Length; i++) { sub.Sub_AddDialogue(d[i], null); } sub.isReady = isReady; Seq_Add(sub); return(sub); }
// делаем как бы главный квест, заряжаем два диалога и стартовое условие private void PrepareMainQuest() { Dialogue quest1 = new Dialogue(), quest2 = new Dialogue(), quest3 = new Dialogue(); var Pers1 = Strana.Government.PrimeMinister.GetHolder(); var Pers2 = Strana.Government.Voevoda.GetHolder(); var Pers3 = Strana.Government.Spymaster.GetHolder(); DialogueInfo dInfo = Massive.GetDialogueInfo(Dialog_Names.PMQuest1); quest1.PrepNSDialog(Strana.Ruler, Pers1, dInfo, () => { DefaultReplikaChoice(Pers1); }); dInfo = Massive.GetDialogueInfo(Dialog_Names.PMQuest2); quest2.PrepNSDialog(Strana.Ruler, Pers2, dInfo, () => { DefaultReplikaChoice(Pers2); }); dInfo = Massive.GetDialogueInfo(Dialog_Names.PMQuest3); quest3.PrepNSDialog(Strana.Ruler, Pers3, dInfo, () => { DefaultReplikaChoice(Pers3); }); Dialogue[] PMQuest = { quest1, quest2, quest3 }; SubStory sub = Sujet.PrepSubStory("PMQuest", (int)StoryMode.events, PMQuest, false); sub.StageCondition[0] = SetCond(() => { SubStoryIsReady = (WeeksNumber() == StartingWeek + 1) ? true: false; }); sub.StageCondition[1] = SetCond(() => { SubStoryIsReady = (WeeksNumber() == StartingWeek + 2) ? true: false; }); sub.StageCondition[2] = SetCond(() => { SubStoryIsReady = (WeeksNumber() == StartingWeek + 3) ? true: false; }); }
private void Seq_Add(SubStory s) { StoryLine.Add(s); count = StoryLine.Count; Debug.Log("добавляем " + s.SubName + " " + count); }
private StoryMode GetSubStoryCategory(SubStory sub) { return((StoryMode)sub.category); }