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) int GetIsBioDivineClass(int nClass)
{ {
return nClass == CLASS_TYPE_CLERIC return nClass == CLASS_TYPE_CLERIC
|| nClass == CLASS_TYPE_DRUID || nClass == CLASS_TYPE_DRUID
|| nClass == CLASS_TYPE_PALADIN || nClass == CLASS_TYPE_PALADIN
|| nClass == CLASS_TYPE_UR_PRIEST || nClass == CLASS_TYPE_SHAMAN
|| nClass == CLASS_TYPE_RANGER; || nClass == CLASS_TYPE_UR_PRIEST
|| nClass == CLASS_TYPE_RANGER;
} }
void CastDomainSpell(object oPC, int nSlot, int nLevel) 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. // 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 // 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)); DelayCommand(0.1f, ExecuteScript("prc_domain_skin", oPC));
// special add atk bonus equal to Enhancement // 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_effect.nss \
include\prc_inc_factotum.nss \ include\prc_inc_factotum.nss \
include\prc_inc_fork.nss \ include\prc_inc_fork.nss \
include\prc_inc_function.ncs \
include\prc_inc_function.nss \ include\prc_inc_function.nss \
include\prc_inc_hextor.nss \ include\prc_inc_hextor.nss \
include\prc_inc_itmrstr.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); if (GetHasFeat(FEAT_DOMAIN_POWER_DOMINATION, oPC) && !PRC_Funcs_GetFeatKnown(oPC, FEAT_SPELL_FOCUS_ENCHANTMENT)) PRC_Funcs_AddFeat(oPC, FEAT_SPELL_FOCUS_ENCHANTMENT);
} }
else 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_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_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); 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_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_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); if (GetHasFeat(FEAT_DOMAIN_POWER_DOMINATION, oPC)) AddSkinFeat(FEAT_SPELL_FOCUS_ENCHANTMENT, IP_CONST_FEAT_SPELLFOCUSENC, oSkin, oPC);
} } */
// +2 Conc and Spellcraft // +2 Conc and Spellcraft
if (GetHasFeat(FEAT_DOMAIN_POWER_SPELLS, oPC)) if (GetHasFeat(FEAT_DOMAIN_POWER_SPELLS, oPC))
{ {

View File

@ -1864,7 +1864,7 @@ int AcolyteEgo()
int EpicCasting() 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)) 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="16438" lang="en" sex="m">91</entry>
<entry id="16439" lang="en" sex="m">92</entry> <entry id="16439" lang="en" sex="m">92</entry>
<entry id="16440" lang="en" sex="m">93</entry> <entry id="16440" lang="en" sex="m">93</entry>
<entry id="16441" lang="en" sex="m">Grey Elf <entry id="16441" lang="en" sex="m">Grey Elf</entry>
</entry>
<entry id="16442" 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="16443" lang="en" sex="m">grey elf</entry>
<entry id="16444" lang="en" sex="m">grey elves</entry> <entry id="16444" lang="en" sex="m">grey elves</entry>