Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
using Server;
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items {
|
||||
|
||||
public class ExperimentalRoomDoor : MetalDoor2 {
|
||||
|
||||
public override string DefaultName { get { return "a door"; } }
|
||||
|
||||
private Room m_Room;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Room Room {
|
||||
get { return m_Room; }
|
||||
set { m_Room = value; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public ExperimentalRoomDoor( Room room, DoorFacing facing ) : base(facing) {
|
||||
m_Room = room;
|
||||
}
|
||||
|
||||
public ExperimentalRoomDoor( Serial serial ) : base(serial) {
|
||||
|
||||
}
|
||||
|
||||
public override void Use(Mobile from)
|
||||
{
|
||||
if (from.AccessLevel > AccessLevel.Player)
|
||||
{
|
||||
from.SendMessage("You open the door with your godly powers.");
|
||||
base.Use(from);
|
||||
return;
|
||||
}
|
||||
|
||||
Container pack = from.Backpack;
|
||||
bool hasGem = false;
|
||||
|
||||
if (pack != null)
|
||||
{
|
||||
Item[] items = pack.FindItemsByType(typeof(ExperimentalGem));
|
||||
|
||||
if (items != null && items.Length > 0)
|
||||
{
|
||||
hasGem = true;
|
||||
|
||||
foreach (Item item in items)
|
||||
{
|
||||
ExperimentalGem gem = (ExperimentalGem)item;
|
||||
|
||||
if (gem.Active && (gem.CurrentRoom > m_Room || m_Room == Room.RoomZero))
|
||||
{
|
||||
base.Use(from);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage(1113410); // You must have an active Experimental Gem to enter that room.
|
||||
}
|
||||
|
||||
if(hasGem)
|
||||
from.SendLocalizedMessage(1113411); // You have not yet earned access to that room!
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer) {
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0); // ver
|
||||
writer.Write((int)m_Room);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader) {
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
m_Room = (Room)reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace Server.Items {
|
||||
|
||||
public class ExperimentalRoomBlocker : Item
|
||||
{
|
||||
private Room m_Room;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Room Room {
|
||||
get { return m_Room; }
|
||||
set { m_Room = value; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public ExperimentalRoomBlocker( Room room ) : base(7107)
|
||||
{
|
||||
m_Room = room;
|
||||
|
||||
Visible = false;
|
||||
Movable = false;
|
||||
}
|
||||
|
||||
public ExperimentalRoomBlocker( Serial serial ) : base(serial) {
|
||||
|
||||
}
|
||||
|
||||
public override bool OnMoveOver(Mobile from)
|
||||
{
|
||||
if(from.AccessLevel > AccessLevel.Player)
|
||||
return true;
|
||||
|
||||
Container pack = from.Backpack;
|
||||
|
||||
if(pack != null)
|
||||
{
|
||||
Item[] items = pack.FindItemsByType(typeof(ExperimentalGem));
|
||||
|
||||
if(items != null)
|
||||
{
|
||||
foreach(Item item in items)
|
||||
{
|
||||
ExperimentalGem gem = (ExperimentalGem)item;
|
||||
|
||||
if(gem.Active && (gem.CurrentRoom > m_Room || m_Room == Room.RoomZero))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Message?
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer) {
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0); // ver
|
||||
writer.Write((int)m_Room);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader) {
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
m_Room = (Room)reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user