ModernUO/Projects/UOContent/Items/Special/Evil Home Decor Collection/BoneCouch.cs
2023-03-06 19:28:58 -08:00

70 lines
1.9 KiB
C#

using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class BoneCouchComponent : AddonComponent
{
public BoneCouchComponent(int itemID) : base(itemID)
{
}
public override int LabelNumber => 1074477; // Bone couch
public override bool OnMoveOver(Mobile m)
{
var 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;
}
}
[FlippableAddon(Direction.South, Direction.East)]
[SerializationGenerator(0)]
public partial class BoneCouchAddon : BaseAddon
{
[Constructible]
public BoneCouchAddon()
{
Direction = Direction.South;
AddComponent(new BoneCouchComponent(0x2A5A), 0, 0, 0);
AddComponent(new BoneCouchComponent(0x2A5B), -1, 0, 0);
}
public override BaseAddonDeed Deed => new BoneCouchDeed();
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;
}
}
}
}
[SerializationGenerator(0)]
public partial class BoneCouchDeed : BaseAddonDeed
{
[Constructible]
public BoneCouchDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new BoneCouchAddon();
public override int LabelNumber => 1074477; // Bone couch
}