Exemple #1
0
        public static void CompleteStep(string questId, int variantId)
        {
            UserQuestStepData userStep = _userStepStorage.Get(questId);

            if (userStep.state == UserQuestState.COMPLETE)
            {
                Debug.LogError("Failed to complete step! Already completed userStep id=" + questId);
                return;
            }

            QuestStepData questQuestStepData = Data.Repository.Steps[questId];

            if (questQuestStepData.stepType == QuestStepType.MESSAGE)
            {
                QuestMessageData messageStep = Data.Repository.MessageSteps[questQuestStepData.typeId];
                if (variantId < messageStep.variants.Length)
                {
                    QuestVariantData variant = messageStep.variants[variantId];
                    userStep.Complete(variantId);
                    CreateMessage(questId, variant.text, true);
                    GoToStep(variant.targetStepId);
                }
                else
                {
                    Debug.LogError("Failed to complete step! No variant id=" + variantId.ToString() + " found in step id=" + messageStep.Id);
                    return;
                }
            }

            //OnStepComplete.Invoke(userStep);
        }
Exemple #2
0
        public static void GoToStep(string questId, string state = UserQuestState.ACTIVE, int variantId = -1)
        {
            var step = Data.Repository.Steps[questId];

            if (step == null)
            {
                return;
            }

            if (step.stepType == QuestStepType.TRIGGER)
            {
                QuestTriggerStepData questTriggerStepStep = Data.Repository.TriggerSteps[step.typeId];
                CheckTrigger(questTriggerStepStep);
                return;
            }

            if (step.stepType == QuestStepType.MESSAGE)
            {
                QuestMessageData  messageStep = Data.Repository.MessageSteps[step.typeId];
                UserQuestStepData userStep    = new UserQuestStepData();
                userStep.questStepId = questId;
                userStep.state       = state;

                CreateMessage(questId, messageStep.text);

                if (variantId > 0)
                {
                    CompleteStep(questId, variantId);
                }

                Data.Repository.UserSteps.Set(userStep, questId);
            }
        }
Exemple #3
0
        public float delayAfterStepMessage;// { get; private set; }

        public QuestMessageData Clone()
        {
            var q = new QuestMessageData();

            q.Id                    = string.Empty;
            q.text                  = text;
            q.delayAfterStep        = delayAfterStep;
            q.delayAfterStepMessage = q.delayAfterStepMessage;
            q.variants              = new QuestVariantData[variants.Length];
            for (int i = 0; i < variants.Length; i++)
            {
                q.variants[i] = variants[i].Clone();
            }

            return(q);
        }
Exemple #4
0
 private void InitVariantButtons(MessageViewData messageViewData)
 {
     //init variant buttons
     ResetVariantButtons();
     if (!messageViewData.isUserMsg)
     {
         QuestMessageData questStep = Data.Repository.MessageSteps[messageViewData.parentQuestStepId];
         for (int i = 0; i < _variantButtons.Length; i++)
         {
             if (i < questStep.variants.Length)
             {
                 _variantButtons[i].SetData(questStep.variants[i]);
             }
         }
     }
 }
Exemple #5
0
    internal override void Init(QuestStepData questStepData)
    {
        QuestStepData = questStepData;
        QuestMessageData questMessageData = Data.Repository.MessageSteps[QuestStepData.typeId];

        _messageInput.text = questMessageData.text;
        _id = questMessageData.Id;

        ResetVariants();
        for (int i = 0; i < _variants.Length; i++)
        {
            if (i < questMessageData.variants.Length)
            {
                _variants[i].SetData(questMessageData.variants[i]);
            }
        }
    }
Exemple #6
0
    protected override void GrabDataFromUI()
    {
        _questMessageData      = new QuestMessageData();
        _questMessageData.Id   = _id;
        _questMessageData.text = _messageInput.text;

        int varCnt = 0;

        for (int i = 0; i < _variants.Length; i++)
        {
            var varData = _variants[i].GetData();
            if (varData != null && varData.targetStepId != "None")
            {
                varCnt++;
            }
        }

        _questMessageData.variants = new QuestVariantData[varCnt];
        for (int j = 0; j < varCnt; j++)
        {
            _questMessageData.variants[j] = _variants[j].GetData();
        }
    }
        void CreateRelatedData(QuestStepData item)
        {
            switch (item.stepType)
            {
            case Collections.MESSAGE:
                var messageData = new QuestMessageData {
                    Id = item.typeId
                };
                global::Data.Repository.MessageSteps.Set(messageData, messageData.Id, true, OnCreated);
                break;

            case Collections.TRIGGER:
                var triggerData = new QuestTriggerStepData {
                    Id = item.typeId
                };
                global::Data.Repository.TriggerSteps.Set(triggerData, triggerData.Id, true, OnCreated);
                break;

            default:
                Debug.LogError(this + " Save(): unknown type: " + item.stepType);
                break;
            }
        }