/************************************************************************ * script name : pat_cfg * created by : eyesolated * date : 2018/7/31 * * description : Configuration script for PAT * * changes : 2018/7/31 - eyesolated - Initial creation ************************************************************************/ /******************************************************************************* * General Configuration Settings * * This section covers generic settings regarding PAT. ******************************************************************************/ // Enable/Disable PAT const int PAT_ENABLED = TRUE; // Maximum CR that PAT can produce const int PAT_CR_MAXIMUM = 30; const int PAT_IP_MAXMAGICLEVEL = 30; // Elite / Champion System const int PAT_AUTO_CR_ENABLE = TRUE; const int PAT_AUTO_CR_CHANCE_ELITE = 10; const int PAT_AUTO_CR_CHANCE_CHAMPION = 5; const int PAT_AUTO_CR_MODIFIER_ELITE = 1; const int PAT_AUTO_CR_MODIFIER_CHAMPION = 3; const int PAT_AUTO_CR_BONUSLOOT_ELITE = 1; const int PAT_AUTO_CR_BONUSLOOT_CHAMPION= 2; /******************************************************************************* * Progression Configuration Settings * * This section covers the mathematical configuration setting up the progression * curves of the various creature statistics. ******************************************************************************/ // Ability Gain constants const int PAT_ABILITY_BASE = 6; const float PAT_ABILITY_GAIN_EXTREME = 1.5f; const float PAT_ABILITY_GAIN_HIGH = 1.25f; const float PAT_ABILITY_GAIN_MEDIUM = 1.0f; const float PAT_ABILITY_GAIN_LOW = 0.5f; // Saving Throw Gain constants const int PAT_SAVINGTHROW_BASE = 4; const float PAT_SAVINGTHROW_GAIN_HIGH = 1.0f; const float PAT_SAVINGTHROW_GAIN_MEDIUM = 0.7f; const float PAT_SAVINGTHROW_GAIN_LOW = 0.4f; // AC Gain constants // AC calculation: PAT_AC_BASE + (CR / PAT_AC_GAIN + CR * CR / (PAT_AC_GAIN * 10)) const int PAT_AC_BASE = 0; // Natural Armor = 10 const int PAT_AC_MAXIMUM = 30; const float PAT_AC_GAIN_HIGH = 3.0f; const float PAT_AC_GAIN_MEDIUM = 4.0f; const float PAT_AC_GAIN_LOW = 5.0f; // BAB Gain constants const int PAT_BAB_BASE = 0; const float PAT_BAB_GAIN_HIGH = 1.0f; const float PAT_BAB_GAIN_MEDIUM = 0.75f; const float PAT_BAB_GAIN_LOW = 0.5f; // Hitpoint Gain constants // HP calculation: PAT_HP_BASE + (CR * (6 - PAT_HP_GAIN) + CR * CR * CR / (10 * PAT_HP_GAIN)) const int PAT_HP_BASE = 10; // Default: 6; const float PAT_HP_GAIN_HIGH = 2.2f; // Default: 1.1f; const float PAT_HP_GAIN_MEDIUM = 4.4f; // Default: 2.2f; const float PAT_HP_GAIN_LOW = 5.5f; // Default: 3.3f; // Skill Gains const int PAT_SKILLS_BASE = 3; const float PAT_SKILLS_EXTREME = 1.5f; const float PAT_SKILLS_HIGH = 1.25f; const float PAT_SKILLS_MEDIUM = 0.75f; const float PAT_SKILLS_LOW = 0.5f; // Gain Rate Constants // These are used to reference the actual Gain_Rates const int PAT_GAIN_EXTREME = 1; const int PAT_GAIN_HIGH = 2; const int PAT_GAIN_MEDIUM = 3; const int PAT_GAIN_LOW = 4; /******************************************************************************* * Role Configuration * * In this section you can configure constants for Role_IDs and Role_Names to * make referencing them easier ******************************************************************************/ const int PAT_ROLE_UNDEFINED = 0; const int PAT_ROLE_DPS = 99; const int PAT_ROLE_DPS_MELEE = 100; const int PAT_ROLE_DPS_MELEE_STR = 101; const int PAT_ROLE_DPS_MELEE_DEX = 102; const int PAT_ROLE_DPS_RANGE = 200; const int PAT_ROLE_DPS_RANGE_DEX = 201; const int PAT_ROLE_DPS_RANGE_WIS = 202; const int PAT_ROLE_DPS_CASTER = 300; const int PAT_ROLE_DPS_CASTER_INT = 301; const int PAT_ROLE_DPS_CASTER_WIS = 302; const int PAT_ROLE_DPS_CASTER_CHA = 303; const int PAT_ROLE_HEAL = 400; const int PAT_ROLE_HEAL_WIS = 401; const int PAT_ROLE_SUPPORT = 500; const int PAT_ROLE_SUPPORT_INT = 501; const int PAT_ROLE_SUPPORT_WIS = 502; const int PAT_ROLE_SUPPORT_CHA = 503; const int PAT_ROLE_TANK = 600; const int PAT_ROLE_TANK_STR = 601; // From 10000 and up, roles won't get equipped const int PAT_ROLE_NAKED = 10000; const int PAT_ROLE_NAKED_DPS = 10100; const int PAT_ROLE_NAKED_DPS_STR = 10101; const int PAT_ROLE_NAKED_DPS_DEX = 10102; const int PAT_ROLE_NAKED_TANK = 10200; const int PAT_ROLE_NAKED_TANK_STR = 10201; const string PAT_ROLE_NAME_DPS = "DPS"; const string PAT_ROLE_NAME_DPS_MELEE = "DPS_Melee"; const string PAT_ROLE_NAME_DPS_MELEE_STR = "DPS_Melee_STR"; const string PAT_ROLE_NAME_DPS_MELEE_DEX = "DPS_Melee_DEX"; const string PAT_ROLE_NAME_DPS_RANGE = "DPS_Range"; const string PAT_ROLE_NAME_DPS_RANGE_DEX = "DPS_Range_DEX"; const string PAT_ROLE_NAME_DPS_RANGE_WIS = "DPS_Range_WIS"; const string PAT_ROLE_NAME_DPS_CASTER = "DPS_Caster"; const string PAT_ROLE_NAME_DPS_CASTER_INT = "DPS_Caster_INT"; const string PAT_ROLE_NAME_DPS_CASTER_WIS = "DPS_Caster_WIS"; const string PAT_ROLE_NAME_DPS_CASTER_CHA = "DPS_Caster_CHA"; const string PAT_ROLE_NAME_HEAL = "Heal"; const string PAT_ROLE_NAME_HEAL_WIS = "Heal_WIS"; const string PAT_ROLE_NAME_SUPPORT = "Support"; const string PAT_ROLE_NAME_SUPPORT_INT = "Support_INT"; const string PAT_ROLE_NAME_SUPPORT_WIS = "Support_WIS"; const string PAT_ROLE_NAME_SUPPORT_CHA = "Support_CHA"; const string PAT_ROLE_NAME_TANK = "Tank"; const string PAT_ROLE_NAME_TANK_STR = "Tank_STR"; const string PAT_ROLE_NAME_NAKED = "Naked"; const string PAT_ROLE_NAME_NAKED_DPS = "Naked_DPS"; const string PAT_ROLE_NAME_NAKED_DPS_STR = "Naked_DPS_STR"; const string PAT_ROLE_NAME_NAKED_DPS_DEX = "Naked_DPS_DEX"; const string PAT_ROLE_NAME_NAKED_TANK = "Naked_DPS_STR"; const string PAT_ROLE_NAME_NAKED_TANK_STR = "Naked_DPS_DEX"; /******************************************************************************* * Skillset / Feat Pack Configuration * * In this section you can configure constants for Skillsets and Feat Packs to * make referencing them easier / consistent ******************************************************************************/ // Skill Sets const int PAT_SKILLSET_DPS_MELEE_GENERIC = 1; const int PAT_SKILLSET_DPS_RANGE_GENERIC = 2; const int PAT_SKILLSET_DPS_CASTER_GENERIC = 3; const int PAT_SKILLSET_HEAL_GENERIC = 4; const int PAT_SKILLSET_SUPPORT_GENERIC = 5; const int PAT_SKILLSET_TANK_GENERIC = 6; const int PAT_SKILLSET_ROGUE = 7; // Feat Packs const int PAT_FEATPACK_CLASS_ARCANE_ARCHER = 1; const int PAT_FEATPACK_CLASS_ASSASSIN = 2; const int PAT_FEATPACK_CLASS_BARBARIAN = 3; const int PAT_FEATPACK_CLASS_BARD = 4; const int PAT_FEATPACK_CLASS_BLACKGUARD = 5; const int PAT_FEATPACK_CLASS_CLERIC = 6; const int PAT_FEATPACK_CLASS_DIVINE_CHAMPION = 7; const int PAT_FEATPACK_CLASS_DRAGON_DISCIPLE = 8; const int PAT_FEATPACK_CLASS_DRUID = 9; const int PAT_FEATPACK_CLASS_DWARVEN_DEFENDER = 10; const int PAT_FEATPACK_CLASS_FIGHTER = 11; const int PAT_FEATPACK_CLASS_HARPER = 12; const int PAT_FEATPACK_CLASS_MONK = 13; const int PAT_FEATPACK_CLASS_PALADIN = 14; const int PAT_FEATPACK_CLASS_PALE_MASTER = 15; const int PAT_FEATPACK_CLASS_PURPLE_DRAGON_KNIGHT = 16; const int PAT_FEATPACK_CLASS_RANGER = 17; const int PAT_FEATPACK_CLASS_ROGUE = 18; const int PAT_FEATPACK_CLASS_SHADOWDANCER = 19; const int PAT_FEATPACK_CLASS_SHIFTER = 20; const int PAT_FEATPACK_CLASS_SORCERER = 21; const int PAT_FEATPACK_CLASS_WEAPON_MASTER = 22; const int PAT_FEATPACK_CLASS_WIZARD = 23; const int PAT_FEATPACK_NAKED_DPS = 100; const int PAT_FEATPACK_NAKED_TANK = 101; /******************************************************************************* * Spell Configuration * * Known Spell count / level ******************************************************************************/ const int PAT_SPELL_KNOWNSPELLS = 3; /******************************************************************************* * Spell Configuration * * Internal Section - Spell sources, categories and target types ******************************************************************************/ // Spell Sources const int PAT_SPELL_SOURCE_NONE = 0; const int PAT_SPELL_SOURCE_ARCANE_BARD = 1; const int PAT_SPELL_SOURCE_ARCANE_WIZ_SORC = 2; const int PAT_SPELL_SOURCE_DIVINE_CLERIC = 3; const int PAT_SPELL_SOURCE_DIVINE_DRUID = 4; const int PAT_SPELL_SOURCE_DIVINE_PALADIN = 5; const int PAT_SPELL_SOURCE_DIVINE_RANGER = 6; // Spell Categories const int PAT_SPELL_CATEGORY_NONE = 0; const int PAT_SPELL_CATEGORY_DAMAGE = 1; const int PAT_SPELL_CATEGORY_HEAL = 2; const int PAT_SPELL_CATEGORY_BUFF = 4; const int PAT_SPELL_CATEGORY_DEBUFF = 8; const int PAT_SPELL_CATEGORY_SUMMON = 16; const int PAT_SPELL_CATEGORY_DISPEL = 32; const int PAT_SPELL_CATEGORY_ALL = 63; // Spell Targets const int PAT_SPELL_TARGET_UNKNOWN = 0; const int PAT_SPELL_TARGET_SELF = 1; const int PAT_SPELL_TARGET_SINGLE = 2; const int PAT_SPELl_TARGET_AOE = 3; /******************************************************************************* * Variable / Database Configuration * * Do not touch unless you know what you're doing ******************************************************************************/ // Cache Object Reference // You need to place an object with the set Tag somewhere in the module for the // Cache to work const string PAT_CACHE = "PAT_Cache"; // Local Variable Names const string PAT_VAR_CR = "PAT_CR"; const string PAT_VAR_CR_DB = "PAT_CR_DB"; const string PAT_VAR_CR_MODIFIER = "PAT_Modifier"; const string PAT_VAR_ROLE_ID = "PAT_Role_ID"; const string PAT_VAR_ROLE_NAME = "PAT_Role_Name"; const string PAT_VAR_DISABLE = "PAT_Disable"; const string PAT_VAR_NAME_ELITE = "PAT_Name_Elite"; const string PAT_VAR_NAME_CHAMPION = "PAT_Name_Champion"; const string PAT_VAR_DM_SETTING = "PAT_DMSETTING"; const string PAT_INITIALIZATION_BASE = "PAT_Init_Base"; // PAT sets this to 1 if the creature was given the PAT Treatment const string PAT_VAR_APPLIED = "PAT_Applied"; // Database Table Names const string PAT_TABLE_BASE = "PAT_Base"; const string PAT_TABLE_CLASS_SETUP = "PAT_ClassSetup"; const string PAT_TABLE_SPELLS = "PAT_Spells"; const string PAT_TABLE_FEATS = "PAT_Feats"; const string PAT_TABLE_SKILLSETS = "PAT_Skillsets"; const string PAT_TABLE_AREAS = "PAT_Areas"; /******************************************************************************* * Struct Configuration * * This section is internal and shouldn't be modified ******************************************************************************/ // Structs struct PAT_STRUCT_ROLE { int Role_ID; string Role_Name; int CR; int Ability_STR; int Ability_DEX; int Ability_CON; int Ability_WIS; int Ability_INT; int Ability_CHA; int SavingThrow_Fortitude; int SavingThrow_Reflex; int SavingThrow_Will; int AC; int BaseAttackBonus; int BaseHitPoints; }; struct PAT_STRUCT_CLASS_SETUP { int Role_ID; int Class_1; int Class_2; int Class_3; int Spell_Source; int Spell_Category; int Feat_Pack; int Skillset; }; struct PAT_STRUCT_SPELL { int Spell_ID; int Spell_Level; int Source; int Category; int Target; int CR_Minimum; }; struct PAT_STRUCT_FEAT { int Feat_ID; string Packs; int Chance_Base; int Chance_Modifier; int CR_Minimum; int CR_Maximum; }; struct PAT_STRUCT_SKILLSET { int ID; string Skills_Extreme; string Skills_High; string Skills_Medium; string Skills_Low; };