diff --git a/nasher.cfg b/nasher.cfg index 0d4465b..5eed0ff 100644 --- a/nasher.cfg +++ b/nasher.cfg @@ -232,15 +232,18 @@ description = "PRC8 version of A Time For Heroes." filter = "prc_nui_scd_inc.nss" filter = "prc_nui_consts.nss" filter = "nw_inc_nui" - filter = "xchst_inc.nss" + filter = "xchst_inc.nss" + filter = "inc_infusion.nss" + filter = "nw_inc_gff.nss" + filter = "prc_inc_json.nss" [target.rules] "*" = "src/module/$ext" - [target] +[target] name = "pepshak" file = "peps_prc8.hak" -description = "PEPS PRC hakpak for PRC8 version of A Time for Heroes." +description = "PEPS hakpak for PRC8 version of A Time for Heroes." [target.sources] include = "src/hakpak/peps_prc8/**/*" diff --git a/src/include/inc_epicspelldef.nss b/src/include/inc_epicspelldef.nss index 78b89b4..613b0f1 100644 --- a/src/include/inc_epicspelldef.nss +++ b/src/include/inc_epicspelldef.nss @@ -47,77 +47,78 @@ const string MES_CONTINGENCIES_YES2 = "The contingencies must expire to allo */ //Primogenitors SpellID constants -const int SPELL_EPIC_A_STONE = 0;//4007; -const int SPELL_EPIC_ACHHEEL = 1;//4000; -const int SPELL_EPIC_AL_MART = 2;//4002; -const int SPELL_EPIC_ALLHOPE = 3;//4001; -const int SPELL_EPIC_ANARCHY = 4;//4003; -const int SPELL_EPIC_ANBLAST = 5;//4004; -const int SPELL_EPIC_ANBLIZZ = 6;//4005; -const int SPELL_EPIC_ARMY_UN = 7;//4006; -const int SPELL_EPIC_BATTLEB = 999;//4008; -const int SPELL_EPIC_CELCOUN = 8;//4009; -const int SPELL_EPIC_CHAMP_V = 9;//4010; -const int SPELL_EPIC_CON_RES =10;//4011; -const int SPELL_EPIC_CON_REU =11;//4012; -const int SPELL_EPIC_DEADEYE =12;//4013; -const int SPELL_EPIC_DIREWIN =13;//4015; -const int SPELL_EPIC_DREAMSC =14;//4017; -const int SPELL_EPIC_DRG_KNI =15;//4016; -const int SPELL_EPIC_DTHMARK =1000;//4014; -const int SPELL_EPIC_DULBLAD =16;//4018; -const int SPELL_EPIC_DWEO_TH =17;//4019; -const int SPELL_EPIC_ENSLAVE =18;//4020; -const int SPELL_EPIC_EP_M_AR =19;//4021; -const int SPELL_EPIC_EP_RPLS =20;//4022; -const int SPELL_EPIC_EP_SP_R =21;//4023; -const int SPELL_EPIC_EP_WARD =22;//4024; -const int SPELL_EPIC_ET_FREE =23;//4025; -const int SPELL_EPIC_FIEND_W =24;//4026; -const int SPELL_EPIC_FLEETNS =25;//4027; -const int SPELL_EPIC_GEMCAGE =26;//4028; -const int SPELL_EPIC_GODSMIT =27;//4029; -const int SPELL_EPIC_GR_RUIN =28;//4030; -const int SPELL_EPIC_GR_SP_RE=29;//4031; -const int SPELL_EPIC_GR_TIME =30;//4032; -const int SPELL_EPIC_HELBALL =31;//4034; -const int SPELL_EPIC_HELSEND =1001;//4033; -const int SPELL_EPIC_HERCALL =32;//4035; -const int SPELL_EPIC_HERCEMP =33;//4036; -const int SPELL_EPIC_IMPENET =34;//4037; -const int SPELL_EPIC_LEECH_F =35;//4038; -const int SPELL_EPIC_LEG_ART =1002;//4039; -const int SPELL_EPIC_LIFE_FT =1003;//4040; -const int SPELL_EPIC_MAGMA_B =36;//4041; -const int SPELL_EPIC_MASSPEN =37;//4042; -const int SPELL_EPIC_MORI = 38;//4043; -const int SPELL_EPIC_MUMDUST =39;//4044; -const int SPELL_EPIC_NAILSKY =40;//4045; -const int SPELL_EPIC_NIGHTSU =1004;//4046; -const int SPELL_EPIC_ORDER_R =41;//4047; -const int SPELL_EPIC_PATHS_B =42;//4048; -const int SPELL_EPIC_PEERPEN =43;//4049; -const int SPELL_EPIC_PESTIL = 44;//4050; -const int SPELL_EPIC_PIOUS_P =45;//4051; -const int SPELL_EPIC_PLANCEL =46;//4052; -const int SPELL_EPIC_PSION_S =47;//4053; -const int SPELL_EPIC_RAINFIR =48;//4054; -const int SPELL_EPIC_RISEN_R =1005;//4055; -const int SPELL_EPIC_RUINN = 49;//4056; //NON_STANDARD -const int SPELL_EPIC_SINGSUN =50;//4057; -const int SPELL_EPIC_SP_WORM =51;//4058; -const int SPELL_EPIC_STORM_M =52;//4059; -const int SPELL_EPIC_SUMABER =53;//4060; -const int SPELL_EPIC_SUP_DIS =54;//4061; -const int SPELL_EPIC_SYMRUST =1006;//4062; -const int SPELL_EPIC_THEWITH =55;//4063; -const int SPELL_EPIC_TOLO_KW =56;//4064; -const int SPELL_EPIC_TRANVIT =57;//4065; -const int SPELL_EPIC_TWINF = 58;//4066; -const int SPELL_EPIC_UNHOLYD =59;//4067; -const int SPELL_EPIC_UNIMPIN =60;//4068; -const int SPELL_EPIC_UNSEENW =61;//4069; -const int SPELL_EPIC_WHIP_SH =62;//4070; +const int SPELL_EPIC_A_STONE = 0;//4007; +const int SPELL_EPIC_ACHHEEL = 1;//4000; +const int SPELL_EPIC_AL_MART = 2;//4002; +const int SPELL_EPIC_ALLHOPE = 3;//4001; +const int SPELL_EPIC_ANARCHY = 4;//4003; +const int SPELL_EPIC_ANBLAST = 5;//4004; +const int SPELL_EPIC_ANBLIZZ = 6;//4005; +const int SPELL_EPIC_ARMY_UN = 7;//4006; +const int SPELL_EPIC_BATTLEB = 999;//4008; +const int SPELL_EPIC_CELCOUN = 8;//4009; +const int SPELL_EPIC_CHAMP_V = 9;//4010; +const int SPELL_EPIC_CON_RES = 10;//4011; +const int SPELL_EPIC_CON_REU = 11;//4012; +const int SPELL_EPIC_DEADEYE = 12;//4013; +const int SPELL_EPIC_DIREWIN = 13;//4015; +const int SPELL_EPIC_DREAMSC = 14;//4017; +const int SPELL_EPIC_DRG_KNI = 15;//4016; +const int SPELL_EPIC_DTHMARK = 1000;//4014; +const int SPELL_EPIC_DULBLAD = 16;//4018; +const int SPELL_EPIC_DWEO_TH = 17;//4019; +const int SPELL_EPIC_ENSLAVE = 18;//4020; +const int SPELL_EPIC_EP_M_AR = 19;//4021; +const int SPELL_EPIC_EP_RPLS = 20;//4022; +const int SPELL_EPIC_EP_SP_R = 21;//4023; +const int SPELL_EPIC_EP_WARD = 22;//4024; +const int SPELL_EPIC_ET_FREE = 23;//4025; +const int SPELL_EPIC_FIEND_W = 24;//4026; +const int SPELL_EPIC_FLEETNS = 25;//4027; +const int SPELL_EPIC_GEMCAGE = 26;//4028; +const int SPELL_EPIC_GODSMIT = 27;//4029; +const int SPELL_EPIC_GR_RUIN = 28;//4030; +const int SPELL_EPIC_GR_SP_RE = 29;//4031; +const int SPELL_EPIC_GR_TIME = 30;//4032; +const int SPELL_EPIC_HELBALL = 31;//4034; +const int SPELL_EPIC_HELSEND = 1001;//4033; +const int SPELL_EPIC_HERCALL = 32;//4035; +const int SPELL_EPIC_HERCEMP = 33;//4036; +const int SPELL_EPIC_IMPENET = 34;//4037; +const int SPELL_EPIC_LEECH_F = 35;//4038; +const int SPELL_EPIC_LEG_ART = 1002;//4039; +const int SPELL_EPIC_LIFE_FT = 1003;//4040; +const int SPELL_EPIC_MAGMA_B = 36;//4041; +const int SPELL_EPIC_MASSPEN = 37;//4042; +const int SPELL_EPIC_MORI = 38;//4043; +const int SPELL_EPIC_MUMDUST = 39;//4044; +const int SPELL_EPIC_NAILSKY = 40;//4045; +const int SPELL_EPIC_NIGHTSU = 1004;//4046; +const int SPELL_EPIC_ORDER_R = 41;//4047; +const int SPELL_EPIC_PATHS_B = 42;//4048; +const int SPELL_EPIC_PEERPEN = 43;//4049; +const int SPELL_EPIC_PESTIL = 44;//4050; +const int SPELL_EPIC_PIOUS_P = 45;//4051; +const int SPELL_EPIC_PLANCEL = 46;//4052; +const int SPELL_EPIC_PSION_S = 47;//4053; +const int SPELL_EPIC_RAINFIR = 48;//4054; +//const int SPELL_EPIC_RISEN_R =1005;//4055; +const int SPELL_EPIC_RISEN_R = 49;//4055; +const int SPELL_EPIC_RUINN = 50;//4056; //NON_STANDARD +const int SPELL_EPIC_SINGSUN = 51;//4057; +const int SPELL_EPIC_SP_WORM = 52;//4058; +const int SPELL_EPIC_STORM_M = 53;//4059; +const int SPELL_EPIC_SUMABER = 54;//4060; +const int SPELL_EPIC_SUP_DIS = 55;//4061; +const int SPELL_EPIC_SYMRUST = 1006;//4062; +const int SPELL_EPIC_THEWITH = 56;//4063; +const int SPELL_EPIC_TOLO_KW = 57;//4064; +const int SPELL_EPIC_TRANVIT = 58;//4065; +const int SPELL_EPIC_TWINF = 59;//4066; +const int SPELL_EPIC_UNHOLYD = 60;//4067; +const int SPELL_EPIC_UNIMPIN = 61;//4068; +const int SPELL_EPIC_UNSEENW = 62;//4069; +const int SPELL_EPIC_WHIP_SH = 63;//4070; /* diff --git a/src/include/inc_infusion.nss b/src/include/inc_infusion.nss new file mode 100644 index 0000000..e9c7528 --- /dev/null +++ b/src/include/inc_infusion.nss @@ -0,0 +1,481 @@ +//::////////////////////////////////////////////// +//:: ;-. ,-. ,-. ,-. +//:: | ) | ) / ( ) +//:: |-' |-< | ;-: +//:: | | \ \ ( ) +//:: ' ' ' `-' `-' +//:://///////////////////////////////////////////// +//:: +/* + Script: inc_infusion + Author: Jaysyn + Created: 2025-08-11 17:01:26 + + Description: + Contains most functions related to the Create + Infusion feat. + +*/ +//:: +//::////////////////////////////////////////////// +#include "prc_inc_spells" + +int GetMaxDivineSpellLevel(object oCaster, int nClass); +int GetCastSpellCasterLevelFromItem(object oItem, int nSpellID); +int GetIsClassSpell(object oCaster, int nSpellID, int nClass); +int GetHasSpellOnClassList(object oCaster, int nSpellID); +void InfusionSecondSave(object oUser, int nDC); + +/** + * @brief Finds the class index for which the given spell is available to the specified caster. + * + * This function iterates through all possible classes and returns the first class + * index for which the specified spell is on the caster's spell list. + * + * @param oCaster The creature object to check. + * @param nSpellID The spell ID to find the class for. + * + * @return The class index that has the spell on its class spell list for the caster, + * or -1 if no matching class is found. + */ +int FindSpellCastingClass(object oCaster, int nSpellID) +{ + int i = 0; + int nClassFound = -1; + int nClass; + + // Only loop through caster's classes + for (i = 0; i <= 8; i++) + { + nClass = GetClassByPosition(i, oCaster); + if (nClass == CLASS_TYPE_INVALID) continue; + + if (GetIsClassSpell(oCaster, nSpellID, nClass)) + { + nClassFound = nClass; + break; + } + } + + return nClassFound; +} + + +/** + * @brief Performs validation checks to determine if the caster can use a spell infusion from the specified item. + * + * This function verifies that the item is a valid infused herb, checks the caster's relevant class and ability scores, + * confirms the caster is a divine spellcaster with the necessary caster level, and ensures the spell is on the caster's class spell list. + * + * @param oCaster The creature attempting to use the infusion. + * @param oItem The infused herb item containing the spell. + * @param nSpellID The spell ID of the infusion spell being cast. + * + * @return TRUE if all infusion use checks pass and the caster can use the infusion; FALSE otherwise. + */ + int DoInfusionUseChecks(object oCaster, object oItem, int nSpellID) +{ + int bPnPHerbs = GetPRCSwitch(PRC_CREATE_INFUSION_OPTIONAL_HERBS); + + if(GetBaseItemType(oItem) != BASE_ITEM_INFUSED_HERB) + { + FloatingTextStringOnCreature("Not casting from an Infused Herb", oCaster); + return FALSE; + } + + int nItemSpellLvl = GetCastSpellCasterLevelFromItem(oItem, nSpellID); + if (bPnPHerbs && nItemSpellLvl == -1) + { + FloatingTextStringOnCreature("Item has no spellcaster level.", oCaster); + return FALSE; + } + + // **CRITICAL: Find the correct class that actually has the spell on its list** + int nClassCaster = FindSpellCastingClass(oCaster, nSpellID); + + if(DEBUG) DoDebug("nClassCaster is: " + IntToString(nClassCaster) + "."); + + // Check for valid class + if (nClassCaster == -1) + { + FloatingTextStringOnCreature("No valid class found for this spell.", oCaster); + return FALSE; + } + + if(GetMaxDivineSpellLevel(oCaster, nClassCaster) < 1 ) + { + FloatingTextStringOnCreature("You must be a divine spellcaster to activate an infusion.", oCaster); + return FALSE; + } + + // Must have spell on class list - (This will also double-check via the class) + if (!GetHasSpellOnClassList(oCaster, nSpellID)) + { + FloatingTextStringOnCreature("You must have a spell on one of your class spell lists to cast it from an infusion.", oCaster); + return FALSE; + } + + // Must meet ability requirement: Ability score >= 10 + spell level + int nSpellLevel = PRCGetSpellLevelForClass(nSpellID, nClassCaster); + int nClassAbility = GetAbilityScoreForClass(nClassCaster, oCaster); + + if(DEBUG) DoDebug("inc_infusion >> DoInfusionUseChecks: nClassCaster is "+IntToString(nClassCaster)+"."); + if(DEBUG) DoDebug("inc_infusion >> DoInfusionUseChecks: Class nSpellLevel is "+IntToString(nSpellLevel)+"."); + if(DEBUG) DoDebug("inc_infusion >> DoInfusionUseChecks: nClassAbility is "+IntToString(nClassAbility)+"."); + + if (nClassAbility < 10 + nSpellLevel) + { + FloatingTextStringOnCreature("You must meet ability score requirement to cast spell from infusion.", oCaster); + return FALSE; + } + + // Must have a divine caster level at least equal to infusion's caster level + int nDivineLvl = GetPrCAdjustedCasterLevelByType(TYPE_DIVINE, oCaster); + + if(DEBUG) DoDebug("inc_infusion >> DoInfusionUseChecks: nDivineLvl is "+IntToString(nDivineLvl)+"."); + + if (nDivineLvl < nItemSpellLvl) + { + FloatingTextStringOnCreature("Your divine caster level is too low to cast this spell from an infusion.", oCaster); + return FALSE; + } + + return TRUE; +} + +/* int DoInfusionUseChecks(object oCaster, object oItem, int nSpellID) +{ + int bPnPHerbs = GetPRCSwitch(PRC_CREATE_INFUSION_OPTIONAL_HERBS); + + if(GetBaseItemType(oItem) != BASE_ITEM_INFUSED_HERB) + { + FloatingTextStringOnCreature("Not casting from an Infused Herb", oCaster); + return FALSE; + + } + + int nItemSpellLvl = GetCastSpellCasterLevelFromItem(oItem, nSpellID); + if (bPnPHerbs && nItemSpellLvl == -1) + { + FloatingTextStringOnCreature("Item has no spellcaster level.", oCaster); + return FALSE; + } + + // Find relevant class for the spell + int nClassCaster = FindSpellCastingClass(oCaster, nSpellID); + + if(DEBUG) DoDebug("nClassCaster is: "+IntToString(nClassCaster)+"."); + + if(GetMaxDivineSpellLevel(oCaster, nClassCaster) < 1 ) + { + FloatingTextStringOnCreature("You must be a divine spellcaster to activate an infusion.", oCaster); + return FALSE; + } + + // Must have spell on class list + if (!GetHasSpellOnClassList(oCaster, nSpellID)) + { + FloatingTextStringOnCreature("You must have a spell on one of your class spell lists to cast it from an infusion.", oCaster); + return FALSE; + } + + // Must meet ability requirement: Ability score >= 10 + spell level + int nSpellLevel = PRCGetSpellLevelForClass(nSpellID, nClassCaster); + int nClassAbility = GetAbilityScoreForClass(nClassCaster, oCaster); + + if(DEBUG) DoDebug("inc_infusion >> DoInfusionUseChecks: nClassCaster is "+IntToString(nClassCaster)+"."); + if(DEBUG) DoDebug("inc_infusion >> DoInfusionUseChecks: Class nSpellLevel is "+IntToString(nSpellLevel)+"."); + if(DEBUG) DoDebug("inc_infusion >> DoInfusionUseChecks: nClassAbility is "+IntToString(nClassAbility)+"."); + + if (nClassAbility < 10 + nSpellLevel) + { + FloatingTextStringOnCreature("You must meet ability score requirement to cast spell from infusion.", oCaster); + return FALSE; + } + + // Must have a divine caster level at least equal to infusion's caster level + int nDivineLvl = GetPrCAdjustedCasterLevelByType(TYPE_DIVINE, oCaster); + + if(DEBUG) DoDebug("inc_infusion >> DoInfusionUseChecks: nDivineLvl is "+IntToString(nDivineLvl)+"."); + + if (nDivineLvl < nItemSpellLvl) + { + FloatingTextStringOnCreature("Your divine caster level is too low to cast this spell from an infusion.", oCaster); + return FALSE; + } + + return TRUE; +} + */ +/** + * @brief Retrieves the maximum divine spell level known by the caster for a given class. + * + * This function checks the caster's local integers named "PRC_DivSpell1" through "PRC_DivSpell9" + * in descending order to determine the highest divine spell level available. + * It returns the highest spell level for which the corresponding local int is false (zero). + * + * @param oCaster The creature whose divine spell levels are being checked. + * @param nClass The class index for which to check the divine spell level (currently unused). + * + * @return The highest divine spell level known by the caster (1 to 9). + */ +int GetMaxDivineSpellLevel(object oCaster, int nClass) +{ + int i = 9; + for (i; i > 0; i--) + { + if(!GetLocalInt(oCaster, "PRC_DivSpell"+IntToString(i))) + return i; + } + return 1; +} + +/** + * @brief Retrieves the spell school of an herb based on its resref by looking it up in the craft_infusion.2da file. + * + * This function searches the "craft_infusion" 2DA for a row matching the herb's resref. + * If found, it returns the corresponding spell school as an integer constant. + * If not found or the SpellSchool column is missing/invalid, it returns -1. + * + * @param oHerb The herb object to check. + * + * @return The spell school constant corresponding to the herb's infusion spell school, + * or -1 if the herb is invalid, not found, or the data is missing. + */ +int GetHerbsSpellSchool(object oHerb) +{ + if (!GetIsObjectValid(oHerb)) return -1; + + string sResref = GetResRef(oHerb); + int nRow = 0; + string sRowResref; + + while (nRow < 200) + { + sRowResref = Get2DACache("craft_infusion", "Resref", nRow); + if (sRowResref == "") break; + if (sRowResref == sResref) + { + string sHerbSpellSchool = Get2DAString("craft_infusion", "SpellSchool", nRow); + + if (sHerbSpellSchool == "A") return SPELL_SCHOOL_ABJURATION; + else if (sHerbSpellSchool == "C") return SPELL_SCHOOL_CONJURATION; + else if (sHerbSpellSchool == "D") return SPELL_SCHOOL_DIVINATION; + else if (sHerbSpellSchool == "E") return SPELL_SCHOOL_ENCHANTMENT; + else if (sHerbSpellSchool == "V") return SPELL_SCHOOL_EVOCATION; + else if (sHerbSpellSchool == "I") return SPELL_SCHOOL_ILLUSION; + else if (sHerbSpellSchool == "N") return SPELL_SCHOOL_NECROMANCY; + else if (sHerbSpellSchool == "T") return SPELL_SCHOOL_TRANSMUTATION; + else return SPELL_SCHOOL_GENERAL; + + return -1; + } + nRow++; + } + return -1; // Not found +} + +/** + * @brief Retrieves the infusion spell level of an herb by matching its resref in the craft_infusion.2da file. + * + * This function searches the "craft_infusion" 2DA for a row matching the herb's resref. + * If found, it returns the spell level from the SpellLevel column as an integer. + * If not found or the column is missing, it returns -1. + * + * @param oHerb The herb object whose infusion spell level is to be retrieved. + * + * @return The spell level as an integer if found, or -1 if the herb is invalid, not found, or the column is missing. + */ +int GetHerbsInfusionSpellLevel(object oHerb) +{ + if (!GetIsObjectValid(oHerb)) return -1; + + string sResref = GetResRef(oHerb); + int nRow = 0; + string sRowResref; + + // Brute-force loop — adjust limit if your 2DA has more than 500 rows + while (nRow < 200) + { + sRowResref = Get2DACache("craft_infusion", "Resref", nRow); + if (sRowResref == "") break; // End of valid rows + if (sRowResref == sResref) + { + string sSpellLevelStr = Get2DAString("craft_infusion", "SpellLevel", nRow); + return StringToInt(sSpellLevelStr); + } + nRow++; + } + return -1; // Not found +} + +/** + * @brief Retrieves the caster level of a specific cast-spell item property from an item. + * + * This function iterates through the item properties of the given item, searching for an + * ITEM_PROPERTY_CAST_SPELL_CASTER_LEVEL property that matches the specified spell ID. + * If found, it returns the caster level value stored in the item property. + * + * @param oItem The item object to check. + * @param nSpellID The spell ID to match against the item property. + * + * @return The caster level associated with the matching cast-spell item property, + * or -1 if no matching property is found. + */ +int GetCastSpellCasterLevelFromItem(object oItem, int nSpellID) +{ + int nFoundCL = -1; + + itemproperty ip = GetFirstItemProperty(oItem); + while (GetIsItemPropertyValid(ip)) + { + int nType = GetItemPropertyType(ip); + + // First preference: PRC's CASTER_LEVEL itemprop + if (nType == ITEM_PROPERTY_CAST_SPELL_CASTER_LEVEL) + { + int nSubType = GetItemPropertySubType(ip); + string sSpellIDStr = Get2DAString("iprp_spells", "SpellIndex", nSubType); + int nSubSpellID = StringToInt(sSpellIDStr); + + if (nSubSpellID == nSpellID) + { + return GetItemPropertyCostTableValue(ip); // Found exact CL + } + } + + // Fallback: vanilla CAST_SPELL property + if (nType == ITEM_PROPERTY_CAST_SPELL && nFoundCL == -1) + { + int nSubType = GetItemPropertySubType(ip); + string sSpellIDStr = Get2DAString("iprp_spells", "SpellIndex", nSubType); + int nSubSpellID = StringToInt(sSpellIDStr); + + if (nSubSpellID == nSpellID) + { + // Vanilla uses CostTableValue for *number of uses*, not CL, + // so we’ll assume default caster level = spell level * 2 - 1 + int nSpellLevel = StringToInt(Get2DAString("spells", "Innate", nSubSpellID)); + nFoundCL = nSpellLevel * 2 - 1; // default NWN caster level rule + } + } + + ip = GetNextItemProperty(oItem); + } + + return nFoundCL; // -1 if not found +} + + +/** + * @brief Checks if a given spell ID is present on the specified class's spell list for the caster. + * + * This function determines the spell level of the spell for the given class using PRCGetSpellLevelForClass. + * If the spell level is -1, the spell is not on the class's spell list. + * Otherwise, the spell is considered to be on the class spell list. + * + * @param oCaster The creature object casting or querying the spell. + * @param nSpellID The spell ID to check. + * @param nClass The class index to check the spell list against. + * + * @return TRUE if the spell is on the class's spell list; FALSE otherwise. + */ +int GetIsClassSpell(object oCaster, int nSpellID, int nClass) +{ + if(DEBUG) DoDebug("inc_infusion >> GetIsClassSpell: nSpellID is: "+IntToString(nSpellID)+"."); + if(DEBUG) DoDebug("inc_infusion >> GetIsClassSpell: nClass is: "+IntToString(nClass)+"."); + + int nSpellLevel = PRCGetSpellLevelForClass(nSpellID, nClass); + if (nSpellLevel == -1) + { + if(DEBUG) DoDebug("inc_infusion >> GetIsClassSpell: SpellLevel is "+IntToString(nSpellLevel)+"."); + if(DEBUG) DoDebug("inc_infusion >> GetIsClassSpell: Spell "+IntToString(nSpellID)+" is not in spelllist of "+IntToString(nClass)+"."); + return FALSE; + } + return TRUE; +} + +/** + * @brief Checks if the caster has the specified spell on any of their class spell lists. + * + * This function iterates through all classes the caster has (up to position 8), + * and returns TRUE if the spell is found on any class's spell list. + * + * @param oCaster The creature object to check. + * @param nSpellID The spell ID to search for. + * + * @return TRUE if the spell is present on at least one of the caster's class spell lists; + * FALSE otherwise. + */ +int GetHasSpellOnClassList(object oCaster, int nSpellID) +{ + int i; + for (i = 0; i <= 8; i++) + { + int nClass = GetClassByPosition(i, oCaster); + if (nClass == CLASS_TYPE_INVALID) continue; + + if (GetIsClassSpell(oCaster, nSpellID, nClass)) + { + if(DEBUG) DoDebug("inc_infusion >> GetHasSpellOnClassList: Class spell found."); + return TRUE; + } + } + if(DEBUG) DoDebug("inc_infusion >> GetHasSpellOnClassList: Class spell not found."); + return FALSE; +} + +/** + * @brief Applies a poison nausea effect to the user when infusion use fails. + * + * This function performs an immediate Fortitude saving throw against poison DC based on infusion caster level. + * If the user fails and is not immune to poison, an infusion nausea effect is applied, replacing any existing one. + * A second saving throw is scheduled after 1 minute to attempt to remove the effect. + * + * @param oUser The creature who used the infusion and may be poisoned. + * @param nInfusionCL The caster level of the infusion used, affecting the DC of the saving throw. + */ +void ApplyInfusionPoison(object oUser, int nInfusionCL) +{ + int nDC = 10 + (nInfusionCL / 2); + int bImmune = GetIsImmune(oUser, IMMUNITY_TYPE_POISON); + + // First save immediately + if (!bImmune && !PRCMySavingThrow(SAVING_THROW_FORT, oUser, nDC, SAVING_THROW_TYPE_POISON)) + { + // Remove existing infusion poison nausea effect before applying new + effect eOld = GetFirstEffect(oUser); + while (GetIsEffectValid(eOld)) + { + if (GetEffectTag(eOld) == "INFUSION_POISON_TAG") + { + RemoveEffect(oUser, eOld); + break; // Assuming only one effect with this tag + } + eOld = GetNextEffect(oUser); + } + + effect eNausea = EffectNausea(oUser, 60.0f); + + TagEffect(eNausea, "INFUSION_POISON_TAG"); + FloatingTextStringOnCreature("The infusion has made you nauseous.", oUser); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eNausea, oUser, RoundsToSeconds(10)); + } + + // Second save 1 minute later + if (!bImmune) + { + DelayCommand(60.0, InfusionSecondSave(oUser, nDC)); + } +} + +void InfusionSecondSave(object oUser, int nDC) +{ + if (!PRCMySavingThrow(SAVING_THROW_FORT, oUser, nDC, SAVING_THROW_TYPE_POISON)) + { + FloatingTextStringOnCreature("The infusion has made you nauseous.", oUser); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectNausea(oUser, 60.0f), oUser, RoundsToSeconds(10)); + } +} + +//:: void main (){} \ No newline at end of file diff --git a/src/include/inc_lookups.nss b/src/include/inc_lookups.nss index e5a5124..fa68b5c 100644 --- a/src/include/inc_lookups.nss +++ b/src/include/inc_lookups.nss @@ -242,25 +242,27 @@ void SetupLookupStage(object oMod, int n) case 11: SetLkupStage(n, oMod, CLASS_TYPE_DRAGON_SHAMAN, "cls_inv_drgshm"); break; case 12: SetLkupStage(n, oMod, CLASS_TYPE_WARLOCK, "cls_inv_warlok"); break; case 13: SetLkupStage(n, oMod, CLASS_TYPE_ARCHIVIST, "cls_spell_archv"); break; - case 14: SetLkupStage(n, oMod, CLASS_TYPE_ASSASSIN, "cls_spell_asasin"); break; - case 15: SetLkupStage(n, oMod, CLASS_TYPE_BARD, "cls_spell_bard"); break; - case 16: SetLkupStage(n, oMod, CLASS_TYPE_BEGUILER, "cls_spell_beguil"); break; - case 17: SetLkupStage(n, oMod, CLASS_TYPE_DREAD_NECROMANCER, "cls_spell_dnecro"); break; - case 18: SetLkupStage(n, oMod, CLASS_TYPE_DUSKBLADE, "cls_spell_duskbl"); break; - case 19: SetLkupStage(n, oMod, CLASS_TYPE_FAVOURED_SOUL, "cls_spell_favsol"); break; - case 20: SetLkupStage(n, oMod, CLASS_TYPE_HARPER, "cls_spell_harper"); break; - case 21: SetLkupStage(n, oMod, CLASS_TYPE_HEXBLADE, "cls_spell_hexbl"); break; - case 22: SetLkupStage(n, oMod, CLASS_TYPE_JUSTICEWW, "cls_spell_justww"); break; - case 23: SetLkupStage(n, oMod, CLASS_TYPE_SORCERER, "cls_spell_sorc"); break; - case 24: SetLkupStage(n, oMod, CLASS_TYPE_SUBLIME_CHORD, "cls_spell_schord"); break; - case 25: SetLkupStage(n, oMod, CLASS_TYPE_SUEL_ARCHANAMACH, "cls_spell_suel"); break; - case 26: SetLkupStage(n, oMod, CLASS_TYPE_VIGILANT, "cls_spell_vigil"); break; - case 27: SetLkupStage(n, oMod, CLASS_TYPE_WARMAGE, "cls_spell_wrmage"); break; - case 28: SetLkupStage(n, oMod, CLASS_TYPE_KNIGHT_WEAVE, "cls_spell_kngtwv"); break; - case 29: SetLkupStage(n, oMod, CLASS_TYPE_PSYCHIC_ROGUE, "cls_psipw_psyrog"); break; - case 30: SetLkupStage(n, oMod, CLASS_TYPE_SHADOWCASTER, "cls_myst_shdcst"); break; - case 31: SetLkupStage(n, oMod, CLASS_TYPE_SHADOWSMITH, "cls_myst_shdsmt"); break; - case 32: SetLkupStage(n, oMod, CLASS_TYPE_CELEBRANT_SHARESS, "cls_spell_sharss"); break; + case 14: SetLkupStage(n, oMod, CLASS_TYPE_BARD, "cls_spell_bard"); break; + case 15: SetLkupStage(n, oMod, CLASS_TYPE_BEGUILER, "cls_spell_beguil"); break; + case 16: SetLkupStage(n, oMod, CLASS_TYPE_DREAD_NECROMANCER, "cls_spell_dnecro"); break; + case 17: SetLkupStage(n, oMod, CLASS_TYPE_DUSKBLADE, "cls_spell_duskbl"); break; + case 18: SetLkupStage(n, oMod, CLASS_TYPE_FAVOURED_SOUL, "cls_spell_favsol"); break; + case 19: SetLkupStage(n, oMod, CLASS_TYPE_HARPER, "cls_spell_harper"); break; + case 20: SetLkupStage(n, oMod, CLASS_TYPE_HEXBLADE, "cls_spell_hexbl"); break; + case 21: SetLkupStage(n, oMod, CLASS_TYPE_JUSTICEWW, "cls_spell_justww"); break; + case 22: SetLkupStage(n, oMod, CLASS_TYPE_SORCERER, "cls_spell_sorc"); break; + case 23: SetLkupStage(n, oMod, CLASS_TYPE_SUBLIME_CHORD, "cls_spell_schord"); break; + case 24: SetLkupStage(n, oMod, CLASS_TYPE_SUEL_ARCHANAMACH, "cls_spell_suel"); break; + case 25: SetLkupStage(n, oMod, CLASS_TYPE_VIGILANT, "cls_spell_vigil"); break; + case 26: SetLkupStage(n, oMod, CLASS_TYPE_WARMAGE, "cls_spell_wrmage"); break; + case 27: SetLkupStage(n, oMod, CLASS_TYPE_KNIGHT_WEAVE, "cls_spell_kngtwv"); break; + case 28: SetLkupStage(n, oMod, CLASS_TYPE_PSYCHIC_ROGUE, "cls_psipw_psyrog"); break; + case 29: SetLkupStage(n, oMod, CLASS_TYPE_SHADOWCASTER, "cls_myst_shdcst"); break; + case 30: SetLkupStage(n, oMod, CLASS_TYPE_SHADOWSMITH, "cls_myst_shdsmt"); break; + case 31: SetLkupStage(n, oMod, CLASS_TYPE_CELEBRANT_SHARESS, "cls_spell_sharss"); break; + + //:: These were all moved to the Bioware spellbooks -Jaysyn + //case 14: SetLkupStage(n, oMod, CLASS_TYPE_ASSASSIN, "cls_spell_asasin"); break; //case 46: SetLkupStage(n, oMod, CLASS_TYPE_CULTIST_SHATTERED_PEAK, "cls_spell_cultst"); break; //case 40: SetLkupStage(n, oMod, CLASS_TYPE_NENTYAR_HUNTER, "cls_spell_hunter"); break; //case 28: SetLkupStage(n, oMod, CLASS_TYPE_SHADOWLORD, "cls_spell_tfshad"); break; @@ -528,7 +530,7 @@ int SpellToSpellbookID(int nSpell) int nOutSpellID = GetLocalInt(oWP, /*"PRC_GetRowFromSpellID_" + */IntToString(nSpell)); if(nOutSpellID == 0) nOutSpellID = -1; - //if(DEBUG) DoDebug("SpellToSpellbookID(" + IntToString(nSpell) + ", " + sFile + ") = " + IntToString(nOutSpellID)); + if(DEBUG) DoDebug("inc_lookup >> SpellToSpellbookID: (nSpell: " + IntToString(nSpell) + ") = nOutSpellID: " + IntToString(nOutSpellID)); return nOutSpellID; } diff --git a/src/include/inc_newspellbook.nss b/src/include/inc_newspellbook.nss index a77365e..542e2d5 100644 --- a/src/include/inc_newspellbook.nss +++ b/src/include/inc_newspellbook.nss @@ -8,7 +8,7 @@ Make cls_spcr_*.2da Make blank cls_spell_*.2da Add cls_spgn_*.2da to classes.2da Add class entry in prc_classes.2da -Add the spellbook feat (#1999) to cls_feat_*.2da at the appropriate level +Add the spellbook feat (#1999) to cls_feat_*.2da at the appropriate level (not needed for NWN:EE) Add class to PRCGetSpellSaveDC() in prc_add_spell_dc Add class to GetSpellbookTypeForClass() below Add class to GetAbilityScoreForClass() below @@ -559,7 +559,7 @@ int bKnowsAllClassSpells(int nClass) { //case CLASS_TYPE_WIZARD: case CLASS_TYPE_ARCHIVIST: - case CLASS_TYPE_ASSASSIN: + //case CLASS_TYPE_ASSASSIN: case CLASS_TYPE_BARD: case CLASS_TYPE_CELEBRANT_SHARESS: case CLASS_TYPE_CULTIST_SHATTERED_PEAK: @@ -580,7 +580,79 @@ int bKnowsAllClassSpells(int nClass) return TRUE; } + int GetSpellKnownMaxCount(int nLevel, int nSpellLevel, int nClass, object oPC) +{ + // If the character doesn't have any spell slots available on for this level, it can't know any spells of that level either + if(!GetSlotCount(nLevel, nSpellLevel, GetAbilityScoreForClass(nClass, oPC), nClass)) + { + if(DEBUG) DoDebug("GetSpellKnownMaxCount: No slots available for " + IntToString(nClass) + " level " + IntToString(nLevel) + " circle " + IntToString(nSpellLevel)); + return 0; + } + + int nKnown; + string sFile = Get2DACache("classes", "SpellKnownTable", nClass); + string sKnown = Get2DACache(sFile, "SpellLevel" + IntToString(nSpellLevel), nLevel - 1); + + if(DEBUG) + { + DoDebug("GetSpellKnownMaxCount Details:"); + DoDebug("- Class: " + IntToString(nClass)); + DoDebug("- Passed Level: " + IntToString(nLevel)); + DoDebug("- Base Class Level: " + IntToString(GetLevelByClass(nClass, oPC))); + DoDebug("- Effective Level: " + IntToString(GetSpellslotLevel(nClass, oPC))); + DoDebug("- Spell Level: " + IntToString(nSpellLevel)); + DoDebug("- SpellKnownTable: " + sFile); + DoDebug("- MaxKnown from 2DA: " + sKnown); + } + + if(sKnown == "") + { + nKnown = -1; + if(DEBUG) DoDebug("GetSpellKnownMaxCount: Problem getting known numbers"); + } + else + nKnown = StringToInt(sKnown); + + if(nKnown == -1) + return 0; + + // COMPLETELY REWROTE THIS SECTION + // Bard and Sorcerer logic for prestige class advancement + if(nClass == CLASS_TYPE_SORCERER || nClass == CLASS_TYPE_BARD) + { + int baseClassLevel = GetLevelByClass(nClass, oPC); + int effectiveLevel = GetSpellslotLevel(nClass, oPC); + + // Debug the values we're checking + if(DEBUG) + { + DoDebug("Spont caster check - Base level: " + IntToString(baseClassLevel) + + ", Effective level: " + IntToString(effectiveLevel)); + } + + // If they have prestige class advancement OR special feats, they should get spells + if(effectiveLevel > baseClassLevel || + GetHasFeat(FEAT_DRACONIC_GRACE, oPC) || + GetHasFeat(FEAT_DRACONIC_BREATH, oPC)) + { + // Allow them to get spells - do nothing here, return nKnown at the end + if(DEBUG) DoDebug("Spontaneous caster eligible for new spells"); + } + else + { + // No advancement, no special feats - no new spells + if(DEBUG) DoDebug("Spontaneous caster NOT eligible for new spells"); + return 0; + } + } + + if(DEBUG) DoDebug("Final spell known count: " + IntToString(nKnown)); + return nKnown; +} + + +/* int GetSpellKnownMaxCount(int nLevel, int nSpellLevel, int nClass, object oPC) { // If the character doesn't have any spell slots available on for this level, it can't know any spells of that level either // @todo Check rules. There might be cases where this doesn't hold @@ -588,22 +660,9 @@ int GetSpellKnownMaxCount(int nLevel, int nSpellLevel, int nClass, object oPC) return 0; int nKnown; string sFile; - // Bioware casters use their classes.2da-specified tables - /*if( nClass == CLASS_TYPE_WIZARD - || nClass == CLASS_TYPE_SORCERER - || nClass == CLASS_TYPE_BARD - || nClass == CLASS_TYPE_CLERIC - || nClass == CLASS_TYPE_DRUID - || nClass == CLASS_TYPE_PALADIN - || nClass == CLASS_TYPE_RANGER) - {*/ - sFile = Get2DACache("classes", "SpellKnownTable", nClass); - /*} - else - { - sFile = Get2DACache("classes", "FeatsTable", nClass); - sFile = "cls_spkn" + GetStringRight(sFile, GetStringLength(sFile) - 8); // Hardcoded the cls_ part. It's not as if any class uses some other prefix - Ornedan, 20061231 - }*/ + + sFile = Get2DACache("classes", "SpellKnownTable", nClass); + string sKnown = Get2DACache(sFile, "SpellLevel" + IntToString(nSpellLevel), nLevel - 1); if(DEBUG) DoDebug("GetSpellKnownMaxCount(" + IntToString(nLevel) + ", " + IntToString(nSpellLevel) + ", " + IntToString(nClass) + ", " + GetName(oPC) + ") = " + sKnown); @@ -626,6 +685,7 @@ int GetSpellKnownMaxCount(int nLevel, int nSpellLevel, int nClass, object oPC) } return nKnown; } + */ int GetSpellKnownCurrentCount(object oPC, int nSpellLevel, int nClass) { @@ -693,6 +753,44 @@ int GetSpellKnownCurrentCount(object oPC, int nSpellLevel, int nClass) } int GetSpellUnknownCurrentCount(object oPC, int nSpellLevel, int nClass) +{ + // Get the lookup token created by MakeSpellbookLevelLoop() + string sTag = "SpellLvl_" + IntToString(nClass) + "_Level_" + IntToString(nSpellLevel); + object oCache = GetObjectByTag(sTag); + if(!GetIsObjectValid(oCache)) + { + if(DEBUG) DoDebug("GetSpellUnknownCurrentCount: " + sTag + " is not valid"); + + // Add code to create the missing lookup object + if(DEBUG) DoDebug("Attempting to create missing spell lookup token"); + ExecuteScript("prc_create_spellb", oPC); + + // Try again after creating it + oCache = GetObjectByTag(sTag); + if(!GetIsObjectValid(oCache)) + { + if(DEBUG) DoDebug("Still couldn't create spell lookup token"); + return 0; + } + else + { + if(DEBUG) DoDebug("Successfully created spell lookup token"); + } + } + + // Read the total number of spells on the given level and determine how many are already known + int nTotal = array_get_size(oCache, "Lkup"); + int nKnown = GetSpellKnownCurrentCount(oPC, nSpellLevel, nClass); + int nUnknown = nTotal - nKnown; + + if(DEBUG) DoDebug("GetSpellUnknownCurrentCount(" + GetName(oPC) + ", " + IntToString(nSpellLevel) + ", " + IntToString(nClass) + ") = " + IntToString(nUnknown)); + if(DEBUG) DoDebug(" Total spells in lookup: " + IntToString(nTotal) + ", Known spells: " + IntToString(nKnown)); + + return nUnknown; +} + + +/* int GetSpellUnknownCurrentCount(object oPC, int nSpellLevel, int nClass) { // Get the lookup token created by MakeSpellbookLevelLoop() string sTag = "SpellLvl_" + IntToString(nClass) + "_Level_" + IntToString(nSpellLevel); @@ -709,7 +807,7 @@ int GetSpellUnknownCurrentCount(object oPC, int nSpellLevel, int nClass) if(DEBUG) DoDebug("GetSpellUnknownCurrentCount(" + GetName(oPC) + ", " + IntToString(nSpellLevel) + ", " + IntToString(nClass) + ") = " + IntToString(nUnknown)); return nUnknown; -} +} */ void AddSpellUse(object oPC, int nSpellbookID, int nClass, string sFile, string sArrayName, int nSpellbookType, object oSkin, int nFeatID, int nIPFeatID, string sIDX = "") { @@ -850,7 +948,7 @@ void SetupSpells(object oPC, int nClass) int nAbility = GetAbilityScoreForClass(nClass, oPC); int nSpellbookType = GetSpellbookTypeForClass(nClass); - if(DEBUG) DoDebug("SetupSpells\n" + if(DEBUG) DoDebug("SetupSpells()\n" + "nClass = " + IntToString(nClass) + "\n" + "nSpellslotLevel = " + IntToString(nLevel) + "\n" + "nAbility = " + IntToString(nAbility) + "\n" @@ -1178,7 +1276,7 @@ void CastSpontaneousSpell(int nClass, int bInstantSpell = FALSE) else if(GetLocalInt(OBJECT_SELF, "PRC_metamagic_state") == 1) SetLocalInt(OBJECT_SELF, "MetamagicFeatAdjust", 0); } - + if (DEBUG) DoDebug("CastSpontaneousSpell(): nSpellLevel is: "+IntToString(nSpellLevel)+"."); CheckSpontSlots(nClass, nSpellID, nSpellLevel); if(GetLocalInt(OBJECT_SELF, "NSB_Cast")) ActionDoCommand(CheckSpontSlots(nClass, nSpellID, nSpellLevel, TRUE)); @@ -1330,6 +1428,8 @@ void NewSpellbookSpell(int nClass, int nSpellbookType, int nMetamagic = METAMAGI string sFile = GetFileForClass(nClass); int nSpellLevel = StringToInt(Get2DACache(sFile, "Level", nSpellbookID)); + + if (DEBUG) DoDebug("inc_newspellbook >> NewSpellbookSpell(): nSpellbookType is: "+IntToString(nSpellbookType)+"."); // Make sure the caster has uses of this spell remaining // 2009-9-20: Add metamagic feat abilities. -N-S @@ -1371,13 +1471,14 @@ void NewSpellbookSpell(int nClass, int nSpellbookType, int nMetamagic = METAMAGI else if(nSpellLevel > 9)//now test the spell level { nMetamagic = METAMAGIC_NONE; - ActionDoCommand(SendMessageToPC(oPC, "Modified spell level is to high! Casting spell without metamagic")); + ActionDoCommand(SendMessageToPC(oPC, "Modified spell level is too high! Casting spell without metamagic")); nSpellLevel = nSpellSlotLevel; } else if(GetLocalInt(oPC, "PRC_metamagic_state") == 1) SetLocalInt(oPC, "MetamagicFeatAdjust", 0); } - + + if (DEBUG) DoDebug("inc_newspellbook >> NewSpellbookSpell(): nSpellLevel is: "+IntToString(nSpellLevel)+"."); CheckSpontSlots(nClass, nSpellID, nSpellLevel); if(GetLocalInt(oPC, "NSB_Cast")) ActionDoCommand(CheckSpontSlots(nClass, nSpellID, nSpellLevel, TRUE)); @@ -1460,7 +1561,7 @@ void CheckPrepSlots(int nClass, int nSpellID, int nSpellbookID, int bIsAction = { DeleteLocalInt(OBJECT_SELF, "NSB_Cast"); int nCount = persistant_array_get_int(OBJECT_SELF, "NewSpellbookMem_" + IntToString(nClass), nSpellbookID); - if(DEBUG) DoDebug("NewSpellbookSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(nSpellbookID) + "] = " + IntToString(nCount)); + if(DEBUG) DoDebug("NewSpellbookSpell >> CheckPrepSlots: NewSpellbookMem_" + IntToString(nClass) + "[SpellbookID: " + IntToString(nSpellbookID) + "] = " + IntToString(nCount)); if(nCount < 1) { string sSpellName = GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nSpellID))); @@ -1486,7 +1587,7 @@ void CheckSpontSlots(int nClass, int nSpellID, int nSpellSlotLevel, int bIsActio { DeleteLocalInt(OBJECT_SELF, "NSB_Cast"); int nCount = persistant_array_get_int(OBJECT_SELF, "NewSpellbookMem_" + IntToString(nClass), nSpellSlotLevel); - if(DEBUG) DoDebug("NewSpellbookSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(nSpellSlotLevel) + "] = " + IntToString(nCount)); + if(DEBUG) DoDebug("NewSpellbookSpell >> CheckSpontSlots: NewSpellbookMem_" + IntToString(nClass) + "[SpellSlotLevel: " + IntToString(nSpellSlotLevel) + "] = " + IntToString(nCount)); if(nCount < 1) { // "You have no castings of spells of level " + IntToString(nSpellLevel) + " remaining" diff --git a/src/include/inc_switch_setup.nss b/src/include/inc_switch_setup.nss index 95e378b..d21b16c 100644 --- a/src/include/inc_switch_setup.nss +++ b/src/include/inc_switch_setup.nss @@ -720,7 +720,7 @@ void SetDefaultFileEnds() SetPRCSwitch("PRC_FILE_END_polymorph", 155); SetPRCSwitch("PRC_FILE_END_portraits", 1300); SetPRCSwitch("PRC_FILE_END_prc_craft_alchem", 37); - SetPRCSwitch("PRC_FILE_END_prc_craft_gen_it", 204); + SetPRCSwitch("PRC_FILE_END_prc_craft_gen_it", 253); SetPRCSwitch("PRC_FILE_END_prc_craft_poison", 62); SetPRCSwitch("PRC_FILE_END_prc_domains", 59); SetPRCSwitch("PRC_FILE_END_prc_familiar", 10); @@ -767,7 +767,7 @@ void SetDefaultFileEnds() SetPRCSwitch("PRC_FILE_END_soundset", 453); SetPRCSwitch("PRC_FILE_END_soundsettype", 4); SetPRCSwitch("PRC_FILE_END_soundtypes", 1); - SetPRCSwitch("PRC_FILE_END_spells", 19348); + SetPRCSwitch("PRC_FILE_END_spells", 19400); //SetPRCSwitch("PRC_FILE_END_spellschools", 9); SetPRCSwitch("PRC_FILE_END_statescripts", 35); SetPRCSwitch("PRC_FILE_END_stringtokens", 92); @@ -1069,14 +1069,16 @@ void CreateSwitchNameArray() array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFT_ROD_CASTER_LEVEL); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFT_STAFF_CASTER_LEVEL); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFTING_BASE_ITEMS); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_BREWPOTION_MAXLEVEL); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_BREWPOTION_COSTMODIFIER); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_SCRIBESCROLL_COSTMODIFIER); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_CRAFTWAND_MAXLEVEL); - array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), X2_CI_CRAFTWAND_COSTMODIFIER); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_BREWPOTION_MAXLEVEL); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_BREWPOTION_COSTMODIFIER); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_SCRIBESCROLL_COSTMODIFIER); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_CRAFTWAND_MAXLEVEL); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_CRAFTWAND_COSTMODIFIER); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_X2_CREATEINFUSION_COSTMODIFIER); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFTING_ARBITRARY); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFTING_COST_SCALE); array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFTING_TIME_SCALE); + array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CREATE_INFUSION_CASTER_LEVEL); //spells diff --git a/src/include/moi_inc_moifunc.nss b/src/include/moi_inc_moifunc.nss index d48a441..a2b0a3b 100644 --- a/src/include/moi_inc_moifunc.nss +++ b/src/include/moi_inc_moifunc.nss @@ -1182,7 +1182,7 @@ int GetMaxEssentiaCapacityFeat(object oMeldshaper) // Don't allow more than they have if (nMax > GetTotalUsableEssentia(oMeldshaper)) nMax = GetTotalUsableEssentia(oMeldshaper); - //if (DEBUG) DoDebug("GetMaxEssentiaCapacityFeat: nHD "+IntToString(nHD)+" nMax "+IntToString(nMax)); + if(DEBUG) DoDebug("GetMaxEssentiaCapacityFeat: nHD "+IntToString(nHD)+" nMax "+IntToString(nMax)); return nMax; } diff --git a/src/include/nw_inc_gff.nss b/src/include/nw_inc_gff.nss new file mode 100644 index 0000000..533cf21 --- /dev/null +++ b/src/include/nw_inc_gff.nss @@ -0,0 +1,623 @@ +// This is a helper library for advanced use: It allows constructing arbitrary gff data. +// You can then spawn your object via JsonToObject(). +// +// The data format is the same as https://github.com/niv/neverwinter.nim@1.4.3+. +// +// Example: +// +// json j = GffCreateObject(OBJECT_TYPE_ITEM); +// j = GffAddInt(j, "BaseItem", BASE_ITEM_BELT); +// j = GffAddInt(j, "ModelPart1", 12); +// j = GffAddLocString(j, "LocalizedName", "hi!"); +// object belt = JsonToObject(j, GetLocation(OBJECT_SELF)); + + +const string GFF_FIELD_TYPE_STRUCT = "struct"; +const string GFF_FIELD_TYPE_LIST = "list"; +const string GFF_FIELD_TYPE_BYTE = "byte"; +const string GFF_FIELD_TYPE_CHAR = "char"; +const string GFF_FIELD_TYPE_WORD = "word"; +const string GFF_FIELD_TYPE_SHORT = "short"; +const string GFF_FIELD_TYPE_DWORD = "dword"; +const string GFF_FIELD_TYPE_INT = "int"; +const string GFF_FIELD_TYPE_DWORD64 = "dword64"; +const string GFF_FIELD_TYPE_INT64 = "int64"; +const string GFF_FIELD_TYPE_FLOAT = "float"; +const string GFF_FIELD_TYPE_DOUBLE = "double"; +const string GFF_FIELD_TYPE_RESREF = "resref"; +const string GFF_FIELD_TYPE_STRING = "cexostring"; +const string GFF_FIELD_TYPE_LOC_STRING = "cexolocstring"; + + +// Create a empty object of the given type. You need to manually fill in all +// GFF data with GffAddXXX. This will require understanding of the GFF file format +// and what data fields each object type requires. +json GffCreateObject(int nObjectType); +// Create a combined area format(CAF) object. You need to manually create the ARE and GIT objects with their required data fields. +json GffCreateArea(json jARE, json jGIT); + +// Returns the OBJECT_TYPE_* of jGff. +// Note: Will return 0 for invalid object types, including areas. +int GffGetObjectType(json jGff); +// Returns TRUE if jGff is a combined area format(CAF) object. +int GffGetIsArea(json jGff); + +// Returns TRUE if a field named sLabel of sType exists in jGff. +// * sLabel: Can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// * sType: An optional GFF_FIELD_TYPE_*, leave empty to check if sLabel exists regardless of type. +int GffGetFieldExists(json jGff, string sLabel, string sType = ""); + + +// Add a new field, will overwrite any existing fields with the same label even if the type is different. +// Returns a json null value on error with GetJsonError() filled in. +// +// sLabel can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// For example, to add the tag of an area to an empty combined area format(CAF) object you can do the following: +// json jArea = GffCreateArea(JsonObject(), JsonObject()); +// jArea = GffAddString(jArea, "ARE/value/Tag", "AREA_TAG"); + +json GffAddStruct(json jGff, string sLabel, json jStruct, int nType = -1); +json GffAddList(json jGff, string sLabel, json jList); +json GffAddByte(json jGff, string sLabel, int v); +json GffAddChar(json jGff, string sLabel, int v); +json GffAddWord(json jGff, string sLabel, int v); +json GffAddShort(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffAddDword(json jGff, string sLabel, int v); +json GffAddInt(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffAddDword64(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffAddInt64(json jGff, string sLabel, int v); +json GffAddFloat(json jGff, string sLabel, float v); +// Note: Only data of type float will fit, because that's all that NWScript supports. +json GffAddDouble(json jGff, string sLabel, float v); +json GffAddResRef(json jGff, string sLabel, string v); +json GffAddString(json jGff, string sLabel, string v); +json GffAddLocString(json jGff, string sLabel, string v, int nStrRef = -1); + + +// Replace a field, the type must match and the field must exist. +// Returns a json null value on error with GetJsonError() filled in. +// +// sLabel can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// For example, to replace the name of an area in a combined area format(CAF) object you can do the following: +// json jArea = ObjectToStruct(GetFirstArea()); +// jArea = GffReplaceLocString(jArea, "ARE/value/Name", "New Area Name"); + +json GffReplaceStruct(json jGff, string sLabel, json jStruct); +json GffReplaceList(json jGff, string sLabel, json jList); +json GffReplaceByte(json jGff, string sLabel, int v); +json GffReplaceChar(json jGff, string sLabel, int v); +json GffReplaceWord(json jGff, string sLabel, int v); +json GffReplaceShort(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffReplaceDword(json jGff, string sLabel, int v); +json GffReplaceInt(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffReplaceDword64(json jGff, string sLabel, int v); +// Note: Only data of type int32 will fit, because that's all that NWScript supports. +json GffReplaceInt64(json jGff, string sLabel, int v); +json GffReplaceFloat(json jGff, string sLabel, float v); +// Note: Only data of type float will fit, because that's all that NWScript supports. +json GffReplaceDouble(json jGff, string sLabel, float v); +json GffReplaceResRef(json jGff, string sLabel, string v); +json GffReplaceString(json jGff, string sLabel, string v); +json GffReplaceLocString(json jGff, string sLabel, string v, int nStrRef = -1); + + +// Remove a field, the type must match and the field must exist. +// Returns a json null value on error with GetJsonError() filled in. +// +// sLabel can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// For example, to remove all placeables from an area in a combined area format(CAF) object you can do the following: +// json jArea = ObjectToStruct(GetFirstArea()); +// jArea = GffRemoveList(jArea, "GIT/value/Placeable List"); + +json GffRemoveStruct(json jGff, string sLabel); +json GffRemoveList(json jGff, string sLabel); +json GffRemoveByte(json jGff, string sLabel); +json GffRemoveChar(json jGff, string sLabel); +json GffRemoveWord(json jGff, string sLabel); +json GffRemoveShort(json jGff, string sLabel); +json GffRemoveDword(json jGff, string sLabel); +json GffRemoveInt(json jGff, string sLabel); +json GffRemoveDword64(json jGff, string sLabel); +json GffRemoveInt64(json jGff, string sLabel); +json GffRemoveFloat(json jGff, string sLabel); +json GffRemoveDouble(json jGff, string sLabel); +json GffRemoveResRef(json jGff, string sLabel); +json GffRemoveString(json jGff, string sLabel); +json GffRemoveLocString(json jGff, string sLabel); + + +// Get a field's value as json object. +// Returns a json null value on error with GetJsonError() filled in. +// +// Note: Json types do not implicitly convert between types, this means you cannot convert a JsonInt to a string with JsonGetString(), etc. +// You may need to check the type with JsonGetType() and then do the appropriate cast yourself. +// For GffGet*() functions the json type returned is noted in the function description. +// +// Example: +// INCORRECT: string s = JsonGetString(GffGetInt()); +// CORRECT: string s = IntToString(JsonGetInt(GffGetInt())); +// +// sLabel can be a json pointer(path) without the starting /, see the documentation of JsonPointer() for details. +// For example, to get the resref of an area in a combined area format(CAF) object you can do the following: +// json jResRef = GffGetResRef(ObjectToStruct(GetFirstArea()), "ARE/value/ResRef"); +// if (jResRef != JsonNull()) +// { +// string sResRef = JsonGetString(jResRef); +// } +// else +// WriteTimestampedLogEntry("Failed to get area ResRef: " + JsonGetError(jResRef)); + +// Returns the struct as JsonObject() on success. +json GffGetStruct(json jGff, string sLabel); +// Returns a JsonArray() with all the list elements on success. +json GffGetList(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetByte(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetChar(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetWord(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetShort(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetDword(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetInt(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetDword64(json jGff, string sLabel); +// Returns a JsonInt() on success. +json GffGetInt64(json jGff, string sLabel); +// Returns a JsonFloat() on success. +json GffGetFloat(json jGff, string sLabel); +// Returns a JsonFloat() on success. +json GffGetDouble(json jGff, string sLabel); +// Returns a JsonString() on success. +json GffGetResRef(json jGff, string sLabel); +// Returns a JsonString() on success. +json GffGetString(json jGff, string sLabel); +// Returns a JsonObject() on success. +// Key "0" will have a JsonString() with the string, if set. +// Key "id" will have a JsonInt() with the strref, if set. +json GffGetLocString(json jGff, string sLabel); + + +// *** Internal Helper Functions +json AddPatchOperation(json jPatchArray, string sOp, string sPath, json jValue) +{ + json jOperation = JsonObject(); + jOperation = JsonObjectSet(jOperation, "op", JsonString(sOp)); + jOperation = JsonObjectSet(jOperation, "path", JsonString(sPath)); + jOperation = JsonObjectSet(jOperation, "value", jValue); + return JsonArrayInsert(jPatchArray, jOperation); +} + +json GffAddField(json jGff, string sLabel, string sType, json jValue, int nType = -1) +{ + json jField = JsonObject(); + jField = JsonObjectSet(jField, "type", JsonString(sType)); + jField = JsonObjectSet(jField, "value", jValue); + if (sType == GFF_FIELD_TYPE_STRUCT && nType != -1) + jField = JsonObjectSet(jField, "__struct_id", JsonInt(nType)); + + return JsonPatch(jGff, AddPatchOperation(JsonArray(), "add", "/" + sLabel, jField)); +} + +json GffReplaceField(json jGff, string sLabel, string sType, json jValue) +{ + json jPatch = JsonArray(); + jPatch = AddPatchOperation(jPatch, "test", "/" + sLabel + "/type", JsonString(sType)); + jPatch = AddPatchOperation(jPatch, "replace", "/" + sLabel + "/value", jValue); + return JsonPatch(jGff, jPatch); +} + +json GffRemoveField(json jGff, string sLabel, string sType) +{ + json jPatch = JsonArray(); + jPatch = AddPatchOperation(jPatch, "test", "/" + sLabel + "/type", JsonString(sType)); + jPatch = AddPatchOperation(jPatch, "remove", "/" + sLabel, JsonNull()); + return JsonPatch(jGff, jPatch); +} + +json GffGetFieldType(json jGff, string sLabel) +{ + return JsonPointer(jGff, "/" + sLabel + "/type"); +} + +json GffGetFieldValue(json jGff, string sLabel) +{ + return JsonPointer(jGff, "/" + sLabel + "/value"); +} + +json GffGetField(json jGff, string sLabel, string sType) +{ + json jType = GffGetFieldType(jGff, sLabel); + if (jType == JsonNull()) + return jType; + else if (jType != JsonString(sType)) + return JsonNull("field type does not match"); + else + return GffGetFieldValue(jGff, sLabel); +} + +json GffLocString(string v, int nStrRef = -1) +{ + json jLocString = JsonObject(); + if (v != "") + jLocString = JsonObjectSet(jLocString, "0", JsonString(v)); // english/any + if (nStrRef != -1) + jLocString = JsonObjectSet(jLocString, "id", JsonInt(nStrRef)); + + return jLocString; +} +//*** + +json GffCreateObject(int nObjectType) +{ + string ot; + if (nObjectType == OBJECT_TYPE_CREATURE) ot = "UTC "; + else if (nObjectType == OBJECT_TYPE_ITEM) ot = "UTI "; + else if (nObjectType == OBJECT_TYPE_TRIGGER) ot = "UTT "; + else if (nObjectType == OBJECT_TYPE_DOOR) ot = "UTD "; + else if (nObjectType == OBJECT_TYPE_WAYPOINT) ot = "UTW "; + else if (nObjectType == OBJECT_TYPE_PLACEABLE) ot = "UTP "; + else if (nObjectType == OBJECT_TYPE_STORE) ot = "UTM "; + else if (nObjectType == OBJECT_TYPE_ENCOUNTER) ot = "UTE "; + + if (ot == "") return JsonNull("invalid object type"); + + json ret = JsonObject(); + ret = JsonObjectSet(ret, "__data_type", JsonString(ot)); + return ret; +} + +json GffCreateArea(json jARE, json jGIT) +{ + json jCAF = JsonObject(); + jCAF = JsonObjectSet(jCAF, "__data_type", JsonString("CAF ")); + jCAF = GffAddStruct(jCAF, "ARE", jARE, 0); + jCAF = GffAddStruct(jCAF, "GIT", jGIT, 1); + return jCAF; +} + + +int GffGetObjectType(json jGff) +{ + json jDataType = JsonObjectGet(jGff, "__data_type"); + if (jDataType == JsonNull()) + return 0; + else + { + string sObjectType = JsonGetString(jDataType); + + if (sObjectType == "UTC ") return OBJECT_TYPE_CREATURE; + else if (sObjectType == "UTI ") return OBJECT_TYPE_ITEM; + else if (sObjectType == "UTT ") return OBJECT_TYPE_TRIGGER; + else if (sObjectType == "UTD ") return OBJECT_TYPE_DOOR; + else if (sObjectType == "UTW ") return OBJECT_TYPE_WAYPOINT; + else if (sObjectType == "UTP ") return OBJECT_TYPE_PLACEABLE; + else if (sObjectType == "UTM ") return OBJECT_TYPE_STORE; + else if (sObjectType == "UTE ") return OBJECT_TYPE_ENCOUNTER; + } + + return 0; +} + +int GffGetIsArea(json jGff) +{ + return JsonObjectGet(jGff, "__data_type") == JsonString("CAF "); +} + +int GffGetFieldExists(json jGff, string sLabel, string sType = "") +{ + json jFieldType = GffGetFieldType(jGff, sLabel); + return sType == "" ? jFieldType != JsonNull() : jFieldType == JsonString(sType); +} + + +json GffAddStruct(json jGff, string sLabel, json jStruct, int nType = -1) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_STRUCT, jStruct, nType); +} + +json GffAddList(json jGff, string sLabel, json jList) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_LIST, jList); +} + +json GffAddByte(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_BYTE, JsonInt(v)); +} + +json GffAddChar(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_CHAR, JsonInt(v)); +} + +json GffAddWord(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_WORD, JsonInt(v)); +} + +json GffAddShort(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_SHORT, JsonInt(v)); +} + +json GffAddDword(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_DWORD, JsonInt(v)); +} + +json GffAddInt(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_INT, JsonInt(v)); +} + +json GffAddDword64(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_DWORD64, JsonInt(v)); +} + +json GffAddInt64(json jGff, string sLabel, int v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_INT64, JsonInt(v)); +} + +json GffAddFloat(json jGff, string sLabel, float v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_FLOAT, JsonFloat(v)); +} + +json GffAddDouble(json jGff, string sLabel, float v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_DOUBLE, JsonFloat(v)); +} + +json GffAddResRef(json jGff, string sLabel, string v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_RESREF, JsonString(v)); +} + +json GffAddString(json jGff, string sLabel, string v) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_STRING, JsonString(v)); +} + +json GffAddLocString(json jGff, string sLabel, string v, int nStrRef = -1) +{ + return GffAddField(jGff, sLabel, GFF_FIELD_TYPE_LOC_STRING, GffLocString(v, nStrRef)); +} + + +json GffReplaceStruct(json jGff, string sLabel, json jStruct) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_STRUCT, jStruct); +} + +json GffReplaceList(json jGff, string sLabel, json jList) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_LIST, jList); +} + +json GffReplaceByte(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_BYTE, JsonInt(v)); +} + +json GffReplaceChar(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_CHAR, JsonInt(v)); +} + +json GffReplaceWord(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_WORD, JsonInt(v)); +} + +json GffReplaceShort(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_SHORT, JsonInt(v)); +} + +json GffReplaceDword(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_DWORD, JsonInt(v)); +} + +json GffReplaceInt(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_INT, JsonInt(v)); +} + +json GffReplaceDword64(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_DWORD64, JsonInt(v)); +} + +json GffReplaceInt64(json jGff, string sLabel, int v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_INT64, JsonInt(v)); +} + +json GffReplaceFloat(json jGff, string sLabel, float v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_FLOAT, JsonFloat(v)); +} + +json GffReplaceDouble(json jGff, string sLabel, float v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_DOUBLE, JsonFloat(v)); +} + +json GffReplaceResRef(json jGff, string sLabel, string v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_RESREF, JsonString(v)); +} + +json GffReplaceString(json jGff, string sLabel, string v) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_STRING, JsonString(v)); +} + +json GffReplaceLocString(json jGff, string sLabel, string v, int nStrRef = -1) +{ + return GffReplaceField(jGff, sLabel, GFF_FIELD_TYPE_LOC_STRING, GffLocString(v, nStrRef)); +} + + +json GffRemoveStruct(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_STRUCT); +} + +json GffRemoveList(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_LIST); +} + +json GffRemoveByte(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_BYTE); +} + +json GffRemoveChar(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_CHAR); +} + +json GffRemoveWord(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_WORD); +} + +json GffRemoveShort(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_SHORT); +} + +json GffRemoveDword(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_DWORD); +} + +json GffRemoveInt(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_INT); +} + +json GffRemoveDword64(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_DWORD64); +} + +json GffRemoveInt64(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_INT64); +} + +json GffRemoveFloat(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_FLOAT); +} + +json GffRemoveDouble(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_DOUBLE); +} + +json GffRemoveResRef(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_RESREF); +} + +json GffRemoveString(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_STRING); +} + +json GffRemoveLocString(json jGff, string sLabel) +{ + return GffRemoveField(jGff, sLabel, GFF_FIELD_TYPE_LOC_STRING); +} + + +json GffGetStruct(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_STRUCT); +} + +json GffGetList(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_LIST); +} + +json GffGetByte(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_BYTE); +} + +json GffGetChar(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_CHAR); +} + +json GffGetWord(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_WORD); +} + +json GffGetShort(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_SHORT); +} + +json GffGetDword(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_DWORD); +} + +json GffGetInt(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_INT); +} + +json GffGetDword64(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_DWORD64); +} + +json GffGetInt64(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_INT64); +} + +json GffGetFloat(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_FLOAT); +} + +json GffGetDouble(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_DOUBLE); +} + +json GffGetResRef(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_RESREF); +} + +json GffGetString(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_STRING); +} + +json GffGetLocString(json jGff, string sLabel) +{ + return GffGetField(jGff, sLabel, GFF_FIELD_TYPE_LOC_STRING); +} diff --git a/src/include/prc_add_spell_dc.nss b/src/include/prc_add_spell_dc.nss index 4cde6de..f2a0e2f 100644 --- a/src/include/prc_add_spell_dc.nss +++ b/src/include/prc_add_spell_dc.nss @@ -513,6 +513,8 @@ int PRCGetSpellSaveDC(int nSpellID = -1, int nSchool = -1, object oCaster = OBJE if(nClass == CLASS_TYPE_BARD) nDC += StringToInt(Get2DACache("Spells", "Bard", nSpellID)); + else if(nClass == CLASS_TYPE_ASSASSIN) + nDC += StringToInt(Get2DACache("Spells", "Assassin", nSpellID)); else if(nClass == CLASS_TYPE_CLERIC || nClass == CLASS_TYPE_UR_PRIEST || nClass == CLASS_TYPE_OCULAR) nDC += StringToInt(Get2DACache("Spells", "Cleric", nSpellID)); else if(nClass == CLASS_TYPE_DRUID) diff --git a/src/include/prc_class_const.nss b/src/include/prc_class_const.nss index 286b574..04e96f1 100644 --- a/src/include/prc_class_const.nss +++ b/src/include/prc_class_const.nss @@ -143,7 +143,7 @@ const int CLASS_TYPE_MASTER_HARPER = 176; const int CLASS_TYPE_FRE_BERSERKER = 177; const int CLASS_TYPE_TEMPEST = 178; const int CLASS_TYPE_FOE_HUNTER = 179; -//:: Free = 180 +const int CLASS_TYPE_VERDANT_LORD = 180; const int CLASS_TYPE_ORC_WARLORD = 181; const int CLASS_TYPE_THRALL_OF_GRAZZT_A = 182; const int CLASS_TYPE_NECROCARNATE = 183; @@ -162,7 +162,7 @@ const int CLASS_TYPE_MASTER_OF_NINE = 195; const int CLASS_TYPE_ETERNAL_BLADE = 196; const int CLASS_TYPE_SHADOW_SUN_NINJA = 197; const int CLASS_TYPE_WITCHBORN_BINDER = 198; -const int CLASS_TYPE_BAELNORN = 199; +const int CLASS_TYPE_LION_OF_TALISID = 199; const int CLASS_TYPE_DISCIPLE_OF_MEPH = 200; const int CLASS_TYPE_SOUL_EATER = 201; const int CLASS_TYPE_HENSHIN_MYSTIC = 202; @@ -236,6 +236,7 @@ const int CLASS_TYPE_WITCH = -1; const int CLASS_TYPE_TEMPLAR = -1; const int CLASS_TYPE_MYSTIC = -1; const int CLASS_TYPE_NOBLE = -1; +const int CLASS_TYPE_BAELNORN = -2; //void main (){} \ No newline at end of file diff --git a/src/include/prc_effect_inc.nss b/src/include/prc_effect_inc.nss index 6186f71..4552481 100644 --- a/src/include/prc_effect_inc.nss +++ b/src/include/prc_effect_inc.nss @@ -75,6 +75,13 @@ void DeathlessFrenzyCheck(object oTarget); // * PRC Version of a Bioware function to disable include loops void PRCRemoveSpellEffects(int nSpell_ID, object oCaster, object oTarget); +/** + * Target is immune to gaze attacks + * + * @return the Dazzle effect + */ +effect EffectGazeImmune(); + /** * Dazzles the target: -1 Attack, Search, Spot, and VFX * @@ -583,7 +590,8 @@ effect PRCEffectHeal(int nHP, object oTarget) return EffectHeal(nHP); } -effect EffectAbilityBasedSkillIncrease(int iAbility, int iIncrease = 1){ +effect EffectAbilityBasedSkillIncrease(int iAbility, int iIncrease = 1) +{ effect eReturn; switch(iAbility) { @@ -639,7 +647,8 @@ effect EffectAbilityBasedSkillIncrease(int iAbility, int iIncrease = 1){ return eReturn; } -effect EffectAbilityBasedSkillDecrease(int iAbility, int iDecrease = 1){ +effect EffectAbilityBasedSkillDecrease(int iAbility, int iDecrease = 1) +{ effect eReturn; switch(iAbility) { @@ -695,7 +704,8 @@ effect EffectAbilityBasedSkillDecrease(int iAbility, int iDecrease = 1){ return eReturn; } -effect EffectDamageImmunityAll(){ +effect EffectDamageImmunityAll() +{ effect eReturn = EffectDamageImmunityIncrease(DAMAGE_TYPE_ACID, 100); eReturn = EffectLinkEffects(eReturn, EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 100)); eReturn = EffectLinkEffects(eReturn, EffectDamageImmunityIncrease(DAMAGE_TYPE_COLD, 100)); @@ -712,7 +722,8 @@ effect EffectDamageImmunityAll(){ return eReturn; } -effect EffectImmunityMiscAll(){ +effect EffectImmunityMiscAll() +{ effect eReturn = EffectImmunity(IMMUNITY_TYPE_ABILITY_DECREASE); eReturn = EffectLinkEffects(eReturn, EffectImmunity(IMMUNITY_TYPE_BLINDNESS)); eReturn = EffectLinkEffects(eReturn, EffectImmunity(IMMUNITY_TYPE_DEAFNESS)); @@ -732,6 +743,31 @@ effect EffectImmunityMiscAll(){ return eReturn; } +//:: Immunity to all gaze attacks +effect EffectGazeImmune() +{ + effect eBlank; + + effect eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_CHARM); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_CONFUSION); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_DAZE); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_DEATH); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_DESTROY_CHAOS); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_DESTROY_EVIL); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_DESTROY_GOOD); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_DESTROY_LAW); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_DOMINATE); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_DOOM); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_FEAR); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_PARALYSIS); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_PETRIFY); + eReturn = EffectSpellImmunity(SPELLABILITY_GAZE_STUNNED); + + eReturn = TagEffect(eReturn, "PRCGazeImmune"); + + return eReturn; +} + int GetIsShaken(object oTarget) { effect eEffect = GetFirstEffect(oTarget); @@ -747,4 +783,7 @@ int GetIsShaken(object oTarget) eEffect = GetNextEffect(oTarget); } return FALSE; -} \ No newline at end of file +} + +//:: Test void +//:: void main() {} \ No newline at end of file diff --git a/src/include/prc_feat_const.nss b/src/include/prc_feat_const.nss index a666b3e..8035960 100644 --- a/src/include/prc_feat_const.nss +++ b/src/include/prc_feat_const.nss @@ -152,6 +152,9 @@ const int FEAT_EPIC_DIAMOND_DRAGON = 25115; const int FEAT_EPIC_CRUSADER = 25116; const int FEAT_EPIC_SWORDSAGE = 25117; const int FEAT_EPIC_WARBLADE = 25118; +const int FEAT_EPIC_LION_OF_TALISID = 25600; +const int FEAT_EPIC_VERDANT_LORD = 25618; + //:: Vile Martial Strike Expansion const int FEAT_VILE_MARTIAL_EAGLE_CLAW = 24800; @@ -195,6 +198,28 @@ const int FEAT_CHARMING_THE_ARROW = 25998; //:: Skill Based Feats const int FEAT_JUMP = 2884; +//:: Lion of Talisid +const int FEAT_LOT_LIONS_COURAGE = 25614; +const int FEAT_LOT_LIONS_POUNCE = 25615; +const int FEAT_LOT_LIONS_SWIFTNESS = 25616; +const int FEAT_LOT_LEONALS_ROAR = 25617; + +//::: Verdant Lord +const int FEAT_VL_EXPERT_INFUSION = 25634; +const int FEAT_VL_SUN_SUSTENANCE = 25635; +const int FEAT_VL_SPONTANEITY = 25636; +const int FEAT_VL_PLANT_FACILITY = 25637; +const int FEAT_VL_WILD_SHAPE_TREANT = 25638; +const int FEAT_VL_ANIMATE_TREE = 25639; +const int FEAT_VL_GAEAS_EMBRACE = 25640; + +//:: Masters of the Wild feats +const int FEAT_CREATE_INFUSION = 25960; +const int FEAT_MAGICAL_ARTISAN_CREATE_INFUSION = 25961; +const int FEAT_PLANT_DEFIANCE = 25992; +const int FEAT_PLANT_CONTROL = 25993; + + //:: Racial Feats const int FEAT_WEMIC_JUMP_8 = 4518; const int FEAT_URDINNIR_STONESKIN = 4644; @@ -782,6 +807,9 @@ const int FEAT_SUEL_IGNORE_SPELL_FAILURE = 2398; const int FEAT_SUEL_EXTENDED_SPELL = 2399; const int FEAT_SUEL_DISPELLING_STRIKE = 2400; +//:: Druid +const int FEAT_SPONT_SUMMON = 2372; + //Passive Feats const int FEAT_ETERNAL_FREEDOM = 4298; const int FEAT_INTUITIVE_ATTACK = 3166; @@ -1538,18 +1566,19 @@ const int FEAT_SELVETARMS_BLESSING = 2447; const int FEAT_RANGER_DUAL = 374; const int FEAT_CAMOUFLAGE = 4486; -//Exalted Feat -const int FEAT_SAC_VOW = 3388; -const int FEAT_VOW_OBED = 3389; -const int FEAT_EXALTED_TURNING = 3168; -const int FEAT_HAND_HEALER = 3167; -const int FEAT_NIMBUSLIGHT = 3165; -const int FEAT_HOLYRADIANCE = 3164; -const int FEAT_STIGMATA = 3163; -const int FEAT_SERVHEAVEN = 3355; -const int FEAT_RANGED_SMITE = 3356; -const int FEAT_VOW_PURITY = 5360; -const int FEAT_VOWOFPOVERTY = 26002; +//:: Exalted Feats +const int FEAT_SAC_VOW = 3388; +const int FEAT_VOW_OBED = 3389; +const int FEAT_EXALTED_TURNING = 3168; +const int FEAT_HAND_HEALER = 3167; +const int FEAT_NIMBUSLIGHT = 3165; +const int FEAT_HOLYRADIANCE = 3164; +const int FEAT_STIGMATA = 3163; +const int FEAT_SERVHEAVEN = 3355; +const int FEAT_RANGED_SMITE = 3356; +const int FEAT_VOW_PURITY = 5360; +const int FEAT_VOWOFPOVERTY = 26002; +const int FEAT_FAV_COMPANIONS = 25994; //Vile Feat const int FEAT_LICHLOVED = 3395; @@ -3189,6 +3218,8 @@ const int FEAT_ETHEREAL = 4167; const int FEAT_TEMPLATE_ARCHLICH_MARKER = 22700; const int FEAT_TEMPLATE_ARCHLICH_TURN_UNDEAD = 22701; +const int FEAT_TEMPLATE_BAELNORN_MARKER = 22708; + const int FEAT_TEMPLATE_CELESTIAL_SMITE_EVIL = 22601; const int FEAT_TEMPLATE_CELESTIAL_MARKER = 22602; const int FEAT_TEMPLATE_FIENDISH_SMITE_GOOD = 22603; @@ -3933,6 +3964,8 @@ const int FEAT_OPPORTUNISTIC_PIETY_HEAL = 5358; const int FEAT_OPPORTUNISTIC_PIETY_TURN = 5359; // Combat Maneuver Feats +const int FEAT_CM_CHARGE = 2823; +const int FEAT_CM_GRAPPLE = 3414; const int FEAT_CURLING_WAVE_STRIKE = 2809; const int FEAT_SIDESTEP_CHARGE = 3505; const int FEAT_POWERFUL_CHARGE = 3506; @@ -6203,6 +6236,38 @@ const int FEAT_SHINING_BLADE_SPELLCASTING_VASSAL = 19587; const int FEAT_SWIFT_WING_SPELLCASTING_VASSAL = 19588; const int FEAT_WARPRIEST_SPELLCASTING_VASSAL = 19589; +//:: Lion of Talisid marker feats +const int FEAT_LION_OF_TALISID_SPELLCASTING_ARCHIVIST = 25601; +const int FEAT_LION_OF_TALISID_SPELLCASTING_CLERIC = 25602; +const int FEAT_LION_OF_TALISID_SPELLCASTING_DRUID = 25603; +const int FEAT_LION_OF_TALISID_SPELLCASTING_FAVOURED_SOUL = 25604; +const int FEAT_LION_OF_TALISID_SPELLCASTING_HEALER = 25605; +const int FEAT_LION_OF_TALISID_SPELLCASTING_JOWAW = 25606; +const int FEAT_LION_OF_TALISID_SPELLCASTING_KOTMC = 25607; +const int FEAT_LION_OF_TALISID_SPELLCASTING_NENTYAR_HUNTER = 25608; +const int FEAT_LION_OF_TALISID_SPELLCASTING_RANGER = 25609; +const int FEAT_LION_OF_TALISID_SPELLCASTING_OASHAMAN = 25610; +const int FEAT_LION_OF_TALISID_SPELLCASTING_SOHEI = 25611; +const int FEAT_LION_OF_TALISID_SPELLCASTING_SOL = 25612; +const int FEAT_LION_OF_TALISID_SPELLCASTING_SPSHAMAN = 25613; + +//:: Verdant Lord marker feats +const int FEAT_VERDANT_LORD_SPELLCASTING_ARCHIVIST = 25619; +const int FEAT_VERDANT_LORD_SPELLCASTING_CLERIC = 25620; +const int FEAT_VERDANT_LORD_SPELLCASTING_DRUID = 25621; +const int FEAT_VERDANT_LORD_SPELLCASTING_FAVOURED_SOUL = 25622; +const int FEAT_VERDANT_LORD_SPELLCASTING_HEALER = 25623; +const int FEAT_VERDANT_LORD_SPELLCASTING_JOWAW = 25624; +const int FEAT_VERDANT_LORD_SPELLCASTING_KOTC = 25625; +const int FEAT_VERDANT_LORD_SPELLCASTING_KOTMC = 25626; +const int FEAT_VERDANT_LORD_SPELLCASTING_NENTYAR_HUNTER = 25627; +const int FEAT_VERDANT_LORD_SPELLCASTING_PALADIN = 25628; +const int FEAT_VERDANT_LORD_SPELLCASTING_RANGER = 25629; +const int FEAT_VERDANT_LORD_SPELLCASTING_OASHAMAN = 25630; +const int FEAT_VERDANT_LORD_SPELLCASTING_SOHEI = 25631; +const int FEAT_VERDANT_LORD_SPELLCASTING_SOL = 25632; +const int FEAT_VERDANT_LORD_SPELLCASTING_SPSHAMAN = 25633; + //:: No spellcasting or invoking marker feats const int FEAT_ASMODEUS_SPELLCASTING_NONE = 19590; const int FEAT_TIAMAT_SPELLCASTING_NONE = 19591; diff --git a/src/include/prc_inc_castlvl.nss b/src/include/prc_inc_castlvl.nss index 172ee03..8336a62 100644 --- a/src/include/prc_inc_castlvl.nss +++ b/src/include/prc_inc_castlvl.nss @@ -1148,8 +1148,8 @@ int GetArcanePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) if(GetHasFeat(FEAT_DIABOLIST_SPELLCASTING_ASSASSIN, oCaster)) nArcane += GetLevelByClass(CLASS_TYPE_DIABOLIST, oCaster); - if(GetHasFeat(FEAT_DHEART_SPELLCASTING_ASSASSIN, oCaster)) - nArcane += GetLevelByClass(CLASS_TYPE_DRAGONHEART_MAGE, oCaster); + //if(GetHasFeat(FEAT_DHEART_SPELLCASTING_ASSASSIN, oCaster)) + //nArcane += GetLevelByClass(CLASS_TYPE_DRAGONHEART_MAGE, oCaster); if(GetHasFeat(FEAT_EKNIGHT_SPELLCASTING_ASSASSIN, oCaster)) nArcane += GetLevelByClass(CLASS_TYPE_ELDRITCH_KNIGHT, oCaster); @@ -3822,6 +3822,9 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_ARCHIVIST, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_ARCHIVIST, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); + /* if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_ARCHIVIST, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); */ @@ -4148,7 +4151,10 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) nDivine += GetLevelByClass(CLASS_TYPE_HIEROPHANT, oCaster); if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_CLERIC, oCaster)) - nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_CLERIC, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_CLERIC, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); @@ -4258,7 +4264,10 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) nDivine += GetLevelByClass(CLASS_TYPE_HIEROPHANT, oCaster); if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_DRUID, oCaster)) - nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_DRUID, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); // if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_DRUID, oCaster)) // nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); @@ -4370,10 +4379,13 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) nDivine += GetLevelByClass(CLASS_TYPE_HIEROPHANT, oCaster); if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_FAVOURED_SOUL, oCaster)) - nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_FAVOURED_SOUL, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); - // if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_FAVOURED_SOUL, oCaster)) - // nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); + if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_FAVOURED_SOUL, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); if(GetHasFeat(FEAT_MORNINGLORD_SPELLCASTING_FAVOURED_SOUL, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MORNINGLORD, oCaster); @@ -4479,6 +4491,9 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_HEALER, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_HEALER, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); + /* if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_HEALER, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); */ @@ -4586,6 +4601,9 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_JUSTICEWW, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_JOWAW, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); + // if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_JUSTICEWW, oCaster)) // nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); @@ -4796,6 +4814,9 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_KNIGHT_MIDDLECIRCLE, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_KOTMC, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); + /* if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_KNIGHT_MIDDLECIRCLE, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); */ @@ -4901,7 +4922,10 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) nDivine += GetLevelByClass(CLASS_TYPE_HIEROPHANT, oCaster); */ if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_NENTYAR_HUNTER, oCaster)) - nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_NENTYAR_HUNTER, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); /* if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_NENTYAR_HUNTER, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); */ @@ -5212,7 +5236,10 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) nDivine += GetLevelByClass(CLASS_TYPE_HIEROPHANT, oCaster); */ if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_RANGER, oCaster)) - nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_RANGER, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); if(GetHasFeat(FEAT_MORNINGLORD_SPELLCASTING_RANGER, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MORNINGLORD, oCaster); @@ -5316,7 +5343,10 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) nDivine += GetLevelByClass(CLASS_TYPE_HIEROPHANT, oCaster); if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_OASHAMAN, oCaster)) - nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_OASHAMAN, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_SHAMAN, oCaster); if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_OASHAMAN, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); @@ -5529,6 +5559,9 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_SOHEI, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_SOHEI, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); + // if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_SOHEI, oCaster)) // nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); @@ -5636,6 +5669,9 @@ int GetDivinePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID) if(GetHasFeat(FEAT_HOSPITALER_SPELLCASTING_SOL, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_HOSPITALER, oCaster); + if(GetHasFeat(FEAT_LION_OF_TALISID_SPELLCASTING_SOL, oCaster)) + nDivine += GetLevelByClass(CLASS_TYPE_LION_OF_TALISID, oCaster); + /* if(GetHasFeat(FEAT_MASTER_OF_SHROUDS_SPELLCASTING_SOL, oCaster)) nDivine += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHROUDS, oCaster); */ diff --git a/src/include/prc_inc_combmove.nss b/src/include/prc_inc_combmove.nss index b81aab4..d280dd1 100644 --- a/src/include/prc_inc_combmove.nss +++ b/src/include/prc_inc_combmove.nss @@ -1140,6 +1140,9 @@ void DoCharge(object oPC, object oTarget, int nDoAttack = TRUE, int nGenerateAoO nPounce = TRUE; if (GetHasSpellEffect(VESTIGE_CHUPOCLOPS, oPC) && GetLocalInt(oPC, "ExploitVestige") != VESTIGE_CHUPOCLOPS_POUNCE) nPounce = TRUE; + //:: Lion of Talisid + if(GetHasFeat(FEAT_LOT_LIONS_POUNCE, oPC)) + nPounce = TRUE; // Checks for a White Raven Stance // If it exists, +1 damage/initiator level @@ -2312,7 +2315,10 @@ void DoShieldCharge(object oPC, object oTarget, int nSlam = FALSE) if(GetLevelByClass(CLASS_TYPE_CELEBRANT_SHARESS, oPC) >= 5) nPounce = TRUE; if(GetRacialType(oPC) == RACIAL_TYPE_MARRUSAULT) - nPounce = TRUE; + nPounce = TRUE; + //:: Lion of Talisid + if(GetHasFeat(FEAT_LOT_LIONS_POUNCE, oPC)) + nPounce = TRUE; // Checks for a White Raven Stance // If it exists, +1 damage/initiator level diff --git a/src/include/prc_inc_core.nss b/src/include/prc_inc_core.nss index 30af518..099c3ac 100644 --- a/src/include/prc_inc_core.nss +++ b/src/include/prc_inc_core.nss @@ -462,7 +462,7 @@ int PRCGetSpellLevelForClass(int nSpell, int nClass) return nSpellLevel; } -// returns the spelllevel of nSpell as it can be cast by oCreature +// returns the spell circle level of nSpell as it can be cast by oCreature int PRCGetSpellLevel(object oCreature, int nSpell) { /*if (!PRCGetHasSpell(nSpell, oCreature)) @@ -605,7 +605,7 @@ int PRCGetHasSpell(int nRealSpellID, object oCreature = OBJECT_SELF) if(nSpellbookType == SPELLBOOK_TYPE_PREPARED) { nCount = persistant_array_get_int(oCreature, "NewSpellbookMem_" + IntToString(nClass), j); - if(DEBUG) DoDebug("PRCGetHasSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(j) + "] = " + IntToString(nCount)); + if(DEBUG) DoDebug("prc_inc_core >> PRCGetHasSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(j) + "] = " + IntToString(nCount)); if(nCount > 0) { nUses += nCount; @@ -615,7 +615,7 @@ int PRCGetHasSpell(int nRealSpellID, object oCreature = OBJECT_SELF) { nSpellLevel = StringToInt(Get2DACache(sFile, "Level", j)); nCount = persistant_array_get_int(oCreature, "NewSpellbookMem_" + IntToString(nClass), nSpellLevel); - if(DEBUG) DoDebug("PRCGetHasSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(j) + "] = " + IntToString(nCount)); + if(DEBUG) DoDebug("prc_inc_core >> PRCGetHasSpell: NewSpellbookMem_" + IntToString(nClass) + "[" + IntToString(j) + "] = " + IntToString(nCount)); if(nCount > 0) { nUses += nCount; diff --git a/src/include/prc_inc_fork.nss b/src/include/prc_inc_fork.nss index b6b672e..2b19f97 100644 --- a/src/include/prc_inc_fork.nss +++ b/src/include/prc_inc_fork.nss @@ -795,7 +795,7 @@ int GetWeaponSize(object oWeapon) case BASE_ITEM_GREATAXE: case BASE_ITEM_HEAVYFLAIL: case BASE_ITEM_QUARTERSTAFF: - case BASE_ITEM_MAGICSTAFF: + //case BASE_ITEM_MAGICSTAFF: case BASE_ITEM_SCYTHE: case BASE_ITEM_SHORTSPEAR: case BASE_ITEM_ELVEN_COURTBLADE: @@ -832,7 +832,7 @@ int PRCLargeWeaponCheck(int iBaseType, int nSize) case BASE_ITEM_GREATAXE: case BASE_ITEM_HEAVYFLAIL: case BASE_ITEM_QUARTERSTAFF: - case BASE_ITEM_MAGICSTAFF: + //case BASE_ITEM_MAGICSTAFF: case BASE_ITEM_SCYTHE: case BASE_ITEM_SHORTSPEAR: case BASE_ITEM_ELVEN_COURTBLADE: diff --git a/src/include/prc_inc_function.nss b/src/include/prc_inc_function.nss index 93f7aa1..aa47614 100644 --- a/src/include/prc_inc_function.nss +++ b/src/include/prc_inc_function.nss @@ -108,8 +108,8 @@ void SetupCharacterData(object oPC) case CLASS_TYPE_ALIENIST: sScript = "prc_alienist"; break; case CLASS_TYPE_ARCANE_DUELIST: sScript = "prc_arcduel"; break; case CLASS_TYPE_ARCHIVIST: sScript = "prc_archivist"; iData |= 0x01; break; - case CLASS_TYPE_ASSASSIN: iData |= 0x03; break; - case CLASS_TYPE_BAELNORN: sScript = "prc_baelnorn"; break; + case CLASS_TYPE_ASSASSIN: break; + //case CLASS_TYPE_BAELNORN: sScript = "prc_baelnorn"; break; case CLASS_TYPE_BARD: iData |= 0x07; break; case CLASS_TYPE_BATTLESMITH: sScript = "prc_battlesmith"; break; case CLASS_TYPE_BEGUILER: iData |= 0x03; break; @@ -121,7 +121,7 @@ void SetupCharacterData(object oPC) case CLASS_TYPE_BLIGHTLORD: sScript = "prc_blightlord"; break; case CLASS_TYPE_BLOODCLAW_MASTER: sScript = "tob_bloodclaw"; break; case CLASS_TYPE_BONDED_SUMMONNER: sScript = "prc_bondedsumm"; break; - case CLASS_TYPE_CELEBRANT_SHARESS: iData |= 0x03; break; + case CLASS_TYPE_CELEBRANT_SHARESS: iData |= 0x07; break; case CLASS_TYPE_CHILD_OF_NIGHT: sScript = "shd_childnight"; break; case CLASS_TYPE_COC: sScript = "prc_coc"; break; case CLASS_TYPE_COMBAT_MEDIC: sScript = "prc_cbtmed"; break; @@ -180,6 +180,7 @@ void SetupCharacterData(object oPC) case CLASS_TYPE_LASHER: sScript = "prc_lasher"; break; case CLASS_TYPE_LEGENDARY_DREADNOUGHT: sScript = "prc_legendread"; break; case CLASS_TYPE_LICH: sScript = "pnp_lich_level"; break; + case CLASS_TYPE_LION_OF_TALISID: sScript = "prc_lot"; break; case CLASS_TYPE_MAGEKILLER: sScript = "prc_magekill"; break; case CLASS_TYPE_MASTER_HARPER: sScript = "prc_masterh"; break; case CLASS_TYPE_MASTER_OF_NINE: sScript = "tob_masterofnine"; break; @@ -245,6 +246,7 @@ void SetupCharacterData(object oPC) case CLASS_TYPE_TOTEM_RAGER: sScript = "moi_totemrager"; break; case CLASS_TYPE_TRUENAMER: sScript = "true_truenamer"; iData |= 0x01; break; case CLASS_TYPE_VASSAL: sScript = "prc_vassal"; break; + case CLASS_TYPE_VERDANT_LORD: sScript = "prc_verdantlord"; break; case CLASS_TYPE_VIGILANT: sScript = "prc_vigilant"; break; case CLASS_TYPE_WARBLADE: sScript = "tob_warblade"; iData |= 0x01; break; case CLASS_TYPE_WARCHIEF: sScript = "prc_warchief"; break; @@ -2264,6 +2266,8 @@ void FeatSpecialUsePerDay(object oPC) FeatUsePerDay(oPC, FEAT_FM_FOREST_DOMINION, ABILITY_CHARISMA, 3); FeatUsePerDay(oPC, FEAT_SOD_DEATH_TOUCH, -1, (GetLevelByClass(CLASS_TYPE_SLAYER_OF_DOMIEL, oPC)+4)/4); FeatUsePerDay(oPC, FEAT_SUEL_DISPELLING_STRIKE, -1, (GetLevelByClass(CLASS_TYPE_SUEL_ARCHANAMACH, oPC) + 2) / 4); + FeatUsePerDay(oPC, FEAT_PLANT_CONTROL, ABILITY_CHARISMA, 3); + FeatUsePerDay(oPC, FEAT_PLANT_DEFIANCE, ABILITY_CHARISMA, 3); FeatDiabolist(oPC); FeatAlaghar(oPC); ShadowShieldUses(oPC); diff --git a/src/include/prc_inc_json.nss b/src/include/prc_inc_json.nss new file mode 100644 index 0000000..749c551 --- /dev/null +++ b/src/include/prc_inc_json.nss @@ -0,0 +1,750 @@ +//::////////////////////////////////////////////// +//:: ;-. ,-. ,-. ,-. +//:: | ) | ) / ( ) +//:: |-' |-< | ;-: +//:: | | \ \ ( ) +//:: ' ' ' `-' `-' +//::////////////////////////////////////////////// +//:: +/* + Library for json related functions. + +*/ +//:: +//::////////////////////////////////////////////// +//:: Script: prc_inc_json.nss +//:: Author: Jaysyn +//:: Created: 2025-08-14 12:52:32 +//::////////////////////////////////////////////// +#include "nw_inc_gff" +#include "inc_debug" + + +//::---------------------------------------------| +//:: Helper functions | +//::---------------------------------------------| + +//:: Function to calculate the maximum possible hitpoints for oCreature +int GetMaxPossibleHP(object oCreature) +{ + int nMaxHP = 0; // Stores the total maximum hitpoints + int i = 1; // Initialize position for class index + int nConb = GetAbilityModifier(ABILITY_CONSTITUTION, oCreature); + + // Loop through each class position the creature may have, checking each class in turn + while (TRUE) + { + // Get the class ID at position i + int nClassID = GetClassByPosition(i, oCreature); + + // If class is invalid (no more classes to check), break out of loop + if (nClassID == CLASS_TYPE_INVALID) + break; + + // Get the number of levels in this class + int nClassLevels = GetLevelByClass(nClassID, oCreature); + + // Get the row index of the class in classes.2da by using class ID as the row index + int nHitDie = StringToInt(Get2DAString("classes", "HitDie", nClassID)); + + // Add maximum HP for this class (Hit Die * number of levels in this class) + nMaxHP += nClassLevels * nHitDie; + + // Move to the next class position + i++; + } + + nMaxHP += nConb * GetHitDice(oCreature); + + return nMaxHP; +} + +// Returns how many feats a creature should gain when its HD increases +int CalculateFeatsFromHD(int nOriginalHD, int nNewHD) +{ + // HD increase + int nHDIncrease = nNewHD - nOriginalHD; + + if (nHDIncrease <= 0) + return 0; // No new feats if HD did not increase + + // D&D 3E: 1 feat per 3 HD + int nBonusFeats = nHDIncrease / 3; + + return nBonusFeats; +} + +// Returns how many stat boosts a creature needs based on its HD +int GetStatBoostsFromHD(int nCreatureHD, int nModiferCap) +{ + // Make sure we don't get negative boosts + int nBoosts = (40 - nCreatureHD) / 4; + if (nBoosts < 0) + { + nBoosts = 0; + } + return nBoosts; +} + +// Struct to hold size modifiers +struct SizeModifiers +{ + int strMod; + int dexMod; + int conMod; + int naturalAC; + int attackBonus; + int dexSkillMod; +}; + +//::---------------------------------------------| +//:: JSON functions | +//::---------------------------------------------| + +//:: Returns the integer value of a VarTable entry named sVarName, or 0 if not found. +int json_GetLocalIntFromVarTable(json jCreature, string sVarName) +{ + json jVarTable = GffGetList(jCreature, "VarTable"); + if (jVarTable == JsonNull()) + return 0; + + int nCount = JsonGetLength(jVarTable); + int i; + for (i = 0; i < nCount; i++) + { + json jEntry = JsonArrayGet(jVarTable, i); + if (jEntry == JsonNull()) continue; + + // Get the Name field using GFF functions + json jName = GffGetString(jEntry, "Name"); + if (jName == JsonNull()) continue; + string sName = JsonGetString(jName); + + if (sName == sVarName) + { + // Get the Type field to verify it's an integer + json jType = GffGetDword(jEntry, "Type"); + if (jType != JsonNull()) + { + int nType = JsonGetInt(jType); + if (nType == 1) // Type 1 = integer + { + // Get the Value field using GFF functions + json jValue = GffGetInt(jEntry, "Value"); + if (jValue == JsonNull()) return 0; + return JsonGetInt(jValue); + } + } + } + } + + return 0; +} + +//:: Returns the total Hit Dice from a JSON creature GFF. +int json_GetCreatureHD(json jGff) +{ + int nHD = 0; + + json jClasses = GffGetList(jGff, "ClassList"); + if (jClasses == JsonNull()) + return 0; + + int nCount = JsonGetLength(jClasses); + int i; + for (i = 0; i < nCount; i = i + 1) + { + json jClass = JsonArrayGet(jClasses, i); + if (jClass == JsonNull()) + continue; + + json jLevel = GffGetShort(jClass, "ClassLevel"); // Use GffGetShort, not GffGetField + if (jLevel != JsonNull()) + { + int nLevel = JsonGetInt(jLevel); + nHD += nLevel; + } + } + + if (nHD <= 0) nHD = 1; + return nHD; +} + +//:: Reads ABILITY_TO_INCREASE from creature's VarTable and applies stat boosts based on increased HD +json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD, int nModifierCap) +{ + if (jCreature == JsonNull()) + return jCreature; + + // Get the ability to increase from VarTable + int nAbilityToIncrease = json_GetLocalIntFromVarTable(jCreature, "ABILITY_TO_INCREASE"); + if (nAbilityToIncrease < 0 || nAbilityToIncrease > 5) + { + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Invalid ABILITY_TO_INCREASE value: " + IntToString(nAbilityToIncrease)); + return jCreature; // Invalid ability index + } + + // Calculate total current HD from ClassList + json jClassList = GffGetList(jCreature, "ClassList"); + if (jClassList == JsonNull()) + { + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Failed to get ClassList"); + return jCreature; + } + + int nCurrentTotalHD = 0; + int nClassCount = JsonGetLength(jClassList); + int i; + + for (i = 0; i < nClassCount; i++) + { + json jClass = JsonArrayGet(jClassList, i); + if (jClass != JsonNull()) + { + json jClassLevel = GffGetShort(jClass, "ClassLevel"); + if (jClassLevel != JsonNull()) + { + nCurrentTotalHD += JsonGetInt(jClassLevel); + } + } + } + + if (nCurrentTotalHD <= 0) + { + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: No valid Hit Dice found"); + return jCreature; + } + + // Calculate stat boosts based on crossing level thresholds + // Characters get stat boosts at levels 4, 8, 12, 16, 20, etc. + int nOriginalBoosts = nOriginalHD / 4; // How many boosts they already had + int nCurrentBoosts = nCurrentTotalHD / 4; // How many they should have now + int nBoosts = nCurrentBoosts - nOriginalBoosts; // Additional boosts to apply + + if (nBoosts <= 0) + { + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: No boosts needed (Original boosts: " + IntToString(nOriginalBoosts) + ", Current boosts: " + IntToString(nCurrentBoosts) + ")"); + return jCreature; + } + + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Applying " + IntToString(nBoosts) + " boosts to ability " + IntToString(nAbilityToIncrease) + " for HD increase from " + IntToString(nOriginalHD) + " to " + IntToString(nCurrentTotalHD)); + + // Determine which ability to boost and apply the increases + string sAbilityField; + switch (nAbilityToIncrease) + { + case 0: sAbilityField = "Str"; break; + case 1: sAbilityField = "Dex"; break; + case 2: sAbilityField = "Con"; break; + case 3: sAbilityField = "Int"; break; + case 4: sAbilityField = "Wis"; break; + case 5: sAbilityField = "Cha"; break; + default: + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Unknown ability index: " + IntToString(nAbilityToIncrease)); + return jCreature; + } + + // Get current ability score + json jCurrentAbility = GffGetByte(jCreature, sAbilityField); + if (jCurrentAbility == JsonNull()) + { + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Failed to get " + sAbilityField + " score"); + return jCreature; + } + + int nCurrentScore = JsonGetInt(jCurrentAbility); + int nNewScore = nCurrentScore + nBoosts; + + // Clamp to valid byte range + if (nNewScore < 1) nNewScore = 1; + if (nNewScore > 255) nNewScore = 255; + + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Increasing " + sAbilityField + " from " + IntToString(nCurrentScore) + " to " + IntToString(nNewScore)); + + // Apply the ability score increase + jCreature = GffReplaceByte(jCreature, sAbilityField, nNewScore); + if (jCreature == JsonNull()) + { + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Failed to update " + sAbilityField); + return JsonNull(); + } + + if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Successfully applied ability boosts"); + return jCreature; +} + +//:: Adjust a skill by its ID (more efficient than name lookup) +json json_AdjustCreatureSkillByID(json jCreature, int nSkillID, int nMod) +{ + // Get the SkillList + json jSkillList = GffGetList(jCreature, "SkillList"); + if (jSkillList == JsonNull()) + { + if(DEBUG) DoDebug("json_AdjustCreatureSkillByID: Failed to get SkillList"); + return jCreature; + } + + // Check if we have enough skills in the list + int nSkillCount = JsonGetLength(jSkillList); + if (nSkillID >= nSkillCount) + { + if(DEBUG) DoDebug("json_AdjustCreatureSkillByID: Skill ID " + IntToString(nSkillID) + " exceeds skill list length " + IntToString(nSkillCount)); + return jCreature; + } + + // Get the skill struct at the correct index + json jSkill = JsonArrayGet(jSkillList, nSkillID); + if (jSkill == JsonNull()) + { + if(DEBUG) DoDebug("json_AdjustCreatureSkillByID: Failed to get skill at index " + IntToString(nSkillID)); + return jCreature; + } + + // Get current rank + json jRank = GffGetByte(jSkill, "Rank"); + if (jRank == JsonNull()) + { + if(DEBUG) DoDebug("json_AdjustCreatureSkillByID: Failed to get Rank for skill ID " + IntToString(nSkillID)); + return jCreature; + } + + int nCurrentRank = JsonGetInt(jRank); + int nNewRank = nCurrentRank + nMod; + + // Clamp to valid range + if (nNewRank < 0) nNewRank = 0; + if (nNewRank > 255) nNewRank = 255; + + // Update the rank in the skill struct + jSkill = GffReplaceByte(jSkill, "Rank", nNewRank); + if (jSkill == JsonNull()) + { + if(DEBUG) DoDebug("json_AdjustCreatureSkillByID: Failed to replace Rank for skill ID " + IntToString(nSkillID)); + return JsonNull(); + } + + // Replace the skill in the array + jSkillList = JsonArraySet(jSkillList, nSkillID, jSkill); + + // Replace the SkillList in the creature + jCreature = GffReplaceList(jCreature, "SkillList", jSkillList); + + return jCreature; +} + +//:: Reads FutureFeat1..FutureFeatN from the template's VarTable and appends them to FeatList if missing. +json json_AddFeatsFromCreatureVars(json jCreature, int nOriginalHD) +{ + if (jCreature == JsonNull()) + return jCreature; + + // Calculate current total HD + int nCurrentHD = json_GetCreatureHD(jCreature); + int nAddedHD = nCurrentHD - nOriginalHD; + + if (nAddedHD <= 0) + { + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: No additional HD to process (Current: " + IntToString(nCurrentHD) + ", Original: " + IntToString(nOriginalHD) + ")"); + return jCreature; + } + + // Calculate how many feats the creature should get based on added HD + // Characters get a feat at levels 1, 3, 6, 9, 12, 15, 18, etc. + // For added levels, we need to check what feat levels they cross + int nOriginalFeats = (nOriginalHD + 2) / 3; // Feats from original HD + int nCurrentFeats = (nCurrentHD + 2) / 3; // Feats from current HD + int nNumFeats = nCurrentFeats - nOriginalFeats; // Additional feats earned + + if (nNumFeats <= 0) + { + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: No additional feats earned from " + IntToString(nAddedHD) + " added HD"); + return jCreature; + } + + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Processing " + IntToString(nNumFeats) + " feats for " + IntToString(nAddedHD) + " added HD (Original: " + IntToString(nOriginalHD) + ", Current: " + IntToString(nCurrentHD) + ")"); + + // Get or create FeatList + json jFeatArray = GffGetList(jCreature, "FeatList"); + if (jFeatArray == JsonNull()) + jFeatArray = JsonArray(); + + int nOriginalFeatCount = JsonGetLength(jFeatArray); + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Original feat count: " + IntToString(nOriginalFeatCount)); + + int nAdded = 0; + int i = 1; + int nMaxIterations = 100; // Safety valve + int nIterations = 0; + + while (nAdded < nNumFeats && nIterations < nMaxIterations) + { + nIterations++; + string sVarName = "FutureFeat" + IntToString(i); + + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Checking " + sVarName); + + int nFeat = json_GetLocalIntFromVarTable(jCreature, sVarName); + + if (nFeat <= 0) + { + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: " + sVarName + " not found or invalid"); + i++; + continue; + } + + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Found " + sVarName + " = " + IntToString(nFeat)); + + // Check if feat already exists + int bHasFeat = FALSE; + int nFeatCount = JsonGetLength(jFeatArray); + int j; + + for (j = 0; j < nFeatCount; j++) + { + json jFeatStruct = JsonArrayGet(jFeatArray, j); + if (jFeatStruct != JsonNull()) + { + json jFeatValue = GffGetWord(jFeatStruct, "Feat"); + if (jFeatValue != JsonNull() && JsonGetInt(jFeatValue) == nFeat) + { + bHasFeat = TRUE; + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Feat " + IntToString(nFeat) + " already exists"); + break; + } + } + } + + // Insert if missing + if (!bHasFeat) + { + json jNewFeat = JsonObject(); + jNewFeat = JsonObjectSet(jNewFeat, "__struct_id", JsonInt(1)); + jNewFeat = GffAddWord(jNewFeat, "Feat", nFeat); + + if (jNewFeat == JsonNull()) + { + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Failed to create feat struct for feat " + IntToString(nFeat)); + break; + } + + jFeatArray = JsonArrayInsert(jFeatArray, jNewFeat); + nAdded++; + + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Added feat " + IntToString(nFeat) + " (" + IntToString(nAdded) + "/" + IntToString(nNumFeats) + ")"); + } + + i++; + + // Safety break if we've checked too many variables + if (i > 100) + { + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Safety break - checked too many FutureFeat variables"); + break; + } + } + + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Completed. Added " + IntToString(nAdded) + " feats in " + IntToString(nIterations) + " iterations"); + + // Save back the modified FeatList only if we added something + if (nAdded > 0) + { + jCreature = GffReplaceList(jCreature, "FeatList", jFeatArray); + if (jCreature == JsonNull()) + { + if(DEBUG) DoDebug("json_AddFeatsFromCreatureVars: Failed to replace FeatList"); + return JsonNull(); + } + } + + return jCreature; +} + +//:: Get the size of a JSON array +int json_GetArraySize(json jArray) +{ + int iSize = 0; + while (JsonArrayGet(jArray, iSize) != JsonNull()) + { + iSize++; + } + return iSize; +} + +//:: Directly modifies oCreature's Base Natural AC if iNewAC is higher. +//:: +json json_UpdateBaseAC(json jCreature, int iNewAC) +{ + //json jBaseAC = GffGetByte(jCreature, "Creature/value/NaturalAC/value"); + json jBaseAC = GffGetByte(jCreature, "NaturalAC"); + + if (jBaseAC == JsonNull()) + { + return JsonNull(); + } + else if (JsonGetInt(jBaseAC) > iNewAC) + { + return jCreature; + } + else + { + jCreature = GffReplaceByte(jCreature, "NaturalAC", iNewAC); + + return jCreature; + } +} + +//:: Directly modifies jCreature's Challenge Rating. +//:: This is useful for most XP calculations. +json json_UpdateCR(json jCreature, int nBaseCR, int nCRMod) +{ + int nNewCR; + +//:: Add CRMod to current CR + nNewCR = nBaseCR + nCRMod; + +//:: Modify Challenge Rating + jCreature = GffReplaceFloat(jCreature, "ChallengeRating", IntToFloat(nNewCR)); + + return jCreature; +} + +//:: Directly modifies ability scores in a creature's JSON GFF. +//:: +json json_UpdateTemplateStats(json jCreature, int iModStr = 0, int iModDex = 0, int iModCon = 0, + int iModInt = 0, int iModWis = 0, int iModCha = 0) +{ + int iCurrent; + + // STR + if (!GffGetFieldExists(jCreature, "Str", GFF_FIELD_TYPE_BYTE)) + jCreature = GffAddByte(jCreature, "Str", 10); + iCurrent = JsonGetInt(GffGetByte(jCreature, "Str")); + jCreature = GffReplaceByte(jCreature, "Str", iCurrent + iModStr); + + // DEX + if (!GffGetFieldExists(jCreature, "Dex", GFF_FIELD_TYPE_BYTE)) + jCreature = GffAddByte(jCreature, "Dex", 10); + iCurrent = JsonGetInt(GffGetByte(jCreature, "Dex")); + jCreature = GffReplaceByte(jCreature, "Dex", iCurrent + iModDex); + + // CON + if (!GffGetFieldExists(jCreature, "Con", GFF_FIELD_TYPE_BYTE)) + jCreature = GffAddByte(jCreature, "Con", 10); + iCurrent = JsonGetInt(GffGetByte(jCreature, "Con")); + jCreature = GffReplaceByte(jCreature, "Con", iCurrent + iModCon); + + // INT + if (!GffGetFieldExists(jCreature, "Int", GFF_FIELD_TYPE_BYTE)) + jCreature = GffAddByte(jCreature, "Int", 10); + iCurrent = JsonGetInt(GffGetByte(jCreature, "Int")); + jCreature = GffReplaceByte(jCreature, "Int", iCurrent + iModInt); + + // WIS + if (!GffGetFieldExists(jCreature, "Wis", GFF_FIELD_TYPE_BYTE)) + jCreature = GffAddByte(jCreature, "Wis", 10); + iCurrent = JsonGetInt(GffGetByte(jCreature, "Wis")); + jCreature = GffReplaceByte(jCreature, "Wis", iCurrent + iModWis); + + // CHA + if (!GffGetFieldExists(jCreature, "Cha", GFF_FIELD_TYPE_BYTE)) + jCreature = GffAddByte(jCreature, "Cha", 10); + iCurrent = JsonGetInt(GffGetByte(jCreature, "Cha")); + jCreature = GffReplaceByte(jCreature, "Cha", iCurrent + iModCha); + + return jCreature; +} + +//:: Directly modifies oCreature's ability scores. +//:: +json json_UpdateCreatureStats(json jCreature, object oBaseCreature, int iModStr = 0, int iModDex = 0, int iModCon = 0, int iModInt = 0, int iModWis = 0, int iModCha = 0) +{ +//:: Retrieve and modify ability scores + int iCurrentStr = GetAbilityScore(oBaseCreature, ABILITY_STRENGTH); + int iCurrentDex = GetAbilityScore(oBaseCreature, ABILITY_DEXTERITY); + int iCurrentCon = GetAbilityScore(oBaseCreature, ABILITY_CONSTITUTION); + int iCurrentInt = GetAbilityScore(oBaseCreature, ABILITY_INTELLIGENCE); + int iCurrentWis = GetAbilityScore(oBaseCreature, ABILITY_WISDOM); + int iCurrentCha = GetAbilityScore(oBaseCreature, ABILITY_CHARISMA); + + jCreature = GffReplaceByte(jCreature, "Str", iCurrentStr + iModStr); + jCreature = GffReplaceByte(jCreature, "Dex", iCurrentDex + iModDex); + jCreature = GffReplaceByte(jCreature, "Con", iCurrentCon + iModCon); + jCreature = GffReplaceByte(jCreature, "Int", iCurrentInt + iModInt); + jCreature = GffReplaceByte(jCreature, "Wis", iCurrentWis + iModWis); + jCreature = GffReplaceByte(jCreature, "Cha", iCurrentCha + iModCha); + + return jCreature; +} + +//:: Increases a creature's Hit Dice in its JSON GFF data by nAmount +json json_AddHitDice(json jCreature, int nAmount) +{ + if (jCreature == JsonNull() || nAmount <= 0) + return jCreature; + + // Get the ClassList + json jClasses = GffGetList(jCreature, "ClassList"); + if (jClasses == JsonNull() || JsonGetLength(jClasses) == 0) + return jCreature; + + // Grab the first class entry + json jFirstClass = JsonArrayGet(jClasses, 0); + + // Only touch ClassLevel; do NOT modify Class type + json jCurrentLevel = GffGetShort(jFirstClass, "ClassLevel"); + int nCurrentLevel = JsonGetInt(jCurrentLevel); + int nNewLevel = nCurrentLevel + nAmount; + + // Replace ClassLevel only + jFirstClass = GffReplaceShort(jFirstClass, "ClassLevel", nNewLevel); + + // Put modified class back into the array + jClasses = JsonArraySet(jClasses, 0, jFirstClass); + + // Replace ClassList in the creature JSON + jCreature = GffReplaceList(jCreature, "ClassList", jClasses); + + return jCreature; +} + +//:: Adjusts a creature's size by nSizeChange (-4 to +4) and updates ability scores accordingly. +json json_AdjustCreatureSize(json jCreature, int nSizeDelta) +{ + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Entering function. nSizeDelta=" + IntToString(nSizeDelta)); + + if (jCreature == JsonNull() || nSizeDelta == 0) + { + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Exiting: jCreature is null or nSizeDelta is 0"); + return jCreature; + } + + // Get Appearance_Type using GFF functions + json jAppearanceType = GffGetWord(jCreature, "Appearance_Type"); + if (jAppearanceType == JsonNull()) + { + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Failed to get Appearance_Type"); + return jCreature; + } + + int nAppearance = JsonGetInt(jAppearanceType); + int nCurrentSize = StringToInt(Get2DAString("appearances", "Size", nAppearance)); + + // Default to Medium (4) if invalid + if (nCurrentSize < 0 || nCurrentSize > 8) nCurrentSize = 4; + + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Appearance_Type =" + IntToString(nAppearance) + ", Size =" + IntToString(nCurrentSize)); + + int nSteps = nSizeDelta; + + // Calculate modifiers based on size change + int strMod = nSteps * 4; + int dexMod = nSteps * -1; + int conMod = nSteps * 2; + int naturalAC = nSteps * 1; + int dexSkillMod = nSteps * -2; + + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Applying stat modifiers: STR=" + IntToString(strMod) + + " DEX=" + IntToString(dexMod) + + " CON=" + IntToString(conMod)); + + // Update ability scores using GFF functions with error checking + json jStr = GffGetByte(jCreature, "Str"); + if (jStr != JsonNull()) + { + int nNewStr = JsonGetInt(jStr) + strMod; + if (nNewStr < 1) nNewStr = 1; + if (nNewStr > 255) nNewStr = 255; + + jCreature = GffReplaceByte(jCreature, "Str", nNewStr); + if (jCreature == JsonNull()) + { + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Failed to update Str"); + return JsonNull(); + } + } + + json jDex = GffGetByte(jCreature, "Dex"); + if (jDex != JsonNull()) + { + int nNewDex = JsonGetInt(jDex) + dexMod; + if (nNewDex < 1) nNewDex = 1; + if (nNewDex > 255) nNewDex = 255; + + jCreature = GffReplaceByte(jCreature, "Dex", nNewDex); + if (jCreature == JsonNull()) + { + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Failed to update Dex"); + return JsonNull(); + } + } + + json jCon = GffGetByte(jCreature, "Con"); + if (jCon != JsonNull()) + { + int nNewCon = JsonGetInt(jCon) + conMod; + if (nNewCon < 1) nNewCon = 1; + if (nNewCon > 255) nNewCon = 255; + + jCreature = GffReplaceByte(jCreature, "Con", nNewCon); + if (jCreature == JsonNull()) + { + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Failed to update Con"); + return JsonNull(); + } + } + + // Update Natural AC + json jNaturalAC = GffGetByte(jCreature, "NaturalAC"); + if (jNaturalAC != JsonNull()) + { + int nCurrentNA = JsonGetInt(jNaturalAC); + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Current NaturalAC: " + IntToString(nCurrentNA)); + + int nNewNA = nCurrentNA + naturalAC; + if (nNewNA < 0) nNewNA = 0; + if (nNewNA > 255) nNewNA = 255; + + jCreature = GffReplaceByte(jCreature, "NaturalAC", nNewNA); + if (jCreature == JsonNull()) + { + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Failed to update NaturalAC"); + return JsonNull(); + } + } + + // Adjust all Dexterity-based skills by finding them in skills.2da + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Adjusting DEX-based skills"); + + int nSkillID = 0; + while (TRUE) + { + string sKeyAbility = Get2DAString("skills", "KeyAbility", nSkillID); + + // Break when we've reached the end of skills + if (sKeyAbility == "") + break; + + // If this skill uses Dexterity, adjust it + if (sKeyAbility == "DEX") + { + string sSkillLabel = Get2DAString("skills", "Label", nSkillID); + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Adjusting DEX skill: " + sSkillLabel + " (ID: " + IntToString(nSkillID) + ")"); + + jCreature = json_AdjustCreatureSkillByID(jCreature, nSkillID, dexSkillMod); + if (jCreature == JsonNull()) + { + if(DEBUG) DoDebug("prc_inc_json >> json_AdjustCreatureSize: Failed adjusting skill ID " + IntToString(nSkillID)); + return JsonNull(); + } + } + + nSkillID++; + } + + if(DEBUG) DoDebug("json_AdjustCreatureSize completed successfully"); + return jCreature; +} + + +//:: Test void +//:: void main (){} \ No newline at end of file diff --git a/src/include/prc_inc_material.nss b/src/include/prc_inc_material.nss index f69e26d..dc050aa 100644 --- a/src/include/prc_inc_material.nss +++ b/src/include/prc_inc_material.nss @@ -16,26 +16,28 @@ const int MATERIAL_TYPE_UNKNOWN = 0; const int MATERIAL_TYPE_BONE = 1; const int MATERIAL_TYPE_CERAMIC = 2; const int MATERIAL_TYPE_CRYSTAL = 3; -const int MATERIAL_TYPE_FABRIC = 4; +const int MATERIAL_TYPE_FIBER = 4; const int MATERIAL_TYPE_LEATHER = 5; const int MATERIAL_TYPE_METAL = 6; const int MATERIAL_TYPE_PAPER = 7; const int MATERIAL_TYPE_ROPE = 8; const int MATERIAL_TYPE_STONE = 9; const int MATERIAL_TYPE_WOOD = 10; +const int MATERIAL_TYPE_BOTANICAL = 11; const string MATERIAL_TYPE_NAME_INVALID = ""; const string MATERIAL_TYPE_NAME_UNKNOWN = "Unknown"; const string MATERIAL_TYPE_NAME_BONE = "Bone"; const string MATERIAL_TYPE_NAME_CERAMIC = "Ceramic"; const string MATERIAL_TYPE_NAME_CRYSTAL = "Crystal"; -const string MATERIAL_TYPE_NAME_FABRIC = "Fabric"; +const string MATERIAL_TYPE_NAME_FIBER = "Fiber"; const string MATERIAL_TYPE_NAME_LEATHER = "Leather"; const string MATERIAL_TYPE_NAME_METAL = "Metal"; const string MATERIAL_TYPE_NAME_PAPER = "Paper"; const string MATERIAL_TYPE_NAME_ROPE = "Rope"; const string MATERIAL_TYPE_NAME_STONE = "Stone"; const string MATERIAL_TYPE_NAME_WOOD = "Wood"; +const string MATERIAL_TYPE_NAME_BOTANICAL = "Bontanical"; //:: Material Itemproperty Constants //:://////////////////////////////////////////////////////////////////////////////// @@ -163,7 +165,8 @@ const int IP_MATERIAL_OBSIDIAN = 140; const int IP_MATERIAL_BAMBOO = 141; const int IP_MATERIAL_POTTERY = 142; const int IP_MATERIAL_GLASSTEEL = 143; -const int IP_NUM_MATERIALS = 143; +const int IP_MATERIAL_HERB = 144; +const int IP_NUM_MATERIALS = 144; const string IP_MATERIAL_NAME_INVALID = ""; const string IP_MATERIAL_NAME_UNKNOWN = "Unknown"; @@ -288,6 +291,7 @@ const string IP_MATERIAL_NAME_OBSIDIAN = "Obsidian"; const string IP_MATERIAL_NAME_BAMBOO = "Bamboo"; const string IP_MATERIAL_NAME_POTTERY = "Pottery"; const string IP_MATERIAL_NAME_GLASSTEEL = "Glassteel"; +const string IP_MATERIAL_NAME_HERB = "Herbs"; //:://///////////////////////////////////////////////////////////// // GetMaterialName( int iMaterialType, int bLowerCase = FALSE) @@ -428,6 +432,7 @@ string GetMaterialName( int iMaterialType, int bLowerCase = FALSE) case IP_MATERIAL_BAMBOO: sName = IP_MATERIAL_NAME_BAMBOO; break; case IP_MATERIAL_POTTERY: sName = IP_MATERIAL_NAME_POTTERY; break; case IP_MATERIAL_GLASSTEEL: sName = IP_MATERIAL_NAME_GLASSTEEL; break; + case IP_MATERIAL_HERB: sName = IP_MATERIAL_NAME_HERB; break; default: return ""; } @@ -573,6 +578,7 @@ int GetIPMaterial( string sMaterialName) else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_BAMBOO)) return IP_MATERIAL_BAMBOO; else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_POTTERY)) return IP_MATERIAL_POTTERY; else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_GLASSTEEL)) return IP_MATERIAL_GLASSTEEL; + else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_HERB)) return IP_MATERIAL_HERB; return IP_MATERIAL_INVALID; } @@ -806,6 +812,9 @@ int GetMaterialType(int nMaterial) || nMaterial == IP_MATERIAL_DRAKE_IVORY ) return MATERIAL_TYPE_BONE; + else if ( nMaterial == IP_MATERIAL_HERB ) + return MATERIAL_TYPE_BOTANICAL; + else if ( nMaterial == IP_MATERIAL_ELUKIAN_CLAY || nMaterial == IP_MATERIAL_POTTERY ) return MATERIAL_TYPE_CERAMIC; @@ -814,7 +823,7 @@ int GetMaterialType(int nMaterial) || nMaterial == IP_MATERIAL_COTTON || nMaterial == IP_MATERIAL_SILK || nMaterial == IP_MATERIAL_WOOL ) - return MATERIAL_TYPE_FABRIC; + return MATERIAL_TYPE_FIBER; else if ( nMaterial == IP_MATERIAL_GEM || nMaterial == IP_MATERIAL_GEM_ALEXANDRITE diff --git a/src/include/prc_inc_spells.nss b/src/include/prc_inc_spells.nss index 98e812d..18c0efa 100644 --- a/src/include/prc_inc_spells.nss +++ b/src/include/prc_inc_spells.nss @@ -20,6 +20,11 @@ /* Function prototypes */ ////////////////////////////////////////////////// + + +//:: Calculates total Shield AC bonuses from all sources +int GetTotalShieldACBonus(object oCreature); + //:: Handles psuedo-Foritifcation void DoFortification(object oPC = OBJECT_SELF, int nFortification = 25); @@ -376,6 +381,36 @@ const int TYPE_DIVINE = -2; /* Function definitions */ ////////////////////////////////////////////////// + +// Returns TRUE if nSpellID is a subradial spell, FALSE otherwise +int GetIsSubradialSpell(int nSpellID) +{ + string sMaster = Get2DACache("spells", "Master", nSpellID); + + // If the Master column is numeric, this spell is a subradial of that master + if (sMaster != "" && sMaster != "****") + { + return TRUE; + } + + return FALSE; +} + +// Returns the masterspell SpellID for a subradial spell. +int GetMasterSpellFromSubradial(int nSpellID) +{ + string sMaster = Get2DAString("spells", "Master", nSpellID); + + if (sMaster != "****") + { + return StringToInt(sMaster); + } + + return -1; // No master +} + + + int GetPrCAdjustedClassLevel(int nClass, object oCaster = OBJECT_SELF) { int iTemp; @@ -412,7 +447,9 @@ int GetPrCAdjustedCasterLevelByType(int nClassType, object oCaster = OBJECT_SELF { int nClassLvl; int nClass1, nClass2, nClass3, nClass4, nClass5, nClass6, nClass7, nClass8; - int nClass1Lvl, nClass2Lvl, nClass3Lvl, nClass4Lvl, nClass5Lvl, nClass6Lvl, nClass7Lvl, nClass8Lvl; + int nClass1Lvl = 0, nClass2Lvl = 0, nClass3Lvl = 0, nClass4Lvl = 0, + nClass5Lvl = 0, nClass6Lvl = 0, nClass7Lvl = 0, nClass8Lvl = 0; + nClass1 = GetClassByPosition(1, oCaster); nClass2 = GetClassByPosition(2, oCaster); @@ -2223,6 +2260,78 @@ int GetControlledCelestialTotalHD(object oPC = OBJECT_SELF) return nTotalHD; } +//:: Calculates total Shield AC bonuses from all sources +int GetTotalShieldACBonus(object oCreature) +{ + int nShieldBonus = 0; + object oItem; + + // Check left hand for shield + oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oCreature); + if (GetIsObjectValid(oItem)) + { + int nBaseItem = GetBaseItemType(oItem); + if (nBaseItem == BASE_ITEM_SMALLSHIELD || + nBaseItem == BASE_ITEM_LARGESHIELD || + nBaseItem == BASE_ITEM_TOWERSHIELD) + { + nShieldBonus += GetItemACValue(oItem); + if(DEBUG) DoDebug("prc_inc_spells >> GetTotalShieldACBonus: Found Shield AC, bonus = " + IntToString(nShieldBonus)+"."); + } + } + + // Check creature weapon slots for shield AC bonus + oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oCreature); + if (GetIsObjectValid(oItem)) + nShieldBonus += GetItemACValue(oItem); + + oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oCreature); + if (GetIsObjectValid(oItem)) + nShieldBonus += GetItemACValue(oItem); + + oItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oCreature); + if (GetIsObjectValid(oItem)) + nShieldBonus += GetItemACValue(oItem); + + // Add shield AC bonuses from magical effects + effect eEffect = GetFirstEffect(oCreature); + while (GetIsEffectValid(eEffect)) + { + int nACType = GetEffectInteger(eEffect, 0); + int nACAmount = GetEffectInteger(eEffect, 1); + + if(GetEffectType(eEffect) == EFFECT_TYPE_AC_INCREASE && nACType == AC_SHIELD_ENCHANTMENT_BONUS) + { + if(DEBUG) DoDebug("prc_inc_spells >> GetTotalShieldACBonus: Found Shield AC effect, bonus = " + IntToString(nACAmount)+"."); + nShieldBonus += nACAmount; + } + + eEffect = GetNextEffect(oCreature); + } + return nShieldBonus; +} + + + + // Add shield AC bonuses from magical effects +/* effect eEffect = GetFirstEffect(oCreature); + while (GetIsEffectValid(eEffect)) + { + if (GetEffectType(eEffect) == EFFECT_TYPE_AC_INCREASE && + GetEffectInteger(eEffect, 1) == AC_SHIELD_ENCHANTMENT_BONUS) + { + int nMod = GetEffectInteger(eEffect, 0); + int nType = GetEffectInteger(eEffect, 1); + nShieldBonus += GetEffectInteger(eEffect, 0); + string s = "Found AC effect: bonus = " + IntToString(nMod) + ", type = " + IntToString(nType); + SendMessageToPC(GetFirstPC(), s); + } + eEffect = GetNextEffect(oCreature); + } + + return nShieldBonus; +}*/ +// //:: Handles psuedo-Foritifcation void DoFortification(object oPC = OBJECT_SELF, int nFortification = 25) { @@ -2275,7 +2384,7 @@ void DoFortification(object oPC = OBJECT_SELF, int nFortification = 25) IPSafeAddItemProperty(oHide, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_BACKSTAB)); } } - +// // wrapper for DecrementRemainingSpellUses, works for newspellbook 'fake' spells too // should also find and decrement metamagics for newspellbooks diff --git a/src/include/prc_inc_switch.nss b/src/include/prc_inc_switch.nss index 4913e3d..b2c7160 100644 --- a/src/include/prc_inc_switch.nss +++ b/src/include/prc_inc_switch.nss @@ -70,6 +70,8 @@ 43 PRC_CRAFTING_BASE_ITEMS int 1 44 PRC_XP_USE_SIMPLE_LA int 1 45 PRC_XP_USE_SIMPLE_RACIAL_HD int 1 +46 PRC_CREATE_INFUSION_CASTER_LEVEL int 1 +47 PRC_CREATE_INFUSION_OPTIONAL_HERBS int 0 */ /* This variable MUST be updated with every new version of the PRC!!! */ @@ -1952,6 +1954,18 @@ const string PRC_CRAFT_ROD_CASTER_LEVEL = "PRC_CRAFT_ROD_CASTER_LEVE */ const string PRC_CRAFT_STAFF_CASTER_LEVEL = "PRC_CRAFT_STAFF_CASTER_LEVEL"; +/* + * As above, except it applies to herbal infusions + */ +const string PRC_CREATE_INFUSION_CASTER_LEVEL = "PRC_CREATE_INFUSION_CASTER_LEVEL"; + +/* + * Builder's Option: Enables the optional PnP herbs for creating infusions. + * Each herb is keyed to a spell circle level & spell school as shown on pg. 33 + * of the Master's of the Wild sourcebook. + */ +const string PRC_CREATE_INFUSION_OPTIONAL_HERBS = "PRC_CREATE_INFUSION_OPTIONAL_HERBS"; + /* * Characters with a crafting feat always have the appropriate base item in their inventory */ @@ -1961,45 +1975,52 @@ const string PRC_CRAFTING_BASE_ITEMS = "PRC_CRAFTING_BASE_ITEMS"; * Max level of spells brewed into potions * defaults to 3 */ -const string X2_CI_BREWPOTION_MAXLEVEL = "X2_CI_BREWPOTION_MAXLEVEL"; +//const string X2_CI_BREWPOTION_MAXLEVEL = "X2_CI_BREWPOTION_MAXLEVEL"; +const string PRC_X2_BREWPOTION_MAXLEVEL = "PRC_X2_BREWPOTION_MAXLEVEL"; /* * cost modifier of spells brewed into poitions * defaults to 50 */ -const string X2_CI_BREWPOTION_COSTMODIFIER = "X2_CI_BREWPOTION_COSTMODIFIER"; +const string PRC_X2_BREWPOTION_COSTMODIFIER = "PRC_X2_BREWPOTION_COSTMODIFIER"; /* * cost modifier of spells scribed into scrolls * defaults to 25 */ -const string X2_CI_SCRIBESCROLL_COSTMODIFIER = "X2_CI_SCRIBESCROLL_COSTMODIFIER"; +const string PRC_X2_SCRIBESCROLL_COSTMODIFIER = "PRC_X2_SCRIBESCROLL_COSTMODIFIER"; + +/* + * cost modifier of spells infused into herbs + * defaults to 25 + */ +const string PRC_X2_CREATEINFUSION_COSTMODIFIER = "PRC_X2_CREATEINFUSION_COSTMODIFIER"; /* * Max level of spells crafted into wands * defaults to 4 */ -const string X2_CI_CRAFTWAND_MAXLEVEL = "X2_CI_CRAFTWAND_MAXLEVEL"; +const string PRC_X2_CRAFTWAND_MAXLEVEL = "PRC_X2_CRAFTWAND_MAXLEVEL"; /* * cost modifier of spells crafted into wands * defaults to 750 */ -const string X2_CI_CRAFTWAND_COSTMODIFIER = "X2_CI_CRAFTWAND_COSTMODIFIER"; +const string PRC_X2_CRAFTWAND_COSTMODIFIER = "PRC_X2_CRAFTWAND_COSTMODIFIER"; /* * cost modifier of spells crafted into rods * note that adding a second spell costs 75% and 3 or more costs 50% * defaults to 750 */ -const string X2_CI_CRAFTROD_COSTMODIFIER = "X2_CI_CRAFTROD_COSTMODIFIER"; +const string PRC_X2_CRAFTROD_COSTMODIFIER = "PRC_X2_CRAFTROD_COSTMODIFIER"; /* * cost modifier of spells crafted into staffs * note that adding a second spell costs 75% and 3 or more costs 50% * defaults to 750 */ -const string X2_CI_CRAFTSTAFF_COSTMODIFIER = "X2_CI_CRAFTSTAFF_COSTMODIFIER"; +const string PRC_X2_CRAFTSTAFF_COSTMODIFIER = "PRC_X2_CRAFTSTAFF_COSTMODIFIER"; /** * Allows the use of arbitrary itemproperties and uses NWN item costs diff --git a/src/include/prc_inc_turning.nss b/src/include/prc_inc_turning.nss index 5504819..6c819d4 100644 --- a/src/include/prc_inc_turning.nss +++ b/src/include/prc_inc_turning.nss @@ -14,17 +14,6 @@ /* Function prototypes */ ////////////////////////////////////////////////// - - - - - - - - - - - //gets the number of class levels that count for turning int GetTurningClassLevel(object oCaster = OBJECT_SELF, int nTurnType = SPELL_TURN_UNDEAD); @@ -191,6 +180,20 @@ int GetIsTurnOrRebuke(object oTarget, int nTurnType, int nTargetRace) break; } + case SPELL_PLANT_DEFIANCE: + { + if(nTargetRace == RACIAL_TYPE_PLANT) + nReturn = ACTION_TURN; + + break; + } + case SPELL_PLANT_CONTROL: + { + if(nTargetRace == RACIAL_TYPE_PLANT) + nReturn = ACTION_REBUKE; + + break; + } case SPELL_TURN_PLANT: { // Plant domain rebukes or commands plants @@ -383,6 +386,13 @@ int GetTurningClassLevel(object oCaster = OBJECT_SELF, int nTurnType = SPELL_TUR if (nTurnType == SPELL_OPPORTUNISTIC_PIETY_TURN) return GetLevelByClass(CLASS_TYPE_FACTOTUM, oCaster); + + if (nTurnType == SPELL_PLANT_DEFIANCE || nTurnType == SPELL_PLANT_CONTROL) + { + int nDivineLvl = GetPrCAdjustedCasterLevelByType(TYPE_DIVINE, oCaster); + + return nDivineLvl; + } //Baelnorn & Archlich adds all class levels. if(GetLevelByClass(CLASS_TYPE_BAELNORN, oCaster) || GetHasFeat(FEAT_TEMPLATE_ARCHLICH_MARKER, oCaster)) //:: Archlich diff --git a/src/include/prc_ipfeat_const.nss b/src/include/prc_ipfeat_const.nss index a1829be..d419f0b 100644 --- a/src/include/prc_ipfeat_const.nss +++ b/src/include/prc_ipfeat_const.nss @@ -1206,11 +1206,12 @@ const int IP_CONST_FEAT_REGENERATION_5 = 24820; const int IP_CONST_FEAT_SCENT = 24821; const int IP_CONST_FEAT_GIANT_RACIAL_TYPE = 24822; -const int IP_CONST_FEAT_TEMPLATE_ARCHLICH_MARKER = 16401; //:: Archlich -const int IP_CONST_FEAT_TEMPLATE_TURN_UNDEAD = 16402; -const int IP_CONST_FEAT_TEMPLATE_PROJECTION = 24823; -const int IP_CONST_FEAT_TEMPLATE_END_PROJECTION = 24824; -const int IP_CONST_FEAT_TEMPLATE_ANIMATE_DEAD = 24825; +const int IP_CONST_FEAT_TEMPLATE_ARCHLICH_MARKER = 16401; //:: Archlich +const int IP_CONST_FEAT_TEMPLATE_TURN_UNDEAD = 16402; +const int IP_CONST_FEAT_TEMPLATE_BAELNORN_MARKER = 16409; //:: Baelnorn +const int IP_CONST_FEAT_TEMPLATE_PROJECTION = 24823; +const int IP_CONST_FEAT_TEMPLATE_END_PROJECTION = 24824; +const int IP_CONST_FEAT_TEMPLATE_ANIMATE_DEAD = 24825; const int IP_CONST_FEAT_TEMPLATE_SAINT_SLA_BLESS = 16403; //:: Saint //const int IP_CONST_FEAT_TEMPLATE_SAINT_SLA_GUIDANCE = 16404; const int IP_CONST_FEAT_TEMPLATE_SAINT_SLA_RESISTANCE = 16405; diff --git a/src/include/prc_misc_const.nss b/src/include/prc_misc_const.nss index 0575811..b083a8e 100644 --- a/src/include/prc_misc_const.nss +++ b/src/include/prc_misc_const.nss @@ -29,6 +29,10 @@ const int BASE_ITEM_CRAFTED_STAFF = 201; const int BASE_ITEM_ELVEN_LIGHTBLADE = 202; const int BASE_ITEM_ELVEN_THINBLADE = 203; const int BASE_ITEM_ELVEN_COURTBLADE = 204; +const int BASE_ITEM_CRAFT_SCEPTER = 249; +const int BASE_ITEM_MAGIC_SCEPTER = 250; +const int BASE_ITEM_MUNDANE_HERB = 252; +const int BASE_ITEM_INFUSED_HERB = 253; //::////////////////////////////////////////////// //:: Player Health Const diff --git a/src/include/prc_nui_lv_inc.nss b/src/include/prc_nui_lv_inc.nss index e59e1b0..bc10b28 100644 --- a/src/include/prc_nui_lv_inc.nss +++ b/src/include/prc_nui_lv_inc.nss @@ -1566,10 +1566,6 @@ void FinishLevelUp(int nClass, object oPC=OBJECT_SELF) int nLevel = GetLevelByClass(nClass, oPC); SetPersistantLocalInt(oPC, "LastSpellGainLevel", nLevel); } - if (GetIsBladeMagicClass(nClass)) - { - DeletePersistantLocalInt(oPC, "AllowedDisciplines"); - } ClearLevelUpNUICaches(nClass, oPC); } @@ -2573,7 +2569,8 @@ int HasPreRequisitesForManeuver(int nClass, int spellbookId, object oPC=OBJECT_S json chosenDisc = JsonObjectGet(discInfo, discipline); if (chosenDisc != JsonNull()) { - int nManCount = JsonGetInt(JsonObjectGet(chosenDisc, IntToString(MANEUVER_TYPE_MANEUVER))); + int nManCount = (JsonGetInt(JsonObjectGet(chosenDisc, IntToString(MANEUVER_TYPE_MANEUVER))) + + JsonGetInt(JsonObjectGet(chosenDisc, IntToString(MANEUVER_TYPE_STANCE)))); if (nManCount >= prereqs) return TRUE; } diff --git a/src/include/prc_nui_sb_inc.nss b/src/include/prc_nui_sb_inc.nss index 409044f..7148413 100644 --- a/src/include/prc_nui_sb_inc.nss +++ b/src/include/prc_nui_sb_inc.nss @@ -387,8 +387,7 @@ int IsClassAllowedToUseNUISpellbook(object oPlayer, int nClass) return TRUE; // Arcane Spont - if (nClass == CLASS_TYPE_ASSASSIN - || nClass == CLASS_TYPE_BEGUILER + if (nClass == CLASS_TYPE_BEGUILER || nClass == CLASS_TYPE_CELEBRANT_SHARESS || nClass == CLASS_TYPE_DREAD_NECROMANCER || nClass == CLASS_TYPE_DUSKBLADE @@ -506,8 +505,7 @@ int CanClassUseMetamagicFeats(int nClass) // I don't want to spend the time looping through each class's // feat 2da so this is the list of all classes that are allowed to use the // Spellbook NUI and can use Metamagic - return (nClass == CLASS_TYPE_ASSASSIN - || nClass == CLASS_TYPE_BARD + return (nClass == CLASS_TYPE_BARD || nClass == CLASS_TYPE_SORCERER || nClass == CLASS_TYPE_BEGUILER || nClass == CLASS_TYPE_DREAD_NECROMANCER @@ -527,7 +525,6 @@ int CanClassUseSuddenMetamagicFeats(int nClass) // Spellbook NUI and can use Sudden Metamagic return (nClass == CLASS_TYPE_SHADOWLORD || nClass == CLASS_TYPE_ARCHIVIST - || nClass == CLASS_TYPE_ASSASSIN || nClass == CLASS_TYPE_BARD || nClass == CLASS_TYPE_BEGUILER || nClass == CLASS_TYPE_DREAD_NECROMANCER @@ -845,4 +842,4 @@ int IsSpellbookNUIOpen(object oPC) } return FALSE; -} +} \ No newline at end of file diff --git a/src/include/prc_spell_const.nss b/src/include/prc_spell_const.nss index b90a3dc..02a3a2f 100644 --- a/src/include/prc_spell_const.nss +++ b/src/include/prc_spell_const.nss @@ -1292,6 +1292,69 @@ const int SPELL_SUMMON_CREATURE_IX_WATER = 3200; //:: Player's Handbook Spells const int SPELL_SPIRITUAL_WEAPON = 17249; +const int SPELL_SUMMON_NATURES_ALLY_1 = 17000; +const int SPELL_SUMMON_NATURES_ALLY_1_DIREBADGER = 17001; +const int SPELL_SUMMON_NATURES_ALLY_1_DIRERAT = 17002; +const int SPELL_SUMMON_NATURES_ALLY_1_DOG = 17003; +const int SPELL_SUMMON_NATURES_ALLY_1_HAWK = 17004; +const int SPELL_SUMMON_NATURES_ALLY_1_TINY_VIPER = 17005; + +const int SPELL_SUMMON_NATURES_ALLY_2 = 17010; +const int SPELL_SUMMON_NATURES_ALLY_2_DIREBOAR = 17011; +const int SPELL_SUMMON_NATURES_ALLY_2_COOSHEE = 17012; +const int SPELL_SUMMON_NATURES_ALLY_2_WOLF = 17013; +const int SPELL_SUMMON_NATURES_ALLY_2_SMALL_VIPER = 17014; +const int SPELL_SUMMON_NATURES_ALLY_2_BLACKBEAR = 17015; + +const int SPELL_SUMMON_NATURES_ALLY_3 = 17020; +const int SPELL_SUMMON_NATURES_ALLY_3_BROWNBEAR = 17021; +const int SPELL_SUMMON_NATURES_ALLY_3_DIREWOLK = 17022; +const int SPELL_SUMMON_NATURES_ALLY_3_LARGE_VIPER = 17023; +const int SPELL_SUMMON_NATURES_ALLY_3_LEOPARD = 17024; +const int SPELL_SUMMON_NATURES_ALLY_3_SATYR = 17025; + +const int SPELL_SUMMON_NATURES_ALLY_4 = 17030; +const int SPELL_SUMMON_NATURES_ALLY_4_LION = 17031; +const int SPELL_SUMMON_NATURES_ALLY_4_POLAR_BEAR = 17032; +const int SPELL_SUMMON_NATURES_ALLY_4_DIRE_SPIDER = 17033; +const int SPELL_SUMMON_NATURES_ALLY_4_HUGE_VIPER = 17034; +const int SPELL_SUMMON_NATURES_ALLY_4_WEREBOAR = 17035; + +const int SPELL_SUMMON_NATURES_ALLY_5 = 17040; +const int SPELL_SUMMON_NATURES_ALLY_5_MED_AIR = 17041; +const int SPELL_SUMMON_NATURES_ALLY_5_MED_EARTH = 17042; +const int SPELL_SUMMON_NATURES_ALLY_5_MED_FIRE = 17043; +const int SPELL_SUMMON_NATURES_ALLY_5_MED_WATER = 17044; +const int SPELL_SUMMON_NATURES_ALLY_5_DIRE_BEAR = 17045; + +const int SPELL_SUMMON_NATURES_ALLY_6 = 17050; +const int SPELL_SUMMON_NATURES_ALLY_6_LG_AIR = 17051; +const int SPELL_SUMMON_NATURES_ALLY_6_LG_EARTH = 17052; +const int SPELL_SUMMON_NATURES_ALLY_6_LG_FIRE = 17053; +const int SPELL_SUMMON_NATURES_ALLY_6_LG_WATER = 17054; +const int SPELL_SUMMON_NATURES_ALLY_6_DIRETIGER = 17055; + +const int SPELL_SUMMON_NATURES_ALLY_7 = 17060; +const int SPELL_SUMMON_NATURES_ALLY_7_BULETTE = 17061; +const int SPELL_SUMMON_NATURES_ALLY_7_INVSTALKER = 17062; +const int SPELL_SUMMON_NATURES_ALLY_7_PIXIE = 17063; +const int SPELL_SUMMON_NATURES_ALLY_7_GORGON = 17064; +const int SPELL_SUMMON_NATURES_ALLY_7_MANTICORE = 17065; + +const int SPELL_SUMMON_NATURES_ALLY_8 = 17070; +const int SPELL_SUMMON_NATURES_ALLY_8_GR_AIR = 17071; +const int SPELL_SUMMON_NATURES_ALLY_8_GR_EARTH = 17072; +const int SPELL_SUMMON_NATURES_ALLY_8_GR_FIRE = 17073; +const int SPELL_SUMMON_NATURES_ALLY_8_GR_WATER = 17074; +const int SPELL_SUMMON_NATURES_ALLY_8_NYMPH = 17075; + +const int SPELL_SUMMON_NATURES_ALLY_9 = 17080; +const int SPELL_SUMMON_NATURES_ALLY_9_ELD_AIR = 17081; +const int SPELL_SUMMON_NATURES_ALLY_9_ELD_EARTH = 17082; +const int SPELL_SUMMON_NATURES_ALLY_9_ELD_FIRE = 17083; +const int SPELL_SUMMON_NATURES_ALLY_9_ELD_WATER = 17084; +const int SPELL_SUMMON_NATURES_ALLY_9_ARANEA = 17085; + //:: Player's Handbook II Spells const int SPELL_CHASING_PERFECTION = 2479; @@ -1300,12 +1363,34 @@ const int SPELL_SPIRIT_WORM = 17248; const int SPELL_FORCE_MISSILES = 2480; //:: Masters of the Wild Spells +const int SPELL_FORESTFOLD = 17090; +const int SPELL_CREEPING_COLD = 17091; +const int SPELL_GREATER_CREEPING_COLD = 17092; +const int SPELL_CONTROL_PLANTS = 17237; +const int SPELL_ADRENALINE_SURGE = 17238; +const int SPELL_INVULNERABILITY_TO_ELEMENTS = 17239; +const int SPELL_REGEN_RING = 17241; +const int SPELL_REGEN_CIRCLE = 17242; const int SPELL_REGEN_LIGHT_WOUNDS = 17243; const int SPELL_REGEN_MODERATE_WOUNDS = 17244; const int SPELL_REGEN_SERIOUS_WOUNDS = 17245; const int SPELL_REGEN_CRITICAL_WOUNDS = 17246; const int SPELL_SPEED_WIND = 17247; -const int SPELL_TORTISE_SHELL = 17250; +const int SPELL_TORTISE_SHELL = 17250; + +//:: Book of Exalted Deeds Spells +const int SPELL_LEONALS_ROAR = 17240; + +//:: Master of the Wild Feats +const int SPELL_VL_WILD_SHAPE_TREANT = 17989; +const int SPELL_VL_ANIMATE_TREE = 17990; +const int SPELL_PLANT_DEFIANCE = 17991; +const int SPELL_PLANT_CONTROL = 17992; + +//:: Book of Exalted Deeds Feats +const int SPELL_FOT_LEONALS_ROAR = 17993; +const int SPELL_FOT_LIONS_SWIFTNESS = 17994; +const int SPELL_FAVORED_OF_THE_COMPANIONS = 17995; //x const int SPELL_TENSERS_FLOATING_DISK = 3849; diff --git a/src/include/prc_spellf_inc.nss b/src/include/prc_spellf_inc.nss index 753680f..1b6042f 100644 --- a/src/include/prc_spellf_inc.nss +++ b/src/include/prc_spellf_inc.nss @@ -299,6 +299,7 @@ int SpellfireDrainItem(object oPC, object oItem, int bCharged = TRUE, int bSingl { if((nBase == BASE_ITEM_POTIONS) || + (nBase == BASE_ITEM_INFUSED_HERB) || (nBase == BASE_ITEM_SCROLL) || (nBase == BASE_ITEM_SPELLSCROLL) || (nBase == BASE_ITEM_BLANK_POTION) || @@ -382,6 +383,7 @@ void SpellfireDrain(object oPC, object oTarget, int bCharged = TRUE, int bExempt if(GetPRCSwitch(PRC_SPELLFIRE_DISALLOW_DRAIN_SCROLL_POTION) && ((nBase == BASE_ITEM_POTIONS) || (nBase == BASE_ITEM_SCROLL) || + (nBase == BASE_ITEM_INFUSED_HERB) || (nBase == BASE_ITEM_BLANK_POTION) || (nBase == BASE_ITEM_BLANK_SCROLL) ) @@ -525,3 +527,4 @@ void SpellfireCrown(object oPC) } } +//:: void main() {} \ No newline at end of file diff --git a/src/include/prc_template_con.nss b/src/include/prc_template_con.nss index fc15544..2955524 100644 --- a/src/include/prc_template_con.nss +++ b/src/include/prc_template_con.nss @@ -18,6 +18,7 @@ const int TEMPLATE_CURST = 26; const int TEMPLATE_GRAVETOUCHED_GHOUL = 29; const int TEMPLATE_CRYPTSPAWN = 30; const int TEMPLATE_ARCHLICH = 99; +const int TEMPLATE_BAELNORN = 100; const int TEMPLATE_LICH = 101; const int TEMPLATE_DEMILICH = 102; const int TEMPLATE_NECROPOLITAN = 105; diff --git a/src/include/prc_x2_craft.nss b/src/include/prc_x2_craft.nss index 5834f63..ac1d795 100644 --- a/src/include/prc_x2_craft.nss +++ b/src/include/prc_x2_craft.nss @@ -13,7 +13,7 @@ //:: Created On: 2003-05-09 //:: Last Updated On: 2003-10-14 //::////////////////////////////////////////////// - +#include "prc_x2_itemprop" struct craft_struct { @@ -44,22 +44,24 @@ const string X2_CI_CRAFTSKILL_CONV ="x2_p_craftskills"; /* moved to be code switches const int X2_CI_BREWPOTION_MAXLEVEL = 3; // Max Level for potions -const int X2_CI_BREWPOTION_COSTMODIFIER = 50; // gp Brew Potion XPCost Modifier +const int PRC_X2_BREWPOTION_COSTMODIFIER = 50; // gp Brew Potion XPCost Modifier // Scribe Scroll related constants -const int X2_CI_SCRIBESCROLL_COSTMODIFIER = 25; // Scribescroll Cost Modifier +const int PRC_X2_SCRIBESCROLL_COSTMODIFIER = 25; // Scribescroll Cost Modifier // Craft Wand related constants -const int X2_CI_CRAFTWAND_MAXLEVEL = 4; -const int X2_CI_CRAFTWAND_COSTMODIFIER = 750; +const int PRC_X2_CRAFTWAND_MAXLEVEL = 4; +const int PRC_X2_CRAFTWAND_COSTMODIFIER = 750; */ -const int X2_CI_BREWPOTION_FEAT_ID = 944; // Brew Potion feat simulation -const int X2_CI_SCRIBESCROLL_FEAT_ID = 945; -const int X2_CI_CRAFTWAND_FEAT_ID = 946; -const int X2_CI_CRAFTROD_FEAT_ID = 2927; -const int X2_CI_CRAFTROD_EPIC_FEAT_ID = 3490; -const int X2_CI_CRAFTSTAFF_FEAT_ID = 2928; -const int X2_CI_CRAFTSTAFF_EPIC_FEAT_ID = 3491; +const int X2_CI_BREWPOTION_FEAT_ID = 944; // Brew Potion feat simulation +const int X2_CI_SCRIBESCROLL_FEAT_ID = 945; +const int X2_CI_CRAFTWAND_FEAT_ID = 946; +const int X2_CI_CRAFTROD_FEAT_ID = 2927; +const int X2_CI_CRAFTROD_EPIC_FEAT_ID = 3490; +const int X2_CI_CRAFTSTAFF_FEAT_ID = 2928; +const int X2_CI_CRAFTSTAFF_EPIC_FEAT_ID = 3491; +const int X2_CI_CREATEINFUSION_FEAT_ID = 25960; + const string X2_CI_BREWPOTION_NEWITEM_RESREF = "x2_it_pcpotion"; // ResRef for new potion item const string X2_CI_SCRIBESCROLL_NEWITEM_RESREF = "x2_it_pcscroll"; // ResRef for new scroll item const string X2_CI_CRAFTWAND_NEWITEM_RESREF = "x2_it_pcwand"; @@ -185,6 +187,17 @@ int CheckAlternativeCrafting(object oPC, int nSpell, struct craft_cost_struct co // Returns the maximum of caster level used and other effective levels from emulating spells int GetAlternativeCasterLevel(object oPC, int nLevel); +// ----------------------------------------------------------------------------- +// Create and Return an herbal infusion with an item property +// matching nSpellID. +// ----------------------------------------------------------------------------- +object CICreateInfusion(object oCreator, int nSpellID); + +// ----------------------------------------------------------------------------- +// Returns TRUE if the player successfully performed Create Infusion +// ----------------------------------------------------------------------------- +int CICraftCheckCreateInfusion(object oSpellTarget, object oCaster, int nID = 0); + ////////////////////////////////////////////////// /* Include section */ ////////////////////////////////////////////////// @@ -194,6 +207,7 @@ int GetAlternativeCasterLevel(object oPC, int nLevel); #include "prc_inc_newip" #include "prc_inc_spells" #include "prc_add_spell_dc" +#include "inc_infusion" ////////////////////////////////////////////////// /* Function definitions */ @@ -261,7 +275,8 @@ int CIGetIsCraftFeatBaseItem(object oItem) nBt == BASE_ITEM_BLANK_SCROLL || nBt == BASE_ITEM_BLANK_WAND || nBt == BASE_ITEM_CRAFTED_ROD || - nBt == BASE_ITEM_CRAFTED_STAFF) + nBt == BASE_ITEM_CRAFTED_STAFF || + nBt == BASE_ITEM_MUNDANE_HERB) return TRUE; else return FALSE; @@ -453,11 +468,158 @@ object CICraftCraftWand(object oCreator, int nSpellID ) // ----------------------------------------------------------------------------- // Georg, 2003-06-12 -// Create and Return a magic wand with an item property -// matching nSpellID. Charges are set to d20 + casterlevel -// capped at 50 max +// Create and Return a magic scroll with an item property +// matching nSpellID. // ----------------------------------------------------------------------------- object CICraftScribeScroll(object oCreator, int nSpellID) +{ + if (DEBUG) DoDebug("CICraftScribeScroll: Enter (nSpellID=" + IntToString(nSpellID) + ")"); + + // Keep original and compute one-step master (if subradial) + int nSpellOriginal = nSpellID; + int nSpellMaster = nSpellOriginal; + if (GetIsSubradialSpell(nSpellOriginal)) + { + nSpellMaster = GetMasterSpellFromSubradial(nSpellOriginal); + if (DEBUG) DoDebug("CICraftScribeScroll: subradial detected original=" + IntToString(nSpellOriginal) + " master=" + IntToString(nSpellMaster)); + } + + // Prefer iprp mapping for the original, fallback to master + int nPropID = IPGetIPConstCastSpellFromSpellID(nSpellOriginal); + int nSpellUsedForIP = nSpellOriginal; + if (nPropID < 0) + { + if (DEBUG) DoDebug("CICraftScribeScroll: no iprp for original " + IntToString(nSpellOriginal) + ", trying master " + IntToString(nSpellMaster)); + nPropID = IPGetIPConstCastSpellFromSpellID(nSpellMaster); + nSpellUsedForIP = nSpellMaster; + } + + // If neither original nor master has an iprp row, we can still try templates, + // but most templates expect a matching iprp. Bail out now if nothing found. + if (nPropID < 0) + { + if (DEBUG) DoDebug("CICraftScribeScroll: no iprp_spells entry for original/master -> aborting"); + FloatingTextStringOnCreature("This spell cannot be scribed (no item property mapping).", oCreator, FALSE); + return OBJECT_INVALID; + } + + if (DEBUG) DoDebug("CICraftScribeScroll: using spell " + IntToString(nSpellUsedForIP) + " (iprp row " + IntToString(nPropID) + ") for item property"); + + // Material component check (based on resolved iprp row) + string sMat = GetMaterialComponentTag(nPropID); + if (sMat != "") + { + object oMat = GetItemPossessedBy(oCreator, sMat); + if (oMat == OBJECT_INVALID) + { + FloatingTextStrRefOnCreature(83374, oCreator); // Missing material component + return OBJECT_INVALID; + } + else + { + DestroyObject(oMat); + } + } + + // Resolve class and scroll template + int nClass = PRCGetLastSpellCastClass(); + string sClass = ""; + switch (nClass) + { + case CLASS_TYPE_WIZARD: + case CLASS_TYPE_SORCERER: sClass = "Wiz_Sorc"; break; + case CLASS_TYPE_CLERIC: + case CLASS_TYPE_UR_PRIEST: sClass = "Cleric"; break; + case CLASS_TYPE_PALADIN: sClass = "Paladin"; break; + case CLASS_TYPE_DRUID: + case CLASS_TYPE_BLIGHTER: sClass = "Druid"; break; + case CLASS_TYPE_RANGER: sClass = "Ranger"; break; + case CLASS_TYPE_BARD: sClass = "Bard"; break; + case CLASS_TYPE_ASSASSIN: sClass = "Assassin"; break; + } + + object oTarget = OBJECT_INVALID; + string sResRef = ""; + + // Try to find a class-specific scroll template. + if (sClass != "") + { + // Try original first (so if you made a subradial-specific template it will be used) + sResRef = Get2DACache(X2_CI_2DA_SCROLLS, sClass, nSpellOriginal); + if (sResRef == "") + { + // fallback to the spell that matched an iprp row (master or original) + sResRef = Get2DACache(X2_CI_2DA_SCROLLS, sClass, nSpellUsedForIP); + } + if (sResRef != "") + { + oTarget = CreateItemOnObject(sResRef, oCreator); + if (DEBUG) DoDebug("CICraftScribeScroll: created template " + sResRef + " for class " + sClass); + // Ensure template uses the correct cast-spell property: replace the template's cast-spell IP with ours + if (oTarget != OBJECT_INVALID) + { + itemproperty ipIter = GetFirstItemProperty(oTarget); + while (GetIsItemPropertyValid(ipIter)) + { + if (GetItemPropertyType(ipIter) == ITEM_PROPERTY_CAST_SPELL) + { + RemoveItemProperty(oTarget, ipIter); + break; + } + ipIter = GetNextItemProperty(oTarget); + } + itemproperty ipSpell = ItemPropertyCastSpell(nPropID, IP_CONST_CASTSPELL_NUMUSES_SINGLE_USE); + AddItemProperty(DURATION_TYPE_PERMANENT, ipSpell, oTarget); + } + } + } + + // If no template or sClass was empty, create generic scroll and add itemprop. + if (oTarget == OBJECT_INVALID) + { + sResRef = "craft_scroll"; + oTarget = CreateItemOnObject(sResRef, oCreator); + if (oTarget == OBJECT_INVALID) + { + WriteTimestampedLogEntry("CICraftScribeScroll: failed to create craft_scroll template."); + return OBJECT_INVALID; + } + // Remove existing default IP and add correct one + itemproperty ipFirst = GetFirstItemProperty(oTarget); + if (GetIsItemPropertyValid(ipFirst)) + RemoveItemProperty(oTarget, ipFirst); + + itemproperty ipSpell = ItemPropertyCastSpell(nPropID, IP_CONST_CASTSPELL_NUMUSES_SINGLE_USE); + AddItemProperty(DURATION_TYPE_PERMANENT, ipSpell, oTarget); + } + + // Add PRC metadata (use the same spell that matched the iprp row so metadata and IP line up) + if (GetPRCSwitch(PRC_SCRIBE_SCROLL_CASTER_LEVEL)) + { + int nCasterLevel = GetAlternativeCasterLevel(oCreator, PRCGetCasterLevel(oCreator)); + itemproperty ipLevel = ItemPropertyCastSpellCasterLevel(nSpellUsedForIP, nCasterLevel); + AddItemProperty(DURATION_TYPE_PERMANENT, ipLevel, oTarget); + + itemproperty ipMeta = ItemPropertyCastSpellMetamagic(nSpellUsedForIP, PRCGetMetaMagicFeat()); + AddItemProperty(DURATION_TYPE_PERMANENT, ipMeta, oTarget); + + int nDC = PRCGetSpellSaveDC(nSpellUsedForIP, GetSpellSchool(nSpellUsedForIP), OBJECT_SELF); + itemproperty ipDC = ItemPropertyCastSpellDC(nSpellUsedForIP, nDC); + AddItemProperty(DURATION_TYPE_PERMANENT, ipDC, oTarget); + } + + if (oTarget == OBJECT_INVALID) + { + WriteTimestampedLogEntry("prc_x2_craft::CICraftScribeScroll failed - Resref: " + sResRef + " Class: " + sClass + "(" + IntToString(nClass) + ") " + " SpellID " + IntToString(nSpellID)); + return OBJECT_INVALID; + } + + if (DEBUG) DoDebug("CICraftScribeScroll: Success - created scroll " + sResRef + " for spell " + IntToString(nSpellUsedForIP)); + return oTarget; +} + + +/* object CICraftScribeScroll(object oCreator, int nSpellID) { int nPropID = IPGetIPConstCastSpellFromSpellID(nSpellID); object oTarget; @@ -491,6 +653,7 @@ object CICraftScribeScroll(object oCreator, int nSpellID) break; case CLASS_TYPE_CLERIC: case CLASS_TYPE_UR_PRIEST: + case CLASS_TYPE_OCULAR: sClass = "Cleric"; break; case CLASS_TYPE_PALADIN: @@ -506,6 +669,9 @@ object CICraftScribeScroll(object oCreator, int nSpellID) case CLASS_TYPE_BARD: sClass = "Bard"; break; + case CLASS_TYPE_ASSASSIN: + sClass = "Assassin"; + break; } string sResRef; if (sClass != "") @@ -542,7 +708,7 @@ object CICraftScribeScroll(object oCreator, int nSpellID) } return oTarget; } - + */ // ----------------------------------------------------------------------------- // Returns TRUE if the player used the last spell to brew a potion // ----------------------------------------------------------------------------- @@ -593,7 +759,7 @@ These dont work as IPs since they are hardcoded */ // ------------------------------------------------------------------------- // check if spell is below maxlevel for brew potions // ------------------------------------------------------------------------- - int nPotionMaxLevel = GetPRCSwitch(X2_CI_BREWPOTION_MAXLEVEL); + int nPotionMaxLevel = GetPRCSwitch(PRC_X2_BREWPOTION_MAXLEVEL); if(nPotionMaxLevel == 0) nPotionMaxLevel = 3; @@ -624,7 +790,7 @@ These dont work as IPs since they are hardcoded */ // ------------------------------------------------------------------------- // XP/GP Cost Calculation // ------------------------------------------------------------------------- - int nCostModifier = GetPRCSwitch(X2_CI_BREWPOTION_COSTMODIFIER); + int nCostModifier = GetPRCSwitch(PRC_X2_BREWPOTION_COSTMODIFIER); if(nCostModifier == 0) nCostModifier = 50; int nCost = CIGetCraftGPCost(nLevel, nCostModifier, PRC_BREW_POTION_CASTER_LEVEL); @@ -728,7 +894,7 @@ int CICraftCheckScribeScroll(object oSpellTarget, object oCaster, int nID = 0) // XP/GP Cost Calculation // ------------------------------------------------------------------------- int nLevel = CIGetSpellInnateLevel(nID,TRUE); - int nCostModifier = GetPRCSwitch(X2_CI_SCRIBESCROLL_COSTMODIFIER); + int nCostModifier = GetPRCSwitch(PRC_X2_SCRIBESCROLL_COSTMODIFIER); if(nCostModifier == 0) nCostModifier = 25; int nCost = CIGetCraftGPCost(nLevel, nCostModifier, PRC_SCRIBE_SCROLL_CASTER_LEVEL); @@ -884,7 +1050,7 @@ These dont work as IPs since they are hardcoded */ // ------------------------------------------------------------------------- // check if spell is below maxlevel for craft want // ------------------------------------------------------------------------- - int nMaxLevel = GetPRCSwitch(X2_CI_CRAFTWAND_MAXLEVEL); + int nMaxLevel = GetPRCSwitch(PRC_X2_CRAFTWAND_MAXLEVEL); if(nMaxLevel == 0) nMaxLevel = 4; if (nLevel > nMaxLevel) @@ -896,7 +1062,7 @@ These dont work as IPs since they are hardcoded */ // ------------------------------------------------------------------------- // XP/GP Cost Calculation // ------------------------------------------------------------------------- - int nCostMod = GetPRCSwitch(X2_CI_CRAFTWAND_COSTMODIFIER); + int nCostMod = GetPRCSwitch(PRC_X2_CRAFTWAND_COSTMODIFIER); if(nCostMod == 0) nCostMod = 750; int nCost = CIGetCraftGPCost(nLevel, nCostMod, PRC_CRAFT_WAND_CASTER_LEVEL); @@ -1027,7 +1193,7 @@ int CICraftCheckCraftStaff(object oSpellTarget, object oCaster, int nSpellID = 0 These dont work as IPs since they are hardcoded */ } } - int nCostMod = GetPRCSwitch(X2_CI_CRAFTSTAFF_COSTMODIFIER); + int nCostMod = GetPRCSwitch(PRC_X2_CRAFTSTAFF_COSTMODIFIER); if(!nCostMod) nCostMod = 750; int nLvlRow = IPGetIPConstCastSpellFromSpellID(nSpellID); int nCLevel = StringToInt(Get2DACache("iprp_spells","CasterLvl",nLvlRow)); @@ -1175,7 +1341,7 @@ int CICraftCheckCraftRod(object oSpellTarget, object oCaster, int nSpellID = 0) These dont work as IPs since they are hardcoded */ } } - int nCostMod = GetPRCSwitch(X2_CI_CRAFTROD_COSTMODIFIER); + int nCostMod = GetPRCSwitch(PRC_X2_CRAFTROD_COSTMODIFIER); if(!nCostMod) nCostMod = 750; int nLvlRow = IPGetIPConstCastSpellFromSpellID(nSpellID); int nCLevel = StringToInt(Get2DACache("iprp_spells","CasterLvl",nLvlRow)); @@ -1544,7 +1710,7 @@ int AttuneGem(object oTarget = OBJECT_INVALID, object oCaster = OBJECT_INVALID, // No point scribing Gems from items, and its not allowed. if (oItem != OBJECT_INVALID) { - FloatingTextStringOnCreature("You cannot scribe a Gem from an item.", oCaster, FALSE); + FloatingTextStringOnCreature("You cannot attune a Gem from an item.", oCaster, FALSE); return TRUE; } // oTarget here should be the gem. If it's not, fail. @@ -1951,7 +2117,13 @@ int CIGetSpellWasUsedForItemCreation(object oSpellTarget) // ------------------------------------------------- nRet = CICraftCheckCraftStaff(oSpellTarget,oCaster); break; - + + case BASE_ITEM_MUNDANE_HERB : + // ------------------------------------------------- + // Create Infusion + // ------------------------------------------------- + nRet = CICraftCheckCreateInfusion(oSpellTarget,oCaster); + break; // you could add more crafting basetypes here.... } @@ -2740,6 +2912,11 @@ int GetMagicalArtisanFeat(int nCraftingFeat) nReturn = FEAT_MAGICAL_ARTISAN_CRAFT_SKULL_TALISMAN; break; } + case FEAT_CREATE_INFUSION: + { + nReturn = FEAT_MAGICAL_ARTISAN_CREATE_INFUSION; + break; + } default: { if(DEBUG) DoDebug("GetMagicalArtisanFeat: invalid crafting feat"); @@ -2941,6 +3118,306 @@ int GetAlternativeCasterLevel(object oPC, int nLevel) return nLevel; } +// ----------------------------------------------------------------------------- +// Returns TRUE if the player successfully performed Create Infusion +// ----------------------------------------------------------------------------- +int CICraftCheckCreateInfusion(object oSpellTarget, object oCaster, int nID = 0) +{ + if (nID == 0) nID = PRCGetSpellId(); + + int bIsSubradial = GetIsSubradialSpell(nID); + + if(bIsSubradial) + { + nID = GetMasterSpellFromSubradial(nID); + } + + // ------------------------------------------------------------------------- + // Check if the caster has the Create Infusion feat + // ------------------------------------------------------------------------- + if (!GetHasFeat(FEAT_CREATE_INFUSION, oCaster)) + { + FloatingTextStrRefOnCreature(40487, oCaster); // Missing feat + return TRUE; + } + + // ------------------------------------------------------------------------- + // Divine spellcasters only + // ------------------------------------------------------------------------- + int nClass = PRCGetLastSpellCastClass(); + if (!GetIsDivineClass(nClass)) + { + FloatingTextStringOnCreature("Only divine casters can create infusions.", oCaster, FALSE); + return TRUE; + } + + // ------------------------------------------------------------------------- + // Check if spell is restricted for Create Infusion + // ------------------------------------------------------------------------- + if (CIGetIsSpellRestrictedFromCraftFeat(nID, X2_CI_CREATEINFUSION_FEAT_ID)) + { + FloatingTextStrRefOnCreature(83451, oCaster); // Spell not allowed + return TRUE; + } + + // ------------------------------------------------------------------------- + // Optional PnP Herb check + // ------------------------------------------------------------------------- + int bPnPHerbs = GetPRCSwitch(PRC_CREATE_INFUSION_OPTIONAL_HERBS); + if(bPnPHerbs) + { + int nSpellschool = GetSpellSchool(nID); + int nHerbSchool = GetHerbsSpellSchool(oSpellTarget); + + int nSpellLevel = PRCGetSpellLevelForClass(nID, nClass); + int nHerbLevel = GetHerbsInfusionSpellLevel(oSpellTarget); + + if(nSpellschool != nHerbSchool) + { + // Herb is for wrong spellschool + FloatingTextStringOnCreature("This herb isn't appropriate for this spell school", oCaster); + return TRUE; + } + + if(nSpellLevel > nHerbLevel) + { + // Herb spell circle level too low + FloatingTextStringOnCreature("This herb isn't appropriate for this spell level", oCaster); + return TRUE; + } + } + + // ------------------------------------------------------------------------- + // XP/GP Cost Calculation + // ------------------------------------------------------------------------- + int nLevel = CIGetSpellInnateLevel(nID, TRUE); + int nCostModifier = GetPRCSwitch(PRC_X2_CREATEINFUSION_COSTMODIFIER); + if (nCostModifier == 0) + nCostModifier = 25; + + int nCost = CIGetCraftGPCost(nLevel, nCostModifier, PRC_CREATE_INFUSION_CASTER_LEVEL); + struct craft_cost_struct costs = GetModifiedCostsFromBase(nCost, oCaster, FEAT_CREATE_INFUSION, FALSE); + + // Adjust level for metamagic + if (GetPRCSwitch(PRC_CREATE_INFUSION_CASTER_LEVEL)) + { + int nMetaMagic = PRCGetMetaMagicFeat(); + switch(nMetaMagic) + { + case METAMAGIC_EMPOWER: nLevel += 2; break; + case METAMAGIC_EXTEND: nLevel += 1; break; + case METAMAGIC_MAXIMIZE: nLevel += 3; break; + // Unsupported metamagic IPs not added + } + } + + // ------------------------------------------------------------------------- + // Check Gold + // ------------------------------------------------------------------------- + if (!GetHasGPToSpend(oCaster, costs.nGoldCost)) + { + FloatingTextStrRefOnCreature(3786, oCaster); // Not enough gold + return TRUE; + } + + // ------------------------------------------------------------------------- + // Check XP + // ------------------------------------------------------------------------- + if (!GetHasXPToSpend(oCaster, costs.nXPCost)) + { + FloatingTextStrRefOnCreature(3785, oCaster); // Not enough XP + return TRUE; + } + + // ------------------------------------------------------------------------- + // Check alternative spell emulation requirements + // ------------------------------------------------------------------------- + if (!CheckAlternativeCrafting(oCaster, nID, costs)) + { + FloatingTextStringOnCreature("*Crafting failed!*", oCaster, FALSE); + return TRUE; + } + + // ------------------------------------------------------------------------- + // Create the infused herb item + // ------------------------------------------------------------------------- + object oInfusion = CICreateInfusion(oCaster, nID); + + if (GetIsObjectValid(oInfusion)) + { + // Get the spell's display name from spells.2da via TLK + int nNameStrRef = StringToInt(Get2DAString("spells", "Name", nID)); + string sSpellName = GetStringByStrRef(nNameStrRef); + + // Rename the item + string sNewName = "Infusion of " + sSpellName; + SetName(oInfusion, sNewName); + + // Post-creation actions + SetIdentified(oInfusion, TRUE); + ActionPlayAnimation(ANIMATION_FIREFORGET_READ, 1.0); + SpendXP(oCaster, costs.nXPCost); + SpendGP(oCaster, costs.nGoldCost); + DestroyObject(oSpellTarget); + FloatingTextStrRefOnCreature(8502, oCaster); // Item creation successful + + if (!costs.nTimeCost) costs.nTimeCost = 1; + AdvanceTimeForPlayer(oCaster, RoundsToSeconds(costs.nTimeCost)); + return TRUE; + } + else + { + FloatingTextStringOnCreature("Infusion creation failed", oCaster); // Item creation failed + FloatingTextStrRefOnCreature(76417, oCaster); // Item creation failed + return TRUE; + } + +/* // ------------------------------------------------------------------------- + // Create the infused herb item + // ------------------------------------------------------------------------- + object oInfusion = CICreateInfusion(oCaster, nID); + + if (GetIsObjectValid(oInfusion)) + { + SetIdentified(oInfusion, TRUE); + ActionPlayAnimation(ANIMATION_FIREFORGET_READ, 1.0); + SpendXP(oCaster, costs.nXPCost); + SpendGP(oCaster, costs.nGoldCost); + DestroyObject(oSpellTarget); + FloatingTextStrRefOnCreature(8502, oCaster); // Item creation successful + + if (!costs.nTimeCost) costs.nTimeCost = 1; + AdvanceTimeForPlayer(oCaster, RoundsToSeconds(costs.nTimeCost)); + return TRUE; + } + else + { + FloatingTextStringOnCreature("Infusion creation failed", oCaster); // Item creation failed + FloatingTextStrRefOnCreature(76417, oCaster); // Item creation failed + return TRUE; + } */ + + return FALSE; +} + +// ----------------------------------------------------------------------------- +// Create and return an herbal infusion with an item property matching nSpellID +// ----------------------------------------------------------------------------- +object CICreateInfusion(object oCreator, int nSpellID) +{ + if (DEBUG) DoDebug("prc_x2_craft >> CICreateInfusion: Entering function"); + + // Keep the original spell id the engine gave us (may be a subradial) + int nSpellOriginal = nSpellID; + if (DEBUG) DoDebug("prc_x2_craft >> CICreateInfusion: nSpellOriginal is "+IntToString(nSpellOriginal)+"."); + + // Compute the master if this is a subradial. Keep original intact. + int nSpellMaster = nSpellOriginal; + if (GetIsSubradialSpell(nSpellOriginal)) + { + nSpellMaster = GetMasterSpellFromSubradial(nSpellOriginal); + if (DEBUG) DoDebug("CICreateInfusion: detected subradial " + IntToString(nSpellOriginal) + " master -> " + IntToString(nSpellMaster)); + } + if (DEBUG) DoDebug("prc_x2_craft >> CICreateInfusion: nSpellMaster is "+IntToString(nSpellMaster)+"."); + + // Try to find an iprp_spells row for the original subradial first (preferred). + int nPropID = IPGetIPConstCastSpellFromSpellID(nSpellOriginal); + int nSpellUsedForIP = nSpellOriginal; + + // If not found for original, fall back to the master/base spell. + if (nPropID < 0) + { + if (DEBUG) DoDebug("CICreateInfusion: no iprp row for original " + IntToString(nSpellOriginal) + ", trying master " + IntToString(nSpellMaster)); + nPropID = IPGetIPConstCastSpellFromSpellID(nSpellMaster); + nSpellUsedForIP = nSpellMaster; + } + + // If still invalid, bail out with a helpful message + if (nPropID < 0) + { + if (DEBUG) DoDebug("CICreateInfusion: No iprp_spells entry for either original " + IntToString(nSpellOriginal) + " or master " + IntToString(nSpellMaster)); + FloatingTextStringOnCreature("This spell cannot be infused (no item property mapping).", oCreator, FALSE); + return OBJECT_INVALID; + } + + if (DEBUG) DoDebug("CICreateInfusion: using spell " + IntToString(nSpellUsedForIP) + " (iprp row " + IntToString(nPropID) + ") for item property"); + + // Optional: check for material component (use the resolved iprp row) + string sMat = GetMaterialComponentTag(nPropID); + if (sMat != "") + { + object oMat = GetItemPossessedBy(oCreator, sMat); + if (oMat == OBJECT_INVALID) + { + FloatingTextStrRefOnCreature(83374, oCreator); // Missing material component + return OBJECT_INVALID; + } + else + { + DestroyObject(oMat); + } + } + + // Only allow divine spellcasters + int nClass = PRCGetLastSpellCastClass(); + if (!GetIsDivineClass(nClass)) + { + FloatingTextStringOnCreature("Only divine casters can use Create Infusion.", oCreator, FALSE); + return OBJECT_INVALID; + } + + // Create base infusion item (herb) + string sResRef = "prc_infusion_000"; + object oTarget = CreateItemOnObject(sResRef, oCreator); + if (oTarget == OBJECT_INVALID) + { + WriteTimestampedLogEntry("Create Infusion failed: couldn't create item with resref " + sResRef); + return OBJECT_INVALID; + } + + // Confirm that the item is a herb + int nBaseItem = GetBaseItemType(oTarget); + if (nBaseItem != BASE_ITEM_INFUSED_HERB) + { + FloatingTextStringOnCreature("Only herbs may be infused.", oCreator, FALSE); + DestroyObject(oTarget); + return OBJECT_INVALID; + } + + // Remove all non-material item properties from the herb + itemproperty ipRemove = GetFirstItemProperty(oTarget); + while (GetIsItemPropertyValid(ipRemove)) + { + itemproperty ipNext = GetNextItemProperty(oTarget); + if (GetItemPropertyType(ipRemove) != ITEM_PROPERTY_MATERIAL) + RemoveItemProperty(oTarget, ipRemove); + ipRemove = ipNext; + } + + // Add the cast-spell itemproperty using the iprp row we resolved + itemproperty ipSpell = ItemPropertyCastSpell(nPropID, IP_CONST_CASTSPELL_NUMUSES_SINGLE_USE); + AddItemProperty(DURATION_TYPE_PERMANENT, ipSpell, oTarget); + + // Optional PRC casting metadata: use the SAME spell id that matched the iprp row + // so caster level/DC/meta line up with the actual cast property on the item. + if (GetPRCSwitch(PRC_CREATE_INFUSION_CASTER_LEVEL)) + { + int nCasterLevel = GetAlternativeCasterLevel(oCreator, PRCGetCasterLevel(oCreator)); + // nSpellUsedForIP is either original (if that had an iprp row) or the master (fallback) + itemproperty ipLevel = ItemPropertyCastSpellCasterLevel(nSpellUsedForIP, nCasterLevel); + AddItemProperty(DURATION_TYPE_PERMANENT, ipLevel, oTarget); + + itemproperty ipMeta = ItemPropertyCastSpellMetamagic(nSpellUsedForIP, PRCGetMetaMagicFeat()); + AddItemProperty(DURATION_TYPE_PERMANENT, ipMeta, oTarget); + + int nDC = PRCGetSpellSaveDC(nSpellUsedForIP, GetSpellSchool(nSpellUsedForIP), OBJECT_SELF); + itemproperty ipDC = ItemPropertyCastSpellDC(nSpellUsedForIP, nDC); + AddItemProperty(DURATION_TYPE_PERMANENT, ipDC, oTarget); + } + + return oTarget; +} + // Test main -//void main(){} +// void main(){} diff --git a/src/include/prc_x2_itemprop.nss b/src/include/prc_x2_itemprop.nss index 1ccb454..17885cd 100644 --- a/src/include/prc_x2_itemprop.nss +++ b/src/include/prc_x2_itemprop.nss @@ -768,7 +768,6 @@ int IPGetIsBludgeoningWeapon(object oItem) // ---------------------------------------------------------------------------- // Return the IP_CONST_CASTSPELL_* ID matching to the SPELL_* constant given // in nSPELL_ID. -// This uses Get2DAstring, so it is slow. Avoid using in loops! // returns -1 if there is no matching property for a spell // ---------------------------------------------------------------------------- int IPGetIPConstCastSpellFromSpellID(int nSpellID) diff --git a/src/include/shd_inc_shdfunc.nss b/src/include/shd_inc_shdfunc.nss index 63eb943..6ae4f63 100644 --- a/src/include/shd_inc_shdfunc.nss +++ b/src/include/shd_inc_shdfunc.nss @@ -236,12 +236,12 @@ int GetShadowcasterLevel(object oShadow = OBJECT_SELF, int nSpecificClass = CLAS // For when you want to assign the caster level. if(nLevel) { - if(DEBUG) SendMessageToPC(oShadow, "GetShadowcasterLevel(): Forced-level shadowcasting at level " + IntToString(nLevel)); + if(DEBUG) DoDebug("GetShadowcasterLevel(): Forced-level shadowcasting at level " + IntToString(nLevel)); //DelayCommand(1.0, DeleteLocalInt(oShadow, PRC_CASTERLEVEL_OVERRIDE)); return nLevel + nAdjust; } - if (DEBUG) FloatingTextStringOnCreature("GetShadowcasterLevel: "+GetName(oShadow)+" is a "+IntToString(nSpecificClass), oShadow); + if (DEBUG) DoDebug("GetShadowcasterLevel: "+GetName(oShadow)+" is a "+IntToString(nSpecificClass), oShadow); // The function user needs to know the character's Shadowcaster level in a specific class // instead of whatever the character last shadowcast a mystery as if(nSpecificClass != CLASS_TYPE_INVALID) @@ -288,7 +288,7 @@ int GetShadowcasterLevel(object oShadow = OBJECT_SELF, int nSpecificClass = CLAS nLevel -= 4; } - if(DEBUG) FloatingTextStringOnCreature("Shadowcaster Level: " + IntToString(nLevel), oShadow, FALSE); + if(DEBUG) DoDebug("Shadowcaster Level: " + IntToString(nLevel)); return nLevel + nAdjust; } diff --git a/src/include/x2_inc_spellhook.nss b/src/include/x2_inc_spellhook.nss index c631c0e..92668bf 100644 --- a/src/include/x2_inc_spellhook.nss +++ b/src/include/x2_inc_spellhook.nss @@ -144,8 +144,103 @@ int PRCGetUserSpecificSpellScriptFinished(); #include "pnp_shft_main" #include "inc_dynconv" #include "inc_npc" +#include "inc_infusion" +#include "prc_add_spell_dc" + + +int Spontaneity(object oCaster, int nCastingClass, int nSpellID, int nSpellLevel) +{ + if(GetLocalInt(oCaster, "PRC_SpontRegen")) + { + DeleteLocalInt(oCaster, "PRC_SpontRegen"); + + int nMetamagic = GetMetaMagicFeat();//we need bioware metamagic here + nSpellLevel = PRCGetSpellLevelForClass(nSpellID, nCastingClass); + nSpellLevel += GetMetaMagicSpellLevelAdjustment(nMetamagic); + + int nRegenSpell; + + if(nCastingClass == CLASS_TYPE_DRUID) + { + switch(nSpellLevel) + { + case 0: return TRUE; + case 1: nRegenSpell = SPELL_REGEN_LIGHT_WOUNDS; break; + case 2: nRegenSpell = SPELL_REGEN_MODERATE_WOUNDS; break; + case 3: nRegenSpell = SPELL_REGEN_RING; break; + case 4: nRegenSpell = SPELL_REGEN_SERIOUS_WOUNDS; break; + case 5: nRegenSpell = SPELL_REGEN_CRITICAL_WOUNDS; break; + case 6: nRegenSpell = SPELL_REGEN_CIRCLE; break; + case 7: nRegenSpell = SPELL_REGEN_CIRCLE; break; + case 8: nRegenSpell = SPELL_REGEN_CIRCLE; break; + case 9: nRegenSpell = SPELL_REGENERATE; break; + } + ActionCastSpell(nRegenSpell, 0, 0, 0, METAMAGIC_NONE, CLASS_TYPE_DRUID); + } + else + { + switch(nSpellLevel) + { + case 0: return TRUE; + case 1: nRegenSpell = SPELL_REGEN_LIGHT_WOUNDS; break; + case 2: nRegenSpell = SPELL_REGEN_LIGHT_WOUNDS; break; + case 3: nRegenSpell = SPELL_REGEN_MODERATE_WOUNDS; break; + case 4: nRegenSpell = SPELL_REGEN_MODERATE_WOUNDS; break; + case 5: nRegenSpell = SPELL_REGEN_SERIOUS_WOUNDS; break; + case 6: nRegenSpell = SPELL_REGEN_CRITICAL_WOUNDS; break; + case 7: nRegenSpell = SPELL_REGENERATE; break; + case 8: nRegenSpell = SPELL_REGENERATE; break; + case 9: nRegenSpell = SPELL_REGENERATE; break; + } + + ActionCastSpell(nRegenSpell, 0, 0, 0, METAMAGIC_NONE, nCastingClass); + } + //Don't cast original spell + return FALSE; + } + return TRUE; +} int DruidSpontSummon(object oCaster, int nCastingClass, int nSpellID, int nSpellLevel) +{ + if(nCastingClass != CLASS_TYPE_DRUID) + return TRUE; + + if(GetLocalInt(oCaster, "PRC_SpontSummon")) + { + DeleteLocalInt(oCaster, "PRC_SpontSummon"); + int nMetamagic = GetMetaMagicFeat();//we need bioware metamagic here + int nSpellLevel = PRCGetSpellLevelForClass(nSpellID, CLASS_TYPE_DRUID); + nSpellLevel += GetMetaMagicSpellLevelAdjustment(nMetamagic); + int nSummonSpell; + switch(nSpellLevel) + { + case 0: return TRUE; + case 1: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_1; break; + case 2: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_2; break; + case 3: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_3; break; + case 4: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_4; break; + case 5: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_5; break; + case 6: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_6; break; + case 7: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_7; break; + case 8: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_8; break; + case 9: nSummonSpell = SPELL_SUMMON_NATURES_ALLY_9; break; + } + + //:: All SNA spells are subradial spells + SetLocalInt(oCaster, "DomainOrigSpell", nSummonSpell); + SetLocalInt(oCaster, "DomainCastLevel", nSpellLevel); + SetLocalInt(oCaster, "DomainCastClass", CLASS_TYPE_DRUID); + StartDynamicConversation("prc_domain_conv", oCaster, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oCaster); + + //Don't cast original spell + return FALSE; + } + + return TRUE; +} + +/* int DruidSpontSummon(object oCaster, int nCastingClass, int nSpellID, int nSpellLevel) { if(nCastingClass != CLASS_TYPE_DRUID) return TRUE; @@ -191,6 +286,8 @@ int DruidSpontSummon(object oCaster, int nCastingClass, int nSpellID, int nSpell return TRUE; } + */ + int ArcaneSpellFailure(object oCaster, int nCastingClass, int nSpellLevel, int nMetamagic, string sComponents) { if(!GetIsArcaneClass(nCastingClass)) @@ -904,7 +1001,8 @@ int ShifterCasting(object oCaster, object oSpellCastItem, int nSpellLevel, int n { // Potion drinking is not restricted if(GetBaseItemType(oSpellCastItem) == BASE_ITEM_ENCHANTED_POTION - || GetBaseItemType(oSpellCastItem) == BASE_ITEM_POTIONS) + || GetBaseItemType(oSpellCastItem) == BASE_ITEM_POTIONS + || GetBaseItemType(oSpellCastItem) == BASE_ITEM_INFUSED_HERB) return TRUE; //OnHit properties on equipped items not restricted @@ -3249,6 +3347,28 @@ int X2PreSpellCastCode2() X2BreakConcentrationSpells(); //--------------------------------------------------------------------------- + // Herbal Infusion Use check + //--------------------------------------------------------------------------- + if(nContinue && (GetBaseItemType(oSpellCastItem) == BASE_ITEM_INFUSED_HERB)) + { + int bIsSubradial = GetIsSubradialSpell(nSpellID); + + if(bIsSubradial) + { + nSpellID = GetMasterSpellFromSubradial(nSpellID); + } + int nItemCL = GetCastSpellCasterLevelFromItem(oSpellCastItem, nSpellID); + if(DEBUG) DoDebug("x2_inc_spellhook >> X2PreSpellCastCode2: Item Spellcaster Level: "+IntToString(nItemCL)+"."); + + if(DEBUG) DoDebug("x2_inc_spellhook >> X2PreSpellCastCode2: Herbal Infusion Found"); + if(!DoInfusionUseChecks(oCaster, oSpellCastItem, nSpellID)) + { + ApplyInfusionPoison(oCaster, nItemCL); + nContinue = FALSE; + } + } + + //--------------------------------------------------------------------------- // No casting while using expertise //--------------------------------------------------------------------------- if(nContinue) @@ -3399,6 +3519,12 @@ int X2PreSpellCastCode2() if (nContinue) nContinue = SpellAlignmentRestrictions(oCaster, nSpellID, nCastingClass); + //--------------------------------------------------------------------------- + // Verdant Lord Spontaneous Regernate + //--------------------------------------------------------------------------- + if(nContinue) + Spontaneity(oCaster, nCastingClass, nSpellID, nSpellLevel); + //--------------------------------------------------------------------------- // Druid spontaneous summoning //--------------------------------------------------------------------------- diff --git a/src/module/itp/itempalcus.itp.json b/src/module/itp/itempalcus.itp.json index fe443a3..804eebf 100644 --- a/src/module/itp/itempalcus.itp.json +++ b/src/module/itp/itempalcus.itp.json @@ -50,6 +50,17 @@ "value": "ar_robe" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Erinyes Clothes" + }, + "RESREF": { + "type": "resref", + "value": "erinyesclothes" + } + }, { "__struct_id": 0, "NAME": { @@ -60,6 +71,28 @@ "type": "resref", "value": "libarian_robe" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "nightwing" + }, + "RESREF": { + "type": "resref", + "value": "nightwing" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "ow_light_1" + }, + "RESREF": { + "type": "resref", + "value": "ow_light_1" + } } ] }, @@ -77,6 +110,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Baal Summon 2 Plate" + }, + "RESREF": { + "type": "resref", + "value": "baalsummon2plate" + } + }, { "__struct_id": 0, "NAME": { @@ -137,6 +181,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Baal Summon 2 Head" + }, + "RESREF": { + "type": "resref", + "value": "baalsummon2head" + } + }, { "__struct_id": 0, "NAME": { @@ -148,6 +203,28 @@ "value": "it_arhelm004" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crown of Might" + }, + "RESREF": { + "type": "resref", + "value": "prc_crown_might" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crown of Protection" + }, + "RESREF": { + "type": "resref", + "value": "prc_crown_prot" + } + }, { "__struct_id": 0, "NAME": { @@ -158,6 +235,28 @@ "type": "resref", "value": "ar_helmet" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "nightwing" + }, + "RESREF": { + "type": "resref", + "value": "nightwing001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wyrmbane Helm" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_wyrmbane" + } } ] }, @@ -175,6 +274,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "BaalSummonPlate" + }, + "RESREF": { + "type": "resref", + "value": "baalsummonplate" + } + }, { "__struct_id": 0, "NAME": { @@ -218,6 +328,28 @@ "type": "resref", "value": "ar_stleather" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Infiltrator" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_infil" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pixie Armor" + }, + "RESREF": { + "type": "resref", + "value": "prc_amltlt_pixie" + } } ] }, @@ -278,6 +410,17 @@ "type": "resref", "value": "ar_scalemail" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wargird's Armor" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_wargirds" + } } ] }, @@ -292,6 +435,33 @@ "type": "byte", "value": 58 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Deva Robe" + }, + "RESREF": { + "type": "resref", + "value": "devarobe" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unarmed Spiritual Weapon \"Fists\"" + }, + "RESREF": { + "type": "resref", + "value": "prc_sprtwp_armor" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6813 @@ -321,6 +491,17 @@ "type": "resref", "value": "ar_l_shield" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Quickspur's Ally" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_quickspr" + } } ] }, @@ -408,6 +589,2035 @@ "type": "byte", "value": 55 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (diminuative)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aranea Bite (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ara_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw0_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 10th level (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw2_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 15th level (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw3_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 20th level (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw4_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bite of the Wolf 5th level (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_bw1_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bombardier/Stink Beetle Bite" + }, + "RESREF": { + "type": "resref", + "value": "stinkb_c_bite_01" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bombardier/Stink Beetle Bite" + }, + "RESREF": { + "type": "resref", + "value": "stinkb_c_bite_05" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bombardier/Stink Beetle Bite" + }, + "RESREF": { + "type": "resref", + "value": "stinkb_c_bite_10" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bombardier/Stink Beetle Bite" + }, + "RESREF": { + "type": "resref", + "value": "stinkb_c_bite_15" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bombardier/Stink Beetle Bite" + }, + "RESREF": { + "type": "resref", + "value": "stinkb_c_bite_20" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bombardier/Stink Beetle Bite" + }, + "RESREF": { + "type": "resref", + "value": "stinkb_c_bite_25" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bombardier/Stink Beetle Bite" + }, + "RESREF": { + "type": "resref", + "value": "stinkb_c_bite_30" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bombardier/Stink Beetle Bite" + }, + "RESREF": { + "type": "resref", + "value": "stinkb_c_bite_35" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cobra's bite, level 20" + }, + "RESREF": { + "type": "resref", + "value": "cobra_c_bite_20" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cobra's bite, level 25" + }, + "RESREF": { + "type": "resref", + "value": "cobra_c_bite_25" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cobra's bite, level 30" + }, + "RESREF": { + "type": "resref", + "value": "cobra_c_bite_30" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cobra's bite, level 35" + }, + "RESREF": { + "type": "resref", + "value": "cobra_c_bite_35" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cobra's bite, level 40" + }, + "RESREF": { + "type": "resref", + "value": "cobra_c_bite_40" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dire Rat Bite" + }, + "RESREF": { + "type": "resref", + "value": "cr_bite_direrat" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Bite (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Drider Bite (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_drid_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Drider Bite (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_drid_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Drider Bite (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_drid_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Drider Bite (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_drid_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Drider Bite (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_drid_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Drider Bite (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_drid_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dustblight Claw" + }, + "RESREF": { + "type": "resref", + "value": "bdd_dustbl_claw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Giant Spider Companion Bite Level 15" + }, + "RESREF": { + "type": "resref", + "value": "phase_c_15" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Giant Spider Companion Bite Level 20" + }, + "RESREF": { + "type": "resref", + "value": "phase_c_20" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Giant Spider Companion Bite Level 25" + }, + "RESREF": { + "type": "resref", + "value": "phase_c_25" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Giant Spider Companion Bite Level 30" + }, + "RESREF": { + "type": "resref", + "value": "phase_c_30" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Giant Spider Companion Bite Level 35" + }, + "RESREF": { + "type": "resref", + "value": "phase_c_35" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Giant Spider Companion Bite Level 40" + }, + "RESREF": { + "type": "resref", + "value": "phase_c_40" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Bite lv 21" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraithbit" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Bite lv 24" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Bite lv 27" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith002" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Bite lv 30" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith003" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Bite lv 33" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith004" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Bite lv 36" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith005" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Bite lv 39" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith006" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_01" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_05" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_10" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_15" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_20" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_25" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_30" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_35" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hell Hound Familiar Bite" + }, + "RESREF": { + "type": "resref", + "value": "wwolf_f_bite_40" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "hellcat_bite" + }, + "RESREF": { + "type": "resref", + "value": "hellcat_bite" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Bite(Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Imp. Grab Bite 1d6" + }, + "RESREF": { + "type": "resref", + "value": "prc_ig_bite1d6" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Imp. Grab Bite 1d8" + }, + "RESREF": { + "type": "resref", + "value": "prc_ig_bite1d8" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lizardman Bite (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lizf_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Longtooth Shifter Elite Bite(Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lngth_elt_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Longtooth Shifter Elite Bite(Fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lngth_elt_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Longtooth Shifter Elite Bite(Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lngth_elt_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Longtooth Shifter Elite Bite(Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lngth_elt_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Longtooth Shifter Elite Bite(Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lngth_elt_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Longtooth Shifter Elite Bite(Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lngth_el_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Longtooth Shifter Elite Bite(Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lngth_elt_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Longtooth Shifter Elite Bite(Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_lngth_elt_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Medium Viper Bite" + }, + "RESREF": { + "type": "resref", + "value": "cr_bite_viper001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Medium Viper Bite (Improved)" + }, + "RESREF": { + "type": "resref", + "value": "cr_bite_viper002" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Morsure de quasit niveau 15" + }, + "RESREF": { + "type": "resref", + "value": "quasit_m_15" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Morsure de quasit niveau 20" + }, + "RESREF": { + "type": "resref", + "value": "quasit_m_20" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Morsure de quasit niveau 25" + }, + "RESREF": { + "type": "resref", + "value": "quasit_m_25" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Morsure de quasit niveau 30" + }, + "RESREF": { + "type": "resref", + "value": "quasit_m_30" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Morsure de quasit niveau 35" + }, + "RESREF": { + "type": "resref", + "value": "quasit_m_35" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Morsure de quasit niveau 40" + }, + "RESREF": { + "type": "resref", + "value": "quasit_m_40" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "nightwing" + }, + "RESREF": { + "type": "resref", + "value": "prc_nightwing" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rakshasa Bite (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_raks_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tanarukk Bite (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_tana_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Troll Bite (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_troll_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Useless Bite" + }, + "RESREF": { + "type": "resref", + "value": "prc_nodmgbite" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viletooth Lizardfolk Bite (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_vtth_bite_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viletooth Lizardfolk Bite (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_vtth_bite_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viletooth Lizardfolk Bite (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_vtth_bite_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viletooth Lizardfolk Bite (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_vtth_bite_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viletooth Lizardfolk Bite (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_vtth_bite_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viletooth Lizardfolk Bite (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_vtth_bite_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viletooth Lizardfolk Bite (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_vtth_bite_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viper Bite, Huge" + }, + "RESREF": { + "type": "resref", + "value": "prc_viperbite004" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viper Bite, Large" + }, + "RESREF": { + "type": "resref", + "value": "prc_viperbite003" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Viper Bite, Tiny" + }, + "RESREF": { + "type": "resref", + "value": "prc_viperbite001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Bite" + }, + "RESREF": { + "type": "resref", + "value": "werewolfbite" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Lycanthrope Bite" + }, + "RESREF": { + "type": "resref", + "value": "werewolfbitel" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6810 @@ -422,6 +2632,1458 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 10d6 (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d2 (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d2 (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d2 (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d2 (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d2 (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d2 (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d3 (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d3 (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d3 (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d3 (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d4 (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d4 (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d4 (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d4 (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d4 (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d6 (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d6 (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d6 (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d6 (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d6 (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d6 (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d8 (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d8 (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d8 (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d8 (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d8 (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d8 (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 1d8 (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 2d6 (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 2d6 (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 2d6 (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 2d6 (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 2d6 (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 2d6 (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 2d6 (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 2d6 (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 3d6 (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6l_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 3d6 (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 3d6 (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 3d6 (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 3d6 (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 3d6 (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 3d6 (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 3d6 (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 4d6 (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d6m_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 4d6 (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 4d6 (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 4d6 (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 4d6 (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 4d6 (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 4d6 (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 5d6 (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_1d8m_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 5d6 (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 5d6 (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 5d6 (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 5d6 (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 5d6 (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 6d6 (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_2d6m_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 6d6 (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 6d6 (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 6d6 (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 6d6 (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 7d6 (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_3d6m_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 7d6 (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 7d6 (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 7d6 (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 8d6 (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_4d6m_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 8d6 (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 8d6 (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 9d6 (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_5d6m_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claw 9d6 (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_claw_6d6m_g" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "tob_dw_embrclaw" + }, + "STRREF": { + "type": "dword", + "value": 13284 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cornugon Claw" + }, + "RESREF": { + "type": "resref", + "value": "prc_corn_claw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_0_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_1_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_2_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_3_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_4_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_5_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_0_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_1_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_2_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_3_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_4_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_5_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_0_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_1_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_2_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_3_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_4_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_5_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_0_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_1_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_2_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_3_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_4_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_5_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_0_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_1_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_2_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_3_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_4_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_5_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_0_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_1_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_2_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_3_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_4_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_5_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_0_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_1_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_2_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_3_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_4_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Claw (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diaclaw_5_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Draconic Devotee Claw (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_devclaw_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Draconic Devotee Claw (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_devclaw_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Draconic Devotee Claw (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_devclaw_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Draconic Devotee Claw (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_devclaw_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Draconic Devotee Claw (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_devclaw_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Draconic Devotee Claw (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_devclaw_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Draconic Devotee Claw (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_devclaw_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gelugon Claw" + }, + "RESREF": { + "type": "resref", + "value": "prc_gel_claw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Griffes de quasit niveau 15" + }, + "RESREF": { + "type": "resref", + "value": "quasit_15" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Griffes de quasit niveau 20" + }, + "RESREF": { + "type": "resref", + "value": "quasit_20" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Griffes de quasit niveau 25" + }, + "RESREF": { + "type": "resref", + "value": "quasit_25" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Griffes de quasit niveau 30" + }, + "RESREF": { + "type": "resref", + "value": "quasit_30" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Griffes de quasit niveau 35" + }, + "RESREF": { + "type": "resref", + "value": "quasit_35" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Griffes de quasit niveau 40" + }, + "RESREF": { + "type": "resref", + "value": "quasit_40" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hamatula Claw" + }, + "RESREF": { + "type": "resref", + "value": "prc_ham_claw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Imp. Grab Claw 1d8" + }, + "RESREF": { + "type": "resref", + "value": "prc_ig_claw1d8" + } + }, { "__struct_id": 0, "NAME": { @@ -432,6 +4094,105 @@ "type": "resref", "value": "lichtouch" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Osyluth Claw" + }, + "RESREF": { + "type": "resref", + "value": "prc_osy_claw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "pnp_shft_cweap" + }, + "RESREF": { + "type": "resref", + "value": "pnp_shft_cweap" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC construct Demoflesh claw" + }, + "RESREF": { + "type": "resref", + "value": "prc_cns_dem_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shadow Elemental Elder" + }, + "RESREF": { + "type": "resref", + "value": "shadowelement001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shadow Elemental Huge" + }, + "RESREF": { + "type": "resref", + "value": "shadowelementalh" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shadow Elemental Medium" + }, + "RESREF": { + "type": "resref", + "value": "shd_shdelem_med" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Twig Blight Claw" + }, + "RESREF": { + "type": "resref", + "value": "wol_twigblightcl" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Claw" + }, + "RESREF": { + "type": "resref", + "value": "werewolfclaw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Lycanthrope Claw" + }, + "RESREF": { + "type": "resref", + "value": "werewolfclawl" + } } ] }, @@ -446,6 +4207,253 @@ "type": "byte", "value": 63 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Diminuitive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gorebrute Horns(Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_shftr_gore_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Nightshade Bite" + }, + "RESREF": { + "type": "resref", + "value": "grtrnsbite" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lesser Nightshade Bite" + }, + "RESREF": { + "type": "resref", + "value": "lessernightshade" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Gore (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_gore_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minotaur Powerful Charge" + }, + "RESREF": { + "type": "resref", + "value": "prc_mino_char" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nightshade Bite" + }, + "RESREF": { + "type": "resref", + "value": "lessernightsh002" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6831 @@ -487,6 +4495,270 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "" + }, + "RESREF": { + "type": "resref", + "value": "pc_skin" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Algoid Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_hide_algoid" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "anim_armour_0" + }, + "RESREF": { + "type": "resref", + "value": "anim_armour_0" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "anim_armour_1_4" + }, + "RESREF": { + "type": "resref", + "value": "anim_armour_1_4" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "anim_armour_5_8" + }, + "RESREF": { + "type": "resref", + "value": "anim_armour_5_8" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "anim_weapon_large" + }, + "RESREF": { + "type": "resref", + "value": "anim_weapon_larg" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "anim_weapon_small" + }, + "RESREF": { + "type": "resref", + "value": "anim_weapon_smal" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "AnimObject Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_shd_animcon" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ashen Husk Hide" + }, + "RESREF": { + "type": "resref", + "value": "bdd_ashen_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Asherati Taint Changed" + }, + "RESREF": { + "type": "resref", + "value": "bdd_asherati_skn" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "base_prc_skin" + }, + "RESREF": { + "type": "resref", + "value": "base_prc_skin" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "bat_c_hide_01" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "polarb_c_hide01" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "polarb_c_hide05" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "polarb_c_hide10" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "polarb_c_hide15" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "polarb_c_hide20" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "polarb_c_hide25" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "polarb_c_hide30" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 1 Properties" + }, + "RESREF": { + "type": "resref", + "value": "polarb_c_hide35" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "bat_c_hide_20" + }, + "STRREF": { + "type": "dword", + "value": 13121 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 25 Properties" + }, + "RESREF": { + "type": "resref", + "value": "bat_c_hide_25" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat FM HD 30 Properties" + }, + "RESREF": { + "type": "resref", + "value": "bat_c_hide_30" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "bat_c_hide_05" + }, + "STRREF": { + "type": "dword", + "value": 13118 + } + }, { "__struct_id": 0, "NAME": { @@ -531,6 +4803,171 @@ "value": "bluewyrmprop" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cornugon Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_corn_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Deva Hide" + }, + "RESREF": { + "type": "resref", + "value": "devahide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Earth Elemental Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_agares_elem" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "tob_dw_embrhide" + }, + "STRREF": { + "type": "dword", + "value": 13193 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gelugon Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_gel_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Glabrezu Properties" + }, + "RESREF": { + "type": "resref", + "value": "glabrezuproperti" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Glabrezu Skin" + }, + "RESREF": { + "type": "resref", + "value": "prc_glab_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Nightshade Hide" + }, + "RESREF": { + "type": "resref", + "value": "grtrnightshadhid" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Hide lv 21" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraithhid" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Hide lv 24" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith007" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Hide lv 27" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith008" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Hide lv 30" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith009" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Hide lv 33" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith010" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Hide lv 36" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith011" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Wraith Hide lv 39" + }, + "RESREF": { + "type": "resref", + "value": "greaterwraith012" + } + }, { "__struct_id": 0, "NAME": { @@ -553,6 +4990,50 @@ "value": "greenwyrmprop" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hamatula Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_ham_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "hellcat_hide" + }, + "RESREF": { + "type": "resref", + "value": "hellcat_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Janni Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_janni_hide01" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lesser Nightshade Hide" + }, + "RESREF": { + "type": "resref", + "value": "lessernightsh001" + } + }, { "__struct_id": 0, "NAME": { @@ -564,6 +5045,391 @@ "value": "mylichprops" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Marilith Properties" + }, + "RESREF": { + "type": "resref", + "value": "marilithproperti" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "wo_mummy_prop" + }, + "STRREF": { + "type": "dword", + "value": 12938 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Myconid Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_hide_myconid" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nightshade Hide" + }, + "RESREF": { + "type": "resref", + "value": "nightshadehide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nightwing Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_to_nighthide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nymph Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_nymph_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Osyluth Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_osy_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "ParticularitĂ©s des mĂ©phites Ă  10 DV" + }, + "RESREF": { + "type": "resref", + "value": "meph_10dv" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "ParticularitĂ©s des mĂ©phites Ă  15 DV" + }, + "RESREF": { + "type": "resref", + "value": "meph_15dv" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "ParticularitĂ©s des mĂ©phites Ă  20 DV" + }, + "RESREF": { + "type": "resref", + "value": "meph_20dv" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "ParticularitĂ©s des mĂ©phites Ă  25 DV" + }, + "RESREF": { + "type": "resref", + "value": "meph_25dv" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "ParticularitĂ©s des mĂ©phites Ă  30 DV" + }, + "RESREF": { + "type": "resref", + "value": "meph_30dv" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "ParticularitĂ©s des mĂ©phites Ă  5 DV" + }, + "RESREF": { + "type": "resref", + "value": "meph_5dv" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "ParticularitĂ©s des mĂ©phitesĂ  1 DV" + }, + "RESREF": { + "type": "resref", + "value": "meph_1dv" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pixie Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_pixie_hide01" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Construct Adamantium" + }, + "RESREF": { + "type": "resref", + "value": "prc_cns_ada_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Construct Clay" + }, + "RESREF": { + "type": "resref", + "value": "prc_cns_cly_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Construct Demonflesh hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_cns_dem_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Construct Flesh" + }, + "RESREF": { + "type": "resref", + "value": "prc_cns_fle_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Construct Iron" + }, + "RESREF": { + "type": "resref", + "value": "prc_cns_irn_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Construct Mithril" + }, + "RESREF": { + "type": "resref", + "value": "prc_cns_mit_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Construct Stone" + }, + "RESREF": { + "type": "resref", + "value": "prc_cns_stn_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Dire Badger Hide" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturaldir" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Dire Bear Hide" + }, + "RESREF": { + "type": "resref", + "value": "pseudonatural002" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Dire Spider Hide" + }, + "RESREF": { + "type": "resref", + "value": "pseudodirespider" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Dire Tiger Hide" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturaltig" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Dire Wolf Hide" + }, + "RESREF": { + "type": "resref", + "value": "pseudonatural001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Elder Elemental Hide" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturalel" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Elder Fire Elemental Properties" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturalfi" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Elder Water Elemental Properties" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturalwa" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Huge/Greater Elemental Properties" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturalhu" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Huge/Greater Fire Elemental Properties" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturalfir" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseudonatural Huge/Greater Water Elemental Properties" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturalwat" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pseuodnatural Dire Boar Hide" + }, + "RESREF": { + "type": "resref", + "value": "pseuodnaturaldir" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Psuedonatural Huge/Greater Elemental Properties" + }, + "RESREF": { + "type": "resref", + "value": "pseudonaturalhug" + } + }, { "__struct_id": 0, "NAME": { @@ -586,6 +5452,149 @@ "value": "redwyrmprop" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Satyr Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_satyr_hide01" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shambling Mound Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_hide_shambmd" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_skelhide" + }, + "STRREF": { + "type": "dword", + "value": 13204 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Skeleton Properties" + }, + "RESREF": { + "type": "resref", + "value": "wo_skel_prop" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Soulspark" + }, + "RESREF": { + "type": "resref", + "value": "moi_slspk_prop" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spider Servant Properties" + }, + "RESREF": { + "type": "resref", + "value": "servantprops" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spider Servant Properties 12HD" + }, + "RESREF": { + "type": "resref", + "value": "servantprops2" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spider Servant Properties 14HD" + }, + "RESREF": { + "type": "resref", + "value": "servantprops3" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spider Servant Properties 16HD" + }, + "RESREF": { + "type": "resref", + "value": "servantprops4" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spiritual Weapon Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_sprtwpn_hide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "TNecro Doom Knight Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_tn_dk" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Treant Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_sum_treant" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Twig Blight Hide" + }, + "RESREF": { + "type": "resref", + "value": "wol_twigblightci" + } + }, { "__struct_id": 0, "RESREF": { @@ -597,6 +5606,50 @@ "value": 13205 } }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "it_creitem003" + }, + "STRREF": { + "type": "dword", + "value": 13205 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Very Young Prismatic Dragon Properties" + }, + "RESREF": { + "type": "resref", + "value": "vy_it_creitem011" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Armor Feats" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_feats" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wereboar Properties" + }, + "RESREF": { + "type": "resref", + "value": "prc_wboar_hide01" + } + }, { "__struct_id": 0, "NAME": { @@ -608,6 +5661,105 @@ "value": "werewolf_prop" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 0" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin0" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 0 L10" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin0l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 0 S5" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin0s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 1" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin1" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 1 L10" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin1l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 1 S5" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin1s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 2" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin2" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 2 L10" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin2l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Werewolf Skin 2 S5" + }, + "RESREF": { + "type": "resref", + "value": "werewolfskin2s" + } + }, { "__struct_id": 0, "NAME": { @@ -629,6 +5781,17 @@ "type": "resref", "value": "whitewyrmprop" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Zombie Properties" + }, + "RESREF": { + "type": "resref", + "value": "wo_zombie_prop" + } } ] }, @@ -643,6 +5806,1100 @@ "type": "byte", "value": 56 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Algoid Slam" + }, + "RESREF": { + "type": "resref", + "value": "prc_slam_algoid" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ashen Husk Slam" + }, + "RESREF": { + "type": "resref", + "value": "bdd_ashen_slam" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Centaur Hoof (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_cent_hoof_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_0_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_1_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_2_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_3_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_4_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_5_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_0_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_1_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_2_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_3_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_4_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_5_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_0_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_1_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_2_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_3_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_4_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_5_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_0_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_1_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_2_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_3_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_4_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_5_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_0_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_1_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_2_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_3_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_4_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_5_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_0_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_1_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_2_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_3_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_4_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_5_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_0_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_1_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_2_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_3_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_4_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dragon Tail Slap (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_diatail_5_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Tail Slap (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_tail_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Tail Slap (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_tail_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Tail Slap (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_tail_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Tail Slap (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_tail_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Wing Slam (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_wing_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Wing Slam (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_wing_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Wing Slam (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_wing_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Wing Slam (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_wing_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Disciple Wing Slam (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_rdd_wing_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Tail Slap (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_kobdratail_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Tail Slap (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_kobdratail_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Tail Slap (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_kobdratail_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Tail Slap (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_kobdratail_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Tail Slap (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_kobdratail_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Tail Slap (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_kobdratail_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Tail Slap (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_kobdratail_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Floating Disk Hit (1d2-5)" + }, + "RESREF": { + "type": "resref", + "value": "fdisk_hit" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Form of Doom Tentacle (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_fod_tent_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Slam (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_slam_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Slam (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_slam_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Slam (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_slam_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Slam (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_slam_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Slam (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_slam_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Slam (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_slam_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound Archon Slam (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_hdarc_slam_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (diminutive)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_d" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (fine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_f" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Illthid Tentacle (tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_ill_tent_t" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pony Hoof 01" + }, + "RESREF": { + "type": "resref", + "value": "prc_pony_hoof01" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Slam1d4" + }, + "RESREF": { + "type": "resref", + "value": "slam1d4" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spirtual Weapon Slam" + }, + "RESREF": { + "type": "resref", + "value": "prc_sprtwpn_slam" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "it_crewpb005" + }, + "STRREF": { + "type": "dword", + "value": 13216 + } + } + ] + }, "STRREF": { "type": "dword", "value": 6811 @@ -669,6 +6926,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": " 0@P`p€â€ÂˇÂ°Ă€ĂàðÿGenji's Coloring Book" + }, + "RESREF": { + "type": "resref", + "value": "gen_coloringbook" + } + }, { "__struct_id": 0, "NAME": { @@ -680,6 +6948,787 @@ "value": "item" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Achilles Heel" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_achilles" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: All Hope Lost" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_allhope" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Allied Martyr" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_allmart" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Anarchy's Call" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_anarchy" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Animus Blast" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_animblas" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Animus Blizzard" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_animbliz" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Army Unfallen" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_armyunfa" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Audience of Stone" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_audstone" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Battle Bounding" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_batbound" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Celestial Council" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_celcounc" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Champion's Valor" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_champval" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Contingent Resurrection" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_contresu" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Contingent Reunion" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_contreun" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Deadeye Sense" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_deadeyes" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Deathmark" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_deathmrk" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Dire Winter" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_direwint" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Dragon Knight" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_dragonkn" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Dreamscape" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_dreamscp" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Dullblades" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_dullblad" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Dweomer Thief" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_dweomert" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Enslave" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_enslave" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Epic Mage Armor" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_epmagarm" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Epic Repulsion" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_eprepuls" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Epic Spell Reflection" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_epspellr" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Epic Warding" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_epwardin" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Eternal Freedom" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_eterfree" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Fiendish Words" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_fiendwrd" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Fleetness of Foot" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_fleetnes" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Gem Cage" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_gemcage" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Godsmite" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_godsmite" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Greater Ruin" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_greatrui" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Greater Spell Resistance" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_grspellr" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Greater Timestop" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_grtimest" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Hell Send" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_hellsend" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Hellball" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_hellball" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Herculean Alliance" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_hercalli" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Herculean Empowerment" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_hercempo" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Impenetrability" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_impenetr" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Leech Field" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_leechfie" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Legendary Artisan" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_legendar" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Life Force Transfer" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_lifeforc" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Magma Burst" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_magmabur" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Mass Penguin" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_masspeng" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Momento Mori" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_momentom" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Mummy Dust" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_mummdust" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Nailed to the Sky" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_nailedsk" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Night's Undoing" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_nightsun" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Order Restored" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_orderres" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Paths Become Known" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_pathsbec" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Peerless Penitence" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_peerless" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Pestilence" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_pestilen" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Pious Parley" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_piouspar" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Planar Cell" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_planarce" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Psionic Salvo" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_psionics" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Rain of Fire" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_rainfire" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Risen Reunited" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_risenreu" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Ruin" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_ruin" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Singular Sunder" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_singsund" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Spell Worm" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_spelworm" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Storm Mantle" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_stormman" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Summon Aberration" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_summaber" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Superb Dispelling" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_superbdi" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Symrustar's Spellbinding" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_symrusta" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: The Withering" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_thewithe" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Tolodine's Killing Wind" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_tolodine" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Transcendent Vitality" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_transvit" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Twinfiend" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_twinfien" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Unholy Disciple" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_unholydi" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Unimpinged" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_unimping" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Unseen Wanderer" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_unseenwa" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spell: Whip of Shar" + }, + "RESREF": { + "type": "resref", + "value": "epic_sp_whipshar" + } + }, { "__struct_id": 0, "NAME": { @@ -735,6 +7784,314 @@ "value": "themereofdeadmen" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Affliction" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_afflict" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Animating Dead" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_animdead" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Animation" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_animate" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Armor" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_armor" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Banishment" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_banish" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Compelling" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_compel" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Concealment" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_conceal" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Conjuration" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_conjure" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Contact" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_contact" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Delusion" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_delude" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Destruction" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_destroy" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Dispelling" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_dispel" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Energy" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_energy" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Foresight" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_foresee" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Fortification" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_fortify" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Healing" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_heal" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Life" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_life" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Light" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_light" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Opposition" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_oppos" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Reflection" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_reflect" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Revealing" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_reveal" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Shadow" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_shadow" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Slaying" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_slay" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Summoning" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_summon" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Time" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_time" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Transformation" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_transfrm" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Transportation" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_transprt" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "The Seed of Warding" + }, + "RESREF": { + "type": "resref", + "value": "epic_sd_ward" + } + }, { "__struct_id": 0, "NAME": { @@ -875,6 +8232,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bullybasher's Gauntlets" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_bully" + } + }, { "__struct_id": 0, "NAME": { @@ -906,6 +8274,22 @@ "type": "byte", "value": 64 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Companion Dye" + }, + "RESREF": { + "type": "resref", + "value": "prccompdye" + } + } + ] + }, "STRREF": { "type": "dword", "value": 83602 @@ -917,6 +8301,22 @@ "type": "byte", "value": 57 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Archmage's Focus of Power" + }, + "RESREF": { + "type": "resref", + "value": "archfocusofpower" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6812 @@ -936,6 +8336,50 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Amulet of the Silver Tongue" + }, + "RESREF": { + "type": "resref", + "value": "prc_true_svrtng" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Amulet of the Silver Tongue (Greater)" + }, + "RESREF": { + "type": "resref", + "value": "prc_true_svrtngg" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Divine Spark" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_divspark" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Divine Spark" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_ravenknd" + } + }, { "__struct_id": 0, "NAME": { @@ -946,6 +8390,17 @@ "type": "resref", "value": "mi_amulet" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Scarab of Aradros" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_aradros" + } } ] }, @@ -963,6 +8418,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bright Evening Star" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_btevstar" + } + }, { "__struct_id": 0, "NAME": { @@ -994,6 +8460,55 @@ "type": "byte", "value": 20 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "DM Rest Widget" + }, + "RESREF": { + "type": "resref", + "value": "dmrestwidget" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "prgt_kit" + }, + "RESREF": { + "type": "resref", + "value": "prgt_kit" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Supply Kit" + }, + "RESREF": { + "type": "resref", + "value": "supplykit002" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Woodland Kit" + }, + "RESREF": { + "type": "resref", + "value": "supplykit001" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6748 @@ -1008,6 +8523,28 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Antitoxin" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_antitox" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Blend Cream" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_blendcrm" + } + }, { "__struct_id": 0, "NAME": { @@ -1030,6 +8567,17 @@ "value": "cocaleaves" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crackle Powder" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_crcklpdr" + } + }, { "__struct_id": 0, "NAME": { @@ -1052,6 +8600,17 @@ "value": "dustofdesire" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Embalming Fire" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_emblmfr" + } + }, { "__struct_id": 0, "NAME": { @@ -1063,6 +8622,17 @@ "value": "ess_ettercap" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fareye Oil" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_fareyeoil" + } + }, { "__struct_id": 0, "NAME": { @@ -1107,6 +8677,61 @@ "value": "greasengo" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Harper's Flute" + }, + "RESREF": { + "type": "resref", + "value": "mh_it_flute" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Harper's Harp" + }, + "RESREF": { + "type": "resref", + "value": "mh_it_harp" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Harper's Horn" + }, + "RESREF": { + "type": "resref", + "value": "mh_it_cor" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Harper's Lute" + }, + "RESREF": { + "type": "resref", + "value": "mh_it_luth" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Healer's Balm" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_healblm" + } + }, { "__struct_id": 0, "NAME": { @@ -1118,6 +8743,17 @@ "value": "hefreskseeds" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Keenear Powder" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_keenear" + } + }, { "__struct_id": 0, "NAME": { @@ -1129,6 +8765,17 @@ "value": "lockeater" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lockslip Grease" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_lockslip" + } + }, { "__struct_id": 0, "NAME": { @@ -1140,6 +8787,28 @@ "value": "mapofleilon" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nature's Draught" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_natdrgt" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nerv" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_nerv" + } + }, { "__struct_id": 0, "NAME": { @@ -1151,6 +8820,50 @@ "value": "nocturnispowder" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "prc_it_poist0" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_poist0" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "prc_it_poist1" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_poist1" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "prc_it_poist2" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_poist2" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "prc_it_poist3" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_poist3" + } + }, { "__struct_id": 0, "NAME": { @@ -1162,6 +8875,72 @@ "value": "rapidgroseeds" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Screaming Flask" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_scrmflsk" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shedden" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_shedden" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shedden +2" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_shedden2" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shedden +3" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_shedden3" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shedden +4" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_shedden4" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shedden +5" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_shedden5" + } + }, { "__struct_id": 0, "NAME": { @@ -1173,6 +8952,39 @@ "value": "ess_slaad" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Softfoot" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_softfoot" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Summoning Stone" + }, + "RESREF": { + "type": "resref", + "value": "summoningstone" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Token of Sacrifice" + }, + "RESREF": { + "type": "resref", + "value": "codi_sam_token" + } + }, { "__struct_id": 0, "NAME": { @@ -1184,6 +8996,17 @@ "value": "ess_undead" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Vial of Brittlebone" + }, + "RESREF": { + "type": "resref", + "value": "prc_brittlebn" + } + }, { "__struct_id": 0, "NAME": { @@ -1211,6 +9034,50 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Agony" + }, + "RESREF": { + "type": "resref", + "value": "prc_agony" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Baccaran" + }, + "RESREF": { + "type": "resref", + "value": "prc_baccaran" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Brackish Water" + }, + "RESREF": { + "type": "resref", + "value": "mc_brackishwater" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Devilweed" + }, + "RESREF": { + "type": "resref", + "value": "prc_devilweed" + } + }, { "__struct_id": 0, "NAME": { @@ -1222,6 +9089,17 @@ "value": "dwarvenbrew" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fresh Water" + }, + "RESREF": { + "type": "resref", + "value": "mc_freshwater" + } + }, { "__struct_id": 0, "NAME": { @@ -1233,6 +9111,50 @@ "value": "pot_gr_barkskin" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Green Liquid" + }, + "RESREF": { + "type": "resref", + "value": "mc_greenliquid" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Luhix" + }, + "RESREF": { + "type": "resref", + "value": "prc_luhix" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Mushroom Powder" + }, + "RESREF": { + "type": "resref", + "value": "prc_mshrm_pwdr" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Oil" + }, + "RESREF": { + "type": "resref", + "value": "mc_oil" + } + }, { "__struct_id": 0, "NAME": { @@ -1398,6 +9320,17 @@ "value": "pot_gr_stskin" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Potion of Heroism" + }, + "RESREF": { + "type": "resref", + "value": "mc_heroismpotion" + } + }, { "__struct_id": 0, "NAME": { @@ -1529,6 +9462,83 @@ "type": "resref", "value": "pot_ultravision" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sannish" + }, + "RESREF": { + "type": "resref", + "value": "prc_sannish" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Terran Brandy" + }, + "RESREF": { + "type": "resref", + "value": "prc_terran_brndy" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Vial of Blood" + }, + "RESREF": { + "type": "resref", + "value": "mc_vialofblood" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Vial of Jelly" + }, + "RESREF": { + "type": "resref", + "value": "mc_vialofjelly" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Vial of Poison" + }, + "RESREF": { + "type": "resref", + "value": "mc_vialofpoison" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Vial of Tears" + }, + "RESREF": { + "type": "resref", + "value": "mc_vialoftears" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Vodare" + }, + "RESREF": { + "type": "resref", + "value": "prc_vodare" + } } ] }, @@ -1543,6 +9553,11792 @@ "type": "byte", "value": 26 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_546" + }, + "STRREF": { + "type": "dword", + "value": 16778211 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_551" + }, + "STRREF": { + "type": "dword", + "value": 16778213 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_553" + }, + "STRREF": { + "type": "dword", + "value": 16778237 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_554" + }, + "STRREF": { + "type": "dword", + "value": 16778235 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_555" + }, + "STRREF": { + "type": "dword", + "value": 16778239 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_556" + }, + "STRREF": { + "type": "dword", + "value": 16778197 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_557" + }, + "STRREF": { + "type": "dword", + "value": 16778199 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_558" + }, + "STRREF": { + "type": "dword", + "value": 16778201 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_559" + }, + "STRREF": { + "type": "dword", + "value": 16778225 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_560" + }, + "STRREF": { + "type": "dword", + "value": 16778227 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_561" + }, + "STRREF": { + "type": "dword", + "value": 16778229 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_566" + }, + "STRREF": { + "type": "dword", + "value": 16778241 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_567" + }, + "STRREF": { + "type": "dword", + "value": 16778243 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_569" + }, + "STRREF": { + "type": "dword", + "value": 16778353 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Stolen Dweomer" + }, + "RESREF": { + "type": "resref", + "value": "it_dweomerthief" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Aberrate" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr118" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1172" + }, + "STRREF": { + "type": "dword", + "value": 16829466 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Absorb Strength" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr403" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1173" + }, + "STRREF": { + "type": "dword", + "value": 16829468 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Abyssal Might" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr404" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1174" + }, + "STRREF": { + "type": "dword", + "value": 16829470 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Abyssal_Might" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr429" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_0" + }, + "STRREF": { + "type": "dword", + "value": 750 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1000" + }, + "STRREF": { + "type": "dword", + "value": 16830216 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr401" + }, + "STRREF": { + "type": "dword", + "value": 16830216 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_355" + }, + "STRREF": { + "type": "dword", + "value": 383 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1012" + }, + "STRREF": { + "type": "dword", + "value": 16830228 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr601" + }, + "STRREF": { + "type": "dword", + "value": 16830228 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Addiction" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr241" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Addiction" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr216" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1291" + }, + "STRREF": { + "type": "dword", + "value": 16829696 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1087" + }, + "STRREF": { + "type": "dword", + "value": 16830423 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr206" + }, + "STRREF": { + "type": "dword", + "value": 16830423 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1" + }, + "STRREF": { + "type": "dword", + "value": 751 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1431" + }, + "STRREF": { + "type": "dword", + "value": 16827968 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Amber Sarcophagus" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr717" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1267" + }, + "STRREF": { + "type": "dword", + "value": 16829648 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_373" + }, + "STRREF": { + "type": "dword", + "value": 2363 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Angry Ache" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr119" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Angry Ache" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr113" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1175" + }, + "STRREF": { + "type": "dword", + "value": 16829472 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Animalistic Power" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr232" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Animalistic Power" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr206" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1323" + }, + "STRREF": { + "type": "dword", + "value": 16825030 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_2" + }, + "STRREF": { + "type": "dword", + "value": 752 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1136" + }, + "STRREF": { + "type": "dword", + "value": 16826216 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_animobj" + }, + "STRREF": { + "type": "dword", + "value": 16826216 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_942" + }, + "STRREF": { + "type": "dword", + "value": 16829180 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Apocalypse from the Sky" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr914" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Apocalypse from the Sky" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr901" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1176" + }, + "STRREF": { + "type": "dword", + "value": 16829474 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1451" + }, + "STRREF": { + "type": "dword", + "value": 16826983 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_981" + }, + "STRREF": { + "type": "dword", + "value": 16825536 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1331" + }, + "STRREF": { + "type": "dword", + "value": 16832080 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1370" + }, + "STRREF": { + "type": "dword", + "value": 16829340 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1369" + }, + "STRREF": { + "type": "dword", + "value": 16829338 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Augment Familiar" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr223" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1292" + }, + "STRREF": { + "type": "dword", + "value": 16825798 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_360" + }, + "STRREF": { + "type": "dword", + "value": 386 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_321" + }, + "STRREF": { + "type": "dword", + "value": 6338 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_287" + }, + "STRREF": { + "type": "dword", + "value": 5116 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Avascular Mass" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr810" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_901" + }, + "STRREF": { + "type": "dword", + "value": 16829194 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Avasculate" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr709" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_900" + }, + "STRREF": { + "type": "dword", + "value": 16829192 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_303" + }, + "STRREF": { + "type": "dword", + "value": 6329 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ayailla's Radiant Burst" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr212" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1253" + }, + "STRREF": { + "type": "dword", + "value": 16829620 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_367" + }, + "STRREF": { + "type": "dword", + "value": 502 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Baleful Polymorph" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr421" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Baleful Polymorph" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr502" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1301" + }, + "STRREF": { + "type": "dword", + "value": 16825818 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1064" + }, + "STRREF": { + "type": "dword", + "value": 16830368 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr107" + }, + "STRREF": { + "type": "dword", + "value": 16830368 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr203" + }, + "STRREF": { + "type": "dword", + "value": 16830368 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_454" + }, + "STRREF": { + "type": "dword", + "value": 3853 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_380" + }, + "STRREF": { + "type": "dword", + "value": 2663 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_361" + }, + "STRREF": { + "type": "dword", + "value": 387 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_5" + }, + "STRREF": { + "type": "dword", + "value": 753 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_455" + }, + "STRREF": { + "type": "dword", + "value": 3857 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1098" + }, + "STRREF": { + "type": "dword", + "value": 16830435 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr503" + }, + "STRREF": { + "type": "dword", + "value": 16830435 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1065" + }, + "STRREF": { + "type": "dword", + "value": 16830370 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_8" + }, + "STRREF": { + "type": "dword", + "value": 754 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bestow Wound" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr120" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1177" + }, + "STRREF": { + "type": "dword", + "value": 16829479 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_393" + }, + "STRREF": { + "type": "dword", + "value": 2686 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_394" + }, + "STRREF": { + "type": "dword", + "value": 2687 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_391" + }, + "STRREF": { + "type": "dword", + "value": 2684 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_392" + }, + "STRREF": { + "type": "dword", + "value": 2685 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_390" + }, + "STRREF": { + "type": "dword", + "value": 2683 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1328" + }, + "STRREF": { + "type": "dword", + "value": 16825032 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1329" + }, + "STRREF": { + "type": "dword", + "value": 16825034 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_468" + }, + "STRREF": { + "type": "dword", + "value": 3737 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_979" + }, + "STRREF": { + "type": "dword", + "value": 16825540 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_476" + }, + "STRREF": { + "type": "dword", + "value": 3761 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_9" + }, + "STRREF": { + "type": "dword", + "value": 755 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Blade of Blood" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr114" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Blade of Blood" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr111" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1294" + }, + "STRREF": { + "type": "dword", + "value": 16826256 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_470" + }, + "STRREF": { + "type": "dword", + "value": 3743 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1346" + }, + "STRREF": { + "type": "dword", + "value": 16832225 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1154" + }, + "STRREF": { + "type": "dword", + "value": 16832004 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Blasphemy" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr705" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1019" + }, + "STRREF": { + "type": "dword", + "value": 16830236 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr402" + }, + "STRREF": { + "type": "dword", + "value": 16830236 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_11" + }, + "STRREF": { + "type": "dword", + "value": 756 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1424" + }, + "STRREF": { + "type": "dword", + "value": 16828325 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_472" + }, + "STRREF": { + "type": "dword", + "value": 3753 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1132" + }, + "STRREF": { + "type": "dword", + "value": 16825357 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_blsbah" + }, + "STRREF": { + "type": "dword", + "value": 16825357 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Blinding Glory" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr918" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1268" + }, + "STRREF": { + "type": "dword", + "value": 16829650 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_14" + }, + "STRREF": { + "type": "dword", + "value": 758 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_353" + }, + "STRREF": { + "type": "dword", + "value": 359 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1139" + }, + "STRREF": { + "type": "dword", + "value": 16825201 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Blood of the Martyr" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr405" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1371" + }, + "STRREF": { + "type": "dword", + "value": 16829342 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1163" + }, + "STRREF": { + "type": "dword", + "value": 16823532 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr210" + }, + "STRREF": { + "type": "dword", + "value": 16823532 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bodak Birth" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr801" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1178" + }, + "STRREF": { + "type": "dword", + "value": 16829481 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_354" + }, + "STRREF": { + "type": "dword", + "value": 382 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr306" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1179" + }, + "STRREF": { + "type": "dword", + "value": 16829483 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblast" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr208" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1180" + }, + "STRREF": { + "type": "dword", + "value": 16829488 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Break Enchantment" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr422" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Break Enchantment" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr503" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1302" + }, + "STRREF": { + "type": "dword", + "value": 16825820 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Brilliant Emanation" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr213" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1254" + }, + "STRREF": { + "type": "dword", + "value": 16829622 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1383" + }, + "STRREF": { + "type": "dword", + "value": 16847280 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_15" + }, + "STRREF": { + "type": "dword", + "value": 759 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1016" + }, + "STRREF": { + "type": "dword", + "value": 16830234 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr101" + }, + "STRREF": { + "type": "dword", + "value": 16830234 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_18" + }, + "STRREF": { + "type": "dword", + "value": 760 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Call Dretch Horde" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr516" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1181" + }, + "STRREF": { + "type": "dword", + "value": 16829490 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Call Faithful Servants" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr621" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Call Faithful Servants" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr605" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1270" + }, + "STRREF": { + "type": "dword", + "value": 16829654 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Call Lemure Horde" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr517" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1182" + }, + "STRREF": { + "type": "dword", + "value": 16829492 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_20" + }, + "STRREF": { + "type": "dword", + "value": 761 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1425" + }, + "STRREF": { + "type": "dword", + "value": 16828338 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_352" + }, + "STRREF": { + "type": "dword", + "value": 340 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_25" + }, + "STRREF": { + "type": "dword", + "value": 763 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_241" + }, + "STRREF": { + "type": "dword", + "value": 16789563 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Celestial Blood" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr606" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1271" + }, + "STRREF": { + "type": "dword", + "value": 16829656 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Chaav's Laugh" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr510" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1272" + }, + "STRREF": { + "type": "dword", + "value": 16829658 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_28" + }, + "STRREF": { + "type": "dword", + "value": 764 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Channeled Pyroburst" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr426" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1306" + }, + "STRREF": { + "type": "dword", + "value": 16826296 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_31" + }, + "STRREF": { + "type": "dword", + "value": 765 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_33" + }, + "STRREF": { + "type": "dword", + "value": 766 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_35" + }, + "STRREF": { + "type": "dword", + "value": 767 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_997" + }, + "STRREF": { + "type": "dword", + "value": 16990493 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1137" + }, + "STRREF": { + "type": "dword", + "value": 16826218 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_chillt" + }, + "STRREF": { + "type": "dword", + "value": 16826218 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_37" + }, + "STRREF": { + "type": "dword", + "value": 768 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_40" + }, + "STRREF": { + "type": "dword", + "value": 769 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_43" + }, + "STRREF": { + "type": "dword", + "value": 770 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_46" + }, + "STRREF": { + "type": "dword", + "value": 771 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1116" + }, + "STRREF": { + "type": "dword", + "value": 16830453 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr203" + }, + "STRREF": { + "type": "dword", + "value": 16830453 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claws of the Bebilith" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr518" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1183" + }, + "STRREF": { + "type": "dword", + "value": 16829494 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Claws of the Savage" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr405" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1184" + }, + "STRREF": { + "type": "dword", + "value": 16829496 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1422" + }, + "STRREF": { + "type": "dword", + "value": 16828321 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_486" + }, + "STRREF": { + "type": "dword", + "value": 3794 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cloud of the Achaierai" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr601" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1185" + }, + "STRREF": { + "type": "dword", + "value": 16829498 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_48" + }, + "STRREF": { + "type": "dword", + "value": 773 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Clutch of Orcus" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr307" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1186" + }, + "STRREF": { + "type": "dword", + "value": 16829500 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1002" + }, + "STRREF": { + "type": "dword", + "value": 16830218 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr403" + }, + "STRREF": { + "type": "dword", + "value": 16830218 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_49" + }, + "STRREF": { + "type": "dword", + "value": 774 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_456" + }, + "STRREF": { + "type": "dword", + "value": 3859 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1436" + }, + "STRREF": { + "type": "dword", + "value": 16822632 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_899" + }, + "STRREF": { + "type": "dword", + "value": 16829190 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr212" + }, + "STRREF": { + "type": "dword", + "value": 16829190 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_50" + }, + "STRREF": { + "type": "dword", + "value": 775 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_52" + }, + "STRREF": { + "type": "dword", + "value": 776 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1138" + }, + "STRREF": { + "type": "dword", + "value": 16825353 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_conse" + }, + "STRREF": { + "type": "dword", + "value": 16825353 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_54" + }, + "STRREF": { + "type": "dword", + "value": 777 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_350" + }, + "STRREF": { + "type": "dword", + "value": 59 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1516" + }, + "STRREF": { + "type": "dword", + "value": 16976372 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_55" + }, + "STRREF": { + "type": "dword", + "value": 778 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1455" + }, + "STRREF": { + "type": "dword", + "value": 16789764 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Convert Wand" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr511" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1273" + }, + "STRREF": { + "type": "dword", + "value": 16829660 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1066" + }, + "STRREF": { + "type": "dword", + "value": 16830372 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr101" + }, + "STRREF": { + "type": "dword", + "value": 16830372 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_959" + }, + "STRREF": { + "type": "dword", + "value": 16789902 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_960" + }, + "STRREF": { + "type": "dword", + "value": 16789904 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_57" + }, + "STRREF": { + "type": "dword", + "value": 779 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1089" + }, + "STRREF": { + "type": "dword", + "value": 16830425 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr207" + }, + "STRREF": { + "type": "dword", + "value": 16830425 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_60" + }, + "STRREF": { + "type": "dword", + "value": 780 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1500" + }, + "STRREF": { + "type": "dword", + "value": 16976348 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1505" + }, + "STRREF": { + "type": "dword", + "value": 16976348 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_304" + }, + "STRREF": { + "type": "dword", + "value": 6330 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crown of Might" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr320" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crown of Might" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr303" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1307" + }, + "STRREF": { + "type": "dword", + "value": 16826302 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crown of Protection" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr321" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crown of Protection" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr304" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1308" + }, + "STRREF": { + "type": "dword", + "value": 16826304 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_450" + }, + "STRREF": { + "type": "dword", + "value": 3837 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1440" + }, + "STRREF": { + "type": "dword", + "value": 16847572 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crushing Fist of Spite" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr915" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1187" + }, + "STRREF": { + "type": "dword", + "value": 16829502 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_63" + }, + "STRREF": { + "type": "dword", + "value": 781 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_66" + }, + "STRREF": { + "type": "dword", + "value": 782 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_68" + }, + "STRREF": { + "type": "dword", + "value": 783 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_69" + }, + "STRREF": { + "type": "dword", + "value": 784 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_72" + }, + "STRREF": { + "type": "dword", + "value": 785 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1070" + }, + "STRREF": { + "type": "dword", + "value": 16830376 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr204" + }, + "STRREF": { + "type": "dword", + "value": 16830376 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1072" + }, + "STRREF": { + "type": "dword", + "value": 16830380 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr302" + }, + "STRREF": { + "type": "dword", + "value": 16830380 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Curse of the Putrid Husk" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr327" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1188" + }, + "STRREF": { + "type": "dword", + "value": 16829504 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_976" + }, + "STRREF": { + "type": "dword", + "value": 16789918 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cursed Blade" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr423" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1303" + }, + "STRREF": { + "type": "dword", + "value": 16825822 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Damning Darkness" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr430" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Damning Darkness" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr406" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1189" + }, + "STRREF": { + "type": "dword", + "value": 16829506 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_956" + }, + "STRREF": { + "type": "dword", + "value": 16789582 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dancing Web" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr437" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dancing Web" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr512" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1274" + }, + "STRREF": { + "type": "dword", + "value": 16829662 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_980" + }, + "STRREF": { + "type": "dword", + "value": 16825538 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_483" + }, + "STRREF": { + "type": "dword", + "value": 3781 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1375" + }, + "STRREF": { + "type": "dword", + "value": 16829350 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_75" + }, + "STRREF": { + "type": "dword", + "value": 786 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1380" + }, + "STRREF": { + "type": "dword", + "value": 16832214 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_76" + }, + "STRREF": { + "type": "dword", + "value": 787 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_975" + }, + "STRREF": { + "type": "dword", + "value": 16789916 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_471" + }, + "STRREF": { + "type": "dword", + "value": 3750 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_457" + }, + "STRREF": { + "type": "dword", + "value": 3861 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Death by Thorns" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr703" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1190" + }, + "STRREF": { + "type": "dword", + "value": 16829508 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Death By Thorns" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr711" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_898" + }, + "STRREF": { + "type": "dword", + "value": 16825554 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_77" + }, + "STRREF": { + "type": "dword", + "value": 788 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Deep Slumber" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr317" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1170" + }, + "STRREF": { + "type": "dword", + "value": 16825812 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1162" + }, + "STRREF": { + "type": "dword", + "value": 16832052 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Deeper Darkness" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr305" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Deflect" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr224" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1293" + }, + "STRREF": { + "type": "dword", + "value": 16825800 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_78" + }, + "STRREF": { + "type": "dword", + "value": 789 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Demoncall" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr205" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1191" + }, + "STRREF": { + "type": "dword", + "value": 16829510 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Demonflesh" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr114" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1192" + }, + "STRREF": { + "type": "dword", + "value": 16829512 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Despoil" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr902" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1193" + }, + "STRREF": { + "type": "dword", + "value": 16829514 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_307" + }, + "STRREF": { + "type": "dword", + "value": 6332 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1160" + }, + "STRREF": { + "type": "dword", + "value": 16831994 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Detect Chaos" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr110" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1157" + }, + "STRREF": { + "type": "dword", + "value": 16831988 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Detect Evil" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr107" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1374" + }, + "STRREF": { + "type": "dword", + "value": 16829348 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1158" + }, + "STRREF": { + "type": "dword", + "value": 16831990 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Detect Good" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr108" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1159" + }, + "STRREF": { + "type": "dword", + "value": 16831992 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Detect Law" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr109" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Detect Scrying" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr425" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1305" + }, + "STRREF": { + "type": "dword", + "value": 16825826 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_946" + }, + "STRREF": { + "type": "dword", + "value": 16827770 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Devil's Eye" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr328" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Devil's Eye" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr308" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1195" + }, + "STRREF": { + "type": "dword", + "value": 16829518 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Spray" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr410" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1256" + }, + "STRREF": { + "type": "dword", + "value": 16829626 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1155" + }, + "STRREF": { + "type": "dword", + "value": 16832006 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dictum" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr706" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1149" + }, + "STRREF": { + "type": "dword", + "value": 16825212 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr412" + }, + "STRREF": { + "type": "dword", + "value": 16825212 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dimension Hop" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr228" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1310" + }, + "STRREF": { + "type": "dword", + "value": 16826393 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1167" + }, + "STRREF": { + "type": "dword", + "value": 16825681 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr413" + }, + "STRREF": { + "type": "dword", + "value": 16825681 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr404" + }, + "STRREF": { + "type": "dword", + "value": 16825681 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1168" + }, + "STRREF": { + "type": "dword", + "value": 16825684 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr804" + }, + "STRREF": { + "type": "dword", + "value": 16825684 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr803" + }, + "STRREF": { + "type": "dword", + "value": 16825684 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_376" + }, + "STRREF": { + "type": "dword", + "value": 2366 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1448" + }, + "STRREF": { + "type": "dword", + "value": 16826977 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1430" + }, + "STRREF": { + "type": "dword", + "value": 16827961 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1021" + }, + "STRREF": { + "type": "dword", + "value": 16830238 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr602" + }, + "STRREF": { + "type": "dword", + "value": 16830238 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_81" + }, + "STRREF": { + "type": "dword", + "value": 790 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_84" + }, + "STRREF": { + "type": "dword", + "value": 791 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dispeling Touch" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr229" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1311" + }, + "STRREF": { + "type": "dword", + "value": 16826395 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_389" + }, + "STRREF": { + "type": "dword", + "value": 2679 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1343" + }, + "STRREF": { + "type": "dword", + "value": 16832221 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_345" + }, + "STRREF": { + "type": "dword", + "value": 53 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Divine Inspiration" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr122" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1255" + }, + "STRREF": { + "type": "dword", + "value": 16829624 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_86" + }, + "STRREF": { + "type": "dword", + "value": 792 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1074" + }, + "STRREF": { + "type": "dword", + "value": 16830384 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr201" + }, + "STRREF": { + "type": "dword", + "value": 16830384 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Divine Sacrifice" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr112" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Divine Sacrifice" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr124" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1275" + }, + "STRREF": { + "type": "dword", + "value": 16829664 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_87" + }, + "STRREF": { + "type": "dword", + "value": 793 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_88" + }, + "STRREF": { + "type": "dword", + "value": 794 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_89" + }, + "STRREF": { + "type": "dword", + "value": 795 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_90" + }, + "STRREF": { + "type": "dword", + "value": 796 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Doom Scarabs" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr427" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1312" + }, + "STRREF": { + "type": "dword", + "value": 16826397 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1373" + }, + "STRREF": { + "type": "dword", + "value": 16829346 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1332" + }, + "STRREF": { + "type": "dword", + "value": 16832082 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1439" + }, + "STRREF": { + "type": "dword", + "value": 16832490 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dragon Cloud" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr803" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1257" + }, + "STRREF": { + "type": "dword", + "value": 16829628 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dread Word" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr329" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1197" + }, + "STRREF": { + "type": "dword", + "value": 16829522 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_368" + }, + "STRREF": { + "type": "dword", + "value": 508 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Drug Resistance" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr121" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Drug Resistance" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr115" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1198" + }, + "STRREF": { + "type": "dword", + "value": 16829524 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_288" + }, + "STRREF": { + "type": "dword", + "value": 5371 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_357" + }, + "STRREF": { + "type": "dword", + "value": 384 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ectoplasmic Enhancement" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr617" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1199" + }, + "STRREF": { + "type": "dword", + "value": 16829526 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Elation" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr336" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Elation" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr214" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1276" + }, + "STRREF": { + "type": "dword", + "value": 16829666 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_986" + }, + "STRREF": { + "type": "dword", + "value": 16789943 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_370" + }, + "STRREF": { + "type": "dword", + "value": 1852 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1004" + }, + "STRREF": { + "type": "dword", + "value": 16830220 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr404" + }, + "STRREF": { + "type": "dword", + "value": 16830220 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_92" + }, + "STRREF": { + "type": "dword", + "value": 797 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_988" + }, + "STRREF": { + "type": "dword", + "value": 16789960 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_94" + }, + "STRREF": { + "type": "dword", + "value": 798 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_95" + }, + "STRREF": { + "type": "dword", + "value": 799 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_98" + }, + "STRREF": { + "type": "dword", + "value": 800 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energize Potion" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr233" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energize Potion" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr234" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energize Potion" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr207" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1277" + }, + "STRREF": { + "type": "dword", + "value": 16829668 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energy Aegis" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr322" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energy Aegis" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr305" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1313" + }, + "STRREF": { + "type": "dword", + "value": 16826399 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_311" + }, + "STRREF": { + "type": "dword", + "value": 6335 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_99" + }, + "STRREF": { + "type": "dword", + "value": 801 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energy Ebb" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr710" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energy Ebb" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr710" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_912" + }, + "STRREF": { + "type": "dword", + "value": 16829256 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1023" + }, + "STRREF": { + "type": "dword", + "value": 16830242 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr605" + }, + "STRREF": { + "type": "dword", + "value": 16830242 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energy Surge" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr323" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1314" + }, + "STRREF": { + "type": "dword", + "value": 16826672 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_100" + }, + "STRREF": { + "type": "dword", + "value": 802 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_938" + }, + "STRREF": { + "type": "dword", + "value": 16829172 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_101" + }, + "STRREF": { + "type": "dword", + "value": 803 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_349" + }, + "STRREF": { + "type": "dword", + "value": 58 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_195" + }, + "STRREF": { + "type": "dword", + "value": 871 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_324" + }, + "STRREF": { + "type": "dword", + "value": 6341 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_428" + }, + "STRREF": { + "type": "dword", + "value": 8943 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Evil Eye" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr330" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1201" + }, + "STRREF": { + "type": "dword", + "value": 16829530 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Evil Weather" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr802" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1203" + }, + "STRREF": { + "type": "dword", + "value": 16829534 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Exalted Fury" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr903" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1258" + }, + "STRREF": { + "type": "dword", + "value": 16829630 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Exalted Raiment" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr602" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1229" + }, + "STRREF": { + "type": "dword", + "value": 16829698 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_387" + }, + "STRREF": { + "type": "dword", + "value": 2675 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Extract Drug" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr122" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Extract Drug" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr116" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1204" + }, + "STRREF": { + "type": "dword", + "value": 16829540 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1333" + }, + "STRREF": { + "type": "dword", + "value": 16832084 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eye of the Beholder" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr712" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1202" + }, + "STRREF": { + "type": "dword", + "value": 16829532 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1442" + }, + "STRREF": { + "type": "dword", + "value": 16847576 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eyes of the Avoral" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr129" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eyes of the Avoral" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr126" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1278" + }, + "STRREF": { + "type": "dword", + "value": 16829670 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_994" + }, + "STRREF": { + "type": "dword", + "value": 16793694 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "False Life" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr225" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1295" + }, + "STRREF": { + "type": "dword", + "value": 16825806 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_103" + }, + "STRREF": { + "type": "dword", + "value": 804 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_104" + }, + "STRREF": { + "type": "dword", + "value": 805 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fiendish Clarity" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr713" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fiendish Clarity" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr704" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1206" + }, + "STRREF": { + "type": "dword", + "value": 16829544 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_327" + }, + "STRREF": { + "type": "dword", + "value": 6343 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_105" + }, + "STRREF": { + "type": "dword", + "value": 806 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1444" + }, + "STRREF": { + "type": "dword", + "value": 16847580 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1006" + }, + "STRREF": { + "type": "dword", + "value": 16830222 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr405" + }, + "STRREF": { + "type": "dword", + "value": 16830222 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1352" + }, + "STRREF": { + "type": "dword", + "value": 16832237 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_106" + }, + "STRREF": { + "type": "dword", + "value": 807 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1347" + }, + "STRREF": { + "type": "dword", + "value": 16832227 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_108" + }, + "STRREF": { + "type": "dword", + "value": 808 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_371" + }, + "STRREF": { + "type": "dword", + "value": 1895 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1075" + }, + "STRREF": { + "type": "dword", + "value": 16830386 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr205" + }, + "STRREF": { + "type": "dword", + "value": 16830386 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1345" + }, + "STRREF": { + "type": "dword", + "value": 16832223 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_110" + }, + "STRREF": { + "type": "dword", + "value": 809 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_113" + }, + "STRREF": { + "type": "dword", + "value": 810 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_115" + }, + "STRREF": { + "type": "dword", + "value": 811 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_477" + }, + "STRREF": { + "type": "dword", + "value": 3763 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_347" + }, + "STRREF": { + "type": "dword", + "value": 56 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1092" + }, + "STRREF": { + "type": "dword", + "value": 16830427 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr305" + }, + "STRREF": { + "type": "dword", + "value": 16830427 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1093" + }, + "STRREF": { + "type": "dword", + "value": 16830429 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr802" + }, + "STRREF": { + "type": "dword", + "value": 16830429 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Flesh Armor" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr431" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1207" + }, + "STRREF": { + "type": "dword", + "value": 16829546 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Flesh Ripper" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr309" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1208" + }, + "STRREF": { + "type": "dword", + "value": 16829548 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_398" + }, + "STRREF": { + "type": "dword", + "value": 3044 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1382" + }, + "STRREF": { + "type": "dword", + "value": 16827179 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_995" + }, + "STRREF": { + "type": "dword", + "value": 16990488 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1049" + }, + "STRREF": { + "type": "dword", + "value": 16830288 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Forceblast" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr301" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1429" + }, + "STRREF": { + "type": "dword", + "value": 16828346 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1497" + }, + "STRREF": { + "type": "dword", + "value": 16976342 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1502" + }, + "STRREF": { + "type": "dword", + "value": 16976342 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_294" + }, + "STRREF": { + "type": "dword", + "value": 5369 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_118" + }, + "STRREF": { + "type": "dword", + "value": 812 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_119" + }, + "STRREF": { + "type": "dword", + "value": 813 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_458" + }, + "STRREF": { + "type": "dword", + "value": 3863 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_192" + }, + "STRREF": { + "type": "dword", + "value": 870 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ghoul Gauntlet" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr615" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_911" + }, + "STRREF": { + "type": "dword", + "value": 16829214 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_120" + }, + "STRREF": { + "type": "dword", + "value": 814 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_947" + }, + "STRREF": { + "type": "dword", + "value": 16828715 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1051" + }, + "STRREF": { + "type": "dword", + "value": 16830290 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr201" + }, + "STRREF": { + "type": "dword", + "value": 16830290 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_121" + }, + "STRREF": { + "type": "dword", + "value": 815 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_484" + }, + "STRREF": { + "type": "dword", + "value": 3783 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_122" + }, + "STRREF": { + "type": "dword", + "value": 816 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_453" + }, + "STRREF": { + "type": "dword", + "value": 3850 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1435" + }, + "STRREF": { + "type": "dword", + "value": 16827530 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1503" + }, + "STRREF": { + "type": "dword", + "value": 16976354 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1508" + }, + "STRREF": { + "type": "dword", + "value": 16976354 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_123" + }, + "STRREF": { + "type": "dword", + "value": 817 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1365" + }, + "STRREF": { + "type": "dword", + "value": 16832264 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1077" + }, + "STRREF": { + "type": "dword", + "value": 16830388 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr502" + }, + "STRREF": { + "type": "dword", + "value": 16830388 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_984" + }, + "STRREF": { + "type": "dword", + "value": 16789937 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_933" + }, + "STRREF": { + "type": "dword", + "value": 16824712 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1036" + }, + "STRREF": { + "type": "dword", + "value": 16830274 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr501" + }, + "STRREF": { + "type": "dword", + "value": 16830274 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Greater Luminous Armor" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr412" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1283" + }, + "STRREF": { + "type": "dword", + "value": 16829680 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_384" + }, + "STRREF": { + "type": "dword", + "value": 2923 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_480" + }, + "STRREF": { + "type": "dword", + "value": 3769 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_962" + }, + "STRREF": { + "type": "dword", + "value": 16789908 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_126" + }, + "STRREF": { + "type": "dword", + "value": 819 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_992" + }, + "STRREF": { + "type": "dword", + "value": 16790118 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_127" + }, + "STRREF": { + "type": "dword", + "value": 820 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_374" + }, + "STRREF": { + "type": "dword", + "value": 2364 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1447" + }, + "STRREF": { + "type": "dword", + "value": 16826974 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_128" + }, + "STRREF": { + "type": "dword", + "value": 821 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_935" + }, + "STRREF": { + "type": "dword", + "value": 16828894 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_129" + }, + "STRREF": { + "type": "dword", + "value": 822 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_130" + }, + "STRREF": { + "type": "dword", + "value": 823 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_131" + }, + "STRREF": { + "type": "dword", + "value": 824 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1150" + }, + "STRREF": { + "type": "dword", + "value": 16825312 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr706" + }, + "STRREF": { + "type": "dword", + "value": 16825312 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_463" + }, + "STRREF": { + "type": "dword", + "value": 16790132 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1125" + }, + "STRREF": { + "type": "dword", + "value": 16830503 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr304" + }, + "STRREF": { + "type": "dword", + "value": 16830503 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Grim Revenge" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr432" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1209" + }, + "STRREF": { + "type": "dword", + "value": 16829550 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_410" + }, + "STRREF": { + "type": "dword", + "value": 2682 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gut Wrench" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr813" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1210" + }, + "STRREF": { + "type": "dword", + "value": 16829552 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1118" + }, + "STRREF": { + "type": "dword", + "value": 16830457 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr110" + }, + "STRREF": { + "type": "dword", + "value": 16830457 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Halt" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr324" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1315" + }, + "STRREF": { + "type": "dword", + "value": 16826406 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1441" + }, + "STRREF": { + "type": "dword", + "value": 16847574 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hammer of Righteousness" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr319" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1259" + }, + "STRREF": { + "type": "dword", + "value": 16829632 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_133" + }, + "STRREF": { + "type": "dword", + "value": 826 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_136" + }, + "STRREF": { + "type": "dword", + "value": 827 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_137" + }, + "STRREF": { + "type": "dword", + "value": 828 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_139" + }, + "STRREF": { + "type": "dword", + "value": 829 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1376" + }, + "STRREF": { + "type": "dword", + "value": 16829352 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_140" + }, + "STRREF": { + "type": "dword", + "value": 830 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_452" + }, + "STRREF": { + "type": "dword", + "value": 3848 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1334" + }, + "STRREF": { + "type": "dword", + "value": 16832086 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Heartache" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr117" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1211" + }, + "STRREF": { + "type": "dword", + "value": 16829554 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Heartclutch" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr505" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1212" + }, + "STRREF": { + "type": "dword", + "value": 16829556 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1035" + }, + "STRREF": { + "type": "dword", + "value": 16830272 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr202" + }, + "STRREF": { + "type": "dword", + "value": 16830272 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1384" + }, + "STRREF": { + "type": "dword", + "value": 16847282 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_955" + }, + "STRREF": { + "type": "dword", + "value": 16847570 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_142" + }, + "STRREF": { + "type": "dword", + "value": 831 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_143" + }, + "STRREF": { + "type": "dword", + "value": 832 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_144" + }, + "STRREF": { + "type": "dword", + "value": 833 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1427" + }, + "STRREF": { + "type": "dword", + "value": 16828342 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_473" + }, + "STRREF": { + "type": "dword", + "value": 3755 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1153" + }, + "STRREF": { + "type": "dword", + "value": 16832002 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Holy Word" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr704" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_459" + }, + "STRREF": { + "type": "dword", + "value": 3865 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_308" + }, + "STRREF": { + "type": "dword", + "value": 6333 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hound of Doom" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr318" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1299" + }, + "STRREF": { + "type": "dword", + "value": 16825814 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1010" + }, + "STRREF": { + "type": "dword", + "value": 16830226 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr302" + }, + "STRREF": { + "type": "dword", + "value": 16830226 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_478" + }, + "STRREF": { + "type": "dword", + "value": 3765 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1349" + }, + "STRREF": { + "type": "dword", + "value": 16832231 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_310" + }, + "STRREF": { + "type": "dword", + "value": 6334 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_147" + }, + "STRREF": { + "type": "dword", + "value": 836 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1101" + }, + "STRREF": { + "type": "dword", + "value": 16830437 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr409" + }, + "STRREF": { + "type": "dword", + "value": 16830437 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_148" + }, + "STRREF": { + "type": "dword", + "value": 837 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_149" + }, + "STRREF": { + "type": "dword", + "value": 838 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1103" + }, + "STRREF": { + "type": "dword", + "value": 16830439 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr306" + }, + "STRREF": { + "type": "dword", + "value": 16830439 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_150" + }, + "STRREF": { + "type": "dword", + "value": 839 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_377" + }, + "STRREF": { + "type": "dword", + "value": 2368 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_451" + }, + "STRREF": { + "type": "dword", + "value": 3844 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_366" + }, + "STRREF": { + "type": "dword", + "value": 392 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_363" + }, + "STRREF": { + "type": "dword", + "value": 389 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_362" + }, + "STRREF": { + "type": "dword", + "value": 388 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_364" + }, + "STRREF": { + "type": "dword", + "value": 390 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_365" + }, + "STRREF": { + "type": "dword", + "value": 391 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1165" + }, + "STRREF": { + "type": "dword", + "value": 16832059 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr701" + }, + "STRREF": { + "type": "dword", + "value": 16832059 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_151" + }, + "STRREF": { + "type": "dword", + "value": 840 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_152" + }, + "STRREF": { + "type": "dword", + "value": 841 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_153" + }, + "STRREF": { + "type": "dword", + "value": 842 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_937" + }, + "STRREF": { + "type": "dword", + "value": 16826154 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_460" + }, + "STRREF": { + "type": "dword", + "value": 3867 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_379" + }, + "STRREF": { + "type": "dword", + "value": 2378 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_378" + }, + "STRREF": { + "type": "dword", + "value": 2377 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_936" + }, + "STRREF": { + "type": "dword", + "value": 16826011 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_474" + }, + "STRREF": { + "type": "dword", + "value": 3757 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1316" + }, + "STRREF": { + "type": "dword", + "value": 16826679 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Kelgore's Fire Orb" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr116" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_154" + }, + "STRREF": { + "type": "dword", + "value": 843 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lahm's Finger Darts" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr209" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1216" + }, + "STRREF": { + "type": "dword", + "value": 16829564 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lantern Light" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr130" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lantern Light" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr125" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1280" + }, + "STRREF": { + "type": "dword", + "value": 16829674 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Last Judgement" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr815" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Last Judgement" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr804" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1281" + }, + "STRREF": { + "type": "dword", + "value": 16829676 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_326" + }, + "STRREF": { + "type": "dword", + "value": 6342 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1067" + }, + "STRREF": { + "type": "dword", + "value": 16830374 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr301" + }, + "STRREF": { + "type": "dword", + "value": 16830374 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1071" + }, + "STRREF": { + "type": "dword", + "value": 16830378 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr304" + }, + "STRREF": { + "type": "dword", + "value": 16830378 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1073" + }, + "STRREF": { + "type": "dword", + "value": 16830382 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr503" + }, + "STRREF": { + "type": "dword", + "value": 16830382 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1084" + }, + "STRREF": { + "type": "dword", + "value": 16830396 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr403" + }, + "STRREF": { + "type": "dword", + "value": 16830396 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1468" + }, + "STRREF": { + "type": "dword", + "value": 16990471 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1506" + }, + "STRREF": { + "type": "dword", + "value": 16990471 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1511" + }, + "STRREF": { + "type": "dword", + "value": 16990471 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1054" + }, + "STRREF": { + "type": "dword", + "value": 16830348 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr102" + }, + "STRREF": { + "type": "dword", + "value": 16830348 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1056" + }, + "STRREF": { + "type": "dword", + "value": 16830352 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr103" + }, + "STRREF": { + "type": "dword", + "value": 16830352 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lesser Deflect" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr115" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1309" + }, + "STRREF": { + "type": "dword", + "value": 16826391 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_155" + }, + "STRREF": { + "type": "dword", + "value": 844 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1058" + }, + "STRREF": { + "type": "dword", + "value": 16830356 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr104" + }, + "STRREF": { + "type": "dword", + "value": 16830356 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1060" + }, + "STRREF": { + "type": "dword", + "value": 16830360 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr105" + }, + "STRREF": { + "type": "dword", + "value": 16830360 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_157" + }, + "STRREF": { + "type": "dword", + "value": 845 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_961" + }, + "STRREF": { + "type": "dword", + "value": 16789906 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_158" + }, + "STRREF": { + "type": "dword", + "value": 846 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_159" + }, + "STRREF": { + "type": "dword", + "value": 847 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lesser Shivering Touch" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr125" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lesser Shivering Touch" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr121" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1251" + }, + "STRREF": { + "type": "dword", + "value": 16829616 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1062" + }, + "STRREF": { + "type": "dword", + "value": 16830364 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr106" + }, + "STRREF": { + "type": "dword", + "value": 16830364 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_160" + }, + "STRREF": { + "type": "dword", + "value": 848 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_161" + }, + "STRREF": { + "type": "dword", + "value": 849 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_892" + }, + "STRREF": { + "type": "dword", + "value": 16790124 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1335" + }, + "STRREF": { + "type": "dword", + "value": 16832088 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_162" + }, + "STRREF": { + "type": "dword", + "value": 850 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_164" + }, + "STRREF": { + "type": "dword", + "value": 851 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1079" + }, + "STRREF": { + "type": "dword", + "value": 16830390 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr102" + }, + "STRREF": { + "type": "dword", + "value": 16830390 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Liquid Pain" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr433" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1217" + }, + "STRREF": { + "type": "dword", + "value": 16829566 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1080" + }, + "STRREF": { + "type": "dword", + "value": 16830392 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr202" + }, + "STRREF": { + "type": "dword", + "value": 16830392 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1449" + }, + "STRREF": { + "type": "dword", + "value": 16826979 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1450" + }, + "STRREF": { + "type": "dword", + "value": 16826981 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1385" + }, + "STRREF": { + "type": "dword", + "value": 16847284 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1031" + }, + "STRREF": { + "type": "dword", + "value": 16830263 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr407" + }, + "STRREF": { + "type": "dword", + "value": 16830263 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Luminous Armor" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr215" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1282" + }, + "STRREF": { + "type": "dword", + "value": 16829678 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_167" + }, + "STRREF": { + "type": "dword", + "value": 852 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_945" + }, + "STRREF": { + "type": "dword", + "value": 16829186 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_168" + }, + "STRREF": { + "type": "dword", + "value": 853 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Magic Circle against Chaos" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr308" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_169" + }, + "STRREF": { + "type": "dword", + "value": 854 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Magic Circle against Evil" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr309" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_170" + }, + "STRREF": { + "type": "dword", + "value": 855 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Magic Circle against Good" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr310" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_171" + }, + "STRREF": { + "type": "dword", + "value": 856 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Magic Circle against Law" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr311" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_383" + }, + "STRREF": { + "type": "dword", + "value": 2670 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_172" + }, + "STRREF": { + "type": "dword", + "value": 857 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_954" + }, + "STRREF": { + "type": "dword", + "value": 16789761 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_481" + }, + "STRREF": { + "type": "dword", + "value": 3771 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_479" + }, + "STRREF": { + "type": "dword", + "value": 3767 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1022" + }, + "STRREF": { + "type": "dword", + "value": 16830240 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr801" + }, + "STRREF": { + "type": "dword", + "value": 16830240 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Masochism" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr337" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Masochism" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr320" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1290" + }, + "STRREF": { + "type": "dword", + "value": 16829694 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_888" + }, + "STRREF": { + "type": "dword", + "value": 16790144 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_179" + }, + "STRREF": { + "type": "dword", + "value": 860 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1024" + }, + "STRREF": { + "type": "dword", + "value": 16830249 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr603" + }, + "STRREF": { + "type": "dword", + "value": 16830249 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_386" + }, + "STRREF": { + "type": "dword", + "value": 2674 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1025" + }, + "STRREF": { + "type": "dword", + "value": 16830251 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr604" + }, + "STRREF": { + "type": "dword", + "value": 16830251 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_180" + }, + "STRREF": { + "type": "dword", + "value": 861 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1133" + }, + "STRREF": { + "type": "dword", + "value": 16825365 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_contag" + }, + "STRREF": { + "type": "dword", + "value": 16825365 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1044" + }, + "STRREF": { + "type": "dword", + "value": 16830282 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr801" + }, + "STRREF": { + "type": "dword", + "value": 16830282 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1037" + }, + "STRREF": { + "type": "dword", + "value": 16830276 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr501" + }, + "STRREF": { + "type": "dword", + "value": 16830276 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1040" + }, + "STRREF": { + "type": "dword", + "value": 16830278 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr601" + }, + "STRREF": { + "type": "dword", + "value": 16830278 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1042" + }, + "STRREF": { + "type": "dword", + "value": 16830280 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr701" + }, + "STRREF": { + "type": "dword", + "value": 16830280 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1117" + }, + "STRREF": { + "type": "dword", + "value": 16830455 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr901" + }, + "STRREF": { + "type": "dword", + "value": 16830455 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1026" + }, + "STRREF": { + "type": "dword", + "value": 16830253 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr606" + }, + "STRREF": { + "type": "dword", + "value": 16830253 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1027" + }, + "STRREF": { + "type": "dword", + "value": 16830255 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr607" + }, + "STRREF": { + "type": "dword", + "value": 16830255 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_939" + }, + "STRREF": { + "type": "dword", + "value": 16829174 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1356" + }, + "STRREF": { + "type": "dword", + "value": 16832245 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1028" + }, + "STRREF": { + "type": "dword", + "value": 16830257 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr608" + }, + "STRREF": { + "type": "dword", + "value": 16830257 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_983" + }, + "STRREF": { + "type": "dword", + "value": 16824714 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_182" + }, + "STRREF": { + "type": "dword", + "value": 863 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_183" + }, + "STRREF": { + "type": "dword", + "value": 864 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1015" + }, + "STRREF": { + "type": "dword", + "value": 16830232 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr901" + }, + "STRREF": { + "type": "dword", + "value": 16830232 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1014" + }, + "STRREF": { + "type": "dword", + "value": 16830230 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr704" + }, + "STRREF": { + "type": "dword", + "value": 16830230 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_932" + }, + "STRREF": { + "type": "dword", + "value": 16824710 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_929" + }, + "STRREF": { + "type": "dword", + "value": 16824704 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_930" + }, + "STRREF": { + "type": "dword", + "value": 16824706 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_931" + }, + "STRREF": { + "type": "dword", + "value": 16824708 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_894" + }, + "STRREF": { + "type": "dword", + "value": 16790136 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1029" + }, + "STRREF": { + "type": "dword", + "value": 16830259 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr609" + }, + "STRREF": { + "type": "dword", + "value": 16830259 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_941" + }, + "STRREF": { + "type": "dword", + "value": 16829178 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_952" + }, + "STRREF": { + "type": "dword", + "value": 16789757 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1030" + }, + "STRREF": { + "type": "dword", + "value": 16830261 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr408" + }, + "STRREF": { + "type": "dword", + "value": 16830261 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1166" + }, + "STRREF": { + "type": "dword", + "value": 16825704 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr803" + }, + "STRREF": { + "type": "dword", + "value": 16825704 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_184" + }, + "STRREF": { + "type": "dword", + "value": 865 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_461" + }, + "STRREF": { + "type": "dword", + "value": 3869 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_462" + }, + "STRREF": { + "type": "dword", + "value": 3871 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_187" + }, + "STRREF": { + "type": "dword", + "value": 866 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_188" + }, + "STRREF": { + "type": "dword", + "value": 867 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_189" + }, + "STRREF": { + "type": "dword", + "value": 868 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_190" + }, + "STRREF": { + "type": "dword", + "value": 869 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1164" + }, + "STRREF": { + "type": "dword", + "value": 16823538 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr211" + }, + "STRREF": { + "type": "dword", + "value": 16823538 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_977" + }, + "STRREF": { + "type": "dword", + "value": 16789920 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Morality Undone" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr519" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Morality Undone" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr506" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1218" + }, + "STRREF": { + "type": "dword", + "value": 16829568 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_197" + }, + "STRREF": { + "type": "dword", + "value": 872 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1053" + }, + "STRREF": { + "type": "dword", + "value": 16830345 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr702" + }, + "STRREF": { + "type": "dword", + "value": 16830345 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_198" + }, + "STRREF": { + "type": "dword", + "value": 873 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1130" + }, + "STRREF": { + "type": "dword", + "value": 16825355 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_natav" + }, + "STRREF": { + "type": "dword", + "value": 16825355 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_200" + }, + "STRREF": { + "type": "dword", + "value": 874 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_903" + }, + "STRREF": { + "type": "dword", + "value": 16829198 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Bloat" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr316" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Bloat" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr316" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_905" + }, + "STRREF": { + "type": "dword", + "value": 16829202 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Burst" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr514" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Burst" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr514" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_907" + }, + "STRREF": { + "type": "dword", + "value": 16829206 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Cyst" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr222" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Cyst" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr222" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_904" + }, + "STRREF": { + "type": "dword", + "value": 16829200 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Domination" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr419" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Domination" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr419" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_906" + }, + "STRREF": { + "type": "dword", + "value": 16829204 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Empowerment" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr811" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Empowerment" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr811" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_909" + }, + "STRREF": { + "type": "dword", + "value": 16829210 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Eruption" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr616" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Eruption" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr616" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_908" + }, + "STRREF": { + "type": "dword", + "value": 16829208 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Termination" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr913" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Necrotic Termination" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr913" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_910" + }, + "STRREF": { + "type": "dword", + "value": 16829212 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_314" + }, + "STRREF": { + "type": "dword", + "value": 6336 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_201" + }, + "STRREF": { + "type": "dword", + "value": 875 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_316" + }, + "STRREF": { + "type": "dword", + "value": 6337 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_204" + }, + "STRREF": { + "type": "dword", + "value": 876 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Night's Caress" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr515" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Night's Caress" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr515" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_913" + }, + "STRREF": { + "type": "dword", + "value": 16829254 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_943" + }, + "STRREF": { + "type": "dword", + "value": 16829182 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1106" + }, + "STRREF": { + "type": "dword", + "value": 16830441 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr108" + }, + "STRREF": { + "type": "dword", + "value": 16830441 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1109" + }, + "STRREF": { + "type": "dword", + "value": 16830443 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr705" + }, + "STRREF": { + "type": "dword", + "value": 16830443 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1452" + }, + "STRREF": { + "type": "dword", + "value": 16826985 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1434" + }, + "STRREF": { + "type": "dword", + "value": 16832075 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_351" + }, + "STRREF": { + "type": "dword", + "value": 283 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1355" + }, + "STRREF": { + "type": "dword", + "value": 16832243 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1358" + }, + "STRREF": { + "type": "dword", + "value": 16832251 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Otiluke's Resilient Sphere" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr420" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1344" + }, + "STRREF": { + "type": "dword", + "value": 16829196 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_369" + }, + "STRREF": { + "type": "dword", + "value": 1774 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_291" + }, + "STRREF": { + "type": "dword", + "value": 5370 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1081" + }, + "STRREF": { + "type": "dword", + "value": 16830394 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr402" + }, + "STRREF": { + "type": "dword", + "value": 16830394 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1147" + }, + "STRREF": { + "type": "dword", + "value": 16826310 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr703" + }, + "STRREF": { + "type": "dword", + "value": 16826310 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr802" + }, + "STRREF": { + "type": "dword", + "value": 16826310 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_205" + }, + "STRREF": { + "type": "dword", + "value": 877 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Phoenix Fire" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr707" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1261" + }, + "STRREF": { + "type": "dword", + "value": 16829636 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1446" + }, + "STRREF": { + "type": "dword", + "value": 16847584 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_382" + }, + "STRREF": { + "type": "dword", + "value": 2667 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_206" + }, + "STRREF": { + "type": "dword", + "value": 878 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_207" + }, + "STRREF": { + "type": "dword", + "value": 879 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1437" + }, + "STRREF": { + "type": "dword", + "value": 16827427 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_208" + }, + "STRREF": { + "type": "dword", + "value": 880 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Power Leech" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr520" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1219" + }, + "STRREF": { + "type": "dword", + "value": 16829570 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_978" + }, + "STRREF": { + "type": "dword", + "value": 16789922 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_209" + }, + "STRREF": { + "type": "dword", + "value": 881 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_210" + }, + "STRREF": { + "type": "dword", + "value": 882 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1145" + }, + "STRREF": { + "type": "dword", + "value": 16826308 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr602" + }, + "STRREF": { + "type": "dword", + "value": 16826308 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_211" + }, + "STRREF": { + "type": "dword", + "value": 883 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_212" + }, + "STRREF": { + "type": "dword", + "value": 884 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1357" + }, + "STRREF": { + "type": "dword", + "value": 16832247 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1362" + }, + "STRREF": { + "type": "dword", + "value": 16832259 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_213" + }, + "STRREF": { + "type": "dword", + "value": 885 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1360" + }, + "STRREF": { + "type": "dword", + "value": 16832255 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1296" + }, + "STRREF": { + "type": "dword", + "value": 16825808 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Protection From Arrows" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr226" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_215" + }, + "STRREF": { + "type": "dword", + "value": 886 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Protection from Chaos" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr111" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_216" + }, + "STRREF": { + "type": "dword", + "value": 887 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_219" + }, + "STRREF": { + "type": "dword", + "value": 888 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Protection from Evil" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr112" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_221" + }, + "STRREF": { + "type": "dword", + "value": 889 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Protection from Good" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr113" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_223" + }, + "STRREF": { + "type": "dword", + "value": 890 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Protection from Law" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr114" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_224" + }, + "STRREF": { + "type": "dword", + "value": 891 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1348" + }, + "STRREF": { + "type": "dword", + "value": 16832229 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_356" + }, + "STRREF": { + "type": "dword", + "value": 1773 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rain of Black Tulips" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr904" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1284" + }, + "STRREF": { + "type": "dword", + "value": 16829682 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rain of Embers" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr708" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1262" + }, + "STRREF": { + "type": "dword", + "value": 16829638 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rain of Roses" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr905" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1285" + }, + "STRREF": { + "type": "dword", + "value": 16829684 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1336" + }, + "STRREF": { + "type": "dword", + "value": 16832090 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_944" + }, + "STRREF": { + "type": "dword", + "value": 16829184 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_226" + }, + "STRREF": { + "type": "dword", + "value": 892 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rapture of Rupture" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr705" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1220" + }, + "STRREF": { + "type": "dword", + "value": 16829572 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_227" + }, + "STRREF": { + "type": "dword", + "value": 893 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1326" + }, + "STRREF": { + "type": "dword", + "value": 16827582 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_228" + }, + "STRREF": { + "type": "dword", + "value": 894 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ray of Hope" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr131" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ray of Hope" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr127" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1286" + }, + "STRREF": { + "type": "dword", + "value": 16829686 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_957" + }, + "STRREF": { + "type": "dword", + "value": 16823166 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Reality Blind" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr331" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1221" + }, + "STRREF": { + "type": "dword", + "value": 16829574 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1047" + }, + "STRREF": { + "type": "dword", + "value": 16830286 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr401" + }, + "STRREF": { + "type": "dword", + "value": 16830286 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Red Fester" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr310" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1222" + }, + "STRREF": { + "type": "dword", + "value": 16829576 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_940" + }, + "STRREF": { + "type": "dword", + "value": 16829176 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_323" + }, + "STRREF": { + "type": "dword", + "value": 6340 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1465" + }, + "STRREF": { + "type": "dword", + "value": 16990482 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_874" + }, + "STRREF": { + "type": "dword", + "value": 16990512 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_865" + }, + "STRREF": { + "type": "dword", + "value": 16990497 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_868" + }, + "STRREF": { + "type": "dword", + "value": 16990502 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1462" + }, + "STRREF": { + "type": "dword", + "value": 16990476 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_871" + }, + "STRREF": { + "type": "dword", + "value": 16990507 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Regroup" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr325" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1317" + }, + "STRREF": { + "type": "dword", + "value": 16826681 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_229" + }, + "STRREF": { + "type": "dword", + "value": 895 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_230" + }, + "STRREF": { + "type": "dword", + "value": 896 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_231" + }, + "STRREF": { + "type": "dword", + "value": 897 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_232" + }, + "STRREF": { + "type": "dword", + "value": 898 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_233" + }, + "STRREF": { + "type": "dword", + "value": 899 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1300" + }, + "STRREF": { + "type": "dword", + "value": 16825816 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1426" + }, + "STRREF": { + "type": "dword", + "value": 16828340 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_234" + }, + "STRREF": { + "type": "dword", + "value": 900 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_236" + }, + "STRREF": { + "type": "dword", + "value": 901 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Resonating Resistance" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr521" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Resonating Resistance" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr508" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1223" + }, + "STRREF": { + "type": "dword", + "value": 16829578 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_238" + }, + "STRREF": { + "type": "dword", + "value": 902 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_239" + }, + "STRREF": { + "type": "dword", + "value": 903 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1423" + }, + "STRREF": { + "type": "dword", + "value": 16828323 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1046" + }, + "STRREF": { + "type": "dword", + "value": 16830284 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr502" + }, + "STRREF": { + "type": "dword", + "value": 16830284 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Righteous Smite" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr709" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1287" + }, + "STRREF": { + "type": "dword", + "value": 16829688 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1353" + }, + "STRREF": { + "type": "dword", + "value": 16832239 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rotting Curse of Urfestra" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr311" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1224" + }, + "STRREF": { + "type": "dword", + "value": 16829580 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rouse" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr117" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1318" + }, + "STRREF": { + "type": "dword", + "value": 16826683 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_240" + }, + "STRREF": { + "type": "dword", + "value": 904 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1330" + }, + "STRREF": { + "type": "dword", + "value": 16832078 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1421" + }, + "STRREF": { + "type": "dword", + "value": 905 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1361" + }, + "STRREF": { + "type": "dword", + "value": 16832257 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_464" + }, + "STRREF": { + "type": "dword", + "value": 3879 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1325" + }, + "STRREF": { + "type": "dword", + "value": 16827579 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1438" + }, + "STRREF": { + "type": "dword", + "value": 16826972 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_242" + }, + "STRREF": { + "type": "dword", + "value": 906 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_243" + }, + "STRREF": { + "type": "dword", + "value": 907 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Seeking Ray" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr230" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1319" + }, + "STRREF": { + "type": "dword", + "value": 16826685 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Seething Eyebane" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr118" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1225" + }, + "STRREF": { + "type": "dword", + "value": 16829582 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1453" + }, + "STRREF": { + "type": "dword", + "value": 16826987 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1386" + }, + "STRREF": { + "type": "dword", + "value": 16847286 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1033" + }, + "STRREF": { + "type": "dword", + "value": 16830265 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr303" + }, + "STRREF": { + "type": "dword", + "value": 16830265 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_244" + }, + "STRREF": { + "type": "dword", + "value": 908 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1377" + }, + "STRREF": { + "type": "dword", + "value": 16829354 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_245" + }, + "STRREF": { + "type": "dword", + "value": 909 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_246" + }, + "STRREF": { + "type": "dword", + "value": 910 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1094" + }, + "STRREF": { + "type": "dword", + "value": 16830431 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr208" + }, + "STRREF": { + "type": "dword", + "value": 16830431 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_247" + }, + "STRREF": { + "type": "dword", + "value": 911 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_469" + }, + "STRREF": { + "type": "dword", + "value": 3739 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_348" + }, + "STRREF": { + "type": "dword", + "value": 57 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_381" + }, + "STRREF": { + "type": "dword", + "value": 2666 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1454" + }, + "STRREF": { + "type": "dword", + "value": 16832367 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_966" + }, + "STRREF": { + "type": "dword", + "value": 16789914 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shivering Touch" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr333" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shivering Touch" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr317" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1252" + }, + "STRREF": { + "type": "dword", + "value": 16829618 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1324" + }, + "STRREF": { + "type": "dword", + "value": 16827576 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_934" + }, + "STRREF": { + "type": "dword", + "value": 16828892 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shriveling" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr235" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shriveling" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr312" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1226" + }, + "STRREF": { + "type": "dword", + "value": 16829584 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sicken Evil" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr509" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1263" + }, + "STRREF": { + "type": "dword", + "value": 16829640 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_249" + }, + "STRREF": { + "type": "dword", + "value": 913 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1110" + }, + "STRREF": { + "type": "dword", + "value": 16830445 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr410" + }, + "STRREF": { + "type": "dword", + "value": 16830445 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1085" + }, + "STRREF": { + "type": "dword", + "value": 16830398 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr303" + }, + "STRREF": { + "type": "dword", + "value": 16830398 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Slashing Dispel" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr428" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1320" + }, + "STRREF": { + "type": "dword", + "value": 16826687 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_250" + }, + "STRREF": { + "type": "dword", + "value": 914 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_251" + }, + "STRREF": { + "type": "dword", + "value": 915 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1354" + }, + "STRREF": { + "type": "dword", + "value": 16832241 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_253" + }, + "STRREF": { + "type": "dword", + "value": 916 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1378" + }, + "STRREF": { + "type": "dword", + "value": 16829356 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1127" + }, + "STRREF": { + "type": "dword", + "value": 16826070 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_majmiss" + }, + "STRREF": { + "type": "dword", + "value": 16826070 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1112" + }, + "STRREF": { + "type": "dword", + "value": 16830447 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr109" + }, + "STRREF": { + "type": "dword", + "value": 16830447 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1096" + }, + "STRREF": { + "type": "dword", + "value": 16830433 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Snilloc's Snowball Swarm" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr209" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Solid Fog" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr424" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1304" + }, + "STRREF": { + "type": "dword", + "value": 16825824 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1443" + }, + "STRREF": { + "type": "dword", + "value": 16847578 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Song of Festering Death" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr236" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1227" + }, + "STRREF": { + "type": "dword", + "value": 16829586 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1008" + }, + "STRREF": { + "type": "dword", + "value": 16830224 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr406" + }, + "STRREF": { + "type": "dword", + "value": 16830224 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sonic Shield" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr326" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1321" + }, + "STRREF": { + "type": "dword", + "value": 16826689 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sorrow" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr124" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sorrow" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr119" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1228" + }, + "STRREF": { + "type": "dword", + "value": 16829588 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1114" + }, + "STRREF": { + "type": "dword", + "value": 16830449 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr504" + }, + "STRREF": { + "type": "dword", + "value": 16830449 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_254" + }, + "STRREF": { + "type": "dword", + "value": 917 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_877" + }, + "STRREF": { + "type": "dword", + "value": 16990517 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_257" + }, + "STRREF": { + "type": "dword", + "value": 919 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_255" + }, + "STRREF": { + "type": "dword", + "value": 918 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_928" + }, + "STRREF": { + "type": "dword", + "value": 16828817 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1379" + }, + "STRREF": { + "type": "dword", + "value": 16829358 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1115" + }, + "STRREF": { + "type": "dword", + "value": 16830451 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr902" + }, + "STRREF": { + "type": "dword", + "value": 16830451 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1120" + }, + "STRREF": { + "type": "dword", + "value": 16830459 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr307" + }, + "STRREF": { + "type": "dword", + "value": 16830459 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_385" + }, + "STRREF": { + "type": "dword", + "value": 2671 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_880" + }, + "STRREF": { + "type": "dword", + "value": 16990522 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_881" + }, + "STRREF": { + "type": "dword", + "value": 16990525 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spores of the Vrock" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr210" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1230" + }, + "STRREF": { + "type": "dword", + "value": 16829590 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Starmantle" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr622" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1288" + }, + "STRREF": { + "type": "dword", + "value": 16829690 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_259" + }, + "STRREF": { + "type": "dword", + "value": 921 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_465" + }, + "STRREF": { + "type": "dword", + "value": 2767 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_399" + }, + "STRREF": { + "type": "dword", + "value": 3046 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_482" + }, + "STRREF": { + "type": "dword", + "value": 3778 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_260" + }, + "STRREF": { + "type": "dword", + "value": 922 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Stop Heart" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr522" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Stop Heart" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr409" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1232" + }, + "STRREF": { + "type": "dword", + "value": 16829594 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Storm of Shards" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr604" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1264" + }, + "STRREF": { + "type": "dword", + "value": 16829642 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_261" + }, + "STRREF": { + "type": "dword", + "value": 923 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Stunning Screech" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr332" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1231" + }, + "STRREF": { + "type": "dword", + "value": 16829592 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_262" + }, + "STRREF": { + "type": "dword", + "value": 924 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_264" + }, + "STRREF": { + "type": "dword", + "value": 925 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_265" + }, + "STRREF": { + "type": "dword", + "value": 926 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_266" + }, + "STRREF": { + "type": "dword", + "value": 927 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_267" + }, + "STRREF": { + "type": "dword", + "value": 932 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_268" + }, + "STRREF": { + "type": "dword", + "value": 928 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_269" + }, + "STRREF": { + "type": "dword", + "value": 929 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_270" + }, + "STRREF": { + "type": "dword", + "value": 930 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_271" + }, + "STRREF": { + "type": "dword", + "value": 931 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1470" + }, + "STRREF": { + "type": "dword", + "value": 16976216 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1473" + }, + "STRREF": { + "type": "dword", + "value": 16976230 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1478" + }, + "STRREF": { + "type": "dword", + "value": 16976230 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1476" + }, + "STRREF": { + "type": "dword", + "value": 16976244 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1481" + }, + "STRREF": { + "type": "dword", + "value": 16976244 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1479" + }, + "STRREF": { + "type": "dword", + "value": 16976258 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1484" + }, + "STRREF": { + "type": "dword", + "value": 16976258 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1494" + }, + "STRREF": { + "type": "dword", + "value": 16976328 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1499" + }, + "STRREF": { + "type": "dword", + "value": 16976328 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1482" + }, + "STRREF": { + "type": "dword", + "value": 16976272 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1487" + }, + "STRREF": { + "type": "dword", + "value": 16976272 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1485" + }, + "STRREF": { + "type": "dword", + "value": 16976286 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1490" + }, + "STRREF": { + "type": "dword", + "value": 16976286 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1488" + }, + "STRREF": { + "type": "dword", + "value": 16976300 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1493" + }, + "STRREF": { + "type": "dword", + "value": 16976300 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1491" + }, + "STRREF": { + "type": "dword", + "value": 16976314 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1496" + }, + "STRREF": { + "type": "dword", + "value": 16976314 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1417" + }, + "STRREF": { + "type": "dword", + "value": 16847422 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1418" + }, + "STRREF": { + "type": "dword", + "value": 16847424 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1419" + }, + "STRREF": { + "type": "dword", + "value": 16847426 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1420" + }, + "STRREF": { + "type": "dword", + "value": 16847428 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1416" + }, + "STRREF": { + "type": "dword", + "value": 16847420 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_272" + }, + "STRREF": { + "type": "dword", + "value": 933 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_358" + }, + "STRREF": { + "type": "dword", + "value": 385 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sunmantle" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr411" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1265" + }, + "STRREF": { + "type": "dword", + "value": 16829644 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_993" + }, + "STRREF": { + "type": "dword", + "value": 16790121 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sure Strike" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr231" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1322" + }, + "STRREF": { + "type": "dword", + "value": 16826691 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1433" + }, + "STRREF": { + "type": "dword", + "value": 16832072 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_967" + }, + "STRREF": { + "type": "dword", + "value": 16790080 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_968" + }, + "STRREF": { + "type": "dword", + "value": 16790083 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_970" + }, + "STRREF": { + "type": "dword", + "value": 16790086 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_971" + }, + "STRREF": { + "type": "dword", + "value": 16790089 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_972" + }, + "STRREF": { + "type": "dword", + "value": 16790092 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_973" + }, + "STRREF": { + "type": "dword", + "value": 16790095 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_969" + }, + "STRREF": { + "type": "dword", + "value": 16790098 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_974" + }, + "STRREF": { + "type": "dword", + "value": 16790101 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_388" + }, + "STRREF": { + "type": "dword", + "value": 2678 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1169" + }, + "STRREF": { + "type": "dword", + "value": 16825689 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr504" + }, + "STRREF": { + "type": "dword", + "value": 16825689 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1151" + }, + "STRREF": { + "type": "dword", + "value": 16825707 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr903" + }, + "STRREF": { + "type": "dword", + "value": 16825707 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_948" + }, + "STRREF": { + "type": "dword", + "value": 16789748 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_273" + }, + "STRREF": { + "type": "dword", + "value": 934 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Thousand Needles" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr603" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1233" + }, + "STRREF": { + "type": "dword", + "value": 16829596 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_426" + }, + "STRREF": { + "type": "dword", + "value": 8942 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_274" + }, + "STRREF": { + "type": "dword", + "value": 935 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tomb of Light" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr718" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tomb of Light" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr711" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1289" + }, + "STRREF": { + "type": "dword", + "value": 16829692 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tongue of Baalzebul" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr120" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1234" + }, + "STRREF": { + "type": "dword", + "value": 16829598 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_884" + }, + "STRREF": { + "type": "dword", + "value": 16990530 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Touch of Idiocy" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr227" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1297" + }, + "STRREF": { + "type": "dword", + "value": 16825810 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Touch of Juiblex" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr313" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1235" + }, + "STRREF": { + "type": "dword", + "value": 16829600 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1337" + }, + "STRREF": { + "type": "dword", + "value": 16832092 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_991" + }, + "STRREF": { + "type": "dword", + "value": 16789929 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1387" + }, + "STRREF": { + "type": "dword", + "value": 16847288 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_951" + }, + "STRREF": { + "type": "dword", + "value": 16789755 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1428" + }, + "STRREF": { + "type": "dword", + "value": 16828344 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_275" + }, + "STRREF": { + "type": "dword", + "value": 936 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_346" + }, + "STRREF": { + "type": "dword", + "value": 55 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Twilight Luck" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr123" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1266" + }, + "STRREF": { + "type": "dword", + "value": 16829646 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_305" + }, + "STRREF": { + "type": "dword", + "value": 6331 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_466" + }, + "STRREF": { + "type": "dword", + "value": 2796 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_375" + }, + "STRREF": { + "type": "dword", + "value": 2365 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1161" + }, + "STRREF": { + "type": "dword", + "value": 16831996 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Undetectable Alignment" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr204" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unheavened" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr237" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1236" + }, + "STRREF": { + "type": "dword", + "value": 16829602 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_982" + }, + "STRREF": { + "type": "dword", + "value": 16831998 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unliving Weapon" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr314" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1237" + }, + "STRREF": { + "type": "dword", + "value": 16829604 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1131" + }, + "STRREF": { + "type": "dword", + "value": 16825359 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_unyield" + }, + "STRREF": { + "type": "dword", + "value": 16825359 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Utterdark" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr916" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1238" + }, + "STRREF": { + "type": "dword", + "value": 16829606 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_277" + }, + "STRREF": { + "type": "dword", + "value": 938 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_890" + }, + "STRREF": { + "type": "dword", + "value": 16790128 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_896" + }, + "STRREF": { + "type": "dword", + "value": 16790140 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1445" + }, + "STRREF": { + "type": "dword", + "value": 16847582 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_467" + }, + "STRREF": { + "type": "dword", + "value": 3881 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_278" + }, + "STRREF": { + "type": "dword", + "value": 939 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1122" + }, + "STRREF": { + "type": "dword", + "value": 16830461 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_sparscr411" + }, + "STRREF": { + "type": "dword", + "value": 16830461 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1432" + }, + "STRREF": { + "type": "dword", + "value": 16832069 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_279" + }, + "STRREF": { + "type": "dword", + "value": 940 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_280" + }, + "STRREF": { + "type": "dword", + "value": 941 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1129" + }, + "STRREF": { + "type": "dword", + "value": 16825361 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "splscrl_gwdm" + }, + "STRREF": { + "type": "dword", + "value": 16825361 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_322" + }, + "STRREF": { + "type": "dword", + "value": 6339 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1388" + }, + "STRREF": { + "type": "dword", + "value": 16847290 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wave of Grief" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr238" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wave of Grief" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr211" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1239" + }, + "STRREF": { + "type": "dword", + "value": 16829608 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wave of Pain" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr619" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1240" + }, + "STRREF": { + "type": "dword", + "value": 16829610 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1359" + }, + "STRREF": { + "type": "dword", + "value": 16832253 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1327" + }, + "STRREF": { + "type": "dword", + "value": 16827585 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_965" + }, + "STRREF": { + "type": "dword", + "value": 16789911 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_281" + }, + "STRREF": { + "type": "dword", + "value": 942 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_282" + }, + "STRREF": { + "type": "dword", + "value": 943 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1351" + }, + "STRREF": { + "type": "dword", + "value": 16832235 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_950" + }, + "STRREF": { + "type": "dword", + "value": 16789752 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1123" + }, + "STRREF": { + "type": "dword", + "value": 16830463 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr702" + }, + "STRREF": { + "type": "dword", + "value": 16830463 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1156" + }, + "STRREF": { + "type": "dword", + "value": 16832008 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Word of Chaos" + }, + "RESREF": { + "type": "resref", + "value": "sp_it_spdvscr707" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_990" + }, + "STRREF": { + "type": "dword", + "value": 16789970 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_372" + }, + "STRREF": { + "type": "dword", + "value": 2362 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wrack" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_sparscr434" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wrack" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr315" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1241" + }, + "STRREF": { + "type": "dword", + "value": 16829612 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wretched Blight" + }, + "RESREF": { + "type": "resref", + "value": "nw_it_spdvscr706" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_scr_1242" + }, + "STRREF": { + "type": "dword", + "value": 16829614 + } + } + ] + }, "STRREF": { "type": "dword", "value": 6754 @@ -1564,6 +21360,28 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_pnp_familiar" + }, + "STRREF": { + "type": "dword", + "value": 42542 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC_CRAFT_TOKEN" + }, + "RESREF": { + "type": "resref", + "value": "prc_craft_token" + } + }, { "__struct_id": 0, "NAME": { @@ -1596,6 +21414,2151 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Black Pearl" + }, + "RESREF": { + "type": "resref", + "value": "mc_blackpearl" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Black stick smeared with Blood" + }, + "RESREF": { + "type": "resref", + "value": "mc_blckstickbld" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Black Tulip" + }, + "RESREF": { + "type": "resref", + "value": "mc_blacktulip" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Bone" + }, + "RESREF": { + "type": "resref", + "value": "mc_bone" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Corpse" + }, + "RESREF": { + "type": "resref", + "value": "mc_corpse" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Corrupted Artifact of Good" + }, + "RESREF": { + "type": "resref", + "value": "mc_corrartofgood" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Diamond" + }, + "RESREF": { + "type": "resref", + "value": "mc_diamond" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Dollop" + }, + "RESREF": { + "type": "resref", + "value": "mc_dollop" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Feather" + }, + "RESREF": { + "type": "resref", + "value": "mc_feather" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Hand" + }, + "RESREF": { + "type": "resref", + "value": "mc_hand" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A handful of copper and iron pellets" + }, + "RESREF": { + "type": "resref", + "value": "mc_pellets" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Leather Strap" + }, + "RESREF": { + "type": "resref", + "value": "mc_leatherstrap" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A loop of copper wire and a magnet" + }, + "RESREF": { + "type": "resref", + "value": "mc_copperwire" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Multicolored Paper Disk" + }, + "RESREF": { + "type": "resref", + "value": "mc_paperdisk" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Pebble" + }, + "RESREF": { + "type": "resref", + "value": "mc_pebble" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A piece of a Tentacle!" + }, + "RESREF": { + "type": "resref", + "value": "mc_tentacle" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A piece of Jade" + }, + "RESREF": { + "type": "resref", + "value": "mc_jade" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A piece of leather" + }, + "RESREF": { + "type": "resref", + "value": "mc_pieceofleathr" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Piece of Straw" + }, + "RESREF": { + "type": "resref", + "value": "mc_straw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Piece of Sunstone" + }, + "RESREF": { + "type": "resref", + "value": "mc_sunstone" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Pinch of Dust" + }, + "RESREF": { + "type": "resref", + "value": "mc_pinchofdust" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Pouch filled with Dead Flies" + }, + "RESREF": { + "type": "resref", + "value": "mc_deadflies" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Silver mirror" + }, + "RESREF": { + "type": "resref", + "value": "mc_silvermirror" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Small Crystal Prism" + }, + "RESREF": { + "type": "resref", + "value": "mc_crystalprism" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Small Heart" + }, + "RESREF": { + "type": "resref", + "value": "mc_smallheart" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Soul" + }, + "RESREF": { + "type": "resref", + "value": "mc_soul" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Sponge" + }, + "RESREF": { + "type": "resref", + "value": "mc_sponge" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Tongue..." + }, + "RESREF": { + "type": "resref", + "value": "mc_tongue" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Adder's Stomach" + }, + "RESREF": { + "type": "resref", + "value": "mc_adderstomach" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Amber Dust" + }, + "RESREF": { + "type": "resref", + "value": "mc_amberdust" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Amber Sphere" + }, + "RESREF": { + "type": "resref", + "value": "mc_ambersphere" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "An Eagle's Feather" + }, + "RESREF": { + "type": "resref", + "value": "mc_eaglefeather" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "An eye of a Hawk" + }, + "RESREF": { + "type": "resref", + "value": "mc_eyeofahawk" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "An Onion" + }, + "RESREF": { + "type": "resref", + "value": "mc_onion" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison023" + }, + "STRREF": { + "type": "dword", + "value": 4669 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Astral Construct Claw" + }, + "RESREF": { + "type": "resref", + "value": "psi_ast_con_claw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Astral Construct Properties" + }, + "RESREF": { + "type": "resref", + "value": "psi_ast_con_skin" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Astral Construct Slam" + }, + "RESREF": { + "type": "resref", + "value": "psi_ast_con_slam" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison135" + }, + "STRREF": { + "type": "dword", + "value": 16826278 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat fur" + }, + "RESREF": { + "type": "resref", + "value": "mc_batfur" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bat Guano" + }, + "RESREF": { + "type": "resref", + "value": "mc_batguano" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison029" + }, + "STRREF": { + "type": "dword", + "value": 4675 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison011" + }, + "STRREF": { + "type": "dword", + "value": 4657 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison019" + }, + "STRREF": { + "type": "dword", + "value": 4665 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison004" + }, + "STRREF": { + "type": "dword", + "value": 4650 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison008" + }, + "STRREF": { + "type": "dword", + "value": 4654 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bone Dust" + }, + "RESREF": { + "type": "resref", + "value": "mc_bonedust" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bralan Hide" + }, + "RESREF": { + "type": "resref", + "value": "bralanhide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bralani Longbow" + }, + "RESREF": { + "type": "resref", + "value": "bralanilongbow" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bralani Scimitar" + }, + "RESREF": { + "type": "resref", + "value": "bralaniscimitar" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bull hair" + }, + "RESREF": { + "type": "resref", + "value": "mc_bullhair" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison142" + }, + "STRREF": { + "type": "dword", + "value": 16826285 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison027" + }, + "STRREF": { + "type": "dword", + "value": 4673 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Can Shift Check" + }, + "RESREF": { + "type": "resref", + "value": "pnp_shft_tstpkup" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison018" + }, + "STRREF": { + "type": "dword", + "value": 4664 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Carved Ram's Horn" + }, + "RESREF": { + "type": "resref", + "value": "mc_ramshorn" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cat Fur" + }, + "RESREF": { + "type": "resref", + "value": "mc_catfur" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison143" + }, + "STRREF": { + "type": "dword", + "value": 16826288 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison028" + }, + "STRREF": { + "type": "dword", + "value": 4674 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Charcoal" + }, + "RESREF": { + "type": "resref", + "value": "mc_charcoal" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Coal" + }, + "RESREF": { + "type": "resref", + "value": "mc_coal" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cocoon" + }, + "RESREF": { + "type": "resref", + "value": "mc_cocoon" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Colored Sand" + }, + "RESREF": { + "type": "resref", + "value": "mc_coloredsand" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison127" + }, + "STRREF": { + "type": "dword", + "value": 16826270 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison133" + }, + "STRREF": { + "type": "dword", + "value": 16826276 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison040" + }, + "STRREF": { + "type": "dword", + "value": 4686 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crown of Ivy leaves" + }, + "RESREF": { + "type": "resref", + "value": "mc_crownofivy" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crystal Bead" + }, + "RESREF": { + "type": "resref", + "value": "mc_crystalbead" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crystal cone" + }, + "RESREF": { + "type": "resref", + "value": "mc_crystalcone" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crystal rod" + }, + "RESREF": { + "type": "resref", + "value": "mc_crystalrod" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cured fur" + }, + "RESREF": { + "type": "resref", + "value": "mc_curedfur" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison025" + }, + "STRREF": { + "type": "dword", + "value": 4671 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison012" + }, + "STRREF": { + "type": "dword", + "value": 4658 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Diamond Dust" + }, + "RESREF": { + "type": "resref", + "value": "mc_diamonddust" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison015" + }, + "STRREF": { + "type": "dword", + "value": 4661 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dretch Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_dretchhide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Earth" + }, + "RESREF": { + "type": "resref", + "value": "mc_earth" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Egg shell" + }, + "RESREF": { + "type": "resref", + "value": "mc_eggshell" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Shifter Powers" + }, + "RESREF": { + "type": "resref", + "value": "epicshifterpower" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison134" + }, + "STRREF": { + "type": "dword", + "value": 16826277 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eyelashes" + }, + "RESREF": { + "type": "resref", + "value": "mc_eyelashes" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Feather of a Hummingbird" + }, + "RESREF": { + "type": "resref", + "value": "mc_hummingbirdf" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fireflies" + }, + "RESREF": { + "type": "resref", + "value": "mc_fireflies" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Flint" + }, + "RESREF": { + "type": "resref", + "value": "mc_flint" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fox's Hair" + }, + "RESREF": { + "type": "resref", + "value": "mc_foxhair" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fur" + }, + "RESREF": { + "type": "resref", + "value": "mc_fur" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison126" + }, + "STRREF": { + "type": "dword", + "value": 16826269 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison132" + }, + "STRREF": { + "type": "dword", + "value": 16826275 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison039" + }, + "STRREF": { + "type": "dword", + "value": 4685 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ghoul Clothing" + }, + "RESREF": { + "type": "resref", + "value": "mc_ghoulclothing" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison009" + }, + "STRREF": { + "type": "dword", + "value": 4655 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gob of Beeswax" + }, + "RESREF": { + "type": "resref", + "value": "mc_beeswax" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison100" + }, + "STRREF": { + "type": "dword", + "value": 16826286 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Granite" + }, + "RESREF": { + "type": "resref", + "value": "mc_granite" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Grasshopper's hind leg" + }, + "RESREF": { + "type": "resref", + "value": "mc_grasshopprhlg" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Grave dirt" + }, + "RESREF": { + "type": "resref", + "value": "mc_gravedirt" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison003" + }, + "STRREF": { + "type": "dword", + "value": 4649 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ground Mica" + }, + "RESREF": { + "type": "resref", + "value": "mc_groundmica" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gum Arabic" + }, + "RESREF": { + "type": "resref", + "value": "mc_gumarabic" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Handful of black ribbons" + }, + "RESREF": { + "type": "resref", + "value": "mc_blackribbons" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Herbs" + }, + "RESREF": { + "type": "resref", + "value": "mc_herbs" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "HideToken" + }, + "RESREF": { + "type": "resref", + "value": "hidetoken" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Holy Arrow" + }, + "RESREF": { + "type": "resref", + "value": "holyarrow" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Holy Parchment" + }, + "RESREF": { + "type": "resref", + "value": "mc_holyparchment" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Horse Hair" + }, + "RESREF": { + "type": "resref", + "value": "mc_horsehair" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison125" + }, + "STRREF": { + "type": "dword", + "value": 16826268 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison131" + }, + "STRREF": { + "type": "dword", + "value": 16826274 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison038" + }, + "STRREF": { + "type": "dword", + "value": 4684 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison021" + }, + "STRREF": { + "type": "dword", + "value": 4667 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Incense" + }, + "RESREF": { + "type": "resref", + "value": "mc_incense" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Incense Sprinkled with diamond dust" + }, + "RESREF": { + "type": "resref", + "value": "mc_dustincense" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Iron Bars Array" + }, + "RESREF": { + "type": "resref", + "value": "mc_ironbarsarray" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison141" + }, + "STRREF": { + "type": "dword", + "value": 16826284 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ivory" + }, + "RESREF": { + "type": "resref", + "value": "mc_ivory" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison144" + }, + "STRREF": { + "type": "dword", + "value": 16826290 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lamasu Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_sum_lamhide" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison124" + }, + "STRREF": { + "type": "dword", + "value": 16826267 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison006" + }, + "STRREF": { + "type": "dword", + "value": 4652 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison037" + }, + "STRREF": { + "type": "dword", + "value": 4683 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lemure Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_lemurhide" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison024" + }, + "STRREF": { + "type": "dword", + "value": 4670 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Licorice Root" + }, + "RESREF": { + "type": "resref", + "value": "mc_licoriceroot" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lime" + }, + "RESREF": { + "type": "resref", + "value": "mc_lime" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Listener Hide" + }, + "RESREF": { + "type": "resref", + "value": "listenerhide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lodestone" + }, + "RESREF": { + "type": "resref", + "value": "mc_lodestone" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison013" + }, + "STRREF": { + "type": "dword", + "value": 4659 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Maneuver Token" + }, + "RESREF": { + "type": "resref", + "value": "prc_movetoken" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Manifestation Token" + }, + "RESREF": { + "type": "resref", + "value": "prc_maniftoken" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison123" + }, + "STRREF": { + "type": "dword", + "value": 16826266 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison130" + }, + "STRREF": { + "type": "dword", + "value": 16826273 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison036" + }, + "STRREF": { + "type": "dword", + "value": 4682 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Medium Viper Venom" + }, + "RESREF": { + "type": "resref", + "value": "2dapoison147" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Mercury" + }, + "RESREF": { + "type": "resref", + "value": "mc_mercury" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_sk_mblade_bs" + }, + "STRREF": { + "type": "dword", + "value": 16824442 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_sk_mblade_ls" + }, + "STRREF": { + "type": "dword", + "value": 16824442 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_sk_mblade_ss" + }, + "STRREF": { + "type": "dword", + "value": 16824442 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_sk_mblade_th" + }, + "STRREF": { + "type": "dword", + "value": 16824442 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Minerals" + }, + "RESREF": { + "type": "resref", + "value": "mc_minerals" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Miniature Brass Hearing Trumpet" + }, + "RESREF": { + "type": "resref", + "value": "mc_brasstrumpet" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Miniature Cloak" + }, + "RESREF": { + "type": "resref", + "value": "mc_mincloak" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Miniature Platinium Sword" + }, + "RESREF": { + "type": "resref", + "value": "mc_minplatsword" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Miniature Platinum Shield" + }, + "RESREF": { + "type": "resref", + "value": "mc_minplatshield" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison140" + }, + "STRREF": { + "type": "dword", + "value": 16826283 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Molasses " + }, + "RESREF": { + "type": "resref", + "value": "mc_molasses" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nail" + }, + "RESREF": { + "type": "resref", + "value": "mc_nail" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Needles" + }, + "RESREF": { + "type": "resref", + "value": "mc_needles" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison000" + }, + "STRREF": { + "type": "dword", + "value": 4646 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison014" + }, + "STRREF": { + "type": "dword", + "value": 4660 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nutshells" + }, + "RESREF": { + "type": "resref", + "value": "mc_nutshells" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison020" + }, + "STRREF": { + "type": "dword", + "value": 4666 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ointment for the eyes" + }, + "RESREF": { + "type": "resref", + "value": "mc_ointment" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Onyx" + }, + "RESREF": { + "type": "resref", + "value": "mc_onyx" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Owl feather" + }, + "RESREF": { + "type": "resref", + "value": "mc_owlfeather" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pearl" + }, + "RESREF": { + "type": "resref", + "value": "mc_pearl" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Phosphorus" + }, + "RESREF": { + "type": "resref", + "value": "mc_phosphorus" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Piece of a iron golem" + }, + "RESREF": { + "type": "resref", + "value": "mc_irongolempart" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Piece of a Mirror" + }, + "RESREF": { + "type": "resref", + "value": "mc_pieceofmirror" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Piece of a Spider" + }, + "RESREF": { + "type": "resref", + "value": "mc_pieceofspider" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Piece of an Undead's Bone" + }, + "RESREF": { + "type": "resref", + "value": "mc_undeadsbone" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Piece of Ice" + }, + "RESREF": { + "type": "resref", + "value": "mc_ice" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Piece of Raw Meat" + }, + "RESREF": { + "type": "resref", + "value": "mc_rawmeat" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Polished Rod of Silver" + }, + "RESREF": { + "type": "resref", + "value": "mc_silverrod" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pork Rind" + }, + "RESREF": { + "type": "resref", + "value": "mc_porkrind" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Powdered Animal Hoof" + }, + "RESREF": { + "type": "resref", + "value": "mc_panimalhoof" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Powdered Gems" + }, + "RESREF": { + "type": "resref", + "value": "mc_powderedgems" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Powdered Holy Symbol" + }, + "RESREF": { + "type": "resref", + "value": "mc_pholysymbol" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Powdered iron" + }, + "RESREF": { + "type": "resref", + "value": "mc_powderediron" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Powdered Lime and Carbon" + }, + "RESREF": { + "type": "resref", + "value": "mc_limeandcarbon" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Powdered Peas" + }, + "RESREF": { + "type": "resref", + "value": "mc_powderedpeas" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Powdered Silver" + }, + "RESREF": { + "type": "resref", + "value": "mc_silverdust" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pure Crystal" + }, + "RESREF": { + "type": "resref", + "value": "mc_purecrystal" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison145" + }, + "STRREF": { + "type": "dword", + "value": 16826292 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison005" + }, + "STRREF": { + "type": "dword", + "value": 4651 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Quartz Crystal Embedded In Rock" + }, + "RESREF": { + "type": "resref", + "value": "mc_quartzcrystal" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rhubarb" + }, + "RESREF": { + "type": "resref", + "value": "mc_rhubarb" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rotten egg" + }, + "RESREF": { + "type": "resref", + "value": "mc_rottenegg" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ruby Dust" + }, + "RESREF": { + "type": "resref", + "value": "mc_rubydust" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sand" + }, + "RESREF": { + "type": "resref", + "value": "mc_sand" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison137" + }, + "STRREF": { + "type": "dword", + "value": 16826280 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison016" + }, + "STRREF": { + "type": "dword", + "value": 4662 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison010" + }, + "STRREF": { + "type": "dword", + "value": 4656 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shadow Walkers Token" + }, + "RESREF": { + "type": "resref", + "value": "shadowwalkerstok" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shifter Hide" + }, + "RESREF": { + "type": "resref", + "value": "shifterhide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Skull Talisman" + }, + "RESREF": { + "type": "resref", + "value": "prc_skulltalis" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison001" + }, + "STRREF": { + "type": "dword", + "value": 4647 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison129" + }, + "STRREF": { + "type": "dword", + "value": 16826272 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison035" + }, + "STRREF": { + "type": "dword", + "value": 4681 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spark of Life" + }, + "RESREF": { + "type": "resref", + "value": "sparkoflife" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "SparkBox" + }, + "RESREF": { + "type": "resref", + "value": "pnp_shft_sprkbox" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Spider Silk" + }, + "RESREF": { + "type": "resref", + "value": "mc_spidersilk" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison022" + }, + "STRREF": { + "type": "dword", + "value": 4668 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison138" + }, + "STRREF": { + "type": "dword", + "value": 16826281 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sulfur" + }, + "RESREF": { + "type": "resref", + "value": "mc_sulfur" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Talc" + }, + "RESREF": { + "type": "resref", + "value": "mc_talc" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tattoo Ink" + }, + "RESREF": { + "type": "resref", + "value": "mc_tattooink" + } + }, { "__struct_id": 0, "NAME": { @@ -1606,6 +23569,281 @@ "type": "resref", "value": "taverncellarkey" } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison017" + }, + "STRREF": { + "type": "dword", + "value": 4663 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison122" + }, + "STRREF": { + "type": "dword", + "value": 16826265 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison128" + }, + "STRREF": { + "type": "dword", + "value": 16826271 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tiny Sliver of Bone" + }, + "RESREF": { + "type": "resref", + "value": "mc_sliverofbone" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison034" + }, + "STRREF": { + "type": "dword", + "value": 4680 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tiny Tarts" + }, + "RESREF": { + "type": "resref", + "value": "mc_tinytarts" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unarmed Weapon - Bludgeoning" + }, + "RESREF": { + "type": "resref", + "value": "prc_unarmed_b" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unarmed Weapon - Piercing" + }, + "RESREF": { + "type": "resref", + "value": "prc_unarmed_p" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unarmed Weapon - Slashing" + }, + "RESREF": { + "type": "resref", + "value": "prc_unarmed_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unarmed Weapon - Slashing and Piercing" + }, + "RESREF": { + "type": "resref", + "value": "prc_unarmed_sp" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison026" + }, + "STRREF": { + "type": "dword", + "value": 4672 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison146" + }, + "STRREF": { + "type": "dword", + "value": 16826294 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unicorn Hide" + }, + "RESREF": { + "type": "resref", + "value": "prc_sum_unihide" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison139" + }, + "STRREF": { + "type": "dword", + "value": 16826282 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Utterance Token" + }, + "RESREF": { + "type": "resref", + "value": "prc_invoketoken" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Utterance Token" + }, + "RESREF": { + "type": "resref", + "value": "prc_uttertoken" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Vial filled with Ants" + }, + "RESREF": { + "type": "resref", + "value": "mc_vialwithants" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison136" + }, + "STRREF": { + "type": "dword", + "value": 16826279 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "White rock chip" + }, + "RESREF": { + "type": "resref", + "value": "mc_whiterockchip" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wick Soaked in Oil" + }, + "RESREF": { + "type": "resref", + "value": "mc_soakedwick" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wool" + }, + "RESREF": { + "type": "resref", + "value": "mc_wool" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Word Archon Hammer" + }, + "RESREF": { + "type": "resref", + "value": "wordarchonhammer" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Word Archon Hide" + }, + "RESREF": { + "type": "resref", + "value": "wordhide" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison007" + }, + "STRREF": { + "type": "dword", + "value": 4653 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "2dapoison044" + }, + "STRREF": { + "type": "dword", + "value": 16826264 + } } ] }, @@ -1656,6 +23894,17 @@ "value": "qi_documents" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Epic Spellcasting" + }, + "RESREF": { + "type": "resref", + "value": "epicspellcasting" + } + }, { "__struct_id": 0, "NAME": { @@ -1743,6 +23992,39 @@ "type": "resref", "value": "package" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Phylactery" + }, + "RESREF": { + "type": "resref", + "value": "lichamulet" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "prc_ipbase" + }, + "RESREF": { + "type": "resref", + "value": "prc_ipbase" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Soul Gem" + }, + "RESREF": { + "type": "resref", + "value": "soul_gem" + } } ] }, @@ -1757,6 +24039,132 @@ "type": "byte", "value": 2 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Amulet" + }, + "RESREF": { + "type": "resref", + "value": "craft_amulet" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Belt" + }, + "RESREF": { + "type": "resref", + "value": "craft_belt" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boots" + }, + "RESREF": { + "type": "resref", + "value": "craft_boots" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bracers" + }, + "RESREF": { + "type": "resref", + "value": "craft_bracers" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Cloak" + }, + "RESREF": { + "type": "resref", + "value": "craft_cloak" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crafted Rod" + }, + "RESREF": { + "type": "resref", + "value": "craft_rod" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crafted Staff" + }, + "RESREF": { + "type": "resref", + "value": "craft_staff" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gloves" + }, + "RESREF": { + "type": "resref", + "value": "craft_gloves" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Helmet" + }, + "RESREF": { + "type": "resref", + "value": "craft_helmet" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ring" + }, + "RESREF": { + "type": "resref", + "value": "craft_ring" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Scroll" + }, + "RESREF": { + "type": "resref", + "value": "craft_scroll" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6690 @@ -1768,6 +24176,913 @@ "type": "byte", "value": 3 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_001" + }, + "STRREF": { + "type": "dword", + "value": 16989225 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_002" + }, + "STRREF": { + "type": "dword", + "value": 16989227 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_003" + }, + "STRREF": { + "type": "dword", + "value": 16989229 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_004" + }, + "STRREF": { + "type": "dword", + "value": 16989231 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_005" + }, + "STRREF": { + "type": "dword", + "value": 16989233 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_006" + }, + "STRREF": { + "type": "dword", + "value": 16989235 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_007" + }, + "STRREF": { + "type": "dword", + "value": 16989237 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_008" + }, + "STRREF": { + "type": "dword", + "value": 16989239 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_009" + }, + "STRREF": { + "type": "dword", + "value": 16989241 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Benzoin" + }, + "RESREF": { + "type": "resref", + "value": "prc_herb_010" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_011" + }, + "STRREF": { + "type": "dword", + "value": 16989245 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_012" + }, + "STRREF": { + "type": "dword", + "value": 16989247 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_013" + }, + "STRREF": { + "type": "dword", + "value": 16989249 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_014" + }, + "STRREF": { + "type": "dword", + "value": 16989251 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_015" + }, + "STRREF": { + "type": "dword", + "value": 16989253 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_016" + }, + "STRREF": { + "type": "dword", + "value": 16989255 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_017" + }, + "STRREF": { + "type": "dword", + "value": 16989257 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_018" + }, + "STRREF": { + "type": "dword", + "value": 16989259 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_019" + }, + "STRREF": { + "type": "dword", + "value": 16989261 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_020" + }, + "STRREF": { + "type": "dword", + "value": 16989263 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_021" + }, + "STRREF": { + "type": "dword", + "value": 16989265 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_022" + }, + "STRREF": { + "type": "dword", + "value": 16989267 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_023" + }, + "STRREF": { + "type": "dword", + "value": 16989269 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_024" + }, + "STRREF": { + "type": "dword", + "value": 16989271 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_025" + }, + "STRREF": { + "type": "dword", + "value": 16989273 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_026" + }, + "STRREF": { + "type": "dword", + "value": 16989275 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_027" + }, + "STRREF": { + "type": "dword", + "value": 16989277 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_028" + }, + "STRREF": { + "type": "dword", + "value": 16989279 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_029" + }, + "STRREF": { + "type": "dword", + "value": 16989281 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_030" + }, + "STRREF": { + "type": "dword", + "value": 16989283 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_031" + }, + "STRREF": { + "type": "dword", + "value": 16989285 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_032" + }, + "STRREF": { + "type": "dword", + "value": 16989287 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fine Herbs" + }, + "RESREF": { + "type": "resref", + "value": "prc_herb_000" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_033" + }, + "STRREF": { + "type": "dword", + "value": 16989289 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_034" + }, + "STRREF": { + "type": "dword", + "value": 16989291 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_035" + }, + "STRREF": { + "type": "dword", + "value": 16989293 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_036" + }, + "STRREF": { + "type": "dword", + "value": 16989295 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_037" + }, + "STRREF": { + "type": "dword", + "value": 16989297 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_038" + }, + "STRREF": { + "type": "dword", + "value": 16989299 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_039" + }, + "STRREF": { + "type": "dword", + "value": 16989301 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_040" + }, + "STRREF": { + "type": "dword", + "value": 16989303 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Infusion of" + }, + "RESREF": { + "type": "resref", + "value": "prc_infusion_000" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_041" + }, + "STRREF": { + "type": "dword", + "value": 16989305 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_042" + }, + "STRREF": { + "type": "dword", + "value": 16989307 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_043" + }, + "STRREF": { + "type": "dword", + "value": 16989309 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_044" + }, + "STRREF": { + "type": "dword", + "value": 16989311 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_045" + }, + "STRREF": { + "type": "dword", + "value": 16989313 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_046" + }, + "STRREF": { + "type": "dword", + "value": 16989315 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_047" + }, + "STRREF": { + "type": "dword", + "value": 16989317 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_048" + }, + "STRREF": { + "type": "dword", + "value": 16989319 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_049" + }, + "STRREF": { + "type": "dword", + "value": 16989321 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_050" + }, + "STRREF": { + "type": "dword", + "value": 16989323 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_051" + }, + "STRREF": { + "type": "dword", + "value": 16989325 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_052" + }, + "STRREF": { + "type": "dword", + "value": 16989327 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_053" + }, + "STRREF": { + "type": "dword", + "value": 16989329 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_054" + }, + "STRREF": { + "type": "dword", + "value": 16989331 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_055" + }, + "STRREF": { + "type": "dword", + "value": 16989333 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_056" + }, + "STRREF": { + "type": "dword", + "value": 16989335 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_057" + }, + "STRREF": { + "type": "dword", + "value": 16989337 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_058" + }, + "STRREF": { + "type": "dword", + "value": 16989339 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_059" + }, + "STRREF": { + "type": "dword", + "value": 16989341 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_060" + }, + "STRREF": { + "type": "dword", + "value": 16989343 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_061" + }, + "STRREF": { + "type": "dword", + "value": 16989345 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_062" + }, + "STRREF": { + "type": "dword", + "value": 16989347 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_063" + }, + "STRREF": { + "type": "dword", + "value": 16989349 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_064" + }, + "STRREF": { + "type": "dword", + "value": 16989351 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_065" + }, + "STRREF": { + "type": "dword", + "value": 16989353 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_066" + }, + "STRREF": { + "type": "dword", + "value": 16989355 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_067" + }, + "STRREF": { + "type": "dword", + "value": 16989357 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_068" + }, + "STRREF": { + "type": "dword", + "value": 16989359 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_069" + }, + "STRREF": { + "type": "dword", + "value": 16989361 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_070" + }, + "STRREF": { + "type": "dword", + "value": 16989363 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_071" + }, + "STRREF": { + "type": "dword", + "value": 16989365 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_072" + }, + "STRREF": { + "type": "dword", + "value": 16989367 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_073" + }, + "STRREF": { + "type": "dword", + "value": 16989369 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_074" + }, + "STRREF": { + "type": "dword", + "value": 16989371 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_075" + }, + "STRREF": { + "type": "dword", + "value": 16989373 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_076" + }, + "STRREF": { + "type": "dword", + "value": 16989375 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_077" + }, + "STRREF": { + "type": "dword", + "value": 16989377 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_078" + }, + "STRREF": { + "type": "dword", + "value": 16989379 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_079" + }, + "STRREF": { + "type": "dword", + "value": 16989381 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_herb_080" + }, + "STRREF": { + "type": "dword", + "value": 16989383 + } + } + ] + }, "STRREF": { "type": "dword", "value": 6691 @@ -1779,6 +25094,242 @@ "type": "byte", "value": 4 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "A Gem Caged Creature" + }, + "RESREF": { + "type": "resref", + "value": "it_gemcage_gem" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Adamantine Plating" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_admtbody" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Composite Plating" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_compbody" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ironwood Plating" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_woodbody" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Mithril Plating" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_mithbody" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Platinum Armor +4" + }, + "RESREF": { + "type": "resref", + "value": "platinumarmor4" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Platinum Armor +6" + }, + "RESREF": { + "type": "resref", + "value": "platinumarmor6" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Platinum Armor +8" + }, + "RESREF": { + "type": "resref", + "value": "platinumarmor8" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Soulknife Shield of Thought" + }, + "RESREF": { + "type": "resref", + "value": "psi_sk_tshield_0" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unarmored Body" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_unacbody" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Head" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_helmhead" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Head (Adamantine)" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_helmadmt" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Head (Ironwood)" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_helmwood" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Head (Mithril)" + }, + "RESREF": { + "type": "resref", + "value": "prc_wf_helmmith" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Slam (Colossal)" + }, + "RESREF": { + "type": "resref", + "value": "prc_warf_slam_c" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Slam (Gargantuan)" + }, + "RESREF": { + "type": "resref", + "value": "prc_warf_slam_g" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Slam (Huge)" + }, + "RESREF": { + "type": "resref", + "value": "prc_warf_slam_h" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Slam (Large)" + }, + "RESREF": { + "type": "resref", + "value": "prc_warf_slam_l" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Slam (Medium)" + }, + "RESREF": { + "type": "resref", + "value": "prc_warf_slam_m" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Slam (Small)" + }, + "RESREF": { + "type": "resref", + "value": "prc_warf_slam_s" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Warforged Slam (Tiny)" + }, + "RESREF": { + "type": "resref", + "value": "prc_warf_slam_t" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6692 @@ -1797,6 +25348,66 @@ "type": "byte", "value": 53 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "bagofgold" + }, + "STRREF": { + "type": "dword", + "value": 68948 + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "itemrecipe" + }, + "STRREF": { + "type": "dword", + "value": 16824436 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "PRC Target Widget" + }, + "RESREF": { + "type": "resref", + "value": "prc_target" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rune Stone" + }, + "RESREF": { + "type": "resref", + "value": "prc_rune_1" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Secret Chest Key" + }, + "RESREF": { + "type": "resref", + "value": "xchst_key" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6732 @@ -1821,6 +25432,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Arrow of Bone" + }, + "RESREF": { + "type": "resref", + "value": "prc_ab_arrow001" + } + }, { "__struct_id": 0, "NAME": { @@ -1831,6 +25453,39 @@ "type": "resref", "value": "am_arrow" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Imbued Arrow" + }, + "RESREF": { + "type": "resref", + "value": "wp_arr_imbue_1" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Pixie Sleep Arrows" + }, + "RESREF": { + "type": "resref", + "value": "prc_wamma_sleep" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Serpent Arrow" + }, + "RESREF": { + "type": "resref", + "value": "prc_serparrow" + } } ] }, @@ -1848,6 +25503,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bolt of Bone" + }, + "RESREF": { + "type": "resref", + "value": "prc_ab_bolt" + } + }, { "__struct_id": 0, "NAME": { @@ -1858,6 +25524,17 @@ "type": "resref", "value": "am_bolt" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Serpent Bolt" + }, + "RESREF": { + "type": "resref", + "value": "prc_serpbolt" + } } ] }, @@ -1875,6 +25552,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bullet of Bone" + }, + "RESREF": { + "type": "resref", + "value": "prc_ab_bullet" + } + }, { "__struct_id": 0, "NAME": { @@ -1885,6 +25573,17 @@ "type": "resref", "value": "am_bullet" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Magic Stone" + }, + "RESREF": { + "type": "resref", + "value": "magicstone" + } } ] }, @@ -1914,6 +25613,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Doombringer Lord Axe" + }, + "RESREF": { + "type": "resref", + "value": "prc_tn_dbl" + } + }, { "__struct_id": 0, "NAME": { @@ -1962,6 +25672,28 @@ "type": "resref", "value": "we_handaxe" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Incarnate Weapon (Chaos)" + }, + "RESREF": { + "type": "resref", + "value": "moi_incarnwpn_ch" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ur" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_ur" + } } ] }, @@ -2028,6 +25760,39 @@ "type": "resref", "value": "we_bastardsword" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Kamate" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_kamate" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Ramethene Sword" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_ramthene" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sunsword" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_sunsword" + } } ] }, @@ -2055,6 +25820,28 @@ "type": "resref", "value": "we_dagger" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Runescarred Dagger" + }, + "RESREF": { + "type": "resref", + "value": "runescarreddagge" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Umbral Awn" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_umbral" + } } ] }, @@ -2072,6 +25859,61 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Blackrazor" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_blackrzr" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Greatsword" + }, + "RESREF": { + "type": "resref", + "value": "wswgs071" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Greatsword" + }, + "RESREF": { + "type": "resref", + "value": "wswgs072" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Greatsword" + }, + "RESREF": { + "type": "resref", + "value": "wswgs073" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Crimson Ruination" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_crimruin" + } + }, { "__struct_id": 0, "NAME": { @@ -2082,6 +25924,50 @@ "type": "resref", "value": "we_greatsword" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Faithful Avenger" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_faithful" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Falchion" + }, + "RESREF": { + "type": "resref", + "value": "falchion" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Falchion" + }, + "RESREF": { + "type": "resref", + "value": "prc_wswfa001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Unfettered" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_unfetter" + } } ] }, @@ -2099,6 +25985,72 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Blade of the Last Citadel" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_lastcit" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Longsword" + }, + "RESREF": { + "type": "resref", + "value": "wswls091" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Longsword" + }, + "RESREF": { + "type": "resref", + "value": "wswls092" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Longsword" + }, + "RESREF": { + "type": "resref", + "value": "wswls093" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Durindana" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_durind" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dymondheart" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_dymond" + } + }, { "__struct_id": 0, "NAME": { @@ -2109,6 +26061,28 @@ "type": "resref", "value": "we_longsword" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Exordius" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_exordius" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Incarnate Weapon (Law)" + }, + "RESREF": { + "type": "resref", + "value": "moi_incarnwpn_lw" + } } ] }, @@ -2126,6 +26100,94 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "BaalSummon1Kurki" + }, + "RESREF": { + "type": "resref", + "value": "baalsummon1kurki" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Desert Wind" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_dsrtwind" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Desert Wind" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_dwtob" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eagle Claw" + }, + "RESREF": { + "type": "resref", + "value": "bbd_eagle_claw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eagle Claw" + }, + "RESREF": { + "type": "resref", + "value": "bdd_eagle_claw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Elven Courtblade" + }, + "RESREF": { + "type": "resref", + "value": "prc_wspec001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Elven Lightblade" + }, + "RESREF": { + "type": "resref", + "value": "prc_wspel001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Elven Thinblade" + }, + "RESREF": { + "type": "resref", + "value": "prc_wspet001" + } + }, { "__struct_id": 0, "NAME": { @@ -2158,6 +26220,105 @@ "type": "resref", "value": "we_scimitar" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Goad" + }, + "RESREF": { + "type": "resref", + "value": "goad" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Goad" + }, + "RESREF": { + "type": "resref", + "value": "prc_wspgd001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Heavy Pick" + }, + "RESREF": { + "type": "resref", + "value": "prc_wblph001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Katar" + }, + "RESREF": { + "type": "resref", + "value": "prc_wswdp001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Light Pick" + }, + "RESREF": { + "type": "resref", + "value": "prc_wblpl001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Masterwork Katana" + }, + "RESREF": { + "type": "resref", + "value": "codi_mw_katana" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sai" + }, + "RESREF": { + "type": "resref", + "value": "prc_wswsi001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Steadfast" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_steadfst" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Supernal Clarity" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_supernal" + } } ] }, @@ -2175,6 +26336,50 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Shortsword" + }, + "RESREF": { + "type": "resref", + "value": "wswss071" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Shortsword" + }, + "RESREF": { + "type": "resref", + "value": "wswss072" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Boneblade Shortsword" + }, + "RESREF": { + "type": "resref", + "value": "wswss073" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Caladbolg" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_calad" + } + }, { "__struct_id": 0, "NAME": { @@ -2185,6 +26390,50 @@ "type": "resref", "value": "we_shortsword" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Enserric the Rapier" + }, + "RESREF": { + "type": "resref", + "value": "iw_rapier" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eventide's Edge" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_eventide" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Full Moon's Trick" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_fullmoon" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Masterwork Wakizashi" + }, + "RESREF": { + "type": "resref", + "value": "codi_mw_short" + } } ] }, @@ -2224,6 +26473,17 @@ "type": "resref", "value": "we_club" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sap" + }, + "RESREF": { + "type": "resref", + "value": "prc_wspsp001" + } } ] }, @@ -2262,6 +26522,39 @@ "type": "resref", "value": "we_l_flail" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fiendkiller's Flail" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_fiendkll" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hillcrusher" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_hillcrus" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Incarnate Weapon (Evil)" + }, + "RESREF": { + "type": "resref", + "value": "moi_incarnwpn_ev" + } } ] }, @@ -2300,6 +26593,61 @@ "type": "resref", "value": "we_warhammer" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eurynome's Warhammer" + }, + "RESREF": { + "type": "resref", + "value": "bnd_eury_hammer" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Hammer of Witches" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_witches" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Incarnate Weapon (Good)" + }, + "RESREF": { + "type": "resref", + "value": "moi_incarnwpn_gd" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Maul" + }, + "RESREF": { + "type": "resref", + "value": "prc_wxblma001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Whelm" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_whelm" + } } ] }, @@ -2317,6 +26665,39 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Arik's Vengeance" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_arik" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Deva Mace" + }, + "RESREF": { + "type": "resref", + "value": "devamace" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Eldritch Glaive" + }, + "RESREF": { + "type": "resref", + "value": "prc_eldrtch_glv" + } + }, { "__struct_id": 0, "NAME": { @@ -2327,6 +26708,17 @@ "type": "resref", "value": "we_mace" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Heavy Mace" + }, + "RESREF": { + "type": "resref", + "value": "prc_wxblmh001" + } } ] }, @@ -2354,6 +26746,17 @@ "type": "resref", "value": "we_morningstar" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Mindsplinter" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_mindspli" + } } ] }, @@ -2378,6 +26781,50 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Baal Summon 2 Axe" + }, + "RESREF": { + "type": "resref", + "value": "baalsummon2axe" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Defender's Twin" + }, + "RESREF": { + "type": "resref", + "value": "rash5" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Demonspike Cleaver" + }, + "RESREF": { + "type": "resref", + "value": "rash10" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Double Scimitar" + }, + "RESREF": { + "type": "resref", + "value": "prc_wxdbsc001" + } + }, { "__struct_id": 0, "NAME": { @@ -2421,6 +26868,50 @@ "type": "resref", "value": "we_dbl_sword" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Flesh Reaver" + }, + "RESREF": { + "type": "resref", + "value": "rash8" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shattering Crash" + }, + "RESREF": { + "type": "resref", + "value": "rash9" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Southern Ice" + }, + "RESREF": { + "type": "resref", + "value": "rash7" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Star of the Rashemi" + }, + "RESREF": { + "type": "resref", + "value": "rash6" + } } ] }, @@ -2438,6 +26929,39 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bones of Li Peng" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_lipeng" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Caput Mortuum" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_cptmortm" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Devious" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_devious" + } + }, { "__struct_id": 0, "NAME": { @@ -2481,6 +27005,105 @@ "type": "resref", "value": "we_whip" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Fire Lash" + }, + "RESREF": { + "type": "resref", + "value": "prc_pyro_lash_wh" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Flay" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_flay" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Nunchaku" + }, + "RESREF": { + "type": "resref", + "value": "prc_wblnn001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rive" + }, + "RESREF": { + "type": "resref", + "value": "bdd_sword" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Rive" + }, + "RESREF": { + "type": "resref", + "value": "rive" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shishi-O" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_shishio" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Tiger Fang" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_tigerfng" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Vicious" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_vicious" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Whip of Shar" + }, + "RESREF": { + "type": "resref", + "value": "whipofshar" + } } ] }, @@ -2514,6 +27137,149 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Abjuration" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst001" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Conjuration" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst002" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Divination" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst003" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Enchantment" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst004" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Evocation" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst005" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Fire" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst006" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Frost" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst007" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Healing" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst008" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Illumination" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst010" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Illusion" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst009" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Life" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst011" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Necromancy" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst012" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of the Woodlands" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst015" + } + }, { "__struct_id": 0, "NAME": { @@ -2524,6 +27290,39 @@ "type": "resref", "value": "staffofwoods" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of Transmutation" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst014" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of True Defense" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst016" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Staff of True Power" + }, + "RESREF": { + "type": "resref", + "value": "jd_wmgst013" + } } ] }, @@ -2538,6 +27337,66 @@ "type": "byte", "value": 50 }, + "LIST": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wand of Cure Critical Wounds" + }, + "RESREF": { + "type": "resref", + "value": "prc_cwand_ccw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wand of Cure Light Wounds" + }, + "RESREF": { + "type": "resref", + "value": "prc_cwand_clw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wand of Cure Minor Wounds" + }, + "RESREF": { + "type": "resref", + "value": "prc_cwand_cmw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wand of Cure Moderate Wounds" + }, + "RESREF": { + "type": "resref", + "value": "prc_cwand_cmdw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Wand of Cure Serious Wounds" + }, + "RESREF": { + "type": "resref", + "value": "prc_cwand_csw" + } + } + ] + }, "STRREF": { "type": "dword", "value": 6780 @@ -2559,6 +27418,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Coral's Bite" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_corals" + } + }, { "__struct_id": 0, "NAME": { @@ -2591,6 +27461,50 @@ "type": "resref", "value": "we_spear" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Guurgal" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_guurgal" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Notched Spear" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_notched" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Scales of Balance" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_scales" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Treebrother" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_treebro" + } } ] }, @@ -2634,6 +27548,17 @@ "type": "resref", "value": "we_l_xbow" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Flamecaster's Bolt" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_flmcstr" + } } ] }, @@ -2651,6 +27576,17 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bow of the Black Archer" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_blckarch" + } + }, { "__struct_id": 0, "NAME": { @@ -2683,6 +27619,39 @@ "type": "resref", "value": "we_longbow" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Flaming Composite Longbow" + }, + "RESREF": { + "type": "resref", + "value": "flamingcomposite" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Simple Bow" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_simplebw" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Thaas" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_thaas" + } } ] }, @@ -2732,6 +27701,17 @@ "type": "resref", "value": "we_shortbow" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Stalker's Bow" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_stalker" + } } ] }, @@ -2759,6 +27739,17 @@ "type": "resref", "value": "we_sling" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Sling of the Dire Wind" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_direwind" + } } ] }, @@ -2783,6 +27774,83 @@ "LIST": { "type": "list", "value": [ + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Acidic Fire" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_acidfire" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Alchemical Sleeping Gas" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_alcslpgas" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Alchemist's Frost" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_alcfrost" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Alchemist's Spark" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_alcspark" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Bile Droppings" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_biledrp" + } + }, + { + "__struct_id": 0, + "RESREF": { + "type": "resref", + "value": "prc_cursedwater" + }, + "STRREF": { + "type": "dword", + "value": 16838715 + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Dart of Bone" + }, + "RESREF": { + "type": "resref", + "value": "prc_ab_dart" + } + }, { "__struct_id": 0, "NAME": { @@ -2815,6 +27883,116 @@ "type": "resref", "value": "we_throwaxe" } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Energized Potion" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_enrgpot" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Festering Bomb" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_festerbmb" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Flash Pellet" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_flashplt" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Henchy Axe of Doom" + }, + "RESREF": { + "type": "resref", + "value": "ow_taxe_1" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Lorestealer" + }, + "RESREF": { + "type": "resref", + "value": "prc_wol_lorestlr" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Never Ending Bag of Caltrops" + }, + "RESREF": { + "type": "resref", + "value": "ow_caltrops" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Serpent Dart" + }, + "RESREF": { + "type": "resref", + "value": "prc_serpdart" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Shuriken of Bone" + }, + "RESREF": { + "type": "resref", + "value": "prc_ab_shuriken" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Throwing Axe of Bone" + }, + "RESREF": { + "type": "resref", + "value": "prc_ab_thraxe" + } + }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Weeping Stone" + }, + "RESREF": { + "type": "resref", + "value": "prc_it_weepstn" + } } ] },