ModernUO/Projects/UOContent/Items/Misc/TribalPaint.cs

74 lines
2.3 KiB
C#

using System;
using ModernUO.Serialization;
using Server.Factions;
using Server.Mobiles;
using Server.Spells;
using Server.Spells.Fifth;
using Server.Spells.Ninjitsu;
using Server.Spells.Seventh;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class TribalPaint : Item
{
[Constructible]
public TribalPaint() : base(0x9EC)
{
Hue = 2101;
Stackable = Core.ML;
}
public override double DefaultWeight => 2.0;
public override int LabelNumber => 1040000; // savage kin paint
public override void OnDoubleClick(Mobile from)
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
return;
}
if (Sigil.ExistsOn(from))
{
from.SendLocalizedMessage(1010465); // You cannot disguise yourself while holding a sigil.
}
else if (!from.CanBeginAction<IncognitoSpell>())
{
from.SendLocalizedMessage(501698); // You cannot disguise yourself while incognitoed.
}
else if (!from.CanBeginAction<PolymorphSpell>())
{
from.SendLocalizedMessage(501699); // You cannot disguise yourself while polymorphed.
}
else if (TransformationSpellHelper.UnderTransformation(from))
{
from.SendLocalizedMessage(501699); // You cannot disguise yourself while polymorphed.
}
else if (AnimalForm.UnderTransformation(from))
{
from.SendLocalizedMessage(1061634); // You cannot disguise yourself while in that form.
}
else if (from.IsBodyMod || from.FindItemOnLayer(Layer.Helm) is OrcishKinMask)
{
from.SendLocalizedMessage(501605); // You are already disguised.
}
else
{
from.BodyMod = from.Female ? 184 : 183;
from.HueMod = 0;
if (from is PlayerMobile mobile)
{
mobile.SavagePaintExpiration = TimeSpan.FromDays(7.0);
}
// You now bear the markings of the savage tribe. Your body paint will last about a week or you can remove it with an oil cloth.
from.SendLocalizedMessage(1042537);
Consume();
}
}
}