Exemplo n.º 1
0
        private static string ReplaceCounterTag(string s, CounterTagType tagType)
        {
            if (string.IsNullOrEmpty(s) || currentQuest == null)
            {
                return(s);
            }

            var counterName = (tagType == CounterTagType.Current || tagType == CounterTagType.AsTime) ? s.Substring(2, s.Length - 3).Trim()
                : s.Substring(3, s.Length - 4).Trim();

            // Look for counter in current quest:
            var counter = currentQuest.GetCounter(counterName);

            if (counter != null)
            {
                return(GetCounterTagValue(counter, tagType));
            }

            // Otherwise look for quest by ID:
            var index = counterName.IndexOf(CounterTagQuestNameSeparator);

            if (index > 0)
            {
                var questName = counterName.Substring(0, index);
                counterName = counterName.Substring(index + 1);
                var quest = QuestMachine.GetQuestInstance(questName);
                counter = (quest != null) ? quest.GetCounter(counterName) : null;
                if (counter != null)
                {
                    return(GetCounterTagValue(counter, tagType));
                }
            }
            return(s);
        }
Exemplo n.º 2
0
        private static string GetCounterTagValue(QuestCounter counter, CounterTagType tagType)
        {
            if (counter == null)
            {
                return(string.Empty);
            }
            switch (tagType)
            {
            default:
            case CounterTagType.Current:
                return(counter.currentValue.ToString());

            case CounterTagType.Min:
                return(counter.minValue.ToString());

            case CounterTagType.Max:
                return(counter.maxValue.ToString());

            case CounterTagType.AsTime:
                return(SecondsToTimeString(counter.currentValue));
            }
        }