Shaman wasn't getting domain bonus feats

Shaman wasn't getting domain bonus feats.  Fixed epic && bug in feat enforcement script.
This commit is contained in:
Jaysyn904 2024-09-24 22:28:04 -04:00
parent 1b043074dc
commit 914300411e
7 changed files with 57 additions and 11 deletions

View File

@ -156,10 +156,11 @@ int TestSpellTarget(object oPC, object oTarget, int nSpell)
int GetIsBioDivineClass(int nClass)
{
return nClass == CLASS_TYPE_CLERIC
|| nClass == CLASS_TYPE_DRUID
|| nClass == CLASS_TYPE_PALADIN
|| nClass == CLASS_TYPE_UR_PRIEST
|| nClass == CLASS_TYPE_RANGER;
|| nClass == CLASS_TYPE_DRUID
|| nClass == CLASS_TYPE_PALADIN
|| nClass == CLASS_TYPE_SHAMAN
|| nClass == CLASS_TYPE_UR_PRIEST
|| nClass == CLASS_TYPE_RANGER;
}
void CastDomainSpell(object oPC, int nSlot, int nLevel)

View File

@ -371,7 +371,7 @@ void EvalPRCFeats(object oPC)
// If there is a bonus domain, it will always be in the first slot, so just check that.
// It also runs things that clerics with those domains need
if (GetPersistantLocalInt(oPC, "PRCBonusDomain1") > 0 || GetLevelByClass(CLASS_TYPE_CLERIC, oPC))
if (GetPersistantLocalInt(oPC, "PRCBonusDomain1") > 0 || GetLevelByClass(CLASS_TYPE_CLERIC, oPC) || GetLevelByClass(CLASS_TYPE_SHAMAN, oPC))
DelayCommand(0.1f, ExecuteScript("prc_domain_skin", oPC));
// special add atk bonus equal to Enhancement

View File

@ -338,6 +338,7 @@ include\prc_inc_drugfunc.nss \
include\prc_inc_effect.nss \
include\prc_inc_factotum.nss \
include\prc_inc_fork.nss \
include\prc_inc_function.ncs \
include\prc_inc_function.nss \
include\prc_inc_hextor.nss \
include\prc_inc_itmrstr.nss \

View File

@ -130,7 +130,52 @@ void AddDomainFeat(object oPC, object oSkin, int bFuncs)
if (GetHasFeat(FEAT_DOMAIN_POWER_DOMINATION, oPC) && !PRC_Funcs_GetFeatKnown(oPC, FEAT_SPELL_FOCUS_ENCHANTMENT)) PRC_Funcs_AddFeat(oPC, FEAT_SPELL_FOCUS_ENCHANTMENT);
}
else
{
{
effect eBonusFeat;
if (GetHasFeat(FEAT_DOMAIN_POWER_DARKNESS, oPC))
{
eBonusFeat = EffectBonusFeat(FEAT_BLIND_FIGHT);
eBonusFeat = SupernaturalEffect(eBonusFeat);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonusFeat, oPC);
}
if (GetHasFeat(FEAT_DOMAIN_POWER_DWARF, oPC))
{
eBonusFeat = EffectBonusFeat(FEAT_GREAT_FORTITUDE);
eBonusFeat = SupernaturalEffect(eBonusFeat);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonusFeat, oPC);
}
if (GetHasFeat(FEAT_DOMAIN_POWER_ELF, oPC))
{
eBonusFeat = EffectBonusFeat(FEAT_POINT_BLANK_SHOT);
eBonusFeat = SupernaturalEffect(eBonusFeat);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonusFeat, oPC);
}
if (GetHasFeat(FEAT_DOMAIN_POWER_FATE, oPC))
{
eBonusFeat = EffectBonusFeat(FEAT_UNCANNY_DODGE_1);
eBonusFeat = SupernaturalEffect(eBonusFeat);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonusFeat, oPC);
}
if (GetHasFeat(FEAT_DOMAIN_POWER_TIME, oPC))
{
eBonusFeat = EffectBonusFeat(FEAT_IMPROVED_INITIATIVE);
eBonusFeat = SupernaturalEffect(eBonusFeat);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonusFeat, oPC);
}
if (GetHasFeat(FEAT_DOMAIN_POWER_UNDEATH, oPC))
{
eBonusFeat = EffectBonusFeat(FEAT_EXTRA_TURNING);
eBonusFeat = SupernaturalEffect(eBonusFeat);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonusFeat, oPC);
}
if (GetHasFeat(FEAT_DOMAIN_POWER_DOMINATION, oPC))
{
eBonusFeat = EffectBonusFeat(FEAT_SPELL_FOCUS_ENCHANTMENT);
eBonusFeat = SupernaturalEffect(eBonusFeat);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonusFeat, oPC);
}
}
/* {
if (GetHasFeat(FEAT_DOMAIN_POWER_DARKNESS, oPC)) AddSkinFeat(FEAT_BLIND_FIGHT, IP_CONST_FEAT_BLINDFIGHT, oSkin, oPC);
if (GetHasFeat(FEAT_DOMAIN_POWER_DWARF, oPC)) AddSkinFeat(FEAT_GREAT_FORTITUDE, IP_CONST_FEAT_GREAT_FORTITUDE, oSkin, oPC);
if (GetHasFeat(FEAT_DOMAIN_POWER_ELF, oPC)) AddSkinFeat(FEAT_POINT_BLANK_SHOT, IP_CONST_FEAT_POINTBLANK, oSkin, oPC);
@ -139,7 +184,7 @@ void AddDomainFeat(object oPC, object oSkin, int bFuncs)
if (GetHasFeat(FEAT_DOMAIN_POWER_TIME, oPC)) AddSkinFeat(FEAT_IMPROVED_INITIATIVE, IP_CONST_FEAT_IMPROVED_INIT, oSkin, oPC);
if (GetHasFeat(FEAT_DOMAIN_POWER_UNDEATH, oPC)) AddSkinFeat(FEAT_EXTRA_TURNING, IP_CONST_FEAT_EXTRA_TURNING, oSkin, oPC);
if (GetHasFeat(FEAT_DOMAIN_POWER_DOMINATION, oPC)) AddSkinFeat(FEAT_SPELL_FOCUS_ENCHANTMENT, IP_CONST_FEAT_SPELLFOCUSENC, oSkin, oPC);
}
} */
// +2 Conc and Spellcraft
if (GetHasFeat(FEAT_DOMAIN_POWER_SPELLS, oPC))
{

View File

@ -1864,7 +1864,7 @@ int AcolyteEgo()
int EpicCasting()
{
if(GetLocalInt(OBJECT_SELF, "PRC_ArcSpell9") && GetLocalInt(OBJECT_SELF, "PRC_DivSpell9"))
if(GetLocalInt(OBJECT_SELF, "PRC_ArcSpell9") || GetLocalInt(OBJECT_SELF, "PRC_DivSpell9"))
{
if(GetHasFeat(FEAT_EPIC_SPELLCASTING))
{

View File

@ -4948,8 +4948,7 @@ Tortoise shell slows a creature's movement as if it were wearing heavy armor. An
<entry id="16438" lang="en" sex="m">91</entry>
<entry id="16439" lang="en" sex="m">92</entry>
<entry id="16440" lang="en" sex="m">93</entry>
<entry id="16441" lang="en" sex="m">Grey Elf
</entry>
<entry id="16441" lang="en" sex="m">Grey Elf</entry>
<entry id="16442" lang="en" sex="m">Grey Elf</entry>
<entry id="16443" lang="en" sex="m">grey elf</entry>
<entry id="16444" lang="en" sex="m">grey elves</entry>
@ -73202,4 +73201,4 @@ Use: Activated</entry>
<entry id="77190" lang="en" sex="m">Spellcasting isn't required to take the Talon of Tiamat prestige class. If you currently have an arcane spellcasting, shadowcasting or invoking class, do not pick this marker feat.</entry>
<entry id="77191" lang="en" sex="m">Spellcasting isn't required to take the Dragonsong Lyrist prestige class. If you currently have an arcane spellcasting or shadowcasting class, do not pick this marker feat.</entry>
<entry id="77192" lang="en" sex="m">Spellcasting isn't required to take the Ollam prestige class. If you currently have an arcane spellcasting or shadowcasting class, do not pick this marker feat.</entry>
</tlk>
</tlk>