Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
@@ -0,0 +1,274 @@
|
||||
using System;
|
||||
using Server;
|
||||
using System.Collections.Generic;
|
||||
using Server.Engines.Quests;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ShippingCrate : SmallCrate
|
||||
{
|
||||
public ProfessionalFisherQuest Quest { get; set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool QuestComplete
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Quest == null)
|
||||
return false;
|
||||
|
||||
return Quest.Completed;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile TurnInMonger
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Quest == null)
|
||||
return null;
|
||||
|
||||
return Quest.TurnIn;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile Quester
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Quest == null || !(Quest.Quester is Mobile))
|
||||
return null;
|
||||
|
||||
return Quest.Quester as Mobile;
|
||||
}
|
||||
}
|
||||
|
||||
public override int DefaultMaxWeight { get { return 1200; } }
|
||||
public override bool DisplaysContent { get { return false; } }
|
||||
|
||||
public ShippingCrate(ProfessionalFisherQuest quest)
|
||||
{
|
||||
Weight = 1.0;
|
||||
Quest = quest;
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (Quest == null)
|
||||
return;
|
||||
|
||||
int loc = 1116453; //~1_val~: ~2_val~/~3_val~
|
||||
FishQuestObjective obj = Quest.GetObjective();
|
||||
|
||||
if (obj == null)
|
||||
Delete();
|
||||
|
||||
foreach (KeyValuePair<Type, int[]> kvp in obj.Line)
|
||||
{
|
||||
int idx = FishQuestHelper.GetIndexForType(kvp.Key);
|
||||
list.Add(loc, "#{0}\t{1}\t{2}", FishQuestHelper.Labels[idx], kvp.Value[0].ToString(), kvp.Value[1].ToString());
|
||||
loc++;
|
||||
}
|
||||
|
||||
object delivery = GetDeliveryInfo();
|
||||
|
||||
if (delivery is string)
|
||||
list.Add((string)delivery);
|
||||
else
|
||||
list.Add((int)delivery);
|
||||
|
||||
list.Add(1076255); //NO-TRADE
|
||||
|
||||
list.Add(1072241, "{0}\t{1}\t{2}\t{3}", TotalItems, MaxItems, TotalWeight, MaxWeight);
|
||||
}
|
||||
|
||||
public override bool OnDragLift(Mobile from)
|
||||
{
|
||||
if (Quest == null)
|
||||
return base.OnDragLift(from);
|
||||
|
||||
if (Quest.Owner != from)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.OnDragLift(from);
|
||||
}
|
||||
|
||||
public override bool AllowSecureTrade(Mobile from, Mobile to, Mobile newOwner, bool accepted)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool OnDroppedToMobile(Mobile from, Mobile target)
|
||||
{
|
||||
from.SendLocalizedMessage(1076256); // That item cannot be traded.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool DropToItem(Mobile from, Item target, Point3D p)
|
||||
{
|
||||
from.SendLocalizedMessage(1076254); // That item cannot be dropped.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool OnDroppedToWorld(Mobile from, Point3D p)
|
||||
{
|
||||
from.SendLocalizedMessage(1076254); // That item cannot be dropped.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool OnStackAttempt(Mobile from, Item stack, Item dropped)
|
||||
{
|
||||
if (dropped is BaseHighseasFish && Quest != null)
|
||||
{
|
||||
FishQuestObjective obj = Quest.GetObjective();
|
||||
|
||||
if (obj != null)
|
||||
{
|
||||
if (obj.CheckLift(dropped) && base.OnStackAttempt(from, stack, dropped))
|
||||
{
|
||||
obj.Update(dropped);
|
||||
InvalidateProperties();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
from.SendLocalizedMessage(1116461); // This is not needed to fill the order.
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool OnDragDrop(Mobile from, Item dropped)
|
||||
{
|
||||
if (dropped is BaseHighseasFish && Quest != null)
|
||||
{
|
||||
FishQuestObjective obj = Quest.GetObjective();
|
||||
|
||||
if (obj != null && obj.CheckLift(dropped) && base.OnDragDrop(from, dropped))
|
||||
{
|
||||
obj.Update(dropped);
|
||||
InvalidateProperties();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
from.SendLocalizedMessage(1116461); // This is not needed to fill the order.
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool OnDragDropInto(Mobile from, Item dropped, Point3D p)
|
||||
{
|
||||
if (dropped is BaseHighseasFish && Quest != null)
|
||||
{
|
||||
FishQuestObjective obj = Quest.GetObjective();
|
||||
|
||||
if (obj != null && obj.CheckLift(dropped) && base.OnDragDropInto(from, dropped, p))
|
||||
{
|
||||
obj.Update(dropped);
|
||||
InvalidateProperties();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
from.SendLocalizedMessage(1116461); // This is not needed to fill the order.
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool CheckLift(Mobile from, Item item, ref LRReason reject)
|
||||
{
|
||||
if (Quest == null)
|
||||
return base.CheckLift(from, item, ref reject);
|
||||
|
||||
FishQuestObjective obj = Quest.GetObjective();
|
||||
|
||||
if (obj != null && obj.CheckLift(item))
|
||||
{
|
||||
reject = LRReason.CannotLift;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool CheckCarve(Item item)
|
||||
{
|
||||
if (Quest == null)
|
||||
return true;
|
||||
|
||||
FishQuestObjective obj = Quest.GetObjective();
|
||||
|
||||
if (obj.CheckLift(item))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public object GetDeliveryInfo()
|
||||
{
|
||||
if (Quest != null && Quest is ProfessionalFisherQuest && Quest.TurnIn != null)
|
||||
{
|
||||
Region reg = Quest.TurnIn.Region;
|
||||
|
||||
if (reg == null || reg.Name == null)
|
||||
return "Unknown Delivery";
|
||||
|
||||
if (reg.Name == "Sea Market")
|
||||
return 1116496;
|
||||
if (reg.Name == "Britain")
|
||||
return 1116497;
|
||||
if (reg.Name == "Trinsic")
|
||||
return 1116498;
|
||||
if (reg.Name == "Moonglow")
|
||||
return 1116499;
|
||||
if (reg.Name == "Skara Brae")
|
||||
return 1116500;
|
||||
if (reg.Name == "Vesper")
|
||||
return 1116501;
|
||||
if (reg.Name == "Jhelom")
|
||||
return 1116502;
|
||||
if (reg.Name == "Papua")
|
||||
return 1116503;
|
||||
}
|
||||
return "Unknown Delivery";
|
||||
}
|
||||
|
||||
public void AddQuest(ProfessionalFisherQuest quest)
|
||||
{
|
||||
Quest = quest;
|
||||
}
|
||||
|
||||
public override void Delete()
|
||||
{
|
||||
if (Quest != null && !Quest.Completed)
|
||||
Quest.OnResign(false);
|
||||
|
||||
base.Delete();
|
||||
}
|
||||
|
||||
public ShippingCrate(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user