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,171 @@
using System;
using Server.Items;
using Server.Mobiles;
namespace Server
{
public class CollectionItem
{
private readonly Type m_Type;
private readonly int m_ItemID;
private readonly int m_X;
private readonly int m_Y;
private readonly int m_Width;
private readonly int m_Height;
private readonly int m_Tooltip;
private readonly int m_Hue;
private readonly double m_Points;
private readonly bool m_QuestItem;
public CollectionItem(Type type, int itemID, int tooltip, int hue, double points, bool questitem = false)
{
m_Type = type;
m_ItemID = itemID;
m_Tooltip = tooltip;
m_Hue = hue;
m_Points = points;
m_QuestItem = questitem;
Rectangle2D rec;
try
{
rec = ItemBounds.Table[m_ItemID];
}
catch
{
rec = new Rectangle2D(0, 0, 0, 0);
}
if (rec.X == 0 && rec.Y == 0 && rec.Width == 0 && rec.Height == 0)
{
int mx, my;
mx = my = 0;
Item.Measure(Item.GetBitmap(m_ItemID), out m_X, out m_Y, out mx, out my);
m_Width = mx - m_X;
m_Height = my - m_Y;
}
else
{
m_X = rec.X;
m_Y = rec.Y;
m_Width = rec.Width;
m_Height = rec.Height;
}
}
public Type Type { get { return m_Type; } } // image info
public int ItemID { get { return m_ItemID; } }
public int X { get { return m_X; } }
public int Y { get { return m_Y; } }
public int Width { get { return m_Width; } }
public int Height { get { return m_Height; } }
public int Tooltip { get { return m_Tooltip; } }
public int Hue { get { return m_Hue; } }
public double Points { get { return m_Points; } }
public bool QuestItem { get { return m_QuestItem; } }
public virtual bool Validate(PlayerMobile from, Item item)
{
return true;
}
public virtual bool CanSelect(PlayerMobile from)
{
return true;
}
public virtual void OnGiveReward(PlayerMobile to, Item item, IComunityCollection collection, int hue)
{
}
}
public class CollectionHuedItem : CollectionItem
{
private readonly int[] m_Hues;
public CollectionHuedItem(Type type, int itemID, int tooltip, int hue, double points, int[] hues)
: base(type, itemID, tooltip, hue, points)
{
m_Hues = hues;
}
public int[] Hues { get { return m_Hues; } }
}
public class CollectionTitle : CollectionItem
{
private readonly object m_Title;
public CollectionTitle(object title, int tooltip, double points)
: base(null, 0xFF1, tooltip, 0x0, points)
{
m_Title = title;
}
public object Title { get { return m_Title; } }
public override void OnGiveReward(PlayerMobile to, Item item, IComunityCollection collection, int hue)
{
if (to.AddRewardTitle(m_Title))
{
if (m_Title is int)
to.SendLocalizedMessage(1073625, "#" + (int)m_Title); // The title "~1_TITLE~" has been bestowed upon you.
else if (m_Title is string)
to.SendLocalizedMessage(1073625, (string)m_Title); // The title "~1_TITLE~" has been bestowed upon you.
to.AddCollectionPoints(collection.CollectionID, (int)Points * -1);
}
else
to.SendLocalizedMessage(1073626); // You already have that title!
}
}
public class CollectionTreasureMap : CollectionItem
{
private readonly int m_Level;
public CollectionTreasureMap(int level, int tooltip, double points)
: base(typeof(TreasureMap), 0x14EB, tooltip, 0x0, points)
{
m_Level = level;
}
public int Level { get { return m_Level; } }
public override bool Validate(PlayerMobile from, Item item)
{
TreasureMap map = item as TreasureMap;
if (map != null && map.Level == m_Level)
return true;
return false;
}
}
public class CollectionSpellbook : CollectionItem
{
private readonly SpellbookType m_Type;
public CollectionSpellbook(SpellbookType type, int itemID, int tooltip, double points)
: base(typeof(Spellbook), itemID, tooltip, 0x0, points)
{
m_Type = type;
}
public SpellbookType SpellbookType { get { return m_Type; } }
public override bool Validate(PlayerMobile from, Item item)
{
Spellbook spellbook = item as Spellbook;
if (spellbook != null && spellbook.SpellbookType == m_Type && spellbook.Content == 0)
return true;
return false;
}
}
}