195 lines
4.5 KiB
C#
195 lines
4.5 KiB
C#
using ModernUO.Serialization;
|
|
|
|
namespace Server.Items;
|
|
|
|
[SerializationGenerator(0, false)]
|
|
public partial class SnowGlobe : Item
|
|
{
|
|
public SnowGlobe() : base(0xE2F)
|
|
{
|
|
LootType = LootType.Blessed;
|
|
Light = LightType.Circle150;
|
|
}
|
|
|
|
public override double DefaultWeight => 1.0;
|
|
}
|
|
|
|
public enum SnowGlobeTypeOne
|
|
{
|
|
Britain,
|
|
Moonglow,
|
|
Minoc,
|
|
Magincia,
|
|
BuccaneersDen,
|
|
Trinsic,
|
|
Yew,
|
|
SkaraBrae,
|
|
Jhelom,
|
|
Nujelm,
|
|
Papua,
|
|
Delucia,
|
|
Cove,
|
|
Ocllo,
|
|
SerpentsHold,
|
|
EmpathAbbey,
|
|
TheLycaeum,
|
|
Vesper,
|
|
Wind
|
|
}
|
|
|
|
[SerializationGenerator(1, false)]
|
|
public partial class SnowGlobeOne : SnowGlobe
|
|
{
|
|
[InvalidateProperties]
|
|
[SerializableField(0)]
|
|
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
|
private SnowGlobeTypeOne _place;
|
|
|
|
[Constructible]
|
|
public SnowGlobeOne() : this((SnowGlobeTypeOne)Utility.Random(19))
|
|
{
|
|
}
|
|
|
|
[Constructible]
|
|
public SnowGlobeOne(SnowGlobeTypeOne type) => _place = type;
|
|
|
|
public override int LabelNumber => 1041454 + (int)_place;
|
|
|
|
private void Deserialize(IGenericReader reader, int version)
|
|
{
|
|
_place = (SnowGlobeTypeOne)reader.ReadEncodedInt();
|
|
}
|
|
}
|
|
|
|
public enum SnowGlobeTypeTwo
|
|
{
|
|
AncientCitadel,
|
|
BlackthornesCastle,
|
|
CityofMontor,
|
|
CityofMistas,
|
|
ExodusLair,
|
|
LakeofFire,
|
|
Lakeshire,
|
|
PassofKarnaugh,
|
|
TheEtherealFortress,
|
|
TwinOaksTavern,
|
|
ChaosShrine,
|
|
ShrineofHumility,
|
|
ShrineofSacrifice,
|
|
ShrineofCompassion,
|
|
ShrineofHonor,
|
|
ShrineofHonesty,
|
|
ShrineofSpirituality,
|
|
ShrineofJustice,
|
|
ShrineofValor
|
|
}
|
|
|
|
[SerializationGenerator(1, false)]
|
|
public partial class SnowGlobeTwo : SnowGlobe
|
|
{
|
|
/* Oddly, these are not localized. */
|
|
private static readonly string[] _placeNames =
|
|
{
|
|
/* AncientCitadel */ "Ancient Citadel",
|
|
/* BlackthornesCastle */ "Blackthorne's Castle",
|
|
/* CityofMontor */ "City of Montor",
|
|
/* CityofMistas */ "City of Mistas",
|
|
/* ExodusLair */ "Exodus' Lair",
|
|
/* LakeofFire */ "Lake of Fire",
|
|
/* Lakeshire */ "Lakeshire",
|
|
/* PassofKarnaugh */ "Pass of Karnaugh",
|
|
/* TheEtherealFortress */ "The Ethereal Fortress",
|
|
/* TwinOaksTavern */ "Twin Oaks Tavern",
|
|
/* ChaosShrine */ "Chaos Shrine",
|
|
/* ShrineofHumility */ "Shrine of Humility",
|
|
/* ShrineofSacrifice */ "Shrine of Sacrifice",
|
|
/* ShrineofCompassion */ "Shrine of Compassion",
|
|
/* ShrineofHonor */ "Shrine of Honor",
|
|
/* ShrineofHonesty */ "Shrine of Honesty",
|
|
/* ShrineofSpirituality */ "Shrine of Spirituality",
|
|
/* ShrineofJustice */ "Shrine of Justice",
|
|
/* ShrineofValor */ "Shrine of Valor"
|
|
};
|
|
|
|
[InvalidateProperties]
|
|
[SerializableField(0)]
|
|
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
|
private SnowGlobeTypeTwo _place;
|
|
|
|
[Constructible]
|
|
public SnowGlobeTwo() : this((SnowGlobeTypeTwo)Utility.Random(_placeNames.Length))
|
|
{
|
|
}
|
|
|
|
[Constructible]
|
|
public SnowGlobeTwo(SnowGlobeTypeTwo type) => _place = type;
|
|
|
|
public override string DefaultName
|
|
{
|
|
get
|
|
{
|
|
var idx = (int)_place;
|
|
|
|
if (idx < 0 || idx >= _placeNames.Length)
|
|
{
|
|
return "a snowy scene";
|
|
}
|
|
|
|
return $"a snowy scene of {_placeNames[idx]}";
|
|
}
|
|
}
|
|
|
|
private void Deserialize(IGenericReader reader, int version)
|
|
{
|
|
_place = (SnowGlobeTypeTwo)reader.ReadEncodedInt();
|
|
}
|
|
}
|
|
|
|
public enum SnowGlobeTypeThree
|
|
{
|
|
Luna,
|
|
Umbra,
|
|
Zento,
|
|
Heartwood,
|
|
Covetous,
|
|
Deceit,
|
|
Destard,
|
|
Hythloth,
|
|
Khaldun,
|
|
Shame,
|
|
Wrong,
|
|
Doom,
|
|
TheCitadel,
|
|
ThePalaceofParoxysmus,
|
|
TheBlightedGrove,
|
|
ThePrismofLight
|
|
}
|
|
|
|
[SerializationGenerator(1, false)]
|
|
public partial class SnowGlobeThree : SnowGlobe
|
|
{
|
|
[InvalidateProperties]
|
|
[SerializableField(0)]
|
|
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
|
private SnowGlobeTypeThree _place;
|
|
|
|
[Constructible]
|
|
public SnowGlobeThree() : this((SnowGlobeTypeThree)Utility.Random(16))
|
|
{
|
|
}
|
|
|
|
[Constructible]
|
|
public SnowGlobeThree(SnowGlobeTypeThree type) => _place = type;
|
|
|
|
public override int LabelNumber =>
|
|
_place switch
|
|
{
|
|
>= SnowGlobeTypeThree.Covetous => 1075440 + ((int)_place - 4),
|
|
_ => 1075294 + (int)_place
|
|
};
|
|
|
|
private void Deserialize(IGenericReader reader, int version)
|
|
{
|
|
_place = (SnowGlobeTypeThree)reader.ReadEncodedInt();
|
|
}
|
|
}
|