2026/04/02 Morning Update
Added Chaos domain. Added Glory domain. Added Law domain. Added Luck domain. Added Madness domain. Added Mind domain. Added Moon domain. Added new Shaman / Monk feats to Shaman feat tracker function. Corrected all instances of Summon Monster to Summon Creature in the TLK
This commit is contained in:
@@ -1418,6 +1418,13 @@ const int FEAT_BONUS_DOMAIN_SPELLS = 2046;
|
||||
const int FEAT_BONUS_DOMAIN_SCALEYKIND = 2047;
|
||||
const int FEAT_BONUS_DOMAIN_BLIGHTBRINGER = 2048;
|
||||
const int FEAT_BONUS_DOMAIN_DRAGON = 2122;
|
||||
const int FEAT_BONUS_DOMAIN_CHAOS = 25130;
|
||||
const int FEAT_BONUS_DOMAIN_LAW = 25131;
|
||||
const int FEAT_BONUS_DOMAIN_LUCK = 25132;
|
||||
const int FEAT_BONUS_DOMAIN_GLORY = 25133;
|
||||
const int FEAT_BONUS_DOMAIN_MADNESS = 25134;
|
||||
const int FEAT_BONUS_DOMAIN_MIND = 25135;
|
||||
const int FEAT_BONUS_DOMAIN_MOON = 25136;
|
||||
|
||||
// Domain Power Feats
|
||||
const int FEAT_DOMAIN_POWER_DARKNESS = 3458;
|
||||
@@ -1450,6 +1457,13 @@ const int FEAT_DOMAIN_POWER_SPELLS = 4046;
|
||||
const int FEAT_DOMAIN_POWER_SCALEYKIND = 4057;
|
||||
const int FEAT_DOMAIN_POWER_BLIGHTBRINGER = 2250;
|
||||
const int FEAT_DOMAIN_POWER_DRAGON = 4064;
|
||||
const int FEAT_DOMAIN_POWER_CHAOS = 25138;
|
||||
const int FEAT_DOMAIN_POWER_LAW = 25139;
|
||||
const int FEAT_DOMAIN_POWER_LUCK = 25140;
|
||||
const int FEAT_DOMAIN_POWER_GLORY = 25141;
|
||||
const int FEAT_DOMAIN_POWER_MADNESS = 25142;
|
||||
const int FEAT_DOMAIN_POWER_MIND = 25143;
|
||||
const int FEAT_DOMAIN_POWER_MOON = 25144;
|
||||
|
||||
// Cast Bonus Domain
|
||||
const int FEAT_CAST_DOMAIN_LEVEL_ONE = 2049;
|
||||
|
||||
@@ -6463,8 +6463,12 @@ int DomainPower(object oCaster, int nSpellID, int nSpellSchool = -1)
|
||||
if (GetHasDescriptor(nSpellID, DESCRIPTOR_EVIL) && GetHasFeat(FEAT_EVIL_DOMAIN_POWER, oCaster))
|
||||
nBonus += 1;
|
||||
|
||||
// Boosts Caster level with good spells by 1
|
||||
if (GetHasDescriptor(nSpellID, DESCRIPTOR_GOOD) && GetHasFeat(FEAT_GOOD_DOMAIN_POWER, oCaster))
|
||||
// Boosts Caster level with chaos spells by 1
|
||||
if (GetHasDescriptor(nSpellID, DESCRIPTOR_CHAOTIC) && GetHasFeat(FEAT_DOMAIN_POWER_CHAOS, oCaster))
|
||||
nBonus += 1;
|
||||
|
||||
// Boosts Caster level with law spells
|
||||
if (GetHasDescriptor(nSpellID, DESCRIPTOR_LAWFUL) && GetHasFeat(FEAT_DOMAIN_POWER_LAW, oCaster))
|
||||
nBonus += 1;
|
||||
|
||||
return nBonus;
|
||||
|
||||
@@ -160,6 +160,7 @@ int GetIsBioDivineClass(int nClass)
|
||||
|| nClass == CLASS_TYPE_PALADIN
|
||||
|| nClass == CLASS_TYPE_SHAMAN
|
||||
|| nClass == CLASS_TYPE_UR_PRIEST
|
||||
|| nClass == CLASS_TYPE_OCULAR
|
||||
|| nClass == CLASS_TYPE_RANGER;
|
||||
}
|
||||
|
||||
@@ -447,6 +448,13 @@ void CheckBonusDomains(object oPC)
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_DRAGON, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_DRAGON);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_COLD, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_COLD);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_WINTER, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_WINTER);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_CHAOS, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_CHAOS);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_LAW, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_LAW);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_LUCK, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_LUCK);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_GLORY, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_GLORY);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_MADNESS, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_MADNESS);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_MIND, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_MIND);
|
||||
if (GetHasFeat(FEAT_BONUS_DOMAIN_MOON, oPC)) AddBonusDomain(oPC, PRC_DOMAIN_MOON);
|
||||
|
||||
//if (DEBUG) FloatingTextStringOnCreature("Check Bonus Domains is running", oPC, FALSE);
|
||||
}
|
||||
@@ -529,15 +537,17 @@ int GetTurningDomain(int nSpell)
|
||||
{
|
||||
switch(nSpell)
|
||||
{
|
||||
case SPELL_TURN_REPTILE: return PRC_DOMAIN_SCALEYKIND;
|
||||
case SPELL_TURN_OOZE: return PRC_DOMAIN_SLIME;
|
||||
case SPELL_TURN_SPIDER: return PRC_DOMAIN_SPIDER;
|
||||
case SPELL_TURN_PLANT: return PRC_DOMAIN_PLANT;
|
||||
case SPELL_TURN_AIR: return PRC_DOMAIN_AIR;
|
||||
case SPELL_TURN_EARTH: return PRC_DOMAIN_EARTH;
|
||||
case SPELL_TURN_FIRE: return PRC_DOMAIN_FIRE;
|
||||
case SPELL_TURN_WATER: return PRC_DOMAIN_WATER;
|
||||
case SPELL_TURN_BLIGHTSPAWNED: return PRC_DOMAIN_BLIGHTBRINGER;
|
||||
case SPELL_TURN_REPTILE: return PRC_DOMAIN_SCALEYKIND;
|
||||
case SPELL_TURN_OOZE: return PRC_DOMAIN_SLIME;
|
||||
case SPELL_TURN_SPIDER: return PRC_DOMAIN_SPIDER;
|
||||
case SPELL_TURN_PLANT: return PRC_DOMAIN_PLANT;
|
||||
case SPELL_TURN_AIR: return PRC_DOMAIN_AIR;
|
||||
case SPELL_TURN_EARTH: return PRC_DOMAIN_EARTH;
|
||||
case SPELL_TURN_FIRE: return PRC_DOMAIN_FIRE;
|
||||
case SPELL_TURN_WATER: return PRC_DOMAIN_WATER;
|
||||
case SPELL_TURN_BLIGHTSPAWNED: return PRC_DOMAIN_BLIGHTBRINGER;
|
||||
case SPELL_DOMAIN_POWER_MADNESS: return PRC_DOMAIN_MADNESS;
|
||||
case SPELL_DOMAIN_POWER_MOON: return PRC_DOMAIN_MOON;
|
||||
}
|
||||
|
||||
return -1;
|
||||
@@ -583,4 +593,6 @@ int GetDomainCasterLevel(object oPC)
|
||||
+ GetLevelByClass(CLASS_TYPE_BLIGHTLORD, oPC)
|
||||
+ GetLevelByClass(CLASS_TYPE_CONTEMPLATIVE, oPC)
|
||||
+ GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
//:: void main (){}
|
||||
@@ -1399,7 +1399,11 @@ void DomainUses(object oPC)
|
||||
if(!GetHasFeat(FEAT_BONUS_DOMAIN_SCALEYKIND, oPC) || PRC_Funcs_GetFeatKnown(oPC, FEAT_DOMAIN_POWER_SCALEYKIND))
|
||||
FeatUsePerDay(oPC, FEAT_DOMAIN_POWER_SCALEYKIND, ABILITY_CHARISMA, 3);
|
||||
if(!GetHasFeat(FEAT_BONUS_DOMAIN_PLANT, oPC) || PRC_Funcs_GetFeatKnown(oPC, FEAT_PLANT_DOMAIN_POWER))
|
||||
FeatUsePerDay(oPC, FEAT_PLANT_DOMAIN_POWER, ABILITY_CHARISMA, 3);
|
||||
FeatUsePerDay(oPC, FEAT_PLANT_DOMAIN_POWER, ABILITY_CHARISMA, 3);
|
||||
if(!GetHasFeat(FEAT_BONUS_DOMAIN_MADNESS, oPC) || PRC_Funcs_GetFeatKnown(oPC, FEAT_DOMAIN_POWER_MADNESS))
|
||||
FeatUsePerDay(oPC, FEAT_DOMAIN_POWER_MADNESS, ABILITY_CHARISMA, 3);
|
||||
if(!GetHasFeat(FEAT_BONUS_DOMAIN_MOON, oPC) || PRC_Funcs_GetFeatKnown(oPC, FEAT_DOMAIN_POWER_MOON))
|
||||
FeatUsePerDay(oPC, FEAT_DOMAIN_POWER_MOON, ABILITY_CHARISMA, 3);
|
||||
}
|
||||
|
||||
void HathranFear(object oPC)
|
||||
|
||||
@@ -981,6 +981,8 @@ int PRCMySavingThrow(int nSavingThrow, object oTarget, int nDC, int nSaveType =
|
||||
// +2 bonus on saves against mind affecting, done here
|
||||
if(GetLevelByClass(CLASS_TYPE_FIST_DAL_QUOR, oTarget) > 1)
|
||||
nDC -= 2;
|
||||
if(GetHasFeat(FEAT_DOMAIN_POWER_MIND, oTarget) || GetHasFeat(FEAT_BONUS_DOMAIN_MIND, oTarget))
|
||||
nDC -= 2;
|
||||
// Scorpion's Resolve gives a +4 bonus on mind affecting saves
|
||||
if(GetHasFeat(FEAT_SCORPIONS_RESOLVE, oTarget))
|
||||
nDC -= 4;
|
||||
|
||||
@@ -274,7 +274,34 @@ int GetIsTurnOrRebuke(object oTarget, int nTurnType, int nTargetRace)
|
||||
nReturn = ACTION_REBUKE;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
case FEAT_DOMAIN_POWER_MADNESS:
|
||||
{
|
||||
// Madness domain rebukes or commands oozes
|
||||
if(nTargetRace == RACIAL_TYPE_ABERRATION)
|
||||
nReturn = ACTION_TURN;
|
||||
|
||||
break;
|
||||
}
|
||||
case FEAT_DOMAIN_POWER_MOON:
|
||||
{
|
||||
// Moon domain rebukes lycanthropes
|
||||
if(nTargetRace == RACIAL_TYPE_SHAPECHANGER)
|
||||
{
|
||||
string sName = GetName(oTarget);
|
||||
int nAppearance = GetAppearanceType(oTarget);
|
||||
|
||||
// Check if name starts with "were" OR has lycanthrope appearance
|
||||
if((GetStringLeft(GetStringLowerCase(sName), 4) == "were") ||
|
||||
nAppearance == APPEARANCE_TYPE_WEREWOLF ||
|
||||
nAppearance == APPEARANCE_TYPE_WERECAT ||
|
||||
nAppearance == APPEARANCE_TYPE_WERERAT)
|
||||
{
|
||||
nReturn = ACTION_TURN;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//always turn baelnorns & archliches
|
||||
|
||||
@@ -1013,7 +1013,7 @@ const int IP_CONST_FEAT_CHECK_DOMAIN_SLOTS = 151;
|
||||
const int IP_CONST_FEAT_WAR_DOMAIN = 152;
|
||||
const int IP_CONST_FEAT_STRENGTH_DOMAIN = 153;
|
||||
const int IP_CONST_FEAT_PROTECTION_DOMAIN = 154;
|
||||
const int IP_CONST_FEAT_LUCK_DOMAIN = 155;
|
||||
//const int IP_CONST_FEAT_LUCK_DOMAIN = 155;
|
||||
const int IP_CONST_FEAT_DEATH_DOMAIN = 156;
|
||||
const int IP_CONST_FEAT_AIR_DOMAIN = 157;
|
||||
const int IP_CONST_FEAT_ANIMAL_DOMAIN = 158;
|
||||
@@ -1062,6 +1062,13 @@ const int IP_CONST_FEAT_BLIGHTBRINGER = 200;
|
||||
const int IP_CONST_FEAT_DRAGON_DOMAIN = 397;
|
||||
const int IP_CONST_FEAT_COLD_DOMAIN = 230;
|
||||
const int IP_CONST_FEAT_WINTER_DOMAIN = 232;
|
||||
const int IP_CONST_FEAT_CHAOS_DOMAIN = 24900;
|
||||
const int IP_CONST_FEAT_LAW_DOMAIN = 24901;
|
||||
const int IP_CONST_FEAT_LUCK_DOMAIN = 24902;
|
||||
const int IP_CONST_FEAT_GLORY_DOMAIN = 24903;
|
||||
const int IP_CONST_FEAT_MADNESS_DOMAIN = 24904;
|
||||
const int IP_CONST_FEAT_MIND_DOMAIN = 24905;
|
||||
const int IP_CONST_FEAT_MOON_DOMAIN = 24906;
|
||||
|
||||
// Lasher
|
||||
const int IP_CONST_FEAT_IMPROVED_KNOCKDOWN = 264;
|
||||
|
||||
@@ -278,57 +278,64 @@ const int POLYMORPH_TYPE_ALGOID = 164;
|
||||
//:: These constants are off by 1 to allow 0 to be the FALSE return value.
|
||||
//::///////////////////
|
||||
|
||||
const int PRC_DOMAIN_AIR = 1;
|
||||
const int PRC_DOMAIN_ANIMAL = 2;
|
||||
const int PRC_DOMAIN_DEATH = 4;
|
||||
const int PRC_DOMAIN_DESTRUCTION = 5;
|
||||
const int PRC_DOMAIN_EARTH = 6;
|
||||
const int PRC_DOMAIN_EVIL = 7;
|
||||
const int PRC_DOMAIN_FIRE = 8;
|
||||
const int PRC_DOMAIN_GOOD = 9;
|
||||
const int PRC_DOMAIN_HEALING = 10;
|
||||
const int PRC_DOMAIN_KNOWLEDGE = 11;
|
||||
const int PRC_DOMAIN_MAGIC = 14;
|
||||
const int PRC_DOMAIN_PLANT = 15;
|
||||
const int PRC_DOMAIN_PROTECTION = 16;
|
||||
const int PRC_DOMAIN_STRENGTH = 17;
|
||||
const int PRC_DOMAIN_SUN = 18;
|
||||
const int PRC_DOMAIN_TRAVEL = 19;
|
||||
const int PRC_DOMAIN_TRICKERY = 20;
|
||||
const int PRC_DOMAIN_WAR = 21;
|
||||
const int PRC_DOMAIN_WATER = 22;
|
||||
const int PRC_DOMAIN_DARKNESS = 31;
|
||||
const int PRC_DOMAIN_STORM = 32;
|
||||
const int PRC_DOMAIN_METAL = 33;
|
||||
const int PRC_DOMAIN_PORTAL = 34;
|
||||
const int PRC_DOMAIN_FORCE = 35;
|
||||
const int PRC_DOMAIN_SLIME = 36;
|
||||
const int PRC_DOMAIN_TYRANNY = 37;
|
||||
const int PRC_DOMAIN_DOMINATION = 38;
|
||||
const int PRC_DOMAIN_SPIDER = 39;
|
||||
const int PRC_DOMAIN_UNDEATH = 40;
|
||||
const int PRC_DOMAIN_TIME = 41;
|
||||
const int PRC_DOMAIN_DWARF = 42;
|
||||
const int PRC_DOMAIN_CHARM = 43;
|
||||
const int PRC_DOMAIN_ELF = 44;
|
||||
const int PRC_DOMAIN_FAMILY = 45;
|
||||
const int PRC_DOMAIN_FATE = 46;
|
||||
const int PRC_DOMAIN_GNOME = 47;
|
||||
const int PRC_DOMAIN_ILLUSION = 48;
|
||||
const int PRC_DOMAIN_HATRED = 49;
|
||||
const int PRC_DOMAIN_HALFLING = 50;
|
||||
const int PRC_DOMAIN_NOBILITY = 51;
|
||||
const int PRC_DOMAIN_OCEAN = 52;
|
||||
const int PRC_DOMAIN_ORC = 53;
|
||||
const int PRC_DOMAIN_RENEWAL = 54;
|
||||
const int PRC_DOMAIN_RETRIBUTION = 55;
|
||||
const int PRC_DOMAIN_RUNE = 56;
|
||||
const int PRC_DOMAIN_SPELLS = 57;
|
||||
const int PRC_DOMAIN_SCALEYKIND = 58;
|
||||
const int PRC_DOMAIN_BLIGHTBRINGER = 59;
|
||||
const int PRC_DOMAIN_DRAGON = 60;
|
||||
const int PRC_DOMAIN_COLD = 61;
|
||||
const int PRC_DOMAIN_WINTER = 62;
|
||||
const int PRC_DOMAIN_AIR = 1;
|
||||
const int PRC_DOMAIN_ANIMAL = 2;
|
||||
const int PRC_DOMAIN_CHAOS = 3;
|
||||
const int PRC_DOMAIN_DEATH = 4;
|
||||
const int PRC_DOMAIN_DESTRUCTION = 5;
|
||||
const int PRC_DOMAIN_EARTH = 6;
|
||||
const int PRC_DOMAIN_EVIL = 7;
|
||||
const int PRC_DOMAIN_FIRE = 8;
|
||||
const int PRC_DOMAIN_GOOD = 9;
|
||||
const int PRC_DOMAIN_HEALING = 10;
|
||||
const int PRC_DOMAIN_KNOWLEDGE = 11;
|
||||
const int PRC_DOMAIN_LAW = 12;
|
||||
const int PRC_DOMAIN_LUCK = 13;
|
||||
const int PRC_DOMAIN_MAGIC = 14;
|
||||
const int PRC_DOMAIN_PLANT = 15;
|
||||
const int PRC_DOMAIN_PROTECTION = 16;
|
||||
const int PRC_DOMAIN_STRENGTH = 17;
|
||||
const int PRC_DOMAIN_SUN = 18;
|
||||
const int PRC_DOMAIN_TRAVEL = 19;
|
||||
const int PRC_DOMAIN_TRICKERY = 20;
|
||||
const int PRC_DOMAIN_WAR = 21;
|
||||
const int PRC_DOMAIN_WATER = 22;
|
||||
const int PRC_DOMAIN_GLORY = 26;
|
||||
const int PRC_DOMAIN_MADNESS = 27;
|
||||
const int PRC_DOMAIN_MIND = 28;
|
||||
const int PRC_DOMAIN_MOON = 29;
|
||||
const int PRC_DOMAIN_DARKNESS = 31;
|
||||
const int PRC_DOMAIN_STORM = 32;
|
||||
const int PRC_DOMAIN_METAL = 33;
|
||||
const int PRC_DOMAIN_PORTAL = 34;
|
||||
const int PRC_DOMAIN_FORCE = 35;
|
||||
const int PRC_DOMAIN_SLIME = 36;
|
||||
const int PRC_DOMAIN_TYRANNY = 37;
|
||||
const int PRC_DOMAIN_DOMINATION = 38;
|
||||
const int PRC_DOMAIN_SPIDER = 39;
|
||||
const int PRC_DOMAIN_UNDEATH = 40;
|
||||
const int PRC_DOMAIN_TIME = 41;
|
||||
const int PRC_DOMAIN_DWARF = 42;
|
||||
const int PRC_DOMAIN_CHARM = 43;
|
||||
const int PRC_DOMAIN_ELF = 44;
|
||||
const int PRC_DOMAIN_FAMILY = 45;
|
||||
const int PRC_DOMAIN_FATE = 46;
|
||||
const int PRC_DOMAIN_GNOME = 47;
|
||||
const int PRC_DOMAIN_ILLUSION = 48;
|
||||
const int PRC_DOMAIN_HATRED = 49;
|
||||
const int PRC_DOMAIN_HALFLING = 50;
|
||||
const int PRC_DOMAIN_NOBILITY = 51;
|
||||
const int PRC_DOMAIN_OCEAN = 52;
|
||||
const int PRC_DOMAIN_ORC = 53;
|
||||
const int PRC_DOMAIN_RENEWAL = 54;
|
||||
const int PRC_DOMAIN_RETRIBUTION = 55;
|
||||
const int PRC_DOMAIN_RUNE = 56;
|
||||
const int PRC_DOMAIN_SPELLS = 57;
|
||||
const int PRC_DOMAIN_SCALEYKIND = 58;
|
||||
const int PRC_DOMAIN_BLIGHTBRINGER = 59;
|
||||
const int PRC_DOMAIN_DRAGON = 60;
|
||||
const int PRC_DOMAIN_COLD = 61;
|
||||
const int PRC_DOMAIN_WINTER = 62;
|
||||
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Trap Const
|
||||
|
||||
@@ -1726,4 +1726,8 @@ const int SPELL_FACECHANGER_QS2 = 19395;
|
||||
const int SPELL_FACECHANGER_QS3 = 19396;
|
||||
|
||||
//:: Saint Template
|
||||
const int SAINT_PROTECTIVE_AURA = 16386;
|
||||
const int SAINT_PROTECTIVE_AURA = 16386;
|
||||
|
||||
//:: Domain Powers
|
||||
const int SPELL_DOMAIN_POWER_MADNESS = 17680;
|
||||
const int SPELL_DOMAIN_POWER_MOON = 17681;
|
||||
Reference in New Issue
Block a user