Files
abysmal-isle/Scripts/Services/ViceVsVirtue/Items/Rewards/MorphEarrings.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

98 lines
2.6 KiB
C#

using System;
using Server;
using System.Collections.Generic;
using Server.Mobiles;
using Server.Items;
using Server.Factions;
using Server.Engines.VvV;
namespace Server.Items
{
[TypeAlias("Server.Engines.VvV.MorphEarrings")]
public class MorphEarrings : GoldEarrings
{
public override int LabelNumber
{
get
{
return 1094746; // Morph Earrings
}
}
[Constructable]
public MorphEarrings()
{
}
public override void OnRemoved(object parent)
{
base.OnRemoved(parent);
if (parent is Mobile)
{
ValidateEquipment((Mobile)parent);
}
}
private void ValidateEquipment(Mobile m)
{
if (m == null)
return;
Race race = m.Race;
bool didDrop = false;
List<Item> list = new List<Item>(m.Items);
foreach (Item item in list)
{
bool drop = false;
if (item is BaseArmor && ((BaseArmor)item).RequiredRace != null && ((BaseArmor)item).RequiredRace != race)
drop = true;
else if (item is BaseWeapon && ((BaseWeapon)item).RequiredRace != null && ((BaseWeapon)item).RequiredRace != race)
drop = true;
else if (item is BaseJewel && ((BaseJewel)item).RequiredRace != null && ((BaseJewel)item).RequiredRace != race)
drop = true;
else if (item is BaseClothing && ((BaseClothing)item).RequiredRace != null && ((BaseClothing)item).RequiredRace != race)
drop = true;
if (drop)
{
if (!didDrop)
didDrop = true;
if (m.Backpack == null || !m.Backpack.TryDropItem(m, item, false))
{
m.BankBox.DropItem(item);
}
}
}
ColUtility.Free(list);
if (didDrop)
m.SendLocalizedMessage(500647); // Some equipment has been moved to your backpack.
}
public MorphEarrings(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(1);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version == 0 && ViceVsVirtueSystem.Enabled)
Timer.DelayCall(() => ViceVsVirtueSystem.Instance.AddVvVItem(this));
}
}
}