Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
177
Scripts/SubSystem/ACC/ACC Yard System/Core/YardTarget.cs
Normal file
177
Scripts/SubSystem/ACC/ACC Yard System/Core/YardTarget.cs
Normal file
@@ -0,0 +1,177 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
using System.Collections;
|
||||
using System.Text;
|
||||
using Server.Targeting;
|
||||
using Server.Misc;
|
||||
using Server.Multis;
|
||||
using Server.Gumps;
|
||||
|
||||
namespace Server.ACC.YS
|
||||
{
|
||||
public class YardTarget : Target
|
||||
{
|
||||
private Mobile m_From;
|
||||
private int m_SelectedID;
|
||||
private int m_Price;
|
||||
private YardShovel m_Shovel;
|
||||
private BaseHouse m_House;
|
||||
private string m_Category;
|
||||
private int m_Page;
|
||||
|
||||
public YardTarget(YardShovel shovel, Mobile from, int itemID, int price, string category, int page)
|
||||
: base(-1, true, TargetFlags.None)
|
||||
{
|
||||
m_Shovel = shovel;
|
||||
m_From = from;
|
||||
m_SelectedID = itemID;
|
||||
m_Price = price;
|
||||
m_Category = category;
|
||||
m_Page = page;
|
||||
CheckLOS = false;
|
||||
m_Shovel.Category = category;
|
||||
m_Shovel.Page = page;
|
||||
}
|
||||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
IPoint3D t = targeted as IPoint3D;
|
||||
if (t == null)
|
||||
return;
|
||||
|
||||
Point3D loc = new Point3D(t);
|
||||
if (t is StaticTarget)
|
||||
loc.Z -= TileData.ItemTable[((StaticTarget)t).ItemID & 0x3FFF].CalcHeight;
|
||||
|
||||
if (!YardSettings.AllowOtherHouses && m_From.AccessLevel == AccessLevel.Player)
|
||||
{
|
||||
BaseHouse house = BaseHouse.FindHouseAt(loc, from.Map, 20);
|
||||
if (house != null && house.Owner != m_From)
|
||||
{
|
||||
m_From.SendMessage("You cannot place a yard item in someone else's house.");
|
||||
GumpUp();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (ValidatePlacement(loc))
|
||||
EndPlace(loc);
|
||||
else
|
||||
GumpUp();
|
||||
}
|
||||
|
||||
public bool ValidatePlacement(Point3D loc)
|
||||
{
|
||||
Map map = m_From.Map;
|
||||
if (map == null)
|
||||
return false;
|
||||
|
||||
m_House = BaseHouse.FindHouseAt(m_From.Location, map, 20);
|
||||
if (m_House == null || !m_House.IsOwner(m_From))
|
||||
{
|
||||
m_From.SendMessage("You must be standing in your house to place this");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (loc.Y > m_From.Location.Y + YardSettings.Front || loc.Y < m_From.Location.Y - YardSettings.Back)
|
||||
{
|
||||
m_From.SendMessage("This is outside of your yard. Please re-try the placement");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (loc.X > m_From.Location.X + YardSettings.Right || loc.X < m_From.Location.X - YardSettings.Left)
|
||||
{
|
||||
m_From.SendMessage("This is outside of your yard. Please re-try the placement");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void EndPlace(Point3D loc)
|
||||
{
|
||||
bool Paid = false;
|
||||
if (m_From.Backpack.ConsumeTotal(typeof(Gold), m_Price))
|
||||
{
|
||||
Paid = true;
|
||||
}
|
||||
else if (Banker.Withdraw(m_From, m_Price, true))
|
||||
{
|
||||
Paid = true;
|
||||
}
|
||||
|
||||
if (Paid)
|
||||
{
|
||||
switch (m_SelectedID)
|
||||
{
|
||||
//Tall Iron
|
||||
case 2084: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.WestCW); break; }
|
||||
case 2086: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.EastCCW); break; }
|
||||
case 2088: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.WestCCW); break; }
|
||||
case 2090: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.EastCW); break; }
|
||||
case 2092: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.SouthCW); break; }
|
||||
case 2094: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.NorthCCW); break; }
|
||||
case 2096: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.SouthCCW); break; }
|
||||
case 2098: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.NorthCW); break; }
|
||||
//Short Iron
|
||||
case 2124: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.WestCW); break; }
|
||||
case 2126: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.EastCCW); break; }
|
||||
case 2128: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.WestCCW); break; }
|
||||
case 2130: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.EastCW); break; }
|
||||
case 2132: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.SouthCW); break; }
|
||||
case 2134: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.NorthCCW); break; }
|
||||
case 2136: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.SouthCCW); break; }
|
||||
case 2138: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.NorthCW); break; }
|
||||
//Light Wood
|
||||
case 2105: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.WestCW); break; }
|
||||
case 2107: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.EastCCW); break; }
|
||||
case 2109: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.WestCCW); break; }
|
||||
case 2111: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.EastCW); break; }
|
||||
case 2113: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.SouthCW); break; }
|
||||
case 2115: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.NorthCCW); break; }
|
||||
case 2117: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.SouthCCW); break; }
|
||||
case 2119: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.NorthCW); break; }
|
||||
//Dark Wood
|
||||
case 2150: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.WestCW); break; }
|
||||
case 2152: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.EastCCW); break; }
|
||||
case 2154: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.WestCCW); break; }
|
||||
case 2156: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.EastCW); break; }
|
||||
case 2158: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.SouthCW); break; }
|
||||
case 2160: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.NorthCCW); break; }
|
||||
case 2162: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.SouthCCW); break; }
|
||||
case 2164: { new YardGate(m_SelectedID, m_From, m_Price, m_House, loc, DoorFacing.NorthCW); break; }
|
||||
|
||||
case 5952: { new YardItem(5946, m_From, "Fountain", loc, m_Price, m_House); break; }
|
||||
case 6610: { new YardItem(6604, m_From, "Fountain", loc, m_Price, m_House); break; }
|
||||
|
||||
default:
|
||||
{
|
||||
if (YardRegistry.YardStairIDGroups.ContainsKey(m_SelectedID))
|
||||
{
|
||||
new YardStair(m_From, m_SelectedID, loc, m_Price, m_House);
|
||||
}
|
||||
else
|
||||
{
|
||||
new YardItem(m_SelectedID, m_From, "Yard", loc, m_Price, m_House);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
GumpUp();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_From.SendMessage("You do not have enough gold for that");
|
||||
GumpUp();
|
||||
}
|
||||
}
|
||||
|
||||
public void GumpUp()
|
||||
{
|
||||
m_From.SendGump(new YardGump(m_From, m_Shovel, m_Category, m_Page, m_SelectedID, m_Price));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user