private string ReadEventName(string eventString)
        {
            string nameString = eventString.Split('_')[2];

            return(EventTranslationModel.IsValidName(nameString)
                ? EventTranslationModel.TranslateEventName(nameString)
                : nameString); //eventually translate to readable names
        }
        private string ReadEventLocation(string eventString)
        {
            string locationString = eventString.Contains("UndyingKing")
                ? "UndyingKing"
                : eventString.Split('_')[2];

            _location = EventTranslationModel.IsValidLocation(locationString)
                ? EventTranslationModel.TranslateEventLocation(locationString)
                : locationString;

            return(_location);
        }
        private EventModel ParseLine(string line)
        {
            line = line.Substring(0, line.Length - 9); //trim bogus characters ending each line
            if (line.Equals(string.Empty))
            {
                return(new EventModel());
            }

            string[] lineList = line.Split('/');
            if (!EventTranslationModel.IsValidZone(lineList[0]))
            {
                return(new EventModel());
            }

            if (lineList[1].CompareTo("Templates") == 0)
            {
                string subZoneText = lineList[2].Split('.')[0];
                _subZone = EventTranslationModel.TranslateEventSubZone(subZoneText.Substring(0, subZoneText.Length - 3));
                return(new EventModel());
            }

            return(BuildEvent(lineList));
        }
        private EventModel BuildEvent(string[] lineList)
        {
            EventModel @event = new EventModel();

            @event.zone      = EventTranslationModel.TranslateEventZone(lineList[0]);
            @event.subZone   = _subZone;
            @event.eventType = ReadEventType(lineList[2]);

            @event.location = @event.eventType == EventType.ItemDrop
                ? _location
                : @event.eventType == EventType.PointOfInterest
                    ? "Overworld"
                    : ReadEventLocation(lineList[2]);
            @event.name = ReadEventName(lineList[2]);
            if (namesEncountered.Contains(@event.name))
            {
                @event.eventType = EventType.Invalid;
            }
            else
            {
                namesEncountered.Add(@event.name);
            }
            return(@event);
        }