Bringing PRC alpha up to parity with PRC35 with the exception of the marker feats, which need to be reworked. Updated PRC alpha release.
33 lines
1.6 KiB
Plaintext
33 lines
1.6 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: OnDamaged NPC eventscript
|
|
//:: prc_npc_damaged
|
|
//:://////////////////////////////////////////////
|
|
#include "moi_inc_moifunc"
|
|
|
|
void main()
|
|
{
|
|
object oPC = GetLastDamager();
|
|
if(GetHasFeat(FEAT_SADISTIC_REWARD, oPC) && PRCGetIsAliveCreature(OBJECT_SELF))
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ExtraordinaryEffect(EffectSavingThrowIncrease(SAVING_THROW_ALL, 1, SAVING_THROW_TYPE_ALL)), oPC, 6.0);
|
|
//SendMessageToPC(oPC, "Sadistic Reward running");
|
|
}
|
|
|
|
object oMeldshaper = GetLocalObject(OBJECT_SELF, "NecrocarnumShroud");
|
|
if (GetIsObjectValid(oMeldshaper) && PRCGetIsAliveCreature(OBJECT_SELF))
|
|
{
|
|
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_NECROCARNUM_SHROUD);
|
|
float fDist = MetersToFeet(GetDistanceBetween(oMeldshaper, OBJECT_SELF));
|
|
float nCheck = 5.0 + nEssentia * 5.0;
|
|
if (nCheck >= fDist && GetHasSpellEffect(MELD_NECROCARNUM_SHROUD, oMeldshaper))
|
|
{
|
|
if(PRCGetIsAliveCreature(OBJECT_SELF))
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectLinkEffects(EffectDamageIncrease(DAMAGE_BONUS_1), EffectAttackIncrease(1))), oMeldshaper, 6.0);
|
|
else // Assuming the enemy is dead here
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectLinkEffects(EffectDamageIncrease(DAMAGE_BONUS_1), EffectAttackIncrease(1))), oMeldshaper, RoundsToSeconds(GetHitDice(OBJECT_SELF)));
|
|
}
|
|
}
|
|
|
|
// Execute scripts hooked to this event for the NPC triggering it
|
|
ExecuteAllScriptsHookedToEvent(OBJECT_SELF, EVENT_NPC_ONDAMAGED);
|
|
} |