//::///////////////////////////////////////////////
//:: Identification
//::
/*
    Roll a spellcraft check to attempt to ID an item.
*/
//:://////////////////////////////////////////////
//:: Created By: Stratovarius
//:: Created On: July 15, 2005
//:://////////////////////////////////////////////

#include "prc_alterations"
#include "prc_inc_spells"

int LoreItem(object item)
{
    int id=0;
    if (!GetIdentified(item))
    {
        id=1;
        SetIdentified(item,TRUE);
    }
    int gp = GetGoldPieceValue(item);
    int nLore;

    if (gp<10)  nLore= 0;
    if (gp==10)     nLore= 1;
    if (gp>11)  nLore= 2;
    if (gp>50)  nLore= 3;
    if (gp>101)     nLore= 4;
    if (gp>151)     nLore= 5;
    if (gp>201)     nLore= 6;
    if (gp>301)     nLore= 7;
    if (gp>401)     nLore= 8;
    if (gp>501)     nLore= 9;
    if (gp>1001)    nLore= 10;
    if (gp>2501)    nLore= 11;
    if (gp>3751)    nLore= 12;
    if (gp>4801)    nLore= 13;
    if (gp>6501)    nLore= 14;
    if (gp>9501)    nLore= 15;
    if (gp>13001)   nLore= 16;
    if (gp>17001)   nLore= 17;
    if (gp>20001)   nLore= 18;
    if (gp>30001)   nLore= 19;
    if (gp>40001)   nLore= 20;
    if (gp>50001)   nLore= 21;
    if (gp>60001)   nLore= 22;
    if (gp>80001)   nLore= 23;
    if (gp>100001)  nLore= 24;
    if (gp>150001)  nLore= 25;
    if (gp>200001)  nLore= 26;
    if (gp>250001)  nLore= 27;
    if (gp>300001)  nLore= 28;
    if (gp>350001)  nLore= 29;
    if (gp>400001)  nLore= 30;
    if (gp>500001)
    {
        gp= gp - 500000;
        gp = gp / 100000;
        nLore = gp + 31;
    }
    if (id) SetIdentified(item,FALSE);
    return nLore;
}

void main()
{
    object oItem = PRCGetSpellTargetObject();

    if (!GetLocalInt(oItem, "MaesterID"))
    {
        effect eVis;

        int nDC = LoreItem(oItem);
        int nSkill = GetIsSkillSuccessful(OBJECT_SELF, SKILL_SPELLCRAFT, nDC);

        if (nSkill)
        {
             eVis = EffectVisualEffect(VFX_IMP_MAGICAL_VISION);
             SetIdentified(oItem, TRUE);
        }
        else
        {
             eVis = EffectVisualEffect(VFX_IMP_BLIND_DEAF_M);
        }

        SetLocalInt(oItem, "MaesterID", TRUE);
        SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
    }
}