Fix/consume - Closes #10 (#14)

* Fixes stacking, consumption instead of deletion, and a few other minor issues. Server-side only.
* Fixes stacking of ore.
* Fixes cooking consumption.
This commit is contained in:
Kamron Batman 2018-02-22 00:57:07 -08:00 committed by GitHub
parent f6d5689dee
commit 0d9fe76b2b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 163 additions and 91 deletions

View file

@ -71,45 +71,40 @@ namespace Server.Items
{
if ( m_Item.Deleted ) return;
Item targetItem = targeted as Item;
if ( targetItem == null || targetItem.Deleted ) return;
m_Item.Consume();
if ( targeted is Eggs )
{
m_Item.Delete();
((Eggs)targeted).Consume();
targetItem.Consume();
from.AddToBackpack( new UnbakedQuiche() );
from.AddToBackpack( new Eggshells() );
}
else if ( targeted is CheeseWheel )
{
m_Item.Delete();
((CheeseWheel)targeted).Consume();
targetItem.Consume();
from.AddToBackpack( new CheesePizza() );
}
else if ( targeted is Sausage )
{
m_Item.Delete();
((Sausage)targeted).Consume();
targetItem.Consume();
from.AddToBackpack( new SausagePizza() );
}
else if ( targeted is Apple )
{
m_Item.Delete();
((Apple)targeted).Consume();
targetItem.Consume();
from.AddToBackpack( new UnbakedApplePie() );
}
else if ( targeted is Peach )
{
m_Item.Delete();
((Peach)targeted).Consume();
targetItem.Consume();
from.AddToBackpack( new UnbakedPeachCobbler() );
}
@ -174,9 +169,10 @@ namespace Server.Items
{
if ( m_Item.Deleted ) return;
m_Item.Consume();
if ( targeted is BowlFlour )
{
m_Item.Delete();
((BowlFlour)targeted).Delete();
from.AddToBackpack( new CakeMix() );
@ -184,7 +180,6 @@ namespace Server.Items
else if ( targeted is Campfire )
{
from.PlaySound( 0x225 );
m_Item.Delete();
InternalTimer t = new InternalTimer( from, (Campfire)targeted );
t.Start();
}
@ -273,9 +268,10 @@ namespace Server.Items
{
if ( m_Item.Deleted ) return;
m_Item.Consume();
if ( targeted is Dough )
{
m_Item.Delete();
((Dough)targeted).Consume();
from.AddToBackpack( new SweetDough() );
@ -283,7 +279,6 @@ namespace Server.Items
if (targeted is BowlFlour)
{
m_Item.Consume();
((BowlFlour)targeted).Delete();
from.AddToBackpack( new CookieMix() );
@ -420,12 +415,7 @@ namespace Server.Items
get{ return m_Quantity; }
set
{
if ( value < 0 )
value = 0;
else if ( value > 20 )
value = 20;
m_Quantity = value;
m_Quantity = Math.Min(20, Math.Max(0, value));
if ( m_Quantity == 0 )
Delete();

View file

@ -96,6 +96,10 @@ namespace Server.Items
public BaseOre( Serial serial ) : base( serial )
{
}
public override bool CanStackWith(Item dropped)
{
return dropped.Stackable && Stackable && dropped.GetType() == GetType() && dropped.Hue == Hue && dropped.Name == Name && (dropped.Amount + Amount) <= 60000 && dropped != this;
}
public override void AddNameProperty( ObjectPropertyList list )
{
@ -698,4 +702,4 @@ namespace Server.Items
return new ValoriteIngot();
}
}
}
}