fix: Codegens potions and fixes a few minor bugs (#1347)
This commit is contained in:
parent
42bcf3c95a
commit
8c4aaeeda6
76 changed files with 1644 additions and 2095 deletions
|
|
@ -1,33 +1,16 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class AgilityPotion : BaseAgilityPotion
|
||||
{
|
||||
public class AgilityPotion : BaseAgilityPotion
|
||||
[Constructible]
|
||||
public AgilityPotion() : base(PotionEffect.Agility)
|
||||
{
|
||||
[Constructible]
|
||||
public AgilityPotion() : base(PotionEffect.Agility)
|
||||
{
|
||||
}
|
||||
|
||||
public AgilityPotion(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DexOffset => 10;
|
||||
public override TimeSpan Duration => TimeSpan.FromMinutes(2.0);
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
public override int DexOffset => 10;
|
||||
public override TimeSpan Duration => TimeSpan.FromMinutes(2.0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,60 +1,43 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
using Server.Engines.ConPVP;
|
||||
using Server.Spells;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public abstract partial class BaseAgilityPotion : BasePotion
|
||||
{
|
||||
public abstract class BaseAgilityPotion : BasePotion
|
||||
public BaseAgilityPotion(PotionEffect effect) : base(0xF08, effect)
|
||||
{
|
||||
public BaseAgilityPotion(PotionEffect effect) : base(0xF08, effect)
|
||||
}
|
||||
|
||||
public abstract int DexOffset { get; }
|
||||
public abstract TimeSpan Duration { get; }
|
||||
|
||||
public bool DoAgility(Mobile from)
|
||||
{
|
||||
// TODO: Verify scaled; is it offset, duration, or both?
|
||||
if (SpellHelper.AddStatOffset(from, StatType.Dex, Scale(from, DexOffset), Duration))
|
||||
{
|
||||
from.FixedEffect(0x375A, 10, 15);
|
||||
from.PlaySound(0x1E7);
|
||||
return true;
|
||||
}
|
||||
|
||||
public BaseAgilityPotion(Serial serial) : base(serial)
|
||||
from.SendLocalizedMessage(502173); // You are already under a similar effect.
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void Drink(Mobile from)
|
||||
{
|
||||
if (DoAgility(from))
|
||||
{
|
||||
}
|
||||
PlayDrinkEffect(from);
|
||||
|
||||
public abstract int DexOffset { get; }
|
||||
public abstract TimeSpan Duration { get; }
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
public bool DoAgility(Mobile from)
|
||||
{
|
||||
// TODO: Verify scaled; is it offset, duration, or both?
|
||||
if (SpellHelper.AddStatOffset(from, StatType.Dex, Scale(from, DexOffset), Duration))
|
||||
if (!DuelContext.IsFreeConsume(from))
|
||||
{
|
||||
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 (DoAgility(from))
|
||||
{
|
||||
PlayDrinkEffect(from);
|
||||
|
||||
if (!DuelContext.IsFreeConsume(from))
|
||||
{
|
||||
Consume();
|
||||
}
|
||||
Consume();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,33 +1,16 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class GreaterAgilityPotion : BaseAgilityPotion
|
||||
{
|
||||
public class GreaterAgilityPotion : BaseAgilityPotion
|
||||
[Constructible]
|
||||
public GreaterAgilityPotion() : base(PotionEffect.AgilityGreater)
|
||||
{
|
||||
[Constructible]
|
||||
public GreaterAgilityPotion() : base(PotionEffect.AgilityGreater)
|
||||
{
|
||||
}
|
||||
|
||||
public GreaterAgilityPotion(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DexOffset => 20;
|
||||
public override TimeSpan Duration => TimeSpan.FromMinutes(2.0);
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
public override int DexOffset => 20;
|
||||
public override TimeSpan Duration => TimeSpan.FromMinutes(2.0);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue