//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::: 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);
   }