ModernUO/Projects/Scripts/Items/Special/Evil Home Decor Collection/BoneCouch.cs
2019-08-02 18:16:11 -07:00

117 lines
No EOL
2.8 KiB
C#

namespace Server.Items
{
public class BoneCouchComponent : AddonComponent
{
public BoneCouchComponent(int itemID) : base(itemID)
{
}
public BoneCouchComponent(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074477; // Bone couch
public override bool OnMoveOver(Mobile m)
{
bool allow = base.OnMoveOver(m);
if (allow && m.Alive && m.Player && (m.AccessLevel == AccessLevel.Player || !m.Hidden))
Effects.PlaySound(Location, Map, Utility.RandomMinMax(0x547, 0x54A));
return allow;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
[FlippableAddon(Direction.South, Direction.East)]
public class BoneCouchAddon : BaseAddon
{
[Constructible]
public BoneCouchAddon()
{
Direction = Direction.South;
AddComponent(new BoneCouchComponent(0x2A5A), 0, 0, 0);
AddComponent(new BoneCouchComponent(0x2A5B), -1, 0, 0);
}
public BoneCouchAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new BoneCouchDeed();
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
public virtual void Flip(Mobile from, Direction direction)
{
switch (direction)
{
case Direction.East:
AddComponent(new BoneCouchComponent(0x2A80), 0, 0, 0);
AddComponent(new BoneCouchComponent(0x2A7F), 0, 1, 0);
break;
case Direction.South:
AddComponent(new BoneCouchComponent(0x2A5A), 0, 0, 0);
AddComponent(new BoneCouchComponent(0x2A5B), -1, 0, 0);
break;
}
}
}
public class BoneCouchDeed : BaseAddonDeed
{
[Constructible]
public BoneCouchDeed()
{
LootType = LootType.Blessed;
}
public BoneCouchDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new BoneCouchAddon();
public override int LabelNumber => 1074477; // Bone couch
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}