fix: Updates disguises and codegens tinkering items (#1353)

This commit is contained in:
Kamron Batman 2023-02-25 12:01:06 -08:00 • committed by GitHub
parent f2fdc0321c
commit d14e864c85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
56 changed files with 1012 additions and 1454 deletions

View file

@ -1,4 +1,5 @@
using System;
using ModernUO.Serialization;
using Server.Targeting;
namespace Server.Items;
@ -18,7 +19,8 @@ public interface ILockpickable : IPoint2D
}
[Flippable(0x14fc, 0x14fb)]
public class Lockpick : Item
[SerializationGenerator(0, false)]
public partial class Lockpick : Item
{
[Constructible]
public Lockpick(int amount = 1) : base(0x14FC)
@ -27,29 +29,6 @@ public class Lockpick : Item
Amount = amount;
}
public Lockpick(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (version == 0 && Weight == 0.1)
{
Weight = -1;
}
}
public override void OnDoubleClick(Mobile from)
{
from.SendLocalizedMessage(502068); // What do you want to pick?
@ -96,15 +75,15 @@ public class Lockpick : Item
private class InternalTimer : Timer
{
private readonly Mobile m_From;
private readonly ILockpickable m_Item;
private readonly Lockpick m_Lockpick;
private readonly Mobile _from;
private readonly ILockpickable _item;
private readonly Lockpick _lockpick;
public InternalTimer(Mobile from, ILockpickable item, Lockpick lockpick) : base(TimeSpan.FromSeconds(3.0))
{
m_From = from;
m_Item = item;
m_Lockpick = lockpick;
_from = from;
_item = item;
_lockpick = lockpick;
}
protected void BrokeLockPickTest()
@ -112,56 +91,52 @@ public class Lockpick : Item
// When failed, a 25% chance to break the lockpick
if (Utility.Random(4) == 0)
{
var item = (Item)m_Item;
var item = (Item)_item;
// You broke the lockpick.
item.SendLocalizedMessageTo(m_From, 502074);
item.SendLocalizedMessageTo(_from, 502074);
m_From.PlaySound(0x3A4);
m_Lockpick.Consume();
_from.PlaySound(0x3A4);
_lockpick.Consume();
}
}
protected override void OnTick()
{
var item = (Item)m_Item;
var item = (Item)_item;
if (!m_From.InRange(item.GetWorldLocation(), 1))
if (!_from.InRange(item.GetWorldLocation(), 1))
{
return;
}
if (m_Item.LockLevel is ILockpickable.CannotPick or ILockpickable.MagicLock)
if (_item.LockLevel is ILockpickable.CannotPick or ILockpickable.MagicLock)
{
// LockLevel of 0 means that the door can't be picklocked
// LockLevel of -255 means it's magic locked
item.SendLocalizedMessageTo(m_From, 502073); // This lock cannot be picked by normal means
item.SendLocalizedMessageTo(_from, 502073); // This lock cannot be picked by normal means
return;
}
if (m_From.Skills.Lockpicking.Value < m_Item.RequiredSkill)
if (_from.Skills.Lockpicking.Value < _item.RequiredSkill)
{
/*
// Do some training to gain skills
m_From.CheckSkill( SkillName.Lockpicking, 0, m_Item.LockLevel );*/
// The LockLevel is higher thant the LockPicking of the player
item.SendLocalizedMessageTo(m_From, 502072); // You don't see how that lock can be manipulated.
item.SendLocalizedMessageTo(_from, 502072); // You don't see how that lock can be manipulated.
return;
}
if (m_From.CheckTargetSkill(SkillName.Lockpicking, m_Item, m_Item.LockLevel, m_Item.MaxLockLevel))
if (_from.CheckTargetSkill(SkillName.Lockpicking, _item, _item.LockLevel, _item.MaxLockLevel))
{
// Success! Pick the lock!
item.SendLocalizedMessageTo(m_From, 502076); // The lock quickly yields to your skill.
m_From.PlaySound(0x4A);
m_Item.LockPick(m_From);
item.SendLocalizedMessageTo(_from, 502076); // The lock quickly yields to your skill.
_from.PlaySound(0x4A);
_item.LockPick(_from);
}
else
{
// The player failed to pick the lock
BrokeLockPickTest();
item.SendLocalizedMessageTo(m_From, 502075); // You are unable to pick the lock.
item.SendLocalizedMessageTo(_from, 502075); // You are unable to pick the lock.
}
}
}