Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
171
Scripts/Services/CommunityCollections/CollectionItem.cs
Normal file
171
Scripts/Services/CommunityCollections/CollectionItem.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user