/*int StartingConditional()
{
     object oPC = GetPCSpeaker();

        object oItem = GetFirstItemInInventory(oPC);
        int nValue;
        int nDC;
        while (GetIsObjectValid(oItem))
        {
        if (GetLocalInt(oItem, "Prototype") == TRUE)
        {
        nValue = GetGoldPieceValue(oItem);
        if (GetLocalString(oItem, "Type") == "Melee") nDC = 10 + nValue / 3250;
        if (GetLocalString(oItem, "Type") == "Ammo") nDC = 10 + 99*nValue / 800;
        if (GetLocalString(oItem, "Type") == "Shooter" && GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION) == FALSE) nDC = 10 + nValue / 1500;
        if (GetLocalString(oItem, "Type") == "Shooter" && GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION) == TRUE) nDC = 10 + nValue / 3250;
        if (GetLocalString(oItem, "Type") == "Throwing" || GetLocalString(oItem, "Type") == "MightyThrowing") nDC = 10 + 50*nValue / 600;
        return !GetIsSkillSuccessful(oPC, SKILL_CRAFT_WEAPON, nDC);
        }
        oItem = GetNextItemInInventory(oPC);
        }
        return FALSE;
}*/

#include "x2_inc_itemprop"

//This is actually the main function.
int script(object oItem, object oPC)
{
        int nValue;
        int nDC;
        int nSkill;
        nValue = GetGoldPieceValue(oItem);
        nDC = 10 + nValue / 3250;
        nSkill = SKILL_CRAFT_ARMOR;
        if (GetLocalString(oItem, "Type") == "Melee") {nDC = 10 + nValue / 3250; nSkill = SKILL_CRAFT_WEAPON;}
        if (GetLocalString(oItem, "Type") == "Ammo") {nDC = 10 + 99*nValue / 800; nSkill = SKILL_CRAFT_WEAPON;}
        if (GetLocalString(oItem, "Type") == "Shooter" && GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION) == FALSE) {nDC = 10 + nValue / 1500; nSkill = SKILL_CRAFT_WEAPON;}
        if (GetLocalString(oItem, "Type") == "Shooter" && GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION) == TRUE) {nDC = 10 + nValue / 3250; nSkill = SKILL_CRAFT_WEAPON;}
        if (GetLocalString(oItem, "Type") == "Throwing" || GetLocalString(oItem, "Type") == "MightyThrowing") {nDC = 10 + 50*nValue / 600; nSkill = SKILL_CRAFT_WEAPON;}
        return !GetIsSkillSuccessful(oPC, nSkill, nDC);
}

int StartingConditional()
{
     object oPC = GetPCSpeaker();
     int nSlot = 0;
     object oItem;
     int nResult;

     //Check if the item being crafted is equipped
     while (nSlot < 18)
     {
     oItem = GetItemInSlot(nSlot, oPC);
     if (GetLocalInt(oItem, "Prototype") == TRUE)
     nResult = script(oItem, oPC);
     nSlot++;
     }
     //If the item is not equipped, search for it in the inventory
     oItem = GetFirstItemInInventory(oPC);
     while (GetIsObjectValid(oItem))
     {
     if (GetLocalInt(oItem, "Prototype") == TRUE)
     nResult = script(oItem, oPC);
     oItem = GetNextItemInInventory(oPC);
     }

     return nResult;
}