private void Start()
 {
     questsScreenController = GetComponentInParent <QuestsScreenController>();
     questsScreenController.GetComponent <MainNavBarBackButtonEventToFSMEvent>().enabled = false;
     currentMascot = Service.Get <MascotService>().ActiveMascot;
     if (currentMascot == null)
     {
         string currentMascotID = questsScreenController.CurrentMascotID;
         if (!string.IsNullOrEmpty(currentMascotID))
         {
             currentMascot = Service.Get <MascotService>().GetMascot(currentMascotID);
         }
     }
     currentChapter = questsScreenController.CurrentChapterData;
     if (currentMascot != null)
     {
         if (currentChapter.Number > 0)
         {
             LoadQuestsForMascot(currentMascot.Name, currentChapter.Number);
             return;
         }
         QuestDefinition nextAvailableQuest = currentMascot.GetNextAvailableQuest();
         int             chapterNumber      = ((nextAvailableQuest != null) ? (nextAvailableQuest.ChapterNumber - 1) : currentMascot.Definition.ChapterData[currentMascot.Definition.ChapterData.Length - 1].Number);
         LoadQuestsForMascot(currentMascot.Name, chapterNumber);
     }
 }
Beispiel #2
0
        private void onMascotButtonPressed(string mascotName)
        {
            QuestsScreenController questsScreenController = GetComponentInParent <QuestsScreenController>();

            if (questsScreenController == null)
            {
                GameObject gameObject = GetComponentInParent <StateMachineContext>().gameObject;
                questsScreenController = gameObject.GetComponentInChildren <QuestsScreenController>();
            }
            questsScreenController.CurrentMascotID = mascotName;
            Service.Get <ICPSwrveService>().Action("game.quest", "mascot", mascotName);
        }
Beispiel #3
0
        public void OnStateChanged(string newStateString)
        {
            QuestsScreenController componentInParent = GetComponentInParent <QuestsScreenController>();
            Mascot mascot = Service.Get <MascotService>().ActiveMascot;
            QuestsAdventuresState questsAdventuresState = (QuestsAdventuresState)Enum.Parse(typeof(QuestsAdventuresState), newStateString);

            MascotDefinition.QuestChapterData currentChapterData = componentInParent.CurrentChapterData;
            if (mascot == null)
            {
                string currentMascotID = componentInParent.CurrentMascotID;
                if (!string.IsNullOrEmpty(currentMascotID))
                {
                    mascot = Service.Get <MascotService>().GetMascot(currentMascotID);
                }
                mainNav.SetBackButtonVisible(visible: true);
            }
            else if (questsAdventuresState == QuestsAdventuresState.Log)
            {
                if (firstTimeOpened)
                {
                    QuestDefinition nextAvailableQuest = mascot.GetNextAvailableQuest();
                    int             num = 0;
                    if (nextAvailableQuest != null)
                    {
                        num = nextAvailableQuest.ChapterNumber - 1;
                    }
                    else
                    {
                        for (int num2 = mascot.Definition.ChapterData.Length - 1; num2 >= 0; num2--)
                        {
                            if (!mascot.Definition.ChapterData[num2].IsPreviewChapter)
                            {
                                num = num2;
                                break;
                            }
                        }
                    }
                    componentInParent.CurrentChapterData = mascot.Definition.ChapterData[num];
                    firstTimeOpened = false;
                    GameObject          gameObject = GameObject.FindWithTag(UIConstants.Tags.UI_Tray_Root);
                    StateMachineContext component  = gameObject.GetComponent <StateMachineContext>();
                    component.SendEvent(new ExternalEvent("ScreenQuestsAdventures", "logQuests"));
                    return;
                }
                mainNav.SetBackButtonVisible(visible: false);
            }
            else
            {
                mainNav.SetBackButtonVisible(visible: true);
            }
            Localizer localizer = Service.Get <Localizer>();

            switch (questsAdventuresState)
            {
            case QuestsAdventuresState.Log:
                if (mascot != null)
                {
                    mainNav.SetTitleText(localizer.GetTokenTranslation(mascot.Definition.i18nAdventureLogTitleText));
                }
                break;

            case QuestsAdventuresState.LogQuests:
                mainNav.SetTitleText(localizer.GetTokenTranslation(currentChapterData.Name));
                break;
            }
            firstTimeOpened = false;
        }