Example #1
0
        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);
        }
Example #2
0
 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();
 }