Added Martial Stalker feat

Added Martial Stalker feat.  Fixed Ninja not getting level based AC.  Updated Release archive.
This commit is contained in:
Jaysyn904 2025-01-17 11:28:55 -05:00
parent 6fb03d4d2a
commit f52cab6870
11 changed files with 1192 additions and 1156 deletions

BIN
Release/PRC8_20250117.7z Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -25999,7 +25999,7 @@
25995 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
25996 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
25997 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
25998 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
25998 FEAT_MARTIAL_STALKER 16990314 16990315 IR_NINJA **** **** **** **** **** **** **** **** 2488 45 0 0 1 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MARTIAL_STALKER 5 0 **** **** **** **** 0 0
25999 "#BEGIN PRC8 WOL RESERVE#" **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
26000 Bullybasher_GiantBearing 16977316 16977317 is_giantbearing **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 16553 **** 0.5 **** **** 1 **** **** **** **** **** **** **** **** **** WOL_BULLY_GIANT 6 0 **** **** **** **** 0 0
26001 FEAT_VOWOFPOVERTY 16977318 16977319 ife_sacredvow **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_VOWOFPOVERTY 6 **** **** **** **** **** 0 0

View File

@ -2284,6 +2284,7 @@ const int DRACONIC_WINGSLAMS = 4164;
const int DRACONIC_TAILSLAP = 4165;
// Complete Adv Ninja
const int FEAT_NINJA_AC_BONUS = 2483;
const int FEAT_EPIC_ACROBATICS_8 = 2484;
const int FEAT_EPIC_ACROBATICS_10 = 2485;
const int FEAT_EPIC_ACROBATICS_12 = 2486;
@ -2301,6 +2302,7 @@ const int FEAT_GREATER_KI_DODGE = 2497;
const int FEAT_KI_DODGE = 2498;
const int FEAT_GHOST_STEP_2 = 2499;
//:: Forest Master (Faiths & Pantheons, pg. 193)
const int FEAT_FM_TREEBROTHER = 5436;
const int FEAT_FM_NATURESENSE = 5437;
@ -3540,8 +3542,9 @@ const int FEAT_ASCETIC_STALKER = 2598;
const int FEAT_EXPANDED_KI_POOL = 2687;
const int FEAT_IMPROVED_SKIMISH = 2688;
// Complete Adventurer Feats
const int FEAT_BRUTAL_THROW = 2689;
//:: Complete Adventurer Feats
const int FEAT_BRUTAL_THROW = 2689;
const int FEAT_MARTIAL_STALKER = 25998;
// Complete Warrior Feats
const int FEAT_EXTRA_RAGE = 2690;

View File

@ -1411,11 +1411,15 @@ void FeatNinja (object oPC)
int iNinjaLevel = GetLevelByClass(CLASS_TYPE_NINJA, oPC);
// Ascetic Stalker
if (GetHasFeat(FEAT_ASCETIC_STALKER, oPC))
iNinjaLevel += GetLevelByClass(CLASS_TYPE_MONK, oPC);;
iNinjaLevel += GetLevelByClass(CLASS_TYPE_MONK, oPC);
// Martial Stalker
if (GetHasFeat(FEAT_MARTIAL_STALKER, oPC))
iNinjaLevel += GetLevelByClass(CLASS_TYPE_FIGHTER, oPC);
if (!iNinjaLevel) return;
int nUsesLeft = iNinjaLevel/2;
int nUsesLeft = iNinjaLevel / 2;
if (nUsesLeft < 1)
nUsesLeft = 1;

View File

@ -37,21 +37,43 @@ void Ninja_GhostSight (object oPC, int bOn=TRUE)
}
}
// Function to calculate AC bonus based on Ninja level
int GetNinjaACBonus(object oNinja)
{
int nNinja = GetLevelByClass(CLASS_TYPE_NINJA, oNinja);
int nFighter = GetLevelByClass(CLASS_TYPE_FIGHTER, oNinja);
int bMartialStalker = GetHasFeat(FEAT_MARTIAL_STALKER, oNinja);
int nLevel = nNinja;
if(bMartialStalker)
{
nLevel += nFighter;
}
// AC bonus starts at level 5 and increases by +1 every 5 levels
if (nLevel < 5) return 0;
return (nLevel - 1) / 5;
}
void main()
{
object oPC = OBJECT_SELF;
object oSkin = GetPCSkin(oPC);
// all Ki powers will not function when wearing armor or encumbered
//:: All Ki powers will not function when wearing armor or encumbered
int bEnabled = Ninja_AbilitiesEnabled(oPC);
// determine which passive Ninja feats the char has
int bKiPower = GetHasFeat(FEAT_KI_POWER, oPC) && bEnabled;
int bAcro = GetHasFeat(FEAT_ACROBATICS_2, oPC) ? 2 : 0;
//:: determine which passive Ninja feats the char has
int nAC = GetNinjaACBonus(oPC);
int bKiPower = GetHasFeat(FEAT_KI_POWER, oPC) && bEnabled;
int bAcro = GetHasFeat(FEAT_ACROBATICS_2, oPC) ? 2 : 0;
bAcro = GetHasFeat(FEAT_ACROBATICS_4, oPC) ? 4 : bAcro;
bAcro = GetHasFeat(FEAT_ACROBATICS_6, oPC) ? 6 : bAcro;
bAcro = GetHasFeat(FEAT_EPIC_ACROBATICS_8, oPC) ? 8 : bAcro;
bAcro = GetHasFeat(FEAT_EPIC_ACROBATICS_10, oPC) ? 10 : bAcro;
bAcro = GetHasFeat(FEAT_EPIC_ACROBATICS_12, oPC) ? 12 : bAcro;
if (!bEnabled)
SendMessageToPC(oPC, "Your Ninja abilities are disabled because of encumbrance or armor.");
@ -63,13 +85,13 @@ void main()
if ((GetLevelByClass(CLASS_TYPE_MONK, oPC) > 0) || !bEnabled)
{
SetCompositeBonus(oSkin, "NinjaACBonus", 0, ITEM_PROPERTY_AC_BONUS);
// SendMessageToPC(oPC, "Setting to 0. Disabled.");
SetCompositeBonus(oSkin, "NinjaACBonus", nAC, ITEM_PROPERTY_AC_BONUS);
// SendMessageToPC(oPC, "Setting to Default AC for ninja level.");
}
else
{
SetCompositeBonus(oSkin, "NinjaACBonus", GetAbilityModifier(ABILITY_WISDOM, oPC), ITEM_PROPERTY_AC_BONUS);
// SendMessageToPC(oPC, "Setting to "+IntToString(GetAbilityModifier(ABILITY_WISDOM, oPC)));
SetCompositeBonus(oSkin, "NinjaACBonus", nAC + GetAbilityModifier(ABILITY_WISDOM, oPC), ITEM_PROPERTY_AC_BONUS);
// SendMessageToPC(oPC, "Setting to "+IntToString(nAC + GetAbilityModifier(ABILITY_WISDOM, oPC)));
}
if (bAcro)
{

View File

@ -25,6 +25,6 @@ void main()
Ninja_DecrementKi(OBJECT_SELF, FEAT_GHOST_WALK);
Ninja_DecrementKi(OBJECT_SELF);
float fDuration = RoundsToSeconds(GetLevelByClass(CLASS_TYPE_NINJA,OBJECT_SELF));
float fDuration = RoundsToSeconds(GetLevelByClass(CLASS_TYPE_NINJA, OBJECT_SELF));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectEthereal(), OBJECT_SELF, fDuration);
}

View File

@ -43051,7 +43051,7 @@ At level 24, the Ninja is capable of enhanced acrobatics gaining a +8 bonus to T
<entry id="55134" lang="en" sex="m">Ninja AC Bonus</entry>
<entry id="55135" lang="en" sex="m">Type of Feat: Class
Prerequisite: Ninja level 1.
Specifics: Ninjas add their Wisdom modifier to their Armor Class.
Specifics: When unarmored and unencumbered, a ninja adds her Wisdom bonus (if any) to her Armor Class. This ability does not stack with the monk's AC bonus ability (a ninja with levels of monk does not add the bonus twice). In addition, a ninja gains a +1 bonus to AC at 5th level. This bonus increases by 1 for every five ninja levels thereafter (+2 at 10th, +3 at 15th, and +4 at 20th level).
Use: Automatic.</entry>
<entry id="55136" lang="en" sex="m">Ghost-Faced Killer</entry>
<entry id="55137" lang="en" sex="m">Ghost-Faced Killers</entry>
@ -73238,6 +73238,12 @@ Level
- No Sacred Vow as requirement (so a Level 1 from any race can get it and to partially offset the lack of Bonus exalted feat)
- The level progression continues the same during the Epic Levels
</entry>
<entry id="213098" lang="en" sex="m">Martial Stalker</entry>
<entry id="213099" lang="en" sex="m">Type of Feat: General
Prerequisite: Ki Power, Proficiency with all martial weapons
Specifics: Your fighter and ninja levels stack for the purpose of determining the size of your ki pool, as well as your AC bonus. For example, a 5th-level fighter/1st-level ninja with this feat could use his ki powers a number of times equal to 3 (one-half his ninja and fighter levels) + his Wisdom bonus (if any), and would have a +1 bonus to AC (as if he were a 6th-level ninja).
Use: Automatic
Special: A fighter can select Martial Stalker as one of his fighter bonus feats</entry>
<entry id="213272" lang="en" sex="m">Force Missiles</entry>
<entry id="213273" lang="en" sex="m">Evocation [Force]
Level: Sorcerer 4, Wizard 4,