public void OnMessage(MessageArgs messageArgs) { if (QuestMachine.debug) { Debug.Log("Quest Machine: QuestCounter[" + name + "].OnMessage(" + messageArgs.message + ", " + messageArgs.parameter + ")", m_quest); } switch (messageArgs.message) { case DataSynchronizer.DataSourceValueChangedMessage: m_currentValue = messageArgs.intValue; break; case QuestMachineMessages.SetQuestCounterMessage: m_currentValue = messageArgs.intValue; break; case QuestMachineMessages.IncrementQuestCounterMessage: m_currentValue += messageArgs.intValue; break; default: if (messageEventList == null) { break; } for (int i = 0; i < messageEventList.Count; i++) { var messageEvent = messageEventList[i]; if (messageEvent != null && messageArgs.Matches(messageEvent.message, messageEvent.parameter) && QuestMachineMessages.IsRequiredID(messageArgs.sender, QuestMachineTags.ReplaceTags(messageEvent.senderID, m_quest)) && QuestMachineMessages.IsRequiredID(messageArgs.target, QuestMachineTags.ReplaceTags(messageEvent.targetID, m_quest))) { switch (messageEvent.operation) { case QuestCounterMessageEvent.Operation.ModifyByLiteralValue: m_currentValue += messageEvent.literalValue; break; case QuestCounterMessageEvent.Operation.ModifyByParameter: m_currentValue += messageArgs.intValue; break; case QuestCounterMessageEvent.Operation.SetToLiteralValue: m_currentValue = messageEvent.literalValue; break; case QuestCounterMessageEvent.Operation.SetToParameter: m_currentValue = messageArgs.intValue; break; } } } break; } SetValue(m_currentValue, QuestCounterSetValueMode.DontInformDataSync); }
void IMessageHandler.OnMessage(MessageArgs messageArgs) { if (!(QuestMachineMessages.IsRequiredID(messageArgs.sender, runtimeSenderID) && QuestMachineMessages.IsRequiredID(messageArgs.target, runtimeTargetID) && IsRequiredValue(messageArgs))) { return; } if (QuestMachine.debug) { Debug.Log("Quest Machine: MessageQuestCondition.OnMessage( " + messageArgs.message + ", " + messageArgs.parameter + ")", quest); } SetTrue(); }