//:://///////////////////////////////////////////// //:: 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)); }