void IMessageHandler.OnMessage(MessageArgs messageArgs)
        {
            if (!isChecking || messageArgs.values == null || messageArgs.values.Length < 2 || requiredQuestID == null)
            {
                return;
            }
            var questID = messageArgs.parameter;

            if (!StringField.Equals(requiredQuestID, questID))
            {
                return;
            }
            var questNodeID = QuestMachineMessages.ArgToString(messageArgs.values[0]);

            if (!string.IsNullOrEmpty(questNodeID))
            {
                return;
            }
            var stateValue = messageArgs.values[1];
            var state      = (stateValue != null && stateValue.GetType() == typeof(QuestState)) ? (QuestState)stateValue : QuestState.WaitingToStart;

            if (state == requiredState)
            {
                SetTrue();
            }
        }
示例#2
0
        private bool IsRequiredValue(MessageArgs messageArgs)
        {
            if (value == null)
            {
                return(true);
            }
            if (value.valueType == MessageValueType.None)
            {
                return(true);
            }
            if (messageArgs.firstValue == null)
            {
                return(false);
            }
            switch (value.valueType)
            {
            case MessageValueType.String:
                return(QuestMachineMessages.ArgToString(messageArgs.firstValue) == runtimeStringValue);

            case MessageValueType.Int:
                return(QuestMachineMessages.ArgToInt(messageArgs.firstValue) == value.intValue);

            default:
                Debug.LogError("Quest Machine: Unhandled MessageValueType " + value.valueType + ". Please contact the developer.", quest);
                return(false);
            }
        }
示例#3
0
        void IMessageHandler.OnMessage(MessageArgs messageArgs)
        {
            if (!isChecking)
            {
                return;
            }
            if (messageArgs.values == null || messageArgs.values.Length < 2 || requiredQuestID == null)
            {
                return;
            }
            var questID = messageArgs.parameter;

            if (!string.Equals(questID, StringField.GetStringValue(requiredQuestID)))
            {
                return;
            }
            var questNodeID = QuestMachineMessages.ArgToString(messageArgs.values[0]);

            if (!string.Equals(questNodeID, requiredQuestNodeID.value))
            {
                return;
            }
            var stateValue = messageArgs.values[1];
            var state      = (stateValue != null && stateValue.GetType() == typeof(QuestNodeState)) ? (QuestNodeState)stateValue : QuestNodeState.Inactive;

            if (state == requiredState)
            {
                SetTrue();
            }
        }