private void ParseDefault(List<string> lines)
{
for (int i = 0; i < lines.Count; i++)
{
if (!lines[i].ToUpper().StartsWith("[@_")) continue;
if (Type == NPCScriptType.AutoPlayer)
{
if (lines[i].ToUpper().Contains("MAPCOORD"))
{
Regex regex = new Regex(@"\((.*?),([0-9]{1,3}),([0-9]{1,3})\)");
Match match = regex.Match(lines[i]);
if (!match.Success) continue;
Map map = Envir.MapList.FirstOrDefault(m => m.Info.FileName == match.Groups[1].Value);
if (map == null) continue;
Point point = new Point(Convert.ToInt16(match.Groups[2].Value), Convert.ToInt16(match.Groups[3].Value));
if (!map.Info.ActiveCoords.Contains(point))
{
map.Info.ActiveCoords.Add(point);
}
}
if (lines[i].ToUpper().Contains("CUSTOMCOMMAND"))
{
Regex regex = new Regex(@"\((.*?)\)");
Match match = regex.Match(lines[i]);
if (!match.Success) continue;
Envir.CustomCommands.Add(match.Groups[1].Value);
}
}
else if (Type == NPCScriptType.AutoMonster)
{
MonsterInfo MobInfo;
if (lines[i].ToUpper().Contains("SPAWN"))
{
Regex regex = new Regex(@"\((.*?)\)");
Match match = regex.Match(lines[i]);
if (!match.Success) continue;
MobInfo = Envir.GetMonsterInfo(Convert.ToInt16(match.Groups[1].Value));
if (MobInfo == null) continue;
MobInfo.HasSpawnScript = true;
}
if (lines[i].ToUpper().Contains("DIE"))
{
Regex regex = new Regex(@"\((.*?)\)");
Match match = regex.Match(lines[i]);
if (!match.Success) continue;
MobInfo = Envir.GetMonsterInfo(Convert.ToInt16(match.Groups[1].Value));
if (MobInfo == null) continue;
MobInfo.HasDieScript = true;
}
}
else if (Type == NPCScriptType.Robot)
{
if (lines[i].ToUpper().Contains("TIME"))
{
Robot.AddRobot(lines[i].ToUpper());
}
}
NPCPages.AddRange(ParsePages(lines, lines[i]));
}
}