Custom boss brain unconditionally kills all monsters on death.

Various random adjustments.
This commit is contained in:
Mari the Deer 2021-01-13 12:10:14 +01:00
commit 18c47e67eb
7 changed files with 99 additions and 37 deletions

View file

@ -13,3 +13,8 @@ Class SWWMConversationMenu : ConversationMenu
Class SWWMCompatSigil : Inventory
{
}
// TODO base class for all vanilla Strife item replacements that just get swapped out for cash
Class SWWMLootable : Inventory
{
}

View file

@ -301,6 +301,26 @@ Class SWWMBossBrain : BossBrain
}
}
// kill every single monster in the map, burn away spawn cubes, remove eyes
// just let players have their 100% kills in peace
void EverythingDies()
{
let ti = ThinkerIterator.Create("Actor");
Actor a;
while ( a = Actor(ti.Next()) )
{
if ( a is 'BossEye' ) a.SetStateLabel("Null");
else if ( a is 'SpawnShot' )
{
a.Spawn("SpawnFire",a.pos,ALLOW_REPLACE);
a.SetStateLabel("Null");
}
else if ( (a.Health > 0) && (a.bBossSpawned || a.bCOUNTKILL) )
a.DamageMobj(self,self,int.max,'EndMii',DMG_FORCED|DMG_THRUSTLESS);
}
}
Default
{
Tag "$FN_BOSSBRAIN";
@ -328,7 +348,11 @@ Class SWWMBossBrain : BossBrain
{
A_StartSound("brain/death",CHAN_VOICE,attenuation:ATTN_NONE);
A_QuakeEx(9,9,9,120,0,65535,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.);
if ( !eyeless ) SpawnBrainExpl(true);
if ( !eyeless )
{
SpawnBrainExpl(true);
EverythingDies();
}
Spawn("SWWMBossBrainPain",pos);
}
MBRN A -1 A_BrainDie();
@ -1433,7 +1457,7 @@ Class SWWMShadow : Actor
private void Update( bool nointerpolate = false )
{
// update scale / alpha
if ( (target is 'Inventory') && (Inventory(target).Owner || !target.bSPECIAL) || target.bKILLED || target.bINVISIBLE || (target.sprite == target.GetSpriteIndex('TNT1')) )
if ( ((target is 'Inventory') && Inventory(target).Owner) || target.bKILLED || target.bINVISIBLE || (target.sprite == target.GetSpriteIndex('TNT1')) || (target.sprite == target.GetSpriteIndex('ACLO') )
alpha = 0.;
else
{

View file

@ -316,6 +316,7 @@ Class MothPlushy : SWWMCollectible
{
Tag "$T_MOTHPLUSH";
Inventory.PickupMessage "$T_MOTHPLUSH";
SWWMCollectible.GestureWeapon "MothPlushyGesture";
Stamina 4000;
}
}
@ -325,6 +326,7 @@ Class AkariProject : SWWMCollectible
{
Tag "$T_AKARIPROJECT";
Inventory.PickupMessage "$T_AKARIPROJECT";
SWWMCollectible.GestureWeapon "AkariProjectGesture";
Stamina 2000;
Radius 4;
Height 22;
@ -336,6 +338,7 @@ Class LoveSignalsCD : SWWMCollectible
{
Tag "$T_LOVESIGNALS";
Inventory.PickupMessage "$T_LOVESIGNALS";
SWWMCollectible.GestureWeapon "LoveSignalsCDGesture";
Stamina 3000;
Radius 4;
Height 21;
@ -347,6 +350,7 @@ Class NutatcoBar : SWWMCollectible
{
Tag "$T_NUTATCO";
Inventory.PickupMessage "$T_NUTATCO";
SWWMCollectible.GestureWeapon "NutatcoBarGesture";
Stamina 200;
Radius 3;
Height 22;
@ -358,6 +362,7 @@ Class FrispyCorn : SWWMCollectible
{
Tag "$T_FRISPYCORN";
Inventory.PickupMessage "$T_FRISPYCORN";
SWWMCollectible.GestureWeapon "FrispyCornGesture";
Stamina 400;
Radius 5;
Height 23;
@ -371,6 +376,7 @@ Class SayaBean : SWWMCollectible
{
Tag "$T_SAYABEAN";
Inventory.PickupMessage "$T_SAYABEAN";
SWWMCollectible.GestureWeapon "SayaBeanGesture";
Stamina 5000;
Radius 6;
Height 23;
@ -384,6 +390,7 @@ Class DemoPlush : SWWMCollectible
Tag "$T_DEMOPLUSH";
Inventory.PickupMessage "$T_DEMOPLUSH";
SWWMCollectible.Availability AVAIL_Heretic;
SWWMCollectible.GestureWeapon "DemoPlushGesture";
Stamina 6000;
Radius 12;
Height 36;
@ -397,6 +404,7 @@ Class KirinCummies : SWWMCollectible
Tag "$T_PEACH";
Inventory.PickupMessage "$T_PEACH";
SWWMCollectible.Availability AVAIL_Hexen;
SWWMCollectible.GestureWeapon "KirinCummiesGesture";
Stamina 300;
Radius 3;
Height 21;
@ -409,6 +417,7 @@ Class MilkBreads : SWWMCollectible
Tag "$T_MILKBREAD";
Inventory.PickupMessage "$T_MILKBREAD";
SWWMCollectible.Availability AVAIL_Hexen;
SWWMCollectible.GestureWeapon "MilkBreadsGesture";
Stamina 900;
Radius 4;
Height 21;
@ -421,6 +430,7 @@ Class KirinManga : SWWMCollectible
Tag "$T_KIRINMANGA";
Inventory.PickupMessage "$T_KIRINMANGA";
SWWMCollectible.Availability AVAIL_Hexen;
SWWMCollectible.GestureWeapon "KirinMangaGesture";
Stamina 1600;
Radius 4;
Height 22;
@ -433,12 +443,26 @@ Class KirinPlush : SWWMCollectible
Tag "$T_KIRINPLUSH";
Inventory.PickupMessage "$T_KIRINPLUSH";
SWWMCollectible.Availability AVAIL_Hexen;
SWWMCollectible.GestureWeapon "KirinPlushGesture";
Stamina 8000;
Radius 14;
Height 37;
}
}
// TODO them gestures
Class MothPlushyGesture : SWWMItemGesture {}
Class AkariProjectGesture : SWWMItemGesture {}
Class LoveSignalsCDGesture : SWWMItemGesture {}
Class NutatcoBarGesture : SWWMItemGesture {}
Class FrispyCornGesture : SWWMItemGesture {}
Class DemoPlushGesture : SWWMItemGesture {}
Class SayaBeanGesture : SWWMItemGesture {}
Class KirinCummiesGesture : SWWMItemGesture {}
Class MilkBreadsGesture : SWWMItemGesture {}
Class KirinMangaGesture : SWWMItemGesture {}
Class KirinPlushGesture : SWWMItemGesture {}
// yay!
Class FancyConfetti : Actor
{

View file

@ -1257,13 +1257,13 @@ Class SWWMUtility
if ( i is 'DeepImpact' ) return true;
if ( i is 'ExplodiumGun' ) return true;
if ( i is 'Wallbuster' ) return true;
//if ( i is 'HeavyMahSheenGun' ) return true;
//if ( i is 'Quadravol' ) return true;
if ( i is 'HeavyMahSheenGun' ) return true;
if ( i is 'Quadravol' ) return true;
if ( i is 'Sparkster' ) return true;
//if ( i is 'EMPCarbine' ) return true;
if ( i is 'EMPCarbine' ) return true;
if ( i is 'CandyGun' ) return true;
//if ( i is 'RayKhom' ) return true;
//if ( i is 'GrandLance' ) return true;
if ( i is 'RayKhom' ) return true;
if ( i is 'GrandLance' ) return true;
if ( i is 'HealthNuggetItem' ) return true;
if ( i is 'ArmorNuggetItem' ) return true;
if ( i is 'WarArmor' ) return true;