2025/09/21

Tweaked Cerebremancer's featlist.
Epic DFA is 21st lvl not 11th.
Added EffectPetrificationImmune().
Fixed Large monk damage. @nShaken
Fixed expanded monk damage. @nShaken
Fixed Phantom Steed, oops.
Bahamut breath is a Fort save.
Xaniqos school works with Skirmish now..
Gave Drider a female racial appearance.
Tweaked oozemaster Light Fortification TLK entry.
This commit is contained in:
Jaysyn904
2025-09-21 16:09:09 -04:00
parent 7ce076815d
commit 8e2cfc9779
13 changed files with 382 additions and 307 deletions

View File

@@ -185,6 +185,7 @@ int GetIsShaken(object oTarget);
//////////////////////////////////////////////////
#include "prc_inc_castlvl" // get prc_racial_const, prc_inc_nwscript, prc_inc_newip
#include "inc_epicspelldef"
//////////////////////////////////////////////////
/* Internal functions */
@@ -746,7 +747,6 @@ effect EffectImmunityMiscAll()
//:: Immunity to all gaze attacks
effect EffectGazeImmune()
{
effect eBlank;
effect eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_CHARM);
eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_CONFUSION);
@@ -768,6 +768,23 @@ effect EffectGazeImmune()
return eReturn;
}
//:: Immunity to all perification attacks
effect EffectPetrificationImmune()
{
effect eReturn = EffectSpellImmunity(SPELLABILITY_TOUCH_PETRIFY);
eReturn = EffectSpellImmunity(SPELLABILITY_BREATH_PETRIFY);
eReturn = EffectSpellImmunity(SPELL_FLESH_TO_STONE);
eReturn = EffectSpellImmunity(SPELL_STONEHOLD);
eReturn = EffectSpellImmunity(SPELL_EPIC_A_STONE);
eReturn = EffectSpellImmunity(POWER_CRYSTALLIZE);
eReturn = EffectSpellImmunity(MELD_BASILISK_MASK);
eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_PETRIFY);
eReturn = TagEffect(eReturn, "PRCPetrificationImmune");
return eReturn;
}
int GetIsShaken(object oTarget)
{
effect eEffect = GetFirstEffect(oTarget);

View File

@@ -308,7 +308,7 @@ int FindUnarmedDamage(object oCreature)
if (GetHasFeat(FEAT_INCREASE_DAMAGE2, oCreature)) iDieIncrease = 2;
else if (GetHasFeat(FEAT_INCREASE_DAMAGE1, oCreature)) iDieIncrease = 1;
//:: Expansion / Compression powers
/* //:: Expansion / Compression powers (Double dipping?)
int nExpansion = GetLocalInt(oCreature, "PRC_Power_Expansion_SizeIncrease");
int nCompression = GetLocalInt(oCreature, "PRC_Power_Compression_SizeReduction");
@@ -320,7 +320,7 @@ int FindUnarmedDamage(object oCreature)
if (nCompression)
{
iSize -= nCompression;
}
} */
iMonkDamage += iDieIncrease;
iShouDamage += iDieIncrease;

View File

@@ -2736,6 +2736,47 @@ object HorseSummonPaladinMount(int bPHBDuration=FALSE)
return oMount;
} // HorseSummonPaladinMount()
object HorseSummonPhantomSteed(int nCasterLvl, int nDuration)
{ // PURPOSE: Summon Phantom Steed
object oSummoner=OBJECT_SELF;
object oMount;
location lLoc;
int nDespawnTime;
int nCurrentTime;
int nMountNum=1;
string sResRef=HORSE_PALADIN_PREFIX;
effect eVFX;
oMount=HorseGetPaladinMount(oSummoner);
if (!GetIsObjectValid(oMount) && GetObjectType(oSummoner) == OBJECT_TYPE_CREATURE)
{ // okay to summon - only one mount at a time
if ((GetIsPC(oSummoner) || GetIsDM(oSummoner))&&!GetHasFeat(FEAT_HORSE_MENU,oSummoner)) HorseAddHorseMenu(oSummoner);
if (nCasterLvl < 11) nMountNum = 2;
else if (nCasterLvl > 10 && nCasterLvl < 15) nMountNum = 3;
else if (nCasterLvl > 14 && nCasterLvl < 25) nMountNum = 4;
else if (nCasterLvl > 24 && nCasterLvl < 30) nMountNum = 5;
else if (nCasterLvl > 29 && nCasterLvl < 35) nMountNum = 6;
else if (nCasterLvl > 34 && nCasterLvl < 40) nMountNum = 7;
else if (nCasterLvl > 39) nMountNum = 8;
lLoc=HORSE_SupportGetMountLocation(oSummoner,oSummoner);
oMount=HorseCreateHorse(sResRef+IntToString(nMountNum),lLoc,oSummoner);
if (!GetIsObjectValid(oMount)) oMount=HorseCreateHorse(sResRef+IntToString(nMountNum),GetLocation(oSummoner),oSummoner);
if (GetIsObjectValid(oMount))
{ // oMount created
eVFX=EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oMount,3.0);
eVFX=EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2);
if (nMountNum>3) eVFX=EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVFX,GetLocation(oMount));
nCurrentTime=HORSE_SupportAbsoluteMinute();
nDespawnTime=(nDuration*60)+nCurrentTime;
SetLocalInt(oSummoner,"nX3_PALADIN_UNSUMMON",nDespawnTime);
if (GetLocalInt(GetModule(),"X3_ENABLE_MOUNT_DB")&&GetIsPC(oSummoner)) SetLocalInt(oSummoner,"bX3_STORE_MOUNT_INFO",TRUE);
SetLocalObject(oSummoner,"oX3PaladinMount",oMount);
} // oMount created
} // okay to summon - only one paladin mount at a time
else { oMount=OBJECT_INVALID; }
return oMount;
} // HorseSummonPaladinMount()
void HorseUnsummonPaladinMount()
{ // PURPOSE: Unsummon Paladin Mount