Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,108 @@
using System;
using Server.Mobiles;
using Server.Engines.Craft;
namespace Server.Items
{
[FlipableAttribute(0x9DB1, 0x9DB2)]
public class KotlAutomatonHead : Item, ICraftable
{
private bool _Activated;
private CraftResource _Resource;
[CommandProperty(AccessLevel.GameMaster)]
public CraftResource Resource { get { return _Resource; } set { _Resource = value; Hue = CraftResources.GetHue(this._Resource); InvalidateProperties(); } }
[Constructable]
public KotlAutomatonHead()
: base(0x9DB1)
{
LootType = LootType.Blessed;
Resource = CraftResource.Iron;
}
public override void AddNameProperty(ObjectPropertyList list)
{
list.Add(1157022, String.Format("#{0}", CraftResources.GetLocalizationNumber(_Resource))); // Rebuilt ~1_MATTYPE~ Automaton Head
}
public override void OnDoubleClick(Mobile from)
{
int skill = (int)from.Skills[SkillName.Tinkering].Base;
if (skill < 100.0)
{
from.SendLocalizedMessage(1157006); // You must be a Grandmaster Tinker to activate an Automaton.
}
else if (_Activated)
{
from.SendLocalizedMessage(1157007); // The Automaton is already being activated.
}
else
{
_Activated = true;
Timer.DelayCall(TimeSpan.FromSeconds(3), () =>
{
_Activated = false;
KotlAutomaton automaton = GetAutomaton(from);
if (automaton.SetControlMaster(from))
{
automaton.IsBonded = true;
Delete();
automaton.MoveToWorld(from.Location, from.Map);
from.PlaySound(0x23B);
}
else
{
automaton.Delete();
}
});
}
}
public virtual KotlAutomaton GetAutomaton(Mobile master)
{
KotlAutomaton automaton = new KotlAutomaton();
automaton.Resource = _Resource;
return automaton;
}
#region ICraftable Members
public int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, ITool tool, CraftItem craftItem, int resHue)
{
if (typeRes == null)
typeRes = craftItem.Resources.GetAt(0).ItemType;
Resource = CraftResources.GetFromType(typeRes);
return quality;
}
#endregion
public KotlAutomatonHead(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}