Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
103 lines
3.9 KiB
Plaintext
103 lines
3.9 KiB
Plaintext
// Useful includes for dealing with races.
|
|
|
|
//function prototypes
|
|
//use this to get class/race adjusted racial type back to one of the bioware bases
|
|
//includes shifter changed forms
|
|
int MyPRCGetRacialType(object oCreature);
|
|
|
|
// Guess what this does
|
|
int GetIsWarforged(object oCreature);
|
|
// DoRacialSLA() moved to prc_inc_core as it is used by other spell-like scripts, not just race specific
|
|
|
|
|
|
#include "prc_class_const"
|
|
#include "prc_feat_const"
|
|
#include "prc_racial_const"
|
|
|
|
int MyPRCGetRacialType(object oCreature)
|
|
{
|
|
// Shadow Sun Ninja - Ballance of Light and Dark
|
|
if(GetLocalInt(oCreature, "SSN_BALANCE_LD"))
|
|
return RACIAL_TYPE_UNDEAD;
|
|
if(GetHasFeat(FEAT_UNDEAD_HD, oCreature))
|
|
return RACIAL_TYPE_UNDEAD;
|
|
|
|
// Class-based racial type changes
|
|
if(GetLevelByClass(CLASS_TYPE_LICH,oCreature) > 3)
|
|
return RACIAL_TYPE_UNDEAD;
|
|
if(GetLevelByClass(CLASS_TYPE_MONK, oCreature) > 19
|
|
|| GetLevelByClass(CLASS_TYPE_CONTEMPLATIVE, oCreature) > 9
|
|
|| GetLevelByClass(CLASS_TYPE_ACOLYTE, oCreature) > 9
|
|
|| GetLevelByClass(CLASS_TYPE_INCANDESCENT_CHAMPION, oCreature) > 9)
|
|
return RACIAL_TYPE_OUTSIDER;
|
|
if(GetLevelByClass(CLASS_TYPE_OOZEMASTER, oCreature) > 9)
|
|
return RACIAL_TYPE_OOZE;
|
|
if(GetLevelByClass(CLASS_TYPE_ELEMENTAL_SAVANT, oCreature) > 9)
|
|
return RACIAL_TYPE_ELEMENTAL;
|
|
if(GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE, oCreature) > 9)
|
|
return RACIAL_TYPE_DRAGON;
|
|
if (GetLevelByClass(CLASS_TYPE_WEREWOLF, oCreature) > 9)
|
|
return RACIAL_TYPE_SHAPECHANGER;
|
|
if (GetLevelByClass(CLASS_TYPE_HEARTWARDER, oCreature) > 9)
|
|
return RACIAL_TYPE_FEY;
|
|
if (GetLevelByClass(CLASS_TYPE_FORESTMASTER, oCreature) > 7)
|
|
return RACIAL_TYPE_PLANT;
|
|
|
|
// PRC Shifting Polymorph -caused racial type override. Stored with offset +1 to differentiate value 0 from non-existence
|
|
int nShiftingOverrideRace = GetLocalInt(oCreature, "PRC_ShiftingOverride_Race");
|
|
if(nShiftingOverrideRace)
|
|
return nShiftingOverrideRace - 1;
|
|
|
|
// Race pack racial type feats
|
|
if(GetHasFeat(FEAT_OUTSIDER, oCreature))
|
|
return RACIAL_TYPE_OUTSIDER;
|
|
if(GetHasFeat(FEAT_ELEMENTAL, oCreature))
|
|
return RACIAL_TYPE_ELEMENTAL;
|
|
if(GetHasFeat(FEAT_LIVING_CONSTRUCT, oCreature))
|
|
return RACIAL_TYPE_CONSTRUCT;
|
|
if(GetHasFeat(FEAT_PLANT, oCreature))
|
|
return RACIAL_TYPE_PLANT;
|
|
if(GetHasFeat(FEAT_ABERRATION, oCreature))
|
|
return RACIAL_TYPE_ABERRATION;
|
|
if(GetHasFeat(FEAT_DRAGON, oCreature))
|
|
return RACIAL_TYPE_DRAGON;
|
|
if(GetHasFeat(FEAT_SHAPECHANGER, oCreature))
|
|
return RACIAL_TYPE_SHAPECHANGER;
|
|
if(GetHasFeat(FEAT_GIANT, oCreature))
|
|
return RACIAL_TYPE_GIANT;
|
|
if(GetHasFeat(FEAT_FEY, oCreature))
|
|
return RACIAL_TYPE_FEY;
|
|
if(GetHasFeat(FEAT_MONSTEROUS, oCreature))
|
|
return RACIAL_TYPE_HUMANOID_MONSTROUS;
|
|
if(GetHasFeat(FEAT_BEAST, oCreature))
|
|
return RACIAL_TYPE_BEAST;
|
|
if(GetHasFeat(FEAT_DWARVEN, oCreature))
|
|
return RACIAL_TYPE_DWARF;
|
|
if(GetHasFeat(FEAT_ELVEN, oCreature))
|
|
return RACIAL_TYPE_ELF;
|
|
if(GetHasFeat(FEAT_GNOMISH, oCreature))
|
|
return RACIAL_TYPE_GNOME;
|
|
if(GetHasFeat(FEAT_HALFLING, oCreature))
|
|
return RACIAL_TYPE_HALFLING;
|
|
if(GetHasFeat(FEAT_ORCISH, oCreature))
|
|
return RACIAL_TYPE_HUMANOID_ORC;
|
|
if(GetHasFeat(FEAT_HUMAN, oCreature))
|
|
return RACIAL_TYPE_HUMAN;
|
|
if(GetHasFeat(FEAT_GOBLINOID, oCreature))
|
|
return RACIAL_TYPE_HUMANOID_GOBLINOID;
|
|
if(GetHasFeat(FEAT_REPTILIAN, oCreature))
|
|
return RACIAL_TYPE_HUMANOID_REPTILIAN;
|
|
if(GetHasFeat(FEAT_VERMIN, oCreature))
|
|
return RACIAL_TYPE_VERMIN;
|
|
|
|
return GetRacialType(oCreature);
|
|
}
|
|
|
|
int GetIsWarforged(object oCreature)
|
|
{
|
|
int nRace = GetRacialType(oCreature);
|
|
|
|
if (nRace == RACIAL_TYPE_WARFORGED || nRace == RACIAL_TYPE_WARFORGED_CHARGER) return TRUE;
|
|
|
|
return FALSE;
|
|
} |