2025/05/30 Afternoon Update

Fixed copy/paste bug with EWS & new weapons.
Added documentation for DoCharge and DoGrapple.
Bloodwar Gauntlets should provide keen now.
Strength of Stone should provide Immunity from Critical Hits now.
Shadowbane Stalker should be enterable now.
This commit is contained in:
Jaysyn904 2025-05-30 13:26:12 -04:00
parent be9a8e922d
commit 355815c64f
5 changed files with 88 additions and 18 deletions

View File

@ -24638,18 +24638,18 @@
24634 WEAP_SPEC_MAUL 16834192 444 ife_wepspec_mau 4 **** **** **** **** **** **** **** 24610 24423 0 0 0 **** **** **** **** 1 **** 2 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_SPECIALIZATION_DBL_SCIMITAR 1 **** **** **** **** **** 0 1
24635 WEAP_SPEC_DBL_SCIMITAR 16834201 444 ife_wepspec_dsc 4 **** **** **** **** **** **** **** 24611 24423 0 0 0 **** **** **** **** 1 **** 2 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_SPECIALIZATION_LIGHT_LANCE 1 **** **** **** **** **** 0 1
24636 WEAP_SPEC_GOAD 16834210 444 ife_wepspec_goa 4 **** **** **** **** **** **** **** 24612 24423 0 0 0 **** **** **** **** 1 **** 2 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_SPECIALIZATION_GOAD 1 **** **** **** **** **** 0 1
24637 EPIC_WEAPON_SPECIALIZATION_LIGHT_LANCE 16834112 8456 ife_ews_lnc **** **** **** **** **** **** **** **** 24625 24601 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_LIGHT_LANCE 1 **** **** **** **** **** 1 1
24638 EPIC_WEAPON_SPECIALIZATION_HEAVY_PICK 16834121 8456 ife_ews_hpck **** **** **** **** **** **** **** **** 24626 24602 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_HEAVY_PICK 1 **** **** **** **** **** 1 1
24639 EPIC_WEAPON_SPECIALIZATION_LIGHT_PICK 16834130 8456 ife_ews_lpck **** **** **** **** **** **** **** **** 24627 24603 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_LIGHT_PICK 1 **** **** **** **** **** 1 1
24640 EPIC_WEAPON_SPECIALIZATION_SAI 16834139 8456 ife_ews_sai **** **** **** **** **** **** **** **** 24628 24604 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_SAI 1 **** **** **** **** **** 1 1
24641 EPIC_WEAPON_SPECIALIZATION_NUNCHAKU 16834148 8456 ife_ews_nun **** **** **** **** **** **** **** **** 24629 24605 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_NUNCHAKU 1 **** **** **** **** **** 1 1
24642 EPIC_WEAPON_SPECIALIZATION_FALCHION 16834157 8456 ife_ews_fal **** **** **** **** **** **** **** **** 24630 24606 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_FALCHION 1 **** **** **** **** **** 1 1
24643 EPIC_WEAPON_SPECIALIZATION_SAP 16834166 8456 ife_ews_sap **** **** **** **** **** **** **** **** 24631 24607 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_SAP 1 **** **** **** **** **** 1 1
24644 EPIC_WEAPON_SPECIALIZATION_KATAR 16834175 8456 ife_ews_ktr **** **** **** **** **** **** **** **** 24632 24608 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_KATAR 1 **** **** **** **** **** 1 1
24645 EPIC_WEAPON_SPECIALIZATION_HEAVY_MACE 16834184 8456 ife_ews_hmc **** **** **** **** **** **** **** **** 24633 24609 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_HEAVY_MACE 1 **** **** **** **** **** 1 1
24646 EPIC_WEAPON_SPECIALIZATION_MAUL 16835193 8456 ife_ews_mau **** **** **** **** **** **** **** **** 24634 24610 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_MAUL 1 **** **** **** **** **** 1 1
24647 EPIC_WEAPON_SPECIALIZATION_DBL_SCIMITAR 16834202 8456 ife_ews_dsc **** **** **** **** **** **** **** **** 24635 24611 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_DBL_SCIMITAR 1 **** **** **** **** **** 1 1
24648 EPIC_WEAPON_SPECIALIZATION_GOAD 16834211 8456 ife_ews_goa **** **** **** **** **** **** **** **** 24636 24612 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_GOAD 1 **** **** **** **** **** 1 1
24637 EPIC_WEAPON_SPECIALIZATION_LIGHT_LANCE 16834112 8456 ife_ews_lnc **** **** **** **** **** **** **** **** 24625 24613 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_LIGHT_LANCE 1 **** **** **** **** **** 1 1
24638 EPIC_WEAPON_SPECIALIZATION_HEAVY_PICK 16834121 8456 ife_ews_hpck **** **** **** **** **** **** **** **** 24626 24614 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_HEAVY_PICK 1 **** **** **** **** **** 1 1
24639 EPIC_WEAPON_SPECIALIZATION_LIGHT_PICK 16834130 8456 ife_ews_lpck **** **** **** **** **** **** **** **** 24627 24615 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_LIGHT_PICK 1 **** **** **** **** **** 1 1
24640 EPIC_WEAPON_SPECIALIZATION_SAI 16834139 8456 ife_ews_sai **** **** **** **** **** **** **** **** 24628 24616 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_SAI 1 **** **** **** **** **** 1 1
24641 EPIC_WEAPON_SPECIALIZATION_NUNCHAKU 16834148 8456 ife_ews_nun **** **** **** **** **** **** **** **** 24629 24617 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_NUNCHAKU 1 **** **** **** **** **** 1 1
24642 EPIC_WEAPON_SPECIALIZATION_FALCHION 16834157 8456 ife_ews_fal **** **** **** **** **** **** **** **** 24630 24618 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_FALCHION 1 **** **** **** **** **** 1 1
24643 EPIC_WEAPON_SPECIALIZATION_SAP 16834166 8456 ife_ews_sap **** **** **** **** **** **** **** **** 24631 24619 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_SAP 1 **** **** **** **** **** 1 1
24644 EPIC_WEAPON_SPECIALIZATION_KATAR 16834175 8456 ife_ews_ktr **** **** **** **** **** **** **** **** 24632 24620 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_KATAR 1 **** **** **** **** **** 1 1
24645 EPIC_WEAPON_SPECIALIZATION_HEAVY_MACE 16834184 8456 ife_ews_hmc **** **** **** **** **** **** **** **** 24633 24621 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_HEAVY_MACE 1 **** **** **** **** **** 1 1
24646 EPIC_WEAPON_SPECIALIZATION_MAUL 16835193 8456 ife_ews_mau **** **** **** **** **** **** **** **** 24634 24622 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_MAUL 1 **** **** **** **** **** 1 1
24647 EPIC_WEAPON_SPECIALIZATION_DBL_SCIMITAR 16834202 8456 ife_ews_dsc **** **** **** **** **** **** **** **** 24635 24623 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_DBL_SCIMITAR 1 **** **** **** **** **** 1 1
24648 EPIC_WEAPON_SPECIALIZATION_GOAD 16834211 8456 ife_ews_goa **** **** **** **** **** **** **** **** 24636 24624 0 0 0 **** **** **** **** 0.5 **** 11 **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_GOAD 1 **** **** **** **** **** 1 1
24649 IMP_CRIT_LIGHT_LANCE 16834113 228 ife_impcrit_lnc 8 **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** 0 **** 45 7938 **** **** **** **** **** **** **** FEAT_IMPROVED_CRITICAL_LIGHT_LANCE 1 **** **** **** **** **** 0 1
24650 IMP_CRIT_HEAVY_PICK 16834122 228 ife_impcrit_hpk 8 **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** 0 **** 45 7939 **** **** **** **** **** **** **** FEAT_IMPROVED_CRITICAL_HEAVY_PICK 1 **** **** **** **** **** 0 1
24651 IMP_CRIT_LIGHT_PICK 16834131 228 ife_impcrit_lpk 8 **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** 0 **** 45 7940 **** **** **** **** **** **** **** FEAT_IMPROVED_CRITICAL_LIGHT_PICK 1 **** **** **** **** **** 0 1

View File

@ -1041,6 +1041,37 @@ int GetIsCharging(object oPC)
return GetLocalInt(oPC, "PCIsCharging");
}
/**
* @brief Initiates a charge action by the player character (PC) toward a target.
*
* This function handles movement, potential attack resolution, damage calculations,
* bull rush attempts, and special feat/ability conditions such as Pounce or Flying Kick.
*
* @param oPC The creature performing the charge (usually the player character).
* @param oTarget The target of the charge.
* @param nDoAttack If TRUE (default), the PC will perform an attack after charging.
* @param nGenerateAoO If TRUE (default), movement may provoke attacks of opportunity (AoOs).
* If FALSE, a high temporary Tumble bonus is applied to prevent AoOs.
* @param nDamage Initial base damage to apply on a successful hit. Modified by feats or abilities.
* @param nDamageType The type of damage to apply. Set to -1 (default) to use weapon damage type.
* @param nBullRush If TRUE, attempt to initiate a Bull Rush after the attack.
* @param nExtraBonus Additional bonus damage or attack modifiers. Defaults to 0.
* @param nBullAoO If TRUE (default), allows AoOs triggered during Bull Rush resolution.
* @param nMustFollow If TRUE (default), the PC will always move toward the target even if it's invalid later.
* @param nAttack Attack bonus override for the charge attack. 0 = use default or calculate.
* @param nPounce If TRUE, the PC can perform a full attack on the charge. Determined automatically if not set.
*/
void DoCharge(object oPC, object oTarget, int nDoAttack = TRUE, int nGenerateAoO = TRUE, int nDamage = 0, int nDamageType = -1, int nBullRush = FALSE, int nExtraBonus = 0, int nBullAoO = TRUE, int nMustFollow = TRUE, int nAttack = 0, int nPounce = FALSE)
{
if(!nGenerateAoO)
@ -1377,6 +1408,19 @@ int GetIntToDamage(int nCheck)
return -1;
}
/**
* @brief Attempts to initiate a grapple between the PC and the target creature.
*
* @param oPC The player character initiating the grapple attempt.
* @param oTarget The target creature to be grappled.
* @param nExtraBonus Additional bonus added to the grapple check (e.g., from feats, spells, items).
* @param nGenerateAoO If TRUE, the target is allowed an Attack of Opportunity unless the PC has Improved Grapple.
* Defaults to TRUE.
* @param nSkipTouch If TRUE, the melee touch attack step is skipped (assumes auto-hit).
* Useful when a touch attack was already resolved elsewhere.
*
* @return TRUE if the grapple attempt succeeds, FALSE otherwise.
*/
int DoGrapple(object oPC, object oTarget, int nExtraBonus, int nGenerateAoO = TRUE, int nSkipTouch = FALSE)
{
if (GetGrapple(oTarget))

View File

@ -576,6 +576,11 @@ void main()
if(IPGetIsMeleeWeapon(oItem))
{
int nBonus = IPGetWeaponEnhancementBonus(oItem);
if (GetHasSpellEffect(MELD_BLOODWAR_GAUNTLETS, oMeldshaper))
{
BloodwarGauntlets(oMeldshaper, oItem, nEvent);
}
if (GetHasSpellEffect(MELD_INCARNATE_AVATAR, oMeldshaper))
{
@ -646,7 +651,7 @@ void main()
+ "oMeldshaper = " + DebugObject2Str(oMeldshaper) + "\n"
+ "oItem = " + DebugObject2Str(oItem) + "\n"
);
if (GetTag(oItem) == "moi_incarnatewpn")
ForceEquip(oMeldshaper, oItem, INVENTORY_SLOT_RIGHTHAND); // No unequipping this weapon
// Only applies to armours
@ -659,7 +664,9 @@ void main()
// Melee weapon
if(IPGetIsMeleeWeapon(oItem))
{
// Remove the attack bonus
BloodwarGauntlets(oMeldshaper, oItem, nEvent);
// Remove the attack bonus
RemoveSpecificProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS, -1, -1, 1, "", -1, DURATION_TYPE_TEMPORARY);
RemoveSpecificProperty(oItem, ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER, -1, -1, 1, "", -1, DURATION_TYPE_TEMPORARY);
RemoveSpecificProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, -1, 1, "", -1, DURATION_TYPE_TEMPORARY);

View File

@ -41,13 +41,15 @@ void main()
if(move.bCanManeuver)
{
effect eLink =EffectVisualEffect(VFX_DUR_ROOTED_TO_SPOT);
effect eLink = EffectVisualEffect(VFX_DUR_ROOTED_TO_SPOT);
if (GetHasDefensiveStance(oInitiator, DISCIPLINE_STONE_DRAGON))
{
eLink = EffectLinkEffects(eLink, EffectImmunity(IMMUNITY_TYPE_CRITICAL_HIT));
eLink = EffectLinkEffects(eLink, EffectSavingThrowIncrease(SAVING_THROW_ALL, 2));
}
eLink = EffectLinkEffects(eLink, EffectImmunity(IMMUNITY_TYPE_CRITICAL_HIT));
eLink = ExtraordinaryEffect(eLink);
InitiatorMovementCheck(oInitiator, move.nMoveId, 5.0);

View File

@ -1383,14 +1383,31 @@ void WarlockPrCs(object oPC)
void Shadowbane(object oPC)
{
SetLocalInt(oPC, "PRC_PrereqShadowbane", 1);
if(GetLevelByClass(CLASS_TYPE_CLERIC, oPC) ||
int nPreStalker = GetLevelByClass(CLASS_TYPE_CLERIC, oPC)
+ GetLevelByClass(CLASS_TYPE_ARCHIVIST, oPC)
+ GetLevelByClass(CLASS_TYPE_PALADIN, oPC)
+ GetLevelByClass(CLASS_TYPE_FAVOURED_SOUL, oPC)
+ GetLevelByClass(CLASS_TYPE_KNIGHT_CHALICE, oPC)
+ GetLevelByClass(CLASS_TYPE_SOLDIER_OF_LIGHT, oPC)
+ GetLevelByClass(CLASS_TYPE_SHAMAN, oPC)
+ GetLevelByClass(CLASS_TYPE_SLAYER_OF_DOMIEL, oPC);
if (nPreStalker)
{
SetLocalInt(oPC, "PRC_PrereqShadowbane", 0);
}
/* if(GetLevelByClass(CLASS_TYPE_CLERIC, oPC) ||
GetLevelByClass(CLASS_TYPE_ARCHIVIST, oPC) ||
GetLevelByClass(CLASS_TYPE_PALADIN, oPC) ||
GetLevelByClass(CLASS_TYPE_FAVOURED_SOUL, oPC) ||
GetLevelByClass(CLASS_TYPE_KNIGHT_CHALICE, oPC) ||
GetLevelByClass(CLASS_TYPE_SOLDIER_OF_LIGHT, oPC) ||
GetLevelByClass(CLASS_TYPE_SHAMAN, oPC) ||
GetLevelByClass(CLASS_TYPE_SLAYER_OF_DOMIEL, oPC))
SetLocalInt(oPC, "PRC_PrereqShadowbane", 0);
SetLocalInt(oPC, "PRC_PrereqShadowbane", 0); */
}
void KnightWeave(object oPC)