Exalted update

Updated Vow of Poverty. Added Sanctify Ki Strike, Holy Strike, Fist of Heavens, Vow of Abstinence, Vow of Chastity & Gift of Faith.  (@fenac).  Turned off the Taunt & Parry skills.  Re-disabled AC & save bonuses from Tumble & Spellcraft.   Updated min() & max() to PRCmin() & PRCmax() to not conflict with similarly named NUI adjacent functions.  Set Point Blank Shot to 30' per PnP.  Added icon for Chosen of Evil.  Started work on Hidden Talent.  Created Psionics function cheatsheet.  Updated release archive.
This commit is contained in:
Jaysyn904
2025-01-29 22:46:38 -05:00
parent 370b29e917
commit e641b42f84
209 changed files with 1893 additions and 926 deletions

View File

@@ -183,7 +183,7 @@ int _prc_inc_GetItemACBonus(object oItem)
while(GetIsItemPropertyValid(iProp))
{
if(GetItemPropertyType(iProp) == ITEM_PROPERTY_AC_BONUS && GetItemPropertyDurationType(iProp) == DURATION_TYPE_PERMANENT)
nArmorBonus = max(nArmorBonus, GetItemPropertyCostTableValue(iProp)); //TODO: pick the biggest? the first? stack them?
nArmorBonus = PRCMax(nArmorBonus, GetItemPropertyCostTableValue(iProp)); //TODO: pick the biggest? the first? stack them?
iProp = GetNextItemProperty(oItem);
}
return nArmorBonus;
@@ -238,18 +238,18 @@ struct _prc_inc_ac_info_struct _prc_inc_ACInfo(object oTemplate)
ac_info.nNaturalBonus = GetItemACValue(GetItemInSlot(INVENTORY_SLOT_NECK, oTemplate));
ac_info.nDeflectionBonus = GetItemACValue(GetItemInSlot(INVENTORY_SLOT_HEAD, oTemplate));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CLOAK, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_LEFTRING, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_BELT, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_ARROWS, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_BULLETS, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_BOLTS, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oTemplate)));
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CLOAK, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_LEFTRING, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_BELT, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_ARROWS, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_BULLETS, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_BOLTS, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oTemplate)));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oTemplate)));
object oOffHandItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oTemplate);
ac_info.nShieldBase = 0;
@@ -269,7 +269,7 @@ struct _prc_inc_ac_info_struct _prc_inc_ACInfo(object oTemplate)
ac_info.nShieldBonus = GetItemACValue(oOffHandItem) - ac_info.nShieldBase;
break;
default: //A weapon
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(oOffHandItem));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(oOffHandItem));
break;
}
@@ -277,11 +277,11 @@ struct _prc_inc_ac_info_struct _prc_inc_ACInfo(object oTemplate)
switch (GetBaseItemType(oArmsItem))
{
case BASE_ITEM_BRACER:
ac_info.nShieldBonus = max(ac_info.nShieldBonus, GetItemACValue(oArmsItem));
ac_info.nShieldBonus = PRCMax(ac_info.nShieldBonus, GetItemACValue(oArmsItem));
break;
case BASE_ITEM_GLOVES:
default:
ac_info.nDeflectionBonus = max(ac_info.nDeflectionBonus, GetItemACValue(oArmsItem));
ac_info.nDeflectionBonus = PRCMax(ac_info.nDeflectionBonus, GetItemACValue(oArmsItem));
break;
}
@@ -296,7 +296,7 @@ struct _prc_inc_ac_info_struct _prc_inc_ACInfo(object oTemplate)
if (ac_info.nShieldBonus > 20)
ac_info.nShieldBonus = 20;
ac_info.nDEXBonus = min(GetAbilityModifier(ABILITY_DEXTERITY, oTemplate), _prc_inc_GetArmorMaxDEXBonus(oArmorItem));
ac_info.nDEXBonus = PRCMin(GetAbilityModifier(ABILITY_DEXTERITY, oTemplate), _prc_inc_GetArmorMaxDEXBonus(oArmorItem));
//TODO: make sure this isn't < 0?
return ac_info;
@@ -416,43 +416,43 @@ int _prc_inc_shifting_ShifterLevelRequirement(object oTemplate)
// Size tests
if(nSize >= CREATURE_SIZE_HUGE)
nLevelRequired = max(nLevelRequired, 7);
nLevelRequired = PRCMax(nLevelRequired, 7);
if(nSize == CREATURE_SIZE_LARGE)
nLevelRequired = max(nLevelRequired, 3);
nLevelRequired = PRCMax(nLevelRequired, 3);
if(nSize == CREATURE_SIZE_MEDIUM)
nLevelRequired = max(nLevelRequired, 1);
nLevelRequired = PRCMax(nLevelRequired, 1);
if(nSize == CREATURE_SIZE_SMALL)
nLevelRequired = max(nLevelRequired, 1);
nLevelRequired = PRCMax(nLevelRequired, 1);
if(nSize <= CREATURE_SIZE_TINY)
nLevelRequired = max(nLevelRequired, 3);
nLevelRequired = PRCMax(nLevelRequired, 3);
// Type tests
if(nRacialType == RACIAL_TYPE_OUTSIDER)
nLevelRequired = max(nLevelRequired, 9);
nLevelRequired = PRCMax(nLevelRequired, 9);
if(nRacialType == RACIAL_TYPE_ELEMENTAL)
nLevelRequired = max(nLevelRequired, 9);
nLevelRequired = PRCMax(nLevelRequired, 9);
if(nRacialType == RACIAL_TYPE_CONSTRUCT)
nLevelRequired = max(nLevelRequired, 8);
nLevelRequired = PRCMax(nLevelRequired, 8);
if(nRacialType == RACIAL_TYPE_UNDEAD)
nLevelRequired = max(nLevelRequired, 8);
nLevelRequired = PRCMax(nLevelRequired, 8);
if(nRacialType == RACIAL_TYPE_DRAGON)
nLevelRequired = max(nLevelRequired, 7);
nLevelRequired = PRCMax(nLevelRequired, 7);
if(nRacialType == RACIAL_TYPE_ABERRATION)
nLevelRequired = max(nLevelRequired, 6);
nLevelRequired = PRCMax(nLevelRequired, 6);
if(nRacialType == RACIAL_TYPE_OOZE)
nLevelRequired = max(nLevelRequired, 6);
nLevelRequired = PRCMax(nLevelRequired, 6);
if(nRacialType == RACIAL_TYPE_MAGICAL_BEAST)
nLevelRequired = max(nLevelRequired, 5);
nLevelRequired = PRCMax(nLevelRequired, 5);
if(nRacialType == RACIAL_TYPE_GIANT)
nLevelRequired = max(nLevelRequired, 4);
nLevelRequired = PRCMax(nLevelRequired, 4);
if(nRacialType == RACIAL_TYPE_VERMIN)
nLevelRequired = max(nLevelRequired, 4);
nLevelRequired = PRCMax(nLevelRequired, 4);
if(nRacialType == RACIAL_TYPE_BEAST)
nLevelRequired = max(nLevelRequired, 3);
nLevelRequired = PRCMax(nLevelRequired, 3);
if(nRacialType == RACIAL_TYPE_ANIMAL)
nLevelRequired = max(nLevelRequired, 2);
nLevelRequired = PRCMax(nLevelRequired, 2);
if(nRacialType == RACIAL_TYPE_HUMANOID_MONSTROUS)
nLevelRequired = max(nLevelRequired, 2);
nLevelRequired = PRCMax(nLevelRequired, 2);
if(nRacialType == RACIAL_TYPE_DWARF ||
nRacialType == RACIAL_TYPE_ELF ||
nRacialType == RACIAL_TYPE_GNOME ||
@@ -463,7 +463,7 @@ int _prc_inc_shifting_ShifterLevelRequirement(object oTemplate)
nRacialType == RACIAL_TYPE_HUMANOID_ORC ||
nRacialType == RACIAL_TYPE_HUMANOID_REPTILIAN
)
nLevelRequired = max(nLevelRequired, 1);
nLevelRequired = PRCMax(nLevelRequired, 1);
return nLevelRequired;
}