Invoker marker feats
Setup Invoker marker feats in 2DA, tlk, constants & scripts. Removed left over Frost Mage class abilities from FMM & Wild Mage.
This commit is contained in:
@@ -288,14 +288,132 @@ int GetInvocationPRCLevels(object oCaster)
|
||||
+ GetLevelByClass(CLASS_TYPE_ELDRITCH_DISCIPLE, oCaster)
|
||||
+ GetLevelByClass(CLASS_TYPE_ELDRITCH_THEURGE, oCaster);
|
||||
|
||||
//_some_ arcane spellcasting levels boost invocations
|
||||
if(GetLocalInt(oCaster, "INV_Caster") == 2)
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_ACOLYTE, oCaster) + 1) / 2
|
||||
+ (GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oCaster) + 1) / 2
|
||||
+ GetLevelByClass(CLASS_TYPE_ENLIGHTENEDFIST, oCaster)
|
||||
+ GetLevelByClass(CLASS_TYPE_MAESTER, oCaster)
|
||||
+ (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oCaster) + 1) / 2;
|
||||
//:: Some Arcane PrCs boost invocations
|
||||
/* if(GetLocalInt(oCaster, "INV_Caster") == 2)
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_ACOLYTE, oCaster) + 1) / 2
|
||||
+ (GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oCaster) + 1) / 2
|
||||
+ GetLevelByClass(CLASS_TYPE_ENLIGHTENEDFIST, oCaster)
|
||||
+ GetLevelByClass(CLASS_TYPE_MAESTER, oCaster)
|
||||
+ (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oCaster) + 1) / 2; */
|
||||
|
||||
if(GetLocalInt(oCaster, "INV_Caster") == 2)
|
||||
{
|
||||
//:: Abjurant Champion Invoking
|
||||
if(GetHasFeat(FEAT_ABCHAMP_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ABJURANT_CHAMPION, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_ABCHAMP_INVOKING_DFA, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ABJURANT_CHAMPION, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_ABCHAMP_INVOKING_DRAGON_SHAMAN, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ABJURANT_CHAMPION, oCaster);
|
||||
|
||||
//:: Acolyte of the Skin Invoking
|
||||
if(GetHasFeat(FEAT_AOTS_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_ACOLYTE, oCaster) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_AOTS_INVOKING_DFA, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_ACOLYTE, oCaster) + 1) / 2;
|
||||
|
||||
//:: Anima Mage Invoking
|
||||
if(GetHasFeat(FEAT_ANIMA_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ANIMA_MAGE, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_ANIMA_INVOKING_DFA, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ANIMA_MAGE, oCaster);
|
||||
|
||||
//:: Arcane Trickster Invoking
|
||||
if(GetHasFeat(FEAT_ARCTRICK_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ARCTRICK, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_ARCTRICK_INVOKING_DFA, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ARCTRICK, oCaster);
|
||||
|
||||
//:: Disciple of Asmodeus Invoking
|
||||
if(GetHasFeat(FEAT_ASMODEUS_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oCaster) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_ASMODEUS_INVOKING_DFA, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oCaster) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_ASMODEUS_INVOKING_DRAGON_SHAMAN, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oCaster) + 1) / 2;
|
||||
|
||||
//:: Blood Magus Invoking
|
||||
if(GetHasFeat(FEAT_BLDMAGUS_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_BLOOD_MAGUS, oCaster) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_BLDMAGUS_INVOKING_DFA, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_BLOOD_MAGUS, oCaster) + 1) / 2;
|
||||
|
||||
//:: Enlightened Fist Invoking
|
||||
if(GetHasFeat(FEAT_ENLIGHTENEDFIST_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ENLIGHTENEDFIST, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_ENLIGHTENEDFIST_INVOKING_DFA, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ENLIGHTENEDFIST, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_ENLIGHTENEDFIST_INVOKING_DRAGON_SHAMAN, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ENLIGHTENEDFIST, oCaster);
|
||||
|
||||
//:: Maester Invoking
|
||||
if(GetHasFeat(FEAT_MAESTER_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_MAESTER, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_MAESTER_INVOKING_DFA, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_MAESTER, oCaster);
|
||||
|
||||
//:: Talon of Tiamat Invoking
|
||||
if(GetHasFeat(FEAT_TIAMAT_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oCaster) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_TIAMAT_INVOKING_DFA, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oCaster) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_TIAMAT_INVOKING_DRAGON_SHAMAN, oCaster))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oCaster) + 1) / 2;
|
||||
|
||||
//:: Unseen Seer Invoking
|
||||
if(GetHasFeat(FEAT_UNSEEN_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_UNSEEN_SEER, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_UNSEEN_INVOKING_DFA, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_UNSEEN_SEER, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_UNSEEN_INVOKING_DRAGON_SHAMAN, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_UNSEEN_SEER, oCaster);
|
||||
|
||||
//:: Virtuoso Invoking
|
||||
if(GetHasFeat(FEAT_VIRTUOSO_INVOKING_WARLOCK, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_VIRTUOSO, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_VIRTUOSO_INVOKING_DFA, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_VIRTUOSO, oCaster);
|
||||
|
||||
if(GetHasFeat(FEAT_VIRTUOSO_INVOKING_DRAGON_SHAMAN, oCaster))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_VIRTUOSO, oCaster);
|
||||
|
||||
//:: Wild Mage Invoking
|
||||
if(GetHasFeat(FEAT_WILDMAGE_INVOKING_WARLOCK, oCaster))
|
||||
{
|
||||
int nClass = GetLevelByClass(CLASS_TYPE_WILD_MAGE, oCaster);
|
||||
if (nClass)
|
||||
nLevel += nClass - 3 + d6();
|
||||
}
|
||||
if(GetHasFeat(FEAT_WILDMAGE_INVOKING_DFA, oCaster))
|
||||
{
|
||||
int nClass = GetLevelByClass(CLASS_TYPE_WILD_MAGE, oCaster);
|
||||
if (nClass)
|
||||
nLevel += nClass - 3 + d6();
|
||||
}
|
||||
if(GetHasFeat(FEAT_WILDMAGE_INVOKING_DRAGON_SHAMAN, oCaster))
|
||||
{
|
||||
int nClass = GetLevelByClass(CLASS_TYPE_WILD_MAGE, oCaster);
|
||||
if (nClass)
|
||||
nLevel += nClass - 3 + d6();
|
||||
}
|
||||
}
|
||||
|
||||
return nLevel;
|
||||
}
|
||||
|
||||
@@ -493,4 +611,4 @@ void ClearInvocationLocalVars(object oPC)
|
||||
}
|
||||
|
||||
// Test main
|
||||
//void main(){}
|
||||
// void main(){}
|
||||
|
@@ -1745,7 +1745,7 @@ const int FEAT_SPELLDANCER_SPELLCASTING_VASSAL=26636;
|
||||
const int FEAT_SWIFT_WING_SPELLCASTING_VASSAL=26637;
|
||||
const int FEAT_WARPRIEST_SPELLCASTING_VASSAL=26638;
|
||||
|
||||
//Missed Marker feats : (
|
||||
//:: Missed Spellcasting Marker feats : (
|
||||
const int FEAT_ORCUS_SPELLCASTING_ABERRATION=26639;
|
||||
const int FEAT_ORCUS_SPELLCASTING_ASSASSIN=26640;
|
||||
const int FEAT_ORCUS_SPELLCASTING_BEGUILER=26641;
|
||||
@@ -1769,6 +1769,49 @@ const int FEAT_MHARPER_SPELLCASTING_SUEL_ARCHANAMACH=26658;
|
||||
const int FEAT_ORCUS_SPELLCASTING_SUEL_ARCHANAMACH=26659;
|
||||
const int FEAT_ORCUS_SPELLCASTING_WARMAGE=26660;
|
||||
|
||||
//:: Warlock invoking marker feats
|
||||
const int FEAT_ABCHAMP_INVOKING_WARLOCK = 26681;
|
||||
const int FEAT_AOTS_INVOKING_WARLOCK = 26682;
|
||||
const int FEAT_ANIMA_INVOKING_WARLOCK = 26683;
|
||||
const int FEAT_ARCTRICK_INVOKING_WARLOCK = 26684;
|
||||
const int FEAT_BLDMAGUS_INVOKING_WARLOCK = 26685;
|
||||
const int FEAT_ASMODEUS_INVOKING_WARLOCK = 26686;
|
||||
const int FEAT_ELDISCIPLE_INVOKING_WARLOCK = 26687;
|
||||
const int FEAT_ETHEURGE_INVOKING_WARLOCK = 26688;
|
||||
const int FEAT_ENLIGHTENEDFIST_INVOKING_WARLOCK = 26689;
|
||||
const int FEAT_HELLFIRE_INVOKING_WARLOCK = 26690;
|
||||
const int FEAT_MAESTER_INVOKING_WARLOCK = 26691;
|
||||
const int FEAT_TIAMAT_INVOKING_WARLOCK = 26692;
|
||||
const int FEAT_UNSEEN_INVOKING_WARLOCK = 26693;
|
||||
const int FEAT_VIRTUOSO_INVOKING_WARLOCK = 26694;
|
||||
const int FEAT_WILDMAGE_INVOKING_WARLOCK = 26695;
|
||||
|
||||
//:: Dragonfire Adept invoking marker feats
|
||||
const int FEAT_ABCHAMP_INVOKING_DFA = 26696;
|
||||
const int FEAT_AOTS_INVOKING_DFA = 26697;
|
||||
const int FEAT_ANIMA_INVOKING_DFA = 26698;
|
||||
const int FEAT_ARCTRICK_INVOKING_DFA = 26699;
|
||||
const int FEAT_BLDMAGUS_INVOKING_DFA = 26700;
|
||||
const int FEAT_ASMODEUS_INVOKING_DFA = 26701;
|
||||
const int FEAT_ENLIGHTENEDFIST_INVOKING_DFA = 26702;
|
||||
const int FEAT_MAESTER_INVOKING_DFA = 26703;
|
||||
const int FEAT_TIAMAT_INVOKING_DFA = 26704;
|
||||
const int FEAT_UNSEEN_INVOKING_DFA = 26705;
|
||||
const int FEAT_VIRTUOSO_INVOKING_DFA = 26706;
|
||||
const int FEAT_WILDMAGE_INVOKING_DFA = 26707;
|
||||
|
||||
//:: Dragon Shaman invoking marker feats
|
||||
const int FEAT_ABCHAMP_INVOKING_DRAGON_SHAMAN = 26708;
|
||||
const int FEAT_ASMODEUS_INVOKING_DRAGON_SHAMAN = 26709;
|
||||
const int FEAT_ENLIGHTENEDFIST_INVOKING_DRAGON_SHAMAN = 26710;
|
||||
const int FEAT_TIAMAT_INVOKING_DRAGON_SHAMAN = 26711;
|
||||
const int FEAT_UNSEEN_INVOKING_DRAGON_SHAMAN = 26712;
|
||||
const int FEAT_VIRTUOSO_INVOKING_DRAGON_SHAMAN = 26713;
|
||||
const int FEAT_WILDMAGE_INVOKING_DRAGON_SHAMAN = 26714;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// skill based feats
|
||||
|
@@ -572,13 +572,79 @@ void EvalPRCFeats(object oPC)
|
||||
|
||||
//:: [PRC .35] Needs marker feats
|
||||
// Classes an invoker can take
|
||||
if(GetLevelByClass(CLASS_TYPE_MAESTER, oPC) ||
|
||||
GetLevelByClass(CLASS_TYPE_ACOLYTE, oPC) ||
|
||||
GetLevelByClass(CLASS_TYPE_ENLIGHTENEDFIST, oPC) ||
|
||||
GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oPC))
|
||||
{
|
||||
//Set arcane or invocation bonus caster levels
|
||||
if (GetLevelByClass(CLASS_TYPE_MAESTER, oPC)
|
||||
&& GetHasFeat(FEAT_MAESTER_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_MAESTER_INVOKING_DFA, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_ACOLYTE, oPC)
|
||||
&& GetHasFeat(FEAT_AOTS_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_AOTS_INVOKING_DFA, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_ABJURANT_CHAMPION, oPC)
|
||||
&& GetHasFeat(FEAT_ABCHAMP_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_ABCHAMP_INVOKING_DFA, oPC)
|
||||
|| GetHasFeat(FEAT_ABCHAMP_INVOKING_DRAGON_SHAMAN, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_ANIMA_MAGE, oPC)
|
||||
&& GetHasFeat(FEAT_ANIMA_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_ANIMA_INVOKING_DFA, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_ARCTRICK, oPC)
|
||||
&& GetHasFeat(FEAT_ARCTRICK_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_ARCTRICK_INVOKING_DFA, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_BLOOD_MAGUS, oPC)
|
||||
&& GetHasFeat(FEAT_BLDMAGUS_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_BLDMAGUS_INVOKING_DFA, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oPC)
|
||||
&& GetHasFeat(FEAT_TIAMAT_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_TIAMAT_INVOKING_DFA, oPC)
|
||||
|| GetHasFeat(FEAT_TIAMAT_INVOKING_DRAGON_SHAMAN, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_UNSEEN_SEER, oPC)
|
||||
&& GetHasFeat(FEAT_UNSEEN_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_UNSEEN_INVOKING_DFA, oPC)
|
||||
|| GetHasFeat(FEAT_UNSEEN_INVOKING_DRAGON_SHAMAN, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_VIRTUOSO, oPC)
|
||||
&& GetHasFeat(FEAT_VIRTUOSO_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_VIRTUOSO_INVOKING_DFA, oPC)
|
||||
|| GetHasFeat(FEAT_VIRTUOSO_INVOKING_DRAGON_SHAMAN, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_WILD_MAGE, oPC)
|
||||
&& GetHasFeat(FEAT_WILDMAGE_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_WILDMAGE_INVOKING_DFA, oPC)
|
||||
|| GetHasFeat(FEAT_WILDMAGE_INVOKING_DRAGON_SHAMAN, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_ENLIGHTENEDFIST, oPC)
|
||||
&& GetHasFeat(FEAT_ENLIGHTENEDFIST_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_ENLIGHTENEDFIST_INVOKING_DFA, oPC)
|
||||
|| GetHasFeat(FEAT_ENLIGHTENEDFIST_INVOKING_DRAGON_SHAMAN, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else if (GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oPC)
|
||||
&& GetHasFeat(FEAT_ASMODEUS_INVOKING_WARLOCK, oPC)
|
||||
|| GetHasFeat(FEAT_ASMODEUS_INVOKING_DFA, oPC)
|
||||
|| GetHasFeat(FEAT_ASMODEUS_INVOKING_DRAGON_SHAMAN, oPC))
|
||||
{SetLocalInt(oPC, "INV_Caster", 2);}
|
||||
|
||||
else
|
||||
{
|
||||
SetLocalInt(oPC, "INV_Caster", 1);
|
||||
}
|
||||
|
||||
/* //Set arcane or invocation bonus caster levels -- All handled via marker feats now.
|
||||
//Arcane caster first class position, take arcane
|
||||
if(GetFirstArcaneClassPosition(oPC) == 1)
|
||||
SetLocalInt(oPC, "INV_Caster", 1);
|
||||
@@ -591,7 +657,7 @@ void EvalPRCFeats(object oPC)
|
||||
//last cas would be Non-invoker first class position, arcane second position. take arcane.
|
||||
else
|
||||
SetLocalInt(oPC, "INV_Caster", 1);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
void DelayedAddIPFeats(int nExpectedGeneration, object oPC)
|
||||
|
Reference in New Issue
Block a user