#include "x2_inc_itemprop"
void main()
{
     object oPC = GetPCSpeaker();
     //Place any items in the main hand or the off-hand in the inventory
     object oCopied;
     int nCursed;
     if (GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC) != OBJECT_INVALID)
        {
            nCursed = GetItemCursedFlag(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC));
            oCopied = CopyItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC), oPC, TRUE);
            if (oCopied != OBJECT_INVALID) DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC));
            if (nCursed == TRUE) SetItemCursedFlag(oCopied, TRUE);
            nCursed = FALSE;
        }
     if (GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC) != OBJECT_INVALID)
        {
            nCursed = GetItemCursedFlag(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC));
            oCopied = CopyItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC), oPC, TRUE);
            if (oCopied != OBJECT_INVALID) DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC));
            if (nCursed == TRUE) SetItemCursedFlag(oCopied, TRUE);
            nCursed = FALSE;
        }
     //The end of this chunk of code
     itemproperty ipAdd;

        object oItem = GetFirstItemInInventory(oPC);
        while (GetIsObjectValid(oItem))
        {
        if (GetLocalInt(oItem, "Prototype") == TRUE)
        {
        //Applying the correct property.
        if (GetLocalString(oPC, "LastProperty") == "Mighty") ipAdd = ItemPropertyMaxRangeStrengthMod(6);
        if (GetLocalString(oPC, "LastProperty") == "Critical") ipAdd = ItemPropertyMassiveCritical(IP_CONST_DAMAGEBONUS_6);
        if (GetLocalString(oPC, "LastProperty") == "Damage")
            {
            if (GetLocalString(oPC, "Parameter") == "Acid") ipAdd = ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ACID, IP_CONST_DAMAGEBONUS_6);
            if (GetLocalString(oPC, "Parameter") == "Divine") ipAdd = ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_DIVINE, IP_CONST_DAMAGEBONUS_6);
            if (GetLocalString(oPC, "Parameter") == "Sonic") ipAdd = ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_SONIC, IP_CONST_DAMAGEBONUS_6);
            if (GetLocalString(oPC, "Parameter") == "Fire") ipAdd = ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGEBONUS_6);
            if (GetLocalString(oPC, "Parameter") == "Cold") ipAdd = ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_COLD, IP_CONST_DAMAGEBONUS_6);
            if (GetLocalString(oPC, "Parameter") == "Electrical") ipAdd = ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ELECTRICAL, IP_CONST_DAMAGEBONUS_6);
            SetLocalInt(oPC, "SubType", GetItemPropertySubType(ipAdd));
            }

        IPSafeAddItemProperty(oItem, ipAdd);

        return;
        }
        oItem = GetNextItemInInventory(oPC);
        }
}