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);
        }
示例#2
0
 public void Initialize(
     EzQuestModel questModel
     )
 {
     _questModel = questModel;
     _quest      = new Quest(questModel);
 }
 public EzGetQuestResult(
     GetQuestModelResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzQuestModel(result.item);
     }
 }
示例#4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="quest"></param>
        /// <param name="action"></param>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static T GetConsumeAction <T>(
            EzQuestModel quest,
            string action
            )
        {
            var item = quest.ConsumeActions.FirstOrDefault(consumeAction => consumeAction.Action == action);

            if (item == null)
            {
                return(default);
示例#5
0
        public bool SelectQuest(EzQuestModel quest)
        {
            if (_state == State.SelectQuest)
            {
                selectQuest = quest;
                _animator.SetTrigger(Trigger.SelectQuest.ToString());
                return(true);
            }

            return(false);
        }
示例#6
0
        public void OnStartQuest(EzQuestModel quest, EzProgress progress)
        {
            Debug.Log("QuestDirector::OnStartQuest");

            _currentProgress = progress;

            questMain.Initialize(
                new Quest(quest),
                progress
                );
            questMain.onComplete.AddListener(OnCompleteQuest);
            questMain.onFailure.AddListener(OnFailureQuest);
            questMain.gameObject.SetActive(true);
        }
 public EzGetProgressResult(
     GetProgressResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzProgress(result.item);
     }
     if (result.questGroup != null)
     {
         QuestGroup = new EzQuestGroupModel(result.questGroup);
     }
     if (result.quest != null)
     {
         Quest = new EzQuestModel(result.quest);
     }
 }
示例#8
0
        public void OnChoiceQuest(EzQuestModel questModel)
        {
            Debug.Log("QuestDirector::OnChoiceQuest");

            _currentQuest = questModel;
            StartCoroutine(
                QuestController.StartQuest(
                    _client,
                    _session,
                    _questSetting.questNamespaceName,
                    _questSetting.questGroupName,
                    questModel.Name,
                    _questSetting.onIssueStartStampSheet,
                    _questSetting.onError
                    )
                );
        }
示例#9
0
        /// <summary>
        /// クエストを取得
        /// </summary>
        /// <returns></returns>
        public IEnumerator CheckStaminaTask(EzQuestModel quest)
        {
            if (_animator)
            {
                {
                    AsyncResult <EzGetStaminaResult> result = null;
                    yield return(staminaController.GetStamina(
                                     r => result = r
                                     ));

                    if (result.Error != null)
                    {
                        _animator.SetTrigger(Trigger.GetStaminaFailed.ToString());
                        yield break;
                    }

                    var action = QuestController.GetConsumeAction <ConsumeStaminaByUserIdRequest>(
                        quest,
                        "Gs2Stamina:ConsumeStaminaByUserId"
                        );
                    if (action != null)
                    {
                        if (result.Result.Item.Value < action.ConsumeValue)
                        {
                            GameObject.Find("Gs2QuestInternalSetting").GetComponent <Gs2QuestInternalSetting>().onFewStamina.Invoke();
                            _animator.SetTrigger(Trigger.CheckStaminaFailed.ToString());
                            yield break;
                        }
                    }
                }

                GameObject.Find("Gs2QuestInternalSetting").GetComponent <Gs2QuestInternalSetting>().selectedQuestGroup = selectQuestGroup;
                GameObject.Find("Gs2QuestInternalSetting").GetComponent <Gs2QuestInternalSetting>().selectedQuest      = selectQuest;
                GameObject.Find("Gs2QuestInternalSetting").GetComponent <Gs2QuestInternalSetting>().progress           = null;
                GameObject.Find("Gs2QuestInternalSetting").GetComponent <Gs2QuestInternalSetting>().onStartQuest.Invoke(
                    selectQuestGroup,
                    selectQuest
                    );

                _animator.SetTrigger(Trigger.CheckStaminaSucceed.ToString());
            }
        }
示例#10
0
 public void OnEndQuest(EzQuestModel quest, EzProgress progress)
 {
     Debug.Log("QuestDirector::OnEndQuest");
 }
示例#11
0
        public void OnClickChoiceQuestButton(EzQuestModel quest)
        {
            onChoiceQuest.Invoke(quest);

            gameObject.SetActive(false);
        }
 /// <summary>
 /// 選択する
 /// </summary>
 public void ClickToSelect(EzQuestModel quest)
 {
     _stateMachine.SelectQuest(quest);
 }
 private void OnStartQuest(EzQuestGroupModel questGroup, EzQuestModel quest)
 {
     GameObject.Find("Gs2QuestInternalSetting").GetComponent <Gs2QuestInternalSetting>().onCloseSelectQuest.Invoke(
         this
         );
 }
示例#14
0
 public Quest(EzQuestModel item)
 {
     _item = item;
 }