76 lines
2.3 KiB
C#
76 lines
2.3 KiB
C#
using System;
|
|
using System.IO;
|
|
using Server.Regions;
|
|
|
|
namespace Server
|
|
{
|
|
public class TreasureRegion : BaseRegion
|
|
{
|
|
private const int Range = 5;// No house may be placed within 5 tiles of the treasure
|
|
public TreasureRegion(int x, int y, Map map)
|
|
: base(null, map, Region.DefaultPriority, new Rectangle2D(x - Range, y - Range, 1 + (Range * 2), 1 + (Range * 2)))
|
|
{
|
|
this.GoLocation = new Point3D(x, y, map.GetAverageZ(x, y));
|
|
|
|
this.Register();
|
|
}
|
|
|
|
public static void Initialize()
|
|
{
|
|
string filePath = Path.Combine(Core.BaseDirectory, "Data/treasure.cfg");
|
|
int i = 0, x = 0, y = 0;
|
|
|
|
if (File.Exists(filePath))
|
|
{
|
|
using (StreamReader ip = new StreamReader(filePath))
|
|
{
|
|
string line;
|
|
|
|
while ((line = ip.ReadLine()) != null)
|
|
{
|
|
i++;
|
|
|
|
try
|
|
{
|
|
string[] split = line.Split(' ');
|
|
|
|
x = Convert.ToInt32(split[0]);
|
|
y = Convert.ToInt32(split[1]);
|
|
|
|
try
|
|
{
|
|
new TreasureRegion(x, y, Map.Felucca);
|
|
new TreasureRegion(x, y, Map.Trammel);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine("{0} {1} {2} {3}", i, x, y, e);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
Console.WriteLine("Warning: Error in Line '{0}' of Data/treasure.cfg", line);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public override bool AllowHousing(Mobile from, Point3D p)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public override void OnEnter(Mobile m)
|
|
{
|
|
if (m.IsStaff())
|
|
m.SendMessage("You have entered a protected treasure map area.");
|
|
}
|
|
|
|
public override void OnExit(Mobile m)
|
|
{
|
|
if (m.IsStaff())
|
|
m.SendMessage("You have left a protected treasure map area.");
|
|
}
|
|
}
|
|
} |