fix: Adds OSI candle/torch functionality, codegens lights (#1075)
This commit is contained in:
parent
9c8f73aaf8
commit
41efa69b56
53 changed files with 865 additions and 1219 deletions
|
|
@ -5301,12 +5301,12 @@ namespace Server
|
|||
}
|
||||
}
|
||||
|
||||
public static Item LiftItemDupe(Item oldItem, int amount)
|
||||
public static T LiftItemDupe<T>(T oldItem, int amount) where T : Item
|
||||
{
|
||||
Item item;
|
||||
T item;
|
||||
try
|
||||
{
|
||||
item = oldItem.GetType().CreateInstance<Item>();
|
||||
item = oldItem.GetType().CreateInstance<T>();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
|
@ -5318,6 +5318,9 @@ namespace Server
|
|||
return null;
|
||||
}
|
||||
|
||||
var oldAmount = oldItem.Amount;
|
||||
oldItem.Amount = amount;
|
||||
|
||||
item.Visible = oldItem.Visible;
|
||||
item.Movable = oldItem.Movable;
|
||||
item.LootType = oldItem.LootType;
|
||||
|
|
@ -5329,10 +5332,9 @@ namespace Server
|
|||
item.Name = oldItem.Name;
|
||||
item.Weight = oldItem.Weight;
|
||||
|
||||
item.Amount = oldItem.Amount - amount;
|
||||
item.Amount = oldAmount - amount;
|
||||
item.Map = oldItem.Map;
|
||||
|
||||
oldItem.Amount = amount;
|
||||
oldItem.OnAfterDuped(item);
|
||||
|
||||
if (oldItem.Parent is Mobile parentMobile)
|
||||
|
|
|
|||
109
Projects/UOContent/Items/Lights/BaseEquipableLight.cs
Normal file
109
Projects/UOContent/Items/Lights/BaseEquipableLight.cs
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public abstract partial class BaseEquipableLight : BaseLight
|
||||
{
|
||||
[Constructible]
|
||||
public BaseEquipableLight(int itemID) : base(itemID) => Layer = Layer.TwoHanded;
|
||||
|
||||
private BaseEquipableLight SplitStack()
|
||||
{
|
||||
if (!Stackable || Amount < 2)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var stack = Mobile.LiftItemDupe(this, 1);
|
||||
stack.BurntOut = BurntOut;
|
||||
stack.Duration = Duration;
|
||||
stack.Light = Light;
|
||||
stack.Protected = Protected;
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
public override bool OnEquip(Mobile from)
|
||||
{
|
||||
if (!base.OnEquip(from))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var stack = SplitStack();
|
||||
if (stack != null && stack.Parent != from.Backpack)
|
||||
{
|
||||
if (from.AddToBackpack(stack))
|
||||
{
|
||||
if (this is Candle)
|
||||
{
|
||||
from.SendLocalizedMessage(502967); // You put the remaining unlit candles into your backpack.
|
||||
}
|
||||
else if (this is Torch)
|
||||
{
|
||||
from.SendLocalizedMessage(502970); // You put the remaining unlit torches into your backpack.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
stack.MoveToWorld(from.Location, from.Map);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void Ignite()
|
||||
{
|
||||
if (Parent is not Mobile && RootParent is Mobile holder)
|
||||
{
|
||||
if (holder.EquipItem(this))
|
||||
{
|
||||
if (this is Candle)
|
||||
{
|
||||
holder.SendLocalizedMessage(502969); // You put the candle in your left hand.
|
||||
}
|
||||
else if (this is Torch)
|
||||
{
|
||||
holder.SendLocalizedMessage(502972); // You put the torch in your left hand.
|
||||
}
|
||||
|
||||
// No message for lanterns?
|
||||
}
|
||||
else
|
||||
{
|
||||
SplitStack();
|
||||
MoveToWorld(holder.Location, holder.Map);
|
||||
|
||||
if (this is Candle)
|
||||
{
|
||||
holder.SendLocalizedMessage(502968); // You cannot hold the candle, so it has been placed at your feet.
|
||||
}
|
||||
else if (this is Torch)
|
||||
{
|
||||
// 502971 has the wrong message
|
||||
holder.SendMessage("You cannot hold the torch, so it has been placed at your feet.");
|
||||
}
|
||||
|
||||
// No message for lanterns?
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SplitStack();
|
||||
}
|
||||
|
||||
base.Ignite();
|
||||
}
|
||||
|
||||
public override void OnAdded(IEntity parent)
|
||||
{
|
||||
if (Burning && parent is Container)
|
||||
{
|
||||
Douse();
|
||||
}
|
||||
|
||||
base.OnAdded(parent);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseEquipableLight : BaseLight
|
||||
{
|
||||
[Constructible]
|
||||
public BaseEquipableLight(int itemID) : base(itemID) => Layer = Layer.TwoHanded;
|
||||
|
||||
public BaseEquipableLight(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Ignite()
|
||||
{
|
||||
if (Parent is not Mobile && RootParent is Mobile holder)
|
||||
{
|
||||
if (holder.EquipItem(this))
|
||||
{
|
||||
if (this is Candle)
|
||||
{
|
||||
holder.SendLocalizedMessage(502969); // You put the candle in your left hand.
|
||||
}
|
||||
else if (this is Torch)
|
||||
{
|
||||
holder.SendLocalizedMessage(502971); // You put the torch in your left hand.
|
||||
}
|
||||
|
||||
base.Ignite();
|
||||
}
|
||||
else
|
||||
{
|
||||
holder.SendLocalizedMessage(502449); // You cannot hold this item.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Ignite();
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnAdded(IEntity parent)
|
||||
{
|
||||
if (Burning && parent is Container)
|
||||
{
|
||||
Douse();
|
||||
}
|
||||
|
||||
base.OnAdded(parent);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,233 +1,213 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(1, false)]
|
||||
public abstract partial class BaseLight : Item
|
||||
{
|
||||
public abstract class BaseLight : Item
|
||||
public static readonly bool Burnout = false;
|
||||
|
||||
[SerializableField(0)]
|
||||
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
|
||||
private bool _burntOut;
|
||||
|
||||
// Field 1
|
||||
private bool _burning;
|
||||
|
||||
// Field 2
|
||||
private TimeSpan _duration = TimeSpan.Zero;
|
||||
|
||||
[SerializableField(3)]
|
||||
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
|
||||
private bool _protected;
|
||||
|
||||
[TimerDrift]
|
||||
[SerializableField(4, getter: "private", setter: "private")]
|
||||
private Timer _burnTimer;
|
||||
|
||||
[DeserializeTimerField(4)]
|
||||
private void DeserializeTimer(TimeSpan delay)
|
||||
{
|
||||
public static readonly bool Burnout = false;
|
||||
private bool m_Burning;
|
||||
private TimeSpan m_Duration = TimeSpan.Zero;
|
||||
private DateTime m_End;
|
||||
private Timer m_Timer;
|
||||
|
||||
[Constructible]
|
||||
public BaseLight(int itemID) : base(itemID)
|
||||
if (_burning && _duration != TimeSpan.Zero)
|
||||
{
|
||||
DoTimer(delay);
|
||||
}
|
||||
}
|
||||
|
||||
public BaseLight(Serial serial) : base(serial)
|
||||
[Constructible]
|
||||
public BaseLight(int itemID) : base(itemID)
|
||||
{
|
||||
}
|
||||
|
||||
public abstract int LitItemID { get; }
|
||||
|
||||
public virtual int UnlitItemID => 0;
|
||||
public virtual int BurntOutItemID => 0;
|
||||
|
||||
public virtual int LitSound => 0x47;
|
||||
public virtual int UnlitSound => 0x3be;
|
||||
public virtual int BurntOutSound => 0x4b8;
|
||||
|
||||
[SerializableField(1)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool Burning
|
||||
{
|
||||
get => _burning;
|
||||
set
|
||||
{
|
||||
}
|
||||
|
||||
public abstract int LitItemID { get; }
|
||||
|
||||
public virtual int UnlitItemID => 0;
|
||||
public virtual int BurntOutItemID => 0;
|
||||
|
||||
public virtual int LitSound => 0x47;
|
||||
public virtual int UnlitSound => 0x3be;
|
||||
public virtual int BurntOutSound => 0x4b8;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool Burning
|
||||
{
|
||||
get => m_Burning;
|
||||
set
|
||||
if (_burning != value)
|
||||
{
|
||||
if (m_Burning != value)
|
||||
{
|
||||
m_Burning = true;
|
||||
DoTimer(m_Duration);
|
||||
}
|
||||
_burning = true;
|
||||
DoTimer(_duration);
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool BurntOut { get; set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool Protected { get; set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public TimeSpan Duration
|
||||
[SerializableField(2)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public TimeSpan Duration
|
||||
{
|
||||
get => _duration != TimeSpan.Zero && _burning && _burnTimer != null ? _burnTimer.Next - Core.Now : _duration;
|
||||
set
|
||||
{
|
||||
get => m_Duration != TimeSpan.Zero && m_Burning ? m_End - Core.Now : m_Duration;
|
||||
set => m_Duration = value;
|
||||
_duration = value;
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void PlayLitSound()
|
||||
{
|
||||
if (LitSound != 0)
|
||||
{
|
||||
var loc = GetWorldLocation();
|
||||
Effects.PlaySound(loc, Map, LitSound);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void PlayUnlitSound()
|
||||
{
|
||||
var sound = UnlitSound;
|
||||
|
||||
if (BurntOut && BurntOutSound != 0)
|
||||
{
|
||||
sound = BurntOutSound;
|
||||
}
|
||||
|
||||
public virtual void PlayLitSound()
|
||||
if (sound != 0)
|
||||
{
|
||||
if (LitSound != 0)
|
||||
{
|
||||
var loc = GetWorldLocation();
|
||||
Effects.PlaySound(loc, Map, LitSound);
|
||||
}
|
||||
var loc = GetWorldLocation();
|
||||
Effects.PlaySound(loc, Map, sound);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Ignite()
|
||||
{
|
||||
if (!BurntOut)
|
||||
{
|
||||
PlayLitSound();
|
||||
|
||||
_burning = true;
|
||||
ItemID = LitItemID;
|
||||
DoTimer(_duration);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Douse()
|
||||
{
|
||||
_burning = false;
|
||||
|
||||
ItemID = BurntOut && BurntOutItemID != 0 ? BurntOutItemID : UnlitItemID;
|
||||
|
||||
if (BurntOut)
|
||||
{
|
||||
_duration = TimeSpan.Zero;
|
||||
}
|
||||
else if (_duration != TimeSpan.Zero)
|
||||
{
|
||||
_duration = _burnTimer.Next - Core.Now;
|
||||
}
|
||||
|
||||
public virtual void PlayUnlitSound()
|
||||
_burnTimer?.Stop();
|
||||
this.MarkDirty();
|
||||
|
||||
PlayUnlitSound();
|
||||
}
|
||||
|
||||
public virtual void Burn()
|
||||
{
|
||||
BurntOut = true;
|
||||
Douse();
|
||||
}
|
||||
|
||||
private void DoTimer(TimeSpan delay)
|
||||
{
|
||||
_duration = delay;
|
||||
_burnTimer?.Stop();
|
||||
this.MarkDirty();
|
||||
|
||||
if (delay == TimeSpan.Zero)
|
||||
{
|
||||
var sound = UnlitSound;
|
||||
|
||||
if (BurntOut && BurntOutSound != 0)
|
||||
{
|
||||
sound = BurntOutSound;
|
||||
}
|
||||
|
||||
if (sound != 0)
|
||||
{
|
||||
var loc = GetWorldLocation();
|
||||
Effects.PlaySound(loc, Map, sound);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void Ignite()
|
||||
{
|
||||
if (!BurntOut)
|
||||
{
|
||||
PlayLitSound();
|
||||
_burnTimer = new InternalTimer(this, delay);
|
||||
_burnTimer.Start();
|
||||
this.MarkDirty();
|
||||
}
|
||||
|
||||
m_Burning = true;
|
||||
ItemID = LitItemID;
|
||||
DoTimer(m_Duration);
|
||||
}
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (_burntOut)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void Douse()
|
||||
if (_protected && from.AccessLevel == AccessLevel.Player)
|
||||
{
|
||||
m_Burning = false;
|
||||
|
||||
if (BurntOut && BurntOutItemID != 0)
|
||||
{
|
||||
ItemID = BurntOutItemID;
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemID = UnlitItemID;
|
||||
}
|
||||
|
||||
if (BurntOut)
|
||||
{
|
||||
m_Duration = TimeSpan.Zero;
|
||||
}
|
||||
else if (m_Duration != TimeSpan.Zero)
|
||||
{
|
||||
m_Duration = m_End - Core.Now;
|
||||
}
|
||||
|
||||
m_Timer?.Stop();
|
||||
|
||||
PlayUnlitSound();
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void Burn()
|
||||
if (!from.InRange(GetWorldLocation(), 2))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_burning)
|
||||
{
|
||||
Ignite();
|
||||
}
|
||||
else if (UnlitItemID != 0)
|
||||
{
|
||||
BurntOut = true;
|
||||
Douse();
|
||||
}
|
||||
}
|
||||
|
||||
private void DoTimer(TimeSpan delay)
|
||||
private void Deserialize(IGenericReader reader, int version)
|
||||
{
|
||||
_burntOut = reader.ReadBool();
|
||||
_burning = reader.ReadBool();
|
||||
_duration = reader.ReadTimeSpan();
|
||||
_protected = reader.ReadBool();
|
||||
|
||||
if (_burning && _duration != TimeSpan.Zero)
|
||||
{
|
||||
m_Duration = delay;
|
||||
|
||||
m_Timer?.Stop();
|
||||
|
||||
if (delay == TimeSpan.Zero)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_End = Core.Now + delay;
|
||||
|
||||
m_Timer = new InternalTimer(this, delay);
|
||||
m_Timer.Start();
|
||||
DoTimer(reader.ReadDeltaTime() - Core.Now);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private readonly BaseLight m_Light;
|
||||
|
||||
public InternalTimer(BaseLight light, TimeSpan delay) : base(delay) => m_Light = light;
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if (BurntOut)
|
||||
if (m_Light?.Deleted == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Protected && from.AccessLevel == AccessLevel.Player)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!from.InRange(GetWorldLocation(), 2))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_Burning)
|
||||
{
|
||||
if (UnlitItemID != 0)
|
||||
{
|
||||
Douse();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Ignite();
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
writer.Write(BurntOut);
|
||||
writer.Write(m_Burning);
|
||||
writer.Write(m_Duration);
|
||||
writer.Write(Protected);
|
||||
|
||||
if (m_Burning && m_Duration != TimeSpan.Zero)
|
||||
{
|
||||
writer.WriteDeltaTime(m_End);
|
||||
}
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
BurntOut = reader.ReadBool();
|
||||
m_Burning = reader.ReadBool();
|
||||
m_Duration = reader.ReadTimeSpan();
|
||||
Protected = reader.ReadBool();
|
||||
|
||||
if (m_Burning && m_Duration != TimeSpan.Zero)
|
||||
{
|
||||
DoTimer(reader.ReadDeltaTime() - Core.Now);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private readonly BaseLight m_Light;
|
||||
|
||||
public InternalTimer(BaseLight light, TimeSpan delay) : base(delay)
|
||||
{
|
||||
m_Light = light;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if (m_Light?.Deleted == false)
|
||||
{
|
||||
m_Light.Burn();
|
||||
}
|
||||
m_Light.Burn();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,35 +1,20 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Brazier : BaseLight
|
||||
{
|
||||
public class Brazier : BaseLight
|
||||
[Constructible]
|
||||
public Brazier() : base(0xE31)
|
||||
{
|
||||
[Constructible]
|
||||
public Brazier() : base(0xE31)
|
||||
{
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = true;
|
||||
Light = LightType.Circle225;
|
||||
Weight = 20.0;
|
||||
}
|
||||
|
||||
public Brazier(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xE31;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = true;
|
||||
Light = LightType.Circle225;
|
||||
Weight = 20.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xE31;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,35 +1,20 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class BrazierTall : BaseLight
|
||||
{
|
||||
public class BrazierTall : BaseLight
|
||||
[Constructible]
|
||||
public BrazierTall() : base(0x19AA)
|
||||
{
|
||||
[Constructible]
|
||||
public BrazierTall() : base(0x19AA)
|
||||
{
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = true;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 25.0;
|
||||
}
|
||||
|
||||
public BrazierTall(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x19AA;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = true;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 25.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x19AA;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,69 +1,44 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Candelabra : BaseLight, IShipwreckedItem
|
||||
{
|
||||
public class Candelabra : BaseLight, IShipwreckedItem
|
||||
[SerializableField(0)]
|
||||
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
|
||||
private bool _isShipwreckedItem;
|
||||
|
||||
[Constructible]
|
||||
public Candelabra() : base(0xA27)
|
||||
{
|
||||
[Constructible]
|
||||
public Candelabra() : base(0xA27)
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle225;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB1D;
|
||||
public override int UnlitItemID => 0xA27;
|
||||
|
||||
public override void AddNameProperties(IPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
|
||||
if (IsShipwreckedItem)
|
||||
{
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle225;
|
||||
Weight = 3.0;
|
||||
list.Add(1041645); // recovered from a shipwreck
|
||||
}
|
||||
}
|
||||
|
||||
public Candelabra(Serial serial) : base(serial)
|
||||
public override void OnSingleClick(Mobile from)
|
||||
{
|
||||
base.OnSingleClick(from);
|
||||
|
||||
if (IsShipwreckedItem)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB1D;
|
||||
public override int UnlitItemID => 0xA27;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool IsShipwreckedItem { get; set; }
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(1);
|
||||
|
||||
writer.Write(IsShipwreckedItem);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
IsShipwreckedItem = reader.ReadBool();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void AddNameProperties(IPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
|
||||
if (IsShipwreckedItem)
|
||||
{
|
||||
list.Add(1041645); // recovered from a shipwreck
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnSingleClick(Mobile from)
|
||||
{
|
||||
base.OnSingleClick(from);
|
||||
|
||||
if (IsShipwreckedItem)
|
||||
{
|
||||
LabelTo(from, 1041645); // recovered from a shipwreck
|
||||
}
|
||||
LabelTo(from, 1041645); // recovered from a shipwreck
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,35 +1,20 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CandelabraStand : BaseLight
|
||||
{
|
||||
public class CandelabraStand : BaseLight
|
||||
[Constructible]
|
||||
public CandelabraStand() : base(0xA29)
|
||||
{
|
||||
[Constructible]
|
||||
public CandelabraStand() : base(0xA29)
|
||||
{
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle225;
|
||||
Weight = 20.0;
|
||||
}
|
||||
|
||||
public CandelabraStand(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB26;
|
||||
public override int UnlitItemID => 0xA29;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle225;
|
||||
Weight = 20.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB26;
|
||||
public override int UnlitItemID => 0xA29;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,16 +7,10 @@ namespace Server.Items
|
|||
[Constructible]
|
||||
public Candle() : base(0xA28)
|
||||
{
|
||||
if (Burnout)
|
||||
{
|
||||
Duration = TimeSpan.FromMinutes(20);
|
||||
}
|
||||
else
|
||||
{
|
||||
Duration = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
Duration = Burnout ? TimeSpan.FromMinutes(20) : TimeSpan.Zero;
|
||||
Burning = false;
|
||||
|
||||
Stackable = true;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,43 +1,21 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CandleLarge : BaseLight
|
||||
{
|
||||
public class CandleLarge : BaseLight
|
||||
[Constructible]
|
||||
public CandleLarge() : base(0xA26)
|
||||
{
|
||||
[Constructible]
|
||||
public CandleLarge() : base(0xA26)
|
||||
{
|
||||
if (Burnout)
|
||||
{
|
||||
Duration = TimeSpan.FromMinutes(25);
|
||||
}
|
||||
else
|
||||
{
|
||||
Duration = TimeSpan.Zero;
|
||||
}
|
||||
Duration = Burnout ? TimeSpan.FromMinutes(25) : TimeSpan.Zero;
|
||||
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 2.0;
|
||||
}
|
||||
|
||||
public CandleLarge(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB1A;
|
||||
public override int UnlitItemID => 0xA26;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 2.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB1A;
|
||||
public override int UnlitItemID => 0xA26;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,43 +1,21 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CandleLong : BaseLight
|
||||
{
|
||||
public class CandleLong : BaseLight
|
||||
[Constructible]
|
||||
public CandleLong() : base(0x1433)
|
||||
{
|
||||
[Constructible]
|
||||
public CandleLong() : base(0x1433)
|
||||
{
|
||||
if (Burnout)
|
||||
{
|
||||
Duration = TimeSpan.FromMinutes(30);
|
||||
}
|
||||
else
|
||||
{
|
||||
Duration = TimeSpan.Zero;
|
||||
}
|
||||
Duration = Burnout ? TimeSpan.FromMinutes(30) : TimeSpan.Zero;
|
||||
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public CandleLong(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x1430;
|
||||
public override int UnlitItemID => 0x1433;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x1430;
|
||||
public override int UnlitItemID => 0x1433;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,43 +1,21 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CandleShort : BaseLight
|
||||
{
|
||||
public class CandleShort : BaseLight
|
||||
[Constructible]
|
||||
public CandleShort() : base(0x142F)
|
||||
{
|
||||
[Constructible]
|
||||
public CandleShort() : base(0x142F)
|
||||
{
|
||||
if (Burnout)
|
||||
{
|
||||
Duration = TimeSpan.FromMinutes(25);
|
||||
}
|
||||
else
|
||||
{
|
||||
Duration = TimeSpan.Zero;
|
||||
}
|
||||
Duration = Burnout ? TimeSpan.FromMinutes(25) : TimeSpan.Zero;
|
||||
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public CandleShort(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x142C;
|
||||
public override int UnlitItemID => 0x142F;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x142C;
|
||||
public override int UnlitItemID => 0x142F;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,66 +1,22 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CandleSkull : BaseLight
|
||||
{
|
||||
public class CandleSkull : BaseLight
|
||||
[Constructible]
|
||||
public CandleSkull() : base(0x1853)
|
||||
{
|
||||
[Constructible]
|
||||
public CandleSkull() : base(0x1853)
|
||||
{
|
||||
if (Burnout)
|
||||
{
|
||||
Duration = TimeSpan.FromMinutes(25);
|
||||
}
|
||||
else
|
||||
{
|
||||
Duration = TimeSpan.Zero;
|
||||
}
|
||||
Duration = Burnout ? TimeSpan.FromMinutes(25) : TimeSpan.Zero;
|
||||
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 5.0;
|
||||
}
|
||||
|
||||
public CandleSkull(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID is 0x1583 or 0x1854)
|
||||
{
|
||||
return 0x1854;
|
||||
}
|
||||
|
||||
return 0x1858;
|
||||
}
|
||||
}
|
||||
|
||||
public override int UnlitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID is 0x1853 or 0x1584)
|
||||
{
|
||||
return 0x1853;
|
||||
}
|
||||
|
||||
return 0x1857;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 5.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => ItemID is 0x1583 or 0x1854 ? 0x1854 : 0x1858;
|
||||
|
||||
public override int UnlitItemID => ItemID is 0x1853 or 0x1584 ? 0x1853 : 0x1857;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,14 @@
|
|||
namespace Server.Items
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class DarkSource : Item
|
||||
{
|
||||
public class DarkSource : Item
|
||||
[Constructible]
|
||||
public DarkSource() : base(0x1646)
|
||||
{
|
||||
[Constructible]
|
||||
public DarkSource() : base(0x1646)
|
||||
{
|
||||
Layer = Layer.TwoHanded;
|
||||
Movable = false;
|
||||
}
|
||||
|
||||
public DarkSource(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Layer = Layer.TwoHanded;
|
||||
Movable = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,36 +1,21 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class HangingLantern : BaseLight
|
||||
{
|
||||
public class HangingLantern : BaseLight
|
||||
[Constructible]
|
||||
public HangingLantern() : base(0xA1D)
|
||||
{
|
||||
[Constructible]
|
||||
public HangingLantern() : base(0xA1D)
|
||||
{
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 40.0;
|
||||
}
|
||||
|
||||
public HangingLantern(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xA1A;
|
||||
public override int UnlitItemID => 0xA1D;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 40.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xA1A;
|
||||
public override int UnlitItemID => 0xA1D;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,71 +1,49 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class HeatingStand : BaseLight
|
||||
{
|
||||
public class HeatingStand : BaseLight
|
||||
[Constructible]
|
||||
public HeatingStand() : base(0x1849)
|
||||
{
|
||||
[Constructible]
|
||||
public HeatingStand() : base(0x1849)
|
||||
{
|
||||
if (Burnout)
|
||||
{
|
||||
Duration = TimeSpan.FromMinutes(25);
|
||||
}
|
||||
else
|
||||
{
|
||||
Duration = TimeSpan.Zero;
|
||||
}
|
||||
Duration = Burnout ? TimeSpan.FromMinutes(25) : TimeSpan.Zero;
|
||||
|
||||
Burning = false;
|
||||
Burning = false;
|
||||
Light = LightType.Empty;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x184A;
|
||||
public override int UnlitItemID => 0x1849;
|
||||
|
||||
public override void Ignite()
|
||||
{
|
||||
base.Ignite();
|
||||
|
||||
if (ItemID == LitItemID)
|
||||
{
|
||||
Light = LightType.Circle150;
|
||||
}
|
||||
else if (ItemID == UnlitItemID)
|
||||
{
|
||||
Light = LightType.Empty;
|
||||
Weight = 1.0;
|
||||
}
|
||||
}
|
||||
|
||||
public HeatingStand(Serial serial) : base(serial)
|
||||
public override void Douse()
|
||||
{
|
||||
base.Douse();
|
||||
|
||||
if (ItemID == LitItemID)
|
||||
{
|
||||
Light = LightType.Circle150;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x184A;
|
||||
public override int UnlitItemID => 0x1849;
|
||||
|
||||
public override void Ignite()
|
||||
else if (ItemID == UnlitItemID)
|
||||
{
|
||||
base.Ignite();
|
||||
|
||||
if (ItemID == LitItemID)
|
||||
{
|
||||
Light = LightType.Circle150;
|
||||
}
|
||||
else if (ItemID == UnlitItemID)
|
||||
{
|
||||
Light = LightType.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Douse()
|
||||
{
|
||||
base.Douse();
|
||||
|
||||
if (ItemID == LitItemID)
|
||||
{
|
||||
Light = LightType.Circle150;
|
||||
}
|
||||
else if (ItemID == UnlitItemID)
|
||||
{
|
||||
Light = LightType.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
Light = LightType.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,36 +1,21 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LampPost1 : BaseLight
|
||||
{
|
||||
public class LampPost1 : BaseLight
|
||||
[Constructible]
|
||||
public LampPost1() : base(0xB21)
|
||||
{
|
||||
[Constructible]
|
||||
public LampPost1() : base(0xB21)
|
||||
{
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 40.0;
|
||||
}
|
||||
|
||||
public LampPost1(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB20;
|
||||
public override int UnlitItemID => 0xB21;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 40.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB20;
|
||||
public override int UnlitItemID => 0xB21;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,36 +1,21 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LampPost2 : BaseLight
|
||||
{
|
||||
public class LampPost2 : BaseLight
|
||||
[Constructible]
|
||||
public LampPost2() : base(0xB23)
|
||||
{
|
||||
[Constructible]
|
||||
public LampPost2() : base(0xB23)
|
||||
{
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 40.0;
|
||||
}
|
||||
|
||||
public LampPost2(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB22;
|
||||
public override int UnlitItemID => 0xB23;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 40.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB22;
|
||||
public override int UnlitItemID => 0xB23;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,36 +1,21 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LampPost3 : BaseLight
|
||||
{
|
||||
public class LampPost3 : BaseLight
|
||||
[Constructible]
|
||||
public LampPost3() : base(0xb25)
|
||||
{
|
||||
[Constructible]
|
||||
public LampPost3() : base(0xb25)
|
||||
{
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 40.0;
|
||||
}
|
||||
|
||||
public LampPost3(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB24;
|
||||
public override int UnlitItemID => 0xB25;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 40.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0xB24;
|
||||
public override int UnlitItemID => 0xB25;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,14 +7,7 @@ namespace Server.Items
|
|||
[Constructible]
|
||||
public Lantern() : base(0xA25)
|
||||
{
|
||||
if (Burnout)
|
||||
{
|
||||
Duration = TimeSpan.FromMinutes(20);
|
||||
}
|
||||
else
|
||||
{
|
||||
Duration = TimeSpan.Zero;
|
||||
}
|
||||
Duration = Burnout ? TimeSpan.FromMinutes(20) : TimeSpan.Zero;
|
||||
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
|
|
@ -25,31 +18,9 @@ namespace Server.Items
|
|||
{
|
||||
}
|
||||
|
||||
public override int LitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID is 0xA15 or 0xA17)
|
||||
{
|
||||
return ItemID;
|
||||
}
|
||||
public override int LitItemID => ItemID is 0xA15 or 0xA17 ? ItemID : 0xA22;
|
||||
|
||||
return 0xA22;
|
||||
}
|
||||
}
|
||||
|
||||
public override int UnlitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0xA18)
|
||||
{
|
||||
return ItemID;
|
||||
}
|
||||
|
||||
return 0xA25;
|
||||
}
|
||||
}
|
||||
public override int UnlitItemID => ItemID == 0xA18 ? ItemID : 0xA25;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,28 +1,14 @@
|
|||
namespace Server.Items
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LightSource : Item
|
||||
{
|
||||
public class LightSource : Item
|
||||
[Constructible]
|
||||
public LightSource() : base(0x1647)
|
||||
{
|
||||
[Constructible]
|
||||
public LightSource() : base(0x1647)
|
||||
{
|
||||
Layer = Layer.TwoHanded;
|
||||
Movable = false;
|
||||
}
|
||||
|
||||
public LightSource(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Layer = Layer.TwoHanded;
|
||||
Movable = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +1,22 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[Flippable]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class PaperLantern : BaseLight
|
||||
{
|
||||
[Flippable]
|
||||
public class PaperLantern : BaseLight
|
||||
[Constructible]
|
||||
public PaperLantern() : base(0x24BE)
|
||||
{
|
||||
[Constructible]
|
||||
public PaperLantern() : base(0x24BE)
|
||||
{
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public PaperLantern(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x24BD;
|
||||
public override int UnlitItemID => 0x24BE;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x24BD;
|
||||
public override int UnlitItemID => 0x24BE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,74 +1,37 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[Flippable]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class RedHangingLantern : BaseLight
|
||||
{
|
||||
[Flippable]
|
||||
public class RedHangingLantern : BaseLight
|
||||
[Constructible]
|
||||
public RedHangingLantern() : base(0x24C2)
|
||||
{
|
||||
[Constructible]
|
||||
public RedHangingLantern() : base(0x24C2)
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => ItemID == 0x24C2 ? 0x24C1 : 0x24C3;
|
||||
|
||||
public override int UnlitItemID => ItemID == 0x24C1 ? 0x24C2 : 0x24C4;
|
||||
|
||||
public void Flip()
|
||||
{
|
||||
Light = LightType.Circle300;
|
||||
|
||||
ItemID = ItemID switch
|
||||
{
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public RedHangingLantern(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0x24C2)
|
||||
{
|
||||
return 0x24C1;
|
||||
}
|
||||
|
||||
return 0x24C3;
|
||||
}
|
||||
}
|
||||
|
||||
public override int UnlitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0x24C1)
|
||||
{
|
||||
return 0x24C2;
|
||||
}
|
||||
|
||||
return 0x24C4;
|
||||
}
|
||||
}
|
||||
|
||||
public void Flip()
|
||||
{
|
||||
Light = LightType.Circle300;
|
||||
|
||||
ItemID = ItemID switch
|
||||
{
|
||||
0x24C2 => 0x24C4,
|
||||
0x24C1 => 0x24C3,
|
||||
0x24C4 => 0x24C2,
|
||||
0x24C3 => 0x24C1,
|
||||
_ => ItemID
|
||||
};
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
0x24C2 => 0x24C4,
|
||||
0x24C1 => 0x24C3,
|
||||
0x24C4 => 0x24C2,
|
||||
0x24C3 => 0x24C1,
|
||||
_ => ItemID
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +1,22 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[Flippable]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class RoundPaperLantern : BaseLight
|
||||
{
|
||||
[Flippable]
|
||||
public class RoundPaperLantern : BaseLight
|
||||
[Constructible]
|
||||
public RoundPaperLantern() : base(0x24CA)
|
||||
{
|
||||
[Constructible]
|
||||
public RoundPaperLantern() : base(0x24CA)
|
||||
{
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public RoundPaperLantern(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x24C9;
|
||||
public override int UnlitItemID => 0x24CA;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x24C9;
|
||||
public override int UnlitItemID => 0x24CA;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +1,22 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[Flippable]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class ShojiLantern : BaseLight
|
||||
{
|
||||
[Flippable]
|
||||
public class ShojiLantern : BaseLight
|
||||
[Constructible]
|
||||
public ShojiLantern() : base(0x24BC)
|
||||
{
|
||||
[Constructible]
|
||||
public ShojiLantern() : base(0x24BC)
|
||||
{
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public ShojiLantern(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x24BB;
|
||||
public override int UnlitItemID => 0x24BC;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle150;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => 0x24BB;
|
||||
public override int UnlitItemID => 0x24BC;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,16 +8,10 @@ namespace Server.Items
|
|||
[Constructible]
|
||||
public Torch() : base(0xF6B)
|
||||
{
|
||||
if (Burnout)
|
||||
{
|
||||
Duration = TimeSpan.FromMinutes(30);
|
||||
}
|
||||
else
|
||||
{
|
||||
Duration = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
Duration = Burnout ? TimeSpan.FromMinutes(30) : TimeSpan.Zero;
|
||||
Burning = false;
|
||||
|
||||
Stackable = true;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,81 +1,42 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[Flippable]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class WallSconce : BaseLight
|
||||
{
|
||||
[Flippable]
|
||||
public class WallSconce : BaseLight
|
||||
[Constructible]
|
||||
public WallSconce() : base(0x9FB)
|
||||
{
|
||||
[Constructible]
|
||||
public WallSconce() : base(0x9FB)
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.WestBig;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => ItemID == 0x9FB ? 0x9FD : 0xA02;
|
||||
|
||||
public override int UnlitItemID => ItemID == 0x9FD ? 0x9FB : 0xA00;
|
||||
|
||||
public void Flip()
|
||||
{
|
||||
Light = Light switch
|
||||
{
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.WestBig;
|
||||
Weight = 3.0;
|
||||
}
|
||||
LightType.WestBig => LightType.NorthBig,
|
||||
LightType.NorthBig => LightType.WestBig,
|
||||
_ => Light
|
||||
};
|
||||
|
||||
public WallSconce(Serial serial) : base(serial)
|
||||
ItemID = ItemID switch
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0x9FB)
|
||||
{
|
||||
return 0x9FD;
|
||||
}
|
||||
|
||||
return 0xA02;
|
||||
}
|
||||
}
|
||||
|
||||
public override int UnlitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0x9FD)
|
||||
{
|
||||
return 0x9FB;
|
||||
}
|
||||
|
||||
return 0xA00;
|
||||
}
|
||||
}
|
||||
|
||||
public void Flip()
|
||||
{
|
||||
if (Light == LightType.WestBig)
|
||||
{
|
||||
Light = LightType.NorthBig;
|
||||
}
|
||||
else if (Light == LightType.NorthBig)
|
||||
{
|
||||
Light = LightType.WestBig;
|
||||
}
|
||||
|
||||
ItemID = ItemID switch
|
||||
{
|
||||
0x9FB => 0xA00,
|
||||
0x9FD => 0xA02,
|
||||
0xA00 => 0x9FB,
|
||||
0xA02 => 0x9FD,
|
||||
_ => ItemID
|
||||
};
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
0x9FB => 0xA00,
|
||||
0x9FD => 0xA02,
|
||||
0xA00 => 0x9FB,
|
||||
0xA02 => 0x9FD,
|
||||
_ => ItemID
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,81 +1,42 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[Flippable]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class WallTorch : BaseLight
|
||||
{
|
||||
[Flippable]
|
||||
public class WallTorch : BaseLight
|
||||
[Constructible]
|
||||
public WallTorch() : base(0xA05)
|
||||
{
|
||||
[Constructible]
|
||||
public WallTorch() : base(0xA05)
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.WestBig;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => ItemID == 0xA05 ? 0xA07 : 0xA0C;
|
||||
|
||||
public override int UnlitItemID => ItemID == 0xA07 ? 0xA05 : 0xA0A;
|
||||
|
||||
public void Flip()
|
||||
{
|
||||
Light = Light switch
|
||||
{
|
||||
Movable = false;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.WestBig;
|
||||
Weight = 3.0;
|
||||
}
|
||||
LightType.WestBig => LightType.NorthBig,
|
||||
LightType.NorthBig => LightType.WestBig,
|
||||
_ => Light
|
||||
};
|
||||
|
||||
public WallTorch(Serial serial) : base(serial)
|
||||
ItemID = ItemID switch
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0xA05)
|
||||
{
|
||||
return 0xA07;
|
||||
}
|
||||
|
||||
return 0xA0C;
|
||||
}
|
||||
}
|
||||
|
||||
public override int UnlitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0xA07)
|
||||
{
|
||||
return 0xA05;
|
||||
}
|
||||
|
||||
return 0xA0A;
|
||||
}
|
||||
}
|
||||
|
||||
public void Flip()
|
||||
{
|
||||
if (Light == LightType.WestBig)
|
||||
{
|
||||
Light = LightType.NorthBig;
|
||||
}
|
||||
else if (Light == LightType.NorthBig)
|
||||
{
|
||||
Light = LightType.WestBig;
|
||||
}
|
||||
|
||||
ItemID = ItemID switch
|
||||
{
|
||||
0xA05 => 0xA0A,
|
||||
0xA07 => 0xA0C,
|
||||
0xA0A => 0xA05,
|
||||
0xA0C => 0xA07,
|
||||
_ => ItemID
|
||||
};
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
0xA05 => 0xA0A,
|
||||
0xA07 => 0xA0C,
|
||||
0xA0A => 0xA05,
|
||||
0xA0C => 0xA07,
|
||||
_ => ItemID
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,74 +1,37 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items
|
||||
namespace Server.Items;
|
||||
|
||||
[Flippable]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class WhiteHangingLantern : BaseLight
|
||||
{
|
||||
[Flippable]
|
||||
public class WhiteHangingLantern : BaseLight
|
||||
[Constructible]
|
||||
public WhiteHangingLantern() : base(0x24C6)
|
||||
{
|
||||
[Constructible]
|
||||
public WhiteHangingLantern() : base(0x24C6)
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override int LitItemID => ItemID == 0x24C6 ? 0x24C5 : 0x24C7;
|
||||
|
||||
public override int UnlitItemID => ItemID == 0x24C5 ? 0x24C6 : 0x24C8;
|
||||
|
||||
public void Flip()
|
||||
{
|
||||
Light = LightType.Circle300;
|
||||
|
||||
ItemID = ItemID switch
|
||||
{
|
||||
Movable = true;
|
||||
Duration = TimeSpan.Zero; // Never burnt out
|
||||
Burning = false;
|
||||
Light = LightType.Circle300;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public WhiteHangingLantern(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0x24C6)
|
||||
{
|
||||
return 0x24C5;
|
||||
}
|
||||
|
||||
return 0x24C7;
|
||||
}
|
||||
}
|
||||
|
||||
public override int UnlitItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemID == 0x24C5)
|
||||
{
|
||||
return 0x24C6;
|
||||
}
|
||||
|
||||
return 0x24C8;
|
||||
}
|
||||
}
|
||||
|
||||
public void Flip()
|
||||
{
|
||||
Light = LightType.Circle300;
|
||||
|
||||
ItemID = ItemID switch
|
||||
{
|
||||
0x24C6 => 0x24C8,
|
||||
0x24C5 => 0x24C7,
|
||||
0x24C8 => 0x24C6,
|
||||
0x24C7 => 0x24C5,
|
||||
_ => ItemID
|
||||
};
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
0x24C6 => 0x24C8,
|
||||
0x24C5 => 0x24C7,
|
||||
0x24C8 => 0x24C6,
|
||||
0x24C7 => 0x24C5,
|
||||
_ => ItemID
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.BaseEquipableLight"
|
||||
}
|
||||
43
Projects/UOContent/Migrations/Server.Items.BaseLight.v1.json
Normal file
43
Projects/UOContent/Migrations/Server.Items.BaseLight.v1.json
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"version": 1,
|
||||
"type": "Server.Items.BaseLight",
|
||||
"properties": [
|
||||
{
|
||||
"name": "BurntOut",
|
||||
"type": "bool",
|
||||
"rule": "PrimitiveTypeMigrationRule",
|
||||
"ruleArguments": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Burning",
|
||||
"type": "bool",
|
||||
"rule": "PrimitiveTypeMigrationRule",
|
||||
"ruleArguments": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Duration",
|
||||
"type": "System.TimeSpan",
|
||||
"rule": "PrimitiveTypeMigrationRule"
|
||||
},
|
||||
{
|
||||
"name": "Protected",
|
||||
"type": "bool",
|
||||
"rule": "PrimitiveTypeMigrationRule",
|
||||
"ruleArguments": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "BurnTimer",
|
||||
"type": "Server.Timer",
|
||||
"rule": "TimerMigrationRule",
|
||||
"ruleArguments": [
|
||||
"@TimerDrift"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.Brazier"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.BrazierTall"
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.Candelabra",
|
||||
"properties": [
|
||||
{
|
||||
"name": "IsShipwreckedItem",
|
||||
"type": "bool",
|
||||
"rule": "PrimitiveTypeMigrationRule",
|
||||
"ruleArguments": [
|
||||
""
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.CandelabraStand"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.CandleLarge"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.CandleLong"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.CandleShort"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.CandleSkull"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.DarkSource"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.HangingLantern"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.HeatingStand"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.LampPost1"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.LampPost2"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.LampPost3"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.LightSource"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.PaperLantern"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.RedHangingLantern"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.RoundPaperLantern"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.ShojiLantern"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.WallSconce"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.WallTorch"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.WhiteHangingLantern"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue