WoR_PRC8/_module/nss/sha_leto_sraces6.nss
Jaysyn904 b5e28e52f4 Initial commit
Initial commit [1.18]
2025-04-03 11:49:34 -04:00

269 lines
13 KiB
Plaintext

//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::: Shayan's Subrace Engine :::::::::::::::::::::::::::::
//:::::::::::::::::::::: File Name: sha_leto_sraces6 :::::::::::::::::::::::::::
//:::::::::::::::::::::::::: OnModuleLoad script :::::::::::::::::::::::::::::::
// Written By: Shayan
//
// Description: This script holds the pre-made "undead" subraces as well as
// some Human and Halfling based sub races listed here: Imp, Pixie, Githyanki,
// Githzarai, Lich, Vampire
//
// If you do not want to use these, simply comment the lines:
// DelayCommand(3.0, ExecuteScript("sha_leto_sraces6", GetModule()));
// in the script: sha_on_modload.
//
////////////////////////////////////////////////////////////////////////////////
#include "sha_subr_methds"
void main()
{
//::::::::::::::::::::::::::::::::::
//:::SUBRACE: Halfing Imp ECL 0 ::::
//::::::::::::::::::::::::::::::::::
CreateSubrace(RACIAL_TYPE_HALFLING, "Imp");
//can only be Wizard, Sorcerer or Rogue.
CreateSubraceClassRestriction("Imp", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE);
//Apearance: Imp - Permanent
CreateSubraceAppearance("Imp", TIME_BOTH, APPEARANCE_TYPE_IMP, APPEARANCE_TYPE_IMP);
//LETO - Change ability scores: (Str, Dex +3, Con, Int +4, Wis, Cha -4)
struct SubraceBaseStatsModifier ImpStats = CustomBaseStatsModifiers(0, 3, 0, 4, 0, -4, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Imp", ImpStats, 1);
//LETO - Skills: Search +5, Spot +5, Listen +5, Spellcraft +5, Concentration +5
//Skill Decrease: Move Silently -4 (wing flap)
ModifySubraceSkill("Imp", SKILL_SEARCH, 5, 1, FALSE);
ModifySubraceSkill("Imp", SKILL_SPOT, 5, 1, FALSE);
ModifySubraceSkill("Imp", SKILL_LISTEN, 5, 1, FALSE);
ModifySubraceSkill("Imp", SKILL_SPELLCRAFT, 5, 1, FALSE);
ModifySubraceSkill("Imp", SKILL_CONCENTRATION, 5, 1, FALSE);
ModifySubraceSkill("Imp", SKILL_MOVE_SILENTLY, -4, 1, FALSE);
//Alignment Restriction: Can only be chaotic-evil
CreateSubraceAlignmentRestriction("Imp", FALSE, FALSE, TRUE, FALSE, FALSE, TRUE);
//Favored Class: Rogue
AddSubraceFavoredClass("Imp", CLASS_TYPE_ROGUE, CLASS_TYPE_ROGUE);
//Item Restriction: No shields, tiny weapons, cloth only
SubraceRestrictUseOfItems("Imp", ITEM_TYPE_WEAPON_SIZE_TINY | ITEM_TYPE_ARMOR_AC_0 | ITEM_TYPE_MISC_CLOTHING | ITEM_TYPE_JEWLERY | ITEM_TYPE_HELM | TIME_BOTH,ITEM_TYPE_REQ_ALL);
//::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Halfling - Pixie ECL +6 ::
//::::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC +1, +1 Soak 5 Damage
//Abilities from the unique item: Cast Spell Confusion (10) 1/Day, Entangle (5) 1/Day
//Invisibility (3) 1/Day, Lesser Dispel (5) 1/Day, Polymorph Self (7) 1/Day
CreateSubrace(RACIAL_TYPE_HALFLING, "Pixie", "sha_pcl_pixie", "sha_subrace_pixi", FALSE, 0, FALSE, 0, 6);
SetupSubraceAlias("Pixie", "pixy");
SetupSubraceAlias("Pixie", "Faerie");
SetupSubraceAlias("Pixie", "Fey");
SetupSubraceAlias("Pixie", "Faery");
ModifySubraceFaction("Pixie", "FACTION_DRYAD", SUBRACE_FACTION_REPUTATION_FRIENDLY);
// Can Fly
AddSubraceItem("Pixie", "sha_subrace_fly");
//LETO - Change ability scores: (Str -4, Dex +8, Con -4, Int +6, Wis +4, Cha +6) Movement Speed: Fast
struct SubraceBaseStatsModifier PixieStats = CustomBaseStatsModifiers(-4, 8, -4, 6, 4, 6, MOVEMENT_SPEED_FAST);
CreateBaseStatModifier("Pixie", PixieStats, 1);
//LETO - Bonus Feats: Darkvision, Dodge
ModifySubraceFeat("Pixie", FEAT_DARKVISION, 1);
ModifySubraceFeat("Pixie", FEAT_DODGE, 1);
//Alignment Restriction: Neutral Only
CreateSubraceAlignmentRestriction("Pixie", FALSE, TRUE, FALSE);
//Class Restriction: Bard, Rogue, Sorcerer, Wizard
CreateSubraceClassRestriction("Pixie", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE);
//Favored Class: Sorcerer
AddSubraceFavoredClass("Pixie", CLASS_TYPE_SORCERER, CLASS_TYPE_SORCERER);
//Appearance Change: Permanent - Pixie
CreateSubraceAppearance("Pixie", TIME_BOTH, APPEARANCE_TYPE_FAIRY, APPEARANCE_TYPE_FAIRY);
//Effect: Visual Effect - Fairy Dust
AddSubraceEffect("Pixie", EFFECT_TYPE_VISUALEFFECT, VFX_DUR_PIXIEDUST, FALSE, DURATION_TYPE_PERMANENT, 0.0, TIME_BOTH);
//Spell Resistance: Base (at Level 1): 15, Max(at Level 40): 55.
CreateSubraceSpellResistance("Pixie", 15, 55);
//Item Restriction: No shields, Clothing only, Tiny Weapons
SubraceRestrictUseOfItems("Pixie", ITEM_TYPE_WEAPON_SIZE_TINY | ITEM_TYPE_ARMOR_AC_0 | ITEM_TYPE_MISC_CLOTHING | ITEM_TYPE_JEWLERY | ITEM_TYPE_HELM | TIME_BOTH,ITEM_TYPE_REQ_ALL);
//:::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Human - Githyanki ECL +2 ::
//:::::::::::::::::::::::::::::::::::::::::
//Abilities from Unique Item: Daze 3/day
CreateSubrace(RACIAL_TYPE_HUMAN, "Githyanki", "", "sha_subrace_gy", FALSE, 0, FALSE, 0, 2);
//LETO - Change ability scores: (Str, Dex +2, Con +2, Int, Wis -2, Cha)
struct SubraceBaseStatsModifier GithyStats = CustomBaseStatsModifiers(0, 2, 2, 0, -2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Githyanki", GithyStats, 1);
//LETO -Bonus Feats: Darkvision
ModifySubraceFeat("Githyanki", FEAT_DARKVISION, 1);
//Appearance: Hair: red 5 Skin: yellow 94
ModifySubraceAppearanceColors("Githyanki",5,5,94,94);
//Appearance: Heads: Male 33, Female 27
ModifySubraceHead("Githyanki", 33,27);
//Spell Resistance: 5 + 1 Per Level.
CreateSubraceSpellResistance("Githyanki", 5, 45);
//Favored Class: Fighter
AddSubraceFavoredClass("Githyanki", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER);
//Alignment Restriction: Evil Only
CreateSubraceAlignmentRestriction("Githyanki", FALSE, FALSE, TRUE);
//:::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Human - Githzerai ECL +2 ::
//:::::::::::::::::::::::::::::::::::::::::
//Abilities from Unique Item: Daze 3/day
CreateSubrace(RACIAL_TYPE_HUMAN, "Githzerai", "", "sha_subrace_gz", FALSE, 0, FALSE, 0, 2);
//LETO - Change ability scores: (Str, Dex +6, Con, Int -2, Wis +2, Cha)
struct SubraceBaseStatsModifier GithzStats = CustomBaseStatsModifiers(0, 6, 0, -2, 2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Githzerai", GithzStats, 1);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Githzerai", FEAT_DARKVISION, 1);
//Appearance: Hair and Skin: Mottled Green 175
ModifySubraceAppearanceColors("Githzerai",175,175,175,175);
//Appearance Heads: Male 34, Female 26
ModifySubraceHead("Githzerai", 34, 26);
//Inertial Barrier at will
AddSubraceItem("Githzerai","sha_subrace_ps_i");
//Spell Resistance: 5 + Level
CreateSubraceSpellResistance("Githzerai", 5, 45);
//Alignment Restriction: Neutral Only
CreateSubraceAlignmentRestriction("Githzerai", FALSE, TRUE, FALSE, TRUE, TRUE, TRUE);
//Favored Class: Monk
AddSubraceFavoredClass("Githzerai", CLASS_TYPE_MONK, CLASS_TYPE_MONK);
//::::::::::::::::::::::::::::::::::::::
//::::: SUBRACE: Undead - Lich ECL +9 ::
//::::::::::::::::::::::::::::::::::::::
//Properties from the Skin:
//Level 1: Damage Reduction: +1/15 Damage, Turn Resistance +4, Cold 100% Immunity, Electrical 100% Immunity
//Level 5: Gains - Immunity: Miscellaneous: Disease
//Level 10: Gains - Immunity: Miscellaneous: Poison
//Level 15: Gains - Immunity: Miscellaneous: Paralysis
//Level 20: Gains - Immunity: Miscellaneous: Level/Ability Drain
//Level 25: Gains - Immunity: Miscellaneous: Mind-Affecting Spells
//Level 30: Gains - Immunity: Miscellaneous: Death Magic
//Level 35: Gains - Immunity: Miscellaneous: Sneak Attack
//Level 40: Gains - Immunity: Miscellaneous: Critical Hits
//Abilities from the unique item: Cast Spell Destruction (13) 1/Day, Cast Spell Vampiric Touch (5) 1/Day
//Light Sensitive, Takes 10 Divine Damage While in Sunlight
//Undead
CreateSubrace(RACIAL_TYPE_HUMAN, "Lich", "sha_pcl_lich", "sha_subrace_lich", TRUE, 10, FALSE, 0, 9, TRUE, TRUE);
//LETO - Change ability scores: (Str, Dex, Con, Int +2, Wis +2, Cha +2)
struct SubraceBaseStatsModifier LichStats = CustomBaseStatsModifiers(0, 0, 0, 2, 2, 2, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Lich", LichStats, 1);
//Can also be Elf
AddAdditionalBaseRaceToSubrace("Lich", RACIAL_TYPE_ELF);
//Can also be Half-Elf
AddAdditionalBaseRaceToSubrace("Lich", RACIAL_TYPE_HALFELF);
//The different skins to be equipped at different levels...
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich1", 5);
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich2", 10);
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich3", 15);
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich4", 20);
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich5", 25);
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich6", 30);
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich7", 35);
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich8", 40);
//Alignment Restriction - Must be Evil
CreateSubraceAlignmentRestriction("Lich", FALSE, FALSE, TRUE);
//Class Restriction - Can only be Wizard or Sorcerer
CreateSubraceClassRestriction("Lich", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE);
// Prestige Class restriction - Can only be Pale Master
CreateSubracePrestigiousClassRestriction("Lich", 10, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE);
//Spell Resistance: 10 + 1/2 Per Level.
CreateSubraceSpellResistance("Lich", 10, 30);
//Appearance: Lich - Permanent
CreateSubraceAppearance("Lich", TIME_BOTH, APPEARANCE_TYPE_LICH, APPEARANCE_TYPE_HEURODIS_LICH);
//Favored Class: Pale Master
AddSubraceFavoredClass("Lich", CLASS_TYPE_WIZARD, CLASS_TYPE_WIZARD);
//::::::::::::::::::::::
//:::SUBRACE: Vampire ::
//::::::::::::::::::::::
//Subrace Name: Vampire
//Properties from the Skin:
//Level 1: Divine 100% Damage Vulnerability, Saving Throw Divine -5, Regeneration +1
//Level 5: Gains - Immunity: Miscellaneous: Paralysis
//Level 10: Gains - Immunity: Miscellaneous: Poison
//Level 15: Gains - Immunity: Miscellaneous: Disease
//Level 20: Gains - Immunity: Miscellaneous: Death Magic, Regeneration Increases by +1
//Level 25: Gains - Immunity: Miscellaneous: Level/Ability Drain
//Level 30: Gains - Immunity: Miscellaneous: Mind-Affecting Spells
//Level 35: Gains - Immunity: Miscellaneous: Sneak Attack
//Level 40: Gains - Immunity: Miscellaneous: Critical Hits, Regeneration Increases by +1
//NOTE: Final Regeneration rate (At Level 40) is +3.
//Light Sensitive. Takes 10 Divine Damage while in Sunlight.
CreateSubrace(RACIAL_TYPE_HUMAN, "Vampire", "sha_pcl_vamp001", "sha_subrace_vamp", TRUE, 10, FALSE, 0, 9, TRUE, TRUE);
// Can Fly
AddSubraceItem("Vampire", "sha_subrace_fly");
//LETO - Change ability scores: (Str, Dex, Con, Int, Wis, Cha -2)
struct SubraceBaseStatsModifier VampireStats = CustomBaseStatsModifiers(0, 0, 0, 0, 0, -2, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Vampire", VampireStats, 1);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Vampire", FEAT_DARKVISION, 1);
//Can also be Elf
AddAdditionalBaseRaceToSubrace("Vampire", RACIAL_TYPE_ELF);
//Can also be Half-Elf
AddAdditionalBaseRaceToSubrace("Vampire", RACIAL_TYPE_HALFELF);
//Skins that are equipped at certain levels...
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp002", 5);
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp003", 10);
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp004", 15);
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp005", 20);
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp006", 25);
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp007", 30);
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp008", 35);
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp009", 40);
//Alignment Restriction: Can only be evil
CreateSubraceAlignmentRestriction("Vampire", FALSE, FALSE, TRUE);
//Appearance: Change the Appearance to a Vampire during night time, and revert back to normal during day time.
CreateSubraceAppearance("Vampire", TIME_NIGHT, APPEARANCE_TYPE_VAMPIRE_MALE, APPEARANCE_TYPE_VAMPIRE_FEMALE, 1);
//Temporary Stats: Bonuses at Night time: (Str +6, Dex +4, Con +4, Int, Wis, Cha +2) AC +5, AB +10
struct SubraceStats VampStats1 = CreateCustomStats(SUBRACE_STAT_MODIFIER_TYPE_POINTS, 6.0, 4.0, 4.0, 0.0, 0.0, 2.0, 5.0, 10.0);
CreateTemporaryStatModifier("Vampire", VampStats1, TIME_NIGHT);
//Favored Class: Rogue
AddSubraceFavoredClass("Vampire", CLASS_TYPE_ROGUE, CLASS_TYPE_ROGUE);
//Appearance no longer changes, but the player will get a control item.
CreateSubraceAppearance("Vampire", TIME_NONE, APPEARANCE_TYPE_WERECAT, APPEARANCE_TYPE_WERECAT, 20);
AddSubraceItem("Vampire", "sha_vamp_cont", 20);
}