2026/01/12 Late Update
Hexblade doesn't get Shield proficency. Forsaker gets Craft (Alchemy) and Craft (Poison) as class skills. Forsaker can use default helms now. Forsaker can use arms & armor made from special materials. Fixed Dread Necromancer Spirit Worm TLK error. Disabled AI Talent for Awesome Blow. Fixed Warlock + Battlecaster ASF w/ Chain Shirt. Add Material and Quality itemprops to special material crafting. Fixed bug where breaking concentration can screw up next manifestation due to variables not being cleared. Tweaked Defensive Manifestation. Hexblades can't cast in heavy armor. +1 Attack Bonus from Masterwork is removed after enchantment to +1. Fixed issue where Forsaker's Ability Boost would stack with each login. Tweaked Celebrant of Sharess TLK entry. Tweaked Soulblade Warrior TLK entry. Tweaked Vow of Poverty's TLK entry.
This commit is contained in:
@@ -557,6 +557,9 @@ void _ManifestationHB(object oManifester, location lManifester, object oMfToken)
|
||||
{
|
||||
if(DEBUG) DoDebug("_ManifestationHB(): Manifester moved or lost concentration, destroying token");
|
||||
_DestroyManifestationToken(oManifester, oMfToken);
|
||||
|
||||
//:: Clean up variables
|
||||
_CleanManifestationVariables(oManifester);
|
||||
|
||||
// Inform manifester
|
||||
FloatingTextStrRefOnCreature(16828435, oManifester, FALSE); // "You have lost concentration on the power you were attempting to manifest!"
|
||||
@@ -810,6 +813,25 @@ struct manifestation EvaluateManifestation(object oManifester, object oTarget, s
|
||||
manif.bCanManifest = FALSE;
|
||||
}
|
||||
|
||||
// Check defensive manifestation BEFORE PP deduction
|
||||
if(GetLocalInt(oManifester, "PRC_DefensiveManifestActive"))
|
||||
{
|
||||
int nPowerLevel = GetPowerLevel(oManifester);
|
||||
int nDC = 15 + nPowerLevel;
|
||||
|
||||
if(!GetPRCIsSkillSuccessful(oManifester, SKILL_CONCENTRATION, nDC))
|
||||
{
|
||||
// Failed - deduct PP and prevent manifestation
|
||||
LosePowerPoints(oManifester, manif.nPPCost, TRUE);
|
||||
PayMetapsionicsFocuses(manif);
|
||||
manif.bCanManifest = FALSE;
|
||||
SendMessageToPC(oManifester, "Defensive manifestation concentration check failed.");
|
||||
return manif;
|
||||
}
|
||||
|
||||
manif.bDefensive = TRUE;
|
||||
}
|
||||
|
||||
// Psi-like abilities ignore PP costs and metapsi
|
||||
if(!bIsPsiLike)
|
||||
{
|
||||
@@ -820,7 +842,7 @@ struct manifestation EvaluateManifestation(object oManifester, object oTarget, s
|
||||
PayMetapsionicsFocuses(manif);
|
||||
}
|
||||
|
||||
if(GetLocalInt(oManifester, "PRC_DefensiveManifestActive"))
|
||||
/* if(GetLocalInt(oManifester, "PRC_DefensiveManifestActive"))
|
||||
{
|
||||
// Concentration check (DC 15 + power level)
|
||||
int nPowerLevel = GetPowerLevel(oManifester);
|
||||
@@ -837,7 +859,7 @@ struct manifestation EvaluateManifestation(object oManifester, object oTarget, s
|
||||
// Set defensive flag for any other systems that need it
|
||||
SendMessageToPC(oManifester, "Defensive manifestion concentration check successful.");
|
||||
manif.bDefensive = TRUE;
|
||||
}
|
||||
} */
|
||||
|
||||
//* APPLY SIDE-EFFECTS THAT RESULT FROM SUCCESSFULL MANIFESTATION HERE *//
|
||||
// Psicraft for all those who can see
|
||||
@@ -1118,4 +1140,4 @@ struct manifestation EvaluateDiaDragChannel(object oManifester, object oTarget,
|
||||
}
|
||||
|
||||
// Test main
|
||||
//void main(){}
|
||||
//:: void main(){}
|
||||
|
||||
Reference in New Issue
Block a user