public void SetValue(int newValue, QuestCounterSetValueMode setValueMode = QuestCounterSetValueMode.InformListeners) { m_currentValue = Mathf.Clamp(newValue, minValue, maxValue); if (setValueMode != QuestCounterSetValueMode.DontInformListeners) { var informDataSync = (updateMode == QuestCounterUpdateMode.DataSync) && (setValueMode != QuestCounterSetValueMode.DontInformDataSync); if (informDataSync) { MessageSystem.SendMessage(this, DataSynchronizer.RequestDataSourceChangeValueMessage, name, currentValue); } QuestMachineMessages.QuestCounterChanged(this, questID, name, currentValue); try { changed(this); } catch (Exception e) // Don't let exceptions in user-added events break our code. { if (Debug.isDebugBuild) { Debug.LogException(e); } } } }