Psionic shot should work with Eldritch Blast

Psionic shot should work with Eldritch Blast.  Ranger / TW Rend & OSTWF tweak  Fixed PTWF access in Tempest feat list.  Updated release archive.
This commit is contained in:
Jaysyn904
2024-09-14 23:56:04 -04:00
parent c330f061ca
commit 094b0c6b5a
10 changed files with 291 additions and 216 deletions

View File

@@ -15,8 +15,6 @@
#include "inc_item_props"
#include "prc_x2_itemprop"
//:: void main (){}
/**
* All of the following functions use the following parameters:
*
@@ -673,16 +671,38 @@ void DoWeaponEquip(object oPC, object oItem, int nHand)
ForceUnequip(oPC, oItem, nHand);
}
//OTWF
if(GetHasFeat(FEAT_OTWF, oPC))
{
// When wielding a one-handed weapon in your off hand, you take penalties for fighting with two weapons as if you were wielding a light weapon in your off hand
if (nWeaponSize == nRealSize && nHand == ATTACK_BONUS_OFFHAND)
{
SetCompositeAttackBonus(oPC, "OTWFL", 2, ATTACK_BONUS_OFFHAND);
SetCompositeAttackBonus(oPC, "OTWFR", 2, ATTACK_BONUS_ONHAND);
}
}
//:: Oversized TWF
//:: Check if the player is a Ranger, wearing medium/heavy armor, and does not have Two-Weapon Fighting feat
int bIsRestricted = FALSE;
// Check if the player has levels in the Ranger class
if (GetLevelByClass(CLASS_TYPE_RANGER, oPC) > 0)
{
// Check if the player is wearing medium or heavy armor
int nArmorType = GetArmorType(GetItemInSlot(INVENTORY_SLOT_CHEST, oPC));
if (nArmorType == ARMOR_TYPE_MEDIUM || nArmorType == ARMOR_TYPE_HEAVY)
{
// Check if the player does not have the Two-Weapon Fighting feat
if (!GetHasFeat(FEAT_TWO_WEAPON_FIGHTING, oPC))
{
// Set the restricted flag to TRUE if all conditions are met
bIsRestricted = TRUE;
}
}
}
//:: Proceed with OSTWF bonuses if the restrictions are not met
if (!bIsRestricted)
{
if (GetHasFeat(FEAT_OTWF, oPC))
{
// When wielding a one-handed weapon in your off hand, you take penalties for fighting with two weapons as if you were wielding a light weapon in your off hand
if (nWeaponSize == nRealSize && nHand == ATTACK_BONUS_OFFHAND)
{
SetCompositeAttackBonus(oPC, "OTWFL", 2, ATTACK_BONUS_OFFHAND);
SetCompositeAttackBonus(oPC, "OTWFR", 2, ATTACK_BONUS_ONHAND);
}
}
}
//check for proficiency
DoProficiencyCheck(oPC, oItem, nHand);
@@ -757,4 +777,6 @@ void DoRacialEquip(object oPC, int nBaseType)
else
SetCompositeAttackBonus(oPC, "PrimitiveWeapon", 0);
}
}
}
//:: void main (){}