2025/08/22 Update

Reverted to 4.56 to track down a bug that started in 4.57.  Bugfixed back to 4.61.
It's amazing the damage that one skipped case statement can do.
This commit is contained in:
Jaysyn904
2025-08-22 17:54:55 -04:00
parent 59b2630adf
commit 246f8d56aa
3624 changed files with 101489 additions and 93263 deletions

View File

@@ -27,6 +27,9 @@
1734 - Turn_Blightspawned
2259 - turn outsider
3497 - Turn cold
25992 - FEAT_PLANT_DEFIANCE
25993 - FEAT_PLANT_CONTROL
*/
#include "prc_inc_clsfunc"
@@ -57,7 +60,7 @@ void main()
}
// Because Turn Undead/Outsider isn't from a domain, skip this check
if(nTurnType != SPELL_TURN_UNDEAD && nTurnType != SPELL_TURN_OUTSIDER)
if(nTurnType != SPELL_TURN_UNDEAD && nTurnType != SPELL_TURN_OUTSIDER && nTurnType != SPELL_PLANT_DEFIANCE && nTurnType != SPELL_PLANT_CONTROL)
{
// Used by the uses per day check code for bonus domains
if(!DecrementDomainUses(GetTurningDomain(nTurnType), OBJECT_SELF))
@@ -210,7 +213,37 @@ void main()
}
else
{
if(nTurnOrRebuke == ACTION_TURN)
if(nTurnOrRebuke == ACTION_TURN)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SUNSTRIKE), oTest);
// If target's HD < half level we would normally destroy.
// For plants targeted by Plant Defiance/Control, never destroy <20> apply non-lethal outcome instead.
if(nTargetHD < nLevel/2)
{
if(nTargetRace == RACIAL_TYPE_PLANT
&& (nTurnType == SPELL_PLANT_DEFIANCE || nTurnType == SPELL_PLANT_CONTROL))
{
// For Turn-type (Plant Defiance) -> DoTurn (fear)
// For Control-type (Plant Control) -> DoCommand (dominate)
if(nTurnType == SPELL_PLANT_DEFIANCE)
DelayCommand(0.0, DoTurn(oTest));
else
DelayCommand(0.0, DoCommand(oTest));
}
else
{
// Default: destroy
DelayCommand(0.0, DoDestroy(oTest));
}
}
else
{
DoTurn(oTest);
}
}
/* if(nTurnOrRebuke == ACTION_TURN)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SUNSTRIKE), oTest);
//if half of level, destroy
@@ -219,7 +252,7 @@ void main()
DelayCommand(0.0, DoDestroy(oTest));
else
DoTurn(oTest);
}
} */
else
{
bDisplayCommandMessage = TRUE;