Add helper function for removing an item from the player's inventory via item name. Add accessory refining check and refine functions. Release Build 10487.
Assert::AreEqual(1U,Inventory::GetItemCount(ITEM_DATA["Ring of the Slime King"].FragmentName()),L"Disassembly has given us a Slime King Ring Fragment.");
Assert::IsTrue(slimeKingRing.lock()->CanBeRefined(),L"Ring of the Slime King should now be allowed to be refined since we meet all requirements.");
player->SetMoney(0);
Assert::IsFalse(slimeKingRing.lock()->CanBeRefined(),L"Ring of the Slime King should not be allowed to be refined since we do not have enough money.");
Assert::AreEqual(ITEM_DATA[slimeKingRing.lock()->ActualName()].GetMaxStats().A_Read(attr),val,L"The current stats should be equal to the maximum stats when refinement is done.");
if(!CanBeRefined())ERR("WARNING! Trying to refine an item that cannot be refined! Make sure you are checking with CanBeRefined() before calling this function!");
//Auto-executes its use function and removes the amt specified from the inventory. Multiple amounts will cause the item to execute its useFunc multiple times.
staticboolUseItem(ITit,uint32_tamt=1);
//Returns true if the item has been consumed completely and there are 0 remaining of that type in our inventory.
Fragment Description = "A small piece of concentrated material from broken down jewelry."
# Number of fragments earned when breaking down an accessory.
Fragment Disassemble Gain Amount = 1
# Number of fragments required to Refine an accessory.
Fragment Refine Cost = 1
# Number of fragments required to Enchant an accessory.
Fragment Enchant Cost = 3
# Number of fragments and gold required to Refine an accessory.
Fragment Refine Cost = 1, 20g
# Number of fragments and gold required to Enchant an accessory.
Fragment Enchant Cost = 3, 35g
# How much to increase refined stats by with each refinement. (Ex. if the value is 20%, it takes 5 refinements at most from an item with the lowest possible stat to the max stat with 20% increments.)