Formats UO Content (#201)

This commit is contained in:
Kamron Batman 2020-08-27 18:30:38 -07:00 • committed by GitHub
parent 86b7b3aed1
commit ad3775c4d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3249 changed files with 431083 additions and 440981 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,205 +1,205 @@
using System;
using Server.Mobiles;
using Server.Network;
using Server.Spells;
namespace Server.Engines.Doom
{
public class LampRoomBox : Item
{
private LeverPuzzleController m_Controller;
private Mobile m_Wanderer;
public LampRoomBox(LeverPuzzleController controller) : base(0xe80)
{
m_Controller = controller;
ItemID = 0xe80;
Movable = false;
}
public LampRoomBox(Serial serial) : base(serial)
{
}
public override void OnDoubleClick(Mobile m)
{
if (!m.InRange(GetWorldLocation(), 3))
return;
if (m_Controller.Enabled)
return;
if (m_Wanderer?.Alive != true)
{
m_Wanderer = new WandererOfTheVoid();
m_Wanderer.MoveToWorld(LeverPuzzleController.lr_Enter, Map.Malas);
m_Wanderer.PublicOverheadMessage(MessageType.Regular, 0x3B2, 1060002); // I am the guardian of...
Timer.DelayCall(TimeSpan.FromSeconds(5.0), CallBackMessage);
}
}
public void CallBackMessage()
{
PublicOverheadMessage(MessageType.Regular, 0x3B2, 1060003, ""); // You try to pry the box open...
}
public override void OnAfterDelete()
{
if (m_Controller?.Deleted == false)
m_Controller.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Controller);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_Controller = reader.ReadItem() as LeverPuzzleController;
}
}
public class LeverPuzzleStatue : Item
{
private LeverPuzzleController m_Controller;
public LeverPuzzleStatue(int[] dat, LeverPuzzleController controller) : base(dat[0])
{
m_Controller = controller;
Hue = 0x44E;
Movable = false;
}
public LeverPuzzleStatue(Serial serial) : base(serial)
{
}
public override void OnAfterDelete()
{
if (m_Controller?.Deleted == false)
m_Controller.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Controller);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_Controller = reader.ReadItem() as LeverPuzzleController;
}
}
public class LeverPuzzleLever : Item
{
private LeverPuzzleController m_Controller;
public LeverPuzzleLever(ushort code, LeverPuzzleController controller) : base(0x108E)
{
m_Controller = controller;
Code = code;
Hue = 0x66D;
Movable = false;
}
public LeverPuzzleLever(Serial serial) : base(serial)
{
}
[CommandProperty(AccessLevel.GameMaster)]
public ushort Code { get; private set; }
public override void OnDoubleClick(Mobile m)
{
if (m != null && m_Controller.Enabled)
{
ItemID ^= 2;
Effects.PlaySound(Location, Map, 0x3E8);
m_Controller.LeverPulled(Code);
}
else
{
m?.SendLocalizedMessage(1060001); // You throw the switch, but the mechanism cannot be engaged again so soon.
}
}
public override void OnAfterDelete()
{
if (m_Controller?.Deleted == false)
m_Controller.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(Code);
writer.Write(m_Controller);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
Code = reader.ReadUShort();
m_Controller = reader.ReadItem() as LeverPuzzleController;
}
}
[TypeAlias("Server.Engines.Doom.LampRoomTelePorter")]
public class LampRoomTeleporter : Item
{
public LampRoomTeleporter(int[] dat)
{
Hue = dat[1];
ItemID = dat[0];
Movable = false;
}
public LampRoomTeleporter(Serial serial) : base(serial)
{
}
public override bool HandlesOnMovement => true;
public override bool OnMoveOver(Mobile m)
{
if (m is PlayerMobile)
{
if (SpellHelper.CheckCombat(m))
{
m.SendLocalizedMessage(1005564, "", 0x22); // Wouldst thou flee during the heat of battle??
}
else
{
BaseCreature.TeleportPets(m, LeverPuzzleController.lr_Exit, Map.Malas);
m.MoveToWorld(LeverPuzzleController.lr_Exit, Map.Malas);
return false;
}
}
return true;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
using System;
using Server.Mobiles;
using Server.Network;
using Server.Spells;
namespace Server.Engines.Doom
{
public class LampRoomBox : Item
{
private LeverPuzzleController m_Controller;
private Mobile m_Wanderer;
public LampRoomBox(LeverPuzzleController controller) : base(0xe80)
{
m_Controller = controller;
ItemID = 0xe80;
Movable = false;
}
public LampRoomBox(Serial serial) : base(serial)
{
}
public override void OnDoubleClick(Mobile m)
{
if (!m.InRange(GetWorldLocation(), 3))
return;
if (m_Controller.Enabled)
return;
if (m_Wanderer?.Alive != true)
{
m_Wanderer = new WandererOfTheVoid();
m_Wanderer.MoveToWorld(LeverPuzzleController.lr_Enter, Map.Malas);
m_Wanderer.PublicOverheadMessage(MessageType.Regular, 0x3B2, 1060002); // I am the guardian of...
Timer.DelayCall(TimeSpan.FromSeconds(5.0), CallBackMessage);
}
}
public void CallBackMessage()
{
PublicOverheadMessage(MessageType.Regular, 0x3B2, 1060003, ""); // You try to pry the box open...
}
public override void OnAfterDelete()
{
if (m_Controller?.Deleted == false)
m_Controller.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Controller);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Controller = reader.ReadItem() as LeverPuzzleController;
}
}
public class LeverPuzzleStatue : Item
{
private LeverPuzzleController m_Controller;
public LeverPuzzleStatue(int[] dat, LeverPuzzleController controller) : base(dat[0])
{
m_Controller = controller;
Hue = 0x44E;
Movable = false;
}
public LeverPuzzleStatue(Serial serial) : base(serial)
{
}
public override void OnAfterDelete()
{
if (m_Controller?.Deleted == false)
m_Controller.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Controller);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Controller = reader.ReadItem() as LeverPuzzleController;
}
}
public class LeverPuzzleLever : Item
{
private LeverPuzzleController m_Controller;
public LeverPuzzleLever(ushort code, LeverPuzzleController controller) : base(0x108E)
{
m_Controller = controller;
Code = code;
Hue = 0x66D;
Movable = false;
}
public LeverPuzzleLever(Serial serial) : base(serial)
{
}
[CommandProperty(AccessLevel.GameMaster)]
public ushort Code { get; private set; }
public override void OnDoubleClick(Mobile m)
{
if (m != null && m_Controller.Enabled)
{
ItemID ^= 2;
Effects.PlaySound(Location, Map, 0x3E8);
m_Controller.LeverPulled(Code);
}
else
{
m?.SendLocalizedMessage(1060001); // You throw the switch, but the mechanism cannot be engaged again so soon.
}
}
public override void OnAfterDelete()
{
if (m_Controller?.Deleted == false)
m_Controller.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(Code);
writer.Write(m_Controller);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
Code = reader.ReadUShort();
m_Controller = reader.ReadItem() as LeverPuzzleController;
}
}
[TypeAlias("Server.Engines.Doom.LampRoomTelePorter")]
public class LampRoomTeleporter : Item
{
public LampRoomTeleporter(int[] dat)
{
Hue = dat[1];
ItemID = dat[0];
Movable = false;
}
public LampRoomTeleporter(Serial serial) : base(serial)
{
}
public override bool HandlesOnMovement => true;
public override bool OnMoveOver(Mobile m)
{
if (m is PlayerMobile)
{
if (SpellHelper.CheckCombat(m))
{
m.SendLocalizedMessage(1005564, "", 0x22); // Wouldst thou flee during the heat of battle??
}
else
{
BaseCreature.TeleportPets(m, LeverPuzzleController.lr_Exit, Map.Malas);
m.MoveToWorld(LeverPuzzleController.lr_Exit, Map.Malas);
return false;
}
}
return true;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,99 +1,100 @@
using Server.Mobiles;
using Server.Regions;
namespace Server.Engines.Doom
{
public class LampRoomRegion : BaseRegion
{
private readonly LeverPuzzleController m_Controller;
public LampRoomRegion(LeverPuzzleController controller)
: base(null, Map.Malas, Find(LeverPuzzleController.lr_Enter, Map.Malas), LeverPuzzleController.lr_Rect)
{
m_Controller = controller;
Register();
}
public static void Initialize()
{
EventSink.Login += OnLogin;
}
public static void OnLogin(Mobile m)
{
Rectangle2D rect = LeverPuzzleController.lr_Rect;
if (m.X >= rect.X && m.X <= rect.X + 10 && m.Y >= rect.Y && m.Y <= rect.Y + 10 && m.Map == Map.Internal)
{
Timer kick = new LeverPuzzleController.LampRoomKickTimer(m);
kick.Start();
}
}
public override void OnEnter(Mobile m)
{
if (m == null || m is WandererOfTheVoid)
return;
if (m.AccessLevel > AccessLevel.Player)
return;
if (m_Controller.Successful != null)
{
if (m is PlayerMobile)
{
if (m == m_Controller.Successful) return;
}
else if (m is BaseCreature bc && ((bc.Controlled && bc.ControlMaster == m_Controller.Successful) ||
bc.Summoned))
{
return;
}
}
Timer kick = new LeverPuzzleController.LampRoomKickTimer(m);
kick.Start();
}
public override void OnExit(Mobile m)
{
if (m != null && m == m_Controller.Successful)
m_Controller.RemoveSuccessful();
}
public override void OnDeath(Mobile m)
{
if (m?.Deleted != false || m is WandererOfTheVoid)
return;
Timer kick = new LeverPuzzleController.LampRoomKickTimer(m);
kick.Start();
}
public override bool OnSkillUse(Mobile m, int Skill) /* just in case */ => m_Controller.Successful != null && (m.AccessLevel != AccessLevel.Player || m == m_Controller.Successful);
}
public class LeverPuzzleRegion : BaseRegion
{
public Mobile m_Occupant;
public LeverPuzzleRegion(LeverPuzzleController controller, int[] loc)
: base(null, Map.Malas, Find(LeverPuzzleController.lr_Enter, Map.Malas), new Rectangle2D(loc[0], loc[1], 1, 1))
{
Register();
}
[CommandProperty(AccessLevel.GameMaster)]
public Mobile Occupant => m_Occupant?.Alive == true ? m_Occupant : null;
public override void OnEnter(Mobile m)
{
if (m != null && m_Occupant == null && m is PlayerMobile && m.Alive)
m_Occupant = m;
}
public override void OnExit(Mobile m)
{
if (m != null && m == m_Occupant)
m_Occupant = null;
}
}
}
using Server.Mobiles;
using Server.Regions;
namespace Server.Engines.Doom
{
public class LampRoomRegion : BaseRegion
{
private readonly LeverPuzzleController m_Controller;
public LampRoomRegion(LeverPuzzleController controller)
: base(null, Map.Malas, Find(LeverPuzzleController.lr_Enter, Map.Malas), LeverPuzzleController.lr_Rect)
{
m_Controller = controller;
Register();
}
public static void Initialize()
{
EventSink.Login += OnLogin;
}
public static void OnLogin(Mobile m)
{
var rect = LeverPuzzleController.lr_Rect;
if (m.X >= rect.X && m.X <= rect.X + 10 && m.Y >= rect.Y && m.Y <= rect.Y + 10 && m.Map == Map.Internal)
{
Timer kick = new LeverPuzzleController.LampRoomKickTimer(m);
kick.Start();
}
}
public override void OnEnter(Mobile m)
{
if (m == null || m is WandererOfTheVoid)
return;
if (m.AccessLevel > AccessLevel.Player)
return;
if (m_Controller.Successful != null)
{
if (m is PlayerMobile)
{
if (m == m_Controller.Successful) return;
}
else if (m is BaseCreature bc && (bc.Controlled && bc.ControlMaster == m_Controller.Successful ||
bc.Summoned))
{
return;
}
}
Timer kick = new LeverPuzzleController.LampRoomKickTimer(m);
kick.Start();
}
public override void OnExit(Mobile m)
{
if (m != null && m == m_Controller.Successful)
m_Controller.RemoveSuccessful();
}
public override void OnDeath(Mobile m)
{
if (m?.Deleted != false || m is WandererOfTheVoid)
return;
Timer kick = new LeverPuzzleController.LampRoomKickTimer(m);
kick.Start();
}
public override bool OnSkillUse(Mobile m, int Skill) /* just in case */ => m_Controller.Successful != null &&
(m.AccessLevel != AccessLevel.Player || m == m_Controller.Successful);
}
public class LeverPuzzleRegion : BaseRegion
{
public Mobile m_Occupant;
public LeverPuzzleRegion(LeverPuzzleController controller, int[] loc)
: base(null, Map.Malas, Find(LeverPuzzleController.lr_Enter, Map.Malas), new Rectangle2D(loc[0], loc[1], 1, 1))
{
Register();
}
[CommandProperty(AccessLevel.GameMaster)]
public Mobile Occupant => m_Occupant?.Alive == true ? m_Occupant : null;
public override void OnEnter(Mobile m)
{
if (m != null && m_Occupant == null && m is PlayerMobile && m.Alive)
m_Occupant = m;
}
public override void OnExit(Mobile m)
{
if (m != null && m == m_Occupant)
m_Occupant = null;
}
}
}