Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
45 lines
2.8 KiB
Plaintext
45 lines
2.8 KiB
Plaintext
/*
|
|
5/7/20 by Stratovarius
|
|
|
|
Ironsoul Forgemaster Weapon Bond
|
|
|
|
At 9th level, you create a special bond with any weapon that you craft. This bond allows you to invest essentia in the weapon as if it were a soulmeld.
|
|
Doing so grants you a bonus equal to twice the invested essentia on your damage rolls. If you have at least 1 point of essentia invested in the weapon,
|
|
it also dazes any living opponent you strike with it for 1 round (Fortitude negates, DC 10 + invested essentia + Con modifier).
|
|
You gain this ability only while using the weapon. If you unequip the weapon, you lose the soulmeld.
|
|
*/
|
|
|
|
#include "moi_inc_moifunc"
|
|
#include "prc_inc_fork"
|
|
|
|
void main()
|
|
{
|
|
object oMeldshaper = PRCGetSpellTargetObject();
|
|
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
|
object oShield = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oMeldshaper);
|
|
if (GetTag(oShield) == ReplaceChars(GetName(oMeldshaper), " ","") && nEssentia)
|
|
{
|
|
effect eLink = EffectVisualEffect(VFX_DUR_RESISTANCE);
|
|
if (nEssentia)
|
|
{
|
|
eLink = EffectLinkEffects(eLink, EffectDamageIncrease(IPGetDamageBonusConstantFromNumber(nEssentia*2), DAMAGE_TYPE_BLUDGEONING));
|
|
IPSafeAddItemProperty(oShield, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
|
AddEventScript(oShield, EVENT_ITEM_ONHIT, "moi_ironsoul", TRUE, FALSE);
|
|
oShield = GetItemInSlot(INVENTORY_SLOT_BOLTS, oMeldshaper);
|
|
IPSafeAddItemProperty(oShield, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 99999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
|
AddEventScript(oShield, EVENT_ITEM_ONHIT, "moi_ironsoul", TRUE, FALSE);
|
|
oShield = GetItemInSlot(INVENTORY_SLOT_BULLETS, oMeldshaper);
|
|
IPSafeAddItemProperty(oShield, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 99999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
|
AddEventScript(oShield, EVENT_ITEM_ONHIT, "moi_ironsoul", TRUE, FALSE);
|
|
oShield = GetItemInSlot(INVENTORY_SLOT_ARROWS, oMeldshaper);
|
|
IPSafeAddItemProperty(oShield, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 99999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
|
AddEventScript(oShield, EVENT_ITEM_ONHIT, "moi_ironsoul", TRUE, FALSE);
|
|
}
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
|
}
|
|
else if (nEssentia == 0)
|
|
FloatingTextStringOnCreature("You have no essentia invested in "+GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", PRCGetSpellId()))), oMeldshaper, FALSE);
|
|
else
|
|
FloatingTextStringOnCreature("You do not have a weapon equipped that you crafted", oMeldshaper, FALSE);
|
|
} |