ModernUO/Projects/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/BaseStrengthPotion.cs
2019-08-02 18:16:11 -07:00

59 lines
No EOL
1.3 KiB
C#

using System;
using Server.Engines.ConPVP;
using Server.Spells;
namespace Server.Items
{
public abstract class BaseStrengthPotion : BasePotion
{
public BaseStrengthPotion(PotionEffect effect) : base(0xF09, effect)
{
}
public BaseStrengthPotion(Serial serial) : base(serial)
{
}
public abstract int StrOffset{ get; }
public abstract TimeSpan Duration{ get; }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
public bool DoStrength(Mobile from)
{
// TODO: Verify scaled; is it offset, duration, or both?
if (SpellHelper.AddStatOffset(from, StatType.Str, Scale(from, StrOffset), Duration))
{
from.FixedEffect(0x375A, 10, 15);
from.PlaySound(0x1E7);
return true;
}
from.SendLocalizedMessage(502173); // You are already under a similar effect.
return false;
}
public override void Drink(Mobile from)
{
if (DoStrength(from))
{
PlayDrinkEffect(from);
if (!DuelContext.IsFreeConsume(from))
Consume();
}
}
}
}