Exemplo n.º 1
0
        private void PrepareTutorial(int x, Person Pers)
        {
            Dialogue Tutor1 = new Dialogue();
            //	var fname = (x==1) ? Dialog_Names.Tutorial1 : Dialog_Names.Tutorial0;
            var fname = Dialog_Names.Tutorial0 + x;

            //	string[] str = Massive.GetDialogStrings (fname);
            //	Tutor1.PrepMonolog (Strana.Ruler, Pers, str, null);
            DialogueInfo dInfo = Massive.GetDialogueInfo(fname);

            Tutor1.PrepNSDialog(Strana.Ruler, Pers, dInfo, () => { DefaultReplikaChoice(Pers); });

            Dialogue[] Tutor = { Tutor1 };
            Sujet.PrepSubStory("Tutor" + x.ToString(), (int)StoryMode.tutor, Tutor, true);
        }
Exemplo n.º 2
0
        // новая версия с DialogInfo
        public Dialogue PrepNSDialog(Person p1, Person p2, DialogueInfo d, Action DefaultCond)
        {
            //		Dialogue D = new Dialogue ();  // больше не нужно, т.к. это метод самого диалога, который уже создали раньше
            Phrase ph;

            D_PInit(p1, p2);
            for (int i = 0; i < d.list.Count; i++)
            {
                ph = new Phrase();
                ph.Ph_Init(DefaultCond, p2, d.list[i], false, false, false, null);
                D_AddPhrase(ph);
            }

            D_Settings(d.links, d.choices, d.decisions, d.finals);

            return(this);
        }
Exemplo n.º 3
0
        private void PrepareCounsil()
        {
            Dialogue Counsil1 = new Dialogue();
            var      Pers     = Strana.Government.PrimeMinister.GetHolder();

            DialogueInfo dInfo = Massive.GetDialogueInfo(Dialog_Names.Counsil);

//			for (int i = 0; i < d.links.Length; i++)
//				Debug.Log(d.links[i][0] + " " + d.links[i][1] + " " + d.links[i][2]);
            Counsil1.PrepNSDialog(Strana.Ruler, Pers, dInfo, () => { DefaultReplikaChoice(Pers); });

            SetAct(Counsil1, 8, null, () => { Debug.Log("Эtо конееееец!!!"); });
            SetAct(Counsil1, 14, () => { ReplikaChoiceState(3, 4, 5); }, null);

            Dialogue[] Counsil = { Counsil1 };
            Sujet.PrepSubStory("Counsil" + WeeksNumber(), (int)StoryMode.counsil, Counsil, true);
        }
Exemplo n.º 4
0
        public DialogueInfo GetDialogueInfo(Dialog_Names name)
        {
            string[]        textarray = GetDialogStringsFromFile(DialogsFilenames[(int)name]);
            List <string[]> list = ExtractStringsToList(textarray);
            List <int>      choices = new List <int>(), decisions = new List <int>(), finals = new List <int>();
            int             x;
            string          s;

            Debug.Log("здесь чтоли падает?");

            for (int i = 0; i < textarray.Length; i++)
            {
                s = textarray[i].TrimStart();
                if (!String.IsNullOrEmpty(s) && isDigit(s[0]))
                {
                    x = GetNumberFromString(s);
                    Debug.Log(x);
                    if (!String.IsNullOrEmpty(s = CutStr(s, x)))
                    {
                        if (isFinal(s[0]))
                        {
                            finals.Add(x);
                        }
                        if (isDecision(s[0]))
                        {
                            decisions.Add(x);
                        }
                        if (isChoice(s[0]))
                        {
                            choices.Add(x);
                        }
                    }
                }
            }
//		Debug.Log(finals[0] + " " + choices[0] + " " + choices[1] + " " +decisions[0]);

            Debug.Log("вроде нет");
            int[][] links = GetLinksFromTA(textarray);

            DialogueInfo d = new DialogueInfo(list, links, choices.ToArray(), decisions.ToArray(), finals.ToArray());

            return(d);
        }
Exemplo n.º 5
0
        // делаем как бы главный квест, заряжаем два диалога и стартовое условие
        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; });
        }
Exemplo n.º 6
0
        private void PrepareAudience(Person Guest)
        {
            Dialogue     Audience1 = new Dialogue();
            DialogueInfo dInfo     = new DialogueInfo();
            // считываем диалог из соответствующего файла
            List <string[]> list = Massive.GetDialogStringsList(Dialog_Names.Audience);

            // готовим матриwу переходов внутри диалога
            // сделал первым, потом стал забивать эту инфу прямо в диалог и считывать уже по-другому, см. counsil
            int[][] links = { new int[] {  1, 1,  2 }, new int[] {  1, 2,  3 }, new int[] {  1, 3,  4 }, new int[] {  1, 4,  4 },
                              new int[] {  1, 5, 33 }, new int[] {  1, 6, 32 }, new int[] {  1, 7,  7 }, new int[] {  1, 8,  8 },
                              new int[] {  9, 1, 47 }, new int[] {  9, 2, 34 }, new int[] {  9, 3, 35 }, new int[] {  9, 4, 36 },
                              new int[] { 13, 0, 14 }, new int[] {  9, 5, 38 }, new int[] {  9, 6, 39 }, new int[] {  9, 7, 40 },
                              new int[] {  9, 8, 27 }, new int[] { 18, 1, 41 }, new int[] { 18, 2, 42 }, new int[] { 18, 3, 43 },
                              new int[] { 18, 4, 44 }, new int[] { 18, 5, 45 }, new int[] { 18, 6, 46 }, new int[] { 18, 7, 27 },
                              new int[] { 22, 1, 23 }, new int[] { 22, 2, 23 }, new int[] { 22, 3, 27 }, new int[] { 24, 1, 48 },
                              new int[] { 24, 2, 49 }, new int[] { 24, 3, 50 }, new int[] { 24, 5, 51 }, new int[] { 24, 6, 27 },
                              new int[] { 27, 1,  1 }, new int[] { 27, 2, 28 }, new int[] {  2, 0,  9 }, new int[] {  3, 0, 18 },
                              new int[] {  4, 0, 27 }, new int[] {  5, 0, 27 }, new int[] {  6, 0, 27 }, new int[] {  7, 0, 24 },
                              new int[] { 10, 0,  9 }, new int[] { 11, 0,  9 }, new int[] { 12, 0,  9 }, new int[] { 14, 0,  9 },
                              new int[] { 15, 0,  9 }, new int[] { 16, 0,  9 }, new int[] { 17, 0,  9 }, new int[] { 19, 0, 27 },
                              new int[] { 20, 0, 27 }, new int[] { 23, 0, 27 }, new int[] { 25, 0, 24 }, new int[] { 26, 0, 24 },
                              new int[] { 21, 1, 52 }, new int[] { 21, 2, 53 }, new int[] { 21, 3, 54 }, new int[] { 21, 4, 55 },
                              new int[] { 21, 5, 31 }, new int[] { 29, 0, 24 }, new int[] { 30, 0, 24 }, new int[] { 31, 0, 27 },
                              new int[] { 32, 0, 21 }, new int[] { 24, 4, 56 } };
            int[]   choices = new int[] { 1, 9, 18, 21, 22, 24, 27 },
            decisions = new int[] { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 },
            finals    = new int[] { 8, 28 };

//		Audience1.PrepNSDialog (Strana.Ruler, Guest, list, () => { DefaultReplikaChoice (Guest); }, links, choices, decisions, finals);
            dInfo.list = list; dInfo.links = links; dInfo.choices = choices; dInfo.decisions = decisions; dInfo.finals = finals;
            Audience1.PrepNSDialog(Strana.Ruler, Guest, dInfo, () => { DefaultReplikaChoice(Guest); });

            SetAct(Audience1, 8, null, () => { Debug.Log("Эtо конееееец!!!"); });
            SetAct(Audience1, 28, null, () => { Debug.Log("Эtо конееееец!!!"); });
            {
                SetAct(Audience1, 33, () => { ReplikaChoiceNeed(Guest, 5, 6); }, null);
                SetAct(Audience1, 34, () => { ReplikaChoiceNeutralMood(Guest, 11, 10); }, null);
                SetAct(Audience1, 35, () => { ReplikaChoiceNeutralMood(Guest, 12, 10); }, null);
                SetAct(Audience1, 36, () => { ReplikaChoiceNeutralMood(Guest, 13, 10); }, null);
                SetAct(Audience1, 37, () => { ReplikaChoiceNeutralMood(Guest, 14, 10); }, null);
                // намеренно поставил для вопроса об отношениях нет = да, чтобы потом сработал сам вопрос
                SetAct(Audience1, 38, () => { ReplikaChoiceNeutralMood(Guest, 15, 15); }, null);
                SetAct(Audience1, 39, () => { ReplikaChoiceNeutralMood(Guest, 16, 10); }, null);
                SetAct(Audience1, 40, () => { ReplikaChoiceNeutralMood(Guest, 17, 10); }, null);
                SetAct(Audience1, 41, () => { ReplikaChoiceNeutralMood(Guest, 22, 20); }, () => { MadeOffer(Guest, OfferRewards.drink); });
                SetAct(Audience1, 42, () => { ReplikaChoiceNeutralMood(Guest, 19, 20); }, () => { MadeOffer(Guest, OfferRewards.honor); });
                SetAct(Audience1, 43, () => { ReplikaChoiceNeutralMood(Guest, 19, 20); }, () => { MadeOffer(Guest, OfferRewards.gold); });
                SetAct(Audience1, 44, () => { ReplikaChoiceNeutralMood(Guest, 19, 20); }, () => { MadeOffer(Guest, OfferRewards.holding); });
                SetAct(Audience1, 45, () => { ReplikaChoiceNeutralMood(Guest, 19, 20); }, () => { MadeOffer(Guest, OfferRewards.titul); });
                SetAct(Audience1, 46, () => { ReplikaChoiceNeutralMood(Guest, 19, 20); }, null);
                // для вопроса о происхождении пока нет ответа, так что да = нет
                SetAct(Audience1, 47, () => { ReplikaChoiceGoodMood(Guest, 10, 10); }, null);
                SetAct(Audience1, 48, () => { ReplikaChoiceNeutralMood(Guest, 25, 26); }, () => { LaySanctions(Guest, Sanctions.ponos); });
                SetAct(Audience1, 49, () => { ReplikaChoiceNeutralMood(Guest, 25, 26); }, () => { LaySanctions(Guest, Sanctions.gold); });
                SetAct(Audience1, 50, () => { ReplikaChoiceNeutralMood(Guest, 25, 26); }, () => { LaySanctions(Guest, Sanctions.holding); });
                SetAct(Audience1, 51, () => { ReplikaChoiceNeutralMood(Guest, 25, 26); }, () => { LaySanctions(Guest, Sanctions.arrest); });
                SetAct(Audience1, 56, () => { ReplikaChoiceNeutralMood(Guest, 25, 26); }, () => { LaySanctions(Guest, Sanctions.titul); });
                SetAct(Audience1, 52, () => { ReplikaChoiceGoodMood(Guest, 29, 30); }, null);
                SetAct(Audience1, 53, () => { ReplikaChoiceGoodMood(Guest, 29, 30); }, null);
                SetAct(Audience1, 54, () => { ReplikaChoiceGoodMood(Guest, 29, 30); }, null);
                SetAct(Audience1, 55, () => { ReplikaChoiceGoodMood(Guest, 29, 30); }, null);

                SetAct(Audience1, 11, () => { ReplikaChoiceReligion(Guest); }, null);
                SetAct(Audience1, 12, () => { ReplikaChoicePolitic(Guest); }, null);
                SetAct(Audience1, 13, () => { ReplikaChoiceDost(Guest); }, () => { ReplikaRevealStat(Guest); });
                SetAct(Audience1, 14, () => { ReplikaChoiceNedost(Guest); }, () => { ReplikaRevealStat(Guest); });
                SetAct(Audience1, 15, () => { ReplikaChoiceRelation(Guest); }, null);
                SetAct(Audience1, 16, () => { ReplikaChoicePosition(Guest); }, null);
                SetAct(Audience1, 17, () => { ReplikaChoiceCounsil(Guest); }, null);
                SetAct(Audience1, 19, null, () => { AcceptOffer(Guest); });
                SetAct(Audience1, 20, null, () => { RefuseOffer(Guest); });
                SetAct(Audience1, 25, null, () => { AcceptSanction(Guest); });
                SetAct(Audience1, 26, null, () => { RefuseSanction(Guest); });
            }

            Dialogue[] Audience = { Audience1 };
            Sujet.PrepSubStory("Audience of " + Guest.Name, (int)StoryMode.audience, Audience, true);
        }