public ItemStack Extract(int quantity) { if (quantity <= this.WItem.Quantity)//Anti-Cheat checking { //Build new items from this stack var newItem = new Database.Models.WorldItemModel(); newItem.ID = Database.Tables.WorldItemTable.TempID; newItem.Owner = this.WItem.Owner; newItem.Position = this.WItem.Position; newItem.TemplateID = this.WItem.TemplateID; newItem.Effects = this.WItem.Effects; newItem.Quantity = quantity; newItem.Engine = new Engines.EffectEngine(newItem.Effects); newItem.Engine.Load(); //Build new stack var newStack = new ItemStack(newItem); //Remove the quantity duplicated this.WItem.Quantity -= quantity; return newStack; } else { return this; } }