forked from Jaysyn/PRC8
Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
75 lines
3.9 KiB
Plaintext
75 lines
3.9 KiB
Plaintext
/*
|
|
03/02/21 by Stratovarius
|
|
|
|
Aym, Queen Avarice
|
|
|
|
Once a monarch of dwarves, Aym allowed her greed to bring an end to her empire. As a vestige, she gives her
|
|
host the ability to wear armor without impedance, to set creatures alight with a touch, to resist the effects of fire, and to scatter objects with heavy blows.
|
|
|
|
Vestige Level: 1st
|
|
Binding DC: 15
|
|
Special Requirement: None
|
|
|
|
Granted Abilities:
|
|
Aym grants you powers that reflect her dwarven heritage and the ruin she brought to her kingdom.
|
|
|
|
Dwarven Step: You can move at normal speed (without the usual reduction) while wearing medium or heavy armor.
|
|
|
|
Halo of Fire: At will, you can shroud yourself in a wreath of flame. Any opponent that strikes you in melee takes
|
|
1d6 points of fire damage. You can also deal 1d6 points of fire damage with each melee touch attack you make.
|
|
|
|
Improved Disarm: You gain the benefit of the Improved Disarm feat.
|
|
|
|
Medium Armor Proficiency: You are proficient with medium armor.
|
|
|
|
Resistance to Fire: You have resistance to fire 10.
|
|
|
|
Ruinous Attack: If your effective binder level is at least 10th, your melee attacks are treated as +5 for the purpose of overcoming damage reduction.
|
|
*/
|
|
|
|
#include "bnd_inc_bndfunc"
|
|
|
|
void main()
|
|
{
|
|
object oBinder = PRCGetSpellTargetObject();
|
|
|
|
effect eLink = EffectLinkEffects(EffectVisualEffect(VFX_PERM_ELEMENTAL_SAVANT_FIRE), EffectPact(oBinder));
|
|
|
|
// We get this with the Practiced Binder feat
|
|
if (GetLevelByClass(CLASS_TYPE_BINDER, oBinder) || GetHasFeat(FEAT_PRACTICED_BINDER, oBinder))
|
|
{
|
|
if (!GetIsVestigeExploited(oBinder, VESTIGE_AYM_RESIST_FIRE)) eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_FIRE, 10));
|
|
}
|
|
|
|
// Binders only down here
|
|
if (GetLevelByClass(CLASS_TYPE_BINDER, oBinder))
|
|
{
|
|
object oItem;
|
|
if (!GetIsVestigeExploited(oBinder, VESTIGE_AYM_MEDIUM_ARMOR)) IPSafeAddItemProperty(GetPCSkin(oBinder), ItemPropertyBonusFeat(IP_CONST_FEAT_ARMOR_PROF_MEDIUM), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
if (!GetIsVestigeExploited(oBinder, VESTIGE_AYM_IMP_DISARM)) IPSafeAddItemProperty(GetPCSkin(oBinder), ItemPropertyBonusFeat(IP_CONST_FEAT_PRC_IMPROVED_DISARM), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
if (!GetIsVestigeExploited(oBinder, VESTIGE_AYM_HALO_FIRE))
|
|
{
|
|
IPSafeAddItemProperty(GetPCSkin(oBinder), ItemPropertyBonusFeat(IP_CONST_VESTIGE_AYM_HALO), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
// Add eventhook to the armor
|
|
oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oBinder);
|
|
IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
AddEventScript(oItem, EVENT_ITEM_ONHIT, "bnd_events", TRUE, FALSE);
|
|
}
|
|
if (!GetIsVestigeExploited(oBinder, VESTIGE_AYM_RUINOUS_ATTACK))
|
|
{
|
|
oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oBinder);
|
|
if(IPGetIsMeleeWeapon(oItem) && GetBinderLevel(oBinder, VESTIGE_AYM) >= 10)
|
|
{
|
|
IPSafeAddItemProperty(oItem, ItemPropertyAttackBonus(5), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
|
IPSafeAddItemProperty(oItem, ItemPropertyAttackPenalty(5), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
|
}
|
|
oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oBinder);
|
|
if(IPGetIsMeleeWeapon(oItem) && GetBinderLevel(oBinder, VESTIGE_AYM) >= 10)
|
|
{
|
|
IPSafeAddItemProperty(oItem, ItemPropertyAttackBonus(5), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
|
IPSafeAddItemProperty(oItem, ItemPropertyAttackPenalty(5), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
|
}
|
|
}
|
|
}
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oBinder, HoursToSeconds(24));
|
|
} |