Files
abysmal-isle/Scripts/Multis/Camps/HumanBrigandCamp.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

187 lines
5.5 KiB
C#

/*using System;
using Server.Items;
using Server.Mobiles;
namespace Server.Multis
{
public class HumanBrigandCamp : BaseCamp
{
[Constructable]
public HumanBrigandCamp()
: base(0x1F6D)
{
}
public HumanBrigandCamp(Serial serial)
: base(serial)
{
}
public virtual Mobile Camper
{
get
{
return new HumanBrigand();
}
}
public override void AddComponents()
{
AddItem(new Item(0xFAC), 0, 0, 0); // fire pit
AddItem(new Item(0xDE3), 0, 0, 0); // camp fire
AddItem(new Item(0x974), 0, 0, 1); // cauldron
for (int i = 0; i < 2; i ++)
{
LockableContainer cont = null;
switch ( Utility.Random(3) )
{
case 0:
cont = new MetalChest();
break;
case 1:
cont = new WoodenChest();
break;
case 2:
cont = new SmallCrate();
break;
}
cont.Movable = false;
cont.Locked = true;
cont.TrapType = TrapType.ExplosionTrap;
cont.TrapPower = Utility.RandomMinMax(30, 40);
cont.TrapLevel = 2;
cont.RequiredSkill = 76;
cont.LockLevel = 66;
cont.MaxLockLevel = 116;
cont.DropItem(new Gold(Utility.RandomMinMax(100, 400)));
cont.DropItem(new Arrow(10));
cont.DropItem(new Bolt(10));
if (Utility.RandomDouble() < 0.8)
{
switch ( Utility.Random(4) )
{
case 0:
cont.DropItem(new LesserCurePotion());
break;
case 1:
cont.DropItem(new LesserExplosionPotion());
break;
case 2:
cont.DropItem(new LesserHealPotion());
break;
case 3:
cont.DropItem(new LesserPoisonPotion());
break;
}
}
if (Utility.RandomDouble() < 0.5)
{
Item item = Loot.RandomArmorOrShieldOrWeapon();
if (item is BaseWeapon)
BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, false, 0, Utility.RandomMinMax(1, 5), 10, 100);
else if (item is BaseArmor)
BaseRunicTool.ApplyAttributesTo((BaseArmor)item, false, 0, Utility.RandomMinMax(1, 5), 10, 100);
cont.DropItem(item);
}
Point3D loc = GetRandomSpawnPoint(3);
AddItem(cont, loc.X, loc.Y, loc.Z);
Treasure1 = cont;
}
switch ( Utility.Random(2) )
{
case 0:
Prisoner = new Noble();
break;
case 1:
Prisoner = new SeekerOfAdventure();
break;
}
for (int i = 0; i < 4; i ++)
{
Point3D loc = GetRandomSpawnPoint(5);
AddMobile(Camper,loc.X, loc.Y, loc.Z);
}
Prisoner.IsPrisoner = true;
Prisoner.CantWalk = true;
Point3D p = GetRandomSpawnPoint(3);
AddMobile(Prisoner, p.X, p.Y, p.Z);
}
public override void AddItem(Item item, int xOffset, int yOffset, int zOffset)
{
if (item != null)
item.Movable = false;
base.AddItem(item, xOffset, yOffset, zOffset);
}
public virtual Point3D GetRandomSpawnPoint(int range)
{
Map map = Map;
if (map == null)
return Location;
// Try 10 times to find a Spawnable location.
for (int i = 0; i < 10; i++)
{
int x = Location.X + (Utility.Random((range * 2) + 1) - range);
int y = Location.Y + (Utility.Random((range * 2) + 1) - range);
int z = Map.GetAverageZ(x, y);
if (Map.CanSpawnMobile(new Point2D(x, y), Z))
return new Point3D(x, y, Z);
else if (Map.CanSpawnMobile(new Point2D(x, y), z))
return new Point3D(x, y, z);
}
return Location;
}
public override void OnEnter(Mobile m)
{
base.OnEnter(m);
if (m.Player && Prisoner != null)
{
Prisoner.Yell(Utility.RandomMinMax(502261, 502268));
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1: break;
case 0:
Prisoner = reader.ReadMobile() as BaseCreature;
break;
}
}
}
}*/