public QuestInformation(EzQuestModel model, EzCompletedQuestList currentCompletedQuestList)
        {
            Id         = model.QuestModelId;
            Name       = model.Name;
            ScreenName = model.Metadata;
            var action = QuestController.GetConsumeAction <ConsumeStaminaByUserIdRequest>(
                model,
                "Gs2Stamina:ConsumeStaminaByUserId"
                );

            if (action != null)
            {
                consumeStamina = action.consumeValue;
            }

            if (currentCompletedQuestList == null)
            {
                currentCompletedQuestList = new EzCompletedQuestList
                {
                    CompleteQuestNames = new List <string>()
                };
            }

            var premiseQuestNames = new HashSet <string>(model.PremiseQuestNames);

            premiseQuestNames.ExceptWith(currentCompletedQuestList.CompleteQuestNames);
            open      = premiseQuestNames.Count == 0;
            completed = currentCompletedQuestList.CompleteQuestNames.Contains(model.Name);
        }
Exemple #2
0
        public IEnumerator Refresh()
        {
            void RefreshQuestAction(
                EzQuestGroupModel questGroupModel,
                EzCompletedQuestList completedQuestList
                )
            {
                QuestGroupModel    = questGroupModel;
                CompletedQuestList = completedQuestList;

                _onGetQuestModel.RemoveListener(RefreshQuestAction);
                onWatchQuestEvent.Invoke(questGroupModel, completedQuestList);
            }

            _onGetQuestModel.AddListener(RefreshQuestAction);

            yield return(QuestController.GetQuestModel(
                             _client,
                             _session,
                             _questNamespaceName,
                             _questGroupName,
                             _onGetQuestModel,
                             _onError
                             ));
        }
        private void OnListGroupQuestModelFunc(List <EzQuestGroupModel> questGroups)
        {
            if (questGroupsViewPort != null)
            {
                for (int i = 0; i < questGroupsViewPort.transform.childCount; i++)
                {
                    Destroy(questGroupsViewPort.transform.GetChild(i).gameObject);
                }

                foreach (var questGroup in questGroups)
                {
                    var questType = Gs2Util.LoadGlobalResource <QuestGroupView>();
                    questType.transform.SetParent(questGroupsViewPort.transform);
                    questType.Initialize(new QuestGroupInformation(questGroup));
                    questType.transform.localScale = new Vector3(1, 1, 1);
                    questType.transform.GetComponentInChildren <Button>().onClick.AddListener(
                        () =>
                    {
                        _currentCompletedQuestList = _completedQuestLists.Find(completedQuestList =>
                                                                               completedQuestList.QuestGroupName == questGroup.Name);

                        ClickToSelect(questGroup);
                    }
                        );
                    questType.gameObject.SetActive(true);
                }
            }
        }
 public EzGetCompletedQuestListResult(
     GetCompletedQuestListResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzCompletedQuestList(result.item);
     }
 }
Exemple #5
0
        public void OnGetQuestList(EzQuestGroupModel questGroupModel, EzCompletedQuestList completedQuestList)
        {
            for (var i = 0; i < verticalLayoutGroup.transform.childCount; i++)
            {
                Destroy(verticalLayoutGroup.transform.GetChild(i).gameObject);
            }

            foreach (var quest in questGroupModel.Quests)
            {
                if (quest.PremiseQuestNames.Intersect(_watcher.CompletedQuestList.CompleteQuestNames).Count() ==
                    quest.PremiseQuestNames.Count)
                {
                    var item = Instantiate(questListRowPrefab, verticalLayoutGroup.transform);
                    item.Initialize(
                        quest
                        );
                    item.onChoiceQuest.AddListener(OnClickChoiceQuestButton);
                }
            }
        }