forked from Jaysyn/PRC8
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.
66 lines
2.5 KiB
Plaintext
66 lines
2.5 KiB
Plaintext
#include "prc_inc_spells"
|
|
|
|
int GetDSWeaponAttackBonus(object oWeap)
|
|
{
|
|
object oPC = GetItemPossessor(oWeap);
|
|
itemproperty ip = GetFirstItemProperty(oWeap);
|
|
|
|
int iTotal = 0;
|
|
int iValue = 0;
|
|
|
|
while (GetIsItemPropertyValid(ip))
|
|
{
|
|
if (GetItemPropertyType(ip) == ITEM_PROPERTY_ATTACK_BONUS ||
|
|
GetItemPropertyType(ip) == ITEM_PROPERTY_ENHANCEMENT_BONUS)
|
|
{
|
|
iValue = GetItemPropertyCostTableValue(ip);
|
|
iTotal = (iValue > iTotal) ? iValue : iTotal;
|
|
}
|
|
else if (GetItemPropertyType(ip) == ITEM_PROPERTY_HOLY_AVENGER &&
|
|
GetLevelByClass(CLASS_TYPE_PALADIN, oPC))
|
|
{
|
|
iValue = 5;
|
|
iTotal = (iValue > iTotal) ? iValue : iTotal;
|
|
}
|
|
ip = GetNextItemProperty(oWeap);
|
|
}
|
|
|
|
return iTotal;
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oPC = PRCGetSpellTargetObject();
|
|
object oWeap1 = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
|
|
object oWeap2 = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
|
|
|
|
PRCRemoveEffectsFromSpell(oPC, GetSpellId());
|
|
|
|
// thankfully damage effects actually use the IP_CONST_DAMAGEBONUS constants too! :) Thus
|
|
// you can apply non-bioware damage bonuses as defined in the 2da.
|
|
int iDivBonus = GetHasFeat(DEMONSLAYING_1, oPC) ? IP_CONST_DAMAGEBONUS_1d6 : 0;
|
|
iDivBonus = GetHasFeat(DEMONSLAYING_2, oPC) ? IP_CONST_DAMAGEBONUS_2d6 : iDivBonus;
|
|
iDivBonus = GetHasFeat(DEMONSLAYING_3, oPC) ? IP_CONST_DAMAGEBONUS_3d6 : iDivBonus;
|
|
iDivBonus = GetHasFeat(DEMONSLAYING_4, oPC) ? IP_CONST_DAMAGEBONUS_4d6 : iDivBonus;
|
|
|
|
int iAttBonus = GetHasFeat(DEMONSLAYING_1, oPC) ? 1 : 0;
|
|
iAttBonus = GetHasFeat(DEMONSLAYING_2, oPC) ? 2 : iAttBonus;
|
|
iAttBonus = GetHasFeat(DEMONSLAYING_3, oPC) ? 3 : iAttBonus;
|
|
iAttBonus = GetHasFeat(DEMONSLAYING_4, oPC) ? 4 : iAttBonus;
|
|
|
|
int iAttBonusR = iAttBonus + GetDSWeaponAttackBonus(oWeap1);
|
|
int iAttBonusL = iAttBonus + GetDSWeaponAttackBonus(oWeap2);
|
|
|
|
effect eDam = VersusRacialTypeEffect(EffectDamageIncrease(iDivBonus, DAMAGE_TYPE_DIVINE), RACIAL_TYPE_OUTSIDER);
|
|
effect eAttR = VersusRacialTypeEffect(EffectAttackIncrease(iAttBonusR, ATTACK_BONUS_ONHAND), RACIAL_TYPE_OUTSIDER);
|
|
effect eAttL = VersusRacialTypeEffect(EffectAttackIncrease(iAttBonusL, ATTACK_BONUS_OFFHAND), RACIAL_TYPE_OUTSIDER);
|
|
|
|
effect eLink = EffectLinkEffects(eAttR, eAttL);
|
|
eLink = EffectLinkEffects(eLink, eDam);
|
|
|
|
eLink = SupernaturalEffect(eLink);
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC);
|
|
}
|
|
|