forked from Jaysyn/PRC8
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);
|
||
|
}
|