//::///////////////////////////////////////////////
//:: Warchief
//:: prc_warchief.nss
//:://////////////////////////////////////////////
//:: Applies the Warchief Charisma boost
//:://////////////////////////////////////////////

#include "inc_item_props"
#include "prc_x2_itemprop"

void main()
{
    object oPC = OBJECT_SELF;
    int nWarChief = GetLevelByClass(CLASS_TYPE_WARCHIEF, oPC);

    //Ability Boost
    /*if(nWarChief > 1)
    {
        string sFlag = "WarchiefCha";
        // +2 at 2nd, 6th, 10th, etc.
        int nBonus = ((nWarChief + 2) / 4) * 2;
        int nDiff = nBonus - GetPersistantLocalInt(oPC, "NWNX_"+sFlag);

        if(nDiff != 0)//only part of the bouns was applied permanently or not applied at all
            SetCompositeBonus(GetPCSkin(oPC), sFlag, nDiff, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA);
    }*/

    //Devoted Bodyguards
    if(nWarChief > 7)
    {
        object oItem;
        object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
        int iEquip = GetLocalInt(oPC, "ONEQUIP");

        if(iEquip == 2// On Equip
        && GetItemLastEquipped() == oArmor)
        {
            // add bonus to armor
            IPSafeAddItemProperty(oArmor, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
        }
        else if(iEquip == 1// Unequip
        && GetBaseItemType(GetItemLastUnequipped()) == BASE_ITEM_ARMOR)
            RemoveSpecificProperty(oArmor, ITEM_PROPERTY_ONHITCASTSPELL, IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 0, 1, "", 1, DURATION_TYPE_TEMPORARY);
        else                  // On level, rest, or other events
            IPSafeAddItemProperty(oArmor, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
    }

}