Files
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

122 lines
3.9 KiB
C#

using Server.Items;
using Server.Mobiles;
using Server.Targeting;
using System;
using System.Collections.Generic;
namespace Server.Engines.CityLoyalty
{
public class CityBanner : InterchangeableAddon
{
public override BaseAddonDeed Deed { get { return new CityBannerDeed(City); } }
public override bool ForceShowProperties { get { return true; } }
[CommandProperty(AccessLevel.GameMaster)]
public City City { get; private set; }
public override int EastID { get { return SouthID + 9; } }
public override int SouthID { get { return BannerInfo[City][0]; } }
[Constructable]
public CityBanner(City city)
: base(true, BannerInfo[city][1])
{
City = city;
}
public static Dictionary<City, int[]> BannerInfo { get; set; }
public static void Initialize()
{
BannerInfo = new Dictionary<City, int[]>();
//ID Cliloc
BannerInfo[City.Moonglow] = new int[] { 0x4B63, 1098171 };
BannerInfo[City.Britain] = new int[] { 0x4B64, 1098172 };
BannerInfo[City.Jhelom] = new int[] { 0x4B65, 1098173 };
BannerInfo[City.Yew] = new int[] { 0x4B66, 1098174 };
BannerInfo[City.Minoc] = new int[] { 0x4B67, 1098175 };
BannerInfo[City.Trinsic] = new int[] { 0x4B62, 1098170 };
BannerInfo[City.SkaraBrae] = new int[] { 0x4B6A, 1098178 };
BannerInfo[City.NewMagincia] = new int[] { 0x4B69, 1098177 };
BannerInfo[City.Vesper] = new int[] { 0x4B68, 1098176 };
}
public CityBanner(Serial serial) : base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
writer.Write((int)City);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
City = (City)reader.ReadInt();
}
}
public class CityBannerDeed : InterchangeableAddonDeed
{
public override BaseAddon Addon { get { return new CityBanner(City); } }
public override int LabelNumber { get { return CityBanner.BannerInfo[City][1]; } }
public override int EastID { get { return SouthID + 9; } }
public override int SouthID { get { return CityBanner.BannerInfo[City][0]; } }
[CommandProperty(AccessLevel.GameMaster)]
public City City { get; private set; }
[Constructable]
public CityBannerDeed(City city)
{
City = city;
LootType = LootType.Blessed;
}
public override void OnDoubleClick(Mobile from)
{
if (IsChildOf(from.Backpack))
{
CityLoyaltySystem sys = CityLoyaltySystem.GetCityInstance(this.City);
if (CityLoyaltySystem.HasCitizenship(from, this.City) && sys.GetLoyaltyRating(from) >= LoyaltyRating.Commended)
{
base.OnDoubleClick(from);
}
else
from.SendLocalizedMessage(1152361, String.Format("#{0}", CityLoyaltySystem.GetCityLocalization(this.City))); // You are not sufficiently loyal to ~1_CITY~ to use this.
}
}
public CityBannerDeed(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
writer.Write((int)City);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
City = (City)reader.ReadInt();
}
}
}