Added Martial Stalker feat
Added Martial Stalker feat. Fixed Ninja not getting level based AC. Updated Release archive.
This commit is contained in:
parent
6fb03d4d2a
commit
f52cab6870
BIN
Release/PRC8_20250117.7z
Normal file
BIN
Release/PRC8_20250117.7z
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
}
|
||||
|
Binary file not shown.
@ -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,
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user