Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
142
Scripts/Services/Expansions/High Seas/Gumps/CannonGump.cs
Normal file
142
Scripts/Services/Expansions/High Seas/Gumps/CannonGump.cs
Normal file
@@ -0,0 +1,142 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Gumps
|
||||
{
|
||||
public class CannonGump : Gump
|
||||
{
|
||||
public static readonly int LabelColor = 0xFFFFFF;
|
||||
public static readonly int GreenHue = 5057;
|
||||
public static readonly int RedHue = 28776;
|
||||
|
||||
private BaseCannon m_Cannon;
|
||||
private Mobile m_From;
|
||||
|
||||
public BaseCannon Cannon { get { return m_Cannon; } }
|
||||
|
||||
public CannonGump(BaseCannon cannon, Mobile from)
|
||||
: base(50, 50)
|
||||
{
|
||||
m_Cannon = cannon;
|
||||
m_From = from;
|
||||
|
||||
AddBackground(0, 0, 300, 200, 2620);
|
||||
|
||||
Type charge = cannon is LightShipCannon ? typeof(LightPowderCharge) : typeof(HeavyPowderCharge);
|
||||
|
||||
bool cleaned = cannon.Cleaned;
|
||||
bool charged = cannon.Charged;
|
||||
bool primed = cannon.Primed;
|
||||
bool loaded = cannon.AmmoType != AmmunitionType.Empty;
|
||||
|
||||
AddHtmlLocalized(0, 10, 300, 16, 1149614 + (int)m_Cannon.Position, 21758, false, false);
|
||||
|
||||
AddHtmlLocalized(45, 40, 100, 16, 1149626, LabelColor, false, false); //CLEAN
|
||||
|
||||
if(!charged)
|
||||
AddHtmlLocalized(45, 60, 100, 16, 1149630, LabelColor, false, false); //CHARGE
|
||||
else
|
||||
AddHtmlLocalized(45, 60, 100, 16, 1149629, LabelColor, false, false); //REMOVE
|
||||
|
||||
if(!loaded)
|
||||
AddHtmlLocalized(45, 80, 100, 16, 1149635, LabelColor, false, false); //LOAD
|
||||
else
|
||||
AddHtmlLocalized(45, 80, 100, 16, 1149629, LabelColor, false, false); //REMOVE
|
||||
|
||||
if(!primed)
|
||||
AddHtmlLocalized(45, 100, 100, 16, 1149637, LabelColor, false, false); //PRIME
|
||||
else if (cannon.CanLight)
|
||||
AddHtmlLocalized(45, 100, 100, 16, 1149638, LabelColor, false, false); //FIRE
|
||||
else
|
||||
AddHtmlLocalized(45, 100, 100, 16, 1149629, LabelColor, false, false); //REMOVE
|
||||
|
||||
if (!cleaned)
|
||||
AddHtmlLocalized(150, 40, 100, 16, 1149628, RedHue, false, false); //Dirty
|
||||
else
|
||||
AddHtmlLocalized(150, 40, 100, 16, 1149627, GreenHue, false, false); //Clean
|
||||
|
||||
if (!charged)
|
||||
AddHtmlLocalized(150, 60, 100, 16, 1149632, RedHue, false, false); //Not Charged
|
||||
else
|
||||
AddHtmlLocalized(150, 60, 100, 16, 1149631, GreenHue, false, false); //Charged
|
||||
|
||||
if (!loaded)
|
||||
AddHtmlLocalized(150, 80, 100, 16, 1149636, RedHue, false, false); //Not Loaded
|
||||
else
|
||||
AddHtmlLocalized(150, 80, 100, 16, 1114057, AmmoInfo.GetAmmoName(cannon).ToString(), GreenHue, false, false);
|
||||
//AddHtmlLocalized(150, 80, 100, 16, cannon.AmmoType == AmmoType.Grapeshot ? 1095741 : 1116029, GreenHue, false, false);
|
||||
|
||||
if (!primed)
|
||||
AddHtmlLocalized(150, 100, 100, 16, 1149639, RedHue, false, false); //No Fuse
|
||||
else
|
||||
AddHtmlLocalized(150, 100, 100, 16, 1149640, GreenHue, false, false); //Primed
|
||||
|
||||
AddButton(10, 40, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0);
|
||||
AddButton(10, 60, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0);
|
||||
AddButton(10, 80, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0);
|
||||
AddButton(10, 100, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0);
|
||||
|
||||
if (!cannon.Actions.ContainsKey(from) || cannon.Actions[from].Count == 0)
|
||||
cannon.AddAction(from, 1149653); //You are now operating the cannon.
|
||||
|
||||
int y = 170;
|
||||
int count = cannon.Actions[from].Count - 1;
|
||||
int hue = 0;
|
||||
|
||||
for (int i = count; i >= 0; i--)
|
||||
{
|
||||
if (i < count - 3)
|
||||
break;
|
||||
|
||||
if (i == count)
|
||||
hue = 29315; //0xFFFF00;
|
||||
else hue = 12684;
|
||||
|
||||
AddHtmlLocalized(10, y, 385, 20, cannon.Actions[from][i], hue, false, false);
|
||||
y -= 16;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnResponse(NetState sender, RelayInfo info)
|
||||
{
|
||||
Mobile from = sender.Mobile;
|
||||
|
||||
if (m_Cannon == null || m_Cannon.Deleted || !from.InRange(m_Cannon.Location, 3))
|
||||
return;
|
||||
|
||||
switch (info.ButtonID)
|
||||
{
|
||||
default:
|
||||
case 0: return;
|
||||
case 1: //clean
|
||||
m_Cannon.TryClean(from);
|
||||
break;
|
||||
case 2: //Charge
|
||||
if (!m_Cannon.Charged)
|
||||
m_Cannon.TryCharge(from);
|
||||
else
|
||||
m_Cannon.RemoveCharge(from);
|
||||
break;
|
||||
case 3: //load
|
||||
if (m_Cannon.AmmoType == AmmunitionType.Empty)
|
||||
m_Cannon.TryLoad(from);
|
||||
else
|
||||
m_Cannon.RemoveLoad(from);
|
||||
break;
|
||||
case 4: //prime
|
||||
if (!m_Cannon.Primed)
|
||||
m_Cannon.TryPrime(from);
|
||||
else if (m_Cannon.CanLight)
|
||||
m_Cannon.TryLightFuse(from);
|
||||
else
|
||||
m_Cannon.RemovePrime(from);
|
||||
break;
|
||||
}
|
||||
|
||||
from.SendGump(new CannonGump(m_Cannon, m_From));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user