Special Ynykron handling for D'Sparil and Korax.
This commit is contained in:
parent
c83c186942
commit
5765e6fcad
3 changed files with 32 additions and 2 deletions
|
|
@ -1,2 +1,2 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \cwGZ\c- r399 (Wed 24 Jun 14:55:40 CEST 2020)";
|
||||
SWWM_MODVER="\chSWWM \cwGZ\c- r400 (Wed 24 Jun 15:51:02 CEST 2020)";
|
||||
|
|
|
|||
|
|
@ -3065,6 +3065,12 @@ Class SWWMHandler : EventHandler
|
|||
}
|
||||
}
|
||||
|
||||
override void CheckReplacee( ReplacedEvent e )
|
||||
{
|
||||
if ( e.Replacement is 'DSparilHax' )
|
||||
e.Replacee = 'Sorcerer2';
|
||||
}
|
||||
|
||||
override void CheckReplacement( ReplaceEvent e )
|
||||
{
|
||||
// shell types (sorted by rarity
|
||||
|
|
|
|||
|
|
@ -53,9 +53,20 @@ Class PlayerGone : PlayerChunk
|
|||
}
|
||||
}
|
||||
|
||||
Class DSparilHax : Sorcerer2
|
||||
{
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Thing_Destroy(0);
|
||||
A_BossDeath();
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
Class IDontFeelSoGood : Thinker
|
||||
{
|
||||
Actor goner;
|
||||
int cnt;
|
||||
|
||||
static void DeletThis( Actor whomst )
|
||||
{
|
||||
|
|
@ -75,7 +86,20 @@ Class IDontFeelSoGood : Thinker
|
|||
Destroy();
|
||||
return;
|
||||
}
|
||||
if ( (goner.Health > 0) || (goner.tics != -1) ) return;
|
||||
if ( goner.Health > 0 ) return;
|
||||
// special handling for some bosses:
|
||||
// - D'Sparil does not spawn, he's already gone
|
||||
// - Korax doesn't leave ghosts
|
||||
if ( (goner.tics != -1) && !(goner is 'Sorcerer1') && !(goner is 'Korax') ) return;
|
||||
cnt++;
|
||||
if ( cnt < 15 ) return;
|
||||
if ( goner is 'Sorcerer1' )
|
||||
{
|
||||
let h = Actor.Spawn("DSparilHax",goner.pos);
|
||||
h.CopyFriendliness(goner,true);
|
||||
}
|
||||
else if ( goner is 'Korax' )
|
||||
level.ExecuteSpecial(80,goner,null,0,255);
|
||||
goner.Destroy();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue