From 46c50ae3627435a6b5b00e1d4ab8bd97f803ced0 Mon Sep 17 00:00:00 2001 From: Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com> Date: Mon, 5 May 2025 19:52:23 -0400 Subject: [PATCH] Updated various functions for Trident Updated various functions for Trident Katar is a simple weapon. --- nwn/nwnprc/trunk/include/inc_rand_equip.nss | 1 + nwn/nwnprc/trunk/include/prc_inc_combat.nss | 21 ++++++++++++-------- nwn/nwnprc/trunk/include/prc_inc_fork.nss | 10 ++++++++-- nwn/nwnprc/trunk/include/prc_inc_wpnrest.nss | 18 +++++++++++++---- nwn/nwnprc/trunk/scripts/prc_dispater.nss | 1 + 5 files changed, 37 insertions(+), 14 deletions(-) diff --git a/nwn/nwnprc/trunk/include/inc_rand_equip.nss b/nwn/nwnprc/trunk/include/inc_rand_equip.nss index 81ad0eb2..814f5339 100644 --- a/nwn/nwnprc/trunk/include/inc_rand_equip.nss +++ b/nwn/nwnprc/trunk/include/inc_rand_equip.nss @@ -3434,6 +3434,7 @@ int PrimoGetWeaponSize(object oItem) case BASE_ITEM_KATANA: case BASE_ITEM_MAGICSTAFF: case BASE_ITEM_LONGSWORD: + case BASE_ITEM_TRIDENT: case BASE_ITEM_MORNINGSTAR: case BASE_ITEM_RAPIER: case BASE_ITEM_SCIMITAR: diff --git a/nwn/nwnprc/trunk/include/prc_inc_combat.nss b/nwn/nwnprc/trunk/include/prc_inc_combat.nss index 6bd22aca..db0749ba 100644 --- a/nwn/nwnprc/trunk/include/prc_inc_combat.nss +++ b/nwn/nwnprc/trunk/include/prc_inc_combat.nss @@ -1075,13 +1075,16 @@ int GetIsTwoHandedMeleeWeaponType(int iWeaponType) { switch(iWeaponType) { - case BASE_ITEM_GREATAXE: return TRUE; - case BASE_ITEM_GREATSWORD: return TRUE; - case BASE_ITEM_HALBERD: return TRUE; - case BASE_ITEM_SHORTSPEAR: return TRUE; - case BASE_ITEM_HEAVYFLAIL: return TRUE; - case BASE_ITEM_MAUL: return TRUE; - case BASE_ITEM_FALCHION: return TRUE; + case BASE_ITEM_GREATAXE: return TRUE; + case BASE_ITEM_GREATSWORD: return TRUE; + case BASE_ITEM_HALBERD: return TRUE; + case BASE_ITEM_SHORTSPEAR: return TRUE; + case BASE_ITEM_HEAVYFLAIL: return TRUE; + case BASE_ITEM_SCYTHE: return TRUE; + case BASE_ITEM_QUARTERSTAFF: return TRUE; + case BASE_ITEM_ELVEN_COURTBLADE: return TRUE; + case BASE_ITEM_MAUL: return TRUE; + case BASE_ITEM_FALCHION: return TRUE; } return FALSE; } @@ -9075,4 +9078,6 @@ void PerformAttack(object oDefender, object oAttacker, AttackLoopMain(oDefender, oAttacker, 0, 0, 1, iAttackBonusMod, sAttackVars, sMainWeaponDamage, sOffHandWeaponDamage, sSpellBonusDamage); else AttackLoopMain(oDefender, oAttacker, 0, 1, 0, iAttackBonusMod, sAttackVars, sMainWeaponDamage, sOffHandWeaponDamage, sSpellBonusDamage); -} \ No newline at end of file +} + +//:: void main (){} \ No newline at end of file diff --git a/nwn/nwnprc/trunk/include/prc_inc_fork.nss b/nwn/nwnprc/trunk/include/prc_inc_fork.nss index 2cacbfeb..46019099 100644 --- a/nwn/nwnprc/trunk/include/prc_inc_fork.nss +++ b/nwn/nwnprc/trunk/include/prc_inc_fork.nss @@ -258,6 +258,7 @@ int GetFocusFeatOfWeaponType(int iWeaponType) case BASE_ITEM_SICKLE: return FEAT_WEAPON_FOCUS_SICKLE; case BASE_ITEM_SLING: return FEAT_WEAPON_FOCUS_SLING; case BASE_ITEM_THROWINGAXE: return FEAT_WEAPON_FOCUS_THROWING_AXE; + case BASE_ITEM_TRIDENT: return FEAT_WEAPON_FOCUS_TRIDENT; case BASE_ITEM_TWOBLADEDSWORD: return FEAT_WEAPON_FOCUS_TWO_BLADED_SWORD; case BASE_ITEM_WARHAMMER: return FEAT_WEAPON_FOCUS_WAR_HAMMER; case BASE_ITEM_WHIP: return FEAT_WEAPON_FOCUS_WHIP; @@ -314,6 +315,7 @@ int GetSpecializationFeatOfWeaponType(int iWeaponType) case BASE_ITEM_SICKLE: return FEAT_WEAPON_SPECIALIZATION_SICKLE; case BASE_ITEM_SLING: return FEAT_WEAPON_SPECIALIZATION_SLING; case BASE_ITEM_THROWINGAXE: return FEAT_WEAPON_SPECIALIZATION_THROWING_AXE; + case BASE_ITEM_TRIDENT: return FEAT_WEAPON_SPECIALIZATION_TRIDENT; case BASE_ITEM_TWOBLADEDSWORD: return FEAT_WEAPON_SPECIALIZATION_TWO_BLADED_SWORD; case BASE_ITEM_WARHAMMER: return FEAT_WEAPON_SPECIALIZATION_WAR_HAMMER; case BASE_ITEM_WHIP: return FEAT_WEAPON_SPECIALIZATION_WHIP; @@ -370,6 +372,7 @@ int GetEpicFocusFeatOfWeaponType(int iWeaponType) case BASE_ITEM_SICKLE: return FEAT_EPIC_WEAPON_FOCUS_SICKLE; case BASE_ITEM_SLING: return FEAT_EPIC_WEAPON_FOCUS_SLING; case BASE_ITEM_THROWINGAXE: return FEAT_EPIC_WEAPON_FOCUS_THROWINGAXE; + case BASE_ITEM_TRIDENT: return FEAT_EPIC_WEAPON_FOCUS_TRIDENT; case BASE_ITEM_TWOBLADEDSWORD: return FEAT_EPIC_WEAPON_FOCUS_TWOBLADEDSWORD; case BASE_ITEM_WARHAMMER: return FEAT_EPIC_WEAPON_FOCUS_WARHAMMER; case BASE_ITEM_WHIP: return FEAT_EPIC_WEAPON_FOCUS_WHIP; @@ -426,6 +429,7 @@ int GetEpicSpecializationFeatOfWeaponType(int iWeaponType) case BASE_ITEM_SICKLE: return FEAT_EPIC_WEAPON_SPECIALIZATION_SICKLE; case BASE_ITEM_SLING: return FEAT_EPIC_WEAPON_SPECIALIZATION_SLING; case BASE_ITEM_THROWINGAXE: return FEAT_EPIC_WEAPON_SPECIALIZATION_THROWINGAXE; + case BASE_ITEM_TRIDENT: return FEAT_EPIC_WEAPON_SPECIALIZATION_TRIDENT; case BASE_ITEM_TWOBLADEDSWORD: return FEAT_EPIC_WEAPON_SPECIALIZATION_TWOBLADEDSWORD; case BASE_ITEM_WARHAMMER: return FEAT_EPIC_WEAPON_SPECIALIZATION_WARHAMMER; case BASE_ITEM_WHIP: return FEAT_EPIC_WEAPON_SPECIALIZATION_WHIP; @@ -482,6 +486,7 @@ int GetImprovedCriticalFeatOfWeaponType(int iWeaponType) case BASE_ITEM_SICKLE: return FEAT_IMPROVED_CRITICAL_SICKLE; case BASE_ITEM_SLING: return FEAT_IMPROVED_CRITICAL_SLING; case BASE_ITEM_THROWINGAXE: return FEAT_IMPROVED_CRITICAL_THROWING_AXE; + case BASE_ITEM_TRIDENT: return FEAT_IMPROVED_CRITICAL_TRIDENT; case BASE_ITEM_TWOBLADEDSWORD: return FEAT_IMPROVED_CRITICAL_TWO_BLADED_SWORD; case BASE_ITEM_WARHAMMER: return FEAT_IMPROVED_CRITICAL_WAR_HAMMER; case BASE_ITEM_WHIP: return FEAT_IMPROVED_CRITICAL_WHIP; @@ -538,6 +543,7 @@ int GetOverwhelmingCriticalFeatOfWeaponType(int iWeaponType) case BASE_ITEM_SICKLE: return FEAT_EPIC_OVERWHELMING_CRITICAL_SICKLE; case BASE_ITEM_SLING: return FEAT_EPIC_OVERWHELMING_CRITICAL_SLING; case BASE_ITEM_THROWINGAXE: return FEAT_EPIC_OVERWHELMING_CRITICAL_THROWINGAXE; + case BASE_ITEM_TRIDENT: return FEAT_EPIC_OVERWHELMING_CRITICAL_TRIDENT; case BASE_ITEM_TWOBLADEDSWORD: return FEAT_EPIC_OVERWHELMING_CRITICAL_TWOBLADEDSWORD; case BASE_ITEM_WARHAMMER: return FEAT_EPIC_OVERWHELMING_CRITICAL_WARHAMMER; case BASE_ITEM_WHIP: return FEAT_EPIC_OVERWHELMING_CRITICAL_WHIP; @@ -589,6 +595,7 @@ int GetDevastatingCriticalFeatOfWeaponType(int iWeaponType) case BASE_ITEM_SICKLE: return FEAT_EPIC_DEVASTATING_CRITICAL_SICKLE; case BASE_ITEM_SLING: return FEAT_EPIC_DEVASTATING_CRITICAL_SLING; case BASE_ITEM_THROWINGAXE: return FEAT_EPIC_DEVASTATING_CRITICAL_THROWINGAXE; + case BASE_ITEM_TRIDENT: return FEAT_EPIC_DEVASTATING_CRITICAL_TRIDENT; case BASE_ITEM_TWOBLADEDSWORD: return FEAT_EPIC_DEVASTATING_CRITICAL_TWOBLADEDSWORD; case BASE_ITEM_WARHAMMER: return FEAT_EPIC_DEVASTATING_CRITICAL_WARHAMMER; case BASE_ITEM_WHIP: return FEAT_EPIC_DEVASTATING_CRITICAL_WHIP; @@ -627,6 +634,7 @@ int GetWeaponOfChoiceFeatOfWeaponType(int iWeaponType) case BASE_ITEM_SHORTSPEAR: return FEAT_WEAPON_OF_CHOICE_SHORTSPEAR; case BASE_ITEM_SHORTSWORD: return FEAT_WEAPON_OF_CHOICE_SHORTSWORD; case BASE_ITEM_SICKLE: return FEAT_WEAPON_OF_CHOICE_SICKLE; + case BASE_ITEM_TRIDENT: return FEAT_WEAPON_OF_CHOICE_TRIDENT; case BASE_ITEM_TWOBLADEDSWORD: return FEAT_WEAPON_OF_CHOICE_TWOBLADEDSWORD; case BASE_ITEM_WARHAMMER: return FEAT_WEAPON_OF_CHOICE_WARHAMMER; case BASE_ITEM_WHIP: return FEAT_WEAPON_OF_CHOICE_WHIP; @@ -662,7 +670,6 @@ int GetWeaponSize(object oWeapon) case BASE_ITEM_QUARTERSTAFF: case BASE_ITEM_SCYTHE: case BASE_ITEM_SHORTSPEAR: - case BASE_ITEM_TRIDENT: case BASE_ITEM_ELVEN_COURTBLADE: case BASE_ITEM_MAUL: case BASE_ITEM_FALCHION: @@ -699,7 +706,6 @@ int PRCLargeWeaponCheck(int iBaseType, int nSize) case BASE_ITEM_QUARTERSTAFF: case BASE_ITEM_SCYTHE: case BASE_ITEM_SHORTSPEAR: - case BASE_ITEM_TRIDENT: case BASE_ITEM_ELVEN_COURTBLADE: case BASE_ITEM_MAUL: case BASE_ITEM_FALCHION: diff --git a/nwn/nwnprc/trunk/include/prc_inc_wpnrest.nss b/nwn/nwnprc/trunk/include/prc_inc_wpnrest.nss index 027b292b..1218f88f 100644 --- a/nwn/nwnprc/trunk/include/prc_inc_wpnrest.nss +++ b/nwn/nwnprc/trunk/include/prc_inc_wpnrest.nss @@ -39,7 +39,17 @@ int IsProficient(object oPC, int nBaseItem) || (GetHasFeat(FEAT_WEAPON_PROFICIENCY_SIMPLE, oPC) && GetRacialType(oPC) == RACIAL_TYPE_CHITINE) || GetHasFeat(FEAT_WEAPON_PROFICIENCY_SHORTSWORD, oPC); - case BASE_ITEM_LONGSWORD: + case BASE_ITEM_CLUB: + return GetHasFeat(FEAT_WEAPON_PROFICIENCY_SIMPLE, oPC) + || GetHasFeat(FEAT_WEAPON_PROFICIENCY_DRUID, oPC) + || GetHasFeat(FEAT_WEAPON_PROFICIENCY_CLUB, oPC); + + case BASE_ITEM_DAGGER: + return GetHasFeat(FEAT_WEAPON_PROFICIENCY_SIMPLE, oPC) + || GetHasFeat(FEAT_WEAPON_PROFICIENCY_DRUID, oPC) + || GetHasFeat(FEAT_WEAPON_PROFICIENCY_DAGGER, oPC); + + case BASE_ITEM_LONGSWORD: return GetHasFeat(FEAT_WEAPON_PROFICIENCY_MARTIAL, oPC) || GetHasFeat(FEAT_MINDBLADE, oPC) || GetHasFeat(FEAT_WEAPON_PROFICIENCY_ELF, oPC) @@ -197,8 +207,7 @@ int IsProficient(object oPC, int nBaseItem) case BASE_ITEM_TRIDENT: return GetHasFeat(FEAT_WEAPON_PROFICIENCY_TRIDENT, oPC) - || GetHasFeat(FEAT_WEAPON_PROFICIENCY_SIMPLE, oPC) - || GetHasFeat(FEAT_WEAPON_PROFICIENCY_DRUID, oPC); + || GetHasFeat(FEAT_WEAPON_PROFICIENCY_MARTIAL, oPC); case BASE_ITEM_DOUBLE_SCIMITAR: return GetHasFeat(FEAT_WEAPON_PROFICIENCY_DOUBLE_SCIMITAR, oPC) @@ -226,7 +235,7 @@ int IsProficient(object oPC, int nBaseItem) case BASE_ITEM_KATAR: return GetHasFeat(FEAT_WEAPON_PROFICIENCY_KATAR, oPC) - || GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC); + || GetHasFeat(FEAT_WEAPON_PROFICIENCY_SIMPLE, oPC); case BASE_ITEM_MAUL: return GetHasFeat(FEAT_WEAPON_PROFICIENCY_MAUL, oPC) @@ -571,6 +580,7 @@ int IsWeaponMartial(int nBaseItemType, object oPC) case BASE_ITEM_HANDAXE: case BASE_ITEM_RAPIER: case BASE_ITEM_SCIMITAR: + case BASE_ITEM_TRIDENT: case BASE_ITEM_THROWINGAXE: case BASE_ITEM_SCYTHE: case BASE_ITEM_MAUL: diff --git a/nwn/nwnprc/trunk/scripts/prc_dispater.nss b/nwn/nwnprc/trunk/scripts/prc_dispater.nss index 8ece88db..f2986f99 100644 --- a/nwn/nwnprc/trunk/scripts/prc_dispater.nss +++ b/nwn/nwnprc/trunk/scripts/prc_dispater.nss @@ -34,6 +34,7 @@ int IsItemMetal(object oItem) type==BASE_ITEM_SHORTSWORD || type==BASE_ITEM_SHURIKEN || type==BASE_ITEM_SICKLE || + type==BASE_ITEM_TRIDENT || type==BASE_ITEM_THROWINGAXE || type==BASE_ITEM_TWOBLADEDSWORD || type==BASE_ITEM_WARHAMMER ||