PRC8/nwn/nwnprc/trunk/scripts/prc_domain_str.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

62 lines
2.2 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Strength Domain Power
//:: prc_domain_str.nss
//::///////////////////////////////////////////////
/*
Grants Char level to Strength for 1 round
*/
//:://////////////////////////////////////////////
//:: Modified By: Stratovarius
//:: Modified On: 19.12.2005
//:://////////////////////////////////////////////
#include "inc_newspellbook"
#include "prc_inc_domain"
#include "inc_addragebonus"
void main()
{
object oTarget = OBJECT_SELF;
// Used by the uses per day check code for bonus domains
if(!DecrementDomainUses(PRC_DOMAIN_STRENGTH, oTarget)) return;
effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
int nStrBeforeBonuses = GetAbilityScore(oTarget, ABILITY_STRENGTH);
int nConBeforeBonuses = GetAbilityScore(oTarget, ABILITY_CONSTITUTION);
// Variables effected by MCoK levels
int nDur = 1;
int nBoost = GetDomainCasterLevel(oTarget);
// Mighty Contender class abilities
int nKord = GetLevelByClass(CLASS_TYPE_MIGHTY_CONTENDER_KORD, oTarget);
if(nKord)
{
int nFeatPower = 0;
nBoost += nKord;
// At 3rd level of MCoK, the duration increases
if(nKord >= 3)
nDur = d4() + 1;
// At 7th level of MCoK, add 1.5 * combined cleric + MCoK levels to strength for the first round
// At level 10 the boost is for the entire time so you don't need this to run
if(nKord >= 7 && nKord < 10)
{
nFeatPower = FloatToInt(nBoost * 1.5);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityIncrease(ABILITY_STRENGTH, nFeatPower), oTarget, 6.0);
}
if(nKord >= 10)
nBoost = FloatToInt(nBoost * 1.5);
}
effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH, nBoost);
effect eLink = EffectLinkEffects(eStr, eDur);
eLink = SupernaturalEffect(eLink);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDur));
DelayCommand(0.1, GiveExtraRageBonuses(nDur, nStrBeforeBonuses, nConBeforeBonuses, nBoost, 0, 0, DAMAGE_TYPE_BASE_WEAPON, oTarget));
}