2025/12/28 Early update

Wemics have 5 RHD.
Fixed Whirling Blade.
Factotum now regenerates Inspiration after logging off and back on in he same server session.
Spellfire Wielder can't get extra spell levels from overcharging items.
Only one Chilling Fog at a time, casting a new one destroys the old one.
Heart of Fire now has a Chakra totem.
Pearl of Black doubt should be a bit more accurate.
Tweaked and tested psionic Keen Edge.
Fixed reversed sign for Echoblade validity in prc_equip.
Havoc Mage's Battlecast should clean up properly.
Updated readme.
This commit is contained in:
Jaysyn904
2025-12-28 00:28:56 -05:00
parent 376ced5b4c
commit 279580e5b5
18 changed files with 480 additions and 292 deletions

View File

@@ -39,7 +39,6 @@ void main()
check psi_spellhook to find out more
*/
if (!PsiPrePowerCastCode())
{
// If code within the PrePowerCastHook (i.e. UMD) reports FALSE, do not run this spell
@@ -49,24 +48,24 @@ void main()
// End of Spell Cast Hook
object oManifester = OBJECT_SELF;
object oTarget = IPGetTargetedOrEquippedMeleeWeapon();
object oItem = IPGetTargetedOrEquippedMeleeWeapon();
// Validity check
if(!GetIsObjectValid(oTarget))
if(!GetIsObjectValid(oItem))
{
FloatingTextStrRefOnCreature(83615, oManifester); // Item must be weapon or creature holding a weapon
return;
}
struct manifestation manif =
EvaluateManifestation(oManifester, oTarget,
EvaluateManifestation(oManifester, oItem,
PowerAugmentationProfile(),
METAPSIONIC_EXTEND
);
if(manif.bCanManifest)
{
int nDamageType = GetWeaponDamageType(oTarget);
int nDamageType = GetWeaponDamageType(oItem);
effect eVis = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
float fDuration = 600.0f * manif.nManifesterLevel;
if(manif.bExtend) fDuration *= 2;
@@ -74,9 +73,10 @@ void main()
if(nDamageType == DAMAGE_TYPE_PIERCING ||
nDamageType == DAMAGE_TYPE_SLASHING
)
{
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, GetItemPossessor(oTarget));
IPSafeAddItemProperty(oTarget, ItemPropertyKeen(), fDuration, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, TRUE, TRUE);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, GetItemPossessor(oItem));
IPSafeAddItemProperty(oItem, ItemPropertyKeen(), fDuration, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
}
}
}