public CreatureSpawner(int raceId, int amount, int regionId, int delay, int delayMin, int delayMax, int[] titles, int[] coordinates)
{
if (coordinates == null || coordinates.Length < 2 || coordinates.Length % 2 != 0)
throw new ArgumentException("CreatureSpawner: Invalid amount of coordinates.");
this.Id = Interlocked.Increment(ref _id);
this.RaceId = raceId;
this.Amount = (int)Math.Ceiling(amount / 2f);
this.RegionId = regionId;
this.Delay = delay * 1000;
this.DelayMin = delayMin * 1000;
this.DelayMax = delayMax * 1000;
_titles = titles;
_points = new Point[coordinates.Length / 2];
for (int i = 0, j = 0; i < coordinates.Length; ++j, i += 2)
{
_points[j] = new Point(coordinates[i], coordinates[i + 1]);
if (coordinates[i] < _minX) _minX = coordinates[i];
if (coordinates[i] > _maxX) _maxX = coordinates[i];
if (coordinates[i + 1] < _minY) _minY = coordinates[i + 1];
if (coordinates[i + 1] > _maxY) _maxY = coordinates[i + 1];
}
_creatures = new List<NPC>();
}