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(); } }
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); } }
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(); } }