WoR_PRC8/_module/nss/sha_leto_sraces7.nss

281 lines
13 KiB
Plaintext
Raw Permalink Normal View History

2025-04-03 11:49:34 -04:00
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::: Shayan's Subrace Engine :::::::::::::::::::::::::::::
//:::::::::::::::::::::: File Name: sha_leto_sraces7 :::::::::::::::::::::::::::
//:::::::::::::::::::::::::: OnModuleLoad script :::::::::::::::::::::::::::::::
// Written By: Shayan
//
// Description: This script holds the pre-made "monster" sub races listed here:
// Werewolf, Werecat, Troglodyte, Sahuagin, Illithid, Hobgoblin, Troll, Stinger
//
// If you do not want to use these, simply comment the lines:
// DelayCommand(3.0, ExecuteScript("sha_leto_sraces7", GetModule()));
// in the script: sha_on_modload
//
////////////////////////////////////////////////////////////////////////////////
#include "sha_subr_methds"
void main()
{
//:::::::::::::::::::::::::::::::::::::::
//:: SUBRACE: Human - Werewolf ECL + 3 ::
//:::::::::::::::::::::::::::::::::::::::
//Subrace Name: Werewolf
//Properties from the Skin: Damage Reduction 10/+1
CreateSubrace(RACIAL_TYPE_HUMAN, "Werewolf", "sha_pcl_lycan", "", FALSE, 0, FALSE, 0, 3);
//LETO - Change ability scores: (Str, Dex, Con, Int, Wis +2, Cha)
struct SubraceBaseStatsModifier WereWolfStats = CustomBaseStatsModifiers(0, 0, 0, 0, 2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Werewolf", WereWolfStats, 1);
//LETO - Bonus Feats: Darkvision, Creature Wep Prof, Iron Will
ModifySubraceFeat("Werewolf", FEAT_WEAPON_PROFICIENCY_CREATURE, 1);
ModifySubraceFeat("Werewolf", FEAT_IRON_WILL, 1);
ModifySubraceFeat("Werewolf", FEAT_DARKVISION, 1);
//Alignment Restriction: Can only be chaotic evil.
CreateSubraceAlignmentRestriction("Werewolf", FALSE, FALSE, TRUE, FALSE, FALSE, TRUE);
//Appearance: Change the Appearance to a Werewolf using the appearance changer device.
CreateSubraceAppearance("Werewolf", TIME_NIGHT, APPEARANCE_TYPE_WEREWOLF, APPEARANCE_TYPE_WEREWOLF, 1);
//Temporary Stat bonuses at Night time. (Str +2, Dex +4, Con +4, Int, Wis, Cha, AC +2)
struct SubraceStats LycanWolfStats1 = CreateCustomStats(SUBRACE_STAT_MODIFIER_TYPE_POINTS, 2.0, 4.0, 4.0, 0.0, 0.0, 0.0, 2.0, 0.0);
CreateTemporaryStatModifier("Werewolf", LycanWolfStats1, TIME_NIGHT);
//Appearance no longer changes, but the player will get a control item.
CreateSubraceAppearance("Werewolf", TIME_NONE, APPEARANCE_TYPE_WERECAT, APPEARANCE_TYPE_WERECAT, 20);
AddSubraceItem("Werewolf", "sha_werwolf_cont", 20);
AddClawsToSubrace("Werewolf","sha_claw_d4","sha_claw_d4",1,TIME_NIGHT);
//:::::::::::::::::::::::::::::::::::::
//:::SUBRACE: Human - Werecat ECL +4 ::
//:::::::::::::::::::::::::::::::::::::
//Must be human
//Properties from the Skin: Dr 5 to slashing, bludgeoning, and piercing
CreateSubrace(RACIAL_TYPE_HUMAN, "Werecat", "sha_pcl_werecat", "", FALSE, 0, FALSE, 0, 4);
//LETO - Change ability scores: (Str, Dex, Con, Int, Wis +2, Cha)
struct SubraceBaseStatsModifier WereCatStats = CustomBaseStatsModifiers(0, 0, 0, 0, 2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Werecat", WereCatStats, 1);
//LETO - Feats: Darkvision, Creature Wep Prof, Iron Will
ModifySubraceFeat("Werecat", FEAT_WEAPON_PROFICIENCY_CREATURE, 1);
ModifySubraceFeat("Werecat", FEAT_IRON_WILL, 1);
ModifySubraceFeat("Werecat", FEAT_DARKVISION, 1);
//Alignment Restriction:
CreateSubraceAlignmentRestriction("Werecat", TRUE, TRUE, TRUE, FALSE);
// Change appearance at night
CreateSubraceAppearance("Werecat", TIME_NIGHT, APPEARANCE_TYPE_WERECAT, APPEARANCE_TYPE_WERECAT);
//Temporary stat bonuses at night (Str +6, Dex +4, Con +4, Int, Wis -4, Cha -2)
struct SubraceStats WereCatStats1 = CreateCustomStats(SUBRACE_STAT_MODIFIER_TYPE_POINTS, 6.0, 4.0, 4.0, 0.0, -4.0, -2.0, 0.0, 0.0);
CreateTemporaryStatModifier("Werecat", WereCatStats1, TIME_NIGHT);
//Appearance no longer changes, but the player will get a control item.
CreateSubraceAppearance("Werecat", TIME_NONE, APPEARANCE_TYPE_WERECAT, APPEARANCE_TYPE_WERECAT, 20);
AddSubraceItem("Werecat", "sha_werecat_app", 20);
//Favored Class: Barbarian
AddSubraceFavoredClass("Werecat", CLASS_TYPE_BARBARIAN, CLASS_TYPE_BARBARIAN);
AddClawsToSubrace("Werecat","sha_claw_d4","sha_claw_d4",1,TIME_NIGHT);
//::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Human - Troglodyte ECL +2:
//::::::::::::::::::::::::::::::::::::::::
//Propertide from Skin: AC +5
//Subrace Ability: Cast Troglodyte Stench 1/day
CreateSubrace(RACIAL_TYPE_HUMAN, "Troglodyte", "sha_pcl_trog", "sha_subrace_trog", TRUE, 0, FALSE, 0, 2);
//LETO - Change ability scores: (Str, Dex -2, Con +2, Int -2, Wis, Cha)
struct SubraceBaseStatsModifier TrogStats = CustomBaseStatsModifiers(0, -2, 2, -2, 0, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Troglodyte", TrogStats, 1);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Troglodyte", FEAT_WEAPON_PROFICIENCY_CREATURE, 1);
ModifySubraceFeat("Troglodyte", FEAT_DARKVISION, 1);
//LETO - Bonus Skills: Hide +4
ModifySubraceSkill("Troglodyte", SKILL_HIDE, 4, 1, FALSE);
// Favored Class : Cleric
AddSubraceFavoredClass("Troglodyte", CLASS_TYPE_CLERIC, CLASS_TYPE_CLERIC);
// Alignment Restriction: Evil Only
CreateSubraceAlignmentRestriction("Troglodyte", FALSE, FALSE, TRUE);
//Appearance: Troglodyte
CreateSubraceAppearance("Troglodyte", TIME_BOTH, APPEARANCE_TYPE_TROGLODYTE, APPEARANCE_TYPE_TROGLODYTE_WARRIOR);
// Claws d4
AddClawsToSubrace("Troglodyte","sha_claw_d4","sha_claw_d4",1);
//::::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Human - Sahuagin ECL +4 ::::
//::::::::::::::::::::::::::::::::::::::::::
//Properties from Skin: AC +5
//Subrace Abilities : Cast Blood Frenzy 1/day
//Light Sensitive
CreateSubrace(RACIAL_TYPE_HUMAN, "Sahuagin", "sha_pcl_Sahuagin", "sha_subrace_shau", TRUE, 0, FALSE, 0, 4);
//LETO - Change ability scores: (Str +4, Dex +2, Con +2, Int +4, Wis +2, Cha)
struct SubraceBaseStatsModifier SahuStats = CustomBaseStatsModifiers(4, 2, 2, 4, 2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Sahuagin", SahuStats, 1);
//LETO - Bonus Feats: Creature Weapons, Blind Fighting, Darkvision
ModifySubraceFeat("Sahuagin", FEAT_DARKVISION, 1);
ModifySubraceFeat("Sahuagin", FEAT_WEAPON_PROFICIENCY_CREATURE, 1);
ModifySubraceFeat("Sahuagin", FEAT_BLIND_FIGHT, 1);
//LETO - Bonus Skills: Hide +4, Listen +4, Spot +4, Animal Empathy +4
ModifySubraceSkill("Sahuagin", SKILL_HIDE, 4, 1, FALSE);
ModifySubraceSkill("Sahuagin", SKILL_LISTEN, 4, 1, FALSE);
ModifySubraceSkill("Sahuagin", SKILL_SPOT, 4, 1, FALSE);
ModifySubraceSkill("Sahuagin", SKILL_ANIMAL_EMPATHY, 4, 1, FALSE);
// Favored Class : Ranger
AddSubraceFavoredClass("Sahuagin", CLASS_TYPE_RANGER, CLASS_TYPE_RANGER);
// Lawful Evil Only
CreateSubraceAlignmentRestriction("Sahuagin", FALSE, FALSE, TRUE, TRUE, FALSE, FALSE);
//Appearance:
CreateSubraceAppearance("Sahuagin", TIME_BOTH, APPEARANCE_TYPE_SAHUAGIN, APPEARANCE_TYPE_SAHUAGIN_CLERIC);
// Claws d4
AddClawsToSubrace("Sahuagin","sha_claw_d4","sha_claw_d4",1);
//::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Human - Illithid ECL + 4::
//::::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC Bonus +3
//Immunity: Miscellaneous: Mind-Affecting Spells
//Abilities from the unique item: Cast Spell Charm Monster (10) 1 Use/Day
//Cast Spell Charm Person (10) 1 Use/Day
//light sensitive
CreateSubrace(RACIAL_TYPE_HUMAN, "Illithid", "sha_pcl_Illithid", "sha_subrace_illi", TRUE, 0, FALSE, 0, 4);
SetupSubraceAlias("Illithid", "mind flayer");
SetupSubraceAlias("Illithid", "mind-flayer");
// Add Extract Brain
AddSubraceItem("illithid", "sha_subrace_illb");
// Add Dimension Door
AddSubraceItem("illithid", "sha_subrace_dimd");
// Add Psionic Mind Blast
AddSubraceItem("illithid", "sha_subrace_ps_m");
//LETO - Change ability scores: (Str +2, Dex +4, Con -4, Int +8, Wis +4, Cha -2)
struct SubraceBaseStatsModifier IllithidStats = CustomBaseStatsModifiers(2, 4, -4, 8, 4, -2, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Illithid", IllithidStats, 1);
//LETO - Feats: Darkvision
ModifySubraceFeat("Illithid", FEAT_DARKVISION, 1);
//Alignment Restriction: Lawful Evil Only
CreateSubraceAlignmentRestriction("Illithid", FALSE, FALSE, TRUE, TRUE, FALSE, FALSE);
//Favored Class: Male: Wizard, Female: Wizard.
AddSubraceFavoredClass("Illithid", CLASS_TYPE_WIZARD, CLASS_TYPE_WIZARD);
//Class Restriction: Monk, Cleric or Wizard
CreateSubraceClassRestriction("Illithid", FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE);
//Spell Resistance: Base: 25, Max: 65. (25 + 1 per level)
CreateSubraceSpellResistance("Illithid", 25, 65);
//Appearance is permanently changed to Mind flayers (male is different from female)
CreateSubraceAppearance("Illithid", TIME_BOTH, 1221, APPEARANCE_TYPE_MINDFLAYER_2);
//:::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: HUMAN - Hobgoblin ECL +1 ::
//:::::::::::::::::::::::::::::::::::::::::
//Subrace Name: Hobgoblin
CreateSubrace(RACIAL_TYPE_HUMAN, "Hobgoblin", "sha_pc_hobgoblin", "",FALSE, 0, FALSE, 0,1);
// set Hobgoblin subrace to be friendly with Goblins (not all goblins)
ModifySubraceFaction("Hobgoblin", "FACTION_GOBLIN", SUBRACE_FACTION_REPUTATION_FRIENDLY);
//Apearance: HobGoblin - Permanent.
CreateSubraceAppearance("Hobgoblin", TIME_BOTH, APPEARANCE_TYPE_HOBGOBLIN_WARRIOR, APPEARANCE_TYPE_HOBGOBLIN_WIZARD);
//LETO - Change ability scores: (Str, Dex +2, Con +2, Int, Wis, Cha)
struct SubraceBaseStatsModifier HobgoblinStats = CustomBaseStatsModifiers(0, 2, 2, 0, 0, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Hobgoblin", HobgoblinStats, 1);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Hobgoblin", FEAT_DARKVISION, 1);
//LETO - Bonus Skills: Move Silent +4
ModifySubraceSkill("Hobgoblin", SKILL_MOVE_SILENTLY, 4, 1, FALSE);
//Favored Class: Fighter
AddSubraceFavoredClass("Hobgoblin", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER);
//Evil Only
CreateSubraceAlignmentRestriction("Hobgoblin", FALSE, FALSE, TRUE);
//:::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Half-Orc - Troll ECL + 4 ::
//:::::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC Bonus +4, Regeneration +3
CreateSubrace(RACIAL_TYPE_HALFORC, "Troll", "sha_pcl_Troll","", FALSE, 0, FALSE, 0, 4);
//LETO - Change ability scores: (Str +6, Dex, Con +6, Int -4, Wis -2, Cha -4)
struct SubraceBaseStatsModifier TrollStats = CustomBaseStatsModifiers(6, 0, 6, -4, -2, -4, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Troll", TrollStats, 1);
//LETO - Feats: Darkvision
ModifySubraceFeat("Troll", FEAT_DARKVISION, 1);
//LETO - Decreased Skill Modifier: Move Silently -5, Hide -8
ModifySubraceSkill("Troll", SKILL_HIDE, -8, 1, FALSE);
ModifySubraceSkill("Troll", SKILL_MOVE_SILENTLY, -5, 1, FALSE);
//Appearance: Troll - Permanent.
CreateSubraceAppearance("Troll", TIME_BOTH, 2500, 2501);
//Can't use any Tiny weapons (Too big to hold them!!)
SubraceRestrictUseOfItems("Troll", ITEM_TYPE_WEAPON_SIZE_TINY, TIME_BOTH);
//Alignment Restriction - Evil.
CreateSubraceAlignmentRestriction("Troll", FALSE, FALSE, TRUE);
//Favored Class: Fighter.
AddSubraceFavoredClass("Troll", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER);
//::::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Half-Orc - Stinger ECL +6 ::
//::::::::::::::::::::::::::::::::::::::::::
//Properties from Skin: AC +4
CreateSubrace(RACIAL_TYPE_HALFORC, "Stinger", "sha_pcl_stinger", "", FALSE, 0, FALSE, 0, 6);
//LETO - Change ability scores: (Str +6, Dex +4, Con +4, Int, Wis +2, Cha)
struct SubraceBaseStatsModifier StingerStats = CustomBaseStatsModifiers(6, 4, 4, 0, 2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Stinger", StingerStats, 1);
//LETO - Feats: improved initiative, creature weapon, exotic weapon
ModifySubraceFeat("Stinger", FEAT_IMPROVED_INITIATIVE, 1);
ModifySubraceFeat("Stinger", FEAT_WEAPON_PROFICIENCY_CREATURE, 1);
ModifySubraceFeat("Stinger", FEAT_WEAPON_PROFICIENCY_EXOTIC, 1);
//LETO - Skills: Listen +4, Search +4, Spot +4, move silent +2
ModifySubraceSkill("Stinger", SKILL_LISTEN, 4, 1, FALSE);
ModifySubraceSkill("Stinger", SKILL_SEARCH, 4, 1, FALSE);
ModifySubraceSkill("Stinger", SKILL_SPOT, 4, 1, FALSE);
ModifySubraceSkill("Stinger", SKILL_MOVE_SILENTLY, 2, 1, FALSE);
// Favored Class : Ranger
AddSubraceFavoredClass("Stinger", CLASS_TYPE_RANGER, CLASS_TYPE_RANGER);
// Add Poison Stinger
AddClawsToSubrace("Stinger","sha_tail_stinger","",1);
//Alignment Restriction: Evil Only
CreateSubraceAlignmentRestriction("Stinger", FALSE, FALSE, TRUE);
// Appearance: Stinger
CreateSubraceAppearance("Stinger", TIME_BOTH, APPEARANCE_TYPE_STINGER, APPEARANCE_TYPE_STINGER);
// Gender : Male Only
CreateSubraceGenderRestriction("Stinger",TRUE,FALSE);
}