diff --git a/_content/hak/prc8_ancordia/69_hench_lib.nss b/_content/hak/prc8_ancordia/69_hench_lib.nss new file mode 100644 index 0000000..177bb3b --- /dev/null +++ b/_content/hak/prc8_ancordia/69_hench_lib.nss @@ -0,0 +1,1807 @@ +/* 69_hench_lib + Created: 69MEH69 July 2004 + + Library functions for henchman control +*/ +#include "x0_i0_henchman" +#include "69_leadership" +#include "x4_inc_functions" + +//void main(){} + +/********************************************************************** + * CONSTANTS + **********************************************************************/ + + + +/********************************************************************** + * FUNCTION PROTOTYPES + **********************************************************************/ + +//Returns TRUE if the object to check is oPC's henchman +int HenchmanCheck69(object oCheck, object oPC); + +//Checks to see whether or not the PC can hire the NPC +int GetCanWork69(object oPC, object oHench); + +// Can be used for both initial hiring and rejoining. +void HireHenchman69(object oPC, object oHench=OBJECT_SELF, int bAdd=TRUE); + +// Can be used to fire henchman or quit a henchman +void QuitHenchman69(object oPC, object oHench=OBJECT_SELF); + +//Checks to see whether or not the NPC henchman can level +int GetCanLevelUp69(object oPC, object oHench = OBJECT_SELF); + +//Moves items in oHench inventory to oContainer inventory +void MoveHenchmanItems69(object oContainer, object oHench); + +//Sets items in oHench inventory as droppable: nDrop = TRUE or FALSE +void HenchmanNoDropItems69(int nDrop, object oHench = OBJECT_SELF); + +//Gets the total number of henchmen currently working for the PC +int GetHenchmanTotal69(object oPC); + +//Checks whether the henchman has enough XP to level +int HenchXPCheck69(object oHench = OBJECT_SELF); + +//Initializes XP for henchman +void HenchXPInitialize69(object oHench = OBJECT_SELF, int nHenchLvl = 0); + +//Levels up henchman +//nHired = 0: Standard level up for henchman either XP or non-XP (Default) +//nHired = 1: Initial level up at hire will level up henchman any number of levels +// to satisfy HenchLag and/or MaxHenchLevel +//nHired = 2: Special level up for specific henchman, new code must be created under this +// option by the scripter for the particular henchman (see example code in function) +void LevelUpHenchman69(object oHench, object oPC, int nHired = 0); + +//Does a check on prestige class levels +void CheckHenchClass69(object oHench); + +//Henchman summons Familiar/Animal Companion +//set variable string SummonCreature = TAG of Creature +//to be summoned on oHench +void HenchSummonCreature69(object oHench = OBJECT_SELF); + +//Henchman unsummons Familiar/Animal Companion +//set variable string SummonCreature = TAG of Creature +//to be unsummoned by oHench +void HenchUnSummonCreature69(object oHench = OBJECT_SELF); + +//DEATH SCRIPTS + +location GetRespawnLocation69(object oHench=OBJECT_SELF); +void RespawnHenchman69(object oHench=OBJECT_SELF); +void PostRespawnCleanup69(object oHench=OBJECT_SELF); +void HenchRessurect69(object oPC, object oHealer = OBJECT_SELF); + +//COMBAT SCRIPTS + +void HenchRearm69(object oIntruder, object oHench = OBJECT_SELF); + +//Retuns TRUE if caller has a melee weapon in their inventory +int HasMeleeWeapon69(object oSelf); + +//Retuns TRUE if caller has a ranged weapon in their inventory +int HasRangedWeapon69(object oSelf); + +//Henchman scouts out enemy, then returns to master +void HenchScout69(object oTarget, object oHench=OBJECT_SELF); + +//Reports scouted creatures to oPC +void HenchReport69(object oPC, object oHench=OBJECT_SELF); + +/***** MODULE TRANSFER FUNCTIONS *****/ + +// Call this function when the PC is about to leave a module +// to enable restoration of the henchman on re-entry into the +// sequel module. Both modules must use the same campaign db +// for this to work. +void StoreCampaignHenchman69(object oPC); + +// Call this function when a PC enters a sequel module to restore +// the henchman (complete with inventory). The function +// StoreCampaignHenchman must have been called first, and both +// modules must use the same campaign db. (See notes in x0_i0_campaign.) +// +// The restored henchman will automatically be re-hired and will be +// created next to the PC. +void RetrieveCampaignHenchman69(object oPC); + +//::FUNCTION DEFINITIONS::// + +//Returns TRUE if the object to check is oPC's henchman +int HenchmanCheck69(object oCheck, object oPC) +{ + int nHenchCount = 1; + object oHench = GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC, nHenchCount); + while(GetIsObjectValid(oHench)) + { + if(oCheck == oHench) + { + return TRUE; + } + oHench = GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC, ++nHenchCount); + } + return FALSE; +} + +int GetCanWork69(object oPC, object oHench) +{ + int nLeadership = GetLocalInt(GetModule(), "nLeadership"); + int nLoyalty =GetLocalInt(GetModule(), "nLoyalty"); + int MAX_HENCHMEN = GetMaxHenchmen(); + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + //Check for Leadership + if(nLeadership == 1) + { + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "Module Leadership = 1"); + } + MAX_HENCHMEN = GetMaxHenchmen69(oPC); + if(GetHasLeadership(oPC) == FALSE) + return FALSE; + } + if(nLoyalty == 1 && GetHenchLoyalty(oHench, oPC) <= 3) + { + return FALSE; + } + int HENCH_LAG = GetLocalInt(oHench, "HenchLag"); + int nHench = X2_GetNumberOfHenchmen(oPC); //Number of henchmen PC currently has + //Test + if(TEST_MODE == 1) + { + string sHench = IntToString(nHench); + SendMessageToPC(oPC, "You have " +sHench+ " henchmen"); + } + int nPClvl = GetHitDice(oPC); + int nHenchlvl = GetHitDice(oHench); + int nLevel = nPClvl - nHenchlvl; + if((nLevel < HENCH_LAG) || (nHench >= MAX_HENCHMEN) || MAX_HENCHMEN <= 0) + { + return FALSE; + } + return TRUE; +} + +void HireHenchman69(object oPC, object oHench=OBJECT_SELF, int bAdd=TRUE) +{ + if ( !GetIsObjectValid(oPC) || !GetIsObjectValid(oHench) ) + { + return; + } +// SpawnScriptDebugger(); + + // Fire the PC's former henchman if necessary + int nCountHenchmen = X2_GetNumberOfHenchmen(oPC); + int nNumberOfFollowers = X2_GetNumberOfHenchmen(oPC, TRUE); + // * The true number of henchmen are the number of hired + nCountHenchmen = nCountHenchmen ; + + int nMaxHenchmen = GetMaxHenchmen(); //69MEH69 + + //Check for Leadership, TRUE resets nCountHenchman + if(GetLocalInt(GetModule(), "nLeadership") == 1) + { + nMaxHenchmen = GetMaxHenchmen69(oPC); + } + + + // Adding this henchman would exceed the module imposed + // henchman limit. + // Fire the first henchman + // The third slot is reserved for the follower + if ((nCountHenchmen >= nMaxHenchmen) && bAdd == TRUE) + { + X2_FireFirstHenchman(oPC); + } + + // Mark the henchman as working for the given player + if (!GetPlayerHasHired(oPC, oHench)) + { + // This keeps track if the player has EVER hired this henchman + // Floodgate only (XP1). Should never store info to a database as game runs, only between modules or in Persistent setting + if (GetLocalInt(GetModule(), "X2_L_XP2") != 1) + { + SetPlayerHasHiredInCampaign(oPC, oHench); + } + SetPlayerHasHired(oPC, oHench); + } + SetLastMaster(oPC, oHench); + + // Clear the 'quit' setting in case we just persuaded + // the henchman to rejoin us. + SetDidQuit(oPC, oHench, FALSE); + + // If we're hooking back up with the henchman after s/he + // died, clear that. + SetDidDie(FALSE, oHench); + SetKilled(oPC, oHench, FALSE); + SetResurrected(oPC, oHench, FALSE); + + // Turn on standard henchman listening patterns + SetAssociateListenPatterns(oHench); + + // By default, companions come in with Attack Nearest and Follow + // modes enabled. + SetLocalInt(oHench, + "NW_COM_MODE_COMBAT",ASSOCIATE_COMMAND_ATTACKNEAREST); + SetLocalInt(oHench, + "NW_COM_MODE_MOVEMENT",ASSOCIATE_COMMAND_FOLLOWMASTER); + + // Add the henchman + if (bAdd == TRUE) + { + AddHenchman(oPC, oHench); + } + //Run Hench XP Initialization + int HENCH_XP = GetLocalInt(GetModule(), "HENCHXP"); + if(HENCH_XP == 1 && GetLocalInt(oHench, "HENCH_XP") == 0) + { + int nMasterLevel = GetHitDice(oPC); + int HENCH_LAG = GetLocalInt(oHench, "HenchLag"); + int nHenchLevel = nMasterLevel - HENCH_LAG; + HenchXPInitialize69(oHench, nHenchLevel); + } +} + +void QuitHenchman69(object oPC, object oHench=OBJECT_SELF) +{ + object oHome = GetObjectByTag("horse_unsummon"); + int nHenchQuit = GetLocalInt(GetModule(), "HENCHQUIT"); + string sHench = GetResRef(oHench); + SetLastMaster(oPC, oHench); + + // If we're hooking back up with the henchman after s/he + // died, clear that. + SetDidDie(FALSE, oHench); + SetKilled(oPC, oHench, FALSE); + SetResurrected(oPC, oHench, FALSE); + + if(GetMaster() == oPC) + { + ClearAllActions(); + // Turn off stealth mode + SetActionMode(oHench, ACTION_MODE_STEALTH, FALSE); + // Move away from PC + ActionMoveAwayFromObject(oPC, FALSE, 10.0f); + // Remove the henchman from service + RemoveHenchman(oPC, oHench); + // Clear dialogue events + ClearAllDialogue(oPC, oHench); + // Check for henchman companion and get rid of it + if(GetLocalInt(oHench, "HasCompanion")) + { + HenchUnSummonCreature69(); + } + } + if(nHenchQuit == 1 && GetIsObjectValid(oHome)) + { + DelayCommand(3.0, DestroyObject(oHench)); + CreateObject(OBJECT_TYPE_CREATURE, sHench, GetLocation(oHome)); + } + else if(nHenchQuit == 2) + { + DelayCommand(3.0, DestroyObject(oHench)); + } + else if(GetIsObjectValid(oHome)) + { + DelayCommand(10.0, ActionJumpToObject(oHome)); + } +} + +//Leveling Functions + +int GetCanLevelUp69(object oPC, object oHench = OBJECT_SELF) +{ + int HENCH_MAXLEVEL = GetLocalInt(oHench, "HENCH_MAXLEVEL"); + int nMasterLevel = GetHitDice(oPC); + int nMyLevel = GetHitDice(oHench); + int HENCH_XP = GetLocalInt(GetModule(), "HENCHXP"); + int HENCH_LAG = GetLocalInt(oHench, "HenchLag"); + int TEST_MODE = GetLocalInt(oHench, "TEST_MODE"); + //Test + if(TEST_MODE == 1) + { + string sMasterLevel = IntToString(nMasterLevel); + string sMyLevel = IntToString(nMyLevel); + SendMessageToPC(oPC, "My level is " +sMasterLevel+ ", Hench level is " +sMyLevel); + } + if((nMasterLevel > (nMyLevel + HENCH_LAG)) && (nMyLevel < HENCH_MAXLEVEL)) + { + if(HENCH_XP == 1) + { + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "Hench XP Check"); + } + return HenchXPCheck69(oHench); + } + else + { + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "True"); + } + return TRUE; + } + } + else + { + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "False"); + } + return FALSE; + } +} + +void LevelUpHenchman69(object oHench, object oPC, int nHired = 0) +{ + string sHenchName = GetName(oHench); + int HENCH_MAXLEVEL = GetLocalInt(oHench, "HENCH_MAXLEVEL"); + int HENCH_XP = GetLocalInt(GetModule(), "HENCHXP"); + int nHenchXP2 = GetLocalInt(oHench, "HENCH_XP"); + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + int nAutoLevelup = GetLocalInt(GetModule(), "nAutoLevelup"); + int nHenchLag = GetLocalInt(oHench, "HenchLag"); + int nNewClass = GetLocalInt(oHench, "NewClass"); + int nClassPackage = GetLocalInt(oHench, "ClassPackage"); + int nPC = GetHitDice(oPC); + int nLevel = nPC - nHenchLag; + if(HENCH_MAXLEVEL < nLevel) + { + nLevel = HENCH_MAXLEVEL; + } + int nHenchXP; + string sHenchXP, sHenchXP2; + CheckHenchClass69(oHench); + if(nHired == 0) //Levels henchman only one level at a time + { + AssignCommand(oHench, SpeakString("Leveling Up")); + LevelUpHenchman(oHench, nNewClass, TRUE, nClassPackage); + if(HENCH_XP == 1) + { + //Test + if(TEST_MODE == 1) + { + string sHD = IntToString(GetHitDice(oHench)); + sHenchXP2 = IntToString(nHenchXP2); + SendMessageToPC(oPC, sHenchName + " has " + sHD + " hit dice."); + SendMessageToPC(oPC, sHenchName + " has " + sHenchXP2 + " experience points."); + } + //End Test + HenchXPInitialize69(oHench); + nHenchXP = GetLocalInt(oHench, "HENCH_XP"); + if(nHenchXP < nHenchXP2) + { + SetLocalInt(oHench, "HENCH_XP", nHenchXP2); + nHenchXP = nHenchXP2; + } + sHenchXP = IntToString(nHenchXP); + SendMessageToPC(oPC, sHenchName + " has " + sHenchXP + " experience points."); + } + } + else if(nHired == 1) //Levels henchman a number of levels based on HENCH_LAG and PC Master's level + { + LevelHenchmanUpTo(oHench, nLevel); + if(HENCH_XP == 1) + { + HenchXPInitialize69(oHench, nLevel); + nHenchXP = GetLocalInt(oHench, "HENCH_XP"); + if(nHenchXP < nHenchXP2) + { + SetLocalInt(oHench, "HENCH_XP", nHenchXP2); + nHenchXP = nHenchXP2; + } + sHenchXP = IntToString(nHenchXP); + SendMessageToPC(oPC, sHenchName + " has " + sHenchXP + " experience points."); + } + else if(nHired == 2) //Modify example code to satisfy needs for particular henchman + { //See x0_i0_henchman line 1292 for examples of code + //Begin Example Code + if(GetTag(oHench) == "HENCHTAG") + { + LevelHenchmanUpTo(oHench, nLevel, CLASS_TYPE_INVALID, nLevel, PACKAGE_INVALID, PACKAGE_INVALID); //See notes for this particular function + } + //End Example Code + } + } +} + +void CheckHenchClass69(object oHench) +{ + int nNewClass = GetLocalInt(oHench, "NewClass"); + + if(nNewClass == -1) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + if(nNewClass == 29) //CLASS_TYPE_ARCANE_ARCHER + { + if (GetLevelByClass(CLASS_TYPE_ARCANE_ARCHER, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 30) //CLASS_TYPE_ASSASSIN + { + if (GetLevelByClass(CLASS_TYPE_ASSASSIN, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 31) //CLASS_TYPE_BLACKGUARD + { + if (GetLevelByClass(CLASS_TYPE_BLACKGUARD, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 28) //CLASS_TYPE_HARPER + { + if (GetLevelByClass(CLASS_TYPE_HARPER, oHench) == 5) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 27) //CLASS_TYPE_SHADOWDANCER + { + if (GetLevelByClass(CLASS_TYPE_SHADOWDANCER, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 32) //CLASS_TYPE_DIVINECHAMPION + { + if (GetLevelByClass(CLASS_TYPE_DIVINECHAMPION, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 37) //CLASS_TYPE_DRAGONDISCIPLE + { + if (GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 36) //CLASS_TYPE_DWARVENDEFENDER + { + if (GetLevelByClass(CLASS_TYPE_DWARVENDEFENDER, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 34) //CLASS_TYPE_PALEMASTER + { + if (GetLevelByClass(CLASS_TYPE_PALEMASTER, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 35) //CLASS_TYPE_SHIFTER + { + if (GetLevelByClass(CLASS_TYPE_SHIFTER, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } + if(nNewClass == 33) //CLASS_TYPE_WEAPON_MASTER + { + if (GetLevelByClass(CLASS_TYPE_WEAPON_MASTER, oHench) == 40) + { + SetLocalInt(oHench, "NewClass", GetClassByPosition(1, oHench)); + SetLocalInt(oHench, "ClassPackage", GetCreatureStartingPackage(oHench)); + } + } +} + +int HenchXPCheck69(object oHench = OBJECT_SELF) +{ + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + string sHenchName = GetName(oHench); + object oPC = GetMaster(oHench); + int nHenchXP = GetLocalInt(oHench, "HENCH_XP"); + string sHenchXP = IntToString(nHenchXP); + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, sHenchName + " has " + sHenchXP + " experience points."); + } + int nHenchLvl = GetHitDice(oHench); + int nResult; + switch(nHenchLvl) + { + case 1: + if(nHenchXP >= 1000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 2: + if(nHenchXP >= 3000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 3: + if(nHenchXP >= 6000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 4: + if(nHenchXP >= 10000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 5: + if(nHenchXP >= 15000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 6: + if(nHenchXP >= 21000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 7: + if(nHenchXP >= 28000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 8: + if(nHenchXP >= 36000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 9: + if(nHenchXP >= 45000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 10: + if(nHenchXP >= 55000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 11: + if(nHenchXP >= 66000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 12: + if(nHenchXP >= 78000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 13: + if(nHenchXP >= 91000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 14: + if(nHenchXP >= 105000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 15: + if(nHenchXP >= 120000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 16: + if(nHenchXP >= 136000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 17: + if(nHenchXP >= 153000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 18: + if(nHenchXP >= 171000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 19: + if(nHenchXP >= 190000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 20: + if(nHenchXP >= 210000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 21: + if(nHenchXP >= 231000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 22: + if(nHenchXP >= 253000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 23: + if(nHenchXP >= 276000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 24: + if(nHenchXP >= 300000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 25: + if(nHenchXP >= 325000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 26: + if(nHenchXP >= 351000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 27: + if(nHenchXP >= 378000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 28: + if(nHenchXP >= 406000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 29: + if(nHenchXP >= 435000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 30: + if(nHenchXP >= 465000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 31: + if(nHenchXP >= 496000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 32: + if(nHenchXP >= 528000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 33: + if(nHenchXP >= 561000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 34: + if(nHenchXP >= 595000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 35: + if(nHenchXP >= 630000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 36: + if(nHenchXP >= 666000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 37: + if(nHenchXP >= 703000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 38: + if(nHenchXP >= 741000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + case 39: + if(nHenchXP >= 780000) + { + nResult = TRUE; + } + else + { + nResult = FALSE; + } + break; + + default: + nResult = FALSE; + break; + } + return nResult; +} + +void HenchXPInitialize69(object oHench = OBJECT_SELF, int nHenchLvl = 0) +{ + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + if(nHenchLvl == 0) + { + nHenchLvl = GetHitDice(oHench); + } + //Test + if(TEST_MODE == 1) + { + string sHenchLvl = IntToString(nHenchLvl); + SendMessageToPC(GetMaster(oHench), "Henchman HD is " + sHenchLvl); + } + switch(nHenchLvl) + { + case 1: + SetLocalInt(oHench, "HENCH_XP", 0); + break; + + case 2: + SetLocalInt(oHench, "HENCH_XP", 1000); + break; + + case 3: + SetLocalInt(oHench, "HENCH_XP", 3000); + break; + + case 4: + SetLocalInt(oHench, "HENCH_XP", 6000); + break; + + case 5: + SetLocalInt(oHench, "HENCH_XP", 10000); + break; + + case 6: + SetLocalInt(oHench, "HENCH_XP", 15000); + break; + + case 7: + SetLocalInt(oHench, "HENCH_XP", 21000); + break; + + case 8: + SetLocalInt(oHench, "HENCH_XP", 28000); + break; + + case 9: + SetLocalInt(oHench, "HENCH_XP", 36000); + break; + + case 10: + SetLocalInt(oHench, "HENCH_XP", 45000); + break; + + case 11: + SetLocalInt(oHench, "HENCH_XP", 55000); + break; + + case 12: + SetLocalInt(oHench, "HENCH_XP", 66000); + break; + + case 13: + SetLocalInt(oHench, "HENCH_XP", 78000); + break; + + case 14: + SetLocalInt(oHench, "HENCH_XP", 91000); + break; + + case 15: + SetLocalInt(oHench, "HENCH_XP", 105000); + break; + + case 16: + SetLocalInt(oHench, "HENCH_XP", 120000); + break; + + case 17: + SetLocalInt(oHench, "HENCH_XP", 136000); + break; + + case 18: + SetLocalInt(oHench, "HENCH_XP", 153000); + break; + + case 19: + SetLocalInt(oHench, "HENCH_XP", 171000); + break; + + case 20: + SetLocalInt(oHench, "HENCH_XP", 190000); + break; + + case 21: + SetLocalInt(oHench, "HENCH_XP", 210000); + break; + + case 22: + SetLocalInt(oHench, "HENCH_XP", 231000); + break; + + case 23: + SetLocalInt(oHench, "HENCH_XP", 253000); + break; + + case 24: + SetLocalInt(oHench, "HENCH_XP", 276000); + break; + + case 25: + SetLocalInt(oHench, "HENCH_XP", 300000); + break; + + case 26: + SetLocalInt(oHench, "HENCH_XP", 325000); + break; + + case 27: + SetLocalInt(oHench, "HENCH_XP", 351000); + break; + + case 28: + SetLocalInt(oHench, "HENCH_XP", 378000); + break; + + case 29: + SetLocalInt(oHench, "HENCH_XP", 406000); + break; + + case 30: + SetLocalInt(oHench, "HENCH_XP", 435000); + break; + + case 31: + SetLocalInt(oHench, "HENCH_XP", 465000); + break; + + case 32: + SetLocalInt(oHench, "HENCH_XP", 496000); + break; + + case 33: + SetLocalInt(oHench, "HENCH_XP", 528000); + break; + + case 34: + SetLocalInt(oHench, "HENCH_XP", 561000); + break; + + case 35: + SetLocalInt(oHench, "HENCH_XP", 595000); + break; + + case 36: + SetLocalInt(oHench, "HENCH_XP", 630000); + break; + + case 37: + SetLocalInt(oHench, "HENCH_XP", 666000); + break; + + case 38: + SetLocalInt(oHench, "HENCH_XP", 703000); + break; + + case 39: + SetLocalInt(oHench, "HENCH_XP", 741000); + break; + + case 40: + SetLocalInt(oHench, "HENCH_XP", 780000); + break; + + default: + SetLocalInt(oHench, "HENCH_XP", 820000); + break; + } +} + +void MoveHenchmanItems69(object oContainer, object oHench) +{ + object oItem, oNewItem; + int i; + + oItem = GetFirstItemInInventory(oHench); + while(GetIsObjectValid(oItem)) + { + if(!GetItemCursedFlag(oItem)) + { + oNewItem = CopyItem(oItem, oContainer); + DestroyObject(oItem, 0.2); + } + //AssignCommand(oHench, ActionGiveItem(oItem, oContainer)); + oItem = GetNextItemInInventory(oHench); + } + + for (i=0; i < NUM_INVENTORY_SLOTS; i++) + { + oItem = GetItemInSlot(i, oHench); + if(GetIsObjectValid(oItem) && !GetItemCursedFlag(oItem)) + { + if(oItem != GetItemInSlot(INVENTORY_SLOT_CHEST, oHench)) + { + ActionGiveItem(oItem, oContainer); + } + } + } +} + +void HenchmanNoDropItems69(int nDrop, object oHench=OBJECT_SELF) +{ + object oItem, oNewItem; + int i; + string sObject; + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + + oItem = GetFirstItemInInventory(oHench); + while(GetIsObjectValid(oItem)) + { + SetItemCursedFlag(oItem, nDrop); + //Test + if(TEST_MODE == 1) + { + sObject = ObjectToString(oItem); + SendMessageToPC(GetNearestPC(),sObject+ " is now not droppable"); + } + oItem = GetNextItemInInventory(oHench); + } + + for(i=0; i < NUM_INVENTORY_SLOTS; i++) + { + oItem = GetItemInSlot(i, oHench); + if(GetIsObjectValid(oItem)) + { + SetItemCursedFlag(oItem, nDrop); + //Test + if(TEST_MODE == 1) + { + sObject = ObjectToString(oItem); + SendMessageToPC(GetNearestPC(),sObject+ " is now not droppable"); + } + } + } +} + +void BattleCry() //Changed to determine battlecry by class of henchman, called in 69_hen_percep +{ + int iSpeakProb = Random(35) +1; // Probability of Battle Cry. MUST be a number from 1 to at least 8 + string sDeity = GetDeity(OBJECT_SELF); + if(sDeity == "") + { + sDeity = "God"; + } + if (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_FIGHTER || GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_RANGER || GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_BARBARIAN) + switch (iSpeakProb) { + case 1: SpeakString("Take this, fool!"); break; + case 2: SpeakString("Say hello to my little friend!"); break; + case 3: SpeakString("To hell with you, hideous fiend!"); break; + case 4: SpeakString("Come here. Come here I say!"); break; + case 5: SpeakString("Meet cold steel!"); break; + case 6: SpeakString("To Arms!"); break; + case 7: SpeakString("Outstanding!"); break; + case 8: SpeakString("You CAN do better than this, can you not?"); break; + case 9: SpeakString("Embrace Death, and long for it!"); break; + case 10: SpeakString("Press forward and give no quarter!"); break; + case 11: SpeakString("By the name of " +sDeity+ ", you shall perish!"); break; + + default: break; + } + + if (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_ROGUE) + switch (iSpeakProb) { + case 1: SpeakString("I got a little present for you here!"); break; + case 2: SpeakString("Gotcha"); break; + case 3: SpeakString("Think twice before messing with me!"); break; + case 4: SpeakString("Silent and Deadly!"); break; + case 5: SpeakString("Your momma raised ya to become THIS?"); break; + case 6: SpeakString("Hey! Where's your manners!"); break; + case 7: SpeakString("How about a little knife in the back victim"); break; + case 8: SpeakString("You're an ugly little beastie, ain't ya?"); break; + case 9: SpeakString("By the name of " +sDeity+ ", you shall perish!"); break; + + default: break; + } + + if(GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_BARD) + switch (iSpeakProb) { + case 1: SpeakString("I got a little song for you here!"); break; + case 2: SpeakString("Press forward and give no quarter!"); break; + case 3: SpeakString("Think twice before messing with me!"); break; + case 4: SpeakString("Silent and Deadly!"); break; + case 5: SpeakString("Gather around and hear a song of valor."); break; + case 6: SpeakString("Hey! Where's your manners!"); break; + case 7: SpeakString("Your chances of success are dwindling."); break; + case 8: SpeakString("These fools deserve no less."); break; + case 9: SpeakString("By the name of " +sDeity+ ", you shall perish!"); break; + + default: break; + } + + + if (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_PALADIN) + switch (iSpeakProb) { + case 1: SpeakString("By the name of " +sDeity+ ", you shall perish!"); break; + case 2: SpeakString(sDeity+ ", look kindly upon your servant!"); break; + case 3: SpeakString(sDeity+ " comes to take you!"); break; + case 4: SpeakString("Fight on! For our victory is at hand!"); break; + case 5: SpeakString("Prepare yourself! Your time is near!"); break; + case 6: SpeakString("The light of justice shall overcome you!"); break; + case 7: SpeakString("Evil shall perish from the land!"); break; + case 8: SpeakString("Make peace with your god!"); break; + case 9: SpeakString("By the name of all that is holy, you shall perish!"); break; + case 10: SpeakString("The smell of evil permeates your presence!"); break; + case 11: SpeakString("Press forward and give no quarter!"); break; + + default: break; + + } + + if (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_CLERIC) + switch (iSpeakProb) { + case 1: SpeakString("This is not the time for healing!"); break; + case 2: SpeakString("You have chosen pain!"); break; + case 3: SpeakString("You attack us, only to die!"); break; + case 4: SpeakString("Must you chase destruction? Very well!"); break; + case 5: SpeakString("It does not please me to crush you like this."); break; + case 6: SpeakString("Do not provoke me!"); break; + case 7: SpeakString("I am at my wit's end with you all!"); break; + case 8: SpeakString("Do you even know what you face?"); break; + case 9: SpeakString("Prepare yourself! Your time is near!"); break; + case 10: SpeakString("By the name of " +sDeity+ ", you shall perish!"); break; + case 11: SpeakString(sDeity+ ", look kindly upon your servant!"); break; + case 12: SpeakString(sDeity+ " comes to take you!"); break; + + default: break; + } + + if (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_DRUID) + switch (iSpeakProb) { + case 1: SpeakString("Nature will have vengeance upon you now!"); break; + case 2: SpeakString("What is your grievance? Begone!"); break; + case 3: SpeakString("I won't allow you to harm anyone else!"); break; + case 4: SpeakString("Retreat or feel my wrath!"); break; + case 5: SpeakString("By " +sDeity+ ", you will not pass unchecked."); break; + case 6: SpeakString("I am nature's weapon."); break; + case 7: SpeakString(sDeity+ " willing, you'll soon be undone!"); break; + case 8: SpeakString("Destroyer of all that is green, you shall die!"); break; + case 9: SpeakString("By the name of " +sDeity+ ", you shall perish!"); break; + + default: break; + } + + if (GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_WIZARD || GetClassByPosition(1, OBJECT_SELF) == CLASS_TYPE_SORCERER) + switch (iSpeakProb) { + case 1: SpeakString("You face a mage of considerable power!"); break; + case 2: SpeakString("I find your resistance illogical."); break; + case 3: SpeakString("I bind the powers of the very Planes!"); break; + case 4: SpeakString("Fighting for now, and research for later."); break; + case 5: SpeakString("Sad to destroy a fine specimen such as yourself."); break; + case 6: SpeakString("Your chances of success are dwindling."); break; + case 7: SpeakString("These fools deserve no less."); break; + case 8: SpeakString("Now you are making me lose my patience."); break; + case 9: SpeakString("Do or Do Not, there is no try."); break; + case 10: SpeakString("By the name of " +sDeity+ ", you shall perish!"); break; + case 11: SpeakString("Strike me down now and I shall become more powerful than you could ever imagine!"); break; + + default: break; + } +} + +location GetRespawnLocation69(object oHench = OBJECT_SELF) +{ + int HENCH_BLEED = GetLocalInt(GetModule(), "HENCH_BLEED"); + string sHenchTAG = GetTag(oHench); + object oRespawn = GetWaypointByTag("WP_Respawn_" + sHenchTAG); + object oMaster; + location lRespawn; + if(GetDidDie(oHench)) + { + if(HENCH_BLEED == 3) + { + oMaster = GetLastMaster(oHench); + lRespawn = GetBehindLocation(oMaster); + HireHenchman69(oMaster, oHench); + + return lRespawn; + } + if(GetIsObjectValid(oRespawn) && HENCH_BLEED == 0) + { + lRespawn = GetLocation(oRespawn); + } + else if(HENCH_BLEED == 0) + { + lRespawn = GetLocation(GetWaypointByTag("NW_DEATH_TEMPLE")); + } + } + else if(!GetDidDie(oHench)) + { + lRespawn = GetLocation(oHench); + } + return lRespawn; + +} + +void RespawnHenchman69(object oHench=OBJECT_SELF) +{ + if (!GetIsDead(OBJECT_SELF)) return; + + location lRespawn = GetRespawnLocation69(oHench); + + if(GetAreaFromLocation(lRespawn) == OBJECT_INVALID) + { + AssignCommand(oHench, SetIsDestroyable(TRUE, FALSE, FALSE)); + DestroyObject(oHench, 3.0); + } + else + { + // * Ensure the action queue is open to modification again + SetCommandable(TRUE,oHench); + + // * Heal henchman + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_SMOKE), oHench, 4.0); + RemoveEffects(oHench); + ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectResurrection(), oHench); + ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectHeal(GetMaxHitPoints(oHench)), oHench); + + // * Jump to Target + JumpToLocation(lRespawn); + + // * Unset busy state + ActionDoCommand(SetAssociateState(NW_ASC_IS_BUSY, FALSE)); + + // * Make self vulnerable + SetPlotFlag(oHench, FALSE); + + // * Set destroyable flag to leave corpse + SetIsDestroyable(TRUE, TRUE, TRUE); + } + +} + +void PostRespawnCleanup69(object oHench=OBJECT_SELF) +{ + string sTag = GetTag(oHench); + object oBackpack = GetObjectByTag(sTag+ "BAG"); + + DelayCommand(0.5, RemoveEffects(oHench)); + + DelayCommand(1.0, + SetHenchmanDying(oHench, FALSE)); + + // Clear henchman being busy + DelayCommand(1.1, + SetAssociateState(NW_ASC_IS_BUSY, FALSE, oHench)); + + // Clear the plot flag + DelayCommand(1.2, SetPlotFlag(oHench, FALSE)); + + DelayCommand(1.4, SetAssociateState(NW_ASC_USE_RANGED_WEAPON, FALSE)); + DelayCommand(1.5, SetIsDestroyable(TRUE, TRUE, TRUE)); + if(GetIsObjectValid(oBackpack)) + { + DelayCommand(1.6, MoveHenchmanItems69(oHench, oBackpack)); + DelayCommand(2.0, AssignCommand(oHench, ActionPickUpItem(oBackpack))); + DelayCommand(2.5, DestroyObject(oBackpack)); + } +} + +void HenchRearm69(object oIntruder, object oHench = OBJECT_SELF) +{ + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + float fHenchRange = GetLocalFloat(oHench, "HenchRange"); + float fIntruderRange = GetDistanceToObject(oIntruder); + string sHenchRange = FloatToString(GetDistanceToObject(oIntruder), 4, 2); + object oPC = GetMaster(oHench); + string sHench = GetName(oHench); + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(GetFirstPC(), "Enemy is " + sHenchRange + " meters from " + sHench); + } + if(fIntruderRange > fHenchRange) + { + if(HasRangedWeapon69(oHench) && !GetAssociateState(NW_ASC_USE_RANGED_WEAPON) && GetLocalInt(oHench, "COMBAT_FLAG_SWITCH")) + { + ClearAllActions(TRUE); + SetAssociateState(NW_ASC_USE_RANGED_WEAPON, TRUE); + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, sHench + " is arming a ranged weapon!"); + } + bkEquipRanged(oIntruder, FALSE, TRUE); + //ActionEquipMostDamagingRanged(oIntruder); + } + } + else if(fIntruderRange <= fHenchRange && fIntruderRange > 0.0) + { + if(HasMeleeWeapon69(oHench) && GetAssociateState(NW_ASC_USE_RANGED_WEAPON) && GetLocalInt(oHench, "COMBAT_FLAG_SWITCH")) + { + ClearAllActions(TRUE); + SetAssociateState(NW_ASC_USE_RANGED_WEAPON, FALSE); + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, sHench + " is arming a melee weapon!"); + } + bkEquipMelee(oIntruder); + //ActionEquipMostDamagingMelee(oIntruder); + } + } + +} + +int HasMeleeWeapon69(object oSelf) +{ + int nSlot = 4; + object oItem = GetFirstItemInInventory(oSelf); + while(GetIsObjectValid(oItem)) + { + if(MatchMeleeWeapon(oItem)) + { + return TRUE; + } + oItem = GetNextItemInInventory(oSelf); + } + for(nSlot; nSlot < 6; nSlot++) + { + oItem = GetItemInSlot(nSlot, oSelf); + if(MatchMeleeWeapon(oItem)) + { + return TRUE; + } + } + return FALSE; +} + +int HasRangedWeapon69(object oSelf) +{ + int nSlot = 4; + object oItem = GetFirstItemInInventory(oSelf); + while(GetIsObjectValid(oItem)) + { + if(GetWeaponRanged(oItem)) + { + return TRUE; + } + oItem = GetNextItemInInventory(oSelf); + } + for(nSlot; nSlot < 6; nSlot++) + { + oItem = GetItemInSlot(nSlot, oSelf); + if(GetWeaponRanged(oItem)) + { + return TRUE; + } + } + return FALSE; +} + +void HenchScout69(object oTarget, object oHench=OBJECT_SELF) +{ + object oPC = GetMaster(oHench); + location lTarget = GetLocation(oTarget); + int nTarget = 1; + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + string sTarget; + oTarget = GetNearestSeenEnemy(oHench, nTarget); + while(GetIsObjectValid(oTarget)) + { + sTarget = IntToString(nTarget); + SetLocalObject(oHench, "ScoutingTarget" + sTarget, oTarget); + oTarget = GetNearestSeenEnemy(oHench, ++nTarget); + } + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "Moving back to you"); + } + ClearAllActions(); + ActionForceFollowObject(oPC, 2.0); + SetLocalInt(oHench,"ScoutingReport",TRUE); +} + +void HenchReport69(object oPC, object oHench=OBJECT_SELF) +{ + int nTarget = 1; + string sTarget = IntToString(nTarget); + string sTargetName; + object oTarget = GetLocalObject(oHench, "ScoutingTarget" +sTarget); + DeleteLocalInt(oHench, "X2_HENCH_STEALTH_MODE"); + SetActionMode(oHench, ACTION_MODE_STEALTH, FALSE); + while(GetIsObjectValid(oTarget)) + { + sTargetName = GetName(oTarget); + SpeakString("I scouted a " + sTargetName); + DeleteLocalObject(oHench, "ScoutingTarget" +sTarget); + ++nTarget; + sTarget = IntToString(nTarget); + oTarget = GetLocalObject(oHench, "ScoutingTarget" +sTarget); + } + SetLocalInt(oHench,"Scouting",FALSE); + SetLocalInt(oHench,"ScoutingReport",FALSE); + SetAssociateState(NW_ASC_MODE_DEFEND_MASTER, FALSE); +} + +void HenchRessurect69(object oPC, object oHealer = OBJECT_SELF) +{ + location lLoc; + int nRoll; + + string sPC = GetName(oPC); + string sName = GetName(oHealer); + if(GetClassByPosition(1, oHealer) == CLASS_TYPE_CLERIC || GetClassByPosition(2, oHealer) == CLASS_TYPE_CLERIC || GetClassByPosition(3, oHealer) == CLASS_TYPE_CLERIC || GetClassByPosition(1, oHealer) == CLASS_TYPE_DRUID || GetClassByPosition(2, oHealer) == CLASS_TYPE_DRUID || GetClassByPosition(3, oHealer) == CLASS_TYPE_DRUID || GetClassByPosition(1, oHealer) == CLASS_TYPE_PALADIN) + { + nRoll = d2(1); + ClearAllActions(); + if(nRoll == 1) + { + SendMessageToPC(oPC, sName+ " is casting Raise Dead onto " +sPC); + AssignCommand(oHealer, ActionCastSpellAtObject(SPELL_RAISE_DEAD, oPC, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, FALSE)); + } + else if(nRoll == 2) + { + SendMessageToPC(oPC, sName+ " is casting Resurrection onto " +sPC); + AssignCommand(oHealer, ActionCastSpellAtObject(SPELL_RESURRECTION, oPC, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, FALSE)); + } + } + +} + +/***** MODULE TRANSFER FUNCTIONS *****/ + +// Call this function when the PC is about to leave a module +// to enable restoration of the henchman on re-entry into the +// sequel module. Both modules must use the same campaign db +// for this to work. +void StoreCampaignHenchman69(object oPC) +{ + object oHench; + int ret; + int iSlot, nXP, nHenchDeath; + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + string sHench; + string sDB = CharacterDB(oPC); + int nCountHenchmen = GetHenchmanTotal69(oPC); //GetMaxHenchmen(); + string sCount = IntToString(nCountHenchmen); + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "Number of henchmen is " + sCount); + } + int HENCH_XP = GetLocalInt(GetModule(), "HENCHXP"); + int HENCH_LEADERSHIP = GetLocalInt(GetModule(), "nLeadership"); + if(HENCH_LEADERSHIP == 1) + { + nCountHenchmen = GetMaxHenchmen69(oPC); + nHenchDeath = GetLocalInt(oPC, "Hench_Death"); + SetCampaignDBInt(oPC, "Hench_Death", nHenchDeath); + } + + for (iSlot = 1; iSlot <= nCountHenchmen; iSlot++) + { + oHench = GetHenchman(oPC, iSlot); + if (!GetIsObjectValid(oHench)) + { + //Test + if(TEST_MODE == 1) + { + DBG_msg("No valid henchman to store"); + SendMessageToPC(oPC, "No valid henchman to store"); + } + } + else + { + //Test + if(TEST_MODE == 1) + { + DBG_msg("Storing henchman: " + GetTag(oHench)); + SendMessageToPC(oPC, "Storing henchman: " + GetTag(oHench)); + } + sHench = "Henchman" + IntToString(iSlot); + //ret = StoreCampaignDBObject(oPC, sHench, oHench); + ret = StoreCampaignObject(sDB, sHench, oHench, oPC); + + if(!ret) + { + //Test + if(TEST_MODE == 1) + { + DBG_msg("Error attempting to store henchman " + GetName(oHench)); + SendMessageToPC(oPC, "Error attempting to store henchman " + GetName(oHench)); + } + } + else + { + if(HENCH_XP == 1) //Store Henchman XP + { + nXP = GetLocalInt(oHench, "HENCH_XP"); + SetCampaignDBInt(oPC, "XP_" + sHench, nXP); + } + //Test + if(TEST_MODE == 1) + { + DBG_msg("Henchman " + GetName(oHench) + " stored successfully"); + SendMessageToPC(oPC, "Henchman " + GetName(oHench) + " stored successfully"); + } + } + } + } +} +// Call this function when a PC enters a sequel module to restore +// the henchman (complete with inventory). The function +// StoreCampaignHenchman must have been called first, and both +// modules must use the same campaign db. (See notes in x0_i0_campaign.) +// +// The restored henchman will automatically be re-hired and will be +// created next to the PC. +// +// Any object in the module with the same tag as the henchman will be +// destroyed (to remove duplicates). +void RetrieveCampaignHenchman69(object oPC) +{ + location lLoc = GetLocation(oPC); + object oHench; + object oDupe; + int iSlot, nXP, nHenchDeath; + string sDB = CharacterDB(oPC); + int nCountHenchmen = GetMaxHenchmen(); + int HENCH_XP = GetLocalInt(GetModule(), "HENCHXP"); + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + //Check for Leadership, TRUE resets nCountHenchman + int HENCH_LEADERSHIP = GetLocalInt(GetModule(), "nLeadership"); + if(HENCH_LEADERSHIP == 1) + { + nCountHenchmen = GetMaxHenchmen69(oPC); + nHenchDeath = GetCampaignDBInt(oPC, "Hench_Death"); + SetLocalInt(oPC, "Hench_Death", nHenchDeath); + DelayCommand(1.0, DeleteCampaignVariable(sDB, "Hench_Death", oPC)); + + } + string sCount = IntToString(nCountHenchmen); + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "Number of henchmen is " + sCount); + } + string sHench; + for(iSlot = 1; iSlot <= nCountHenchmen; iSlot++) + { + sHench = "Henchman" + IntToString(iSlot); + //oHench = RetrieveCampaignDBObject(oPC, sHench, lLoc); + oHench = RetrieveCampaignObject(sDB, sHench, lLoc, OBJECT_INVALID, oPC); + //DelayCommand(1.0, DeleteCampaignDBVariable(oPC, sHench)); + DelayCommand(1.0, DeleteCampaignVariable(sDB, sHench, oPC)); + if(GetIsObjectValid(oHench)) + { + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, sHench + " is available"); + } + DelayCommand(1.5, HireHenchman69(oPC, oHench)); + oDupe = GetNearestObjectByTag(GetTag(oHench), oHench); + if((oDupe != OBJECT_INVALID) && (oDupe != oHench)) + { + AssignCommand(oDupe,SetIsDestroyable(TRUE)); + SetPlotFlag(oDupe,FALSE); + SetImmortal(oDupe,FALSE); + DestroyObject(oDupe); + } + if(HENCH_XP == 1) //Retrieve and Set Henchman XP + { + nXP = GetCampaignDBInt(oPC, "XP_" + sHench); + SetLocalInt(oHench, "HENCH_XP", nXP); + DelayCommand(1.0, DeleteCampaignVariable(sDB, "XP_" + sHench, oPC)); + } + } + else + { + //Test + if(TEST_MODE == 1) + { + DBG_msg("No valid henchman retrieved"); + SendMessageToPC(oPC, "No valid henchman retrieved"); + } + } + } +} + +int GetHenchmanTotal69(object oPC) +{ + int nHenchCount = 0; + int nHench = 1; + object oHench = GetHenchman(oPC, nHench); + while(GetIsObjectValid(oHench)) + { + ++nHench; + ++nHenchCount; + oHench =GetHenchman(oPC, nHench); + } + return nHenchCount; +} + +void HenchSummonCreature69(object oHench = OBJECT_SELF) +{ + int nLevel = GetHitDice(oHench) - 1; + string sCreatureTAG = GetLocalString(oHench, "SummonCreature"); + string sCreatureResref = GetStringLowerCase(sCreatureTAG); + location lLoc = GetAheadLocation(oHench); + SetLocalInt(oHench, "HasCompanion", TRUE); + SetLocalInt(oHench, "HadCompanion", TRUE); + ActionCastFakeSpellAtLocation(SPELL_SUMMON_CREATURE_I, lLoc); + if(sCreatureTAG != "") + { + ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectSummonCreature(sCreatureResref, VFX_FNF_SUMMON_MONSTER_1), lLoc); + } + else + { + ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectSummonCreature("raven", VFX_FNF_SUMMON_MONSTER_1), lLoc); + } + object oCreature = GetObjectByTag(sCreatureTAG); + DelayCommand(1.0, LevelHenchmanUpTo(oCreature, nLevel, GetLevelByPosition(2, oCreature), nLevel)); + DelayCommand(1.5, AssignCommand(oCreature, ActionMoveToObject(oHench))); +} + +void HenchUnSummonCreature69(object oHench = OBJECT_SELF) +{ + string sCreatureTAG = GetLocalString(oHench, "SummonCreature"); + object oCreature = GetObjectByTag(sCreatureTAG); + SetLocalInt(oHench, "HasCompanion", FALSE); + ActionCastFakeSpellAtObject(SPELL_SUMMON_CREATURE_I, oCreature); + DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_IMP_UNSUMMON), oCreature, 4.0)); + DelayCommand(2.3, RemoveSummonedAssociate(oHench, oCreature)); + DestroyObject(oCreature, 2.4); +} diff --git a/_content/hak/prc8_ancordia/69_leadership.nss b/_content/hak/prc8_ancordia/69_leadership.nss new file mode 100644 index 0000000..261614d --- /dev/null +++ b/_content/hak/prc8_ancordia/69_leadership.nss @@ -0,0 +1,240 @@ +/*69_leadership + Leadership Library Functions + Created by: 69MEH69 + Created on: Sep2004 +*/ +//void main(){} + +//Level of PC when Leadership begins +const int LEADERSHIP_LEVEL = 6; + +//Returns Loyalty modifier +int GetHenchLoyalty(object oHench, object oPC); +//Returns TRUE if PC has Leadership (must be level 6 or higher) +int GetHasLeadership(object oPC); +//Returns Leadership Score +int GetLeadershipScore(object oPC); +//Sets maximum number of henchmen based on Leadership +void SetMaxHenchmen69(object oPC); +//Returns maximum number of henchmen based on Leadership +int GetMaxHenchmen69(object oPC); + +int GetHenchLoyalty(object oHench, object oPC) +{ + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + int nCharisma = GetAbilityModifier(ABILITY_CHARISMA, oPC); + //Initial roll + charisma + int nLoyalty = d6(3) + nCharisma; + string sLoyalty, sHenchdeath; + //Test + if(TEST_MODE == 1) + { + sLoyalty = IntToString(nLoyalty); + SendMessageToPC(oPC, "Initial nLoyalty = " + sLoyalty); + } + int nHenchAlign = GetAlignmentGoodEvil(oHench); + int nPCAlign = GetAlignmentGoodEvil(oPC); + int nHenchDeath = GetLocalInt(oPC, "Hench_Death"); + //Adjustment for alignments + if(nHenchAlign == nPCAlign) + { + ++nLoyalty; + } + else + { + --nLoyalty; + } + //Test + if(TEST_MODE == 1) + { + sLoyalty = IntToString(nLoyalty); + SendMessageToPC(oPC, "nLoyalty - Alignment = " + sLoyalty); + } + //Adjustment for number of dead henchmen + nLoyalty = nLoyalty - nHenchDeath; + //Test + if(TEST_MODE == 1) + { + sHenchdeath =IntToString(nHenchDeath); + sLoyalty = IntToString(nLoyalty); + SendMessageToPC(oPC, "Henchmen deaths = " + sHenchdeath); + SendMessageToPC(oPC, "nLoyalty - nHenchDeath = " + sLoyalty); + SendMessageToPC(oPC, "Loyalty score = " + sLoyalty); + } + return nLoyalty; +} + +int GetHasLeadership(object oPC) +{ + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + int nLeadership = GetHitDice(oPC); + if(nLeadership >= LEADERSHIP_LEVEL) + { + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "Leadership is True"); + } + return TRUE; + } + else + { + //Test + if(TEST_MODE == 1) + { + SendMessageToPC(oPC, "Leadership is False"); + } + return FALSE; + } +} + +int GetLeadershipScore(object oPC) +{ + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + int nPCLevel = GetHitDice(oPC); + int nCharisma = GetAbilityModifier(ABILITY_CHARISMA, oPC); + int nPersuade = GetSkillRank(SKILL_PERSUADE, oPC); + int nLeadershipScore = nPCLevel + nCharisma; + //Test + if(TEST_MODE == 1) + { + string sCharisma = IntToString(nCharisma); + SendMessageToPC(oPC, "Charisma score = " + sCharisma); + string sPersuade = IntToString(nPersuade); + SendMessageToPC(oPC, "Persuade score = " + sPersuade); + string sLeadershipScore = IntToString(nLeadershipScore); + SendMessageToPC(oPC, "Leadership score = " + sLeadershipScore); + } + return nLeadershipScore; +} + +void SetMaxHenchmen69(object oPC) +{ + int nLeadershipScore = GetLeadershipScore(oPC); + + //Primary Code + if(GetHasLeadership(oPC) == FALSE) + { + SetLocalInt(oPC, "MaxHenchmen", 0); + } + else if(nLeadershipScore >= 25) + { + SetLocalInt(oPC, "MaxHenchmen", 10); + } + else if(nLeadershipScore >= 20) + { + SetLocalInt(oPC, "MaxHenchmen", 5); + } + else if(nLeadershipScore >= 15) + { + SetLocalInt(oPC, "MaxHenchmen", 4); + } + else if(nLeadershipScore >= 10) + { + SetLocalInt(oPC, "MaxHenchmen", 3); + } + else if(nLeadershipScore >= 8) + { + SetLocalInt(oPC, "MaxHenchmen", 2); + } + else if(nLeadershipScore >= 2) + { + SetLocalInt(oPC, "MaxHenchmen", 1); + } + else + { + SetLocalInt(oPC, "MaxHenchmen", 0); + } + //End Primary Code + + //Secondary Code + //Uncomment following code to use this form + //Comment out the Primary Code + /* + if(GetHasLeadership(oPC) == FALSE) + { + SetLocalInt(oPC, "MaxHenchmen", 0); + return; + } + switch(nLeadershipScore) + { + case 0: case -1: case -2: case -3: + SetLocalInt(oPC, "MaxHenchmen", 0); + break; + + case 1: + SetLocalInt(oPC, "MaxHenchmen", 1); + break; + + case 2: + SetLocalInt(oPC, "MaxHenchmen", 1); + break; + + case 3: + SetLocalInt(oPC, "MaxHenchmen", 1); + break; + + case 4: + SetLocalInt(oPC, "MaxHenchmen", 2); + break; + + case 5: + SetLocalInt(oPC, "MaxHenchmen", 2); + break; + + case 6: + SetLocalInt(oPC, "MaxHenchmen", 2); + break; + + case 7: + SetLocalInt(oPC, "MaxHenchmen", 3); + break; + + case 8: + SetLocalInt(oPC, "MaxHenchmen", 3); + break; + + case 9: + SetLocalInt(oPC, "MaxHenchmen", 3); + break; + + case 10: + SetLocalInt(oPC, "MaxHenchmen", 4); + break; + + case 11: + SetLocalInt(oPC, "MaxHenchmen", 4); + break; + + case 12: + SetLocalInt(oPC, "MaxHenchmen", 4); + break; + + case 13: case 14: case 15: + SetLocalInt(oPC, "MaxHenchmen", 5); + break; + + case 16: case 17: case 18: + SetLocalInt(oPC, "MaxHenchmen", 6); + break; + + default: + SetLocalInt(oPC, "MaxHenchmen", 7); + break; + }*/ + //End Secondary Code + +} + +int GetMaxHenchmen69(object oPC) +{ + int TEST_MODE = GetLocalInt(GetModule(), "TEST_MODE"); + int nMaxHenchmen = GetLocalInt(oPC, "MaxHenchmen"); + //Test + if(TEST_MODE == 1) + { + string sMaxHenchmen = IntToString(nMaxHenchmen); + SendMessageToPC(oPC, "Maximum allowable henchmen = " + sMaxHenchmen); + } + return nMaxHenchmen; +} diff --git a/_content/hak/prc8_ancordia/nw_s0_curinflict.ncs b/_content/hak/prc8_ancordia/nw_s0_curinflict.ncs index 81aef6e..8bbb8d0 100644 Binary files a/_content/hak/prc8_ancordia/nw_s0_curinflict.ncs and b/_content/hak/prc8_ancordia/nw_s0_curinflict.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s0_healcirc.ncs b/_content/hak/prc8_ancordia/nw_s0_healcirc.ncs index ae3b8fd..2b50177 100644 Binary files a/_content/hak/prc8_ancordia/nw_s0_healcirc.ncs and b/_content/hak/prc8_ancordia/nw_s0_healcirc.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s0_healharm.ncs b/_content/hak/prc8_ancordia/nw_s0_healharm.ncs index 8cbd2be..3726d77 100644 Binary files a/_content/hak/prc8_ancordia/nw_s0_healharm.ncs and b/_content/hak/prc8_ancordia/nw_s0_healharm.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s0_res.ncs b/_content/hak/prc8_ancordia/nw_s0_res.ncs index c3a31ba..82c6d19 100644 Binary files a/_content/hak/prc8_ancordia/nw_s0_res.ncs and b/_content/hak/prc8_ancordia/nw_s0_res.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_aurablnda.ncs b/_content/hak/prc8_ancordia/nw_s1_aurablnda.ncs index 376b84a..e4aa3c2 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_aurablnda.ncs and b/_content/hak/prc8_ancordia/nw_s1_aurablnda.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_auracoldc.ncs b/_content/hak/prc8_ancordia/nw_s1_auracoldc.ncs index 841ab57..a5e7712 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_auracoldc.ncs and b/_content/hak/prc8_ancordia/nw_s1_auracoldc.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_auraelecc.ncs b/_content/hak/prc8_ancordia/nw_s1_auraelecc.ncs index 6e622d9..2d8e4c0 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_auraelecc.ncs and b/_content/hak/prc8_ancordia/nw_s1_auraelecc.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_aurafirec.ncs b/_content/hak/prc8_ancordia/nw_s1_aurafirec.ncs index 50fe632..725e169 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_aurafirec.ncs and b/_content/hak/prc8_ancordia/nw_s1_aurafirec.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_auramenca.ncs b/_content/hak/prc8_ancordia/nw_s1_auramenca.ncs index cfdaf28..507f037 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_auramenca.ncs and b/_content/hak/prc8_ancordia/nw_s1_auramenca.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_auraprota.ncs b/_content/hak/prc8_ancordia/nw_s1_auraprota.ncs index 468539b..cea1eec 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_auraprota.ncs and b/_content/hak/prc8_ancordia/nw_s1_auraprota.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_aurastuna.ncs b/_content/hak/prc8_ancordia/nw_s1_aurastuna.ncs index 279ae96..b6eda58 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_aurastuna.ncs and b/_content/hak/prc8_ancordia/nw_s1_aurastuna.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_auraunata.ncs b/_content/hak/prc8_ancordia/nw_s1_auraunata.ncs index adac269..8ebd947 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_auraunata.ncs and b/_content/hak/prc8_ancordia/nw_s1_auraunata.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_aurauneaa.ncs b/_content/hak/prc8_ancordia/nw_s1_aurauneaa.ncs index f2ae337..34bc167 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_aurauneaa.ncs and b/_content/hak/prc8_ancordia/nw_s1_aurauneaa.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltacid.ncs b/_content/hak/prc8_ancordia/nw_s1_bltacid.ncs index 9e9d57b..a5952b3 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltacid.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltacid.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltcharm.ncs b/_content/hak/prc8_ancordia/nw_s1_bltcharm.ncs index 60db2a7..2a37c20 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltcharm.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltcharm.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltchrdr.ncs b/_content/hak/prc8_ancordia/nw_s1_bltchrdr.ncs index d86707e..1d69902 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltchrdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltchrdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltcold.ncs b/_content/hak/prc8_ancordia/nw_s1_bltcold.ncs index 373a803..2d00a86 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltcold.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltcold.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltcondr.ncs b/_content/hak/prc8_ancordia/nw_s1_bltcondr.ncs index e8c357f..6560555 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltcondr.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltcondr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltconf.ncs b/_content/hak/prc8_ancordia/nw_s1_bltconf.ncs index 914f4a1..e74ecf4 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltconf.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltconf.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltdaze.ncs b/_content/hak/prc8_ancordia/nw_s1_bltdaze.ncs index 708985f..b8ec5d2 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltdaze.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltdaze.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltdeath.ncs b/_content/hak/prc8_ancordia/nw_s1_bltdeath.ncs index c1ecd7d..ef10b59 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltdeath.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltdeath.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltdexdr.ncs b/_content/hak/prc8_ancordia/nw_s1_bltdexdr.ncs index ecc2983..2904c69 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltdexdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltdexdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltdisese.ncs b/_content/hak/prc8_ancordia/nw_s1_bltdisese.ncs index 8580d05..c81e0cc 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltdisese.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltdisese.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltdomn.ncs b/_content/hak/prc8_ancordia/nw_s1_bltdomn.ncs index ab8a4be..3c354b3 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltdomn.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltdomn.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltfire.ncs b/_content/hak/prc8_ancordia/nw_s1_bltfire.ncs index cf13fea..09ac47c 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltfire.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltfire.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltintdr.ncs b/_content/hak/prc8_ancordia/nw_s1_bltintdr.ncs index 33b3da4..748e670 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltintdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltintdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltknckd.ncs b/_content/hak/prc8_ancordia/nw_s1_bltknckd.ncs index 5c09819..e9a8d53 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltknckd.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltknckd.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltlightn.ncs b/_content/hak/prc8_ancordia/nw_s1_bltlightn.ncs index 9315527..0286bec 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltlightn.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltlightn.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltlvldr.ncs b/_content/hak/prc8_ancordia/nw_s1_bltlvldr.ncs index 7f6d6ea..e8628c5 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltlvldr.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltlvldr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltparal.ncs b/_content/hak/prc8_ancordia/nw_s1_bltparal.ncs index 352beb7..95cce17 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltparal.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltparal.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltpoison.ncs b/_content/hak/prc8_ancordia/nw_s1_bltpoison.ncs index d7368cb..e4066f7 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltpoison.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltpoison.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltshards.ncs b/_content/hak/prc8_ancordia/nw_s1_bltshards.ncs index b260bb7..00a5432 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltshards.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltshards.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltslow.ncs b/_content/hak/prc8_ancordia/nw_s1_bltslow.ncs index 779dedd..d59eaa3 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltslow.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltslow.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltstrdr.ncs b/_content/hak/prc8_ancordia/nw_s1_bltstrdr.ncs index 7ecf22e..7819b3e 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltstrdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltstrdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltstun.ncs b/_content/hak/prc8_ancordia/nw_s1_bltstun.ncs index 0b8993e..7a8f0d3 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltstun.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltstun.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltweb.ncs b/_content/hak/prc8_ancordia/nw_s1_bltweb.ncs index 25d622a..67c3671 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltweb.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltweb.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_bltwisdr.ncs b/_content/hak/prc8_ancordia/nw_s1_bltwisdr.ncs index f357cf1..93d66dc 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_bltwisdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_bltwisdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_coneacid.ncs b/_content/hak/prc8_ancordia/nw_s1_coneacid.ncs index bad0702..9b65127 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_coneacid.ncs and b/_content/hak/prc8_ancordia/nw_s1_coneacid.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_conecold.ncs b/_content/hak/prc8_ancordia/nw_s1_conecold.ncs index 21c9e7e..4f75c6e 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_conecold.ncs and b/_content/hak/prc8_ancordia/nw_s1_conecold.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_conedisea.ncs b/_content/hak/prc8_ancordia/nw_s1_conedisea.ncs index 3bac3eb..7ddb012 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_conedisea.ncs and b/_content/hak/prc8_ancordia/nw_s1_conedisea.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_coneelec.ncs b/_content/hak/prc8_ancordia/nw_s1_coneelec.ncs index f1cfdc7..11ecb35 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_coneelec.ncs and b/_content/hak/prc8_ancordia/nw_s1_coneelec.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_conesonic.ncs b/_content/hak/prc8_ancordia/nw_s1_conesonic.ncs index f7b256b..3dfb15d 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_conesonic.ncs and b/_content/hak/prc8_ancordia/nw_s1_conesonic.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_dragfear.ncs b/_content/hak/prc8_ancordia/nw_s1_dragfear.ncs index e0a66af..5fd6d0a 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_dragfear.ncs and b/_content/hak/prc8_ancordia/nw_s1_dragfear.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_dragfeara.ncs b/_content/hak/prc8_ancordia/nw_s1_dragfeara.ncs index 717ef4f..fe3245d 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_dragfeara.ncs and b/_content/hak/prc8_ancordia/nw_s1_dragfeara.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_feroc3.ncs b/_content/hak/prc8_ancordia/nw_s1_feroc3.ncs index 25681cd..dfb32e0 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_feroc3.ncs and b/_content/hak/prc8_ancordia/nw_s1_feroc3.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazechaos.ncs b/_content/hak/prc8_ancordia/nw_s1_gazechaos.ncs index 584a1fd..5f62c74 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazechaos.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazechaos.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazecharm.ncs b/_content/hak/prc8_ancordia/nw_s1_gazecharm.ncs index b27cd59..f5b734c 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazecharm.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazecharm.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazeconfu.ncs b/_content/hak/prc8_ancordia/nw_s1_gazeconfu.ncs index f5a010f..58011c9 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazeconfu.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazeconfu.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazedaze.ncs b/_content/hak/prc8_ancordia/nw_s1_gazedaze.ncs index d63fc80..340d88c 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazedaze.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazedaze.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazedeath.ncs b/_content/hak/prc8_ancordia/nw_s1_gazedeath.ncs index 149369a..8c6da0f 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazedeath.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazedeath.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazedomn.ncs b/_content/hak/prc8_ancordia/nw_s1_gazedomn.ncs index ec2f33f..abbfe06 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazedomn.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazedomn.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazedoom.ncs b/_content/hak/prc8_ancordia/nw_s1_gazedoom.ncs index 9b0f39a..459bd71 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazedoom.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazedoom.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazeevil.ncs b/_content/hak/prc8_ancordia/nw_s1_gazeevil.ncs index d5e209d..e59ef93 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazeevil.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazeevil.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazefear.ncs b/_content/hak/prc8_ancordia/nw_s1_gazefear.ncs index bb9fe90..1933b6a 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazefear.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazefear.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazegood.ncs b/_content/hak/prc8_ancordia/nw_s1_gazegood.ncs index 33deeef..22b27ce 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazegood.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazegood.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazelaw.ncs b/_content/hak/prc8_ancordia/nw_s1_gazelaw.ncs index c4d06dc..9869323 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazelaw.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazelaw.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_gazestun.ncs b/_content/hak/prc8_ancordia/nw_s1_gazestun.ncs index 717ed05..d6fc354 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_gazestun.ncs and b/_content/hak/prc8_ancordia/nw_s1_gazestun.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_golemgas.ncs b/_content/hak/prc8_ancordia/nw_s1_golemgas.ncs index 5d6dbb8..efb74ee 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_golemgas.ncs and b/_content/hak/prc8_ancordia/nw_s1_golemgas.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_hndbreath.ncs b/_content/hak/prc8_ancordia/nw_s1_hndbreath.ncs index aa1ea7e..39b6ab6 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_hndbreath.ncs and b/_content/hak/prc8_ancordia/nw_s1_hndbreath.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_howlconf.ncs b/_content/hak/prc8_ancordia/nw_s1_howlconf.ncs index 10cd020..2649dad 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_howlconf.ncs and b/_content/hak/prc8_ancordia/nw_s1_howlconf.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_howldaze.ncs b/_content/hak/prc8_ancordia/nw_s1_howldaze.ncs index 82237ef..fc595ff 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_howldaze.ncs and b/_content/hak/prc8_ancordia/nw_s1_howldaze.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_howldeath.ncs b/_content/hak/prc8_ancordia/nw_s1_howldeath.ncs index 06fe047..c1f8a98 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_howldeath.ncs and b/_content/hak/prc8_ancordia/nw_s1_howldeath.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_howlfear.ncs b/_content/hak/prc8_ancordia/nw_s1_howlfear.ncs index a2af6c1..1ac9f0e 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_howlfear.ncs and b/_content/hak/prc8_ancordia/nw_s1_howlfear.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_howlparal.ncs b/_content/hak/prc8_ancordia/nw_s1_howlparal.ncs index aed4415..42488a9 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_howlparal.ncs and b/_content/hak/prc8_ancordia/nw_s1_howlparal.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_howlsonic.ncs b/_content/hak/prc8_ancordia/nw_s1_howlsonic.ncs index 62c8872..ae721fd 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_howlsonic.ncs and b/_content/hak/prc8_ancordia/nw_s1_howlsonic.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_howlstun.ncs b/_content/hak/prc8_ancordia/nw_s1_howlstun.ncs index 28a19f6..9a8d7f6 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_howlstun.ncs and b/_content/hak/prc8_ancordia/nw_s1_howlstun.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_krenscare.ncs b/_content/hak/prc8_ancordia/nw_s1_krenscare.ncs index fcbbba7..8f7fa04 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_krenscare.ncs and b/_content/hak/prc8_ancordia/nw_s1_krenscare.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_mephsalt.ncs b/_content/hak/prc8_ancordia/nw_s1_mephsalt.ncs index 0e92ae3..5406ee0 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_mephsalt.ncs and b/_content/hak/prc8_ancordia/nw_s1_mephsalt.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_mephsteam.ncs b/_content/hak/prc8_ancordia/nw_s1_mephsteam.ncs index 91107e1..f61d7ef 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_mephsteam.ncs and b/_content/hak/prc8_ancordia/nw_s1_mephsteam.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_mumundead.ncs b/_content/hak/prc8_ancordia/nw_s1_mumundead.ncs index 6897b90..2205868 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_mumundead.ncs and b/_content/hak/prc8_ancordia/nw_s1_mumundead.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulschrdr.ncs b/_content/hak/prc8_ancordia/nw_s1_pulschrdr.ncs index e3f8c5a..acc6c11 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulschrdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulschrdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulscold.ncs b/_content/hak/prc8_ancordia/nw_s1_pulscold.ncs index b17e5af..23df913 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulscold.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulscold.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulscondr.ncs b/_content/hak/prc8_ancordia/nw_s1_pulscondr.ncs index a130192..39b62d7 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulscondr.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulscondr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsdeath.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsdeath.ncs index 230f564..6879326 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsdeath.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsdeath.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsdexdr.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsdexdr.ncs index a2fd884..60b1f47 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsdexdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsdexdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsdis.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsdis.ncs index 80e023b..39c19ba 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsdis.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsdis.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulselec.ncs b/_content/hak/prc8_ancordia/nw_s1_pulselec.ncs index 40fc5cf..dd6a5f0 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulselec.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulselec.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsfire.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsfire.ncs index 20f097e..1da13e5 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsfire.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsfire.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsholy.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsholy.ncs index c230207..3b93769 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsholy.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsholy.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsintdr.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsintdr.ncs index 6730fc8..ddf504a 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsintdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsintdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulslvldr.ncs b/_content/hak/prc8_ancordia/nw_s1_pulslvldr.ncs index de1184e..408bf6e 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulslvldr.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulslvldr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsneg.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsneg.ncs index 373c052..7dc823b 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsneg.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsneg.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulspois.ncs b/_content/hak/prc8_ancordia/nw_s1_pulspois.ncs index cafb629..a381a67 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulspois.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulspois.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsspore.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsspore.ncs index 723d855..4f7e590 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsspore.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsspore.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulsstrdr.ncs b/_content/hak/prc8_ancordia/nw_s1_pulsstrdr.ncs index aa85653..704c1ca 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulsstrdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulsstrdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulswind.ncs b/_content/hak/prc8_ancordia/nw_s1_pulswind.ncs index 92fccc7..75d4133 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulswind.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulswind.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_pulswisdr.ncs b/_content/hak/prc8_ancordia/nw_s1_pulswisdr.ncs index 19253de..da829ca 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_pulswisdr.ncs and b/_content/hak/prc8_ancordia/nw_s1_pulswisdr.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_smokeclaw.ncs b/_content/hak/prc8_ancordia/nw_s1_smokeclaw.ncs index ebed03b..2e5a547 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_smokeclaw.ncs and b/_content/hak/prc8_ancordia/nw_s1_smokeclaw.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_stink_a.ncs b/_content/hak/prc8_ancordia/nw_s1_stink_a.ncs index bb2bc5b..bca10c2 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_stink_a.ncs and b/_content/hak/prc8_ancordia/nw_s1_stink_a.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_tyrantfga.ncs b/_content/hak/prc8_ancordia/nw_s1_tyrantfga.ncs index a28a1df..5f27b26 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_tyrantfga.ncs and b/_content/hak/prc8_ancordia/nw_s1_tyrantfga.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s1_tyrantfog.ncs b/_content/hak/prc8_ancordia/nw_s1_tyrantfog.ncs index 609cad3..8ba90b5 100644 Binary files a/_content/hak/prc8_ancordia/nw_s1_tyrantfog.ncs and b/_content/hak/prc8_ancordia/nw_s1_tyrantfog.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s2_divprot.ncs b/_content/hak/prc8_ancordia/nw_s2_divprot.ncs index c2f36e0..7f7632c 100644 Binary files a/_content/hak/prc8_ancordia/nw_s2_divprot.ncs and b/_content/hak/prc8_ancordia/nw_s2_divprot.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s2_layonhand.ncs b/_content/hak/prc8_ancordia/nw_s2_layonhand.ncs index 6a097ed..a29e411 100644 Binary files a/_content/hak/prc8_ancordia/nw_s2_layonhand.ncs and b/_content/hak/prc8_ancordia/nw_s2_layonhand.ncs differ diff --git a/_content/hak/prc8_ancordia/nw_s3_balordeth.ncs b/_content/hak/prc8_ancordia/nw_s3_balordeth.ncs index 0722edb..4e9dd36 100644 Binary files a/_content/hak/prc8_ancordia/nw_s3_balordeth.ncs and b/_content/hak/prc8_ancordia/nw_s3_balordeth.ncs differ diff --git a/_content/hak/prc8_ancordia/x4_inc_functions.nss b/_content/hak/prc8_ancordia/x4_inc_functions.nss new file mode 100644 index 0000000..4dbf615 --- /dev/null +++ b/_content/hak/prc8_ancordia/x4_inc_functions.nss @@ -0,0 +1,693 @@ +const int VFX_EXCLAIM_YELLOW = 673; +const int VFX_QUESTION_YELLOW = 674; +const int VFX_EXCLAIM_SILVER = 675; +const int VFX_EXCLAIM_BLUE = 676; +const int VFX_EXCLAIM_GREEN = 677; +const int VFX_EXCLAIM_PURPLE = 678; +const int VFX_EXCLAIM_RED = 679; +const int VFX_QUESTION_SILVER = 680; +const int VFX_QUESTION_BLUE = 681; +const int VFX_QUESTION_GREEN = 682; +const int VFX_QUESTION_PURPLE = 683; +const int VFX_QUESTION_RED = 684; + +const string COLORTOKEN = " ##################$%&'()*+,-./0123456789:;;==?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[]^_`abcdefghijklmnopqrstuvwxyz{|}~~??ƒ????ˆ??????????????˜???????¥¥¢£¤¼Œ§¨ŠªŽ¯°¹²³´¾œ¡¸šºŸ½ž¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþþ"; + + +// Sends a message to every PC in the game +void GlobalMessage(string sText); + +// Returns a properly color-coded sText string based on specified RGB values +string ColorString(string sText, int nRed=255, int nGreen=255, int nBlue=255); + +// Get current time in a single integer +int CurrentDateTime(); + +// Set time from a single integer +void SetDateTime(int nDate); + +// Returns the experience required to reach given character level +int GetLevelXP(int nLevel); + +// Checks if the creature has its weapon of choice equipped +// Returns 0 if no weapon equipped is the WoC, +// 1 if only the main weapon is the WoC, +// 2 if only the offhand weapon is the WoC, +// 3 if both weapons are the WoC +int GetHasWeaponOfChoiceEquipped(object oPC); + +//Applies a permanent effect without an icon (not tested for linked effects) +void ApplyEffectToPCAndHideIcon(effect eEffect, object oPC); + +// Retrieves the last chat message of the PC that was registered with the +// RegisterNextPCChatMessage function. +string GetLastPCChatMessage(object oPC); + +// Causes the next chat message of the PC to be recorded and later retrieved +// using the GetLastPCChatMessage function. +void RegisterNextPCChatMessage(object oPC); + +// Returns TRUE if the module is being played in a singleplayer mode or +// FALSE if the module is being played in a multiplayer mode. +// It will still return FALSE if in multiplayer mode, even if there is +// only one player in the game. +int GetIsSinglePlayer(); + +// A function to create a name for a character-specific database variable. +// Example: for a variable with common part of the name "GoldBalance" and +// for a PC named "Harold Smith" played by a player with login "Xevo", +// a string generated will be: "PC_xevo_harold smith_GoldBalance". +// Note: there will be no spaces in the string if it's used as a name of +// a variable or a database. +string DBCharacterSpecificVariable(object oPlayer, string sName); + +// A function to create a name for an account-specific database variable. +// Example: for a variable with a common part of the name "GoldBalance" and +// for a PC played by a player with a login "Xevo", a string +// generated will be: "ACCOUNT_xevo_GoldBalance". +// Note: there will be no spaces in the string if it's used as a name of +// a variable or a database. +string DBAccountSpecificVariable(object oPlayer, string sName); + +// A function to create a name for a character-specific database. +// Example: for a PC named "Harold Smith" played by a player with +// a login "Xevo", a string generated will be: "PC_xevo_Harold Smith". +// Note: there will be no spaces in the string if it's used as a name of +// a variable or a database. +string CharacterDB(object oPlayer); + +// A function to create a name for an account-specific database. +// Example: for a PC played by a player with a login "Xevo", +// a string generated will be: "PC_xevo". +// Note: there will be no spaces in the string if it's used as a name of +// a variable or a database. +string AccountDB(object oPlayer); + +// Enforce that the PC will have at least a given number of levels in every +// class by the time he/she reaches the maximum level allowed in a module. +// If a PC gains a level that would make the above impossible, +// the level-up is cancelled. +// Use at the beginning of an OnLevelUp script. +// - oPC: the levelling player +// - nMinLevel: the minimum number of levels in every class +// - nPossibleLevel: maximum character level allowed in a module +void EnforceAllowedLevel(object oPC, int nMinLevel, int nPossibleLevel = 40); + +// Allows (and forces) PC to reassign a given number of levels. +// - oPC: the player +// - nLevels: the number of levels to reassign +void ReassignLevel(object oPC, int nLevels); + + +// Functions are implemented below. + +void GlobalMessage(string sText) +{ + object oPC = GetFirstPC(); + while (GetIsObjectValid(oPC)) + { + SendMessageToPC(oPC, sText); + oPC = GetNextPC(); + } +} + +string ColorString(string sText, int nRed=255, int nGreen=255, int nBlue=255) +{ + return "" + sText + ""; +} + +int CurrentDateTime() +{ + int iYear = GetCalendarYear(); + int iMonth = GetCalendarMonth(); + int iDay = GetCalendarDay(); + int iHour = GetTimeHour(); + int iDate = (iYear * 8064) + ((iMonth - 1) * 672) + ((iDay -1) * 24) + iHour; + + return iDate; +} + +void SetDateTime(int nDate) +{ + int iYear = nDate / 8064; + int iMonth = ((nDate % 8064) / 672) + 1; + int iDay = ((nDate % 672) / 24) + 1; + int iHour = nDate % 24; + + SetCalendar(iYear, iMonth, iDay); + SetTime(iHour, GetTimeMinute(), GetTimeSecond(), GetTimeMillisecond()); +} + +void EnforceAllowedLevel(object oPC, int nMinLevel, int nPossibleLevel = 40) +{ + //Declare variables + int nClass2 = CLASS_TYPE_INVALID; + int nClass3 = CLASS_TYPE_INVALID; + int nClass1Levels; + int nClass2Levels; + int nClass3Levels; + int nMinLevelC2; + int nMinLevelC3; + int nHD = GetHitDice(oPC); + + //Store PC's classes as variables (in case one of them is a Harper or a Knight; for this reason, only slots 2 and 3 are needed) + nClass2 = GetClassByPosition(2, oPC); + nClass3 = GetClassByPosition(3, oPC); + + //Store levels in each of the PC's class as variables + nClass1Levels = GetLevelByPosition(1, oPC); + nClass2Levels = GetLevelByPosition(2, oPC); + nClass3Levels = GetLevelByPosition(3, oPC); + + //A special case - if nMinLevel is greater than 5, allow PCs to have only 5 levels of a Knight or/and a Harper class anyway + nMinLevelC2 = nMinLevel; + nMinLevelC3 = nMinLevel; + if (nMinLevel > 5) + { + if (nClass2 == CLASS_TYPE_HARPER || nClass2 == CLASS_TYPE_PURPLE_DRAGON_KNIGHT) nMinLevelC2 = 5; + if (nClass3 == CLASS_TYPE_HARPER || nClass3 == CLASS_TYPE_PURPLE_DRAGON_KNIGHT) nMinLevelC3 = 5; + + } + + //Accept the level-up if the PC doesn't multiclass and hasn't crossed a limit of the maximum possible level in a module + if (nClass2 == CLASS_TYPE_INVALID) + { + if (nHD <= nPossibleLevel) return; + } + + //Determine if the PC is allowed this level-up if the PC has 2 or 3 classes + else + { + if (nClass1Levels < nMinLevel) nClass1Levels = nMinLevel; + if (nClass2Levels < nMinLevel && nClass2 != CLASS_TYPE_INVALID) nClass2Levels = nMinLevelC2; + if (nClass3Levels < nMinLevel && nClass3 != CLASS_TYPE_INVALID) nClass3Levels = nMinLevelC3; + + if (nClass1Levels + nClass2Levels + nClass3Levels <= nPossibleLevel) return; + } + + //Cancel the level-up if need be + int nXP = GetXP(oPC); + int nExpMultiplier = nHD-1; + SetXP(oPC, (nExpMultiplier*nExpMultiplier-nExpMultiplier)*500); + DelayCommand(3.0, SetXP(oPC, nXP)); + FloatingTextStringOnCreature("You can't advance in this class anymore!", oPC, TRUE); + +} + +void ReassignLevel(object oPC, int nLevels) +{ + int nXP = GetXP(oPC); + int nExpMultiplier = GetHitDice(oPC)-nLevels; + SetXP(oPC, (nExpMultiplier*nExpMultiplier-nExpMultiplier)*500); + DelayCommand(3.0, SetXP(oPC, nXP)); +} + +int GetHasWeaponOfChoiceEquipped(object oPC) +{ + int nRight; + int nLeft; + //Club + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_CLUB, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_CLUB ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_CLUB, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_CLUB ) + nLeft = TRUE; + //Bastard + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BASTARDSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_BASTARDSWORD ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BASTARDSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_BASTARDSWORD ) + nLeft = TRUE; + //Battle axe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BATTLEAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_BATTLEAXE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BATTLEAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_BATTLEAXE ) + nLeft = TRUE; + //Dagger + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DAGGER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_DAGGER ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DAGGER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_DAGGER ) + nLeft = TRUE; + //Dire mace + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DIREMACE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_DIREMACE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DIREMACE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_DIREMACE ) + nLeft = TRUE; + //Double axe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DOUBLEAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_DOUBLEAXE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DOUBLEAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_DOUBLEAXE ) + nLeft = TRUE; + //Dwarven waraxe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DWAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_DWARVENWARAXE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DWAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_DWARVENWARAXE ) + nLeft = TRUE; + //Great axe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_GREATAXE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_GREATAXE ) + nLeft = TRUE; + //Greatsword + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_GREATSWORD ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_GREATSWORD ) + nLeft = TRUE; + //Halberd + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HALBERD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_HALBERD ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HALBERD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_HALBERD ) + nLeft = TRUE; + //Hand axe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HANDAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_HANDAXE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HANDAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_HANDAXE ) + nLeft = TRUE; + //Heavy flail + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HEAVYFLAIL, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_HEAVYFLAIL ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HEAVYFLAIL, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_HEAVYFLAIL ) + nLeft = TRUE; + //Kama + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KAMA, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_KAMA ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KAMA, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_KAMA ) + nLeft = TRUE; + //Katana + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KATANA, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_KATANA ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KATANA, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_KATANA ) + nLeft = TRUE; + //Kukri + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KUKRI, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_KUKRI ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KUKRI, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_KUKRI ) + nLeft = TRUE; + //Light flail + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTFLAIL, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_LIGHTFLAIL ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTFLAIL, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_LIGHTFLAIL ) + nLeft = TRUE; + //Light hammer + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTHAMMER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_LIGHTHAMMER ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTHAMMER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_LIGHTHAMMER ) + nLeft = TRUE; + //Light mace + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTMACE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_LIGHTMACE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTMACE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_LIGHTMACE ) + nLeft = TRUE; + //Longsword + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LONGSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_LONGSWORD ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LONGSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_LONGSWORD ) + nLeft = TRUE; + //Morningstar + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_MORNINGSTAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_MORNINGSTAR ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_MORNINGSTAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_MORNINGSTAR ) + nLeft = TRUE; + //Quarterstaff + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_QUARTERSTAFF, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_QUARTERSTAFF ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_QUARTERSTAFF, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_QUARTERSTAFF ) + nLeft = TRUE; + //Rapier + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_RAPIER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_RAPIER ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_RAPIER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_RAPIER ) + nLeft = TRUE; + //Scimitar + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCIMITAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SCIMITAR ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCIMITAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SCIMITAR ) + nLeft = TRUE; + //Scythe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCYTHE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SCYTHE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCYTHE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SCYTHE ) + nLeft = TRUE; + //Spear + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSPEAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SHORTSPEAR ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSPEAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SHORTSPEAR ) + nLeft = TRUE; + //Shortsword + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SHORTSWORD ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SHORTSWORD ) + nLeft = TRUE; + //Sickle + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SICKLE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SICKLE ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SICKLE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SICKLE ) + nLeft = TRUE; + //Trident + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_TRIDENT, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_TRIDENT ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_TRIDENT, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_TRIDENT ) + nLeft = TRUE; + //Two-bladed sword + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_TWOBLADEDSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_TWOBLADEDSWORD ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_TWOBLADEDSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_TWOBLADEDSWORD ) + nLeft = TRUE; + //Warhammer + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_WARHAMMER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_WARHAMMER ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_WARHAMMER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_WARHAMMER ) + nLeft = TRUE; + //Whip + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_WHIP, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_WHIP ) + nRight = TRUE; + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_WHIP, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_WHIP ) + nLeft = TRUE; + + if (!nLeft && !nRight) return 0; + if (!nLeft && nRight) return 1; + if (nLeft && !nRight) return 2; + return 3; +} + +void ApplyWeaponFury(object oPC) +{ + // Check for the pseudo-heartbeat no longer being needed. + if ( GetLocalInt(oPC, "wm_weapfury") != 1 ) + return; + + int nLevel = GetLevelByClass(CLASS_TYPE_WEAPON_MASTER, oPC); + int nDuration = nLevel / 2; //1 round per 2 caster levels + int nAbBonus = nLevel / 5; //+2AB at level 11, +3 at 15, +4 at 20, +5 at 25, +6 at 30 + int nDamageBonus = nLevel / 5; + //Enhance the bonuses for simple weapons + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_CLUB) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_DAGGER) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTMACE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_MORNINGSTAR) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_QUARTERSTAFF) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_SICKLE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSPEAR)) + { + nAbBonus += 1; + nDamageBonus += 2; + } + int nDamageType; + + //Club + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_CLUB, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_CLUB ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_CLUB, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_CLUB ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Bastard + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BASTARDSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_BASTARDSWORD ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BASTARDSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_BASTARDSWORD ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Battle axe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BATTLEAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_BATTLEAXE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BATTLEAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_BATTLEAXE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Dagger + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DAGGER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_DAGGER ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DAGGER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_DAGGER ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Dire mace + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DIREMACE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_DIREMACE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DIREMACE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_DIREMACE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Double axe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DOUBLEAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_DOUBLEAXE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DOUBLEAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_DOUBLEAXE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Dwarven waraxe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DWAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_DWARVENWARAXE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_DWAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_DWARVENWARAXE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Great axe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_GREATAXE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_GREATAXE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Greatsword + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_GREATSWORD ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_GREATSWORD ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Halberd + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HALBERD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_HALBERD ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HALBERD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_HALBERD ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Hand axe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HANDAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_HANDAXE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HANDAXE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_HANDAXE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Heavy flail + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HEAVYFLAIL, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_HEAVYFLAIL ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_HEAVYFLAIL, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_HEAVYFLAIL ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Kama + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KAMA, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_KAMA ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KAMA, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_KAMA ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Katana + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KATANA, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_KATANA ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KATANA, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_KATANA ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Kukri + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KUKRI, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_KUKRI ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_KUKRI, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_KUKRI ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Light flail + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTFLAIL, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_LIGHTFLAIL ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTFLAIL, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_LIGHTFLAIL ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Light hammer + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTHAMMER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_LIGHTHAMMER ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTHAMMER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_LIGHTHAMMER ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Light mace + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTMACE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_LIGHTMACE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTMACE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_LIGHTMACE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Longsword + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LONGSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_LONGSWORD ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_LONGSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_LONGSWORD ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Morningstar + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_MORNINGSTAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_MORNINGSTAR ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_MORNINGSTAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_MORNINGSTAR ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Quarterstaff + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_QUARTERSTAFF, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_QUARTERSTAFF ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_QUARTERSTAFF, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_QUARTERSTAFF ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Rapier + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_RAPIER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_RAPIER ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_RAPIER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_RAPIER ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Scimitar + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCIMITAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SCIMITAR ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCIMITAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SCIMITAR ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Scythe + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCYTHE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SCYTHE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCYTHE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SCYTHE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Spear + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSPEAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SHORTSPEAR ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSPEAR, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SHORTSPEAR ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Shortsword + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SHORTSWORD ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SHORTSWORD ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Sickle + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SICKLE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_SICKLE ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_SICKLE, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_SICKLE ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Trident + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_TRIDENT, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_TRIDENT ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_TRIDENT, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_TRIDENT ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Two-bladed sword + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_TWOBLADEDSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_TWOBLADEDSWORD ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_TWOBLADEDSWORD, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_TWOBLADEDSWORD ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Warhammer + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_WARHAMMER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_WARHAMMER ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_WARHAMMER, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_WARHAMMER ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + //Whip + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_WHIP, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_WHIP ) + SetLocalInt(oPC, "wm_rightcorrect", 1); + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_WHIP, oPC) == TRUE && GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == BASE_ITEM_WHIP ) + SetLocalInt(oPC, "wm_leftcorrect", 1); + + //Make the bonus damage bludgeoning for bludgeoning weapons, slashing for slashing ones and piercing for piercing ones + if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_CLUB) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_DIREMACE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_HEAVYFLAIL) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTFLAIL) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTHAMMER) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_LIGHTMACE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_MORNINGSTAR) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_QUARTERSTAFF) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_WARHAMMER)) + nDamageType = DAMAGE_TYPE_BLUDGEONING; + + else if (GetHasFeat(FEAT_WEAPON_OF_CHOICE_BASTARDSWORD) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_BATTLEAXE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_DOUBLEAXE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_DWAXE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATAXE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_GREATSWORD) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_HALBERD) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_KAMA) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_HANDAXE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_KATANA) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_KUKRI) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_LONGSWORD) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCIMITAR) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_SCYTHE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_SHORTSWORD) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_SICKLE) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_TWOBLADEDSWORD) || GetHasFeat(FEAT_WEAPON_OF_CHOICE_WHIP)) + nDamageType = DAMAGE_TYPE_SLASHING; + + else + nDamageType = DAMAGE_TYPE_PIERCING; + + if (GetLocalInt(oPC, "wm_rightcorrect") == 1) + { + effect eAbBonusRight = EffectAttackIncrease(nAbBonus, ATTACK_BONUS_ONHAND); + effect eDamageBonusRight = EffectDamageIncrease(nDamageBonus, nDamageType); + effect eRight = EffectLinkEffects(eAbBonusRight, eDamageBonusRight); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRight, oPC, 1.0); + } + + if (GetLocalInt(oPC, "wm_leftcorrect") == 1) + { + effect eAbBonusLeft = EffectAttackIncrease(nAbBonus, ATTACK_BONUS_OFFHAND); + effect eDamageBonusLeft = EffectDamageIncrease(nDamageBonus, nDamageType); + effect eLeft = EffectLinkEffects(eAbBonusLeft, eDamageBonusLeft); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLeft, oPC, 1.0); + } + + SetLocalInt(oPC, "wm_rightcorrect", 0); + SetLocalInt(oPC, "wm_leftcorrect", 0); + + // Recurse. + DelayCommand(1.0, ApplyWeaponFury(oPC)); +} + +string AccountDB(object oPlayer) + { + string sAccount = GetStringLowerCase(GetPCPlayerName(oPlayer)); + string sAccountDB = "ACCOUNT_"+sAccount; + return sAccountDB; + } + +string CharacterDB(object oPlayer) + { + string sAccount = GetStringLowerCase(GetPCPlayerName(oPlayer)); + string sFullName = GetName(oPlayer); + string sCharDB = "PC_"+sAccount+"_"+sFullName; + return sCharDB; + } + +string DBAccountSpecificVariable(object oPlayer, string sName) + { + string sLogin = GetPCPlayerName(oPlayer); + string sLoginConv = GetStringLowerCase(sLogin); + string sVarName = "ACCOUNT_"+sLoginConv+"_"+sName; + return sVarName; + } + +string DBCharacterSpecificVariable(object oPlayer, string sName) + { + string sLogin = GetPCPlayerName(oPlayer); + string sFullName = GetName(oPlayer); + string sCharacter = sLogin+"_"+sFullName; + string sCharacterConv = GetStringLowerCase(sCharacter); + string sVarName = "PC_"+sCharacterConv+"_"+sName; + return sVarName; + } + +int GetIsSinglePlayer() + { + object oPC = GetFirstPC(); + if(oPC == OBJECT_INVALID) return FALSE; + string sKey = GetPCPublicCDKey(oPC, FALSE); + if(sKey == "") return TRUE; + else return FALSE; + } + +void RegisterNextPCChatMessage(object oPC) + { + SetLocalInt(oPC, "X4_PC_LISTEN", TRUE); + DeleteLocalString(oPC, "X4_CHAT_MESSAGE"); + } + +string GetLastPCChatMessage(object oPC) + { + string sMessage = GetLocalString(oPC, "X4_CHAT_MESSAGE"); + return sMessage; + } + +void EquipItem(object oCreature, object oItem) + { + SetLocalInt(oItem, "X4ToEquip", TRUE); + ExecuteScript("x4_pcequip", oCreature); + } + +void ApplyEffectToPCAndHideIcon(effect eEffect, object oPC) + { + ApplyEffectToObject(DURATION_TYPE_PERMANENT,eEffect,oPC); + eEffect = EffectLinkEffects(eEffect,EffectTurnResistanceIncrease(1)); + ApplyEffectToObject(DURATION_TYPE_PERMANENT,eEffect,oPC); + RemoveEffect(oPC,eEffect); + } + +int GetLevelXP(int nLevel) +{ + int nXP; + switch (nLevel) + { + case 1: nXP = 0; break; + case 2: nXP = 1000; break; + case 3: nXP = 3000; break; + case 4: nXP = 6000; break; + case 5: nXP = 10000; break; + case 6: nXP = 15000; break; + case 7: nXP = 21000; break; + case 8: nXP = 28000; break; + case 9: nXP = 36000; break; + case 10: nXP = 45000; break; + case 11: nXP = 55000; break; + case 12: nXP = 66000; break; + case 13: nXP = 78000; break; + case 14: nXP = 91000; break; + case 15: nXP = 105000; break; + case 16: nXP = 120000; break; + case 17: nXP = 136000; break; + case 18: nXP = 153000; break; + case 19: nXP = 171000; break; + case 20: nXP = 190000; break; + case 21: nXP = 210000; break; + case 22: nXP = 231000; break; + case 23: nXP = 253000; break; + case 24: nXP = 276000; break; + case 25: nXP = 300000; break; + case 26: nXP = 325000; break; + case 27: nXP = 351000; break; + case 28: nXP = 378000; break; + case 29: nXP = 406000; break; + case 30: nXP = 435000; break; + case 31: nXP = 465000; break; + case 32: nXP = 496000; break; + case 33: nXP = 528000; break; + case 34: nXP = 561000; break; + case 35: nXP = 595000; break; + case 36: nXP = 630000; break; + case 37: nXP = 666000; break; + case 38: nXP = 703000; break; + case 39: nXP = 741000; break; + case 40: nXP = 780000; break; + } + return nXP; +} diff --git a/_content/output/prc8_ancordia.hak b/_content/output/prc8_ancordia.hak index aff4d61..34e2a52 100644 Binary files a/_content/output/prc8_ancordia.hak and b/_content/output/prc8_ancordia.hak differ diff --git a/_content/output/prc8_ancordia.md5 b/_content/output/prc8_ancordia.md5 index 3dbf212..10eeba9 100644 --- a/_content/output/prc8_ancordia.md5 +++ b/_content/output/prc8_ancordia.md5 @@ -1 +1 @@ -10c09b0c5da057b636c25f45c16b061e \ No newline at end of file +0c1307d9c2cba8ad8677bd037bc88711 \ No newline at end of file diff --git a/_content/output/prc8_ancordia.tlk b/_content/output/prc8_ancordia.tlk index aaba876..8cbd1a1 100644 Binary files a/_content/output/prc8_ancordia.tlk and b/_content/output/prc8_ancordia.tlk differ diff --git a/_content/tlk/prc8_ancordia.tlk b/_content/tlk/prc8_ancordia.tlk index faf18ab..8cbd1a1 100644 Binary files a/_content/tlk/prc8_ancordia.tlk and b/_content/tlk/prc8_ancordia.tlk differ diff --git a/_content/tlk/prc8_ancordia.xml b/_content/tlk/prc8_ancordia.xml index f505ef5..d585a97 100644 --- a/_content/tlk/prc8_ancordia.xml +++ b/_content/tlk/prc8_ancordia.xml @@ -11,7 +11,7 @@ Knight is a support class, which means it can be advanced only up to level 5. - Hit Die: d10. - Proficiencies: A knight gains no additional proficiences. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -20,7 +20,7 @@ Base Attack Bonus: +4. Feats: Mounted Combat (requires Ride 1). Skills: Spot 2 ranks, Intimidate 1 rank, Listen 2 ranks, Persuade 1 rank, Ride 2 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Rallying Cry - +2 Attack Bonus and 25% movement speed bonus to all allies within 60 feet, can be used three times a day. @@ -46,7 +46,7 @@ REQUIREMENTS: Skills: Discipline 4 ranks, Search 4 ranks, Lore 6 ranks, Persuade 8 ranks. Feats: Alertness, Iron Will. -ABILITIES: +CLASS FEATURES: Level 1: Bardic Knowledge: Bonus to identifying items. @@ -75,7 +75,7 @@ REQUIREMENTS: Class: Sorcerer or Bard Skills: 8 Ranks in Lore -ABILITIES: +CLASS FEATURES: Level 1: Draconic Armor - The character's skin develops nearly invisible scales that increase his/her natural armor class by +1. @@ -112,7 +112,7 @@ Divine champions are mighty warriors who dedicate themselves to their deity's ca - Hit Die: d10. - Proficiencies: All simple and martial weapons, light and medium armor, and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -120,7 +120,7 @@ Base Attack Bonus: +7 Feats: Weapon Focus in a melee weapon. Alignment: Any non evil -ABILITIES: +CLASS FEATURES: Level 2: Sacred Defense - +1 to all saving throws. @@ -136,7 +136,7 @@ For the weapon master, perfection is found in the mastery of a single melee weap - Hit Die: d10. - Proficiencies: A weapon master does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -144,7 +144,7 @@ Base Attack Bonus: +5 Feats: Weapon Focus in a melee weapon, Dodge, Mobility, Expertise, Spring Attack and Whirlwind Attack. Skills: Intimidate 4 or more ranks. -ABILITIES: +CLASS FEATURES: Level 1: Weapon of Choice - One is chosen and there-after all Weapon Master special abilities will only work while that type of weapon in equipped. @@ -848,7 +848,7 @@ REQUIREMENTS: Feats: Alertness, Wildshape Spellcasting: Level 3 or higher. -ABILITIES: +CLASS FEATURES: Level 1: Greater Wildshape I - Can change into a chromatic wyrmling dragon three times per day and gain use of their breath weapon. @@ -1398,7 +1398,7 @@ REQUIREMENTS: Alignment: Any evil. Skills: Hide 8 ranks, Move Silently 8 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Death Attack +1d6 - Special sneak attack that has a chance of paralyzing opponent. @@ -1457,7 +1457,7 @@ These so-called Ocular Adepts, outcasts to their own societies, have pledged the - Hit Die: d6. - Proficiencies: An Ocular Adept does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -1466,7 +1466,7 @@ Skills: Concentration 8 ranks Feats: Endurance Base Save Bonus: Fort +4 -ABILITIES: +CLASS FEATURES: Level 1: Charm Person Ray - 2/day (spell-like ability). @@ -1609,7 +1609,7 @@ Most Battleragers live short, glorious lives. - Hit Die: d12. - Proficiencies: A Battlerager does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -1620,7 +1620,7 @@ Feats: Cleave, Toughness, Power Attack Base Attack Bonus: +5 Skills: Intimidate (8 ranks), Lore (2 ranks) -ABILITIES: +CLASS FEATURES: Level 1: Battle Rage - 1/day (as per Barbarian Rage). @@ -1651,7 +1651,7 @@ A disgraced or masterless Samurai cut loose from this all-pervading value system - Proficiencies: All simple and martial weapons, plus katana. Medium and light armor. - Skill Points: 4 + Int Modifier. -ABILITIES: +CLASS FEATURES: Ancestral Daisho All Samurai carry two masterwork weapons - a katana and a wakizashi. These weapons have been handed down over generations from the Samurai's ancestors, and protecting them is an important point of honor for the Samurai. Starting at level 4, he can awaken the supernatural abilities latent in the weapons by sacrificing items to enhance them. @@ -1667,7 +1667,7 @@ Clerics make natural warpriests. Other classes must have at least one Cleric le - Hit Die: d8. - Proficiencies: All simple and martial weapons. All types of armor and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -1677,7 +1677,7 @@ Feats: Combat Casting. Class: Cleric. Domains: At least one of the following: Destruction, Protection, Strength, War. -ABILITIES: +CLASS FEATURES: Level 1: Rally - Allies within 60 feet who are suffering from any fear effect are allowed an immediate Will saving throw at the DC of the fear effect, with a +1 morale bonus per Warpriest level. @@ -1790,7 +1790,7 @@ Shrouded in secrecy, the Ninja Spy is sworn to keep his or her profession a secr - Hit Die: d8. - Proficiencies: A Ninja Spy gains proficiency with shurikens -- Skill Points: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS: @@ -1798,7 +1798,7 @@ Alignment Restrictions: Any non-chaotic, non-good. Skills: Bluff (10 ranks), Hide (10 ranks), Tumble (10 ranks). Feats: Dodge, Evasion. -ABILITIES: +CLASS FEATURES: Level 1: Use Poison - The Ninja Spy can apply poison to weapons. @@ -1867,7 +1867,7 @@ Mystic theurges are often obsessed with magical lore, and will travel to the end - Hit Die: d4. - Proficiencies: A Mystic Theurge does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -2025,7 +2025,7 @@ Morninglords are, in many ways, the epitome of the class cleric archetype--they - Hit Die: d8. - Proficiencies: A Morninglord of Lathander does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -2035,7 +2035,7 @@ Feats: Extra Turning. Spellcasting: Able to cast 3rd level divine spells. Special: Must worship Lathander. (Clerics must have two of Good, Nobility, Protection, Renewal, Sun or Strength domains) -ABILITIES: +CLASS FEATURES: Level 1: Bane of the Restless - the character's Morninglord of Lathander levels stack with her cleric and paladin levels for the purposes of turning undead. @@ -2135,7 +2135,7 @@ Most of the tales about secret Netherese cults depict their members as power-mad - Hit Die: d6 - Proficiencies: A Cultist of the Shattered Peaks is proficient with all simple and martial weapons, as well as with light armor. -- Skill Points: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS: @@ -2145,7 +2145,7 @@ Race: Human Special: Sneak attack +1d6 Special: You may not have any levels in an arcane spellcasting class -ABILITIES: +CLASS FEATURES: Level 1: Spellcasting - Cast a small number of spells from the abjuration and enchantment schools @@ -2273,7 +2273,7 @@ Alienists deal with powers and entities from terrifyingly remote reaches of spac - Hit Die: d4. - Proficiencies: An Alienist does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -2282,7 +2282,7 @@ Feats: Alertness. Spellcasting: Able to cast 3rd level arcane spells. Special: Prior contact with an alienist or a pseudonatural creature. -ABILITIES: +CLASS FEATURES: Level 1: Summon Alien - when casting any summon monster spell, Alienist summons "pseudonatural" version of a creature. @@ -2565,7 +2565,7 @@ Rage mages are usually found working with barbarians. They tend to shy away from - Hit Die: d8. - Proficiencies: Rage mages gain no proficiency with any weapon or armor. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: To qualify to become a rage mage, a character must fulfill all the following criteria. @@ -2576,7 +2576,7 @@ Feat: Combat Casting. Spells: Able to cast 2nd-level arcane spells. Special: Rage or frenzy ability. -ABILITIES: +CLASS FEATURES: Level 1: Spell Rage 1/day - When casting a spell from abjuration, conjuration, evocation, necromancy or transmutation school while in a rage, the rage mage uses her character level as her caster level. Temporarily takes -2 penalty to Armor Class. At the end of the rage, the character is fatigued. @@ -2804,7 +2804,7 @@ The archivist is a more academic profession than the cleric or paladin but hardi - Proficiencies: Archivists are proficient with all simple weapons and with light and medium armor, but not with shields. - Skill Points: 4 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Dark knowledge (tactics) 3/day, Scribe Scroll @@ -2872,7 +2872,7 @@ If you delight in manipulating others, either to their disadvantage or for their - Proficiencies: Beguilers are proficient with all simple weapons plus the rapier, shortbow, and short sword. Beguilers are proficient with light armor, but not with shields. - Skill Points: 6 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Armored mage, trapfinding @@ -3437,7 +3437,7 @@ An unwilling creature can't be teleported by word of recall. Likewise, a creatur Knowledge is power and the quest for knowledge never ends. There is an ever lasting supply of divine lore for you, the epic archivist, to discover. Hit Die: d6 -Skill Points at Each Level: 4 + Int modifier. +Skill Points: 4 + Int modifier. Dark Knowledge (Ex): At 21st level and every 3 levels thereafter, the epic archivist gains an additional use of Dark Knowledge. Lore Mastery (Ex): The archivist adds an additional +1 bonus on all Lore skill checks at level 23 and every 5 levels thereafter. Bonus Feats: The epic archivist gains a bonus feat (selected from the list of epic class bonus feats) every three levels higher than 20th. @@ -3472,7 +3472,7 @@ Entry Requirements Skills: Intimidate 6 ranks, Lore 12 ranks, Spellcraft 6 ranks. Warlock Invocation: Must know brimstone blast or hellrime blast. -Class Features: +CLASS FEATURES: Class Skills (2 + Int modifier per level): Bluff, Concentration, Craft, Intimidate, Lore, Spellcraft, Use Magic Device. The hellfire warlock class offers great power at the expense of versatility. This prestige class presents a focused approach to tap the power of the Nine Hells, though often at a grave price. As they advance, these warlocks can access greater uses of hellfire, including the ability to infuse magic items with the power of hellfire and lash out with the fires of Hell against any foe that strikes them. @@ -3480,8 +3480,8 @@ BAB: 3/4 Invoking: At each level, you gain new invocations known, increased damage with eldritch blast, and an increase in invoker level as if you had also gained a level in the warlock class. You do not, however, gain any other benefit a character of that class would have gained. 1. Hellfire Blast -2.Resistance to Fire 10, Hellfire Infusion -3.Hellfire Shield +2. Resistance to Fire 10, Hellfire Infusion +3. Hellfire Shield Hellfire Blast Whenever you use your eldritch blast ability, you can change your eldritch blast into a hellfire blast. A hellfire blast deals your normal eldritch blast damage plus an extra 2d6 points of damage per class level. If your blast hits multiple targets (for example, the eldritch chain or eldritch cone blast shape invocations), each target takes the extra damage. This damage is not fire damage. Hellfire burns hotter than any normal fire. @@ -3534,7 +3534,7 @@ Spells: Ability to cast 2nd-level divine spells. Invocations: Ability to use least invocations. Special: Ability to turn or rebuke undead, must worship a chaotic or evil deity. -ABILITIES: +CLASS FEATURES: Level 1: Gift of the Divine Patron (Su) @@ -3571,7 +3571,7 @@ Spells: Ability to cast 2nd-level arcane spells. Invocations: Ability to use least invocations. Special: Eldritch blast +2d6. -ABILITIES: +CLASS FEATURES: Level 1: Damage Reduction (Su) (1/cold iron) @@ -4031,7 +4031,7 @@ The Age of Mortals brought with it a new kind of magic, the ambient magic thread - Proficiencies: A Nightstalker gains proficiencies with Simple Weapons, rapier, shortbow and short sword. He is also proficient with light armor and shields. - Skill Points: 4 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Death Sight, Trapfinding, Spiritual Resilience +1 @@ -4610,15 +4610,10 @@ Duration: 1 round/level (D) Saving Throw: No Spell Resistance: None -By casting aura of the sun, you fill the area around you with warm, glowing light that eliminates natural -shadows and hampers magical darkness.Any creature attempting to cast a spell from the shadow subschool or -a spell with the darkness descriptor within an aura of the sun must succeed on a caster level check (DC 11 + -your caster level), or the spell fails. Areas of magical darkness originating from 3rd-level or lower spells -and effects are temporarily suppressed when overlapping with an aura of the sun. Creatures that take penalties -in bright light also take them while within an aura of the sun, and an undead creature takes 1d6 points of positive -energy damage at the end of its turn every round that it spends within the spell's area.Furthermore, any creature -attempting to hide within the aura takes a -4 penalty on Hide checks. +By casting aura of the sun, you fill the area around you with warm, glowing light that eliminates natural shadows and hampers magical darkness. Any creature attempting to cast a spell from the shadow subschool or a spell with the darkness descriptor within an aura of the sun must succeed on a caster level check (DC 11 + your caster level), or the spell fails. Areas of magical darkness originating from 3rd-level or lower spells and effects are temporarily suppressed when overlapping with an aura of the sun. Creatures that take penalties in bright light also take them while within an aura of the sun, and an undead creature takes 1d6 points of positive energy damage at the end of its turn every round that it spends within the spell's area.Furthermore, any creature attempting to hide within the aura takes a -4 penalty on Hide checks. + This effect is centered on you and moves with you. + Anyone who enters the aura immediately becomes subject to its effect, but creatures that leave are no longer affected. Righteous Aura @@ -5032,7 +5027,7 @@ Text - Hit Die: d4. - Proficiencies: An Ultimate Magus does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -5175,7 +5170,7 @@ REQUIREMENTS: Alignment: Any evil. Skills: Hide 8 ranks, Move Silently 8 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Death Attack +1d6 - Special sneak attack that has a chance of paralyzing opponent. @@ -5227,7 +5222,7 @@ A Blackguard epitomizes evil. They are nothing short of a mortal fiend, a black - Hit Die: d10. - Proficiencies: All simple and martial weapons, all types of armor, and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -5236,7 +5231,7 @@ Base Attack Bonus: +6 Skills: Hide 5 ranks. Feats: Cleave. -ABILITIES: +CLASS FEATURES: Level 1: Use Poison - Automatic success when coating a weapon with poison. @@ -5335,7 +5330,7 @@ Holy Power (Su): The save DCs of any and all of the saint's special attacks, inc Holy Touch (Su): A saint's entire being is suffused with holy power, which likewise flows into any weapon the saint wields. A saint's melee attacks with any weapon (or unarmed) deal an additional 1d6 points of holy damage against evil creatures, and 1d8 points against evil undead and evil outsiders. Any evil creature that strikes a saint with a natural weapon takes holy damage as if hit by the saint's attack. -Spell-Like Abilities: At will - guidance, resistance, virtue, and bless. A saint's caster level is equal to its Hit Die total. The save DCs are Charisma-based. +Spell-like Abilities: At will - guidance, resistance, virtue, and bless. A saint's caster level is equal to its Hit Die total. The save DCs are Charisma-based. Special Qualities: A saint retains all the character's special qualities and gains those listed below, as well as the outsider type. @@ -6172,194 +6167,291 @@ effects, you gain a +10 resistance bonus on saving throws (or Charisma checks, in the case of effects such as charm person) to resist commands that would cause you to leave your current position. - Force Missiles - Evocation [Force] -Level: Sorcerer 4, Wizard 4, -Components: V, S, -Casting Time: 1 Standard Action -Range: Medium (100 ft. + 10 ft./level) -Target: Up to four creatures, no two of which are more than 30 ft. apart -Duration: Instantaneous -Saving Throw: None -Spell Resistance: Yes + Brb + Brd + Clr + Dru + Fgt + Mnk + Pal + Rgr + Rog + Sor + Wiz + Rab + RAn + RCn + RHu + RMo + REl + RFe + RDr + RUn + Com + RBe + RGi + RMB + ROu + RSh + RVe + Shd + Har + AA + Ass + Blk + DCh + WM + PM + Sh + DwD + DD + ROo + RPl + PDK + UrP + Bnd + AnM + KSS + ScD + TnA + RM + SG + SP + OcA + Brg + MT + NjS + Sam + WaP + SpC + Vrt + Mar + Swa + Hex + Dsk + Sct + Hlr + MgK + HaM + SpS + AoS + UnS + EK + ES + Fac + Cel + Cul + Fsk + Inc + Sb + Tot + Beg + Dul + Hie + RA + KtC + Hat + IsF + Sld + HW + FoR + VoB + Lic + Psh + CoC + SC + Art + ADu + FMM + wlM + ShS + AbC + ArM + Ooz + PsR + SDn + KoW + DrJ + SbI + SbS + WyG + Umb + Ali + BBC + Wlk + DsL + Spn + NtS + ShA + SoL + Sph + TSl + BS + IoD + BgT + Bld + SuM + SF + LD + DoB + MCK + Iji + DoD + CWS + Rav + RB + Tal + Shc + CoN + Msh + Noc + TRg + Nja + Sbl + Dsh + DfA + Psi + PsW + Sk + Wld + ThK + RW + TN + AT + Dbl + FoH + Ich + JWW + Ego + PA + Las + OBI + HfW + ToO + Shu + BFZ + SBH + KMC + Mae + CMd + Oll + WsS + SS + WW + Hos + MoS + MHa + FB + Tem + Foe + EoG + Orc + ToG + Nnt + ED + ET + GFK + DN + FrM + Arc + DsS + JPM + BcM + RKV + Mo9 + EB + SSN + WbB + Bae + DoM + SE + HsM + DrM + EF + MLL + InB + Shm + Pyr + Smi + PsT + Cer + Thr + FoZ + HM + Cpl + RuC + Wch + Wmi + IrM + SM + SoD + DoA + Dir + Sue + FS + WWC + ScH + Tru + MAl + Brf + BsS + Soh + Cru + Ssg + Wb + WMg + Kni + FDQ + HWM + Tia + DDv + FM + WfJ + Bsm + Nen + Bli + RgM + DhM + SW + Dia + Fro + CSM + ShT + Hobgoblin Warsoul + Hobgoblin Warsoul + Hobgoblin Warsouls + Occasionally, a warcaster displays an incredible talent for spellcasting, quickly racing ahead of her peers and mastering potent spells. As she endures more rituals and delves deeper into her studies, the warcaster grows in power until her flesh becomes little more than a withered vessel for her soul. She even learns to consume the essence of her “lessers” to augment her spells. Invariably, she comes to either lead a tribe or die at the hands of a rival. -Sparking bolts of blue magic, like giant magic missiles, streak from your -outstretched hand to strike your foes and explode in sparkling bursts. +Hobgoblin Warsoul Ability Adjustments: -2 Str, +6 Dex, +8 Con, +4 Int, +4 Wis, +10 Cha +Favored Class (Sorcerer): A multiclass Hobgoblin Warsoul's sorcerer class does not count when determining whether he suffers an XP penalty for multiclassing. -You create powerful missiles of magical force, each of which darts from your -fingertips and unerringly strikes its target, dealing 2d6 points of damage. -The missile then explodes in a burst of force that deals half this amount of -damage to any creatures adjacent to the primary target. +Special Abilities: -The missile strikes unerringly, even if the target is in melee or has anything -less than total cover or concealment. A caster cannot single out specific parts -of a creature. +- Darkvision +- Base movement of 30 +- Natural Armor Bonus: Racial natural armor bonus of 4 +- Damage Reduction 10/+1 +- Spell Resistance of 8 + hit dice +- Iron Will as a bonus feat +- Spell Eater (Su): If a warsoul succeeds on her save against a spell, she gains 5 temporary hit points and a +2 bonus on attack rolls. The attack bonus lasts for 1 round. The temporary hit points last for 1 minute. +- Soul Tyrant (Su): As a swift action, a warsoul can draw arcane power from a willing hobgoblin within 30 feet who has 10 or fewer hit points. That hobgoblin is immediately slain, leaving behind a desiccated corpse. The warsoul heals 1 hit point per Hit Die she has, and she receives a +2 bonus to the save DC of the next spell she casts. She also gains a +2 bonus on any attack roll required by the next spell she casts. If that spell deals damage, the warsoul receives a bonus on the damage roll equal to her Hit Dice. +- Cult of Power (Ex): A warsoul is accompanied by 2d4 1st level hobgoblin warriors who have sworn their lives to her. These thralls willingly sacrifice themselves for their master’s soul tyrant ability. +- Monstrous Humanoid: Hobgoblin Warsoul are considered Monstrous Humanoids for the purpose of spells +- Sorcerer Casting: Hobgoblin Warsoul cast spells as a Sorcerer of their racial hit dice -You gain one missile for every four caster levels. Extra missiles distribute -themsleves amongst your enemies evenly. - Force Missiles (8) - Force Missiles (12) - Chasing Perfection - Transmutation -Level: Cleric 6, Druid 6, Sorcerer 6, Wizard 6, -Components: V, S, M, -Casting Time: 1 standard action -Range: Touch -Target: Creature touched -Duration: 1 minute/level -Saving Throw: Will negates (harmless) -Spell Resistance: Yes (harmless) - -Energy courses through the creature touched. -Its muscles grow and become more defined, it starts to move with greater alacrity and grace, and its bearing increases. -The subject improves in all ways. -It gains a +4 enhancement bonus to each of its ability scores. - -Material Component: A statuette of a celestial or fiend worth 50 gp. - Chasing Perfection (12) - Chasing Perfection (16) - Regenerate Light Wounds - Conjuration (Healing) -Level: Cleric 1, Druid 1, -Components: V, S, -Casting Time: 1 action -Range: Touch -Target: Living creature touched -Duration: 10 rounds + 1 round/level -Saving Throw: Will negates (harmless) -Spell Resistance: Yes (harmless) - -With a touch of your hand, you boost the subject's life energy, granting him or her the fast healing ability for the duration of the spell. This healing applies only to damage sustained during the spell's duration, not to that from previous injuries. The subject heals 1 hit point per round of such damage until the spell ends and is automatically stabilized if he or she begins dying from hit point loss during that time. - -Regenerate light wounds does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple regenerate spells do not stack, only the highest-level effect applies. Applying a second regenerate spell of equal level extends the -first spell's duration by the full duration of the second spell. - Regenerate Light Wounds (3) - Regenerate Light Wounds (6) - Regenerate Light Wounds (9) - Regenerate Moderate Wounds - Conjuration (Healing) -Level: Cleric 2, Druid 2, -Components: V, S, -Casting Time: 1 action -Range: Touch -Target: Living creature touched -Duration: 10 rounds + 1 round/level -Saving Throw: Will negates (harmless) -Spell Resistance: Yes (harmless) - -With a touch of your hand, you boost the subject's life energy, granting him or her the fast healing ability for the duration of the spell. This healing applies only to damage sustained during the spell's duration, not to that from previous injuries. The subject heals 2 hit points per round of such damage until the spell ends and is automatically stabilized if he or she begins dying from hit point loss during that time. - -Regenerate moderate wounds does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple regenerate spells do not stack, only the highest-level effect applies. Applying a second regenerate spell of equal level extends the -first spell's duration by the full duration of the second spell. - Regenerate Moderate Wounds (3) - Regenerate Moderate Wounds (6) - Regenerate Moderate Wounds (9) - Regenerate Serious Wounds - Conjuration (Healing) -Level: Cleric 3, Druid 3, -Components: V, S, -Casting Time: 1 action -Range: Touch -Target: Living creature touched -Duration: 10 rounds + 1 round/level -Saving Throw: Will negates (harmless) -Spell Resistance: Yes (harmless) - -With a touch of your hand, you boost the subject's life energy, granting him or her the fast healing ability for the duration of the spell. This healing applies only to damage sustained during the spell's duration, not to that from previous injuries. The subject heals 3 hit points per round of such damage until the spell ends and is automatically stabilized if he or she begins dying from hit point loss during that time. - -Regenerate serious wounds does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple regenerate spells do not stack, only the highest-level effect applies. Applying a second regenerate spell of equal level extends the -first spell's duration by the full duration of the second spell. - Regenerate Serious Wounds (5) - Regenerate Serious Wounds (10) - Regenerate Serious Wounds (15) - Regenerate Critical Wounds - Conjuration (Healing) -Level: Cleric 4, Druid 4, -Components: V, S, -Casting Time: 1 action -Range: Touch -Target: Living creature touched -Duration: 10 rounds + 1 round/level -Saving Throw: Will negates (harmless) -Spell Resistance: Yes (harmless) - -With a touch of your hand, you boost the subject's life energy, granting him or her the fast healing ability for the duration of the spell. This healing applies only to damage sustained during the spell's duration, not to that from previous injuries. The subject heals 4 hit point per round of such damage until the spell ends and is automatically stabilized if he or she begins dying from hit point loss during that time. - -Regenerate critical wounds does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple regenerate spells do not stack, only the highest-level effect applies. Applying a second regenerate spell of equal level extends the -first spell's duration by the full duration of the second spell. - Regenerate Critical Wounds (7) - Regenerate Critical Wounds (12) - Regenerate Critical Wounds (15) - Speed of the Wind - Transmutation -Level: Druid 2, -Components: V, S, -Casting Time: 1 action -Range: Touch -Target: Living creature touched -Duration: 10 minutes/level -Saving Throw: Will negates -Spell Resistance: Yes - -With this spell, you can grant the ephemeral quickness of a sudden breeze. The subject gains a +4 enhancement bonus to Dexterity and a -2 enhancement penalty to Constitution. - Speed of the Wind (7) - Speed of the Wind (12) - Speed of the Wind (15) - Spirit Worm - Necromancy -Level: Sorcerer 1, Wizard 1, -Components: V, S, M, -Casting Time: 1 standard action -Range: Touch -Target: Living creature touched -Duration: 1 round/level, up to 5 rounds; see text -Saving Throw: Fortitude negates; see text -Spell Resistance: Yes - -You press the bit of blackened bone against your foe and intone the spell. The bone vanishes, leaving a mottled bruise where it touched. You create a lingering decay in the spirit and body of the target. If the target fails its saving throw, it takes 1 point of Constitution damage each round while the spell lasts (maximum 5 points). The victim can attempt a Fortitude saving throw each round, and success negates the Constitution damage for that round and ends the spell. - -Material Component: A piece of fire-blackened ivory or bone carved in the shape of a segmented worm. - Spirit Worm (5) - Spiritual Weapon - Evocation [Force] -Level: Cleric 2, Knight of the Chalice 2, War 2 -Components: V, S, DF, -Casting Time: 1 standard action -Range: Medium (100 ft. + 10 ft./level) -Effect: Magic weapon of force -Duration: 1 round/level (D) -Saving Throw: None -Spell Resistance: Yes - -A weapon made of pure force springs into existence and attacks opponents at a distance, as you direct it, dealing 1d8 force damage per hit, +1 point per three caster levels (maximum +5 at 15th level). The weapon takes the shape of a weapon favored by your deity or a weapon with some spiritual significance or symbolism to you (see below) and has the same threat range and critical multipliers as a real weapon of its form. It strikes the opponent you designate, starting with one attack in the round the spell is cast and continuing each round thereafter on your turn. It uses your base attack bonus (possibly allowing it multiple attacks per round in subsequent rounds) plus your Wisdom modifier as its attack bonus. It strikes as a spell, not as a weapon, so, for example, it can damage creatures that have damage reduction. As a force effect, it can strike incorporeal creatures without the normal miss chance associated with incorporeality. The weapon always strikes from your direction. It does not get a flanking bonus or help a combatant get one. Your feats (such as Weapon Focus) or combat actions (such as charge) do not affect the weapon. If the weapon goes beyond the spell range, if it goes out of your sight, or if you are not directing it, the weapon returns to you and hovers. - -Each round after the first, you can use a move action to redirect the weapon to a new target. If you do not, the weapon continues to attack the previous round's target. On any round that the weapon switches targets, it gets one attack. Subsequent rounds of attacking that target allow the weapon to make multiple attacks if your base attack bonus would allow it to. Even if the spiritual weapon is a ranged weapon, use the spell's range, not the weapon's normal range increment, and switching targets still is a move action. - -A spiritual weapon cannot be attacked or harmed by physical attacks, but dispel magic, disintegrate, a sphere of annihilation, or a rod of cancellation affects it. A spiritual weapon's AC against touch attacks is 12 (10 + size bonus for Tiny object). - -If an attacked creature has spell resistance, you make a caster level check (1d20 + caster level) against that spell resistance the first time the spiritual weapon strikes it. If the weapon is successfully resisted, the spell is dispelled. If not, the weapon has its normal full effect on that creature for the duration of the spell. - Spiritual Weapon (5) - Spiritual Weapon (10) - Spiritual Weapon (15) - Tortoise Shell - Transmutation -Level: Druid 6, -Components: V, S, DF, -Casting Time: 1 standard action -Range: Touch -Target: Living creature touched -Duration: 10 minutes/level -Saving Throw: None -Spell Resistance: Yes (harmless) - -In the blink of an eye, the creature you touched grows the armor plating of a tortoise across its torso and a tough, leathery skin elsewhere. Tortoise shell grants a +6 enhancement bonus to the subject's existing natural armor bonus. This enhancement bonus increases by 1 for every three caster levels beyond 11th, to a maximum of +9 at 20th level. - -The enhancement bonus provided by tortoise shell stacks with the target's natural armor bonus, but not with other enhancement bonuses to natural armor. A creature without natural armor has an effective natural armor of +0, much as a character wearing only normal clothing has an armor bonus of +0. - -Tortoise shell slows a creature's movement as if it were wearing heavy armor. An elf subject to tortoise shell, for example, would have a speed of 20 feet and could run only 60 feet per round. The spell affects only a creature's speed; tortoise shell doesn't carry an armor check penalty or an arcane spell failure chance. - Tortoise Shell (12) - Tortoise Shell (15) - Tortoise Shell (18) +(The following may or may not be in use, depending on the module switch settings) +Level Adjustment: +4 +Racial Hit Dice/Class: 10 of Monstrous Humanoid + Cult of Power + Type of Feat: Racial +Prerequisite: Hobgoblin Warsoul +Specifics: A warsoul is accompanied by 2d4 1st level hobgoblin warriors who have sworn their lives to her. These thralls willingly sacrifice themselves for their master’s soul tyrant ability. +Use: Selected. + Soul Tyrant + Type of Feat: Racial +Prerequisite: Hobgoblin Warsoul +Specifics: As a swift action, a warsoul can draw arcane power from a willing hobgoblin within 30 feet who has 10 or fewer hit points. That hobgoblin is immediately slain, leaving behind a desiccated corpse. The warsoul heals 1 hit point per Hit Die she has, and she receives a +2 bonus to the save DC of the next spell she casts. She also gains a +2 bonus on any attack roll required by the next spell she casts. If that spell deals damage, the warsoul receives a bonus on the damage roll equal to her Hit Dice. +Use: Selected. 62 63 64 @@ -6392,12 +6484,32 @@ Tortoise shell slows a creature's movement as if it were wearing heavy armor. An 91 92 93 - 94 - 95 - 96 - 97 - 98 - 99 + Grey Elf + Grey Elf + grey elf + grey elves + Gray elves are the most noble and regal of all elves. Taller and grander in physical appearance than others of their race, gray elves have a reputation for being aloof and arrogant (even by elven standards). They certainly are more reclusive than high elves, living in isolated mountain citadels and allowing entry only to a select few outsiders. They have either silver hair and amber eyes or pale golden hair and violet eyes. They prefer clothing of white, silver, yellow, or gold, with cloaks of deep blue or purple. + + +2 Dexterity, +2 Intelligence, –2 Strength, –2 Constitution. + + Medium: As Medium creatures, gray elves have no special bonuses or penalties due to their size. + + Gray elf base land speed is 30 feet. + + Immunity to magic sleep effects, and a +2 racial saving throw bonus against enchantment spells or effects. + + Low-Light Vision: A gray elf can see twice as far as a human in starlight, moonlight, torchlight, and similar conditions of poor illumination. She retains the ability to distinguish color and detail under these conditions. + + Weapon Proficiency: Gray elves receive the Martial Weapon Proficiency feats for the longsword, rapier, longbow (including composite longbow), and shortbow (including composite shortbow) as bonus feats. + + +2 racial bonus on Listen, Search, and Spot checks. A gray elf who merely passes within 5 feet of a secret or concealed door is entitled to a Search check to notice it as if she were actively looking for it. + + Automatic Languages: Common and Elven. Bonus Languages: Draconic, Gnoll, Gnome, Goblin, Orc, and Sylvan. + + Favored Class: Wizard. A multiclass gray elf’s wizard class does not count when determining whether she takes an experience point penalty for multiclassing. + + Level Adjustment: +0 + Grey Elf Biography. Tomb-Tainted Soul Type of Feat: General Prerequisite: Nongood alignment. @@ -6518,7 +6630,7 @@ Special Abilities: Azurin Ability Adjustments: None Favored Class: Soulborn. A multiclass Azurin's Soulborn class does not count when determining whether he suffers an XP penalty for multiclassing. -Special abilities: +Special Abilities: - Base movement of 30' - Essentia Pool: An azurin's essentia pool is permanently increased by 1. If he doesn't have an essentia pool, this trait grants him one with a single point of essentia. @@ -6557,7 +6669,7 @@ A few multiclassed barbarians become forest masters, although they rarely have t - Hit Die: d8. - Proficiencies: A forest master does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. - Spells per Day: At each forest master level the character gains new spells per day as if he had also gained a level in a divine spellcasting class to which he belonged before adding the prestige class level. He does not, however, gain any other benefit a character of that class would have gained (such as an improved chance of turning or rebuking undead). REQUIREMENTS: @@ -6566,7 +6678,7 @@ Skills: Animal Empathy 8 ranks, Concentration 4 ranks, Lore 13 ranks. Feats: Alertness, Endurance, Power Attack, Skill Focus (Lore), Weapon Proficiency (martial) or Weapon Proficiency (maul). Spells: Ability to cast entangle, plant growth*, and command plants*. -ABILITIES: +CLASS FEATURES: Level 1: Tree Brother (Sp): The forest master may assume tree shape once per day. Nature Sense* (Ex): The forest master can identify plants and animals with perfect accuracy. He can determine whether water is safe to drink or dangerous. @@ -15672,7 +15784,7 @@ A Mage Killer will fraternize with all sorts of people to help them locate and g - Hit Die: d4. - Proficiencies: A Mage Killer does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -15680,7 +15792,7 @@ Spells: Able to cast 4th-level arcane spells. Feats: Great Fortitude, Lightning Reflexes, Combat Casting, Any Martial Weapon Proficiency. Skills: Spellcraft (10 ranks). -ABILITIES: +CLASS FEATURES: Level 1: Improved Saves - The Mage Killer can choose to gain a +1 bonus to either Reflex or Fortitude saves. @@ -15718,7 +15830,7 @@ Alignment: Any non-evil. Skills: Concentration (4 ranks), Spellcraft (8 ranks), Lore (8 ranks), Persuade (2 ranks). Spells: Able to cast 3rd level arcane spells. -ABILITIES: +CLASS FEATURES: Level 1: Feat - Skill Focus: Lore - Provides a +3 bonus to all Lore skill checks. @@ -15742,7 +15854,7 @@ Feared by other mages for their ability to cast spells while in armor and treate - Hit Die: d8. - Proficiencies: A Spellsword does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -15751,7 +15863,7 @@ Feats: Weapon Proficiency: All Simple and Martial Weapon Proficiencies, Armor Pr Skills: Lore (6 ranks). Base attack bonus: +4. -ABILITIES: +CLASS FEATURES: Level 1: Ignore Arcane Spell Failure (10%). @@ -15806,7 +15918,7 @@ Through this diabolic act of symbiosis, the Acolyte hopes to gain infernal power - Hit Die: d4. - Proficiencies: An Acolyte of the Skin does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -15814,7 +15926,7 @@ Arcane Spellcasting: Able to cast 3rd-level arcane spells. Skills: Lore (8 ranks). Alignment: Any non-good. -ABILITIES: +CLASS FEATURES: Level 1: Wear Fiend - Grants +1 Natural Armor, +2 Dexterity and Dark Vision. @@ -15989,13 +16101,13 @@ Mysterious and elusive, the unseen seer trades in secrets. Subterfuge is her bus - Hit Die: d4. - Proficiencies: Unseen Seer grants no additional weapon proficiencies. -- Skill Points: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS: Skills: Hide 8 ranks, Search 8 ranks, Sense Motive 4 ranks, Spellcraft 4 ranks, Spot 8 ranks Spellcasting: Ability to cast 1st-level arcane spells -ABILITIES: +CLASS FEATURES: Level 1: Sneak Attack +1d6 2: Silent Spell as a bonus feat @@ -16027,14 +16139,14 @@ Studying the martial and arcane arts to equal degree, the Eldritch Knight is a v - Hit Die: d6 - Proficiencies: None -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Feats: All Martial Weapon Proficiencies Arcane Spellcasting: Able to cast 3rd-level spells. -ABILITIES: +CLASS FEATURES: Eldritch Knights receive a bonus feat at first level. The feats to pick from are all fighter bonus feats (except Weapon Specialization). @@ -16049,14 +16161,14 @@ Elemental Savants study the basic building blocks of existence - air, earth, fir - Hit Die: d4. - Proficiencies: An Elemental Savant does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Spellcasting: Able to cast 3rd-level arcane spells Skills: Lore 8 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Elemental Transition 1 - Grants Immunity to Sleep. @@ -16130,7 +16242,7 @@ The Master of Shrouds is an evil spellcaster who magically seizes incorporeal un - Hit Dice: d8. - Proficiencies: Masters of Shrouds are proficient with all simple weapons, with all types of armor, and with shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -16139,7 +16251,7 @@ Alignment: Evil Skills: Concentration 10 ranks, Spellcraft 10 ranks. Spells: Ability to cast divine spells, and access to at least one of these domains: Death, Evil, Protection -ABILITIES: +CLASS FEATURES: Level 1: Turn Undead - As a cleric of the same class level as the Master of Shrouds. This stacks with any levels of Cleric and/or Paladin. @@ -16351,7 +16463,7 @@ The Red Wizards are the masters of Thay, the conquerors of that land's native Ra - Hit Dice: d4. - Proficiencies: Red Wizards gain no weapon, armor or shield proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -16361,7 +16473,7 @@ Skills: Spellcraft 8 ranks Feats: Tattoo Focus and a total of 3 metamagic or item creation feats. Spells: Must be able to cast at least 3rd level Arcane spells. -ABILITIES: +CLASS FEATURES: Level 1: Enhanced Specialization - Taking this feat determines which spell school has the Spell Power and Specialists defense bonus applied to it. @@ -16389,7 +16501,7 @@ Power corrupts. Power over life and death corrupts absolutely. The power to rais - Hit Dice: d4. - Proficiencies: True Necromancers gain no weapon, armor or shield proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -16398,7 +16510,7 @@ Skills: Lore 8 ranks Feats: Death Domain Spells: Must be able to cast at least 3rd level Arcane spells, and 3rd level Divine spells. -ABILITIES: +CLASS FEATURES: Level 1: Rebuke - True Necromancer levels stack with cleric levels for turning and rebuking undead. @@ -16429,7 +16541,7 @@ Skills: Lore 4 ranks, Disable Trap 7, Pick Lock 7. Sneak Attack: 2d6 Spells: Must be able to cast at least 3rd level Arcane spells. -ABILITIES: +CLASS FEATURES: Level 1: Ranged Legerdemain - Trap & Pick Lock at 30' range, once per day. @@ -16454,7 +16566,7 @@ Fade to red, then nothing. What happened? Where are you? No sound, no light, no - Hit Dice: d6. - Proficiencies: A Blood Magus gain no weapon, armor or shield proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -16463,7 +16575,7 @@ Skills: Concentration 4 Ranks. Feats: Toughness, Great Fortitude. Spells: Must be able to cast at least 3rd level Arcane spells. -ABILITIES: +CLASS FEATURES: Level 1: Blood Component - The Blood Magus can take 1 point of damage to give a 1 DC boost to a spell. @@ -16488,7 +16600,7 @@ The Diabolist is one who has thrown his lot in with the forces of Hell. Unlike t - Hit Dice: d4. - Proficiencies: Diabolists gain no weapon, armor or shield proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -16497,7 +16609,7 @@ Skills: Bluff 3 ranks, Intimidate 3 ranks, Lore 8 ranks Feats: Evil Brand Spells: Must be able to cast at least 3rd level Arcane spells. -ABILITIES: +CLASS FEATURES: Level 1: Diabolism 1d6 - Adds 1d6 Corrupt (Divine) damage to a spell @@ -16517,7 +16629,7 @@ While many view the Fists of Hextor simply as effective if brutal mercenaries, t - Hit Dice: d10. - Proficiencies: Fists of Hextor are proficient with simple and martial weapons, all types of armor, and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -16526,7 +16638,7 @@ Skills: Spot 4 ranks, Intimidate 4 ranks, Lore 4 ranks Feats: Power Attack, Cleave, Any Martial Weapon Proficiency Base Attack Bonus: +5 -ABILITIES: +CLASS FEATURES: Level 1: Brutal Strike +1 - +1 to either attack or damage rolls. Permanent bonus. @@ -16708,7 +16820,7 @@ Alignment: Any Good. Base Attack Bonus: +6. Skills: Persuade 4 ranks, Bluff 4 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Blindfight @@ -16801,7 +16913,7 @@ The famous Purple Dragons of Cormyr are regarded across Faerun as exemplars of d - Hit Die: d10. - Proficiencies: A purple dragon knight gains no additional proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -16810,7 +16922,7 @@ Base Attack Bonus: +4 Skills: Spot 2 ranks, Intimidate 1 rank, Listen 2 ranks, Persuade 1 rank, Ride 2. Feat: Mounted Combat, Leadership (6th level minimum). -ABILITIES: +CLASS FEATURES: Level 1: Rallying Cry - +1 Attack Bonus to all allies within 60 feet, can be used three times a day. @@ -16859,7 +16971,7 @@ Any force on the move, whether it's an army or an adventuring group, needs infor - Proficiencies: A Scout is proficient with simple and rogue weapons, as well as light armor, but no shields. - Skill Points: 8 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Skirmish (+1d6) @@ -16919,7 +17031,7 @@ Many armies boast units of soldiers who use a bow as their primary weapon, but m - Hit Die: d10. - Proficiencies: A Peerless Archer does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -16927,7 +17039,7 @@ Base Attack Bonus: +7 Feats: Weapon Focus: Longbow or Weapon Focus: Shortbow, Point Blank Shot, Rapid Shot. Skills: Craft Weapon 10 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Expert Bowyer - +3 to Craft Weapon checks. @@ -17031,7 +17143,7 @@ Skills: Concentration 8 ranks. Manifesting: Must be able to manifest 1st level powers. Base Attack Bonus: +3. -ABILITIES: +CLASS FEATURES: Level 1: Armoured Mind 1/day - Expend Psionic focus to add a bonus to a single saving throw. @@ -17097,7 +17209,7 @@ Skills: Lore 4 ranks. Base Attack Bonus: +4. Special: Must possess a power point reserve of at least 1 power point. -ABILITIES: +CLASS FEATURES: Level 1: Partition Mind - You gain immunity to mind spells for a short time per day. @@ -17158,7 +17270,7 @@ Feats: Requiem (Perform 8, Bardic Music class feature) Skills: Lore 4 ranks, Perform 8. Special: Must possess the Bardic Music class feature. -ABILITIES: +CLASS FEATURES: Level 1: Song of Sorrow - All creatures take a -2 penalty to Will saves, attack and damage. @@ -17212,7 +17324,7 @@ Base Attack Bonus: +6. Feats: Any 4 Martial or Exotic Weapon Proficiencies, Combat Casting, Iron Will Skills: Concentration 4 ranks, Jump 4 ranks, Spellcraft 5 ranks, Tumble 4 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Ignore Spell Failure 5%, Tenacious Spells - Add 6 to the DC to dispel a Suel Archanamach spell. @@ -17283,7 +17395,7 @@ The Favoured Soul follows the path of the cleric but is able to channel divine p - Proficiencies: A Favoured Soul gains proficiencies with Simple Weapons, Light and Medium Armour, and Shields. - Skill Points: 2 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: @@ -17399,7 +17511,7 @@ Alignment: Lawful Evil or Neutral Evil. Feats: Evil Brand, Disciple of Darkness, Leadership Skills: Bluff 4 ranks, Persuade 5 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Charm - As the spell @@ -17474,7 +17586,7 @@ Feats: Any Martial Weapon Proficiency, Empower Spell, Maximize Spell. Skills: Spellcraft 10 ranks. Arcane Spellcasting: Able to cast 4th-level spells. -ABILITIES: +CLASS FEATURES: Level 1: Weapon Focus - Choose a bonus Martial Weapon Focus @@ -17516,7 +17628,7 @@ A Healer who grossly violates her ethos (such as by refusing to heal an ally or - Proficiencies: A Healer gains proficiency with Simple Weapons and Light Armor. Wearing heavier armor and shields violates her oaths and suppresses her healer powers. - Skill Points: 4 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Healing Hands @@ -17711,7 +17823,7 @@ Base Attack Bonus: +6 Feats: Dodge, Weapon Finesse, Mobility. Skills: Tumble 5 ranks. Perform 3 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Canny Defense - Dodge bonus to AC based on intelligence bonus, limited by class level. @@ -17802,7 +17914,7 @@ A divine spellcaster who rises high in the service of his deity gains access to - Hit Die: d8 - Proficiencies: A Hierophant does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -17810,7 +17922,7 @@ Divine Spellcasting: Able to cast 7th-level spells. Feats: Any Metamagic feat Skills: Lore 15 ranks. -ABILITIES: +CLASS FEATURES: May select one of the following abilities every level. *Blast Infidel - Negative is maximized against opposed alignments @@ -17883,7 +17995,7 @@ Base Attack Bonus: +5 Feats: Improved Unarmed Strike, Stunning Fist. Skills: Listen 8 or more ranks, Tumble: 8 or more ranks. -ABILITIES: +CLASS FEATURES: Level 1: Stunning Shout - Stun enemies by releasing ki in a shout once a day. All enemies within the cone of effect are stunned for two full rounds unless they make a successful Fortitude save (DC 15 + Wisdom Modifier). @@ -17956,7 +18068,7 @@ A Knight of the Chalice is a member of an elite knightly organization devoted to - Hit Die: d10 - Proficiencies: The Knight of the Chalice is proficient will all simple and martial weapons, armor and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -17966,7 +18078,7 @@ Skills: Lore 10 or more ranks Divine Spellcasting: Level 1 or higher. Spells: Ability to cast Protection from Evil -ABILITIES: +CLASS FEATURES: Level 1: Demonslaying +1/1d6 (Physical) - Gain combat bonuses against demons. @@ -18019,7 +18131,7 @@ The Hunter of the Dead is the hated enemy of all undead. She spends each restles - Hit Die: d10 - Proficiencies: The Hunter of the Dead is proficient will all simple and martial weapons, armor and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -18028,7 +18140,7 @@ Base Attack Bonus: +5 Skills: Lore 5 ranks Special: Turn Undead Ability -ABILITIES: +CLASS FEATURES: Level 1: Detect Undead - May sense undead at will @@ -18106,7 +18218,7 @@ The Holy Liberator is a holy warrior, a distant cousin of the paladin, who is de - Hit Die: d10 - Proficiencies: The Holy Liberator is proficient will all simple and martial weapons, all armor and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -18116,7 +18228,7 @@ Skills: Persuade 5 or more ranks Feats: Iron Will Class: Paladin (Must be in first class slot) -ABILITIES: +CLASS FEATURES: Level 1: Detect Evil - May sense evil at will. @@ -18284,7 +18396,7 @@ Feats: Mobility, Lolth's Meat Skills: Intimidate 4, Lore 4 Spellcasting: Able to cast 1st-level arcane or divine spells. -ABILITIES: +CLASS FEATURES: Level 1: War Strike 1/day - 2d6 Constitution damage to victim. @@ -18406,7 +18518,7 @@ Sune Firehair encourages beauty, passion, and love wherever they may be found. H - Hit Die: d4. - Proficiencies: The Heartwarder gains no weapon or armor proficiency. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -18416,7 +18528,7 @@ Skills: Bluff 3, Persuade 6. Divine Spellcasting: Ability to cast spells of Level 3. Special: Must worship Sune Firehair. (Clerics must have two of Charm, Good and Protection domains.) -ABILITIES: +CLASS FEATURES: Level 1: Charisma Increase - Bonus +1 to Charisma. @@ -18491,7 +18603,7 @@ Battleguards of Tempus are the soldier-priests of Tempus who specialize in milit - Hit Die: d10. - Proficiencies: The Battleguard of Tempus gains proficiency in simple and martial weapons, all armor and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -18502,7 +18614,7 @@ Base Attack Bonus: 4 Divine Spellcasting: Level 2 Special: Must worship Tempus. (Clerics must have the War domain, as well as one of Strength or Protection) -ABILITIES: +CLASS FEATURES: Level 1: Army Power - Able to inspire allies within 30 feet, giving them +2 on saving throws, attacks rolls, ability checks (turning), skill checks and damages rolls. Allies must be able to hear you. @@ -18557,9 +18669,9 @@ Prerequisite: Access to Army. Specifics: Inspire Allies: Able to inspire allies within 30 feet, giving them +2 on saving throws, attacks rolls, ability checks (turning), skill checks and damages rolls. Allies must be able to hear you. The effect will last for charisma modifier rounds. Use: Automatic. - Die Hard + Diehard Type of Feat: General -Prerequisite: Base Attack Bonus 2, Iron Will, Toughness, Crusader level 10 or Battleguard of Tempus level 7 +Prerequisite: Endurance or Crusader level 10 or Battleguard of Tempus level 7 Specifics: When your hit points are reduced to 0 or below, you automatically become stable. You heal to 1 HP. Your bonus attack decreases and your spells fail. Use: Automatic. Enchant Weapon +1 @@ -18625,7 +18737,7 @@ Special: Must have at least ONE of the following: 2) The ability to cast Level 4 Arcane Spells 3) Shadowdancer Level 1 -ABILITIES: +CLASS FEATURES: Level 1: Shadow Sight - Gains Darkvision and Ultravision in darkness. @@ -18762,7 +18874,7 @@ The Bonded Summoner knows elementals. He instinctively knows elementals' strengt - Hit Die: d4. - Proficiencies: None. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -18778,7 +18890,7 @@ Earth----Acid Fire------Fire Water--Cold -ABILITIES: +CLASS FEATURES: Level 1: Elemental Companion (Medium) - Replaces your familiar with a Medium Elemental. @@ -18835,7 +18947,7 @@ Alignment: Any evil. Base Attack Bonus: +6 Feats: Disciple of Darkness -ABILITIES: +CLASS FEATURES: Level 1: Hellfire Grasp - Can make a touch attack at will, dealing 1d6 fire damage, also character gains a +1d6 damage bonus to all unarmed strikes (while wearing gloves). @@ -18940,7 +19052,7 @@ CLASS SKILLS Craft, Discipline, Heal, Intimidate, Jump, Lore, Perform, Spot, Tumble -CLASS FEATURES +CLASS FEATURES: Base Attack: +1 per level Saving Throws: Fortitude - strong, Will - weak, Reflex - weak @@ -19039,7 +19151,7 @@ REQUIREMENTS - Ability to Rage - Chaotic Evil, Chaotic Neutral, or Neutral Evil -CLASS FEATURES +CLASS FEATURES: Feral Rage (Ex): Black Blood cultist class levels stack with barbarian levels for purposes of determining your rage ability. Thus, an 8th-level barbarian/4th-level Black Blood cultist can use greater rage four times per day, just as a 12th-level barbarian could. Black Blood cultists strengthen their fingers and toughen their nails with special training. As a result, when raging, you gain two claw attacks dealing 1d6 points of damage plus your Strength modifier. @@ -19077,7 +19189,7 @@ CLASS SKILLS Balance, Hide, Intimidate, Lore, Listen, Move Silently, Ride, Search, Spot -CLASS FEATURES +CLASS FEATURES: 1st - Shadow Ride (Su) - Dimension Door once per day per class level 2nd - Sneak Attack 1d6 3rd - Shadow Walk (Su) - Teleport once per day, Martial Bonus Feat @@ -19111,7 +19223,7 @@ Feats: Persuasive CLASS SKILLS Appraise, Bluff, Climb, Craft, Persuade, Disable Device, Intimidate, Jump, Lore, Listen, Move Silently, Open Lock, Pick Pocket, Search, Sense Motive, Spot -CLASS FEATURES +CLASS FEATURES: 1st - Sneak Attack 1d6, Doublespeak - +2 to Bluff and Persuade 2nd - Bonus Feat, Uncanny Dodge 3rd - Sneak Attack 2d6, Leadership Score +1 @@ -19128,7 +19240,7 @@ CLASS FEATURES - Proficiencies: A Factotum gains proficiencies with Martial and Simple Weapons, Light Armour, and Shields. - Skill Points: 6 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Inspiration - At the beginning of each fight, gain a pool of inspiration @@ -19210,7 +19322,7 @@ Special: You must be able to assume an alternate form. See the following list: Invocations: Mask of Flesh, Humanoid Shape, Spider Shape, Hellspawned Grace. Races: Pixie, Rakshasa, Fey'ri, Hound Archon, Yuan-ti Pureblood, Irda, Zakya Rakshasa, Changeling, Shifter, Naztharune Rakshasa -ABILITIES: +CLASS FEATURES: Level 1: Greater Wildshape - Can change into almost any small or medium humanoid once per day. @@ -19336,7 +19448,7 @@ Must be humanoid To gain lich powers: Creation of first stage of phylactery. (First level up in the Lich class, then create your phylactery using the Craft Lich Items feat to gain your Lich powers. Each level, this phylactery must be upgraded. Costs 40,000 gold and 1,600 XP.) -ABILITIES: +CLASS FEATURES: Level 1: Lich Properties +2 - Gain bonuses to Hide, Listen, Move Silently, Search, Persuade, and Spot. @@ -19433,7 +19545,7 @@ Base Attack Bonus: +5. Skills: Lore 3, Spellcraft 1. Feats: Iron Will. -ABILITIES: +CLASS FEATURES: Level 1: Black Magic Oil - @@ -19562,7 +19674,7 @@ Most of Bahamut's emissaries and champions are dutiful and mighty metallic drago - Hit Die: d10. - Proficiencies: A Vassal of Bahamut is proficient in all simple and martial weapons, all types of armor and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -19571,7 +19683,7 @@ Base Attack Bonus: +7 Feats: Sacred Vow, Vow of Obedience Skills: Craft armor 5 ranks, Persuade 5 ranks -ABILITIES: +CLASS FEATURES: Level 1: Imperious Aura - Gains a bonus equal to his class level on all Appraise, Persuade, Intimidate, Taunt and Perform checks vs. a creature of any dragon type. @@ -19766,7 +19878,7 @@ Stormlords are the agents of Talos, inflicting destructive rampages wherever the - Hit Die: d8. - Proficiencies: A Stormlord does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -19775,7 +19887,7 @@ Feats: Great Fortitude, Weapon Focus (Spear) Divine Spellcasting: Can cast 3rd level spells. Special: Must worship Talos. (Clerics taking this class must have two of the following domains: Destruction, Fire, Evil, Storm.) -ABILITIES: +CLASS FEATURES: Level 1: Electrical Resistance 10 - Stormlord gains 10 points of Electrical resistance. @@ -19798,7 +19910,7 @@ The Fist of Raziel represents a knightly order dedicated to the celestial patron - Hit Die: d10. - Proficiencies: The Fist of Raziel gains proficiency in simple and martial weapons, all armor and shields(except tower shield). -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -19809,7 +19921,7 @@ Divine Spellcasting: Can cast 1st level spells. Base Attack Bonus: 6 Spell: Able to cast Divine Favor -ABILITIES: +CLASS FEATURES: Level 1: Magic Circle Against Evil - Constant magic circle, as the spell. @@ -19841,7 +19953,7 @@ Use: Automatic. Prerequisite: Healer level 21 An epic healer seems to exude an aura of serenity and peace, since she has finally reached a level of power where suffering and death no longer seem like insurmountable foes. -Abilities: +CLASS FEATURES: 21: Epic cleansing +1 22: - 23: Bonus feat @@ -19870,7 +19982,7 @@ The Thrall of Orcus has devoted himself to the demon prince of undeath. In his s - Hit Die: d8. - Proficiencies: A Thrall of Orcus gains proficiencies in simple and martial weapons, all types of armor, and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Base Attack Bonus: +4. @@ -19878,7 +19990,7 @@ Divine Spellcasting: Able to cast 1st-level spells. Feats: Lich Loved, Thrall to Demon Skills: Lore 4 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Carrion Stench - Fort Save or suffer -2 penalty to all scores. @@ -19962,7 +20074,7 @@ Shou Disciples are martial artists who have studied or observed the monks of Kar - Hit Die: d10. - Proficiencies: A Shou Disciple gains martial weapons and light armor. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Base Attack Bonus: +3. @@ -19971,7 +20083,7 @@ Skills: Tumble 4 ranks, Jump 8 ranks. Note: None of the Shou Disciple's abilities work if you are wearing medium or heavy armor or have a shield equipped. -ABILITIES: +CLASS FEATURES: Level 1: Unarmed Strike (Table Below), Dodge Bonus (Table Below) @@ -20041,7 +20153,7 @@ Sneak Attack: 1d6. Divine Spellcasting: Must be able to cast level 2 spells. Special: Must worship Kossuth. (Clerics taking this class must two of Fire, Destruction and Renewal domains.) -ABILITIES: +CLASS FEATURES: Level 1: Death Attack - After studying your target for 3 rounds, you have 3 rounds to slay them vs. DC 10 + Black Flame level + Assassin level + Int Mod. @@ -20114,7 +20226,7 @@ It is the duty of knights Hospitaler to protect people traveling on religious pi - Hit Die: d8 - Proficiencies: Hospitalers are proficient in all simple and martial weapons, all armor and shields. -- Skill Points at Each Level: 2+ Int modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS @@ -20123,7 +20235,7 @@ Base Attack Bonus: +4 Skills: Ride 5 ranks, Heal 5 ranks. Feats: Mounted Combat, Mounted Archery -ABILITIES: +CLASS FEATURES: Level 1: Lay on Hands - If Hospitaler has positive Charisma modifier, then she can cure a number of hit points equal to her Charisma modifier x Hospitaler level. @@ -20205,7 +20317,7 @@ Heironeous's teachings focus on promoting good through the use of armed force. T - Hit Die: d10 - Proficiencies: Shining Blades are proficient in all simple and martial weapons, all armor and shields. -- Skill Points at Each Level: 2+ Int modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS Alignment: Lawful Good. @@ -20214,7 +20326,7 @@ Skills: Lore 7 ranks. Spells: Able to cast 1st level divine spells. Special: Clerics must have Good and War domains. -ABILITIES: +CLASS FEATURES: All abilities only work with a Longsword (Deity Weapon). @@ -20235,7 +20347,7 @@ Epic Shining Blade Epic Shining Blades are the leaders of Heironeous's armies when they march against evil. They have attained the long sought after goal of becoming but a blade in Heironeous's hand, and are able to slay any evil that dares to stand against the righteous wrath they inflict. Having long since given up earthly pleasures, an Epic Shining Blade is pure martial might and religious fury. - Hit Die: d10. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. Level 11: Brilliant Blade 7/day - Adds 1d6 Electrical damage, 2d6 divine damage against evil, and +20 to attack to your weapon. Duration is a number of rounds equal to your class level + charisma modifier. For each two levels above 11th, gain an extra use a day. @@ -20277,7 +20389,7 @@ Combining the dynamic powers of martial prowess and arcane might, the Hexblade p - Proficiencies: A Hexblade gains proficiency with Simple and Martial Weapons, Light and Medium Armour and with Shields. - Skill Points: 2 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Hexblade's Curse 1/day @@ -20449,7 +20561,7 @@ While the Red Wizards of Thay are not opposed to blasting their opponents with d - Hit Die: d10 - Proficiencies: Thayan Knights gain no proficiencies. -- Skill Points at Each Level: 2+ Int modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS Race: Human. @@ -20458,7 +20570,7 @@ Base Attack Bonus: +5 Skills: Lore 4 ranks, Intimidate 2 ranks. Feats: Iron Will, Weapon Focus: Longsword -ABILITIES: +CLASS FEATURES: Level 1: Horror of Thay - +2 saves against Fear, +1 against Mind Affecting. @@ -20502,7 +20614,7 @@ The arcane duelist is a tricky, evasive opponent who relies on her foe's percept - Hit Die: d8 - Proficiencies: Arcane Duelists gain no proficiencies. -- Skill Points at Each Level: 4+ Int modifier. +- Skill Points: 4+ Int modifier. REQUIREMENTS Base Attack Bonus: +6 @@ -20510,7 +20622,7 @@ Skills: Perform 5 ranks, Tumble 5 ranks. Feats: Martial Weapon Proficiency(Rapier or Shortsword), Dodge, Mobility Spellcasting: Level 1 Arcane spells. -ABILITIES: +CLASS FEATURES: Level 1: Chosen Weapon: Since much of the arcane duelist's apparent ability is tied to magic, the arcane duelist can imbue a specific melee weapon with powers to make herself appear more skilled. The arcane duelist must choose a specific melee weapon to be her chosen weapon. @@ -20622,9 +20734,9 @@ The striking fist or flashing sword pales beside a psion's focused stare. Psioni - Hit Die: d4 - Proficiencies: Psions gain wizard weapon proficiency. -- Skill Points at Each Level: 2+ Int modifier. +- Skill Points: 2+ Int modifier. -ABILITIES: +CLASS FEATURES: Base Attack Bonus: +1/2 Strong Saves: Will @@ -20661,9 +20773,9 @@ One who turns the mind's potential to the warrior's art is known as a psychic wa - Hit Die: d8 - Proficiencies: Psychic Warriors gain Martial and Simple Weapon Proficiency, and all Armour and Shield proficiencies. -- Skill Points at Each Level: 2+ Int modifier. +- Skill Points: 2+ Int modifier. -ABILITIES: +CLASS FEATURES: Base Attack Bonus: +3/4 Strong Saves: Fortitude @@ -20700,7 +20812,7 @@ A soulknife recognizes his own mind as the most beautiful - and the most deadly - Hit Die: d10 - Proficiencies: Soulknives gain Proficiency with Simple weapons and their mindblades, and Light Armour and Shield proficiencies -- Skill points at Each Level: 4 + Int modifier +- Skill Points: 4+ Int modifier. CLASS SKILLS @@ -20708,32 +20820,32 @@ CLASS SKILLS Concentration, Craft Armor, Craft Trap, Craft Weapon, Discipline, Hide, Jump, Lore, Move Silently, Parry, Spot, Tumble -CLASS FEATURES +CLASS FEATURES: Base Attack Bonus: +3/4 Strong Saves: Reflex and Will - -Level 1: Mind blade, Weapon Focus(mind blade), Wild Talent -Level 2: Throw mind blade -Level 3: Psychic strike +1d8 -Level 4: +1 mind blade -Level 5: Free draw, shape mind blade -Level 6: Mind blade enhancement +1, Speed of Thought -Level 7: Psychic strike +2d8 -Level 8: +2 mind blade -Level 9: Bladewind, Greater Weapon Focus(mind blade) -Level 10: Mind blade enhancement +2 -Level 11: Psychic strike +3d8 -Level 12: +3 mind blade -Level 13: Knife to the soul -Level 14: Mind blade enhancement +3 -Level 15: Psychic strike +4d8 -Level 16: +4 mind blade -Level 17: Multiple throw -Level 18: Mind blade enhancement +4 -Level 19: Psychic strike +5d8 -Level 20: +5 mind blade +Level: + 1: Mind blade, Weapon Focus(mind blade), Wild Talent + 2: Throw mind blade + 3: Psychic strike +1d8 + 4: +1 mind blade + 5: Free draw, shape mind blade + 6: Mind blade enhancement +1, Speed of Thought + 7: Psychic strike +2d8 + 8: +2 mind blade + 9: Bladewind, Greater Weapon Focus(mind blade) + 10: Mind blade enhancement +2 + 11: Psychic strike +3d8 + 12: +3 mind blade + 13: Knife to the soul + 14: Mind blade enhancement +3 + 15: Psychic strike +4d8 + 16: +4 mind blade + 17: Multiple throw + 18: Mind blade enhancement +4 + 19: Psychic strike +5d8 + 20: +5 mind blade Mind blade (Su): A soulknife can create a semisolid blade composed of psychic energy distilled from his own mind. The blade is identical in all ways to a short sword. A mind blade is considered a magic weapon (+1) for the purpose of overcoming damage reduction. @@ -20796,7 +20908,7 @@ Proficiencies: Wilders are proficient with all simple weapons, with light armor, CLASS SKILLS Bluff, Concentration, Craft Armor, Craft Trap, Craft Weapon, Intimidate, Jump, Listen, Lore, Spellcraft, Spot, Tumble -CLASS FEATURES +CLASS FEATURES: Level: 1: Wild Surge +1, Psychic Enervation @@ -23176,7 +23288,7 @@ Skills: Persuade 4 ranks, Lore 8 ranks. Manifesting: Must be able to manifest 3rd level powers. Special: Must be a Telepath Discipline Psion and able to manifest a Telepath Discipline Power. -ABILITIES: +CLASS FEATURES: Level 1: Thrallherd - Gain a thrall whose level is based upon Thrallherd's leadership score. @@ -23275,7 +23387,7 @@ Skills: Concentration 9 ranks. Base Attack Bonus: +4. Special: Must have the Still Mind class ability (Monk level 3). -ABILITIES: +CLASS FEATURES: Level 1: Monk Abilities - A Fist of Zuoken stacks his Fist levels with those of monk for the purposes of unarmed damage. @@ -24353,7 +24465,7 @@ A student of arcane spellcasting techniques, the Duskblade combines arcane spell - Proficiencies: A Duskblade is proficient with Simple and Martial Weapons, all Armor and Shields. - Skill Points: 2 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Armored Mage (light) @@ -24435,7 +24547,7 @@ Level: 0 1 2 3 4 5 Prerequisite: Duskblade level 21 The Epic Duskblade is a Juggernaut on the battlefield, wasting his foes with steel and spell. -ABILITIES: +CLASS FEATURES: Level 21: Spell Power +6 @@ -24517,7 +24629,7 @@ The random madness of the thunderstorm and the unpredictability of the slaadi co - Hit Die: d12. - Proficiencies: Frenzied Berserkers gain no weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -24525,7 +24637,7 @@ Alignment: Non-lawful Base Attack Bonus: +6. Feats: Cleave, Intimidating Rage, Power Attack. -ABILITIES: +CLASS FEATURES: Levels 1: Frenzy - Increases strength +6 (+10 at 8), reduces AC -4, takes 2 damage per round and attacks nearest target (friends included), useable once per day. @@ -24610,14 +24722,14 @@ The Tempest is the point of calm within a whirling barrier of deadly blades. Poe - Hit Die: d10. - Proficiencies: Tempests gain no weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Base Attack Bonus: +9. -Feats: Ambidexterity, Dodge, Mobility, Spring Attack, Two-Weapon Fighting, and Weapon Finesse (any) or Weapon Focus (any). Rangers are considered to have Ambidexterity and Two-Weapon-Fighting at Level 1. +Feats: Dodge, Mobility, Spring Attack, Two-Weapon Fighting, and Weapon Finesse (any) or Weapon Focus (any). Rangers are considered to have Two-Weapon-Fighting at Level 1. -ABILITIES: +CLASS FEATURES: Levels 1: Improved Two-Weapon Fighting - Character is able to get a second off hand attack at a -5 penalty to attack roll. @@ -24669,14 +24781,14 @@ The Foe Hunter has but one purpose in life: to kill creatures of the type she ha - Hit Die: d10. - Proficiencies: Foe Hunters gain no weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Base Attack Bonus: +7. Feats: Favored Enemy, Trackless Step, Weapon Focus (any). -ABILITIES: +CLASS FEATURES: Levels 1: Hated Enemy - The Foe Hunter gains all bonuses against their hated enemy. @@ -24758,7 +24870,7 @@ In an epic battle at the dawn of time, the elven deity Corellon Larethian stabbe - Hit Die: d12. - Proficiencies: Eye of Gruumsh's gain no weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -24768,7 +24880,7 @@ Base Attack Bonus: +6. Feats: Weapon Proficiency (Double-Axe), Weapon Focus (Orc Double-Axe). Special: Follower of Gruumsh that has put his own right eye out during a ritual. (Clerics taking this class must have two of the following domains: War, Strength, Evil.) -ABILITIES: +CLASS FEATURES: Levels: 1: Blind-Fight, Command the Horde, Rage @@ -24824,7 +24936,7 @@ The Orcish Warlord is a savage general of an unruly army, the leader of one of t - Hit Die: d12. - Proficiencies: Orc Warlords gain no weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Race: any Orcish race @@ -24834,7 +24946,7 @@ Feats: Blood of the Warlord, Leadership Skills: 8 Intimidate, 5 Ride Special: Ability to Rage -ABILITIES: +CLASS FEATURES: Levels: 1: Gather Horde I, Release Horde 2: Inspire Courage @@ -25003,7 +25115,7 @@ Special: You must be able to assume an alternate form. See the following list: Yuan-ti Pureblood Zakya Rakshasa -ABILITIES: +CLASS FEATURES: Level: 1: Greater Wild Shape - Can change into small, medium and humanoid once per day. Creature Weapon Proficiency - Can use creature weapons. @@ -25275,7 +25387,7 @@ Skills: Lore 5, Bluff 2, Persuade 2. Feats: Thrall to Demon. Spellcasting: Must be able to cast 3rd level arcane spells. -ABILITIES: +CLASS FEATURES: Levels: 1: Charm @@ -25405,7 +25517,7 @@ Feats: Any two item creation Skills: Use Magic Device 4 ranks, any Craft 8 ranks. Race: Gnome -ABILITIES: +CLASS FEATURES: Level 1: Bonus Feat - The Maester receives a bonus item creation feat. @@ -25559,7 +25671,7 @@ The lasher prestige class uses the whip as an extension of herself. A whip in th - Hit Die: d10. - Proficiencies: A lasher does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -25567,7 +25679,7 @@ Base Attack Bonus: +5 Feats: Weapon Proficiency (Exotic), Weapon Focus (Whip). Skills: Craft Weapon 2 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Whip Sneak Attack +1d6 @@ -25687,7 +25799,7 @@ Armor Skin, Damage Reduction, Devastating Critical (whip), Epic Toughness, Epic - Hit Die: d4. - Proficiencies: Spellfire channelers are proficient with all simple weapons. - - Skill Points: 2 + Int Modifier. + - Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -25696,7 +25808,7 @@ Armor Skin, Damage Reduction, Devastating Critical (whip), Epic Toughness, Epic Use: Selected. - ABILITIES: + CLASS FEATURES: Level 1: Drain charged item, increased storage 2 @@ -25895,7 +26007,7 @@ In general leveling in the wolf class will improve your stats in your wolf and w - Hit Die: d8. - Proficiencies: A Werewolf does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -25903,7 +26015,7 @@ Feats: True Lycanthrope or Iron Will Alignment: Any non-lawful and non-good Other: If not a true lycanthrope, you must be infected by someone who is. -WEREWOLF CLASS +WEREWOLF CLASS FEATURES: Level 1: Lycanthropy, Alternate Form (Wolf), Low-light Vision, Shapechanger subtype, Werewolf Feat(Spot) @@ -25912,7 +26024,7 @@ Level Note: Only true lycanthropes can advance to level 3 in the werewolf class. -WOLF CLASS +WOLF CLASS FEATURES: Level 1: Str + 2, Con + 2, Natural Armor + 2, Creature attacks @@ -26262,7 +26374,7 @@ Alignment: Any Good. Skills: Lore 8 ranks. Special: Able to turn undead, Sneak attack +2d6. -ABILITIES: +CLASS FEATURES: Level 1: @@ -26423,7 +26535,7 @@ Corrupt priests who revel in decay, the blightlords of Talona are feared and rev - Hit Die: d8. - Proficiencies: A talontar blight does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -26432,7 +26544,7 @@ Divine Spellcasting: Able to cast 4th-level spells. Feats: Great Fortitude, Martial Weapon Proficiency(Halberd). Special: Must worship Talona. A cleric who takes this class must have the Destruction and Evil domains. -ABILITIES: +CLASS FEATURES: Level 1: Blightbringer Prestige Domain, Blightblood - Immune to Disease @@ -26505,7 +26617,7 @@ The church of Kord insists that the liberation of the spirit comes through the p - Hit Die: d10. - Proficiencies: A Mighty Contender of Kord does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -26515,7 +26627,7 @@ Skills: Lore 9 ranks. Alignment: Chaotic Good Special: Must Worship Kord (Clerics need Strength and Good domains) -ABILITIES: +CLASS FEATURES: Level 1: Feat of Strength: Add your cleric and Mighty Contender levels to determine the boost from the Strength Domain power. @@ -26594,7 +26706,7 @@ In Dwarven, the word "ollam" means teacher. The education of the dwarf people is - Hit Die: d8. - Proficiencies: An Ollam does not gain any additional weapon or armor proficiencies. -- Skill Points: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS: @@ -26602,7 +26714,7 @@ Alignment: Lawful Good Skills: Perform 5 ranks, Lore 10 ranks Race: Dwarf -ABILITIES: +CLASS FEATURES: Level 1: Lore - The Ollam adds his class bonus to Lore checks. @@ -26652,7 +26764,7 @@ The highest art is magic, often referred to as *the* Art. Its most advanced prac - Hit Die: d4. - Proficiencies: An Archmage does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -26660,7 +26772,7 @@ Arcane Spellcasting: Able to cast 7th-level spells Feats: Skill Focus (Spellcraft), Spell Focus (Any School) Skills: Spellcraft 15 ranks, Lore 15 ranks -ABILITIES: +CLASS FEATURES: Level 1: High Arcana*, Mastery of Elements (Normal) @@ -26794,7 +26906,7 @@ Spellcasting: Able to cast 3rd-level arcane or divine spells. Skills: Lore 7 ranks. Feats: Great Fortitude. -ABILITIES: +CLASS FEATURES: Levels 1: Minor Oozy Touch - Can secrete a specific minor ooze for a touch attack often as desired. @@ -26944,7 +27056,7 @@ Base Attack Bonus: +7 Skills: Lore 13 Ranks Feats: Purity of Body -ABILITIES: +CLASS FEATURES: Level 1: Riddle of Awareness - The Henshin Mystic can use scrying as a spell-like ability once per day. This grants the Henshin Mystic a +4 insight bonus on all Listen, Search and Spot checks for 1 minute per level. Scrying isn't in Neverwinter Nights but the bonuses are translated. @@ -26958,9 +27070,9 @@ Level 9: Walk Through the Mountains - The character can assume an ethereal state for 2 rounds per level per day, as per the spell etherealness. 10: Riddle of Invulnerability - Mystic gains damage reduction 20/+1. -MONK ABILITIES: +CLASS FEATURES: -The Henshin mystic continues to gain levels as a monk with regard to unarmed damage.R +The Henshin mystic continues to gain levels as a monk with regard to unarmed damage. Riddle of Awareness Type of Feat: Class Specific Prerequisite: Henshin Mystic Level 1 @@ -27006,7 +27118,7 @@ Martial arts students face a bewildering array of martial arts schools, each wit - Hit Die: d8 - Proficiencies: The Drunken Master gains no proficiencies in weapons or armor. -- Skill Points at Each Level: 4 + Int modifier. +- Skill Points: 4 + Int modifier. REQUIREMENTS: @@ -27015,6 +27127,8 @@ Class: Evasion class ability Feats: Great Fortitude, Dodge. Tumble: 6 ranks. +CLASS FEATURES: + 1: Drink Like a Demon - Your body handles alcohol differently from other people. Every bottle or tankard of alcohol you consume reduces your Dexterity, Wisdom, and Intelligence by 1 point each, but increases your Strength and Constitution by 1 point. However, your Reflex save bonus, Dexterity bonus to Tumble, and AC bonus remain at their original levels regardless of your new Dexterity modifier. Bottle Proficiency - You can use bottles as weapons using your unarmed base attack bonus. 2: Stagger - By tripping, stumbling, and staggering, you can make a charge attack that surprises your opponents. @@ -27114,7 +27228,7 @@ Hathran, also known as the Witches of Rashemen, comprise an elite sisterhood of - Hit Die: d4. - Proficiencies: Exotic weapons. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -27125,7 +27239,7 @@ Spellcasting: Able to cast 2nd-level arcane spells and 2nd-level divine spells. Feats: Ethran. -ABILITIES: +CLASS FEATURES: Level 1: Cohort - Once per day the Hathran can call for a Rashemen Barbarian to serve as her cohort. @@ -27154,7 +27268,7 @@ Base Attack Bonus: +5 Feats: Endurance, Track Skills: Lore 4 ranks, Listen 5 ranks, Persuade 5 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Sprint - Can move for a brief period of time as Hasted, three times per day. @@ -27189,7 +27303,7 @@ Special: Bardic knowledge and evasion abilities. - Proficiencies: Fochlucan lyrists gain no proficiency with any weapon or armor. - Skill Points: 6 + Int Modifier -ABILITIES: +CLASS FEATURES: Spells per Day/Spells Known: At each level, a Fochlucan lyrist gains new spells per day (and spells known, if applicable) as if she had also gained a level in any one arcane spellcasting class and any one divine spellcasting class to which she belonged before adding the prestige class level. She does not, however, gain any other benefit a character of that class would have gained. If she had more than one arcane spellcasting class or divine spellcasting class before becoming a Fochlucan lyrist, she must decide to which class to add each Fochlucan lyrist level for the purpose of determining spells per day, spells known, and overall caster level. @@ -27229,7 +27343,7 @@ Use: Selected. Prerequisite: Shugenja level 21 The Epic Shugenja has mastered the focus of his chosen element and uses it however he pleases. He will often be found in a leading position of his order. -ABILITIES: +CLASS FEATURES: Level @@ -27374,7 +27488,7 @@ Spells: Able to cast 2nd-level spells of the appropriate type. Skills: Bluff 8 ranks, Persuade 8 ranks, Lore 12 ranks, Perform 12 ranks, Spellcraft 8 ranks. Feats: Alertness, Iron Will. -ABILITIES: +CLASS FEATURES: Level 1: Harper Knowledge- Bonus for item identification @@ -28133,7 +28247,7 @@ Note: Sacred AC and Sacred Speed don't work if you wearing a medium or heavy arm Code of Conduct: Wearing any weapon the Sacred Fist lost all his class benefits until full rest. -ABILITIES: +CLASS FEATURES: Level 1: Unarmed Damage - Sacred Fist's levels stack with his monk level @@ -28238,7 +28352,7 @@ Some spellcasters who discover the existence of the Shadow Weave are cautious, a - Hit Die: d4. - Proficiencies: None. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -28247,7 +28361,7 @@ Skills: Lore 8, Spellcraft 8. Feats: Shadow Weave Magic, any one metamagic feat. Spellcasting : Able to cast level 3 Arcane Spells -ABILITIES: +CLASS FEATURES: Level 1: Shadow Feat @@ -28284,7 +28398,7 @@ Nightshades are a group of skilled infiltrators who can operate in the bright su - Hit Die: d8. - Proficiencies: Simple, Elf and Light Armor. -- Skill Points: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS: @@ -28294,7 +28408,7 @@ Skills: Move Silently 7. Feat: Point Blank Shot. Arcane Spellcasting : Able to cast spell level 1. -ABILITIES: +CLASS FEATURES: Level 1: Light Adjusted - don't suffer from light blindness as other drow. @@ -28370,7 +28484,7 @@ Rangers are skilled stalkers and hunters who make their home in the woods. Their - Proficiencies: Simple, Martial, Shield and Light Armor. - Skill Points: 4 + Int Modifier. -ABILITIES: +CLASS FEATURES: Level 1: Bonus Feat @@ -28474,7 +28588,7 @@ Alignment: Non-Evil. Skills: Concentration 5, Lore 5, Persuade 5, Perform 10. Feats: Dragonsong. -ABILITIES: +CLASS FEATURES: Level 1: Greater Dragonsong: (song of strength) +4 Str @@ -28672,9 +28786,9 @@ Fear him. Loathe him. Beware him. This is a true champion of evil! - Alignment Restrictions: Chaotic Evil only. - Hit Die: d10. - Proficiencies: Simple, Martial, Shield and Light, Medium and Heavy Armor. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. -ABILITIES: +CLASS FEATURES: Level 1: Smite Good 1/day @@ -28710,9 +28824,9 @@ The Corrupter's primary focus is to corrupt the faith of others, his favored tar - Alignment Restrictions: Neutral Evil only. - Hit Die: d10. - Proficiencies: Simple, Martial, Shield and Light, Medium and Heavy Armor. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. -ABILITIES: +CLASS FEATURES: Level 1: Smite Heathen 1/day - smite divine caster (including paladin or ranger who have yet to progress to cast a divine spell). @@ -28781,7 +28895,7 @@ Obsessed with destroying wizards, they harness the power of a sphere of annihila - Hit Die: d8. - Proficiencies: None. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -28790,7 +28904,7 @@ Skills: Concentration 5, Lore 5. Feats: Great Fortitude, Magical Aptitude. Divine Spellcasting : Able to cast spell level 4 -ABILITIES: +CLASS FEATURES: Level 1: Shard of Entropomancy - Twice a day, Entropomancer create a shard, that deals 3d6 pts of damage (Fort 1/2 DC: 12+Wis mod) @@ -28892,7 +29006,7 @@ Skills: Disable Trap 5, Lore 1, Open Lock 4, Search 8. Base Attack Bonus: +5 Special: must worship Olidammara -ABILITIES: +CLASS FEATURES: Level 1: Trap Finding - allow to disable traps with DC 20+. @@ -28929,7 +29043,7 @@ Feats: Expertise, Improved Initiative. Base Attack Bonus: +4 Special: A legal authority must pronounce a writ of outlawry upon the character -ABILITIES: +CLASS FEATURES: Level 1: Ambush +1d6 - as Sneak Attack. @@ -29001,7 +29115,7 @@ On the front lines of battle, injury is inevitable. Where the carnage is at its - Hit Die: d6. - Proficiencies: None. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -29010,7 +29124,7 @@ Skills: Concentration 4 (ranks), Heal 8 (ranks). Feats: Combat Casting, Dodge. Spells: Ability to cast Cure Light Wounds. -ABILITIES: +CLASS FEATURES: Level 1: Healing Kicker (Sanctuary) @@ -29052,7 +29166,7 @@ The warsling sniper is an expert in the use of the weapon commonly associated wi - Hit Die: d6. - Proficiencies: None. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -29062,7 +29176,7 @@ Base Attack Bonus: +5 Race: Halfling Special: Must be able to wield a sling -ABILITIES: +CLASS FEATURES: Level 1: 1d6 Sling Sneak Attack - Only works when wielding a sling @@ -29248,12 +29362,12 @@ A Warchief leads a primitive, aggressive tribe of humanoids, especially when the - Hit Die: d10. - Proficiencies: A Warchief gains no additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Base Attack Bonus: +3. -ABILITIES: +CLASS FEATURES: Level 1: Tribal Frenzy +2 - The Warchief inspires a frenzy in his followers, granting them a bonus to Strength. 2: Ability Boost +2 - The Warchief gains +2 to his Charisma score. @@ -29297,7 +29411,7 @@ Skills: Lore 8 ranks. Base Attack Bonus: +3. Alignment: Non-Chaotic. -ABILITIES: +CLASS FEATURES: Level 1: Chain of Personal Superiority - +2 Str and Con for 1 minute. 3 times per day. @@ -29426,7 +29540,7 @@ At 2nd level a Hexblade gains a bonus equal to his Charisma bonus (minimum +1) o Prerequisite: Hexblade level 21 The Epic Hexblade is a true bane for his enemies. The daily uses of his abilities continue to increase, while his curse and Dark Companion become even more potent as he progresses. -ABILITIES: +CLASS FEATURES: Level 21: Epic Dark Companion, Hexblade's Curse 6/day @@ -29645,14 +29759,14 @@ While a fighter concentrates on mastering one or two weapons, a Man at Arms pref - Hit Die: d10. - Proficiencies: Proficient with all types of weapon, armor and all shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Base Attack Bonus: 8 Feats: Power Attack, Weapon Focus (any four weapons). -ABILITIES: +CLASS FEATURES: Level 1: General Specialization: Gains a +1 to attack and damage with any weapon. @@ -29782,7 +29896,7 @@ Like the paladin, the Soldier of Light is devoted to the destruction of all evil - Hit Die: d10. - Proficiencies: All simple and martial weapons, all armor and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -29791,7 +29905,7 @@ Alignment: Neutral Good Skills: Lore 4 ranks. Special: Must worship Elishar. (Clerics taking this class must have two of the following domains: Good, Healing, Knowledge, Luck, Protection, Sun.) -ABILITIES: +CLASS FEATURES: Level 1: Turn Undead - As a cleric of the same class level as the Soldier of Light. This stacks with any levels of Cleric and/or Paladin. @@ -29981,7 +30095,7 @@ Class: Druid or Ranger. Skills: Animal Empathy 10. Feats: Skill Focus(Animal Empathy), Animal Companion. -ABILITIES: +CLASS FEATURES: Level 1: Animal Empathy - Tamer may have up to 5 animals. @@ -30135,7 +30249,7 @@ Special: Ability to bind soulmelds to totem chakra, rage class feature. - Proficiencies: You gain no new proficiencies with weapons, armor, or shields. - Skill Points: 4 + Int Modifier. -ABILITIES: +CLASS FEATURES: Level 1: Totem rage, wild empathy @@ -30170,7 +30284,7 @@ Bladesingers are elves who have blended art, swordplay, and arcane magic into a - Hit Die: d8. - Proficiencies: Gains Light Armor Proficiency. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -30180,7 +30294,7 @@ Skills: Concentration 4, Tumble 2, Perform 3. Feats: Combat Casting, Dodge, Weapon Focus (Longsword or Rapier), Still Spell. Arcane Spellcasting : Able to cast spell level 1 -ABILITIES: +CLASS FEATURES: Level 1: Bladesong Style - gains a AC bonus equal to his class level (max bonus Int) @@ -30380,7 +30494,7 @@ REQUIREMENTS: Skills: Concentration 6, Lore 6, Tumble 4, Jump 8. Feats: Alertness, Improved Unarmed Strike, Power Attack. -ABILITIES: +CLASS FEATURES: Level 1: Evasion - Upon successful Reflex saving throws, the character takes no damage. @@ -30470,7 +30584,7 @@ The Legendary Dreadnought is the ultimate foot soldier, an absolute force of des - Hit Die: d12. - Proficiencies: All simple and martial weapons, all armor and shields. -- Skill Points at Each Level: 2+ Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS @@ -30478,7 +30592,7 @@ Base Attack Bonus: +23 Skills: Intimidate 15 ranks. Feats: Lightning Reflexes, Great Cleave, Improved Bullrush, Improved Critical. -ABILITIES: +CLASS FEATURES: Level 1: Unstoppable - Once per day, gains a 20+ bonus to attack rolls for 1 round. @@ -30516,7 +30630,7 @@ The Disciple of Baalzebul, is a liar, a cheat, and a thief. She is more likely t - Hit Die: d6. - Proficiencies: All simple and martial weapons, and light armor. -- Skill Points at Each Level: 6+ Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS @@ -30524,7 +30638,7 @@ Alignment: Any evil. Skills: Bluff 10 ranks, Diplomacy, Persuade 8 ranks. Feats: Disciple of Darkness. -ABILITIES: +CLASS FEATURES: Level 1: Tongue of the Devil - Add Intelligence modifier as well as Charisma to Bluff checks. @@ -30587,7 +30701,7 @@ Iaijutsu is the martial art of drawing a weapon, almost always a katana and atta - Hit Die: d10 - Proficiencies: Iaijutsu Masters are proficient in all simple and martial weapons, gain no proficiencies in armor or shields. -- Skill Points at Each Level: 4+ Int Modifier. +- Skill Points: 4+ Int modifier. REQUIREMENTS: @@ -30596,7 +30710,7 @@ Base Attack Bonus: +6 Skills: Iaijutsu Focus 9 Ranks Feats: Improved Initiative, Weapon Focus: Katana -ABILITIES: +CLASS FEATURES: Level 1: Katana Finesse - Character can use their Dexterity modifier instead of Strength for attack bonuses while using a katana. @@ -30662,7 +30776,7 @@ The Disciple of Dispater is a war-like general of evil. He is defensively minded - Hit Die: d10 - Proficiencies: Disciple of Dispater is proficient in all simple and martial weapons, all armor and shields. -- Skill Points at Each Level: 4 + Int Mod. +- Skill Points: 4+ Int modifier. REQUIREMENTS: @@ -30670,7 +30784,7 @@ Alignment: Any Evil Base Attack Bonus: +6 Feats: Disciple of Darkness, Expertise, Power Attack. -ABILITIES: +CLASS FEATURES: Level 1: Device Lore - A +2 Bonus to Disable Device checks. @@ -30729,7 +30843,7 @@ Feared by many, understood by few, the infamous Ravager is an individual who has - Hit Die: d10 - Proficiencies: The ravager is proficient in all simple and martial weapons, all armor and shields. -- Skill Points at Each Level: 2 + Int Mod. +- Skill Points: 2+ Int modifier. REQUIREMENTS @@ -30782,7 +30896,7 @@ Known for their matchless bravery and strict code of honor, the samurai were the - Alignment: Any Lawful. - Hit Die: d10 - Proficiencies: All simple and martial weapons, with medium and light armor. -- Skill Points at Each Level: 2 + Int Mod. +- Skill Points: 2+ Int modifier. CLASS SKILLS: Concentration, Craft, Persuade, Intimidate, Lore @@ -30859,7 +30973,7 @@ Deadly barbarians who bear magical runes carved into their flesh, Runescarred Be - Hit Die: d10 - Proficiencies: No weapon or armor proficiencies gained. -- Skill Points at Each Level: 4 + Int Modifier +- Skill Points: 4+ Int modifier. REQUIREMENTS: Base Attack Bonus: +7 @@ -31198,7 +31312,7 @@ Sharess is a paradoxical deity. Originally, she was a war goddess of the Mulhora - Hit Die: d6 - Proficiencies: Celebrants of Sharess gain no proficiencies -- Skill Points: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS: @@ -31206,7 +31320,7 @@ Alignment: Chaotic good Skills: Diplomacy 7 ranks , Perform 7 ranks Feats: Sacred Vow, Vow of Purity -ABILITIES: +CLASS FEATURES: Level 1: Cat Familiar - Gain a cat as a familiar @@ -31345,7 +31459,7 @@ When asked, "What is Truth?", an initiate of the Order of the Bow picks up his b - Hit Die: d8. - Proficiencies: An Order of the Bow Initiate does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -31353,7 +31467,7 @@ Base Attack Bonus: +5 Feats: Weapon Focus: Longbow or Weapon Focus: Shortbow, Point Blank Shot, Rapid Shot. Skills: Craft Weapon 5 ranks, Lore 2 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Ranged Precision 1d8 - An Order of the Bow Initiate can make a single attack a round with a damage bonus @@ -32072,7 +32186,7 @@ Combat magic is usually reserved for spellcasters in the second rank who are con - Hit Die: d8. - Proficiencies: A havoc mage does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -32080,7 +32194,7 @@ Arcane Spellcasting: Able to cast 2nd-level spells. Base Attack Bonus: +4 Skills: Lore 5 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Battlecast 2nd level - A havoc mage gains the ability to cast 2nd level or lower spells while making a single weapon attack. Casting a spell in this manner does not provoke an attack of opportunity. @@ -32121,7 +32235,7 @@ Special Abilities: - Darkvision: Drow can see in the dark. - Spell Resistance: Innate spell resistance of 11 plus 1 per level. - Light Blindness: Abrupt exposure to light blinds a drow for 1 round. In addition drow suffer -1 circumstance penalty to attack rolls, saves and checks while operating in bright light. -- Spell-Like Abilities: 1/day - Darkness, Faerie Fire. Caster level 3rd. +- Spell-like Abilities: 1/day - Darkness, Faerie Fire. Caster level 3rd. - Elven: Drow are considered Elven for the purpose of spells. (The following may or may not be in use, depending on the module switch settings) @@ -32199,7 +32313,7 @@ Favored Class (Fighter): A multiclass duergar's fighter class does not count whe - Partial Skill Affinity (Spot): +1 racial bonus to Spot checks. - Immunity to Phantasms: Duergar are immune to phantasms such as Weird and Phantasmal Killer - Light Sensitivity: Duergar suffer -2 penalty to attack rolls, saves and checks while operating in bright light. -- Spell-Like Abilities: 1/day - Invisibility. Caster level 3rd. +- Spell-like Abilities: 1/day - Invisibility. Caster level 3rd. - Naturally Psionic: Duergar gain 3 bonus power points at 1st level. - Dwarven: Duergar count as Dwarves for the purpose of spells. - Level adjustment +1 @@ -32390,7 +32504,7 @@ Special Abilities: - Spell Focus (Illusion): Svirfneblin add +2 DC to any Illusion spells they cast. This is identical to the feat. - Very Heroic: +2 racial bonus to all saving throws. - Spell Resistance: Spell Resistance of 11, plus 1 per level. -- Spell-Like Abilities: 1/day - Blindness and Deafness (DC 16), Blur, Disguise Self. Caster level is equal to the svirfneblin's character level, DC is Charisma-based with +4 racial bonus. +- Spell-like Abilities: 1/day - Blindness and Deafness (DC 16), Blur, Disguise Self. Caster level is equal to the svirfneblin's character level, DC is Charisma-based with +4 racial bonus. - Gnomish: Svirfneblin count as Gnomes for the purpose of spells. (The following may or may not be in use, depending on the module switch settings) @@ -32615,7 +32729,7 @@ Favored Class (Paladin): A multiclass aasimars paladin class does not count when - Resist Cold: Innate cold resistance of 5. - Resist Acid: Innate acid resistance of 5. - Resist Electrical: Innate electrical resistance of 5. -- Spell-Like Abilities: 1/day - Light. Caster level 3rd. +- Spell-like Abilities: 1/day - Light. Caster level 3rd. - Outsider: Aasimar are considered Outsiders for the purpose of spells. - Human: Aasimar are considered Human for the purpose of spells. @@ -32682,7 +32796,7 @@ Special Abilities: - Damage Reduction: Innate damage reduction of 10/+1. - Epic Fire Resistance: Innate fire resistance of 10. - Low-Light Vision: Allows them to see better than normal in the dark. -- Spell-Like Abilities: 1/day - Alter Self, Charm Person, Clairaudience, Darkness, Enervation. +- Spell-like Abilities: 1/day - Alter Self, Charm Person, Clairaudience, Darkness, Enervation. Fey'ri spell-like abilities have caster level equal to the fey'ri's character level. The DC is Charisma-based. - Outsider: Fey'ri are considered Outsiders for the purpose of spells. - Elven: Fey'ri are considered Elven for the purpose of spells. @@ -32743,7 +32857,7 @@ Favored Class (Rogue): A multiclass tieflings rogue class does not count when de - Resist Cold: Innate cold resistance of 5. - Resist Fire: Innate fire resistance of 5. - Resist Electrical: Innate electrical resistance of 5. -- Spell-Like Abilities: 1/day - Darkness. Caster level 3rd. +- Spell-like Abilities: 1/day - Darkness. Caster level 3rd. - Outsider: Tieflings are considered Outsiders for the purpose of spells. - Human: Tieflings are considered Human for the purpose of spells. @@ -32932,7 +33046,7 @@ Special Abilities: - Shield: All yuan-ti are proficient with shields. - Spell Resistance: Innate spell resistance of 14, plus 1 per character level. - Natural Armor Bonus: Racial natural armor bonus of 1. -- Spell-Like Abilities: 1/day - Charm Person, Darkness, Entangle, Fear. Caster level 3rd. The DC is Charisma-based. +- Spell-like Abilities: 1/day - Charm Person, Darkness, Entangle, Fear. Caster level 3rd. The DC is Charisma-based. - Monstrous: Yuan-ti Purebloods count as Monstrous Humanoids for the purpose of spells. (The following may or may not be in use, depending on the module switch settings) @@ -32965,7 +33079,7 @@ Special Abilities: - Darkvision: Githyanki are able to see in the dark. - Spell Resistance: Innate spell resistance of 5, plus 1 per character level. -- Spell-Like Abilities: 3/day - Blur, Daze. Caster level 3rd. The DC is Charisma-based. +- Spell-like Abilities: 3/day - Blur, Daze. Caster level 3rd. The DC is Charisma-based. - Outsider: Githyanki are considered Outsiders for the purpose of spells. - Human: Githyanki are considered Human for the purpose of spells. @@ -32983,7 +33097,7 @@ Special Abilities: - Darkvision: Githzerai are able to see in the dark. - Spell Resistance: Innate spell resistance of 5, plus 1 per character level. -- Spell-Like Abilities: 3/day - Daze. Caster level 3rd. The DC is Charisma-based. +- Spell-like Abilities: 3/day - Daze. Caster level 3rd. The DC is Charisma-based. - Outsider: Githzerai are considered Outsiders for the purpose of spells. - Human: Githzerai are considered Human for the purpose of spells. @@ -33007,7 +33121,7 @@ Special Abilities: - Spell Resistance: Innate spell resistance of 27, plus 1 per character level. - Natural Armor Bonus: Racial natural armor bonus of 9. - Damage Reduction: Innate damage reduction of 15/+1 -- Spell-Like Abilities: At will - Disguise. +- Spell-like Abilities: At will - Disguise. - Outsider: Rakshasa are considered Outsiders for the purpose of spells. - Sorcerer Casting: Rakshasa cast spells as a Sorcerer of their hit dice (7th level) @@ -33027,7 +33141,7 @@ Special Abilities: - Spell Resistance: Innate spell resistance of 25, plus 1 per character level. - Natural Armor Bonus: Racial natural armor bonus of 3. - Weapon Proficiency (Creature): Illithid can make an unarmed attack with their tentacles. -- Spell-Like Abilities: At will - Mind blast, Caster level 4th; 5/day - Charm Monster, Caster level 8th. The DC is Charisma-based. +- Spell-like Abilities: At will - Mind blast, Caster level 4th; 5/day - Charm Monster, Caster level 8th. The DC is Charisma-based. - Extract: Illithid have a chance to extract the brain of a victim on a successful hit. - Aberration: Illithid are considered Aberrations for the purpose of spells. @@ -33055,7 +33169,7 @@ Special Abilities: - Skill Affinity (Search): +2 racial bonus to Search checks. - Skill Affinity (Listen): +2 racial bonus to Listen checks. - Damage Reduction: Innate damage reduction of 10/+1. -- Spell-Like Abilities: At Will - Invisibility; 1/day - Confusion, Entangle, Lesser Dispel, Polymorph Self. Caster level 8th, except Confusion, which is caster level 4th. The DC is Charisma-based. +- Spell-like Abilities: At Will - Invisibility; 1/day - Confusion, Entangle, Lesser Dispel, Polymorph Self. Caster level 8th, except Confusion, which is caster level 4th. The DC is Charisma-based. - Fey: Pixies count as Fey for the purpose of spells. (The following may or may not be in use, depending on the module switch settings) @@ -33403,7 +33517,7 @@ Special Abilities: - Uncanny Dodge: Brownies retains his Dex bonus to AC, even if caught flat-footed or attacked by a hidden or invisible creature. - Evasion: Whenever a Reflex save is allowed for half damage, Brownies instead takes no damage if they succeed at the save. - Hide in Plain Sight: Brownies are able to use the Hide skill even while being observed. -- Spell-Like Abilities: 1/day - Confusion. Caster level 7th plus character level. The DC is Charisma-based. +- Spell-like Abilities: 1/day - Confusion. Caster level 7th plus character level. The DC is Charisma-based. - Fey: Brownies are considered Fey for the purpose of spells. (The following may or may not be in use, depending on the module switch settings) @@ -33754,14 +33868,14 @@ The Inspired are the lords of Riedra and the physical presence of the Dreaming D - Hit Die: d10. - Proficiencies: A Fist of Dal Quor gains no additional proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Base Attack Bonus: +4. Feats: Any Exotic or Martial Weapon Proficiency, any one psionic feat. Skills: Lore 4 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Stunning Strike - A stunning blow with a weapon. One use per level. @@ -33795,14 +33909,14 @@ Pyrokineticists like fire. A lot. Any character with some psionic ability is a p - Hit Die: d8. - Proficiencies: A Pyrokineticist gains no additional proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Alignment: Any Chaotic Skills: Concentration 8 ranks, Lore 2 ranks. Psionics: Must have a power point reserve of at least 1 power point. -ABILITIES: +CLASS FEATURES: Level 1: Chosen Element - Element to be used with class abilities @@ -33940,7 +34054,7 @@ Usage: Automatic. - Proficiencies: All simple Weapons, Light and Medium Armour, Shield Proficiency. - Skill Points: 4 + Int Modifier. -ABILITIES: +CLASS FEATURES: Level 1: Artisan Bonus - +2 to Use Magic Device checks when using items @@ -34137,7 +34251,7 @@ Skills: Jump 9 ranks. Feats: Two-Weapon Fighting. Maneuvers: Must know at least three Tiger Claw maneuvers. -ABILITIES: +CLASS FEATURES: Level 1: Shifting 1/day - Gains some aspects of the tiger. @@ -34213,7 +34327,7 @@ Skills: Hide 4 ranks, Intimidate 4 ranks, Lore 8 ranks. Maneuvers: Must know at least one Devoted Spirit maneuver, and one Devoted Spirit stance. Special: Must be able to turn undead, and must worship Wee Jas. Clerics must have the Death and Magic domains. -ABILITIES: +CLASS FEATURES: Level 1: @@ -34295,7 +34409,7 @@ Skills: Concentration 9 ranks, Lore 2 ranks. Maneuvers: Must know at least two martial maneuvers, including one strike. Spells: Ability to cast 2nd-level arcane spells. -ABILITIES: +CLASS FEATURES: Level 1: Arcane Wrath - Expend spell use to get damage boost and +4 attack bonus to next attack. @@ -34311,7 +34425,7 @@ Level 9: 10: Emerald Immolation - You explode dealing 20d6 damage. - Maneuvers Stances + Maneuvers Stances Level Known Readied Known 1 1 0 0 2 0 0 0 @@ -34690,7 +34804,7 @@ Prerequisite: Race-Specific. Specifics: The creature receives +4 racial bonus to Spot checks. Use: Automatic. Special Abilities - Aasimar - Spell-Like Abilities: 1/day - Light. Caster level 3rd. + Spell-like Abilities: 1/day - Light. Caster level 3rd. Cold Resistance 10 Type of Feat: Racial Prerequisite: Race-Specific. @@ -34712,7 +34826,7 @@ Prerequisite: Race-Specific. Specifics: Kenders are experts at taunting, and gain a +4 to bluff and taunt checks. Use: Automatic. Special Abilities - Fey'ri - Spell-Like Abilities: 1/day - Alter Self, Charm Person, Clairaudience, Darkness, Enervation. + Spell-like Abilities: 1/day - Alter Self, Charm Person, Clairaudience, Darkness, Enervation. Fey'ri spell-like abilities have caster level equal to the fey'ri's character level. The DC is Charisma-based. Adamantine Body Type of Feat: Warforged @@ -34722,12 +34836,12 @@ This Warforged was built using Adamantium for their armor plating. This grants Note: This uses the "armor" slot, and so you cannot wear other armor. Use: Automatic. Special Abilities - Githzerai - Spell-Like Abilities: 3/day - Daze. Caster level 3rd. + Spell-like Abilities: 3/day - Daze. Caster level 3rd. Special Abilities - Illithid - Spell-Like Abilities: At will - Mind blast, Caster level 4th; 5/day - Charm Monster, Caster level 8th. The DC is Charisma-based. + Spell-like Abilities: At will - Mind blast, Caster level 4th; 5/day - Charm Monster, Caster level 8th. The DC is Charisma-based. Extract/Suck Brain: Illithid have a chance to extract the brain of a victim on a successful hit. Special Abilities - Pixie - Spell-Like Abilities: At Will - Invisibility; 1/day - Confusion, Entangle, Lesser Dispel, Polymorph Self. Caster level 8th, except Confusion, which is caster level 4th. The DC is Charisma-based. + Spell-like Abilities: At Will - Invisibility; 1/day - Confusion, Entangle, Lesser Dispel, Polymorph Self. Caster level 8th, except Confusion, which is caster level 4th. The DC is Charisma-based. Immunity to Disease Type of Feat: Racial Prerequisite: Race-Specific. @@ -34836,7 +34950,7 @@ Sohei are warrior monks, religious soldiers who protect large monasteries. Unlik - Proficiencies: A Sohei gains proficiencies with Simple and Martial Weapons, and Light. Medium and Heavy Armour. - Skill Points: 2 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Ki Frenzy 1/Day - +2 Str, Dex, Extra Attack @@ -34912,7 +35026,7 @@ Use: Automatic. Epic Sohei The Epic Sohei is a warrior without equal, able to enter into a frenzy at will and to withstand even the harshest of blows. -ABILITIES: +CLASS FEATURES: Level 21: - @@ -35147,7 +35261,7 @@ REQUIREMENTS: Alignment: Any neutral Skills: Truespeak 13 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Syllable of Detachment - -2 Penalty on checks @@ -35203,7 +35317,7 @@ Skills: Truespeak 10 ranks. Spellcasting: Must be able to cast 4th level divine spells. Special: Clerics must have Fire or Good domains. -ABILITIES: +CLASS FEATURES: Level 1: Tongue of Fire 3d6 - A line of fire dealing damage @@ -35251,7 +35365,7 @@ Skills: Hide 8 ranks, Move Silently 8 ranks. Feats: Sanctify Martial Strike, Servant of the Heavens Special: Sneak attack +3d6, Evasion -ABILITIES: +CLASS FEATURES: Level 1: Death Touch 1/day - Roll 1d6 per Slayer level. Slay target if the number is greater than current hitpoints. @@ -35412,7 +35526,7 @@ Some spellcasters care for only one thing: war. They dream of steel and mighty b - Proficiencies: A Warmage gains proficiencies with Simple Weapons, Light Armour, and Shields. - Skill Points: 2 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Armoured Mage - No Arcane Spell Failure in light armour @@ -35541,7 +35655,7 @@ A knight is a proud, skilled melee combatant who fights in the name of honour an - Proficiencies: A Knight gains proficiencies with Martial and Simple Weapons, Light, Medium and Heavy Armour, and Shields. - Skill Points: 2 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Fighting Challenge - Challenge a foe to gain a bonus to attack and damage. @@ -35599,7 +35713,7 @@ Special Abilities: - Damage Reduction: Innate damage reduction of 10/+1 - Immunities: Immune to Electricity and Petrification - Hardiness vs Poison: +4 racial bonus to save vs poison -- Spell-Like Abilities: At will - Aid, Detect Evil, Teleport. +- Spell-like Abilities: At will - Aid, Detect Evil, Teleport. - Change Shape: Hound Archons can assume other mundane canine shapes at will. - Auras: Hound Archons can activate a constant Magic Circle vs Evil, as the spell, and a aura to frighten(Will, DC:16+Cha) their enemies. - Outsider: Hound Archons are considered Outsiders for the purpose of spells. @@ -35650,7 +35764,7 @@ If a cleric's basic creed is that the handiwork of the deities is everywhere, a - Proficiencies: A Shaman gains proficiencies with simple weapons and light armour. - Skill Points: 4 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Unarmed Strike @@ -36384,9 +36498,10 @@ Warlocks are born, not made. Their ancestors traded portions of their soul for - Hit Die: d6 - Proficiencies: Warlocks are proficient with simple weapons and light armor. -- Skill Points: 2 + Int Modifier(x4 at 1st level) +- Skill Points: 2 + Int Modifier + +CLASS FEATURES: -Abilities: Alignment: Chaotic or Evil only. Base Attack Bonus: +3/4 Strong Saves: Will @@ -36752,7 +36867,7 @@ Special Abilities: - Natural Armor Bonus: Racial natural armor bonus of 5. - Damage Reduction: Innate damage reduction of 15/+1 - Improved Skill Affinity (Bluff): +4 racial bonus to bluff checks. -- Spell-Like Abilities: At will - Disguise. +- Spell-like Abilities: At will - Disguise. - Rogue-like Abilities: Evasion, Improved Evasion, Uncanny Dodge, +6d6 Sneak Attack - Shadow Manipulation: Hide in Plain Sight, Shadow Jump(acts like Dimension Door, 20' range) - Outsider: Naztharune Rakshasa are considered Outsiders for the purpose of spells. @@ -37258,7 +37373,7 @@ Special Abilities: - Spell Resistance: Innate spell resistance of 22, plus 1 per character level. - Natural Armor Bonus: Racial natural armor bonus of 9. - Damage Reduction: Innate damage reduction of 15/+1 -- Spell-Like Abilities: At will - Disguise. 3/day - Chill Touch, True Strike, Vampiric Touch. +- Spell-like Abilities: At will - Disguise. 3/day - Chill Touch, True Strike, Vampiric Touch. - Bonus Feat: 1 bonus feat of your choice. - Outsider: Zakya Rakshasa are considered Outsiders for the purpose of spells. @@ -37330,7 +37445,7 @@ The Swashbuckler embodies the concepts of daring and panache. Favoring agility - Proficiencies: Swashbucklers are proficient with simple and martial weapons, and light armor. - Skill Points: 4 + Int Modifier (x 4 at 1st level). -ABILITIES: +CLASS FEATURES: Level 1: Weapon Finesse @@ -37445,7 +37560,7 @@ Marshals inspire trust in those they lead. They earn that trust by slogging thro - Proficiencies: Marshals are proficient with simple and martial weapons, all types of armor, and shields. - Skill Points: 4 + Int Modifier (x 4 at 1st level). -ABILITIES: +CLASS FEATURES: A marshal gains Auras they may activate to boost themselves and all allies in a wide radius. You can activate your auras as many times per day as you wish, and they will last until you choose to deactivate them (there is no time limit or limit on uses per day). You may have 1 minor and 1 major aura active at any given time, but you must deactivate an aura before activating another of the same type (you may have to deactivate it twice). Auras apply much further than the visual effect appears. @@ -37808,7 +37923,7 @@ Few Champions of Corellon Larethian ever turn to evil, but it occasionally happe - Hit Die: d10. - Proficiencies: The Champion of Corellon gains no weapon or armor proficiency. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -37819,7 +37934,7 @@ Skills: Lore 2, Persuade 4. Base Attack Bonus: +7. Special: Must worship Corellon Larethian. (Clerics taking this class must have two of the following domains: Chaos, Good, Magic, Protection, War) -ABILITIES: +CLASS FEATURES: Level 1: Corellon's blessing, Bonus Feat @@ -37861,7 +37976,7 @@ At 8th level, you gain the ability to briefly channel the divine power of Corell Requirements: Champion of Corellon level 11 Masters of the blade and fearing no enemy, Epic Champions of Corellon Larethian are the absolute elite. They lead the elven warbands, maybe even command entire armies. Still they also fight in the front ranks, taking on the toughest foes. -ABILITIES: +CLASS FEATURES: Level 11: - @@ -37957,7 +38072,7 @@ REQUIREMENTS: Skills: Perform 10 ranks, Intimidate or Persuade 6 ranks. Spells: Able to cast 0-level arcane spells (cantrips). -ABILITIES: +CLASS FEATURES: Level 1: Bardic Music (see below), Virtuoso performance (sustaining song) @@ -38080,11 +38195,11 @@ You can select - Hit Die: d6 - Proficiencies: Truenamers gain Weapon Proficiency: Simple and Light Armour Proficiency. - - Skill Points at Each Level: 4 + Int modifier. + - Skill Points: 4 + Int modifier. - Base Attack Bonus: +3/4. - Strong Saves: Will -ABILITIES: +CLASS FEATURES: Level 1: @@ -42990,7 +43105,7 @@ Baelnorns are elves who have sought undeath to serve their families, communities - Hit Die: d4. - Proficiencies: The Baelnorn gains no additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -43000,7 +43115,7 @@ Class : 11 levels in Sorcerer, Wizard, or Cleric Alignment: Any Good Must not have any levels in Lich. -ABILITIES: +CLASS FEATURES: Level 1: Baelnorn Properties I: +2 bonus to Hide, Listen, Move Silently, Search, Persuade, and Spot. Baelnorn Touch: Touch attack causes 1d6 + 5 damage and paralyzation for 1d4 rounds. @@ -43491,7 +43606,7 @@ Manifesting: Must be able to manifest 2nd level powers. Base Attack Bonus: +3. Special: Must be able to manifest Concealing Amorpha -ABILITIES: +CLASS FEATURES: Level 1: Distract - Gain knowledge of the power, manifest at a reduced cost @@ -43589,7 +43704,7 @@ Not all monks pursue metaphysical perfection to the exclusion of all other study REQUIREMENTS: -Spells or Spell-Like Abilities: Arcane caster level 3rd. +Spells or Spell-like Abilities: Arcane caster level 3rd. Feats: Combat Casting, Improved Unarmed Strike, Stunning Fist. Skills: Concentration 8 ranks, Lore 5 ranks, Spellcraft 5 ranks. @@ -43597,7 +43712,7 @@ BONUS SPELLS Every level in Enlightened Fist, the character gains new spells per day as if he had also gained a level in his highest arcane caster class. -ABILITIES: +CLASS FEATURES: Level 1: Unarmed Damage - Enlightened Fist's levels stack with his monk level. @@ -43694,7 +43809,7 @@ Spellcasting: Able to cast 3rd level Arcane spells Feats: Bardic Music Skills: Lore 13, Listen 13, Perform 10, Concentration 6, Spellcraft 6 -ABILITIES: +CLASS FEATURES: Level 1: Bardic Lore, Bardic Music @@ -43926,11 +44041,9 @@ Duration: One year Saving Throw: None Spell Resistance: No -The caster calls 3d4 lemures from the Nine Hells to where he is, offering them the soul that he has prepared. In exchange, they will serve the caster for one year as guards, slaves, or whatever else he needs them for. They are non­-intelligent, -so the caster cannot give them more complicated tasks than can be described in about five words. +The caster calls 3d4 lemures from the Nine Hells to where he is, offering them the soul that he has prepared. In exchange, they will serve the caster for one year as guards, slaves, or whatever else he needs them for. They are non-intelligent, so the caster cannot give them more complicated tasks than can be described in about five words. -No matter how many times the caster casts this spell, he can control no more than 2 HD worth of fiends per caster level. If he exceeds this number, all the newly called creatures fall under the caster's control, and any excess from previous -castings become uncontrolled. The caster chooses which creatures to release. +No matter how many times the caster casts this spell, he can control no more than 2 HD worth of fiends per caster level. If he exceeds this number, all the newly called creatures fall under the caster's control, and any excess from previous castings become uncontrolled. The caster chooses which creatures to release. Claws of the Bebilith Claws of the Bebilith @@ -45721,7 +45834,7 @@ Devoted knight, divine agent, instrument of vengeance, peerless fighting machine - Skill Points: 4 + Int Modifier - Alignment: A Crusader cannot be neutral. -ABILITIES: +CLASS FEATURES: Level 1: Furious Counterstrike - Bonus to attack when wounded. @@ -45777,7 +45890,7 @@ Level Maneuvers Known Maneuvers Readied Stances Known - Proficiencies: A Swordsage gains proficiencies with Martial and Simple Weapons, and Light armour. - Skill Points: 6 + Int Modifier - ABILITIES: + CLASS FEATURES: Level 1: Discipline Focus (Weapon Focus) - You gain weapon focus for weapons in the chosen discipline @@ -45832,7 +45945,7 @@ Level Maneuvers Known Maneuvers Readied Stances Known - Proficiencies: A Warblade gains proficiencies with Martial and Simple Weapons, Shields, Medium and Light armour. - Skill Points: 4 + INT Modifier - ABILITIES: + CLASS FEATURES: Level 1: Battle Clarity - INT to Reflex saves @@ -46012,7 +46125,7 @@ Skills: Balance 13 ranks. Feats: Power Attack or Stone Power. Maneuvers: Must know at least two Stone Dragon maneuvers and one Stone Dragon stance. -ABILITIES: +CLASS FEATURES: Level 1: Mountain Fortress Stance - Create a small fortress of stone @@ -51413,7 +51526,7 @@ A skill originally developed by the Dwarves and the giants, the ability to creat - Hit Die: d8. - Proficiencies: A Runecaster does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -51421,7 +51534,7 @@ Divine Spellcasting: Able to cast 3rd-level spells. Skills: Spellcraft 8 ranks, Craft Armour 8 ranks. Feats: Inscribe Rune (This requires 13 Int and 2nd-level divine spells) -ABILITIES: +CLASS FEATURES: Level 1: Rune Craft +1 - The Runecaster gets a +1 bonus on checks to craft runes. @@ -51752,14 +51865,14 @@ For any servant of a deity, no joy is greater than at those rare moments when th - Hit Die: d6. - Proficiencies: A Contemplative does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Spellcasting: Able to cast 1st-level divine spells. Skills: Lore 13 ranks. -ABILITIES: +CLASS FEATURES: Level 1: Bonus Domain - The contemplative gains access to an additional domain. @@ -52147,7 +52260,7 @@ Base Attack Bonus: +5. Skills: Lore 2 ranks. Feats: Alertness, Weapon Focus(creature or unarmed strike) -ABILITIES: +CLASS FEATURES: Level 1: Energy Drain 1 @@ -52204,7 +52317,7 @@ It is rumored that the magical powers of sorcerers and bards is somehow connecte - Hit Die: Special (see below) - Proficiencies: A dragon disciple does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -52213,7 +52326,7 @@ Spellcasting: Ability to cast arcane spells without preparation Skills: 8 Ranks in Lore Special: The player chooses a dragon variety when taking the first level in this prestige class -ABILITIES: +CLASS FEATURES: Level 1: Draconic Armor - The character's skin develops nearly invisible scales that increase his/her natural armor class by +1. @@ -53153,7 +53266,7 @@ Special Abilities: - Skill Affinity (Move Silently): +4 racial bonus to Move Silently checks. - Skill Affinity (Listen): +2 racial bonus to Listen checks. - Skill Affinity (Spot): +2 racial bonus to Spot checks. -- Spell-Like Abilities: 1/day - Silence, Mage Hand. +- Spell-like Abilities: 1/day - Silence, Mage Hand. - Gnomish: Whisper Gnomes count as Gnomes for the purpose of spells. You grew up in a hidden community with others of your kind. However, no one knows what threats may lay over the horizon, and so you left home, determined to make sure that you would be strong enough to protect it if that threat ever materialized. Catfolk @@ -53183,31 +53296,31 @@ Ninjas move through the shadows, striking down the unwary and vanishing again wi - Hit Die: d6. - Proficiencies: Ninjas are proficient with all simple weapons, plus the kama, kukri, shortbow, short sword, and shuriken. Ninjas are not proficient with any type of armor or shield. -- Skill Points: 6 + Int Modifier. - +- Skill Points: 6+ Int modifier. CLASS SKILLS: Bluff, Concentration, Craft Weapon, Craft Armor, Craft Trap, Disable Trap, Hide, Jump, Listen, Move Silently, Open Lock, Search, Spot, Tumble CLASS FEATURES: -Level 1: Ki Power, Sneak Attack +1d6 -Level 2: Ghost Step -Level 3: Sneak Attack +2d6, Use Poison -Level 4: Great Leap -Level 5: Sneak Attack +3d6 -Level 6: Acrobatics +2, ki Dodge -Level 7: Sneak Attack +4d6 -Level 8: Ghost Strike -Level 9: Sneak Attack +5d6 -Level 10: Ghost Step (ethereal) -Level 11: Sneak Attack +6d6 -Level 12: Acrobatics +4, Evasion -Level 13: Sneak Attack +7d6 -Level 15: Sneak Attack +8d6 -Level 16: Ghost Sight -Level 17: Sneak Attack +9d6 -Level 18: Acrobatics +6, Greater Ki Dodge -Level 19: Sneak Attack +10d6 -Level 20: Ghost Walk +Level: +1: Ki Power, Sneak Attack +1d6 +2: Ghost Step +3: Sneak Attack +2d6, Use Poison +4: Great Leap +5: Sneak Attack +3d6 +6: Acrobatics +2, ki Dodge +7: Sneak Attack +4d6 +8: Ghost Strike +9: Sneak Attack +5d6 +10: Ghost Step (ethereal) +11: Sneak Attack +6d6 +12: Acrobatics +4, Evasion +13: Sneak Attack +7d6 +15: Sneak Attack +8d6 +16: Ghost Sight +17: Sneak Attack +9d6 +18: Acrobatics +6, Greater Ki Dodge +19: Sneak Attack +10d6 +20: Ghost Walk Ki Power Type of Feat: Class Specific @@ -53289,7 +53402,7 @@ At level 24, the Ninja is capable of enhanced acrobatics gaining a +8 bonus to T Ninja AC Bonus Type of Feat: Class Prerequisite: Ninja level 1. -Specifics: Ninjas add their Wisdom modifier to their Armor Class. +Specifics: When unarmored and unencumbered, a ninja adds her Wisdom bonus (if any) to her Armor Class. This ability does not stack with the monk's AC bonus ability (a ninja with levels of monk does not add the bonus twice). In addition, a ninja gains a +1 bonus to AC at 5th level. This bonus increases by 1 for every five ninja levels thereafter (+2 at 10th, +3 at 15th, and +4 at 20th level). Use: Automatic. Ghost-Faced Killer Ghost-Faced Killers @@ -53314,7 +53427,7 @@ Hide: 6 ranks Move Silently: 6 ranks Feats: Power Attack, Improved Initiative -Abilities: +CLASS FEATURES: 1: Ghost step 1/day 2: Sudden Strike (Sneak Attack) +1d6 @@ -53680,7 +53793,7 @@ Manifesting: Must be able to manifest 3rd level powers. Base Attack Bonus: +3. Alignment: Any Neutral. -Abilities: +CLASS FEATURES: Level 1: Dragon Augmentation - The Diamond Dragon can choose to gain a +1 in either Strength, Dexterity, or Constitution as they work to become more dragonlike. @@ -53857,7 +53970,7 @@ Spellcasting: Must be able to cast 3rd level divine spells. Base Attack Bonus: +3. Special: Ability to turn undead. -Abilities: +CLASS FEATURES: Level 1: Dragon Affinity - Your concept of yourself as part of a holy dragon that serves your church draws upon a mystic link to a particular kind of dragon you consider affiliated with your deity. At first level you must select a dragon type within 1 step of your alignment. @@ -53888,7 +54001,7 @@ Spellcasting: Must be able to spontaneously cast arcane spells. Skills: Lore 8. Feats: Draconic Heritage. -Abilities: +CLASS FEATURES: Draconic Breath - You receive a variant of the Draconic Breath feat. When you reach 6th level, the damage goes to 2d8 per spell level, and at level 10 it goes to 3d6 per spell level. @@ -54029,7 +54142,6 @@ Your draconic blood lets you access ancient draconic knowledge. You gain a bonu Dragontouched Type of Feat: General Prerequisite: Cha 11 - Benefit: You have a trace of draconic power, a result of draconic ancestors or a spiritual connection between you and the forces of dragonkind. You gain the dragonblood subtype, a +1 bonus on Listen, Search, and Spot checks, and a +1 bonus on saving throws against paralysis and sleep. In addition, you can select draconic feats as a sorcerer of your charaacter level. Use: Automatic Draconic Vigor @@ -54234,7 +54346,7 @@ Base Attack Bonus: +4. Skills: Bluff 4 ranks, Intimidate 4 ranks, Lore 4 ranks. Feats: Dragonthrall -Abilities: +CLASS FEATURES: 1: Breath Weapon - You can breathe a cone of cold that does 3d6 cold damage, with a Reflex save of DC 10 + class level + Con modifier for half damage. You can only use this breath weapon once every 1d4 rounds. 2: Voice of the Dragon +2 - You gain a +2 bonus on Intimidate and Bluff checks. 3: Breath Weapon - 8d4 line of acid @@ -54262,7 +54374,7 @@ Base Attack Bonus: +5. Skills: Lore 1 rank. Race: Nondragon -Abilities: +CLASS FEATURES: 1: Ability Increase - +2 to Charisma. Natural Armor - You gain a +1 natural armor bonus. 2: Combat Technique - You can choose a bonus feat from the fighter bonus feat list, or add 1d6 of Sneak Attack. @@ -54436,7 +54548,7 @@ Skills: Bluff 4 ranks, Hide 4 ranks, Move Silently 4 ranks, Lore 4 ranks, Sense Feats: Dragontouched. Special: Sneak Attack or Skirmish +2d6 -Abilities: +CLASS FEATURES: 1: Draconic Senses - You gain Draconic Senses as a bonus feat. 2: Special Attack +1d6 - You can gain +1d6 to your Sneak Attack damage or to your Skirmish damage, chosen at every increase. 3: Dragonfire Strike - You gain Dragonfire Strike as a bonus feat. @@ -54473,11 +54585,11 @@ Dragon shamans respect true dragons as power incarnate. Some worship dragons, b - Hit Die: d10 - Proficiencies: Dragon shamans are proficient with simple weapons, with light and medium armor, and with shields. -- Skill Points: 2 + Int Modifier(x4 at 1st level) +- Skill Points: 2+ Int Modifier CLASS SKILLS: Appraise, Bluff, Craft, Heal, Hide, Intimidate, Jump, Lore, Move Silently, Persuade, Search, Sense Motive, Spellcraft -Abilities: +CLASS FEATURES: Base Attack Bonus: +3/4 Strong Saves: Fortitude, Will @@ -54943,9 +55055,10 @@ Able to call upon a dragon's fiery breath and augment themselves with spell-like - Proficiencies: Dragonfire adepts are proficient with simple weapons only. - Skill Points: 4 + Int Modifier(x4 at 1st level) -CLASS SKILLS: +CLASS SKILLS: Appraise, Bluff, Climb, Concentration, Craft(General), Craft(Poisonmaking), Craft Armor, Craft Trap, Craft Weapon, Intimidate, Jump, Listen, Lore, Persuade, Search, Sense Motive, Spellcraft, Spot, Truespeak, Use Magic Device -Abilities: + +CLASS FEATURES: Base Attack Bonus: +1/2 Strong Saves: Fortitude, Will @@ -55257,7 +55370,7 @@ Special Abilities: - Resist Fire: Innate fire resistance of 5. - Resist Sonic: Innate sonic resistance of 5. - Resist Electrical: Innate electrical resistance of 5. -- Spell-Like Abilities: 1/day - True Strike. +- Spell-like Abilities: 1/day - True Strike. - Outsider: Zenythri count as Outsiders for the purpose of spells. (The following may or may not be in use, depending on the module switch settings) @@ -55286,7 +55399,7 @@ Special Abilities: - Resist Acid: Innate acid resistance of 5. - Resist Sonic: Innate sonic resistance of 5. - Resist Electrical: Innate electrical resistance of 5. -- Spell-Like Abilities: 1/day - Magic Circle vs Alignment. +- Spell-like Abilities: 1/day - Magic Circle vs Alignment. - Outsider: Tuladhara count as Outsiders for the purpose of spells. (The following may or may not be in use, depending on the module switch settings) @@ -55309,7 +55422,7 @@ Special Abilities: - 20' base speed - Darkvision: Nathri are able to see in the dark. - Spell Resistance: Innate spell resistance of 5 + 1 per character level. -- Spell-Like Abilities: 3/day - Expeditious Retreat. +- Spell-like Abilities: 3/day - Expeditious Retreat. - Outsider: Nathri count as Outsiders for the purpose of spells. (The following may or may not be in use, depending on the module switch settings) @@ -55409,7 +55522,7 @@ Special Abilities: - Skill Affinity (Hide): +4 Racial bonus to Hide checks - Skill Affinity (Move Silently): +4 Racial bonus to Move Silently checks - Poison bite: Fortitude save (DC 18), initial and secondary damage 1d6 temporary strength -- Spell-like abilities: darkness, detect good, detect law, faerie fire - 1/day, Caster level 6th +- Spell-like Abilities: darkness, detect good, detect law, faerie fire - 1/day, Caster level 6th - Aberration: Driders count as Aberrations for the purposes of spells and effects. - Sorcerer Casting: Driders cast spells as a Sorcerer of their hit dice (6th level) @@ -55456,8 +55569,7 @@ Racial Hit Dice/Class: NA Hagspawns Sons of malicious, predatory mothers, hagspawn are not a complete race, as there are no females of their kind. Hags continue their awful lineage by taking human males for mates, usually murdering and devouring the hapless captive later. The female children of a hag quickly grow into hags like their mothers, but the male children are hagspawn, half-human outcasts. Feared and hated by normal humans, hagspawn must make their way in the world by dint of their strength, hardiness, and sheer determination. -Hagspawn Ability Adjustments: +2 Strength, +2 Constitution, -2 Charisma: Hagspawn are strong and hardy, but are sullen and ill-tempered. - +Hagspawn Ability Adjustments: +2 Strength, +2 Constitution, -2 Charisma: Hagspawn are strong and hardy, but are sullen and ill-tempered. Favored Class (Barbarian): A multiclass hagspawn's barbarian class does not count when determining whether he suffers an XP penalty for multiclassing. - Medium size @@ -57007,7 +57119,7 @@ In most city-states, templars are the ultimate authority judge, jury, and execut - Proficiencies: Templars are proficient in all simple weapons. Since templar training involves some education in warfare, templars receive two martial weapons proficiencies. Templars are proficient in light and medium armor and shields (except tower shields). - Skill Points: 4 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Secular Aptitude, Assume Domain @@ -57567,7 +57679,7 @@ REQUIREMENTS: Skill: Truespeak 9 -ABILITIES: +CLASS FEATURES: Level 1: @@ -57645,7 +57757,7 @@ Necromancy is usually a poor choice for arcane spellcasters. Those who really wa - Hit Die: d6. - Proficiencies: A pale master does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -57654,7 +57766,7 @@ Alignment: Any non good Skill: Lore 8 Feat: Skill Focus (Lore) -ABILITIES: +CLASS FEATURES: Level 1: Bone Skin I - Add +2 to AC. This increases by another +2 for every four levels of Pale Master. @@ -57682,7 +57794,7 @@ All frostragers are barbarians to some degree, although many are multiclass barb - Hit Die: d12 - Proficiencies: A frostrager does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -57691,7 +57803,7 @@ Skills: Intimidate 4 ranks, Lore 4 ranks Feats: Frozen Berserker, Improved Unarmed Strike, Power Attack Special: Rage as a class ability -ABILITIES: +CLASS FEATURES: Level 1: Frostrage - Add +4 to AC, 1d4 cold damage on unarmed attacks @@ -57740,7 +57852,7 @@ Most sacred purifiers are clerics (often of Pelor), but paladins have also been - Hit Die: d8 - Proficiencies: A sacred purifier does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -57751,7 +57863,7 @@ Base Will Save Bonus: +5. Spells: Able to cast 2nd-level divine spells. Special: Able to turn undead. -ABILITIES: +CLASS FEATURES: Level 1: Greater Turning, Turn Undead @@ -57786,14 +57898,14 @@ If you have a disciplined worldview and a certain level of combat prowess, and y - Hit Die: d8 - Proficiencies: A serene guardian does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Alignment: Any lawful Base Attack Bonus: +6 -ABILITIES: +CLASS FEATURES: Level 1: Resonance - Build up resonance in targets you hit @@ -58231,7 +58343,7 @@ Base Attack Bonus: +10 Feats: Weapon Focus (any) Martial Maneuvers: Any two Devoted Spirit or Diamond Mind maneuvers. -ABILITIES: +CLASS FEATURES: Level 1: Blade Guide - @@ -58247,7 +58359,7 @@ Level 9: Eternal Training 5/Day 10: Island in Time - - Maneuvers Stances + Maneuvers Stances Level Known Readied Known 1 1 0 0 2 0 0 0 @@ -58334,7 +58446,7 @@ Skills: Hide 8 ranks Feats: Improved Unarmed Strike Martial Maneuvers: Must know one 2nd-level Setting Sun or Shadow Hand maneuver, one Setting Sun maneuver of any level, and one Shadow Hand maneuver of any level. -ABILITIES: +CLASS FEATURES: Level 1: Monk abilities - You add your class levels to determine your unarmed damage and number of Stunning Fist attempts. You gain the AC bonus of a monk. @@ -58589,7 +58701,7 @@ Base Attack Bonus: +5 Skills: Tumble 5 ranks Feats: Improved Unarmed Strike -ABILITIES: +CLASS FEATURES: Level 1: Improved Grapple (Ex): When wearing light armor or no armor, a reaping mauler gains the benefit of the Improved Grapple feat, even if he does not meet the prerequisites. @@ -58724,7 +58836,7 @@ Benefit: Once per round, when you deal damage to a flat-footed foe (or a foe you Use: Automatic Inlindl School Type of Feat: General -Prerequisite: Expertise, Weapon Focus, Shield Proficiency, Int 13 +Prerequisite: Expertise, Weapon Finesse, Shield Proficiency, Int 13 Benefit: You can choose to sacrifice your shield bonus to AC in exchange for a bonus on melee attack rolls equal to one-half that bonus. This bonus applies only on attacks made with light weapons. Use: Selected Divine Intercession @@ -58846,7 +58958,7 @@ Alignment: Nongood Special: Wild Shape as a class ability Special: Must have been a druid -ABILITIES: +CLASS FEATURES: Level 1: @@ -58944,7 +59056,7 @@ Alignment: Nonevil Feats: Alertness, Combat Casting, Track Skills: Spot 8, Search 4 -ABILITIES: +CLASS FEATURES: Level 1: Woodland Stride @@ -58984,7 +59096,7 @@ Fighters and paladins are well served by becoming battlesmiths. Spellcasters are - Hit Die: d10 - Proficiencies: A battlesmith gains no additional proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -58993,7 +59105,7 @@ Feats: Armor Proficiency (Heavy), Endurance, Weapon Focus (Warhammer) Skills: Craft (Weapons) 10 Base Attack Bonus: +5 -ABILITIES: +CLASS FEATURES: Level 1: One With the Hammer - Wisdom to damage for Warhammers @@ -59035,7 +59147,7 @@ Some believe that the ultimate expression of the warforged experiment is the jug - Hit Die: d12 - Proficiencies: A Warforged Juggernaut gains no additional proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -59043,7 +59155,7 @@ Race: Warforged Feats: Adamantine Body, Improved Bull Rush, Power Attack Base Attack Bonus: +5 -ABILITIES: +CLASS FEATURES: Level 1: Armor Spikes 1d6, Expert Bull Rush, Powerful Charge, Reserved @@ -59101,7 +59213,7 @@ As members of this prestige class must have the ability to cast arcane spells, f - Hit Die: d4 - Proficiencies: A Frost Mage gains no additional proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -59109,7 +59221,7 @@ Spells: 1st level arcane spells Feats: Frozen Magic Skills: Lore 8 -ABILITIES: +CLASS FEATURES: Level 1: Natural Armor +1 @@ -59149,14 +59261,14 @@ Most wayfarer guides are wizards or sorcerers, though a few clerics with access - Hit Die: d6 - Proficiencies: A Wayfarer Guide gains no additional proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Spells: Must be able to cast teleport Skills: Lore 10 -ABILITIES: +CLASS FEATURES: Level 1: Enhanced Capacity - Take one more character per class level when group teleporting @@ -59193,7 +59305,7 @@ REQUIREMENTS: Special: Turn undead class feature. Special: Sneak attack class feature. -ABILITIES: +CLASS FEATURES: Level 1: Pierce Shadows - Create an area of light @@ -59217,7 +59329,7 @@ Those they name as heretics or servants of evil call them zealots. Those they pr - Hit Die: d8 - Proficiencies: Shadowbane Stalkers gain no proficiencies. -- Skill Points: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS: @@ -59226,7 +59338,7 @@ REQUIREMENTS: Special: Detect evil class feature or ability to cast detect evil as a divine spell. Special: Sneak attack class feature. -ABILITIES: +CLASS FEATURES: Level 1: Detect Evil at will @@ -59303,7 +59415,7 @@ Over a dozen deities have worshipers who are paladins, promoting law and good ac - Hit Die: d8 - Proficiencies: Knights of the Weave gain no proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -59312,7 +59424,7 @@ Base Attack Bonus: +5 or ability to spontaneously cast 3rd-level arcane spells. Skills: Lore 1 rank, Spellcraft 1 rank. Special: Cannot be a Shadow Weave user. -ABILITIES: +CLASS FEATURES: Level 1: Read Magic at will, Spellcasting @@ -59343,7 +59455,7 @@ Spelldancers are an energetic sort of spellcaster who draw on the quasi-primal e - Hit Die: d6 - Proficiencies: Spelldancers gain no proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -59351,7 +59463,7 @@ Skills: Concentration 4 ranks, Perform 6 ranks, Tumble 4 ranks. Feats: Combat Casting, Dodge, Endurance, Mobility. Spellcasting: Able to cast 3rd level arcane spells. -ABILITIES: +CLASS FEATURES: Level 1: Spelldance - Apply metamagic feats for free @@ -59409,26 +59521,40 @@ While skilled in stealthy movement and other arts requiring subtlety, the psychi - Hit Die: d6 - Proficiencies: Psychic rogues are proficient with all simple weapons, plus the rapier, shortbow, and short sword. Psychic rogues are proficient with light armor, but not with shields. -- Skill Points at Each Level: 6 + Int modifier. +- Skill Points: 6+ Int modifier. +Psionics: Intelligence is the key stat of a Psychic Rogue. -ABILITIES: +Special Abilities (gained at 11th, 14th, 17th, 20th): + + Blind Spot (Ps): Cloud Mind, once per day + Enhanced Sneak Attack (Su): When the psychic rogue has psionic focus, he increases his sneak attack damage by +1d6. This ability may be selected up to three times. + Improved Evasion (Ex): As rogue + Mind Cripple (Su): An opponent struck by one of his sneak attacks takes 2 points of Intelligence damage. + Shadow Jump (Ps): Dimension Door, Self, once per day. The psychic rogue can select this ability up to three times. + Skill Mastery: As rogue + Slippery Mind (Ex): As rogue + Feat: A psychic rogue can gain a bonus feat in place of a special ability. + +CLASS FEATURES: Base Attack Bonus: +3/4 Strong Saves: Reflex -Psionics: Intelligence is the key stat of a Psychic Rogue. -Sneak Attack: +1d6 at first level and every three levels thereafter -Evasion at second level -Danger Sense: Gain the benefits of the danger sense power when psionic focused at 5th level. Gain uncanny dodge at 7th level, and improved uncanny dodge at 9th. -Special Abilities (gained at 11th, 14th, 17th, 20th): -Blind Spot (Ps): Cloud Mind, once per day -Enhanced Sneak Attack (Su): When the psychic rogue has psionic focus, he increases his sneak attack damage by +1d6. This ability may be selected up to three times. -Improved Evasion (Ex): As rogue -Mind Cripple (Su): An opponent struck by one of his sneak attacks takes 2 points of Intelligence damage. -Shadow Jump (Ps): Dimension Door, Self, once per day. The psychic rogue can select this ability up to three times. -Skill Mastery: As rogue -Slippery Mind (Ex): As rogue -Feat: A psychic rogue can gain a bonus feat in place of a special ability. +Level: + 1: +1d6 Sneak Attack + 2: Evasion + 4: +2d6 Sneak Attack + 5: Danger Sense + 7: +3d6 Sneak attack , Danger Sense (Uncanny Dodge) + 9: Danger Sense (Improved Uncanny Dodge) +10: +4d6 Sneak Attack +11: Special Ability +13: +5d6 Sneak Attack +14: Special Ability +16: +6d6 Sneak Attack +17: Special Ability +19: +7d6 Sneak Attack +20: Special Ability Level Power Points Powers Known Power Level Known 1 0 1 1 @@ -59552,12 +59678,12 @@ Use: Selected - Hit Die: d8 - Proficiencies: You are proficient with all simple weapons and light armor - - Skill Points at Each Level: 2+ Int Modifier. + - Skill Points: 2+ Int modifier. - Alignment: Any - ABILITIES: + CLASS FEATURES: - Level + Level: 1: Soul Binding - 1 Vestige 2: Pact Augmentation - Gain minor benefit, reselect every time a vestige is bound 3: @@ -59652,7 +59778,6 @@ Use: Automatic Type of Feat: Binding Prerequisite: Bind Vestige Benefit: When you bind a vestige using the Bind Vestige feat, you gain a second power, as described in the Bind Vestige feat. - Use: Automatic Binding Feats Feats associated with the Binding alternate magic system from Tome of Magic @@ -59699,7 +59824,6 @@ Use: Selected Type of Feat: Binding Prerequisite: Able to bind a vestige, Expel Vestige, Intimidate 8 ranks Benefit: Once per day, you can bind a vestige as a full-round action. - Use: Selected Favored Vestige Amon Favored Vestige Aym @@ -59840,7 +59964,6 @@ Use: Automatic Type of Feat: Binding Prerequisite: Ability to bind vestiges Benefit: You can ignore the special requirements of vestiges with which you make pacts. - Use: Automatic Leraje, the Green Herald Leraje, the Green Herald @@ -60214,7 +60337,7 @@ Poison Blood: While you are bound to Eurynome, your blood becomes poisonous. Any Anima mages give binders a bad name. Greedy and ambitious, they exploit the powers of the vestiges to which they bind to advance their own abilities. Anima mages see such displaced entities as mere tools, no different from spell component pouches or a wand of fireball. With the power of a vestige, an anima mage can tap a resource all but unknown to his rivals to gain an edge against other spellcasters. The anima mage is a loner, an outsider, and a potential enemy to both binders and witch slayers. But the way others classify him matters little to him, for power is at hand. - Hit Die: d4 -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Alignment: Any nongood @@ -60223,7 +60346,7 @@ Feat: Any metamagic feat Spellcasting: Ability to cast 2nd-level arcane spells Special: Ability to bind a 2nd-level vestige, soul binding class feature -ABILITIES: +CLASS FEATURES: Level 1: 2: Exploit Vestige - Forgo a vestige ability to cast one spell of your highest level @@ -60287,7 +60410,7 @@ Vessel of Emptiness: You can use the flicker shadow magic mystery once per day. No other vestige is quite like Tenebrous. The remnant of the divinity once possessed by Orcus, Tenebrous is perhaps the only vestige still worshiped in some places as a god, and so tightly bound to a living-if not mortal-being. This unique status grants Tenebrous the ability to manipulate the world in ways that other vestiges cannot. Some Tenebrous apostates revere Orcus, seeing Tenebrous as part of their sundered god and the seed from which he will one day sprout anew. Others see the corpulent fiend as the embodiment of Tenebrous's downfall. These followers believe that Tenebrous is a separate deity who attempted to manifest through Orcus, only to be laid low when the demon proved unworthy. - Hit Die: d8 -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Alignment: Any nongood @@ -60296,7 +60419,7 @@ Special: Ability to bind Tenebrous Special: Able to turn or rebuke undead Special: Must worship Tenebrous as a god (clerics can only have Chaos, Death, Evil, and Trickery domains) -ABILITIES: +CLASS FEATURES: Level 1: Eternal Bondage - You are always bound to Tenebrous Tenebrous's Rebuke - Damage or heal undead by spending a turn undead use @@ -60342,9 +60465,9 @@ Special: Soul binding class feature - Hit Die: d10. - Proficiencies: You gain proficiency with all simple and martial weapons, and with all armor and shields. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. -ABILITIES: +CLASS FEATURES: Level 1: Aligned Strike, patron vestige, soul binding +1 @@ -60502,14 +60625,14 @@ Thought Travel: As a standard action, you can instantly transport yourself to an Scions of Dantalion trace their lineage to an ancient, long-forgotten human empire-a civilization in which justice, love, and art reigned supreme. They maintain that the rulers of this realm led their people to such a height of beauty and righteousness that they rivaled the stars of the heavens in the awe they could inspire. The gods saw their accomplishments and grew envious. In their jealous rage, they destroyed the empire and cursed its nobility, decreeing that no one from that line could ever join them in the afterlife. Scions of Dantalion believe themselves to be part of this line, cursed by the gods but blessed by association with Dantalion, the vestige that is the conglomeration of all their ancestors' souls. The scions believe that their destiny is to one day take up the crown, bear the scepter of rulership, and rebuild the empire that could rival the stars. - Hit Die: d8 -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Race: Human, Half-elf, or Half-orc Skills: Lore 2 ranks Special: Ability to bind Dantalion -ABILITIES: +CLASS FEATURES: Level 1: Favored of Dantalion - Always make a good pact with Dantalion Scholarship of Dantalion - Once per day, double the Lore bonus Dantalion grants for one round @@ -61066,7 +61189,7 @@ Ur-priests despise gods. However, a small number of them have learned to tap int - Hit Die: d8 - Proficiencies: An ur-priest does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -61076,7 +61199,7 @@ Skills: Bluff 6 ranks, Intimidate 5 ranks, Concentration 5 ranks, Lore 8 ranks, Feats: Iron Will, Spell Focus (evil). Special: The character must have no ability to cast divine spells. If such spellcasting ability was previously possessed (as with an ex-cleric), that ability is forever forsaken. -ABILITIES: +CLASS FEATURES: Level 1: @@ -61145,8 +61268,7 @@ Specifics: You have learned to fight with your weapons in different ways. A char Combat Style: Arcane Let your mind do the fighting with this telekinesis based combat style. Combat Style: Demon Blade - You fight like a man possessed. - + You fight like you're possessed. Combat Style: Warrior This sword & shield combat style is heavy on blocking & counters. Combat Style: Tiger Fang @@ -61302,7 +61424,7 @@ Level Adjustment: +1 Araneas Often confused for werespiders, araneas are intelligent, shapechanging spiders with sorcerous powers. In its natural form, an aranea resembles a big spider, with a humpbacked body a little bigger than a human torso. It has fanged mandibles like a normal spider. Two small arms, each about 2 feet long, lie below the mandibles. Each arm has a hand with four many-jointed fingers and a double-jointed thumb. -Despite their terrifying appearance, the aranea are a peaceful race of beings. They feed on animals and do not prey upon sapient creatures to live. They tend to live beings lived far from civilized society, as they are often hunted by those who do not understand them. +Despite their terrifying appearance, the aranea are a peaceful race of beings. They feed on animals and do not prey upon sapient creatures to live. They tend to live far from civilized society, as they are often hunted by those who do not understand them. Aranea Ability Adjustments: +4 Dex, +4 Con, +4 Int, +2 Wis, +4 Cha @@ -61321,6 +61443,7 @@ Racial Traits: - Web: Aranea can spin & throw a sticky net-like webbing. - Bonus Feats: Aranea gain Alertness, Improved Initiative & Weapon Finesse as bonus feats. - Skills: Araneas have a +2 racial bonus on Jump, Listen, and Spot checks. They have a +8 racial bonus on Climb checks. +- Shapechanger: Aranea are shapechangers. Level Adjustment: +4 Alternate Form @@ -61381,7 +61504,7 @@ Prerequisite: Killoren Benefit: When you are manifesting the aspect of the hunter, you can take a free action to detect all living creatures within 30 feet, even if you cannot see the creature in question. Any opponent that you cannot see still has total concealment. Use: Selected Type of Feat: Racial -Prerequisite: Kalashtar +Prerequisite: Kalashtar or Empty Vessel Specifics: You gain one extra power point per character level. Use: Automatic. Tome of Battle Feats @@ -62528,7 +62651,7 @@ and her companions. The wild mage accepts this as the price of her convictions. - Hit Die: d4 - Proficiencies: A Wild Mage gains no additional proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -62536,7 +62659,7 @@ Alignment: any chaotic Skills: Lore 4 ranks, Spellcraft 8 ranks, Use Magic Device 4 ranks Feats: Magical Aptitude, Any metamagic feat -ABILITIES: +CLASS FEATURES: Level 1: Wild Magic - Reduce caster level by 3, add 1d6 to caster level @@ -62574,14 +62697,14 @@ Other spellcasters don't understand the force missile mages' dedication to only - Hit Die: d4 - Proficiencies: A Force Missile gains no additional proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Skills: Concentration 9 ranks, Spellcraft 9 ranks Feats: Combat Casting -ABILITIES: +CLASS FEATURES: Level 1: Bonus Missile - Magic Missile has an extra missile @@ -63981,10 +64104,10 @@ Incarnum is a tool you can use to manipulate the physical manifestations of mora - Hit Die: d6 - Proficiencies: You are proficient with all simple weapons, light armor, medium armor, and shields -- Skill Points at Each Level: 2+ Int Modifier. +- Skill Points: 2+ Int modifier. - Alignment: Alignment must be Lawful Neutral, Chaotic Neutral, Neutral Evil, or Neutral Good. Incarnates who have a different alignment will lose all class features. -ABILITIES: +CLASS FEATURES: Level 1: Detect Opposition - Detect X at will @@ -64104,10 +64227,10 @@ As a soulborn, you use incarnum to enhance your natural combat ability. You can - Hit Die: d10 - Proficiencies: Soulborns are proficient with all simple and martial weapons, with light, medium, and heavy armor, and with shields. -- Skill Points at Each Level: 2+ Int Modifier. +- Skill Points: 2+ Int modifier. - Alignment: Soulborns are polarized in their alignments, hewing to strong convictions of morality and ethics. As such, they can only be lawful good, chaotic good, lawful evil, or chaotic evil. -ABILITIES: +CLASS FEATURES: Level 1: Smite Opposition 1/day - Smite target of opposed alignment @@ -64166,9 +64289,9 @@ A mask representing a basilisk, a mantle of the displacer beast, boots of the la - Hit Die: d8 - Proficiencies: You are proficient with all simple weapons, light armor, and shields -- Skill Points at Each Level: 4+ Int Modifier. +- Skill Points: 4+ Int modifier. -ABILITIES: +CLASS FEATURES: Level 1: @@ -66193,7 +66316,7 @@ Even without proper training, a skarn can strike wicked blows with the pointed s - Hit Die: d10 - Proficiencies: Spinemeld Warriors gain no new proficiencies -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Race: Skarn @@ -66201,7 +66324,7 @@ Alignment: Any lawful Base Attack Bonus: +5 Essentia Pool: 1 -ABILITIES: +CLASS FEATURES: Level 1: Twin Spine Fighting - Your racial ability now produces two spines instead of one @@ -66246,7 +66369,7 @@ The ancient temple that houses the Sapphire Eidolon is also home to an order of - Hit Die: d6 - Proficiencies: A Sapphire Hierarch does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -66256,7 +66379,7 @@ Spellcasting: Ability to cast 2nd-level divine spells Skills: Lore 4 ranks, Spellcraft 4 ranks Essentia Pool: 3 -ABILITIES: +CLASS FEATURES: Level 1: Smite Chaos - As per Paladin, except Chaos instead of Evil @@ -66302,7 +66425,7 @@ This class combines the Soulcaster and Soulmanifester prestige classes into a si - Hit Die: d4 - Proficiencies: A Soulcaster does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -66311,7 +66434,7 @@ Meldshaping: Ability to shape three soulmelds; ability to bind a soulmeld to a c Soulcaster: Incarnum Spellshaping and 2nd level arcane spells Soulmanifester: Azure Talent and 2nd level powers -ABILITIES: +CLASS FEATURES: Level 1: Arcane or Psionic Investment 1 @@ -67064,7 +67187,7 @@ Special: -ABILITIES: +CLASS FEATURES: Level 1: Favored Enemy (Ex): Upon entering the Slayer class, a slayer selects one favored enemy. She gains a +2 bonus on Bluff, Listen, Sense Motive, Spot, and Survival checks when using these skills against her favored enemy. Likewise, she gets a +2 bonus on weapon damage rolls against creatures of this kind. At 4th level the bonuses increase to +4, at 7th level to +6, and at 10th level to +8. @@ -67169,7 +67292,7 @@ All ironsoul forgemasters are dwarven mastersmiths who possess skill at crafting - Hit Die: d8 - Proficiencies: An Ironsoul Forgemaster does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -67178,7 +67301,7 @@ Alignment: Any nonevil. Skills: Craft (armorsmithing) 8 ranks, Lore 2 ranks. Meldshaping: Ability to shape soulmelds -ABILITIES: +CLASS FEATURES: Level 1: Shield Bond - Invest essentia into shield for elemental resistance @@ -67225,14 +67348,14 @@ Much like the monk, the umbral disciple seeks to explore his own nature and perf - Hit Die: d6 - Proficiencies: An Umbral Disciple does not gain any additional weapon or armor proficiencies. -- Skill Points: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. REQUIREMENTS: Skills: Concentration 4 ranks, Hide 8 ranks, Lore 2 ranks, Listen 8 ranks. Essentia Pool: 1. -ABILITIES: +CLASS FEATURES: Level 1: Step of the Bodiless - Bonus to Balance, Climb, Jump, Tumble @@ -67673,7 +67796,7 @@ Low-Light Vision: Extaminaar can see in the dark out to 60 feet. +2 racial bonus on Fortitude saves versus poison: Extaminaars do not easily succumb to venom of any kind. +4 racial bonus on Climb checks: Extaminaar's light frames make it easier for them to ascend obstacles. +2 racial bonus on Tumble checks: Extaminaars can wriggle their way out of sticky situations. -Spell-Like Abilities: 3/day-charm animal. Extaminaar often fill their lairs with poisonous snakes to dissuade interlopers. +Spell-like Abilities: 3/day-charm animal. Extaminaar often fill their lairs with poisonous snakes to dissuade interlopers. Favored Class: Rogue. A multiclass extaminaar's rogue class does not count when determining whether he takes an experience point penalty. Level Adjustment +0. Skulk @@ -67738,7 +67861,7 @@ Though incarnum is a potent tool, it is still a physical medium-an abstraction t - Hit Die: d10 - Proficiencies: Incandescent Champions gain no new proficiencies -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Alignment: Any good @@ -67746,7 +67869,7 @@ Base Attack Bonus: +6 Essentia Pool: 1 Skills: Concentration 4 ranks -ABILITIES: +CLASS FEATURES: Level 1: Incandescent Strike - Invest essentia to increase damage @@ -68807,7 +68930,7 @@ Necrocarnum is a dark reflection of incarnum, whose use gives even the most evil - Hit Die: d6 - Proficiencies: A Necrocarnate does not gain any additional weapon or armor proficiencies. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -68816,7 +68939,7 @@ Skills: Lore 5 ranks, Concentration 5 ranks, Spellcraft 10 ranks. Feat: Necrocarnum Acolyte. Meldshaping: Ability to shape soulmelds, ability to bind soulmelds to the crown, feet, and hands chakras. -ABILITIES: +CLASS FEATURES: Level 1: Harvest Soul (1 minute) - Harvest essentia from recently dead corpses @@ -68965,19 +69088,18 @@ Use: Selected Incarnum Blades incarnum blade (PRESTIGE CLASS) -Using a secret passed down through the generations, the incarnum blade shapes soul energy drawn from the greatest warriors of the past into a special soulmeld that is incorporated into his melee weapon of choice. By itself, -this blademeld grants him amazing combat prowess. When bound to his chakras, it also enhances his personal combat abilities, infusing them with the power of incarnum. When he dies, the incarnum blade merges with the soul energy that powers his weapon, becoming part of the soul legacy upon which future heroes can draw. +Using a secret passed down through the generations, the incarnum blade shapes soul energy drawn from the greatest warriors of the past into a special soulmeld that is incorporated into his melee weapon of choice. By itself, this blademeld grants him amazing combat prowess. When bound to his chakras, it also enhances his personal combat abilities, infusing them with the power of incarnum. When he dies, the incarnum blade merges with the soul energy that powers his weapon, becoming part of the soul legacy upon which future heroes can draw. - Hit Die: d10 - Proficiencies: Incarnum Blades gain no new proficiencies -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Alignment: Any except neutral Base Attack Bonus: +5 Skills: Concentration 2 ranks -ABILITIES: +CLASS FEATURES: Level 1: Blademeld (crown, feet, hands) - Attach meld to special chakras for benefit @@ -69002,14 +69124,11 @@ Use: Selected Witchborn Binders witchborn binder (PRESTIGE CLASS) -Few creatures pose as much threat to human society as arcane spellcasters do. A single wizard can easily destroy an entire town, subvert a kingdom, or twist the very laws of nature with a few well-placed spells. Against this -obvious threat stands a fellowship of royal agents known as the Vigilant Servants, whose members make it their business to frustrate the plans of the witchborn-namely sorcerers, wizards, and other users of arcane magic. The -organization's elite agents are the witchborn binders - incarnum-wielding mage-hunters who can use the power of soul energy to create shields, traps, and shackles that can smother the magical powers of the witchborn and render -them helpless. +Few creatures pose as much threat to human society as arcane spellcasters do. A single wizard can easily destroy an entire town, subvert a kingdom, or twist the very laws of nature with a few well-placed spells. Against this obvious threat stands a fellowship of royal agents known as the Vigilant Servants, whose members make it their business to frustrate the plans of the witchborn-namely sorcerers, wizards, and other users of arcane magic. The organization's elite agents are the witchborn binders - incarnum-wielding mage-hunters who can use the power of soul energy to create shields, traps, and shackles that can smother the magical powers of the witchborn and render them helpless. - Hit Die: d6 - Proficiencies: Witchborn Binders gain no new proficiencies -- Skill Points at Each Level: 4 + Int Modifier. +- Skill Points: 4+ Int modifier. REQUIREMENTS: Meldshaping: Meldshaper level 6th. @@ -69017,7 +69136,7 @@ Feats: Alertness, Track. Skills: Lore 4 ranks, Search 4 ranks, Sense Motive 2 ranks, Spot 2 ranks. Special: May not possess any arcane spellcasting class levels. -ABILITIES: +CLASS FEATURES: Level 1: Detect Magic at will @@ -77576,8 +77695,7 @@ Temples to evil deities sell cursed water at cost (making no profit). Warmage Flame Strike Warmage Greater Fireburst Warmage Snilloc's Major Missile - Warmage Mass Fire Shield - + Warmage Mass Fire Shield Warmage Mass Fire Shield: Red Warmage Mass Fire Shield: Blue Warmage Prismatic Ray @@ -78054,7 +78172,7 @@ Half-celestials can use a daylight effect (as the spell) at will. Smite Evil (Su) Once per day a half-celestial can make a normal melee attack to deal extra damage equal to its HD (maximum of +20) against an evil foe. -Spell-Like Abilities +Spell-like Abilities A half-celestial with an Intelligence or Wisdom score of 8 or higher has two or more spell-like abilities, depending on its Hit Dice, as indicated on the table below. The abilities are cumulative. Unless otherwise noted, an ability is usable once per day. Caster level equals the creature's HD, and the save DC is Charisma-based. 1+ HD, Protection from evil 3/day, bless @@ -78093,7 +78211,7 @@ Class : 11 levels in Sorcerer, Wizard, or Cleric Alignment: Any Good Must not have any levels in Lich. -ABILITIES: +CLASS FEATURES: Baelnorn Properties: +8 bonus to Hide, Listen, Move Silently, Search, Persuade, and Spot. Baelnorn Touch: Touch attack causes 1d8 + 5 damage and permanent paralyzation. Baelnorn Defense: Damage Reduction 15/+2, Natural Armor + 5, immunity to cold and electricity, Turning Resistance +4. @@ -78163,7 +78281,7 @@ Spellcasting: Ability to cast 4th level arcane spells. Hit die: d4 Skill points at each level: 2 + Int modifier. -Class Features +CLASS FEATURES: Spells per Day: A master alchemist's training focuses on magic. Thus, when a character gains a new level of master alchemist, she gains new spells per day as if she had also gained a level in whatever arcane spellcasting class she belonged to before she added the prestige class. 1st: Brew 2/day: The master alchemist has perfected the art of brewing potions. As such, she can brew two potions in one day(an 8-hour period) instead of one. @@ -78252,7 +78370,7 @@ Base Attack Bonus: +6 Skills: Craft Weapon 8, Hide 8, Lore 4, Move Silently 8 Feats: Point Blank Shot, Weapon Focus (Longbow) -Class Features: +CLASS FEATURES: Hit die: d8 Spellcasting: You gain spells per day as per the following tables. You do not gain spells per day in any existing spellcasting class. You can only choose spells from the justice spell list. @@ -78462,7 +78580,7 @@ Use: Automatic. Reckless Rage Type of Feat: General Prerequisite: Ability to Rage, Con 13 -Specifics: You gain an additional +2 bonus to Strength and Rage, and a further -2 penalty to AC. +Specifics: Whenever you activate your rage ability, you take an additional -2 penalty to your Armor Class, but you gain an additional +2 bonus to Strength and Constitution. These bonuses and penalties stack with the effects of rage, greater rage, and mighty rage. Use: Automatic. Heavy Lithoderms Type of Feat: General @@ -78606,9 +78724,9 @@ The shadowcaster understands the true, primal power of darkness, attunes herself - Hit Die: d6 - Proficiencies: You are proficient with all simple weapons. You are not proficient with any type of armor or shield. Armor of any type interferes with your gestures, which can cause your mysteries to fail when they function as spells. -- Skill Points at Each Level: 2+ Int Modifier. +- Skill Points: 2+ Int modifier. -ABILITIES: +CLASS FEATURES: Level 1: Fundamentals of Shadow - You start with access to 3 fundamentals, which function as supernatural abilities and can be used 3 times/day. @@ -78642,13 +78760,13 @@ Bonus Feats - You gain a bonus feat equal to the total number of Paths you compl They prefer to call themselves "black transmogrifists", but most know them as children of night. They are more than spellcasters, more than scholars, and - they claim - more than mortal. For those who have the will and the depth of knowledge to join their ranks, ascension beyond the earthly form awaits, for the children of night become the stuff of shadow itself. - Hit Die: d6 -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Skills: Lore 8 ranks Shadowcasting/Spellcasting: Ability to cast mysteries -ABILITIES: +CLASS FEATURES: Level 1: Cloak of Shadows (Su) - Your flesh takes on a hazy, almost translucent hue, granting a bonus equal to your child of night level on Hide checks. @@ -78672,13 +78790,13 @@ Mysteries: At each level beyond 1st, you gain new mysteries and an increase in c Some driven or domineering souls seek nothing less than mastery of darkness itself - the ability to turn the very shadows into their agents and allies. These are the masters of shadow, commanders of soldiers as dark and insubstantial as night itself. For those with the force of will to enter their ranks, the very shadows serve at their beck and call. - Hit Die: d8 -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Skills: Lore 8 ranks Feat: Shadow Familiar -ABILITIES: +CLASS FEATURES: Level 1: Shadow Servant - You replace your familiar with a Shadow Elemental, which grows in power with you. Master's Bidding (standard action) - You can focus your affinity with shadow to enhance your shadow servant with one special ability for 1 round. @@ -78697,14 +78815,14 @@ Mysteries: At each level beyond 1st, you gain new mysteries and an increase in c Noctumancers bridge the gap between shadow and arcane magic. Those who succeed in becoming one of these elite not only gain a boost to their mystery user and arcane caster abilities, but are able to manipulate the mysteries and spells of others as no others can. - Hit Die: d4 -- Skill Points at Each Level: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Skills: Lore rank 6, Spellcraft rank 6 Shadowcasting: Able to cast level 2 mysteries Spellcasting: Able to cast level 2 arcane spells -ABILITIES: +CLASS FEATURES: Level 1: Capture Magic's Shadow (Su) - At 1st level, when you successfully dispel a mystery or spell you can absorb its energy. You add one-half the level of the mystery or spell you dispelled to the caster level of any mystery or spell you cast in the next round. @@ -78724,14 +78842,14 @@ Mysteries/Spellcasting: At each level, you gain new mysteries and spells per day few equals. Their ability to manipulate darkness and shadow enhances their martial skills, allowing them to target weak points, land blows that should not strike true, and even attack foes who are paces away. - Hit Die: d8 -- Skill Points at Each Level: 2+ Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Base Attack Bonus: +5 Skills: Bluff 5 ranks, Hide 5 ranks, Move Silently 5 ranks Feats: Blind-Fight -ABILITIES: +CLASS FEATURES: Level 1: Unseen Weapon (Unerring Strike) - Once per day per shadowblade level, you can activate one of the powers of your unseen weapon. Your next melee attack ignores any miss chance because of concealment. 2: Shadow and Stealth - You gain a bonus equal to half your class level (round down) on Hide and Move Silently checks. @@ -78754,13 +78872,13 @@ Level Shadowcasters draw power from darkness, and masters of shadow command it, but no one truly manipulates the darkness as does the shadowsmith. Combining martial and mystical skills, and possessed of a driving will, the shadowsmith forms his tools and weapons from shadowstuff itself, drawing forth matter from empty night. - Hit Die: d8 -- Skill Points at Each Level: 6 + Int Modifier. +- Skill Points: 6+ Int modifier. PREREQUISITES: Base Attack Bonus: +5 Skills: Craft (armor) 5 ranks, Craft (weapon) 5 ranks, Lore 3 ranks -ABILITIES: +CLASS FEATURES: Level 1: Touch of Shadow - For 1 minute per level you gain a bonus on Climb checks equal to your class level. 2: Shroud of Shadow - You gain a bonus on Hide checks and Move Silently checks equal to your class level. Shroud of shadow lasts for 1 minute per class. @@ -79218,7 +79336,7 @@ Skills: 10 ranks in 4 skills from Tumble, Intimidate, Concentration, Balance, Se Feats: Adaptive Style, Dodge, Blind-Fight, Improved Initiative, Improved Unarmed Strike. Maneuvers: Must know at least one maneuver from six disciplines. -ABILITIES: +CLASS FEATURES: Level 1: @@ -79378,7 +79496,7 @@ A specialist wizard who calls himself a necromancer or a cleric with the Death d - Proficiencies: A Dread Necromancer gains proficiencies with Simple Weapons, and Light Armour. - Skill Points: 2 + Int Modifier -ABILITIES: +CLASS FEATURES: Level 1: Charnel Touch - Negative energy touch @@ -79494,13 +79612,13 @@ Magic is evil. Magic tempts. Magic perverts. Magic corrupts. Anyone who cannot e - Hit Die: d12 - Proficiencies: Forsakers gain no proficiencies -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: Feats: Great Fortitude, Iron Will, Lightning Reflexes -ABILITIES: +CLASS FEATURES: Level 1: Ability Bonus - +1 to any ability at each class level @@ -79536,7 +79654,7 @@ Use: Selected - Proficiencies: A Noble gains proficiencies with Simple Weapons, Martial Weapons, Shields, and Light Armour. - Skill Points: 4 + Int Modifier - ABILITIES: + CLASS FEATURES: Level 1: Favor +1 @@ -79738,7 +79856,7 @@ A half-fiend retains all the special attacks of the base creature and gains the Smite Good (Su) Once per day the creature can make a normal melee attack to deal extra damage equal to its HD (maximum of +20) against a good foe. -Spell-Like Abilities +Spell-like Abilities A half-fiend with an Intelligence or Wisdom score of 8 or higher has spell-like abilities depending on its Hit Dice, as indicated on the table. The abilities are cumulative. Unless otherwise noted, an ability is usable once per day. Caster level equals the creature's HD, and the save DC is Charisma-based. HD Abilities @@ -79937,7 +80055,7 @@ Perfect Automatic Still Spell The demilich can cast all the spells it knows without gestures. -Spell-Like Abilities +Spell-like Abilities At will:alter self, astral projection, create greater undead, create undead, death knell, enervation, greater dispel magic, harm (usually used to heal itself), summon monster I-IX, telekinesis, and weird; 2/day: greater planar ally. Demiliches use these abilities as casters of a level equal to their spellcaster level, but the save DCs are equal to 10 + the demilich's HD + the demilich's Charisma modifier. @@ -80033,7 +80151,7 @@ The abjurant champion focuses his arcane abilities both to augment his personal - Hit Die: d10. - Proficiencies: An Abjurant Champion gains no armor or weapon proficiency. -- Skill Points: 2 + Int Modifier. +- Skill Points: 2+ Int modifier. REQUIREMENTS: @@ -80042,7 +80160,9 @@ Feats: Combat Casting. Spellcasting: Must be able to cast 1st-level arcane spells. Special: Must be proficient with at least one martial weapon. -ABILITIES: +CLASS FEATURES: + +Spellcasting: At each level, you gain new spells per day and an increase in caster level (and spells known, if applicable) as if you had also gained a level in an arcane spellcasting class to which you belonged before adding the prestige class level. You do not, however, gain any other benefit a character of that class would have gained. If you had more than one arcane spellcasting class before becoming an abjurant champion, you must decide to which class to add each level for the purpose of determining spells per day, caster level, and spells known. Level 1: Feat - Abjurant Armor - Any time you cast an abjuration spell that grants you an armor bonus or shield bonus to AC, you can increase the value of the bonus by your abjurant champion class level. @@ -80050,7 +80170,7 @@ Level 2: Feat - Swift Abjuration - You cast Abjuration spells as a swift action (NOT IMPLEMENTED). 3: 4: Feat - Arcane Boost - Expend a spell to improve some abilities. -5: Feat - Martial Arcanist - Use your attack bonus as your caster level if it is the higher of the two. +5: Feat - Martial Arcanist - Use your base attack bonus as your caster level if it is the higher of the two. Abjurant Armor Type of Feat: Class Prerequisite: Abjurant Champion 1 @@ -81729,220 +81849,44 @@ Use: Activated Face-Changer Quickselect 1 Face-Changer Quickselect 2 Face-Changer Quickselect 3 - ##START NWN .35 CLASS ABBREVIATIONS ## - UrP - Bnd - AnM - KoS - SoD - TnA - RpM - SrG - ScP - OcA - Btr - MsT - NjS - Smr - Wpr - SfC - Vts - Msh - Shb - Hxb - Dsb - Sct - Hlr - MgK - HrM - SpS - AcS - UnS - ElK - ElS - Fct - ClS - CSP - Fsk - Inc - Slb - Ttm - Bgl - Dul - Hip - RdA - KoC - Hth - ISF - Stl - HtW - FRz - VoB - Lch - Shf - CoC - SbC - Art - AcD - FMM - WdM - Sws - AbC - Acm - Ozm - PsR - Spd - KoW - DrJ - ShI - ShS - WfG - UmD - Ali - BBC - Wrl - AnP - DsL - SmW - Nsh - ShA - SoL - SpH - TfS - BnS - IDM - BgT - Bsi - Soc - SaF - LeD - DiB - MCK - Iai - DiD - CWS - Rav - RuB - TBl - Shc - CoN - MoS - Noc - TtR - NCA - SwB - DrS - DfA - Psi - PsW - Sok - Wil - Thk - RdW - TrN - Ack - BMa - Dia - FHx - IdC - JWW - AoE - PlA - Lsh - Bln - HfW - ToO - ShD - BFZ - SnB - KMC - Mae - CbM - Olm - WSn - Ssh - Wwf - HoS - MaS - MaH - FrB - Tmp - Foe - EoG - OrW - ThG - Nec - ElD - EiT - GFK - DrN - UlM - FrM - Arc - DsS - JPM - BcM - RKV - MoN - EtB - SSN - WbB - Bln - DoM - SoE - HnM - DrM - EnF - Mrl - InB - OAS - Pkt - Shm - PsT - Crm - Thr - FoZ - HvM - CmP - Ruc - Wcf - Wrm - IrM - ScM - SlD - DoA - Dsg - SuA - FaS - WWC - ScH - Tun - MaA - Brf - BsS - FcL - Soh - Crs - Swr - Wrb - Wmg - Kng - FDQ - HWM - ToT - DrD - FMa - WfJ - Bsm - NyH - Blt - RaM - DhM - SwW - DDr - Fra - CSM - Sht + Empty Vessel + empty vessel + Empty Vessels + Unpossessed quori hosts, known as empty vessels, train hard for the day they receive their quori spirits. An empty vessel is taller than the average human, but lightly built, with large, almond-shaped eyes that vary in color. Common colors are black, viridian, or violet, although the eyes change color with the mood of the individual. All empty vessels have pale skin and straight hair that ranges in color from jet black to deep blue or green. By human standards, most empty vessels are strikingly handsome or beautiful, and they possess an unnatural charm and a commanding aura that helps them influence others. Most wear their hair long, and they favor ornate clothing and decorations. Humans born and raised on Sarlona to become vessels receive special training and education, and they are remarkable individuals in their own right. + +Empty Vessel Ability Adjustments: None. +Favored Class (Psion): A multiclass empty vessel's psion class does not count when determining whether he suffers an XP penalty for multiclassing. + +Special Abilities: + +- Base movement of 30. +- Naturally Psionic (Ex): Empty vessels gain 1 extra power point per character level, regardless of whether they choose a psionic class. +- Skills: An empty vessel receives 4 extra skill points at 1st level and 1 extra skill point at each additional level. +- +2 racial bonus on Bluff, Diplomacy, and Intimidate checks. Empty vessels are masters of social interaction, influencing others through their commanding presence and subtle psychic powers. +- Bonus Feat: Empty vessels gain 1 extra feat at 1st level. +- Human: Kalashtar are considered Human for the purpose of spells. +- Level Adjustment: +1 + Jaebrin + jaebrin + Jaebrins + Jaebrins are fey whose fearsome teeth belie an impish nature. Their powers of enchantment, and their immunity to those same effects, make them tricky opponents and untrustworthy allies. Jaebrins are outcast drifters that enjoy tricking and entertaining mortals. Jaebrins were formerly the jesters of fey courts. Fey nobles delighted in enchanting jaebrins to perform silly or weird acts. For their part, the jaebrins reveled in their role, seeing entertainment as a great service. Eventually they built up a strong tolerance to enchantment. For a number of centuries, they hid this fact from their masters and learned to fake being under the sway of enchantment. In time, fey noble after fey noble discovered the ruse and lost interest in the jaebrins. The forsaken fey were shamed into self-imposed exile. Jaebrins now make their way as merchants, charlatans, and swindlers. Others bring merriment as bards, and a few exploit their talents by becoming sorcerers. Such jaebrins might even seek the excitement of adventuring. + +Jaebrin Ability Adjustments: -2 Strength, +2 Charisma. +Favored Class (Beguiler): A multiclass jaebrin's Beguiler class does not count when determining whether he suffers an XP penalty for multiclassing. + +Special Abilities: + +- Fey. Jaebrins are not subject to spells or effects that affect only humanoids. +- Base movement of 30. +- Low-light vision. +- Jaebrins have a +1 bonus to AC. +- Immunity to enchantment spells and effects. +- Natural Attack: Bite (1d3). +- +1 racial bonus on saving throw DCs for enchantment spells the jaebrin casts. +- +2 racial bonus on Appraise, Bluff, Perform, and Persuade checks. +- +4 racial bonus on Spellcraft checks. +- Will Sapper (Ex): Any creature damaged by a jaebrin trickster's bite must succeed on a Will save or take a -4 penalty on Will saves for 1 minute. The effect of multiple bites doesn't stack. The save DC is Constitution-based. +- Level Adjustment: +1 Plt ### BEGIN INVOKER MARKER FEATS# Abjurant Champion Invoking (Warlock) @@ -82937,8 +82881,8 @@ Use: Activated Dragonsong Lyrist Spellcasting (Wizard) Eldritch Knight Spellcasting (Wizard) Enlightened Fist Spellcasting (Wizard) - Eldritch Theurge Spellcasting (Wizard) - Elemental Savant Spellcasting (Wizard) + Elemental Savant Spellcasting (Wizard) + Eldritch Theurge Spellcasting (Wizard) Force Missile Mage Spellcasting (Wizard) Fochlucan Lyrist Spellcasting (Wizard) Frost Mage Spellcasting (Wizard) @@ -83573,6 +83517,16 @@ Use: Activated 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. 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. 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. + Archivist Spellcasting (Master of Shrouds) + Blackguard Spellcasting (Master of Shrouds) + Druid Spellcasting (Master of Shrouds) + Favoured Soul Spellcasting (Master of Shrouds) + Justice of Weald and Woe Spellcasting (Master of Shrouds) + Ranger Spellcasting (Master of Shrouds) + Sohei Spellcasting (Master of Shrouds) + Ur-Priest Spellcasting (Master of Shrouds) + Sorcerous Spellcasting (Hobgoblin Warsoul) + Sorcerous Casting: Hobgoblin Warsoul's cast spells as a Sorcerer of their hit dice (10th level). ***** Custom Weapon VFX ***** ... Darkness / Shadow ... Psionic / Mind @@ -83724,7 +83678,7 @@ Use: Activated Classic Roleplay Adaptation Project Reserved tlk: 189000 (16966216) through 194999 (16971215) TEST * CEP 2 Custom Palette - CEP 2.69 + CEP 2.71 * Builder Specific * DM Specific DMFI / C.R.A.P. Tools @@ -85474,4 +85428,312 @@ Feats Required: Simple, or Druid [CEP] Door 1498 [CEP] Door 1499 [CEP] Door 1500 + #PRC8 RESERVED# + #START PRC8 MATERIAL RESERVE# + Paper + Glass + Ice + Hemp rope + Stone + Deep Coral + Living Wood + Obdurium + Bronze Wood + Byeshk + Calomel + Riedran Crysteel + Densewood + Dragonshard + Flametouched Iron + Livewood + Purple Mournlode + Soarwood + Targath + Astral Driftmetal + Atandur + Blended Quartz + Chitin + Elven Darkleaf + Dlarun + Dustwood + Elukian Clay + Entropium + Baatorian Greensteel + Hizagkuur + Fever Iron + Gehennan Morghuth Iron + Leafweave + Living Metal + Urdrukar Mindsteel + Solanian Truesteel + Agafari Wood + Dasl + Drake Ivory + Giant Hair Rope + Obsidian + Bamboo + Pottery + #END PRC8 MATERIAL RESERVE# + #START PRC8 WOL RESERVE# + Giant Bearing + Type of Feat: Legacy +Prerequisite: Lesser Legacy Ritual +Benefit: Beginning at 13th level, you can multiply your weight by 8, gaining a +2 size bonus to Strength, a —2 size penalty to Dexterity (to a minimum of 1), a —1 penalty on attack rolls, and a +4 bonus on grapple checks. You can grapple Huge creatures. You do not physically become larger and do not gain a longer reach, nor do you take size penalties on attacks, AC, and Hide checks. This ability can be used at will and lasts 10 minutes each time it is activated. + +Use: Selected + Vow of Poverty + You have taken a sacred vow to forswear material possessions. + +You gain bonuses to your Armor Class, ability scores, and saving throws, as well as bonus exalted feats, all depending on your character level. + +To fulfill your vow, you must not own or use any material possessions, with the following exceptions: You may carry and use ordinary (neither magic nor masterwork) simple weapons, usually just a quarterstaff that serves as a walking stick. You may wear simple clothes (usually just a homespun robe, possibly also including a hat and sandals) with no magical properties. You may carry and use a spell component pouch. You may not use any magic item of any sort, though you can benefit from magic items used on your behalf-you can drink a potion of cure serious wounds a friend gives you, receive a spell cast from a wand, scroll, or staff, or ride on your companion's ebony fly. You may not, however, "borrow" a cloak of resistance or any other magic item from a companion for even a single round, nor may you yourself cast a spell from a scroll, wand, or staff. + +FEAT FEATURES: + +Level +1: AC Armor +4 +3: AC Armor +5 +4: Weapon enhancement +1 +6: AC Armor +6 + AC Deflection +1 +7: All saving throws +1 + Ability score enhancement +2 +8: AC Natural +1 +9: AC Armor +7 +10: Weapon enhancement +2 + DR 5/- +11: Ability score enhancement +4/+2 +12: AC Armor +8 + AC Deflection +2 +13: All saving throws +2 + Energy (fire/cold/electric/sonic/acid) resistance 5 +14: Weapon enhancement +3 + Freedom of Movement +15: AC Armor +9 + Ability score enhancement +6/+4/+2 +16: AC Natural +2 +17: Weapon enhancement +4 + All saving throws +3 + Regeneration 1 +18: AC Armor +10 + AC Deflection +3 + True Seeing +19: Ability score enhancement +8/+6/+4/+2 + DR 10/- +20: Weapon enhancement +5 + Energy resistance 15 + +*This is based on Vow of Poverty 3.0, with the following variations: +- Can only be selected at Level 1 +- No Bonus exalted feat every 2 levels (we just have other 2, wouldn't make sense) +- No Endure elements, Sustenance, Mind shielding (would have little impact on NWN gameplay) +- No Sacred Vow as requirement (so a Level 1 from any race can get it and to partially offset the lack of Bonus exalted feat) +- The level progression continues the same during the Epic Levels + + Daring Warrior + Type of Feat: General +Prerequisite: Weapon Specialization, Grace +1 +Specifics: Your fighter and swashbuckler levels stack for the purpose of determining your competence bonus on Reflex saves from the grace class feature and the swashbuckler's dodge bonus to AC. For example, a 6th-level fighter/5th-level swashbuckler has grace +2 and gains a +2 dodge bonus to AC, as if she were an 11th-level swashbuckler. +Use: Automatic +Special: A fighter can select Daring Warrior as one of his fighter bonus feats + Charming the Arrow + Type of Feat: General +Prerequisite: Fey +Specifics: You may use your Charisma modifier instead of your Dexterity modifier on attack rolls when using a bow or crossbow. +Use: Automatic +Special: A fighter can select Charming the Arrow as one of his fighter bonus feats + Martial Stalker + Type of Feat: General +Prerequisite: Ki Power, Proficiency with all martial weapons +Specifics: Your fighter and ninja levels stack for the purpose of determining the size of your ki pool, as well as your AC bonus. For example, a 5th-level fighter/1st-level ninja with this feat could use his ki powers a number of times equal to 3 (one-half his ninja and fighter levels) + his Wisdom bonus (if any), and would have a +1 bonus to AC (as if he were a 6th-level ninja). +Use: Automatic +Special: A fighter can select Martial Stalker as one of his fighter bonus feats + Force Missiles + Evocation [Force] +Level: Sorcerer 4, Wizard 4, +Components: V, S, +Casting Time: 1 Standard Action +Range: Medium (100 ft. + 10 ft./level) +Target: Up to four creatures, no two of which are more than 30 ft. apart +Duration: Instantaneous +Saving Throw: None +Spell Resistance: Yes + +Sparking bolts of blue magic, like giant magic missiles, streak from your +outstretched hand to strike your foes and explode in sparkling bursts. + +You create powerful missiles of magical force, each of which darts from your +fingertips and unerringly strikes its target, dealing 2d6 points of damage. +The missile then explodes in a burst of force that deals half this amount of +damage to any creatures adjacent to the primary target. + +The missile strikes unerringly, even if the target is in melee or has anything +less than total cover or concealment. A caster cannot single out specific parts +of a creature. + +You gain one missile for every four caster levels. Extra missiles distribute +themsleves amongst your enemies evenly. + Force Missiles (8) + Force Missiles (12) + Chasing Perfection + Transmutation +Level: Cleric 6, Druid 6, Sorcerer 6, Wizard 6, +Components: V, S, M, +Casting Time: 1 standard action +Range: Touch +Target: Creature touched +Duration: 1 minute/level +Saving Throw: Will negates (harmless) +Spell Resistance: Yes (harmless) + +Energy courses through the creature touched. +Its muscles grow and become more defined, it starts to move with greater alacrity and grace, and its bearing increases. +The subject improves in all ways. +It gains a +4 enhancement bonus to each of its ability scores. + +Material Component: A statuette of a celestial or fiend worth 50 gp. + Chasing Perfection (12) + Chasing Perfection (16) + Regenerate Light Wounds + Conjuration (Healing) +Level: Cleric 1, Druid 1, +Components: V, S, +Casting Time: 1 action +Range: Touch +Target: Living creature touched +Duration: 10 rounds + 1 round/level +Saving Throw: Will negates (harmless) +Spell Resistance: Yes (harmless) + +With a touch of your hand, you boost the subject's life energy, granting him or her the fast healing ability for the duration of the spell. This healing applies only to damage sustained during the spell's duration, not to that from previous injuries. The subject heals 1 hit point per round of such damage until the spell ends and is automatically stabilized if he or she begins dying from hit point loss during that time. + +Regenerate light wounds does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple regenerate spells do not stack, only the highest-level effect applies. Applying a second regenerate spell of equal level extends the +first spell's duration by the full duration of the second spell. + Regenerate Light Wounds (3) + Regenerate Light Wounds (6) + Regenerate Light Wounds (9) + Regenerate Moderate Wounds + Conjuration (Healing) +Level: Cleric 2, Druid 2, +Components: V, S, +Casting Time: 1 action +Range: Touch +Target: Living creature touched +Duration: 10 rounds + 1 round/level +Saving Throw: Will negates (harmless) +Spell Resistance: Yes (harmless) + +With a touch of your hand, you boost the subject's life energy, granting him or her the fast healing ability for the duration of the spell. This healing applies only to damage sustained during the spell's duration, not to that from previous injuries. The subject heals 2 hit points per round of such damage until the spell ends and is automatically stabilized if he or she begins dying from hit point loss during that time. + +Regenerate moderate wounds does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple regenerate spells do not stack, only the highest-level effect applies. Applying a second regenerate spell of equal level extends the +first spell's duration by the full duration of the second spell. + Regenerate Moderate Wounds (3) + Regenerate Moderate Wounds (6) + Regenerate Moderate Wounds (9) + Regenerate Serious Wounds + Conjuration (Healing) +Level: Cleric 3, Druid 3, +Components: V, S, +Casting Time: 1 action +Range: Touch +Target: Living creature touched +Duration: 10 rounds + 1 round/level +Saving Throw: Will negates (harmless) +Spell Resistance: Yes (harmless) + +With a touch of your hand, you boost the subject's life energy, granting him or her the fast healing ability for the duration of the spell. This healing applies only to damage sustained during the spell's duration, not to that from previous injuries. The subject heals 3 hit points per round of such damage until the spell ends and is automatically stabilized if he or she begins dying from hit point loss during that time. + +Regenerate serious wounds does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple regenerate spells do not stack, only the highest-level effect applies. Applying a second regenerate spell of equal level extends the +first spell's duration by the full duration of the second spell. + Regenerate Serious Wounds (5) + Regenerate Serious Wounds (10) + Regenerate Serious Wounds (15) + Regenerate Critical Wounds + Conjuration (Healing) +Level: Cleric 4, Druid 4, +Components: V, S, +Casting Time: 1 action +Range: Touch +Target: Living creature touched +Duration: 10 rounds + 1 round/level +Saving Throw: Will negates (harmless) +Spell Resistance: Yes (harmless) + +With a touch of your hand, you boost the subject's life energy, granting him or her the fast healing ability for the duration of the spell. This healing applies only to damage sustained during the spell's duration, not to that from previous injuries. The subject heals 4 hit point per round of such damage until the spell ends and is automatically stabilized if he or she begins dying from hit point loss during that time. + +Regenerate critical wounds does not restore hit points lost from starvation, thirst, or suffocation, nor does it allow a creature to regrow or attach lost body parts. The effects of multiple regenerate spells do not stack, only the highest-level effect applies. Applying a second regenerate spell of equal level extends the +first spell's duration by the full duration of the second spell. + Regenerate Critical Wounds (7) + Regenerate Critical Wounds (12) + Regenerate Critical Wounds (15) + Speed of the Wind + Transmutation +Level: Druid 2, +Components: V, S, +Casting Time: 1 action +Range: Touch +Target: Living creature touched +Duration: 10 minutes/level +Saving Throw: Will negates +Spell Resistance: Yes + +With this spell, you can grant the ephemeral quickness of a sudden breeze. The subject gains a +4 enhancement bonus to Dexterity and a -2 enhancement penalty to Constitution. + Speed of the Wind (7) + Speed of the Wind (12) + Speed of the Wind (15) + Spirit Worm + Necromancy +Level: Sorcerer 1, Wizard 1, +Components: V, S, M, +Casting Time: 1 standard action +Range: Touch +Target: Living creature touched +Duration: 1 round/level, up to 5 rounds; see text +Saving Throw: Fortitude negates; see text +Spell Resistance: Yes + +You press the bit of blackened bone against your foe and intone the spell. The bone vanishes, leaving a mottled bruise where it touched. You create a lingering decay in the spirit and body of the target. If the target fails its saving throw, it takes 1 point of Constitution damage each round while the spell lasts (maximum 5 points). The victim can attempt a Fortitude saving throw each round, and success negates the Constitution damage for that round and ends the spell. + +Material Component: A piece of fire-blackened ivory or bone carved in the shape of a segmented worm. + Spirit Worm (5) + Spiritual Weapon + Evocation [Force] +Level: Cleric 2, Knight of the Chalice 2, War 2 +Components: V, S, DF, +Casting Time: 1 standard action +Range: Medium (100 ft. + 10 ft./level) +Effect: Magic weapon of force +Duration: 1 round/level (D) +Saving Throw: None +Spell Resistance: Yes + +A weapon made of pure force springs into existence and attacks opponents at a distance, as you direct it, dealing 1d8 force damage per hit, +1 point per three caster levels (maximum +5 at 15th level). The weapon takes the shape of a weapon favored by your deity or a weapon with some spiritual significance or symbolism to you (see below) and has the same threat range and critical multipliers as a real weapon of its form. It strikes the opponent you designate, starting with one attack in the round the spell is cast and continuing each round thereafter on your turn. It uses your base attack bonus (possibly allowing it multiple attacks per round in subsequent rounds) plus your Wisdom modifier as its attack bonus. It strikes as a spell, not as a weapon, so, for example, it can damage creatures that have damage reduction. As a force effect, it can strike incorporeal creatures without the normal miss chance associated with incorporeality. The weapon always strikes from your direction. It does not get a flanking bonus or help a combatant get one. Your feats (such as Weapon Focus) or combat actions (such as charge) do not affect the weapon. If the weapon goes beyond the spell range, if it goes out of your sight, or if you are not directing it, the weapon returns to you and hovers. + +Each round after the first, you can use a move action to redirect the weapon to a new target. If you do not, the weapon continues to attack the previous round's target. On any round that the weapon switches targets, it gets one attack. Subsequent rounds of attacking that target allow the weapon to make multiple attacks if your base attack bonus would allow it to. Even if the spiritual weapon is a ranged weapon, use the spell's range, not the weapon's normal range increment, and switching targets still is a move action. + +A spiritual weapon cannot be attacked or harmed by physical attacks, but dispel magic, disintegrate, a sphere of annihilation, or a rod of cancellation affects it. A spiritual weapon's AC against touch attacks is 12 (10 + size bonus for Tiny object). + +If an attacked creature has spell resistance, you make a caster level check (1d20 + caster level) against that spell resistance the first time the spiritual weapon strikes it. If the weapon is successfully resisted, the spell is dispelled. If not, the weapon has its normal full effect on that creature for the duration of the spell. + Spiritual Weapon (5) + Spiritual Weapon (10) + Spiritual Weapon (15) + Tortoise Shell + Transmutation +Level: Druid 6, +Components: V, S, DF, +Casting Time: 1 standard action +Range: Touch +Target: Living creature touched +Duration: 10 minutes/level +Saving Throw: None +Spell Resistance: Yes (harmless) + +In the blink of an eye, the creature you touched grows the armor plating of a tortoise across its torso and a tough, leathery skin elsewhere. Tortoise shell grants a +6 enhancement bonus to the subject's existing natural armor bonus. This enhancement bonus increases by 1 for every three caster levels beyond 11th, to a maximum of +9 at 20th level. + +The enhancement bonus provided by tortoise shell stacks with the target's natural armor bonus, but not with other enhancement bonuses to natural armor. A creature without natural armor has an effective natural armor of +0, much as a character wearing only normal clothing has an armor bonus of +0. + +Tortoise shell slows a creature's movement as if it were wearing heavy armor. An elf subject to tortoise shell, for example, would have a speed of 20 feet and could run only 60 feet per round. The spell affects only a creature's speed; tortoise shell doesn't carry an armor check penalty or an arcane spell failure chance. + Tortoise Shell (12) + Tortoise Shell (15) + Tortoise Shell (18) \ No newline at end of file diff --git a/_module/ifo/module.ifo.json b/_module/ifo/module.ifo.json index 137f5ac..4401f46 100644 --- a/_module/ifo/module.ifo.json +++ b/_module/ifo/module.ifo.json @@ -1346,7 +1346,7 @@ "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc8_cep269_mrg" + "value": "prc8_cep271_mrg" } }, { @@ -1486,7 +1486,7 @@ "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "cep2_top_2_69" + "value": "cep2_top_2_71" } }, { @@ -1620,7 +1620,7 @@ }, "Mod_MinGameVer": { "type": "cexostring", - "value": "1.88" + "value": "1.89" }, "Mod_MinPerHour": { "type": "byte", diff --git a/_module/ncs/69_client_exit.ncs b/_module/ncs/69_client_exit.ncs index a4f3d81..1e29941 100644 Binary files a/_module/ncs/69_client_exit.ncs and b/_module/ncs/69_client_exit.ncs differ diff --git a/_module/ncs/69_esc_conv.ncs b/_module/ncs/69_esc_conv.ncs index 42d5407..34abeec 100644 Binary files a/_module/ncs/69_esc_conv.ncs and b/_module/ncs/69_esc_conv.ncs differ diff --git a/_module/ncs/69_hen_combat.ncs b/_module/ncs/69_hen_combat.ncs index b20811e..34b0359 100644 Binary files a/_module/ncs/69_hen_combat.ncs and b/_module/ncs/69_hen_combat.ncs differ diff --git a/_module/ncs/69_hen_conv.ncs b/_module/ncs/69_hen_conv.ncs index a6f3911..de66614 100644 Binary files a/_module/ncs/69_hen_conv.ncs and b/_module/ncs/69_hen_conv.ncs differ diff --git a/_module/ncs/69_hen_death.ncs b/_module/ncs/69_hen_death.ncs index 6247c93..1941343 100644 Binary files a/_module/ncs/69_hen_death.ncs and b/_module/ncs/69_hen_death.ncs differ diff --git a/_module/ncs/69_hen_death_bu.ncs b/_module/ncs/69_hen_death_bu.ncs index b1df969..c42ff4c 100644 Binary files a/_module/ncs/69_hen_death_bu.ncs and b/_module/ncs/69_hen_death_bu.ncs differ diff --git a/_module/ncs/69_hen_percep.ncs b/_module/ncs/69_hen_percep.ncs index 5d56d80..0136bb8 100644 Binary files a/_module/ncs/69_hen_percep.ncs and b/_module/ncs/69_hen_percep.ncs differ diff --git a/_module/ncs/69_hench_crtrsmn.ncs b/_module/ncs/69_hench_crtrsmn.ncs index 8b0087c..ce5d0b7 100644 Binary files a/_module/ncs/69_hench_crtrsmn.ncs and b/_module/ncs/69_hench_crtrsmn.ncs differ diff --git a/_module/ncs/69_hench_destobj.ncs b/_module/ncs/69_hench_destobj.ncs index b57fd4f..ace583d 100644 Binary files a/_module/ncs/69_hench_destobj.ncs and b/_module/ncs/69_hench_destobj.ncs differ diff --git a/_module/ncs/69_hench_eqmelee.ncs b/_module/ncs/69_hench_eqmelee.ncs index 19de258..ac1d951 100644 Binary files a/_module/ncs/69_hench_eqmelee.ncs and b/_module/ncs/69_hench_eqmelee.ncs differ diff --git a/_module/ncs/69_hench_eqswap.ncs b/_module/ncs/69_hench_eqswap.ncs index 0a8d201..2888022 100644 Binary files a/_module/ncs/69_hench_eqswap.ncs and b/_module/ncs/69_hench_eqswap.ncs differ diff --git a/_module/ncs/69_hench_fire.ncs b/_module/ncs/69_hench_fire.ncs index 41c39fa..1d47d7a 100644 Binary files a/_module/ncs/69_hench_fire.ncs and b/_module/ncs/69_hench_fire.ncs differ diff --git a/_module/ncs/69_hench_gomelee.ncs b/_module/ncs/69_hench_gomelee.ncs index de53e93..c6edfca 100644 Binary files a/_module/ncs/69_hench_gomelee.ncs and b/_module/ncs/69_hench_gomelee.ncs differ diff --git a/_module/ncs/69_hench_heall.ncs b/_module/ncs/69_hench_heall.ncs index ff2b905..2477db1 100644 Binary files a/_module/ncs/69_hench_heall.ncs and b/_module/ncs/69_hench_heall.ncs differ diff --git a/_module/ncs/69_hench_hire.ncs b/_module/ncs/69_hench_hire.ncs index 6d995ea..90691f0 100644 Binary files a/_module/ncs/69_hench_hire.ncs and b/_module/ncs/69_hench_hire.ncs differ diff --git a/_module/ncs/69_hench_pickup.ncs b/_module/ncs/69_hench_pickup.ncs index a57a271..e34bde0 100644 Binary files a/_module/ncs/69_hench_pickup.ncs and b/_module/ncs/69_hench_pickup.ncs differ diff --git a/_module/ncs/69_hench_quit.ncs b/_module/ncs/69_hench_quit.ncs index b8ce7c7..51e275d 100644 Binary files a/_module/ncs/69_hench_quit.ncs and b/_module/ncs/69_hench_quit.ncs differ diff --git a/_module/ncs/69_hench_scout1.ncs b/_module/ncs/69_hench_scout1.ncs index ae39c9d..ec27b38 100644 Binary files a/_module/ncs/69_hench_scout1.ncs and b/_module/ncs/69_hench_scout1.ncs differ diff --git a/_module/ncs/69_hench_scout2.ncs b/_module/ncs/69_hench_scout2.ncs index f45b2cf..07b75d8 100644 Binary files a/_module/ncs/69_hench_scout2.ncs and b/_module/ncs/69_hench_scout2.ncs differ diff --git a/_module/ncs/69_hench_switch.ncs b/_module/ncs/69_hench_switch.ncs index 16aaacb..0f076e1 100644 Binary files a/_module/ncs/69_hench_switch.ncs and b/_module/ncs/69_hench_switch.ncs differ diff --git a/_module/ncs/69_henchrt_enter.ncs b/_module/ncs/69_henchrt_enter.ncs index 07fb2fc..7aa8800 100644 Binary files a/_module/ncs/69_henchrt_enter.ncs and b/_module/ncs/69_henchrt_enter.ncs differ diff --git a/_module/ncs/69_henchstr_exit.ncs b/_module/ncs/69_henchstr_exit.ncs index 125d8e7..7401be7 100644 Binary files a/_module/ncs/69_henchstr_exit.ncs and b/_module/ncs/69_henchstr_exit.ncs differ diff --git a/_module/ncs/69_henchtrans.ncs b/_module/ncs/69_henchtrans.ncs index 6457d19..d9cfc52 100644 Binary files a/_module/ncs/69_henchtrans.ncs and b/_module/ncs/69_henchtrans.ncs differ diff --git a/_module/ncs/69_o0_death.ncs b/_module/ncs/69_o0_death.ncs index ba64a20..7fbb246 100644 Binary files a/_module/ncs/69_o0_death.ncs and b/_module/ncs/69_o0_death.ncs differ diff --git a/_module/ncs/69_o0_dying.ncs b/_module/ncs/69_o0_dying.ncs index d59435b..6fdadef 100644 Binary files a/_module/ncs/69_o0_dying.ncs and b/_module/ncs/69_o0_dying.ncs differ diff --git a/_module/ncs/adv_attack.ncs b/_module/ncs/adv_attack.ncs index f76e295..753c212 100644 Binary files a/_module/ncs/adv_attack.ncs and b/_module/ncs/adv_attack.ncs differ diff --git a/_module/ncs/adv_duel.ncs b/_module/ncs/adv_duel.ncs index 59f44ae..91933fd 100644 Binary files a/_module/ncs/adv_duel.ncs and b/_module/ncs/adv_duel.ncs differ diff --git a/_module/ncs/adv_heartbeat.ncs b/_module/ncs/adv_heartbeat.ncs index dab0e27..afdd52a 100644 Binary files a/_module/ncs/adv_heartbeat.ncs and b/_module/ncs/adv_heartbeat.ncs differ diff --git a/_module/ncs/adv_ondamage.ncs b/_module/ncs/adv_ondamage.ncs index 2f85fd4..63acaec 100644 Binary files a/_module/ncs/adv_ondamage.ncs and b/_module/ncs/adv_ondamage.ncs differ diff --git a/_module/ncs/adv_ondeath.ncs b/_module/ncs/adv_ondeath.ncs index 0897929..8775bce 100644 Binary files a/_module/ncs/adv_ondeath.ncs and b/_module/ncs/adv_ondeath.ncs differ diff --git a/_module/ncs/alverton_ent_inv.ncs b/_module/ncs/alverton_ent_inv.ncs index 6bd38dc..c750484 100644 Binary files a/_module/ncs/alverton_ent_inv.ncs and b/_module/ncs/alverton_ent_inv.ncs differ diff --git a/_module/ncs/alverton_onenter.ncs b/_module/ncs/alverton_onenter.ncs index 548d794..94b697e 100644 Binary files a/_module/ncs/alverton_onenter.ncs and b/_module/ncs/alverton_onenter.ncs differ diff --git a/_module/ncs/ambush_onenter.ncs b/_module/ncs/ambush_onenter.ncs index f45741e..4193eea 100644 Binary files a/_module/ncs/ambush_onenter.ncs and b/_module/ncs/ambush_onenter.ncs differ diff --git a/_module/ncs/anc_client_enter.ncs b/_module/ncs/anc_client_enter.ncs index 89a3003..b0780c1 100644 Binary files a/_module/ncs/anc_client_enter.ncs and b/_module/ncs/anc_client_enter.ncs differ diff --git a/_module/ncs/anc_com_death.ncs b/_module/ncs/anc_com_death.ncs index 6bc76b9..3d46be1 100644 Binary files a/_module/ncs/anc_com_death.ncs and b/_module/ncs/anc_com_death.ncs differ diff --git a/_module/ncs/anc_com_spawn.ncs b/_module/ncs/anc_com_spawn.ncs index 8dbdabd..aa6cea7 100644 Binary files a/_module/ncs/anc_com_spawn.ncs and b/_module/ncs/anc_com_spawn.ncs differ diff --git a/_module/ncs/anc_minogonprop.ncs b/_module/ncs/anc_minogonprop.ncs index 63c2cba..554bfc4 100644 Binary files a/_module/ncs/anc_minogonprop.ncs and b/_module/ncs/anc_minogonprop.ncs differ diff --git a/_module/ncs/anc_mod_death.ncs b/_module/ncs/anc_mod_death.ncs index 15e7491..442bb61 100644 Binary files a/_module/ncs/anc_mod_death.ncs and b/_module/ncs/anc_mod_death.ncs differ diff --git a/_module/ncs/anc_mod_exit.ncs b/_module/ncs/anc_mod_exit.ncs index 570cde0..397fed3 100644 Binary files a/_module/ncs/anc_mod_exit.ncs and b/_module/ncs/anc_mod_exit.ncs differ diff --git a/_module/ncs/anc_mod_resp.ncs b/_module/ncs/anc_mod_resp.ncs index a0fca36..a679b41 100644 Binary files a/_module/ncs/anc_mod_resp.ncs and b/_module/ncs/anc_mod_resp.ncs differ diff --git a/_module/ncs/anc_phoenix_expl.ncs b/_module/ncs/anc_phoenix_expl.ncs index d097ed2..f4ee431 100644 Binary files a/_module/ncs/anc_phoenix_expl.ncs and b/_module/ncs/anc_phoenix_expl.ncs differ diff --git a/_module/ncs/anc_rest.ncs b/_module/ncs/anc_rest.ncs index 87faf2f..ace5d7b 100644 Binary files a/_module/ncs/anc_rest.ncs and b/_module/ncs/anc_rest.ncs differ diff --git a/_module/ncs/anc_watlorhit.ncs b/_module/ncs/anc_watlorhit.ncs index 9c0b60e..aed920d 100644 Binary files a/_module/ncs/anc_watlorhit.ncs and b/_module/ncs/anc_watlorhit.ncs differ diff --git a/_module/ncs/archerytarget.ncs b/_module/ncs/archerytarget.ncs index a62de73..74bcb36 100644 Binary files a/_module/ncs/archerytarget.ncs and b/_module/ncs/archerytarget.ncs differ diff --git a/_module/ncs/at_reg01_v1__001.ncs b/_module/ncs/at_reg01_v1__001.ncs index 71a4883..19196a5 100644 Binary files a/_module/ncs/at_reg01_v1__001.ncs and b/_module/ncs/at_reg01_v1__001.ncs differ diff --git a/_module/ncs/at_reg01_v1b_001.ncs b/_module/ncs/at_reg01_v1b_001.ncs index 71a4883..19196a5 100644 Binary files a/_module/ncs/at_reg01_v1b_001.ncs and b/_module/ncs/at_reg01_v1b_001.ncs differ diff --git a/_module/ncs/at_reg01_v2__001.ncs b/_module/ncs/at_reg01_v2__001.ncs index 71a4883..19196a5 100644 Binary files a/_module/ncs/at_reg01_v2__001.ncs and b/_module/ncs/at_reg01_v2__001.ncs differ diff --git a/_module/ncs/at_reg01_v2b_001.ncs b/_module/ncs/at_reg01_v2b_001.ncs index 71a4883..19196a5 100644 Binary files a/_module/ncs/at_reg01_v2b_001.ncs and b/_module/ncs/at_reg01_v2b_001.ncs differ diff --git a/_module/ncs/at_reg01_v3__001.ncs b/_module/ncs/at_reg01_v3__001.ncs index 71a4883..19196a5 100644 Binary files a/_module/ncs/at_reg01_v3__001.ncs and b/_module/ncs/at_reg01_v3__001.ncs differ diff --git a/_module/ncs/at_reg01_v3b_001.ncs b/_module/ncs/at_reg01_v3b_001.ncs index 71a4883..19196a5 100644 Binary files a/_module/ncs/at_reg01_v3b_001.ncs and b/_module/ncs/at_reg01_v3b_001.ncs differ diff --git a/_module/ncs/bartend_basstout.ncs b/_module/ncs/bartend_basstout.ncs index cb66ced..4d505c2 100644 Binary files a/_module/ncs/bartend_basstout.ncs and b/_module/ncs/bartend_basstout.ncs differ diff --git a/_module/ncs/bartend_btbrandy.ncs b/_module/ncs/bartend_btbrandy.ncs index e667989..d17ff22 100644 Binary files a/_module/ncs/bartend_btbrandy.ncs and b/_module/ncs/bartend_btbrandy.ncs differ diff --git a/_module/ncs/bartend_ddwhisky.ncs b/_module/ncs/bartend_ddwhisky.ncs index e40e0eb..c18ddfa 100644 Binary files a/_module/ncs/bartend_ddwhisky.ncs and b/_module/ncs/bartend_ddwhisky.ncs differ diff --git a/_module/ncs/bartend_moonshin.ncs b/_module/ncs/bartend_moonshin.ncs index 09c5f58..65e2e4a 100644 Binary files a/_module/ncs/bartend_moonshin.ncs and b/_module/ncs/bartend_moonshin.ncs differ diff --git a/_module/ncs/birdbath_hb.ncs b/_module/ncs/birdbath_hb.ncs index 0076b17..0a63ed6 100644 Binary files a/_module/ncs/birdbath_hb.ncs and b/_module/ncs/birdbath_hb.ncs differ diff --git a/_module/ncs/bjdlrattacked.ncs b/_module/ncs/bjdlrattacked.ncs index 9bdf5b7..ad3726f 100644 Binary files a/_module/ncs/bjdlrattacked.ncs and b/_module/ncs/bjdlrattacked.ncs differ diff --git a/_module/ncs/bjdlrspawn.ncs b/_module/ncs/bjdlrspawn.ncs index d9856ba..b3c8a19 100644 Binary files a/_module/ncs/bjdlrspawn.ncs and b/_module/ncs/bjdlrspawn.ncs differ diff --git a/_module/ncs/bjeventhndlr.ncs b/_module/ncs/bjeventhndlr.ncs index f2ee8db..99cf684 100644 Binary files a/_module/ncs/bjeventhndlr.ncs and b/_module/ncs/bjeventhndlr.ncs differ diff --git a/_module/ncs/bjreset.ncs b/_module/ncs/bjreset.ncs index c4d0fdf..ed68fa9 100644 Binary files a/_module/ncs/bjreset.ncs and b/_module/ncs/bjreset.ncs differ diff --git a/_module/ncs/client_walkaway.ncs b/_module/ncs/client_walkaway.ncs index 4f5c61e..36cc863 100644 Binary files a/_module/ncs/client_walkaway.ncs and b/_module/ncs/client_walkaway.ncs differ diff --git a/_module/ncs/close_door.ncs b/_module/ncs/close_door.ncs index 4d2f212..1134586 100644 Binary files a/_module/ncs/close_door.ncs and b/_module/ncs/close_door.ncs differ diff --git a/_module/ncs/close_door_hb.ncs b/_module/ncs/close_door_hb.ncs index 22dbcf1..1ec0a08 100644 Binary files a/_module/ncs/close_door_hb.ncs and b/_module/ncs/close_door_hb.ncs differ diff --git a/_module/ncs/closing_door.ncs b/_module/ncs/closing_door.ncs index 2974738..85d0524 100644 Binary files a/_module/ncs/closing_door.ncs and b/_module/ncs/closing_door.ncs differ diff --git a/_module/ncs/dun_mageb_percep.ncs b/_module/ncs/dun_mageb_percep.ncs index bf20fb2..05b3703 100644 Binary files a/_module/ncs/dun_mageb_percep.ncs and b/_module/ncs/dun_mageb_percep.ncs differ diff --git a/_module/ncs/dung_onenter.ncs b/_module/ncs/dung_onenter.ncs index 03d0b41..f339b2d 100644 Binary files a/_module/ncs/dung_onenter.ncs and b/_module/ncs/dung_onenter.ncs differ diff --git a/_module/ncs/eq_nw_it_torch00.ncs b/_module/ncs/eq_nw_it_torch00.ncs index 4bf2358..6b35892 100644 Binary files a/_module/ncs/eq_nw_it_torch00.ncs and b/_module/ncs/eq_nw_it_torch00.ncs differ diff --git a/_module/ncs/execute_onenter.ncs b/_module/ncs/execute_onenter.ncs index 054de92..0f171cd 100644 Binary files a/_module/ncs/execute_onenter.ncs and b/_module/ncs/execute_onenter.ncs differ diff --git a/_module/ncs/explo_back.ncs b/_module/ncs/explo_back.ncs index 9e817a7..be1750e 100644 Binary files a/_module/ncs/explo_back.ncs and b/_module/ncs/explo_back.ncs differ diff --git a/_module/ncs/explo_bacvillage.ncs b/_module/ncs/explo_bacvillage.ncs index 6d1dd43..a6a7985 100644 Binary files a/_module/ncs/explo_bacvillage.ncs and b/_module/ncs/explo_bacvillage.ncs differ diff --git a/_module/ncs/explo_donenter.ncs b/_module/ncs/explo_donenter.ncs index 951c49a..1cf0152 100644 Binary files a/_module/ncs/explo_donenter.ncs and b/_module/ncs/explo_donenter.ncs differ diff --git a/_module/ncs/explo_donexit.ncs b/_module/ncs/explo_donexit.ncs index efa10b8..2c1a843 100644 Binary files a/_module/ncs/explo_donexit.ncs and b/_module/ncs/explo_donexit.ncs differ diff --git a/_module/ncs/explo_further.ncs b/_module/ncs/explo_further.ncs index 9215645..a9a9c04 100644 Binary files a/_module/ncs/explo_further.ncs and b/_module/ncs/explo_further.ncs differ diff --git a/_module/ncs/explo_furvillage.ncs b/_module/ncs/explo_furvillage.ncs index 0debacf..bdd88aa 100644 Binary files a/_module/ncs/explo_furvillage.ncs and b/_module/ncs/explo_furvillage.ncs differ diff --git a/_module/ncs/explo_godungeon.ncs b/_module/ncs/explo_godungeon.ncs index f96ccbf..1cd7814 100644 Binary files a/_module/ncs/explo_godungeon.ncs and b/_module/ncs/explo_godungeon.ncs differ diff --git a/_module/ncs/explo_goquest.ncs b/_module/ncs/explo_goquest.ncs index 177c1df..a0c4876 100644 Binary files a/_module/ncs/explo_goquest.ncs and b/_module/ncs/explo_goquest.ncs differ diff --git a/_module/ncs/explo_milestoken.ncs b/_module/ncs/explo_milestoken.ncs index 7e28fb0..2fae2e1 100644 Binary files a/_module/ncs/explo_milestoken.ncs and b/_module/ncs/explo_milestoken.ncs differ diff --git a/_module/ncs/explo_onenter.ncs b/_module/ncs/explo_onenter.ncs index 0eacd5c..a57e3ae 100644 Binary files a/_module/ncs/explo_onenter.ncs and b/_module/ncs/explo_onenter.ncs differ diff --git a/_module/ncs/explo_qonenter.ncs b/_module/ncs/explo_qonenter.ncs index 6f9b331..52ad121 100644 Binary files a/_module/ncs/explo_qonenter.ncs and b/_module/ncs/explo_qonenter.ncs differ diff --git a/_module/ncs/explo_start.ncs b/_module/ncs/explo_start.ncs index d75eda0..8bec86a 100644 Binary files a/_module/ncs/explo_start.ncs and b/_module/ncs/explo_start.ncs differ diff --git a/_module/ncs/explo_vilonenter.ncs b/_module/ncs/explo_vilonenter.ncs index c39f51f..e666910 100644 Binary files a/_module/ncs/explo_vilonenter.ncs and b/_module/ncs/explo_vilonenter.ncs differ diff --git a/_module/ncs/fishrod.ncs b/_module/ncs/fishrod.ncs index a54cc1e..6930dd7 100644 Binary files a/_module/ncs/fishrod.ncs and b/_module/ncs/fishrod.ncs differ diff --git a/_module/ncs/generic_pcnvf_ou.ncs b/_module/ncs/generic_pcnvf_ou.ncs index a473001..bbd9d2c 100644 Binary files a/_module/ncs/generic_pcnvf_ou.ncs and b/_module/ncs/generic_pcnvf_ou.ncs differ diff --git a/_module/ncs/gh_doc_onconv.ncs b/_module/ncs/gh_doc_onconv.ncs index 9ed50ac..1be44dd 100644 Binary files a/_module/ncs/gh_doc_onconv.ncs and b/_module/ncs/gh_doc_onconv.ncs differ diff --git a/_module/ncs/gh_doc_onspawn.ncs b/_module/ncs/gh_doc_onspawn.ncs index 055127e..bc84c5d 100644 Binary files a/_module/ncs/gh_doc_onspawn.ncs and b/_module/ncs/gh_doc_onspawn.ncs differ diff --git a/_module/ncs/gh_poker_cancel.ncs b/_module/ncs/gh_poker_cancel.ncs index 80779a2..5d2dc85 100644 Binary files a/_module/ncs/gh_poker_cancel.ncs and b/_module/ncs/gh_poker_cancel.ncs differ diff --git a/_module/ncs/gh_poker_sit.ncs b/_module/ncs/gh_poker_sit.ncs index 4bebbcf..8b2145d 100644 Binary files a/_module/ncs/gh_poker_sit.ncs and b/_module/ncs/gh_poker_sit.ncs differ diff --git a/_module/ncs/gtree_hatch.ncs b/_module/ncs/gtree_hatch.ncs index 0b1e967..0ec74d5 100644 Binary files a/_module/ncs/gtree_hatch.ncs and b/_module/ncs/gtree_hatch.ncs differ diff --git a/_module/ncs/gtree_npc_spawn.ncs b/_module/ncs/gtree_npc_spawn.ncs index 2bfa0e2..1ad9a44 100644 Binary files a/_module/ncs/gtree_npc_spawn.ncs and b/_module/ncs/gtree_npc_spawn.ncs differ diff --git a/_module/ncs/gtreew_hb.ncs b/_module/ncs/gtreew_hb.ncs index 15a20a2..26d99f3 100644 Binary files a/_module/ncs/gtreew_hb.ncs and b/_module/ncs/gtreew_hb.ncs differ diff --git a/_module/ncs/gz_healer_spawn.ncs b/_module/ncs/gz_healer_spawn.ncs index 1e04737..549c75b 100644 Binary files a/_module/ncs/gz_healer_spawn.ncs and b/_module/ncs/gz_healer_spawn.ncs differ diff --git a/_module/ncs/hench_o0_act.ncs b/_module/ncs/hench_o0_act.ncs index e07e6d2..9f4cb57 100644 Binary files a/_module/ncs/hench_o0_act.ncs and b/_module/ncs/hench_o0_act.ncs differ diff --git a/_module/ncs/hench_o0_ai.ncs b/_module/ncs/hench_o0_ai.ncs index 8a77ab1..94a9c55 100644 Binary files a/_module/ncs/hench_o0_ai.ncs and b/_module/ncs/hench_o0_ai.ncs differ diff --git a/_module/ncs/hench_o0_enhanc.ncs b/_module/ncs/hench_o0_enhanc.ncs index 31d5beb..e1d34db 100644 Binary files a/_module/ncs/hench_o0_enhanc.ncs and b/_module/ncs/hench_o0_enhanc.ncs differ diff --git a/_module/ncs/hench_o0_equip.ncs b/_module/ncs/hench_o0_equip.ncs index 05cff34..94d568a 100644 Binary files a/_module/ncs/hench_o0_equip.ncs and b/_module/ncs/hench_o0_equip.ncs differ diff --git a/_module/ncs/hench_o0_heal.ncs b/_module/ncs/hench_o0_heal.ncs index 7858428..24e787a 100644 Binary files a/_module/ncs/hench_o0_heal.ncs and b/_module/ncs/hench_o0_heal.ncs differ diff --git a/_module/ncs/hench_quit.ncs b/_module/ncs/hench_quit.ncs index 0acd7be..ba23e04 100644 Binary files a/_module/ncs/hench_quit.ncs and b/_module/ncs/hench_quit.ncs differ diff --git a/_module/ncs/hench_retrieve.ncs b/_module/ncs/hench_retrieve.ncs index 847548e..fc9d5fd 100644 Binary files a/_module/ncs/hench_retrieve.ncs and b/_module/ncs/hench_retrieve.ncs differ diff --git a/_module/ncs/hench_saveandgo.ncs b/_module/ncs/hench_saveandgo.ncs index 1c481f6..f06ed65 100644 Binary files a/_module/ncs/hench_saveandgo.ncs and b/_module/ncs/hench_saveandgo.ncs differ diff --git a/_module/ncs/henchheal.ncs b/_module/ncs/henchheal.ncs index fe89643..1544e93 100644 Binary files a/_module/ncs/henchheal.ncs and b/_module/ncs/henchheal.ncs differ diff --git a/_module/ncs/henchhealall.ncs b/_module/ncs/henchhealall.ncs index 6b76da1..3ffa9f0 100644 Binary files a/_module/ncs/henchhealall.ncs and b/_module/ncs/henchhealall.ncs differ diff --git a/_module/ncs/henchhealself.ncs b/_module/ncs/henchhealself.ncs index e66bf2f..a3cebd2 100644 Binary files a/_module/ncs/henchhealself.ncs and b/_module/ncs/henchhealself.ncs differ diff --git a/_module/ncs/henchman_spawn.ncs b/_module/ncs/henchman_spawn.ncs index 0ce7369..4495bfe 100644 Binary files a/_module/ncs/henchman_spawn.ncs and b/_module/ncs/henchman_spawn.ncs differ diff --git a/_module/ncs/henchmanmng_arm.ncs b/_module/ncs/henchmanmng_arm.ncs index 7391e01..851b546 100644 Binary files a/_module/ncs/henchmanmng_arm.ncs and b/_module/ncs/henchmanmng_arm.ncs differ diff --git a/_module/ncs/henchmanmng_else.ncs b/_module/ncs/henchmanmng_else.ncs index 1d7c6a3..0ffa8a4 100644 Binary files a/_module/ncs/henchmanmng_else.ncs and b/_module/ncs/henchmanmng_else.ncs differ diff --git a/_module/ncs/henchscout.ncs b/_module/ncs/henchscout.ncs index f507b00..b87f0a3 100644 Binary files a/_module/ncs/henchscout.ncs and b/_module/ncs/henchscout.ncs differ diff --git a/_module/ncs/horse_dlgmount.ncs b/_module/ncs/horse_dlgmount.ncs index 4b2e1db..ea4dadf 100644 Binary files a/_module/ncs/horse_dlgmount.ncs and b/_module/ncs/horse_dlgmount.ncs differ diff --git a/_module/ncs/house_door_ftp.ncs b/_module/ncs/house_door_ftp.ncs index 08f9440..04ce556 100644 Binary files a/_module/ncs/house_door_ftp.ncs and b/_module/ncs/house_door_ftp.ncs differ diff --git a/_module/ncs/house_dosell.ncs b/_module/ncs/house_dosell.ncs index 250127a..de3d4a0 100644 Binary files a/_module/ncs/house_dosell.ncs and b/_module/ncs/house_dosell.ncs differ diff --git a/_module/ncs/house_fohen_sell.ncs b/_module/ncs/house_fohen_sell.ncs index 5bab8bc..330e995 100644 Binary files a/_module/ncs/house_fohen_sell.ncs and b/_module/ncs/house_fohen_sell.ncs differ diff --git a/_module/ncs/house_onenter.ncs b/_module/ncs/house_onenter.ncs index bad4075..729f495 100644 Binary files a/_module/ncs/house_onenter.ncs and b/_module/ncs/house_onenter.ncs differ diff --git a/_module/ncs/house_onenter_k.ncs b/_module/ncs/house_onenter_k.ncs index 0a3857e..df92f2d 100644 Binary files a/_module/ncs/house_onenter_k.ncs and b/_module/ncs/house_onenter_k.ncs differ diff --git a/_module/ncs/house_putsale.ncs b/_module/ncs/house_putsale.ncs index 5907c60..52fc026 100644 Binary files a/_module/ncs/house_putsale.ncs and b/_module/ncs/house_putsale.ncs differ diff --git a/_module/ncs/invasion_area_hb.ncs b/_module/ncs/invasion_area_hb.ncs index 9a2f08a..361ddb8 100644 Binary files a/_module/ncs/invasion_area_hb.ncs and b/_module/ncs/invasion_area_hb.ncs differ diff --git a/_module/ncs/kpb_bank_conv.ncs b/_module/ncs/kpb_bank_conv.ncs index 53dd76d..aeb02c6 100644 Binary files a/_module/ncs/kpb_bank_conv.ncs and b/_module/ncs/kpb_bank_conv.ncs differ diff --git a/_module/ncs/kpb_banker_spawn.ncs b/_module/ncs/kpb_banker_spawn.ncs index c732145..44168a4 100644 Binary files a/_module/ncs/kpb_banker_spawn.ncs and b/_module/ncs/kpb_banker_spawn.ncs differ diff --git a/_module/ncs/makeenemy.ncs b/_module/ncs/makeenemy.ncs index bd843be..24fb8a8 100644 Binary files a/_module/ncs/makeenemy.ncs and b/_module/ncs/makeenemy.ncs differ diff --git a/_module/ncs/mb_c2_default4.ncs b/_module/ncs/mb_c2_default4.ncs index 386c85d..55107ef 100644 Binary files a/_module/ncs/mb_c2_default4.ncs and b/_module/ncs/mb_c2_default4.ncs differ diff --git a/_module/ncs/mb_start_posting.ncs b/_module/ncs/mb_start_posting.ncs index 62c6524..388d073 100644 Binary files a/_module/ncs/mb_start_posting.ncs and b/_module/ncs/mb_start_posting.ncs differ diff --git a/_module/ncs/mb_start_title.ncs b/_module/ncs/mb_start_title.ncs index 716b333..d6c06f1 100644 Binary files a/_module/ncs/mb_start_title.ncs and b/_module/ncs/mb_start_title.ncs differ diff --git a/_module/ncs/npc_joust.ncs b/_module/ncs/npc_joust.ncs index 56a4949..92fcead 100644 Binary files a/_module/ncs/npc_joust.ncs and b/_module/ncs/npc_joust.ncs differ diff --git a/_module/ncs/nw_c2_bossdie.ncs b/_module/ncs/nw_c2_bossdie.ncs index 2e198a4..ec5a325 100644 Binary files a/_module/ncs/nw_c2_bossdie.ncs and b/_module/ncs/nw_c2_bossdie.ncs differ diff --git a/_module/ncs/nw_c2_bossspawn.ncs b/_module/ncs/nw_c2_bossspawn.ncs index 9ed5af0..7330f43 100644 Binary files a/_module/ncs/nw_c2_bossspawn.ncs and b/_module/ncs/nw_c2_bossspawn.ncs differ diff --git a/_module/ncs/nw_c2_default1.ncs b/_module/ncs/nw_c2_default1.ncs index 87b22c4..a0f2b8a 100644 Binary files a/_module/ncs/nw_c2_default1.ncs and b/_module/ncs/nw_c2_default1.ncs differ diff --git a/_module/ncs/nw_c2_default1_c.ncs b/_module/ncs/nw_c2_default1_c.ncs index 06e88d7..9adaf44 100644 Binary files a/_module/ncs/nw_c2_default1_c.ncs and b/_module/ncs/nw_c2_default1_c.ncs differ diff --git a/_module/ncs/nw_c2_default1_v.ncs b/_module/ncs/nw_c2_default1_v.ncs index f17cb88..fe7f155 100644 Binary files a/_module/ncs/nw_c2_default1_v.ncs and b/_module/ncs/nw_c2_default1_v.ncs differ diff --git a/_module/ncs/nw_c2_default2.ncs b/_module/ncs/nw_c2_default2.ncs index 52ae9c8..ee35e34 100644 Binary files a/_module/ncs/nw_c2_default2.ncs and b/_module/ncs/nw_c2_default2.ncs differ diff --git a/_module/ncs/nw_c2_default2_c.ncs b/_module/ncs/nw_c2_default2_c.ncs index 694d927..499169b 100644 Binary files a/_module/ncs/nw_c2_default2_c.ncs and b/_module/ncs/nw_c2_default2_c.ncs differ diff --git a/_module/ncs/nw_c2_default2_v.ncs b/_module/ncs/nw_c2_default2_v.ncs index cec42c0..44a3b9f 100644 Binary files a/_module/ncs/nw_c2_default2_v.ncs and b/_module/ncs/nw_c2_default2_v.ncs differ diff --git a/_module/ncs/nw_c2_default3.ncs b/_module/ncs/nw_c2_default3.ncs index a50aaba..313ffde 100644 Binary files a/_module/ncs/nw_c2_default3.ncs and b/_module/ncs/nw_c2_default3.ncs differ diff --git a/_module/ncs/nw_c2_default3_c.ncs b/_module/ncs/nw_c2_default3_c.ncs index eeaf5bb..43e1a44 100644 Binary files a/_module/ncs/nw_c2_default3_c.ncs and b/_module/ncs/nw_c2_default3_c.ncs differ diff --git a/_module/ncs/nw_c2_default3_v.ncs b/_module/ncs/nw_c2_default3_v.ncs index 7ca7b5c..7018f09 100644 Binary files a/_module/ncs/nw_c2_default3_v.ncs and b/_module/ncs/nw_c2_default3_v.ncs differ diff --git a/_module/ncs/nw_c2_default4.ncs b/_module/ncs/nw_c2_default4.ncs index a70b41d..80a98d8 100644 Binary files a/_module/ncs/nw_c2_default4.ncs and b/_module/ncs/nw_c2_default4.ncs differ diff --git a/_module/ncs/nw_c2_default4_c.ncs b/_module/ncs/nw_c2_default4_c.ncs index 20ecc34..6da2a54 100644 Binary files a/_module/ncs/nw_c2_default4_c.ncs and b/_module/ncs/nw_c2_default4_c.ncs differ diff --git a/_module/ncs/nw_c2_default4_v.ncs b/_module/ncs/nw_c2_default4_v.ncs index 7d2172f..0e78ffb 100644 Binary files a/_module/ncs/nw_c2_default4_v.ncs and b/_module/ncs/nw_c2_default4_v.ncs differ diff --git a/_module/ncs/nw_c2_default5.ncs b/_module/ncs/nw_c2_default5.ncs index 1156635..fbf6c94 100644 Binary files a/_module/ncs/nw_c2_default5.ncs and b/_module/ncs/nw_c2_default5.ncs differ diff --git a/_module/ncs/nw_c2_default5_c.ncs b/_module/ncs/nw_c2_default5_c.ncs index 720f759..d4eea02 100644 Binary files a/_module/ncs/nw_c2_default5_c.ncs and b/_module/ncs/nw_c2_default5_c.ncs differ diff --git a/_module/ncs/nw_c2_default5_v.ncs b/_module/ncs/nw_c2_default5_v.ncs index 700469d..76935f5 100644 Binary files a/_module/ncs/nw_c2_default5_v.ncs and b/_module/ncs/nw_c2_default5_v.ncs differ diff --git a/_module/ncs/nw_c2_default6.ncs b/_module/ncs/nw_c2_default6.ncs index 19c4105..484b95a 100644 Binary files a/_module/ncs/nw_c2_default6.ncs and b/_module/ncs/nw_c2_default6.ncs differ diff --git a/_module/ncs/nw_c2_default6_c.ncs b/_module/ncs/nw_c2_default6_c.ncs index ab36d43..967d85f 100644 Binary files a/_module/ncs/nw_c2_default6_c.ncs and b/_module/ncs/nw_c2_default6_c.ncs differ diff --git a/_module/ncs/nw_c2_default6_v.ncs b/_module/ncs/nw_c2_default6_v.ncs index 3971e9e..dbde41a 100644 Binary files a/_module/ncs/nw_c2_default6_v.ncs and b/_module/ncs/nw_c2_default6_v.ncs differ diff --git a/_module/ncs/nw_c2_default8.ncs b/_module/ncs/nw_c2_default8.ncs index a8410b7..d2b4202 100644 Binary files a/_module/ncs/nw_c2_default8.ncs and b/_module/ncs/nw_c2_default8.ncs differ diff --git a/_module/ncs/nw_c2_default8_c.ncs b/_module/ncs/nw_c2_default8_c.ncs index dd6ddea..a8f7e0a 100644 Binary files a/_module/ncs/nw_c2_default8_c.ncs and b/_module/ncs/nw_c2_default8_c.ncs differ diff --git a/_module/ncs/nw_c2_default8_v.ncs b/_module/ncs/nw_c2_default8_v.ncs index 676bddc..e1c9128 100644 Binary files a/_module/ncs/nw_c2_default8_v.ncs and b/_module/ncs/nw_c2_default8_v.ncs differ diff --git a/_module/ncs/nw_c2_default9.ncs b/_module/ncs/nw_c2_default9.ncs index ab95ba4..d3df027 100644 Binary files a/_module/ncs/nw_c2_default9.ncs and b/_module/ncs/nw_c2_default9.ncs differ diff --git a/_module/ncs/nw_c2_default9_c.ncs b/_module/ncs/nw_c2_default9_c.ncs index d204563..dd6c899 100644 Binary files a/_module/ncs/nw_c2_default9_c.ncs and b/_module/ncs/nw_c2_default9_c.ncs differ diff --git a/_module/ncs/nw_c2_default9_v.ncs b/_module/ncs/nw_c2_default9_v.ncs index bda9b7b..1332a4f 100644 Binary files a/_module/ncs/nw_c2_default9_v.ncs and b/_module/ncs/nw_c2_default9_v.ncs differ diff --git a/_module/ncs/nw_c2_defaultb.ncs b/_module/ncs/nw_c2_defaultb.ncs index 0eed415..773e5de 100644 Binary files a/_module/ncs/nw_c2_defaultb.ncs and b/_module/ncs/nw_c2_defaultb.ncs differ diff --git a/_module/ncs/nw_c2_defaultb_c.ncs b/_module/ncs/nw_c2_defaultb_c.ncs index 38bd523..fb1fab9 100644 Binary files a/_module/ncs/nw_c2_defaultb_c.ncs and b/_module/ncs/nw_c2_defaultb_c.ncs differ diff --git a/_module/ncs/nw_c2_defaultb_v.ncs b/_module/ncs/nw_c2_defaultb_v.ncs index b1641ad..705fa48 100644 Binary files a/_module/ncs/nw_c2_defaultb_v.ncs and b/_module/ncs/nw_c2_defaultb_v.ncs differ diff --git a/_module/ncs/nw_c2_dimdoor.ncs b/_module/ncs/nw_c2_dimdoor.ncs index af1f5dd..8e32d3d 100644 Binary files a/_module/ncs/nw_c2_dimdoor.ncs and b/_module/ncs/nw_c2_dimdoor.ncs differ diff --git a/_module/ncs/nw_ch_ac1_treant.ncs b/_module/ncs/nw_ch_ac1_treant.ncs index b43d238..5a8a99e 100644 Binary files a/_module/ncs/nw_ch_ac1_treant.ncs and b/_module/ncs/nw_ch_ac1_treant.ncs differ diff --git a/_module/ncs/nw_ch_stlth_on.ncs b/_module/ncs/nw_ch_stlth_on.ncs index 927b6f5..f27e0b2 100644 Binary files a/_module/ncs/nw_ch_stlth_on.ncs and b/_module/ncs/nw_ch_stlth_on.ncs differ diff --git a/_module/ncs/nw_ch_summon_9.ncs b/_module/ncs/nw_ch_summon_9.ncs index baab712..574856f 100644 Binary files a/_module/ncs/nw_ch_summon_9.ncs and b/_module/ncs/nw_ch_summon_9.ncs differ diff --git a/_module/ncs/nw_g0_charm.ncs b/_module/ncs/nw_g0_charm.ncs index 6d85fdb..637e1b6 100644 Binary files a/_module/ncs/nw_g0_charm.ncs and b/_module/ncs/nw_g0_charm.ncs differ diff --git a/_module/ncs/nw_g0_confuse.ncs b/_module/ncs/nw_g0_confuse.ncs index 23e270f..765fc43 100644 Binary files a/_module/ncs/nw_g0_confuse.ncs and b/_module/ncs/nw_g0_confuse.ncs differ diff --git a/_module/ncs/nw_g0_fear.ncs b/_module/ncs/nw_g0_fear.ncs index 245a2ca..1686de4 100644 Binary files a/_module/ncs/nw_g0_fear.ncs and b/_module/ncs/nw_g0_fear.ncs differ diff --git a/_module/ncs/nw_g0_sleep.ncs b/_module/ncs/nw_g0_sleep.ncs index 9c7165e..a3239a6 100644 Binary files a/_module/ncs/nw_g0_sleep.ncs and b/_module/ncs/nw_g0_sleep.ncs differ diff --git a/_module/ncs/nw_o2_boss.ncs b/_module/ncs/nw_o2_boss.ncs index c5835be..57cdce6 100644 Binary files a/_module/ncs/nw_o2_boss.ncs and b/_module/ncs/nw_o2_boss.ncs differ diff --git a/_module/ncs/nw_o2_classweap.ncs b/_module/ncs/nw_o2_classweap.ncs index f7d00fa..354ca56 100644 Binary files a/_module/ncs/nw_o2_classweap.ncs and b/_module/ncs/nw_o2_classweap.ncs differ diff --git a/_module/ncs/nw_o2_generalhig.ncs b/_module/ncs/nw_o2_generalhig.ncs index 610c84b..3529707 100644 Binary files a/_module/ncs/nw_o2_generalhig.ncs and b/_module/ncs/nw_o2_generalhig.ncs differ diff --git a/_module/ncs/nw_o2_generallow.ncs b/_module/ncs/nw_o2_generallow.ncs index 1c000d2..55674bc 100644 Binary files a/_module/ncs/nw_o2_generallow.ncs and b/_module/ncs/nw_o2_generallow.ncs differ diff --git a/_module/ncs/nw_o2_generalmed.ncs b/_module/ncs/nw_o2_generalmed.ncs index f2b65e8..169bf90 100644 Binary files a/_module/ncs/nw_o2_generalmed.ncs and b/_module/ncs/nw_o2_generalmed.ncs differ diff --git a/_module/ncs/omw_ppis_disturb.ncs b/_module/ncs/omw_ppis_disturb.ncs index e1c5cb9..2b4aca1 100644 Binary files a/_module/ncs/omw_ppis_disturb.ncs and b/_module/ncs/omw_ppis_disturb.ncs differ diff --git a/_module/ncs/oncast_donothing.ncs b/_module/ncs/oncast_donothing.ncs index b47bc51..137109b 100644 Binary files a/_module/ncs/oncast_donothing.ncs and b/_module/ncs/oncast_donothing.ncs differ diff --git a/_module/ncs/onconv_donothing.ncs b/_module/ncs/onconv_donothing.ncs index 7681b8d..de2e42d 100644 Binary files a/_module/ncs/onconv_donothing.ncs and b/_module/ncs/onconv_donothing.ncs differ diff --git a/_module/ncs/ondamg_donothing.ncs b/_module/ncs/ondamg_donothing.ncs index cf6a860..237d9aa 100644 Binary files a/_module/ncs/ondamg_donothing.ncs and b/_module/ncs/ondamg_donothing.ncs differ diff --git a/_module/ncs/onenter_kill.ncs b/_module/ncs/onenter_kill.ncs index ee314b7..cfec882 100644 Binary files a/_module/ncs/onenter_kill.ncs and b/_module/ncs/onenter_kill.ncs differ diff --git a/_module/ncs/outofwater.ncs b/_module/ncs/outofwater.ncs index b77233a..efa57b2 100644 Binary files a/_module/ncs/outofwater.ncs and b/_module/ncs/outofwater.ncs differ diff --git a/_module/ncs/pac_trash_spawn.ncs b/_module/ncs/pac_trash_spawn.ncs index d308a3e..44e8687 100644 Binary files a/_module/ncs/pac_trash_spawn.ncs and b/_module/ncs/pac_trash_spawn.ncs differ diff --git a/_module/ncs/pacifico_trash.ncs b/_module/ncs/pacifico_trash.ncs index 69d1a34..95e448e 100644 Binary files a/_module/ncs/pacifico_trash.ncs and b/_module/ncs/pacifico_trash.ncs differ diff --git a/_module/ncs/phoenix_death.ncs b/_module/ncs/phoenix_death.ncs index 5893dc7..5cfcb5a 100644 Binary files a/_module/ncs/phoenix_death.ncs and b/_module/ncs/phoenix_death.ncs differ diff --git a/_module/ncs/placedoor_use.ncs b/_module/ncs/placedoor_use.ncs index 867444b..33a7b7c 100644 Binary files a/_module/ncs/placedoor_use.ncs and b/_module/ncs/placedoor_use.ncs differ diff --git a/_module/ncs/pseudo_donexit.ncs b/_module/ncs/pseudo_donexit.ncs index b568a41..6e72734 100644 Binary files a/_module/ncs/pseudo_donexit.ncs and b/_module/ncs/pseudo_donexit.ncs differ diff --git a/_module/ncs/qconv_cancel.ncs b/_module/ncs/qconv_cancel.ncs index 3bab57a..7f2651b 100644 Binary files a/_module/ncs/qconv_cancel.ncs and b/_module/ncs/qconv_cancel.ncs differ diff --git a/_module/ncs/quest_bandgiveg.ncs b/_module/ncs/quest_bandgiveg.ncs index e79d83b..f04f0eb 100644 Binary files a/_module/ncs/quest_bandgiveg.ncs and b/_module/ncs/quest_bandgiveg.ncs differ diff --git a/_module/ncs/quest_hasjourna1.ncs b/_module/ncs/quest_hasjourna1.ncs index 7c7af78..875205c 100644 Binary files a/_module/ncs/quest_hasjourna1.ncs and b/_module/ncs/quest_hasjourna1.ncs differ diff --git a/_module/ncs/quest_hasransom3.ncs b/_module/ncs/quest_hasransom3.ncs index feb6efc..739ea32 100644 Binary files a/_module/ncs/quest_hasransom3.ncs and b/_module/ncs/quest_hasransom3.ncs differ diff --git a/_module/ncs/quest_isbg1or2.ncs b/_module/ncs/quest_isbg1or2.ncs index c0fad53..a8c2ea7 100644 Binary files a/_module/ncs/quest_isbg1or2.ncs and b/_module/ncs/quest_isbg1or2.ncs differ diff --git a/_module/ncs/random_goback.ncs b/_module/ncs/random_goback.ncs index 3b0f132..ec1a9cb 100644 Binary files a/_module/ncs/random_goback.ncs and b/_module/ncs/random_goback.ncs differ diff --git a/_module/ncs/random_gofurther.ncs b/_module/ncs/random_gofurther.ncs index cc7a0b6..ae7f550 100644 Binary files a/_module/ncs/random_gofurther.ncs and b/_module/ncs/random_gofurther.ncs differ diff --git a/_module/ncs/random_startjour.ncs b/_module/ncs/random_startjour.ncs index b95fc6c..dc0cd75 100644 Binary files a/_module/ncs/random_startjour.ncs and b/_module/ncs/random_startjour.ncs differ diff --git a/_module/ncs/random_tel_1t3pr.ncs b/_module/ncs/random_tel_1t3pr.ncs index 8c1cd33..bb59aca 100644 Binary files a/_module/ncs/random_tel_1t3pr.ncs and b/_module/ncs/random_tel_1t3pr.ncs differ diff --git a/_module/ncs/roulette_hb.ncs b/_module/ncs/roulette_hb.ncs index 89cc42e..335e11b 100644 Binary files a/_module/ncs/roulette_hb.ncs and b/_module/ncs/roulette_hb.ncs differ diff --git a/_module/ncs/roulette_os.ncs b/_module/ncs/roulette_os.ncs index 7090989..15ff39d 100644 Binary files a/_module/ncs/roulette_os.ncs and b/_module/ncs/roulette_os.ncs differ diff --git a/_module/ncs/rumor_dragons.ncs b/_module/ncs/rumor_dragons.ncs index e53b6f1..10ff66c 100644 Binary files a/_module/ncs/rumor_dragons.ncs and b/_module/ncs/rumor_dragons.ncs differ diff --git a/_module/ncs/rumor_drow.ncs b/_module/ncs/rumor_drow.ncs index 09380b1..2639cd0 100644 Binary files a/_module/ncs/rumor_drow.ncs and b/_module/ncs/rumor_drow.ncs differ diff --git a/_module/ncs/rumor_friends.ncs b/_module/ncs/rumor_friends.ncs index 594f3d7..88819a3 100644 Binary files a/_module/ncs/rumor_friends.ncs and b/_module/ncs/rumor_friends.ncs differ diff --git a/_module/ncs/rumor_ghoul.ncs b/_module/ncs/rumor_ghoul.ncs index f11003d..48d1b7e 100644 Binary files a/_module/ncs/rumor_ghoul.ncs and b/_module/ncs/rumor_ghoul.ncs differ diff --git a/_module/ncs/rumor_island.ncs b/_module/ncs/rumor_island.ncs index 5da649a..680c08c 100644 Binary files a/_module/ncs/rumor_island.ncs and b/_module/ncs/rumor_island.ncs differ diff --git a/_module/ncs/rumor_masked.ncs b/_module/ncs/rumor_masked.ncs index ea26fe2..44f951d 100644 Binary files a/_module/ncs/rumor_masked.ncs and b/_module/ncs/rumor_masked.ncs differ diff --git a/_module/ncs/rumor_north.ncs b/_module/ncs/rumor_north.ncs index 254a68d..25e867d 100644 Binary files a/_module/ncs/rumor_north.ncs and b/_module/ncs/rumor_north.ncs differ diff --git a/_module/ncs/rumor_nuvaris.ncs b/_module/ncs/rumor_nuvaris.ncs index 81e8a20..f8d512c 100644 Binary files a/_module/ncs/rumor_nuvaris.ncs and b/_module/ncs/rumor_nuvaris.ncs differ diff --git a/_module/ncs/rumor_nymph.ncs b/_module/ncs/rumor_nymph.ncs index 5f3e1e7..0425a6a 100644 Binary files a/_module/ncs/rumor_nymph.ncs and b/_module/ncs/rumor_nymph.ncs differ diff --git a/_module/ncs/rumor_orcs.ncs b/_module/ncs/rumor_orcs.ncs index a374b4c..f0678da 100644 Binary files a/_module/ncs/rumor_orcs.ncs and b/_module/ncs/rumor_orcs.ncs differ diff --git a/_module/ncs/rumor_tomb.ncs b/_module/ncs/rumor_tomb.ncs index 2379d5f..864f15d 100644 Binary files a/_module/ncs/rumor_tomb.ncs and b/_module/ncs/rumor_tomb.ncs differ diff --git a/_module/ncs/rumor_wizard.ncs b/_module/ncs/rumor_wizard.ncs index 2aa3aef..98f1b1f 100644 Binary files a/_module/ncs/rumor_wizard.ncs and b/_module/ncs/rumor_wizard.ncs differ diff --git a/_module/ncs/sc_dart_throw.ncs b/_module/ncs/sc_dart_throw.ncs index 8119bbe..8c4f5ce 100644 Binary files a/_module/ncs/sc_dart_throw.ncs and b/_module/ncs/sc_dart_throw.ncs differ diff --git a/_module/ncs/sc_db_npc_busy.ncs b/_module/ncs/sc_db_npc_busy.ncs index 7d875b3..3a9d55d 100644 Binary files a/_module/ncs/sc_db_npc_busy.ncs and b/_module/ncs/sc_db_npc_busy.ncs differ diff --git a/_module/ncs/sc_db_npc_event.ncs b/_module/ncs/sc_db_npc_event.ncs index 64a755e..9006dd5 100644 Binary files a/_module/ncs/sc_db_npc_event.ncs and b/_module/ncs/sc_db_npc_event.ncs differ diff --git a/_module/ncs/sc_use_dartboard.ncs b/_module/ncs/sc_use_dartboard.ncs index 3bd8e85..41fd1c6 100644 Binary files a/_module/ncs/sc_use_dartboard.ncs and b/_module/ncs/sc_use_dartboard.ncs differ diff --git a/_module/ncs/sewers_hb.ncs b/_module/ncs/sewers_hb.ncs index 49d9be8..eaaa36b 100644 Binary files a/_module/ncs/sewers_hb.ncs and b/_module/ncs/sewers_hb.ncs differ diff --git a/_module/ncs/sfpb_close.ncs b/_module/ncs/sfpb_close.ncs index 902006a..7c78f1e 100644 Binary files a/_module/ncs/sfpb_close.ncs and b/_module/ncs/sfpb_close.ncs differ diff --git a/_module/ncs/sfpb_house_close.ncs b/_module/ncs/sfpb_house_close.ncs index e627f30..49be371 100644 Binary files a/_module/ncs/sfpb_house_close.ncs and b/_module/ncs/sfpb_house_close.ncs differ diff --git a/_module/ncs/sfpb_house_open.ncs b/_module/ncs/sfpb_house_open.ncs index 3e9ac26..5ca2acf 100644 Binary files a/_module/ncs/sfpb_house_open.ncs and b/_module/ncs/sfpb_house_open.ncs differ diff --git a/_module/ncs/sfpb_house_used.ncs b/_module/ncs/sfpb_house_used.ncs index 37efaab..a562af5 100644 Binary files a/_module/ncs/sfpb_house_used.ncs and b/_module/ncs/sfpb_house_used.ncs differ diff --git a/_module/ncs/sfpb_open.ncs b/_module/ncs/sfpb_open.ncs index d4e3cfe..2968ee0 100644 Binary files a/_module/ncs/sfpb_open.ncs and b/_module/ncs/sfpb_open.ncs differ diff --git a/_module/ncs/sfpb_used.ncs b/_module/ncs/sfpb_used.ncs index 7156f26..83ef891 100644 Binary files a/_module/ncs/sfpb_used.ncs and b/_module/ncs/sfpb_used.ncs differ diff --git a/_module/ncs/spawn_and_sit.ncs b/_module/ncs/spawn_and_sit.ncs index f322a1b..0a05a90 100644 Binary files a/_module/ncs/spawn_and_sit.ncs and b/_module/ncs/spawn_and_sit.ncs differ diff --git a/_module/ncs/ss_dalesfolk_os.ncs b/_module/ncs/ss_dalesfolk_os.ncs index e90af14..ffec5ce 100644 Binary files a/_module/ncs/ss_dalesfolk_os.ncs and b/_module/ncs/ss_dalesfolk_os.ncs differ diff --git a/_module/ncs/ss_joust.ncs b/_module/ncs/ss_joust.ncs index e2008a0..b6f012f 100644 Binary files a/_module/ncs/ss_joust.ncs and b/_module/ncs/ss_joust.ncs differ diff --git a/_module/ncs/ss_joust2.ncs b/_module/ncs/ss_joust2.ncs index ca5d587..9f233e8 100644 Binary files a/_module/ncs/ss_joust2.ncs and b/_module/ncs/ss_joust2.ncs differ diff --git a/_module/ncs/ss_mounthorse.ncs b/_module/ncs/ss_mounthorse.ncs index e329f77..042ff64 100644 Binary files a/_module/ncs/ss_mounthorse.ncs and b/_module/ncs/ss_mounthorse.ncs differ diff --git a/_module/ncs/su_blackarmor.ncs b/_module/ncs/su_blackarmor.ncs index daec14e..09a2aa2 100644 Binary files a/_module/ncs/su_blackarmor.ncs and b/_module/ncs/su_blackarmor.ncs differ diff --git a/_module/ncs/su_blackheavy.ncs b/_module/ncs/su_blackheavy.ncs index ca9d2dc..114b7f2 100644 Binary files a/_module/ncs/su_blackheavy.ncs and b/_module/ncs/su_blackheavy.ncs differ diff --git a/_module/ncs/su_blacksaddle.ncs b/_module/ncs/su_blacksaddle.ncs index 0efc44d..a5f0632 100644 Binary files a/_module/ncs/su_blacksaddle.ncs and b/_module/ncs/su_blacksaddle.ncs differ diff --git a/_module/ncs/su_brownarmor.ncs b/_module/ncs/su_brownarmor.ncs index 8bc3ad0..3f1689b 100644 Binary files a/_module/ncs/su_brownarmor.ncs and b/_module/ncs/su_brownarmor.ncs differ diff --git a/_module/ncs/su_brownheavy.ncs b/_module/ncs/su_brownheavy.ncs index 15169d2..0835802 100644 Binary files a/_module/ncs/su_brownheavy.ncs and b/_module/ncs/su_brownheavy.ncs differ diff --git a/_module/ncs/su_brownsaddle.ncs b/_module/ncs/su_brownsaddle.ncs index a5ce7cc..f0b9995 100644 Binary files a/_module/ncs/su_brownsaddle.ncs and b/_module/ncs/su_brownsaddle.ncs differ diff --git a/_module/ncs/su_nightmare.ncs b/_module/ncs/su_nightmare.ncs index 8d1a75d..0377c52 100644 Binary files a/_module/ncs/su_nightmare.ncs and b/_module/ncs/su_nightmare.ncs differ diff --git a/_module/ncs/su_pegasus.ncs b/_module/ncs/su_pegasus.ncs index 7021561..aa23c34 100644 Binary files a/_module/ncs/su_pegasus.ncs and b/_module/ncs/su_pegasus.ncs differ diff --git a/_module/ncs/su_runicorn.ncs b/_module/ncs/su_runicorn.ncs index 5e8e2b0..8487ad9 100644 Binary files a/_module/ncs/su_runicorn.ncs and b/_module/ncs/su_runicorn.ncs differ diff --git a/_module/ncs/su_spottedarmor.ncs b/_module/ncs/su_spottedarmor.ncs index 7d58f98..e846547 100644 Binary files a/_module/ncs/su_spottedarmor.ncs and b/_module/ncs/su_spottedarmor.ncs differ diff --git a/_module/ncs/su_spottedheavy.ncs b/_module/ncs/su_spottedheavy.ncs index 0536101..a1c75b7 100644 Binary files a/_module/ncs/su_spottedheavy.ncs and b/_module/ncs/su_spottedheavy.ncs differ diff --git a/_module/ncs/su_spottedsaddle.ncs b/_module/ncs/su_spottedsaddle.ncs index 673f3e9..4f483bf 100644 Binary files a/_module/ncs/su_spottedsaddle.ncs and b/_module/ncs/su_spottedsaddle.ncs differ diff --git a/_module/ncs/su_tourneyblack.ncs b/_module/ncs/su_tourneyblack.ncs index 14d1f37..a7da955 100644 Binary files a/_module/ncs/su_tourneyblack.ncs and b/_module/ncs/su_tourneyblack.ncs differ diff --git a/_module/ncs/su_tourneygreen.ncs b/_module/ncs/su_tourneygreen.ncs index 7b578d4..eeda186 100644 Binary files a/_module/ncs/su_tourneygreen.ncs and b/_module/ncs/su_tourneygreen.ncs differ diff --git a/_module/ncs/su_tourneypurple.ncs b/_module/ncs/su_tourneypurple.ncs index 1a6866f..38115df 100644 Binary files a/_module/ncs/su_tourneypurple.ncs and b/_module/ncs/su_tourneypurple.ncs differ diff --git a/_module/ncs/su_tourneyyellow.ncs b/_module/ncs/su_tourneyyellow.ncs index 8792ecf..c3cfdde 100644 Binary files a/_module/ncs/su_tourneyyellow.ncs and b/_module/ncs/su_tourneyyellow.ncs differ diff --git a/_module/ncs/su_unicorn.ncs b/_module/ncs/su_unicorn.ncs index 549a66d..05d0cbd 100644 Binary files a/_module/ncs/su_unicorn.ncs and b/_module/ncs/su_unicorn.ncs differ diff --git a/_module/ncs/su_whitearmor.ncs b/_module/ncs/su_whitearmor.ncs index 287fdf5..2cc3b53 100644 Binary files a/_module/ncs/su_whitearmor.ncs and b/_module/ncs/su_whitearmor.ncs differ diff --git a/_module/ncs/su_whiteheavy.ncs b/_module/ncs/su_whiteheavy.ncs index 3287ca2..d68b573 100644 Binary files a/_module/ncs/su_whiteheavy.ncs and b/_module/ncs/su_whiteheavy.ncs differ diff --git a/_module/ncs/su_whitesaddle.ncs b/_module/ncs/su_whitesaddle.ncs index 0eed0f6..24cd161 100644 Binary files a/_module/ncs/su_whitesaddle.ncs and b/_module/ncs/su_whitesaddle.ncs differ diff --git a/_module/ncs/talk_sit.ncs b/_module/ncs/talk_sit.ncs index 56461c5..2575b6a 100644 Binary files a/_module/ncs/talk_sit.ncs and b/_module/ncs/talk_sit.ncs differ diff --git a/_module/ncs/talk_sit_pok.ncs b/_module/ncs/talk_sit_pok.ncs index fc90335..1acf913 100644 Binary files a/_module/ncs/talk_sit_pok.ncs and b/_module/ncs/talk_sit_pok.ncs differ diff --git a/_module/ncs/tbin_onclose.ncs b/_module/ncs/tbin_onclose.ncs index fb4791e..1624dc4 100644 Binary files a/_module/ncs/tbin_onclose.ncs and b/_module/ncs/tbin_onclose.ncs differ diff --git a/_module/ncs/test_petrify.ncs b/_module/ncs/test_petrify.ncs index e608277..6baf829 100644 Binary files a/_module/ncs/test_petrify.ncs and b/_module/ncs/test_petrify.ncs differ diff --git a/_module/ncs/thug_endcombat.ncs b/_module/ncs/thug_endcombat.ncs index 8171504..a7f9c49 100644 Binary files a/_module/ncs/thug_endcombat.ncs and b/_module/ncs/thug_endcombat.ncs differ diff --git a/_module/ncs/thugs_attack.ncs b/_module/ncs/thugs_attack.ncs index 87c9834..3c49316 100644 Binary files a/_module/ncs/thugs_attack.ncs and b/_module/ncs/thugs_attack.ncs differ diff --git a/_module/ncs/thugs_run.ncs b/_module/ncs/thugs_run.ncs index b50e8e6..d1c43fa 100644 Binary files a/_module/ncs/thugs_run.ncs and b/_module/ncs/thugs_run.ncs differ diff --git a/_module/ncs/tourn_joust.ncs b/_module/ncs/tourn_joust.ncs index 148f65e..0d83d79 100644 Binary files a/_module/ncs/tourn_joust.ncs and b/_module/ncs/tourn_joust.ncs differ diff --git a/_module/ncs/town_onenter.ncs b/_module/ncs/town_onenter.ncs index 58c1ac3..a7f81bb 100644 Binary files a/_module/ncs/town_onenter.ncs and b/_module/ncs/town_onenter.ncs differ diff --git a/_module/ncs/ultmer_heartbeat.ncs b/_module/ncs/ultmer_heartbeat.ncs index 3125972..5075cbc 100644 Binary files a/_module/ncs/ultmer_heartbeat.ncs and b/_module/ncs/ultmer_heartbeat.ncs differ diff --git a/_module/ncs/underwater_onent.ncs b/_module/ncs/underwater_onent.ncs index 84be06a..4c2b1b3 100644 Binary files a/_module/ncs/underwater_onent.ncs and b/_module/ncs/underwater_onent.ncs differ diff --git a/_module/ncs/world_advint3.ncs b/_module/ncs/world_advint3.ncs index 733eced..4ed0951 100644 Binary files a/_module/ncs/world_advint3.ncs and b/_module/ncs/world_advint3.ncs differ diff --git a/_module/ncs/x0_ch_hen_heart.ncs b/_module/ncs/x0_ch_hen_heart.ncs index 7c7a548..49bfb50 100644 Binary files a/_module/ncs/x0_ch_hen_heart.ncs and b/_module/ncs/x0_ch_hen_heart.ncs differ diff --git a/_module/ncs/x0_d1_henchspell.ncs b/_module/ncs/x0_d1_henchspell.ncs index eb2d1c8..f561614 100644 Binary files a/_module/ncs/x0_d1_henchspell.ncs and b/_module/ncs/x0_d1_henchspell.ncs differ diff --git a/_module/ncs/x0_s2_fiend.ncs b/_module/ncs/x0_s2_fiend.ncs index d1dad44..2c64644 100644 Binary files a/_module/ncs/x0_s2_fiend.ncs and b/_module/ncs/x0_s2_fiend.ncs differ diff --git a/_module/ncs/x0_s2_shadsum.ncs b/_module/ncs/x0_s2_shadsum.ncs index defe4c1..71881ed 100644 Binary files a/_module/ncs/x0_s2_shadsum.ncs and b/_module/ncs/x0_s2_shadsum.ncs differ diff --git a/_module/ncs/x2_ai_behold.ncs b/_module/ncs/x2_ai_behold.ncs index 823f90f..644974c 100644 Binary files a/_module/ncs/x2_ai_behold.ncs and b/_module/ncs/x2_ai_behold.ncs differ diff --git a/_module/ncs/x2_ai_mflayer.ncs b/_module/ncs/x2_ai_mflayer.ncs index 86734c7..4b1b394 100644 Binary files a/_module/ncs/x2_ai_mflayer.ncs and b/_module/ncs/x2_ai_mflayer.ncs differ diff --git a/_module/ncs/x2_def_heartbeat.ncs b/_module/ncs/x2_def_heartbeat.ncs index 895c804..ea14fc0 100644 Binary files a/_module/ncs/x2_def_heartbeat.ncs and b/_module/ncs/x2_def_heartbeat.ncs differ diff --git a/_module/ncs/x4_def_mod_death.ncs b/_module/ncs/x4_def_mod_death.ncs index ba64a20..7fbb246 100644 Binary files a/_module/ncs/x4_def_mod_death.ncs and b/_module/ncs/x4_def_mod_death.ncs differ diff --git a/_module/ncs/x4_def_mod_dying.ncs b/_module/ncs/x4_def_mod_dying.ncs index d59435b..6fdadef 100644 Binary files a/_module/ncs/x4_def_mod_dying.ncs and b/_module/ncs/x4_def_mod_dying.ncs differ diff --git a/_module/ncs/x4_def_mod_exit.ncs b/_module/ncs/x4_def_mod_exit.ncs index a4f3d81..1e29941 100644 Binary files a/_module/ncs/x4_def_mod_exit.ncs and b/_module/ncs/x4_def_mod_exit.ncs differ diff --git a/_module/ncs/x4_hench_hb.ncs b/_module/ncs/x4_hench_hb.ncs index 4ac0bd3..cc1c875 100644 Binary files a/_module/ncs/x4_hench_hb.ncs and b/_module/ncs/x4_hench_hb.ncs differ diff --git a/_module/ncs/x4_mod_def_enter.ncs b/_module/ncs/x4_mod_def_enter.ncs index af54906..725076f 100644 Binary files a/_module/ncs/x4_mod_def_enter.ncs and b/_module/ncs/x4_mod_def_enter.ncs differ diff --git a/_module/ncs/x4_mod_def_equ.ncs b/_module/ncs/x4_mod_def_equ.ncs index 9e8d2eb..bf20e54 100644 Binary files a/_module/ncs/x4_mod_def_equ.ncs and b/_module/ncs/x4_mod_def_equ.ncs differ diff --git a/_module/ncs/x4_mod_def_rest.ncs b/_module/ncs/x4_mod_def_rest.ncs index 62f26db..b08e133 100644 Binary files a/_module/ncs/x4_mod_def_rest.ncs and b/_module/ncs/x4_mod_def_rest.ncs differ diff --git a/_module/ncs/x4_mod_def_unequ.ncs b/_module/ncs/x4_mod_def_unequ.ncs index 441ce4f..e249fbd 100644 Binary files a/_module/ncs/x4_mod_def_unequ.ncs and b/_module/ncs/x4_mod_def_unequ.ncs differ diff --git a/_module/ncs/x4_skctrap_act_2.ncs b/_module/ncs/x4_skctrap_act_2.ncs index 2877776..2372bc3 100644 Binary files a/_module/ncs/x4_skctrap_act_2.ncs and b/_module/ncs/x4_skctrap_act_2.ncs differ diff --git a/_module/ncs/x4_skctrap_act_3.ncs b/_module/ncs/x4_skctrap_act_3.ncs index 7df38f1..aa8e45e 100644 Binary files a/_module/ncs/x4_skctrap_act_3.ncs and b/_module/ncs/x4_skctrap_act_3.ncs differ diff --git a/_module/ncs/x4_skctrap_act_4.ncs b/_module/ncs/x4_skctrap_act_4.ncs index b96cc11..35f4c31 100644 Binary files a/_module/ncs/x4_skctrap_act_4.ncs and b/_module/ncs/x4_skctrap_act_4.ncs differ diff --git a/_module/ncs/x4_skctrap_act_5.ncs b/_module/ncs/x4_skctrap_act_5.ncs index 1e1d727..8d13587 100644 Binary files a/_module/ncs/x4_skctrap_act_5.ncs and b/_module/ncs/x4_skctrap_act_5.ncs differ diff --git a/_module/ncs/x4_skctrap_act_6.ncs b/_module/ncs/x4_skctrap_act_6.ncs index 5fe144d..fec5aaf 100644 Binary files a/_module/ncs/x4_skctrap_act_6.ncs and b/_module/ncs/x4_skctrap_act_6.ncs differ diff --git a/_release/Ancordia [PRC8-CEP2].7z b/_release/Ancordia [PRC8-CEP2].7z index a22d8f6..9069427 100644 Binary files a/_release/Ancordia [PRC8-CEP2].7z and b/_release/Ancordia [PRC8-CEP2].7z differ