1. // Morag OnDeath script m4q1d08_moragdea.nss
  2. //* MOrag dies, says one last line and then explodes
  3. #include "nw_i0_plot"
  4.  
  5. // * blows things up at end of game
  6. void KillObject(object oToKill)
  7. {
  8.     effect eDamage = EffectDamage(1000);
  9.     float fRandom = IntToFloat(Random(100)) * 0.001;
  10.     DelayCommand(fRandom, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDamage, oToKill));
  11. }
  12.  
  13. void main()
  14. {
  15.  
  16.     RewardXP("M4Q01_MAIN",100,GetLastKiller());
  17.     AddJournalQuestEntry("M4Q01_MAIN",99,GetLastKiller());
  18.     SetLocalInt(OBJECT_SELF,"NW_L_AMDEAD",10);
  19.     ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectResurrection(), OBJECT_SELF);
  20.     SetPlotFlag(OBJECT_SELF,TRUE);
  21.     effect eVis = EffectVisualEffect(VFX_IMP_SUNSTRIKE);
  22.     ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, eVis, GetLocation(OBJECT_SELF));
  23.     SpeakOneLinerConversation();
  24.     SetPlotFlag(OBJECT_SELF,FALSE);
  25.  
  26.     ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_FNF_IMPLOSION), GetNearestObjectByTag("ThroneEvil1"));
  27.     KillObject(GetNearestObjectByTag("M_FireWall_1"));
  28.     KillObject(GetNearestObjectByTag("M_FireWall_2"));
  29.     KillObject(GetNearestObjectByTag("M_FireWall_3"));
  30.     KillObject(GetNearestObjectByTag("M_FireWall_4"));
  31.     KillObject(GetNearestObjectByTag("ShaftofLightRed1"));
  32.     KillObject(GetNearestObjectByTag("ShaftofLightRed2"));
  33.     KillObject(GetNearestObjectByTag("ThroneEvil1"));
  34.  
  35.  
  36.     KillObject(GetNearestObjectByTag("M4Q1D08_IMM_FIRE"));
  37.     KillObject(GetNearestObjectByTag("M4Q1D2_FIRE"));
  38.     KillObject(GetNearestObjectByTag("M4Q1D08_IMM_COLD"));
  39.     KillObject(GetNearestObjectByTag("M4Q1D2_COLD"));
  40.     KillObject(GetNearestObjectByTag("M4Q1D08_IMM_OTHE"));
  41.     KillObject(GetNearestObjectByTag("M4Q1D2_OTHE"));
  42.     KillObject(GetNearestObjectByTag("M4Q1D08_IMM_BLUN"));
  43.     KillObject(GetNearestObjectByTag("M4Q1D2_BLUN"));
  44.     KillObject(GetNearestObjectByTag("M4Q1D08_IMM_PIER"));
  45.     KillObject(GetNearestObjectByTag("M4Q1D2_PIER"));
  46.     KillObject(GetNearestObjectByTag("M4Q1D08_IMM_ELEC"));
  47.     KillObject(GetNearestObjectByTag("M4Q1D2_ELEC"));
  48.     KillObject(GetNearestObjectByTag("M4Q1D08_IMM_SLAS"));
  49.     KillObject(GetNearestObjectByTag("M4Q1D2_SLAS"));
  50.     KillObject(GetNearestObjectByTag("M4Q1D08_IMM_POIS"));
  51.     KillObject(GetNearestObjectByTag("M4Q1D2_POIS"));
  52.  
  53.     // MrZork 2011/12/09: Only kill these guys on the easier settings
  54.     if (GetGameDifficulty() < GAME_DIFFICULTY_CORE_RULES)
  55.         {
  56.         KillObject(GetNearestObjectByTag("m4sac1"));
  57.         KillObject(GetNearestObjectByTag("m4sac2"));
  58.         KillObject(GetNearestObjectByTag("m4sac3"));
  59.         KillObject(GetNearestObjectByTag("m4sac4"));
  60.  
  61.         KillObject(GetNearestObjectByTag("m4sac1_c"));
  62.         KillObject(GetNearestObjectByTag("m4sac2_c"));
  63.         KillObject(GetNearestObjectByTag("M4_MIN_HULK"));
  64.         KillObject(GetNearestObjectByTag("M4_MIN_RENDER"));
  65.         }
  66.  
  67.     DestroyObject(OBJECT_SELF, 1.0);
  68.  
  69.  
  70.     // * all the post-plot stuff requires this to work
  71.     SetLocalInt(GetModule(),"NW_G_MORAGDEAD", 10);
  72.  
  73. }