private static void ApplyCounterQuestConditionProxyData(CounterQuestCondition counterQuestCondition, string s)
        {
            if (counterQuestCondition == null || s == null)
            {
                return;
            }
            var fields = s.Split(';');

            if (fields.Length < 5)
            {
                return;
            }
            counterQuestCondition.counterValueMode = (CounterValueConditionMode)SafeConvert.ToInt(fields[0]);
            var valueType = (QuestNumber.ValueType)SafeConvert.ToInt(fields[1]);

            switch (valueType)
            {
            case QuestNumber.ValueType.Literal:
                counterQuestCondition.requiredCounterValue = new QuestNumber(SafeConvert.ToInt(fields[2]));
                break;

            case QuestNumber.ValueType.CounterValue:
            case QuestNumber.ValueType.CounterMinValue:
            case QuestNumber.ValueType.CounterMaxValue:
                counterQuestCondition.requiredCounterValue              = new QuestNumber();
                counterQuestCondition.requiredCounterValue.valueType    = valueType;
                counterQuestCondition.requiredCounterValue.counterIndex = SafeConvert.ToInt(fields[3]);
                break;

            default:
                counterQuestCondition.requiredCounterValue = new QuestNumber();
                break;
            }
            counterQuestCondition.counterIndex = SafeConvert.ToInt(fields[4]);
        }
        public CounterQuestCondition AddCounterCondition(QuestNode node, StringField counterName, CounterValueConditionMode conditionMode, QuestNumber requiredValue)
        {
            var condition = CounterQuestCondition.CreateInstance <CounterQuestCondition>();

            condition.name                 = "counterCondition";
            condition.counterIndex         = quest.GetCounterIndex(counterName);
            condition.counterValueMode     = conditionMode;
            condition.requiredCounterValue = requiredValue;
            node.conditionSet.conditionList.Add(condition);
            return(condition);
        }
 private static string GetCounterQuestConditionProxyData(CounterQuestCondition counterQuestCondition)
 {
     return((int)counterQuestCondition.counterValueMode + ";" + (int)counterQuestCondition.requiredCounterValue.valueType + ";" +
            counterQuestCondition.requiredCounterValue.literalValue + ";" + counterQuestCondition.requiredCounterValue.counterIndex + ";" +
            counterQuestCondition.counterIndex);
 }