Bump zscript ver to 4.14.1, plus a whole lot of stuff.
- Try to get rid of all implicit casts from string to name, color or class. - Use FindClass where needed. - Used a map in a case where a dictionary was unneeded. - Use new bounce flags where needed. - Replace Legacy of Rust weapons/ammo.
This commit is contained in:
parent
ceae806b68
commit
80db58b0d0
128 changed files with 3074 additions and 3088 deletions
|
|
@ -17,8 +17,8 @@ Class BlastSuitItem : SWWMSpareArmor
|
|||
Inventory.Icon "graphics/HUD/Icons/I_BlastSuit.png";
|
||||
Inventory.PickupMessage "$T_BLASTSUIT";
|
||||
Inventory.UseSound "armor/blastsuit";
|
||||
Inventory.RestrictedTo "Demolitionist";
|
||||
SWWMSpareArmor.GiveArmor "BlastSuit";
|
||||
Inventory.RestrictedTo 'Demolitionist';
|
||||
SWWMSpareArmor.GiveArmor 'BlastSuit';
|
||||
+NOGRAVITY;
|
||||
}
|
||||
States
|
||||
|
|
@ -44,8 +44,8 @@ Class WarArmorItem : SWWMSpareArmor
|
|||
Inventory.Icon "graphics/HUD/Icons/I_WarArmor.png";
|
||||
Inventory.PickupMessage "$T_WARARMOR";
|
||||
Inventory.UseSound "armor/wararmor";
|
||||
Inventory.RestrictedTo "Demolitionist";
|
||||
SWWMSpareArmor.GiveArmor "WarArmor";
|
||||
Inventory.RestrictedTo 'Demolitionist';
|
||||
SWWMSpareArmor.GiveArmor 'WarArmor';
|
||||
+NOGRAVITY;
|
||||
}
|
||||
States
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1196 \cu(dom 09 mar 2025 17:08:51 CET)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r1196 \cu(2025-03-09 17:08:51)\c-";
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1198 \cu(jue 13 mar 2025 14:50:58 CET)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r1198 \cu(2025-03-13 14:50:58)\c-";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
version "4.14"
|
||||
version "4.14.1"
|
||||
|
||||
/*
|
||||
DEMOLITIONIST Main Codebase
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ Class SWWMLevelCompatibility : LevelPostProcessor
|
|||
SetSectorSpecial(13,0);
|
||||
// paint it black
|
||||
for ( int i=1; i<4; i++ )
|
||||
level.Sectors[13].SetSpecialColor(i,"Black");
|
||||
level.Sectors[13].SetSpecialColor(i,0xFF000000);
|
||||
// teleport sequence
|
||||
for ( int i=299; i<=306; i++ )
|
||||
SetLineSpecial(i,ACS_Execute,-Int('E1M8_KNOCKOUT'));
|
||||
|
|
@ -76,7 +76,7 @@ Class SWWMLevelCompatibility : LevelPostProcessor
|
|||
SetSectorSpecial(66,0);
|
||||
// paint it black
|
||||
for ( int i=1; i<4; i++ )
|
||||
level.Sectors[66].SetSpecialColor(i,"Black");
|
||||
level.Sectors[66].SetSpecialColor(i,0xFF000000);
|
||||
// teleport sequence
|
||||
for ( int i=299; i<=306; i++ )
|
||||
SetLineSpecial(i,ACS_Execute,-Int('E1M8_KNOCKOUT'));
|
||||
|
|
@ -95,7 +95,7 @@ Class SWWMLevelCompatibility : LevelPostProcessor
|
|||
SetSectorSpecial(538,0);
|
||||
// paint it black
|
||||
for ( int i=1; i<4; i++ )
|
||||
level.Sectors[538].SetSpecialColor(i,"Black");
|
||||
level.Sectors[538].SetSpecialColor(i,0xFF000000);
|
||||
// teleport sequence
|
||||
static const int exitlines[] =
|
||||
{
|
||||
|
|
|
|||
|
|
@ -24,12 +24,8 @@ Class SWWMHDoomHandler : StaticEventHandler
|
|||
|
||||
override void OnRegister()
|
||||
{
|
||||
foreach ( cls:AllActorClasses )
|
||||
{
|
||||
if ( cls.GetClassName() != "HDoomPlayer" ) continue;
|
||||
if ( FindClass('HDoomPlayer','PlayerPawn') )
|
||||
detected = true;
|
||||
break;
|
||||
}
|
||||
if ( !detected )
|
||||
return;
|
||||
callout_len = int(ceil((S_GetLength("hdoom/horny")*GameTicRate)/16)*16);
|
||||
|
|
|
|||
|
|
@ -36,27 +36,22 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
override void OnRegister()
|
||||
{
|
||||
// check for brutal doom
|
||||
foreach ( cls:AllActorClasses )
|
||||
{
|
||||
if ( (cls.GetClassName() == 'Doomer') || (cls.GetClassName() == 'BDoomer') || (cls.GetClassName() == 'BEDoomer') )
|
||||
{
|
||||
detected = true;
|
||||
}
|
||||
if ( !detected ) continue;
|
||||
let shnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
shnd.isbd = true;
|
||||
Console.PrintfEx(PRINT_HIGH|PRINT_NONOTIFY,
|
||||
"\cx┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\c-\n"
|
||||
"\cx┃ \cfIf you have BD on your autoload you really shouldn't.\cx ┃\c-\n"
|
||||
"\cx┃ \cfIf you manually loaded it with this mod, why would you?\cx ┃\c-\n"
|
||||
"\cx┃ \cfThey're not compatible and never will be.\cx ┃\c-\n"
|
||||
"\cx┃ \cfThis mod will now shit the bed once you go in-game,\cx ┃\c-\n"
|
||||
"\cx┃ \cfand trust me, it's better this way.\cx ┃\c-\n"
|
||||
"\cx┃ \cf<See you again, have a nice day>\cx ┃\c-\n"
|
||||
"\cx┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\c-");
|
||||
S_StartSound("compat/warn",CHAN_YABLEWIT,CHANF_UI|CHANF_NOPAUSE|CHANF_OVERLAP,1,ATTN_NONE);
|
||||
break;
|
||||
}
|
||||
if ( FindClass('Doomer','PlayerPawn') || FindClass('BDoomer','PlayerPawn') || FindClass('BEDoomer','PlayerPawn') )
|
||||
detected = true;
|
||||
if ( !detected )
|
||||
return;
|
||||
let shnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
shnd.isbd = true;
|
||||
Console.PrintfEx(PRINT_HIGH|PRINT_NONOTIFY,
|
||||
"\cx┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\c-\n"
|
||||
"\cx┃ \cfIf you have BD on your autoload you really shouldn't.\cx ┃\c-\n"
|
||||
"\cx┃ \cfIf you manually loaded it with this mod, why would you?\cx ┃\c-\n"
|
||||
"\cx┃ \cfThey're not compatible and never will be.\cx ┃\c-\n"
|
||||
"\cx┃ \cfThis mod will now shit the bed once you go in-game,\cx ┃\c-\n"
|
||||
"\cx┃ \cfand trust me, it's better this way.\cx ┃\c-\n"
|
||||
"\cx┃ \cf<See you again, have a nice day>\cx ┃\c-\n"
|
||||
"\cx┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\c-");
|
||||
S_StartSound("compat/warn",CHAN_YABLEWIT,CHANF_UI|CHANF_NOPAUSE|CHANF_OVERLAP,1,ATTN_NONE);
|
||||
}
|
||||
|
||||
override void WorldLoaded( WorldEvent e )
|
||||
|
|
@ -95,12 +90,12 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
eztextpos[2] = (80.,140.);
|
||||
eztextpos[3] = (100.,1660.);
|
||||
eztextpos[4] = (300.,1660.);
|
||||
ezcolor[0] = Font.FindFontColor("BDSayaRed");
|
||||
ezcolor[1] = Font.FindFontColor("BDSayaRed");
|
||||
ezcolor[2] = Font.FindFontColor("BDDemoGreen");
|
||||
ezcolor[3] = Font.FindFontColor("BDDemoGreen");
|
||||
ezcolor[4] = Font.FindFontColor("BDSayaRed");
|
||||
fnt = Font.GetFont("TewiFontOutline");
|
||||
ezcolor[0] = Font.FindFontColor('BDSayaRed');
|
||||
ezcolor[1] = Font.FindFontColor('BDSayaRed');
|
||||
ezcolor[2] = Font.FindFontColor('BDDemoGreen');
|
||||
ezcolor[3] = Font.FindFontColor('BDDemoGreen');
|
||||
ezcolor[4] = Font.FindFontColor('BDSayaRed');
|
||||
fnt = Font.GetFont('TewiFontOutline');
|
||||
for ( int i=0; i<5; i++ )
|
||||
{
|
||||
ezlines[i] = fnt.BreakLines(eztext[i],1000);
|
||||
|
|
@ -175,30 +170,30 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
override void RenderOverlay( RenderEvent e )
|
||||
{
|
||||
if ( !detected ) return;
|
||||
Screen.Dim("Black",clamp((timer+e.fractic)/50.,0.,.5),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Screen.Dim(0xFF000000,clamp((timer+e.fractic)/50.,0.,.5),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( timer < 50 ) return;
|
||||
double hs = max(min(floor(Screen.GetWidth()/640.),floor(Screen.GetHeight()/360.)),1.)/6.;
|
||||
Vector2 pos = ((Screen.GetWidth()-(2800.*hs))/2.,(Screen.GetHeight()-(2100.*hs))/2.);
|
||||
if ( timer > 300 )
|
||||
{
|
||||
double fact = clamp(((timer+e.fractic)-300.)/100.,0.,1.);
|
||||
Screen.Dim("Red",fact,0,0,Screen.GetWidth(),Screen.GetHeight(),STYLE_Add);
|
||||
Screen.Dim(0xFFFF0000,fact,0,0,Screen.GetWidth(),Screen.GetHeight(),STYLE_Add);
|
||||
rss = MSTime()/10;
|
||||
pos.x += RandomShiver()*128.*hs*fact*fact;
|
||||
pos.y += RandomShiver()*128.*hs*fact*fact;
|
||||
}
|
||||
Screen.SetClipRect(int(pos.x),int(pos.y),int(2800.*hs),int(2100.*hs));
|
||||
Screen.Dim("White",1.,int(pos.x),int(pos.y),int(2800.*hs),int(2100.*hs));
|
||||
Screen.Dim(0xFFFFFFFF,1.,int(pos.x),int(pos.y),int(2800.*hs),int(2100.*hs));
|
||||
rss = MSTime()/40;
|
||||
for ( int i=0; i<6; i++ )
|
||||
{
|
||||
double ypos = RandomOffset()*2100.*hs;
|
||||
Screen.DrawThickLine(pos.x,pos.y+ypos,pos.x+2800.*hs,pos.y+ypos,8.*hs,"Black");
|
||||
Screen.DrawThickLine(pos.x,pos.y+ypos,pos.x+2800.*hs,pos.y+ypos,8.*hs,0xFF000000);
|
||||
}
|
||||
for ( int i=0; i<12; i++ )
|
||||
{
|
||||
double ypos = RandomOffset()*2100.*hs;
|
||||
Screen.DrawThickLine(pos.x,pos.y+ypos,pos.x+2800.*hs,pos.y+ypos,2.*hs,"Black");
|
||||
Screen.DrawThickLine(pos.x,pos.y+ypos,pos.x+2800.*hs,pos.y+ypos,2.*hs,0xFF000000);
|
||||
}
|
||||
if ( ezstate[1] )
|
||||
Screen.DrawTexture(eztex[2],false,pos.x+SWWMUtility.Lerp(ezslide[3],ezslide[2],e.fractic),pos.y,DTA_ScaleX,hs,DTA_ScaleY,hs);
|
||||
|
|
@ -218,6 +213,6 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
Screen.ClearClipRect();
|
||||
Screen.DrawTexture(eztex[0],false,pos.x,pos.y,DTA_ScaleX,hs,DTA_ScaleY,hs);
|
||||
if ( timer > 300 )
|
||||
Screen.Dim("Red",clamp(((timer+e.fractic)-350.)/50.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight(),STYLE_Translucent);
|
||||
Screen.Dim(0xFFFF0000,clamp(((timer+e.fractic)-350.)/50.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight(),STYLE_Translucent);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ Class RayBolt : MagAmmo
|
|||
Tag "$T_RAYBOLT";
|
||||
MagAmmo.PickupTag "RAYBOLT";
|
||||
Stamina -8000;
|
||||
MagAmmo.ParentAmmo "RayAmmo";
|
||||
MagAmmo.ParentAmmo 'RayAmmo';
|
||||
MagAmmo.ClipSize 10;
|
||||
MagAmmo.BackpackAmount 2;
|
||||
Inventory.MaxAmount 10;
|
||||
|
|
@ -254,7 +254,7 @@ Class RayAmmo : SWWMAmmo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 5;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "RayBolt";
|
||||
SWWMAmmo.MagAmmoType 'RayBolt';
|
||||
Accuracy 90;
|
||||
}
|
||||
States
|
||||
|
|
@ -272,7 +272,7 @@ Class MisterRound : MagAmmo
|
|||
Tag "$T_MRROUND";
|
||||
MagAmmo.PickupTag "MRROUND";
|
||||
Stamina -16000;
|
||||
MagAmmo.ParentAmmo "MisterAmmo";
|
||||
MagAmmo.ParentAmmo 'MisterAmmo';
|
||||
MagAmmo.ClipSize 12;
|
||||
MagAmmo.BackpackAmount 1;
|
||||
Inventory.MaxAmount 12;
|
||||
|
|
@ -318,7 +318,7 @@ Class MisterAmmo : SWWMAmmo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 3;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "MisterRound";
|
||||
SWWMAmmo.MagAmmoType 'MisterRound';
|
||||
Accuracy 90;
|
||||
}
|
||||
States
|
||||
|
|
@ -359,7 +359,7 @@ Class MisterGAmmo : SWWMAmmo
|
|||
MagAmmo.PickupTag "ULTIMATEPOD";
|
||||
Stamina -400000;
|
||||
Inventory.PickupSound "misc/bullet_pkup_vip";
|
||||
MagAmmo.ParentAmmo "UltimateAmmo";
|
||||
MagAmmo.ParentAmmo 'UltimateAmmo';
|
||||
MagAmmo.ClipSize 4;
|
||||
Inventory.MaxAmount 4;
|
||||
}
|
||||
|
|
@ -384,7 +384,7 @@ Class UltimateAmmo : SWWMAmmo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 2;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "UltimatePod";
|
||||
SWWMAmmo.MagAmmoType 'UltimatePod';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ Class PlasmaBlast : SWWMWeapon
|
|||
Weapon.SlotPriority 3.;
|
||||
Weapon.SelectionOrder 1100;
|
||||
Inventory.MaxAmount 2;
|
||||
Weapon.SisterWeapon "DualPlasmaBlast";
|
||||
Weapon.SisterWeapon 'DualPlasmaBlast';
|
||||
Stamina 7000;
|
||||
PlasmaBlast.ClipCount 8;
|
||||
+WEAPON.EXPLOSIVE;
|
||||
|
|
@ -66,7 +66,7 @@ Class DualPlasmaBlast : SWWMWeapon
|
|||
Weapon.SlotNumber 2;
|
||||
Weapon.SlotPriority 4.;
|
||||
Weapon.SelectionOrder 1050;
|
||||
Weapon.SisterWeapon "PlasmaBlast";
|
||||
Weapon.SisterWeapon 'PlasmaBlast';
|
||||
DualPlasmaBlast.ClipCount 8;
|
||||
+WEAPON.EXPLOSIVE;
|
||||
+SWWMWEAPON.HIDEINMENU;
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ Class ModernSparkster : SWWMWeapon
|
|||
Weapon.SlotNumber 7;
|
||||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 550;
|
||||
Weapon.AmmoType1 "SparksterBAmmo";
|
||||
Weapon.AmmoType1 'SparksterBAmmo';
|
||||
Weapon.AmmoGive1 1;
|
||||
Weapon.AmmoType2 "SparksterRAmmo";
|
||||
Weapon.AmmoType2 'SparksterRAmmo';
|
||||
Weapon.AmmoGive2 1;
|
||||
SWWMWeapon.DropAmmoType "SWWMCellAmmoSmall";
|
||||
SWWMWeapon.DropAmmoType 'SWWMCellAmmoSmall';
|
||||
ModernSparkster.ClipCount 4;
|
||||
ModernSparkster.ClipCount2 4;
|
||||
Stamina 220000;
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ extend Class MisterRifle
|
|||
y -= pady/2;
|
||||
w += padx;
|
||||
h += pady;
|
||||
TouchScreen.Dim("Black",.8,x,y,w,h);
|
||||
TouchScreen.Dim(0xFF000000,.8,x,y,w,h);
|
||||
TouchScreen.DrawTexture(FrameTex,false,x,y,DTA_SrcX,0.,DTA_SrcY,0.,DTA_SrcWidth,1.,DTA_SrcHeight,1.,DTA_DestWidth,1,DTA_DestHeight,1);
|
||||
if ( w > 2 ) TouchScreen.DrawTexture(FrameTex,false,x+1,y,DTA_SrcX,1.,DTA_SrcY,0.,DTA_SrcWidth,1.,DTA_SrcHeight,1.,DTA_DestWidth,int(w-2),DTA_DestHeight,1);
|
||||
if ( h > 2 ) TouchScreen.DrawTexture(FrameTex,false,x,y+1,DTA_SrcX,0.,DTA_SrcY,1.,DTA_SrcWidth,1.,DTA_SrcHeight,1.,DTA_DestWidth,1,DTA_DestHeight,int(h-2));
|
||||
|
|
@ -182,14 +182,14 @@ extend Class MisterRifle
|
|||
oldgrenade = gstate;
|
||||
// Side touchscreen
|
||||
if ( !TouchScreen ) TouchScreen = TexMan.GetCanvas("MORTLED1");
|
||||
if ( !MortalFontSmall ) MortalFontSmall = Font.GetFont("MortalFont20");
|
||||
if ( !MortalFontMed ) MortalFontMed = Font.GetFont("MortalFont40");
|
||||
if ( !MortalFontBig ) MortalFontBig = Font.GetFont("MortalFont80");
|
||||
if ( !MortalFontSmall ) MortalFontSmall = Font.GetFont('MortalFont20');
|
||||
if ( !MortalFontMed ) MortalFontMed = Font.GetFont('MortalFont40');
|
||||
if ( !MortalFontBig ) MortalFontBig = Font.GetFont('MortalFont80');
|
||||
if ( !MortalBG ) MortalBG = TexMan.CheckForTexture("models/canvas/MortalBG.png");
|
||||
if ( !MortalIcons[0] ) MortalIcons[0] = TexMan.CheckForTexture("models/canvas/MortalFireIcons.png");
|
||||
if ( !MortalIcons[1] ) MortalIcons[1] = TexMan.CheckForTexture("models/canvas/MortalGrenadeIcons.png");
|
||||
TouchScreen.DrawTexture(MortalBG,false,0,0);
|
||||
TouchScreen.Dim("Black",.8,0,0,256,22);
|
||||
TouchScreen.Dim(0xFF000000,.8,0,0,256,22);
|
||||
String str = "MR\cu-\c-"..serialnum;
|
||||
TouchScreen.DrawText(MortalFontSmall,Font.CR_WHITE,8,0,str);
|
||||
str = DemolitionistMenu.CrimeTime(c_year,c_month,c_day,c_hour,c_minute,c_tz,true);
|
||||
|
|
@ -200,20 +200,20 @@ extend Class MisterRifle
|
|||
int fw = MortalFontBig.StringWidth(str), fh = MortalFontBig.GetHeight();
|
||||
DrawWindowFrame(80-fw/2,72-fh/2,fw,fh,32);
|
||||
bool blink = (ingun<=4)&&(gametic%16<=8);
|
||||
if ( ingun <= 0 ) TouchScreen.DrawText(MortalFontBig,Font.FindFontColor("MiniBlurp"),80-fw/2,72-fh/2,"00",DTA_ColorOverlay,blink?0xA0000000:0x80000000);
|
||||
if ( ingun <= 0 ) TouchScreen.DrawText(MortalFontBig,Font.FindFontColor('MiniBlurp'),80-fw/2,72-fh/2,"00",DTA_ColorOverlay,blink?0xA0000000:0x80000000);
|
||||
else
|
||||
{
|
||||
TouchScreen.DrawText(MortalFontBig,Font.FindFontColor("MiniBlurp"),80-fw/2,72-fh/2,str,DTA_ColorOverlay,blink?0x80000000:0x00000000);
|
||||
if ( ingun < 10 ) TouchScreen.DrawText(MortalFontBig,Font.FindFontColor("MiniBlurp"),80-fw/2,72-fh/2,"0 ",DTA_ColorOverlay,blink?0xA0000000:0x80000000);
|
||||
TouchScreen.DrawText(MortalFontBig,Font.FindFontColor('MiniBlurp'),80-fw/2,72-fh/2,str,DTA_ColorOverlay,blink?0x80000000:0x00000000);
|
||||
if ( ingun < 10 ) TouchScreen.DrawText(MortalFontBig,Font.FindFontColor('MiniBlurp'),80-fw/2,72-fh/2,"0 ",DTA_ColorOverlay,blink?0xA0000000:0x80000000);
|
||||
}
|
||||
if ( ammoflash && (gametic < ammoflash) )
|
||||
{
|
||||
double alph = (increase?clamp((ammoflash-(gametic+e.fractic))/25.,0.,1.):clamp((ammoflash-(gametic+e.fractic))/5.,0.,1.))**2.;
|
||||
if ( ingun <= 0 ) TouchScreen.DrawText(MortalFontBig,Font.FindFontColor("MiniWhiteFlash"),80-fw/2,72-fh/2,"00",DTA_ColorOverlay,blink?0xA0000000:0x80000000,DTA_Alpha,alph*.8,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
if ( ingun <= 0 ) TouchScreen.DrawText(MortalFontBig,Font.FindFontColor('MiniWhiteFlash'),80-fw/2,72-fh/2,"00",DTA_ColorOverlay,blink?0xA0000000:0x80000000,DTA_Alpha,alph*.8,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
else
|
||||
{
|
||||
TouchScreen.DrawText(MortalFontBig,Font.FindFontColor("MiniWhiteFlash"),80-fw/2,72-fh/2,str,DTA_ColorOverlay,blink?0x80000000:0x00000000,DTA_Alpha,alph*.8,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
if ( ingun < 10 ) TouchScreen.DrawText(MortalFontBig,Font.FindFontColor("MiniWhiteFlash"),80-fw/2,72-fh/2,"0 ",DTA_ColorOverlay,blink?0xA0000000:0x80000000,DTA_Alpha,alph*.8,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
TouchScreen.DrawText(MortalFontBig,Font.FindFontColor('MiniWhiteFlash'),80-fw/2,72-fh/2,str,DTA_ColorOverlay,blink?0x80000000:0x00000000,DTA_Alpha,alph*.8,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
if ( ingun < 10 ) TouchScreen.DrawText(MortalFontBig,Font.FindFontColor('MiniWhiteFlash'),80-fw/2,72-fh/2,"0 ",DTA_ColorOverlay,blink?0xA0000000:0x80000000,DTA_Alpha,alph*.8,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
}
|
||||
}
|
||||
fw = 64;
|
||||
|
|
@ -242,7 +242,7 @@ extend Class MisterRifle
|
|||
fw = MortalFontMed.StringWidth(str);
|
||||
fh = MortalFontMed.GetHeight();
|
||||
DrawWindowFrame(128-fw/2,72-fh/2,fw,fh,8,4);
|
||||
TouchScreen.DrawText(MortalFontMed,Font.FindFontColor("MiniBrass"),128-fw/2,72-fh/2,str,DTA_ColorOverlay,(gametic%8>=4)?0x80000000:0x000000);
|
||||
TouchScreen.DrawText(MortalFontMed,Font.FindFontColor('MiniBrass'),128-fw/2,72-fh/2,str,DTA_ColorOverlay,(gametic%8>=4)?0x80000000:0x000000);
|
||||
}
|
||||
if ( noammotic && (noammotic > gametic) )
|
||||
{
|
||||
|
|
@ -251,7 +251,7 @@ extend Class MisterRifle
|
|||
fw = MortalFontBig.StringWidth(str);
|
||||
fh = MortalFontBig.GetHeight();
|
||||
DrawWindowFrame(128-fw/2,72-fh/2,fw,fh,16,8);
|
||||
TouchScreen.DrawText(MortalFontBig,Font.FindFontColor("MiniRed"),128-fw/2,72-fh/2,str,DTA_ColorOverlay,(gametic%16>=8)?0x80000000:0x000000);
|
||||
TouchScreen.DrawText(MortalFontBig,Font.FindFontColor('MiniRed'),128-fw/2,72-fh/2,str,DTA_ColorOverlay,(gametic%16>=8)?0x80000000:0x000000);
|
||||
}
|
||||
if ( prefirecnt > 0 )
|
||||
{
|
||||
|
|
@ -279,12 +279,12 @@ extend Class MisterRifle
|
|||
double bw = PreFireInter.GetValue(e.FracTic);
|
||||
Color barcol = SWWMUtility.LerpColor(0xFF000080,0xFF00C0FF,bw/100.);
|
||||
TouchScreen.Dim(barcol,1.,128-50,72+(fh/2-12),int(bw),8);
|
||||
TouchScreen.DrawText(fnt,Font.FindFontColor("MiniCyanblu"),128-strw/2,72-fh/2+fofs,str);
|
||||
TouchScreen.DrawText(fnt,Font.FindFontColor('MiniCyanblu'),128-strw/2,72-fh/2+fofs,str);
|
||||
if ( (prefirecnt >= 100) && ((gametic-holdtic)%32 <= 16) )
|
||||
{
|
||||
double alph = clamp(1.-((gametic-holdtic)%32)/16.,0.,1.)**2.;
|
||||
TouchScreen.Dim(0xFFFFFFFF,alph*.8,128-50,72+(fh/2-12),int(bw),8,STYLE_Add);
|
||||
TouchScreen.DrawText(fnt,Font.FindFontColor("MiniWhiteFlash"),128-strw/2,72-fh/2+fofs,str,DTA_Alpha,alph*.8,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
TouchScreen.DrawText(fnt,Font.FindFontColor('MiniWhiteFlash'),128-strw/2,72-fh/2+fofs,str,DTA_Alpha,alph*.8,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
}
|
||||
}
|
||||
// Holo sub-screen
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ extend Class MisterRifle
|
|||
if ( !ModeFont ) ModeFont = Font.GetFont('MiniHUDShadow');
|
||||
Screen.DrawTexture(WeaponBox,false,bx-23,by-32,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
static const int fmod[] = {0x0050,0x0043,0x0053,0x004F};
|
||||
Screen.DrawChar(ModeFont,Font.FindFontColor("MiniBrass"),bx-20,by-20,fmod[firemode],DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
Screen.DrawChar(ModeFont,Font.FindFontColor('MiniBrass'),bx-20,by-20,fmod[firemode],DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
if ( chambered ) Screen.DrawTexture(BulletTex[0],false,bx-12,by-30,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,fired?0x80000000:0x00000000);
|
||||
for ( int i=0; i<clipcount; i++ )
|
||||
Screen.DrawTexture(BulletTex[0],false,bx-12,(by-27)+2*i,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ Class ItamexHammer : SWWMWeapon
|
|||
A_BumpFOV(.9);
|
||||
A_QuakeEx(5.,5.,5.,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.35);
|
||||
A_AlertMonsters(swwm_uncapalert?0:800);
|
||||
return nojump?ResolveState(null):ResolveState("FireHit");
|
||||
return nojump?ResolveState(null):ResolveState('FireHit');
|
||||
}
|
||||
A_BumpFOV(.95);
|
||||
A_QuakeEx(.5,.5,.5,15,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
|
||||
|
|
@ -124,7 +124,7 @@ Class ItamexHammer : SWWMWeapon
|
|||
{
|
||||
A_StartSound("itamex/swing",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
invoker.bSpinning = false;
|
||||
return ResolveState("ZoomEnd");
|
||||
return ResolveState('ZoomEnd');
|
||||
}
|
||||
return ResolveState(null);
|
||||
}
|
||||
|
|
@ -159,7 +159,7 @@ Class ItamexHammer : SWWMWeapon
|
|||
if ( !(player.cmd.buttons&BT_ALTATTACK) )
|
||||
{
|
||||
A_WeaponOffset(0,32,WOF_INTERPOLATE);
|
||||
return ResolveState("AltRelease");
|
||||
return ResolveState('AltRelease');
|
||||
}
|
||||
return ResolveState(null);
|
||||
}
|
||||
|
|
@ -189,7 +189,7 @@ Class ItamexHammer : SWWMWeapon
|
|||
A_BumpFOV(.85);
|
||||
A_QuakeEx(8.,8.,8.,10,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.);
|
||||
A_AlertMonsters(swwm_uncapalert?0:2500);
|
||||
let s = Spawn("HammerShockwave",(pos.x,pos.y,floorz));
|
||||
let s = Spawn('HammerShockwave',(pos.x,pos.y,floorz));
|
||||
s.target = self;
|
||||
s.special1 = int(invoker.charge*3);
|
||||
}
|
||||
|
|
@ -318,7 +318,7 @@ Class ItamexHammer : SWWMWeapon
|
|||
invoker.hitcnt = 0;
|
||||
invoker.bFalling = true;
|
||||
A_StartSound("itamex/spin",CHAN_WEAPONEXTRA,CHANF_LOOP);
|
||||
return ResolveState("AltFall");
|
||||
return ResolveState('AltFall');
|
||||
}
|
||||
A_BumpView(3.);
|
||||
A_HammerAltHit();
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ Class HammerShockwave : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<360; i+=5 )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,3);
|
||||
let s = Spawn("SWWMSmoke",Vec3Angle(4,i,8));
|
||||
let s = Spawn('SWWMSmoke',Vec3Angle(4,i,8));
|
||||
s.vel = pvel+SWWMUtility.AngleToVector3(i,7.);
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
s.special1 = Random[ExploS](1,4);
|
||||
|
|
@ -26,7 +26,7 @@ Class HammerShockwave : SWWMNonInteractiveActor
|
|||
}
|
||||
for ( int i=0; i<360; i+=5 )
|
||||
{
|
||||
let r = Spawn("HammerRadiusShockwave",Vec3Angle(5,i));
|
||||
let r = Spawn('HammerRadiusShockwave',Vec3Angle(5,i));
|
||||
r.target = target;
|
||||
r.angle = i;
|
||||
r.vel.xy = AngleToVector(i,r.speed+special1*.1);
|
||||
|
|
@ -36,12 +36,12 @@ Class HammerShockwave : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,12);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
let raging = RagekitPower(target.FindInventory("RagekitPower"));
|
||||
let raging = RagekitPower(target.FindInventory('RagekitPower'));
|
||||
// bust the floor
|
||||
let tempme = new("LineTracer"); // gross hack to pass needed data
|
||||
let tempme = new('LineTracer'); // gross hack to pass needed data
|
||||
int dmg = 300+special1*4;
|
||||
if ( raging ) dmg *= 8;
|
||||
F3DFloor ff;
|
||||
|
|
@ -57,7 +57,7 @@ Class HammerShockwave : SWWMNonInteractiveActor
|
|||
BusterWall.Bust(tempme.Results,dmg,target,(0,0,-1),pos.z);
|
||||
if ( raging )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",pos);
|
||||
let ps = Spawn('BigPunchSplash',pos);
|
||||
ps.damagetype = 'GroundPound';
|
||||
ps.target = target;
|
||||
ps.special1 = dmg;
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ Class PiercingTracer : SpreadgunTracer
|
|||
// liquid splashes
|
||||
if ( Results.CrossedWater )
|
||||
{
|
||||
let hl = new("WaterHit");
|
||||
let hl = new('WaterHit');
|
||||
hl.hitpos = Results.CrossedWaterPos;
|
||||
WaterHitList.Push(hl);
|
||||
}
|
||||
else if ( Results.Crossed3DWater )
|
||||
{
|
||||
let hl = new("WaterHit");
|
||||
let hl = new('WaterHit');
|
||||
hl.hitpos = Results.Crossed3DWaterPos;
|
||||
WaterHitList.Push(hl);
|
||||
}
|
||||
|
|
@ -25,7 +25,7 @@ Class PiercingTracer : SpreadgunTracer
|
|||
{
|
||||
if ( Results.HitActor.bSHOOTABLE )
|
||||
{
|
||||
let ent = new("HitListEntry");
|
||||
let ent = new('HitListEntry');
|
||||
ent.hitactor = Results.HitActor;
|
||||
ent.hitlocation = Results.HitPos;
|
||||
ent.x = Results.HitVector;
|
||||
|
|
@ -80,7 +80,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
let [x, y, z] = SWWMUtility.GetPlayerAxes(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,4,8,-12);
|
||||
let c = Spawn("SheenCasing",origin);
|
||||
let c = Spawn('SheenCasing',origin);
|
||||
c.angle = angle;
|
||||
c.pitch = pitch;
|
||||
c.vel = x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](.5,2.)-(0,0,FRandom[Junk](2.,5.));
|
||||
|
|
@ -111,7 +111,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
A_QuakeEx(2.,2.,2.,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.25);
|
||||
A_StartSound("sheen/700rpm",CHAN_WEAPONEXTRA,CHANF_LOOPING,attenuation:.5);
|
||||
invoker.vibrate = .25;
|
||||
A_Overlay(-9999,"EjectRound3");
|
||||
A_Overlay(-9999,'EjectRound3');
|
||||
SWWMUtility.DoKnockback(self,-x,9000.);
|
||||
SWWMUtility.AchievementProgress("dakka",(gametic-invoker.firetimer)/GameTicRate,player);
|
||||
}
|
||||
|
|
@ -125,7 +125,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
A_StartSound("sheen/2100rpm",CHAN_WEAPONEXTRA,CHANF_LOOPING,attenuation:.4);
|
||||
invoker.vibrate = min(1.,invoker.vibrate*1.05+.05);
|
||||
SWWMUtility.DoKnockback(self,-x,15000.);
|
||||
A_Overlay(-9999,"EjectRound1");
|
||||
A_Overlay(-9999,'EjectRound1');
|
||||
}
|
||||
else if ( invoker.firespeed == 0 )
|
||||
{
|
||||
|
|
@ -136,7 +136,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
A_QuakeEx(1.4,1.4,1.4,8,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.25);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6);
|
||||
SWWMUtility.DoKnockback(self,-x,6000.);
|
||||
A_Overlay(-9999,"EjectRound7");
|
||||
A_Overlay(-9999,'EjectRound7');
|
||||
}
|
||||
if ( invoker.barrelheat > 100. )
|
||||
{
|
||||
|
|
@ -150,7 +150,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
let [x2, y2, z2] = SWWMUtility.GetPlayerAxesAutoAimed(self);
|
||||
double a = FRandom[Sheen](0,360), s = FRandom[Sheen](.002,.02)*spreadfct;
|
||||
Vector3 dir = SWWMUtility.ConeSpread(x2,y2,z2,a,s);
|
||||
if ( !invoker.st ) invoker.st = new("PiercingTracer");
|
||||
if ( !invoker.st ) invoker.st = new('PiercingTracer');
|
||||
let st = invoker.st; // thanks zscript
|
||||
st.penetration = 25.+invoker.barrelheat/6.;
|
||||
st.resist = .6+invoker.barrelheat/600.;
|
||||
|
|
@ -170,14 +170,14 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
}
|
||||
foreach ( w:st.WaterHitList )
|
||||
{
|
||||
let b = Spawn("InvisibleSplasher",w.hitpos);
|
||||
let b = Spawn('InvisibleSplasher',w.hitpos);
|
||||
b.target = self;
|
||||
b.A_CheckTerrain();
|
||||
}
|
||||
for ( int i=5; i<st.Results.Distance; i+=10 )
|
||||
{
|
||||
if ( !Random[Boolet](0,2) ) continue;
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfBubble",level.Vec3Offset(origin,dir*i));
|
||||
let b = SWWMAnimSprite.SpawnAt('SWWMHalfBubble',level.Vec3Offset(origin,dir*i));
|
||||
b.Scale *= FRandom[Boolet](.1,.3);
|
||||
}
|
||||
foreach ( hit:st.HitList )
|
||||
|
|
@ -188,7 +188,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
SWWMUtility.DoKnockback(hit.HitActor,hit.x+(0,0,0.025),15000.*FRandom[Sheen](0.4,1.2));
|
||||
if ( hit.HitActor.bNOBLOOD || hit.HitActor.bDORMANT || hit.HitActor.bINVULNERABLE )
|
||||
{
|
||||
let p = Spawn("SWWMBulletImpact",hit.HitLocation);
|
||||
let p = Spawn('SWWMBulletImpact',hit.HitLocation);
|
||||
p.angle = atan2(hit.x.y,hit.x.x)+180;
|
||||
p.pitch = asin(hit.x.z);
|
||||
p.target = self;
|
||||
|
|
@ -203,7 +203,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
if ( (st.Results.HitType != TRACE_HitNone) && (st.Results.HitType != TRACE_HitActor) )
|
||||
{
|
||||
Vector3 hitnormal = SWWMUtility.GetLineTracerHitNormal(st.Results);
|
||||
let p = Spawn("SWWMBulletImpact",st.Results.HitPos+hitnormal*4);
|
||||
let p = Spawn('SWWMBulletImpact',st.Results.HitPos+hitnormal*4);
|
||||
p.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
p.pitch = asin(-hitnormal.z);
|
||||
p.target = self;
|
||||
|
|
@ -212,7 +212,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
}
|
||||
for ( int i=0; i<(5-invoker.firespeed); i++ )
|
||||
{
|
||||
let s = Spawn("SWWMSmoke",origin);
|
||||
let s = Spawn('SWWMSmoke',origin);
|
||||
s.scale *= .5;
|
||||
s.alpha *= .1;
|
||||
s.speed *= .7;
|
||||
|
|
@ -259,7 +259,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
break;
|
||||
}
|
||||
}
|
||||
let t = Spawn("SheenTrail",origin);
|
||||
let t = Spawn('SheenTrail',origin);
|
||||
t.target = self;
|
||||
t.angle = atan2(dir.y,dir.x);
|
||||
t.pitch = asin(-dir.z);
|
||||
|
|
@ -368,9 +368,9 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
Weapon.SlotNumber 5;
|
||||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 250;
|
||||
Weapon.AmmoType1 "SheenAmmo";
|
||||
Weapon.AmmoType1 'SheenAmmo';
|
||||
Weapon.AmmoGive1 30;
|
||||
SWWMWeapon.DropAmmoType "SWWMClipAmmoMed";
|
||||
SWWMWeapon.DropAmmoType 'SWWMClipAmmoMed';
|
||||
+SWWMWEAPON.HASSCRTEX;
|
||||
Stamina 100000;
|
||||
}
|
||||
|
|
@ -411,11 +411,11 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
invoker.firstshot = false;
|
||||
if ( (invoker.firespeed == 0) || (invoker.Ammo1.Amount <= 1) && !(player.cmd.buttons&BT_ATTACK) )
|
||||
return A_Jump(256,"SlowFire1","SlowFire2","SlowFire3");
|
||||
return A_Jump(256,'SlowFire1','SlowFire2','SlowFire3');
|
||||
if ( invoker.firespeed == 1 )
|
||||
return A_Jump(256,"FastFire1","FastFire2","FastFire3");
|
||||
return A_Jump(256,'FastFire1','FastFire2','FastFire3');
|
||||
if ( invoker.firespeed == 2 )
|
||||
return ResolveState("VeryFastFire");
|
||||
return ResolveState('VeryFastFire');
|
||||
return ResolveState(null);
|
||||
}
|
||||
Goto Ready;
|
||||
|
|
@ -426,7 +426,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
XZW2 Z 0
|
||||
{
|
||||
if ( !invoker.incooldown && (invoker.Ammo1.Amount > 0) && (player.cmd.buttons&BT_ATTACK) )
|
||||
return A_Jump(256,"SlowFire2","SlowFire3");
|
||||
return A_Jump(256,'SlowFire2','SlowFire3');
|
||||
return ResolveState(null);
|
||||
}
|
||||
Goto StopFire;
|
||||
|
|
@ -437,7 +437,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
XZW2 Z 0
|
||||
{
|
||||
if ( !invoker.incooldown &&(invoker.Ammo1.Amount > 0) && (player.cmd.buttons&BT_ATTACK) )
|
||||
return A_Jump(256,"SlowFire1","SlowFire3");
|
||||
return A_Jump(256,'SlowFire1','SlowFire3');
|
||||
return ResolveState(null);
|
||||
}
|
||||
Goto StopFire;
|
||||
|
|
@ -447,7 +447,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
XZW3 U 0
|
||||
{
|
||||
if ( !invoker.incooldown &&(invoker.Ammo1.Amount > 0) && (player.cmd.buttons&BT_ATTACK) )
|
||||
return A_Jump(256,"SlowFire1","SlowFire2");
|
||||
return A_Jump(256,'SlowFire1','SlowFire2');
|
||||
return ResolveState(null);
|
||||
}
|
||||
Goto StopFire;
|
||||
|
|
@ -457,7 +457,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
XZW3 X 0
|
||||
{
|
||||
A_CheckContinueFire();
|
||||
if ( !invoker.stopfire ) return A_Jump(256,"FastFire2","FastFire3");
|
||||
if ( !invoker.stopfire ) return A_Jump(256,'FastFire2','FastFire3');
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState(null);
|
||||
|
|
@ -469,7 +469,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
XZW4 A 0
|
||||
{
|
||||
A_CheckContinueFire();
|
||||
if ( !invoker.stopfire ) return A_Jump(256,"FastFire1","FastFire3");
|
||||
if ( !invoker.stopfire ) return A_Jump(256,'FastFire1','FastFire3');
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState(null);
|
||||
|
|
@ -481,7 +481,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
XZW4 D 0
|
||||
{
|
||||
A_CheckContinueFire();
|
||||
if ( !invoker.stopfire ) return A_Jump(256,"FastFire1","FastFire2");
|
||||
if ( !invoker.stopfire ) return A_Jump(256,'FastFire1','FastFire2');
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState(null);
|
||||
|
|
@ -496,7 +496,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState("EndFireFast1");
|
||||
return ResolveState('EndFireFast1');
|
||||
}
|
||||
A_SheenFire();
|
||||
return ResolveState(null);
|
||||
|
|
@ -508,7 +508,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState("EndFireFast2");
|
||||
return ResolveState('EndFireFast2');
|
||||
}
|
||||
A_SheenFire();
|
||||
return ResolveState(null);
|
||||
|
|
@ -520,7 +520,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState("EndFireFast3");
|
||||
return ResolveState('EndFireFast3');
|
||||
}
|
||||
A_SheenFire();
|
||||
return ResolveState(null);
|
||||
|
|
@ -532,7 +532,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState("EndFireFast4");
|
||||
return ResolveState('EndFireFast4');
|
||||
}
|
||||
A_SheenFire();
|
||||
return ResolveState(null);
|
||||
|
|
@ -544,7 +544,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState("EndFireFast5");
|
||||
return ResolveState('EndFireFast5');
|
||||
}
|
||||
A_SheenFire();
|
||||
return ResolveState(null);
|
||||
|
|
@ -556,7 +556,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState("EndFireFast6");
|
||||
return ResolveState('EndFireFast6');
|
||||
}
|
||||
A_SheenFire();
|
||||
return ResolveState(null);
|
||||
|
|
@ -569,7 +569,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
{
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2);
|
||||
return ResolveState("EndFireFast7");
|
||||
return ResolveState('EndFireFast7');
|
||||
}
|
||||
A_SheenFire();
|
||||
return ResolveState(null);
|
||||
|
|
@ -688,7 +688,7 @@ Class HeavyMahSheenGun : SWWMWeapon
|
|||
psp.frame = Random[GunFlash](0,23);
|
||||
if ( (invoker.firespeed != 2) || !(invoker.shotcnt%3) )
|
||||
{
|
||||
let l = Spawn("SWWMWeaponLight",pos);
|
||||
let l = Spawn('SWWMWeaponLight',pos);
|
||||
l.target = self;
|
||||
l.Args[3] -= (psp.frame%3)*20;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Class SheenPhantom : SWWMNonInteractiveActor
|
|||
{
|
||||
+INTERPOLATEANGLES;
|
||||
Alpha .5;
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
|
|
@ -44,7 +44,7 @@ Class SheenTrail : SWWMNonInteractiveActor
|
|||
+FORCERADIUSDMG;
|
||||
+NODAMAGETHRUST;
|
||||
Speed 200;
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
}
|
||||
|
||||
override void Tick()
|
||||
|
|
@ -63,7 +63,7 @@ Class SheenTrail : SWWMNonInteractiveActor
|
|||
special1++;
|
||||
for ( int i=0; i<4; i++ )
|
||||
{
|
||||
let p = Spawn("SheenPhantom",level.Vec3Offset(oldpos,dir*(i+1)*50.));
|
||||
let p = Spawn('SheenPhantom',level.Vec3Offset(oldpos,dir*(i+1)*50.));
|
||||
p.angle = angle;
|
||||
p.pitch = pitch;
|
||||
p.frame = special2;
|
||||
|
|
@ -81,7 +81,7 @@ Class SheenTrail : SWWMNonInteractiveActor
|
|||
prev = oldpos; // interpolation
|
||||
SetOrigin(newpos,true);
|
||||
specialf1 -= speed;
|
||||
if ( specialf1 <= 0 ) SetStateLabel("Death");
|
||||
if ( specialf1 <= 0 ) SetStateLabel('Death');
|
||||
return;
|
||||
}
|
||||
if ( !CheckNoDelay() || (tics == -1) ) return;
|
||||
|
|
|
|||
|
|
@ -33,19 +33,19 @@ Class MisterRailTracer : LineTracer
|
|||
// liquid splashes
|
||||
if ( Results.CrossedWater )
|
||||
{
|
||||
let hl = new("WaterHit");
|
||||
let hl = new('WaterHit');
|
||||
hl.hitpos = Results.CrossedWaterPos;
|
||||
WaterHitList.Push(hl);
|
||||
}
|
||||
else if ( Results.Crossed3DWater )
|
||||
{
|
||||
let hl = new("WaterHit");
|
||||
let hl = new('WaterHit');
|
||||
hl.hitpos = Results.Crossed3DWaterPos;
|
||||
WaterHitList.Push(hl);
|
||||
}
|
||||
if ( Results.HitType == TRACE_CrossingPortal )
|
||||
{
|
||||
let seg = new("MRRailSeg");
|
||||
let seg = new('MRRailSeg');
|
||||
seg.enter = Results.HitPos;
|
||||
seg.exit = Results.SrcFromTarget;
|
||||
portalseg.Push(seg);
|
||||
|
|
@ -54,7 +54,7 @@ Class MisterRailTracer : LineTracer
|
|||
{
|
||||
if ( Results.HitActor.bSHOOTABLE )
|
||||
{
|
||||
let ent = new("MRHitListEntry");
|
||||
let ent = new('MRHitListEntry');
|
||||
ent.hitactor = Results.HitActor;
|
||||
ent.hitlocation = Results.HitPos;
|
||||
ent.x = Results.HitVector;
|
||||
|
|
@ -63,7 +63,7 @@ Class MisterRailTracer : LineTracer
|
|||
hitlist.Push(ent);
|
||||
// also include exit point
|
||||
Vector3 exit = SWWMUtility.TraceExit(Results.HitActor,Results.HitPos,Results.HitVector);
|
||||
ent = new("MRHitListEntry");
|
||||
ent = new('MRHitListEntry');
|
||||
ent.hitactor = Results.HitActor;
|
||||
ent.hitlocation = exit;
|
||||
ent.x = Results.HitVector;
|
||||
|
|
@ -233,13 +233,13 @@ Class MisterRifle : SWWMWeapon
|
|||
|
||||
override bool ReportHUDAmmo()
|
||||
{
|
||||
return (chambered&&!fired)||(clipcount>0)||(Ammo1.Amount>0)||(Owner.CountInv("MisterRound")>0)||(gchambered&&!gfired)||(Ammo2.Amount>0);
|
||||
return (chambered&&!fired)||(clipcount>0)||(Ammo1.Amount>0)||(Owner.CountInv('MisterRound')>0)||(gchambered&&!gfired)||(Ammo2.Amount>0);
|
||||
}
|
||||
|
||||
override bool CheckAmmo( int firemode, bool autoswitch, bool requireammo, int ammocount )
|
||||
{
|
||||
if ( sv_infiniteammo || Owner.FindInventory('PowerInfiniteAmmo',true) ) return true;
|
||||
if ( firemode == PrimaryFire ) return (chambered&&!fired)||(clipcount>0)||(Ammo1.Amount>0)||(Owner.CountInv("MisterRound")>0);
|
||||
if ( firemode == PrimaryFire ) return (chambered&&!fired)||(clipcount>0)||(Ammo1.Amount>0)||(Owner.CountInv('MisterRound')>0);
|
||||
if ( firemode == AltFire ) return (gchambered&&!gfired)||(Ammo2.Amount>0);
|
||||
return Super.CheckAmmo(firemode,autoswitch,requireammo,ammocount);
|
||||
}
|
||||
|
|
@ -253,10 +253,10 @@ Class MisterRifle : SWWMWeapon
|
|||
// give bullets?
|
||||
if ( (clipcount > 0) || (chambered && !fired) )
|
||||
{
|
||||
Inventory cur = Owner.FindInventory("MisterRound");
|
||||
Inventory cur = Owner.FindInventory('MisterRound');
|
||||
if ( !cur )
|
||||
{
|
||||
cur = Inventory(Spawn("MisterRound"));
|
||||
cur = Inventory(Spawn('MisterRound'));
|
||||
cur.Amount = 0;
|
||||
cur.AttachToOwner(Owner);
|
||||
}
|
||||
|
|
@ -270,10 +270,10 @@ Class MisterRifle : SWWMWeapon
|
|||
// give grenade?
|
||||
if ( gchambered && !gfired )
|
||||
{
|
||||
Inventory cur = Owner.FindInventory("MisterGAmmo");
|
||||
Inventory cur = Owner.FindInventory('MisterGAmmo');
|
||||
if ( !cur )
|
||||
{
|
||||
cur = Inventory(Spawn("MisterGAmmo"));
|
||||
cur = Inventory(Spawn('MisterGAmmo'));
|
||||
cur.Amount = 0;
|
||||
cur.AttachToOwner(Owner);
|
||||
}
|
||||
|
|
@ -344,7 +344,7 @@ Class MisterRifle : SWWMWeapon
|
|||
// brass it up (though it's not made of brass)
|
||||
let [x, y, z] = SWWMUtility.GetPlayerAxes(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,2,3,-18);
|
||||
let c = Spawn("MisterCasing",origin);
|
||||
let c = Spawn('MisterCasing',origin);
|
||||
c.angle = angle;
|
||||
c.pitch = pitch;
|
||||
c.vel = x*FRandom[Junk](-.25,.25)+y*FRandom[Junk](-.25,.25)-(0,0,FRandom[Junk](4.,6.));
|
||||
|
|
@ -365,16 +365,16 @@ Class MisterRifle : SWWMWeapon
|
|||
A_PlayerReload();
|
||||
A_StartSound("mister/magout",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
A_ChangeModel("",1,"","",7,"models",(invoker.clipcount>0)?"MortalMag.png":"MortalMag_Empty.png",CMDL_USESURFACESKIN,-1);
|
||||
MagAmmo ma = MagAmmo(FindInventory("MisterRound"));
|
||||
MagAmmo ma = MagAmmo(FindInventory('MisterRound'));
|
||||
if ( !ma )
|
||||
{
|
||||
ma = MagAmmo(Spawn("MisterRound"));
|
||||
ma = MagAmmo(Spawn('MisterRound'));
|
||||
ma.Amount = 0;
|
||||
ma.AttachToOwner(self);
|
||||
}
|
||||
int maxgiveamt = min(ma.MaxAmount-ma.Amount,invoker.clipcount);
|
||||
int dropamt = invoker.clipcount-maxgiveamt;
|
||||
if ( dropamt > 0 ) invoker.BufferMagAmmo("MisterRound",dropamt);
|
||||
if ( dropamt > 0 ) invoker.BufferMagAmmo('MisterRound',dropamt);
|
||||
ma.Amount = min(ma.MaxAmount,ma.Amount+invoker.clipcount);
|
||||
ma.MagFill();
|
||||
invoker.clipcount = 0;
|
||||
|
|
@ -388,7 +388,7 @@ Class MisterRifle : SWWMWeapon
|
|||
// drop it
|
||||
let [x, y, z] = SWWMUtility.GetPlayerAxes(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,6,3,-18);
|
||||
let c = Spawn("MisterMag",origin);
|
||||
let c = Spawn('MisterMag',origin);
|
||||
c.angle = angle;
|
||||
c.pitch = pitch;
|
||||
c.vel = x*FRandom[Junk](-.2,.2)+y*FRandom[Junk](-.2,.2)-(0,0,FRandom[Junk](2.,4.));
|
||||
|
|
@ -404,7 +404,7 @@ Class MisterRifle : SWWMWeapon
|
|||
|
||||
action void A_MagIn()
|
||||
{
|
||||
MagAmmo sb = MagAmmo(FindInventory("MisterRound"));
|
||||
MagAmmo sb = MagAmmo(FindInventory('MisterRound'));
|
||||
if ( sv_infiniteammo || FindInventory('PowerInfiniteAmmo',true) )
|
||||
invoker.clipcount = invoker.default.clipcount;
|
||||
else if ( (invoker.Ammo1.Amount <= 0) || (sb.Amount >= sb.ClipSize) )
|
||||
|
|
@ -413,9 +413,9 @@ Class MisterRifle : SWWMWeapon
|
|||
invoker.clipcount = takeamt;
|
||||
sb.Amount -= takeamt;
|
||||
int req = invoker.default.ClipCount-invoker.clipcount;
|
||||
if ( req > 0 ) invoker.clipcount += invoker.FetchBufferedMagAmmo("MisterRound",req);
|
||||
if ( req > 0 ) invoker.clipcount += invoker.FetchBufferedMagAmmo('MisterRound',req);
|
||||
}
|
||||
else if ( invoker.FetchBufferedMagAmmo("MisterRound",sb.ClipSize,true) )
|
||||
else if ( invoker.FetchBufferedMagAmmo('MisterRound',sb.ClipSize,true) )
|
||||
invoker.clipcount = invoker.default.clipcount;
|
||||
else
|
||||
{
|
||||
|
|
@ -432,13 +432,13 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
// auto-chamber just in case (rarely ever happens)
|
||||
if ( invoker.ClipCount > 0 )
|
||||
return ResolveState("AutoCycle");
|
||||
return ResolveState('AutoCycle');
|
||||
// auto-reload if we're out
|
||||
if ( (invoker.clipcount <= 0) && ((invoker.Ammo1.Amount > 0) || (CountInv("MisterRound") > 0) || sv_infiniteammo || FindInventory("PowerInfiniteAmmo")) )
|
||||
return ResolveState("Reload");
|
||||
if ( (invoker.clipcount <= 0) && ((invoker.Ammo1.Amount > 0) || (CountInv('MisterRound') > 0) || sv_infiniteammo || FindInventory('PowerInfiniteAmmo')) )
|
||||
return ResolveState('Reload');
|
||||
}
|
||||
// this one is handled separately
|
||||
if ( invoker.firemode >= 3 ) return ResolveState("FireOverpressure");
|
||||
if ( invoker.firemode >= 3 ) return ResolveState('FireOverpressure');
|
||||
A_PlayerFire();
|
||||
A_SWWMFlash();
|
||||
invoker.fired = true;
|
||||
|
|
@ -450,7 +450,7 @@ Class MisterRifle : SWWMWeapon
|
|||
SWWMHandler.DoFlash(self,Color(32,64,224,255),2);
|
||||
A_AlertMonsters(swwm_uncapalert?0:4000);
|
||||
A_MisterFireStream(0);
|
||||
return ResolveState("FireStream");
|
||||
return ResolveState('FireStream');
|
||||
}
|
||||
SWWMHandler.DoFlash(self,Color(48,64,224,255),3);
|
||||
Vector3 x = SWWMUtility.GetPlayerViewDir(self);
|
||||
|
|
@ -465,7 +465,7 @@ Class MisterRifle : SWWMWeapon
|
|||
A_AlertMonsters(swwm_uncapalert?0:8000);
|
||||
for ( int i=0; i<10; i++ )
|
||||
{
|
||||
let s = Spawn("SWWMSmoke",origin);
|
||||
let s = Spawn('SWWMSmoke',origin);
|
||||
s.scale *= .6;
|
||||
s.alpha *= .15;
|
||||
s.speed *= .8;
|
||||
|
|
@ -498,12 +498,12 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
if ( d.HitActor.bNOBLOOD || d.HitActor.bDORMANT )
|
||||
{
|
||||
let p = Spawn("SpreadImpact",d.HitLocation);
|
||||
let p = Spawn('SpreadImpact',d.HitLocation);
|
||||
p.angle = atan2(d.HitDir.y,d.HitDir.x)+180;
|
||||
p.pitch = asin(d.HitDir.z);
|
||||
p.target = self;
|
||||
}
|
||||
let b = Spawn("MisterBuckshotImpact",d.HitLocation-d.HitDir*4.);
|
||||
let b = Spawn('MisterBuckshotImpact',d.HitLocation-d.HitDir*4.);
|
||||
b.angle = atan2(d.HitDir.y,d.HitDir.x)+180;
|
||||
b.pitch = asin(d.HitDir.z);
|
||||
b.target = self;
|
||||
|
|
@ -512,12 +512,12 @@ Class MisterRifle : SWWMWeapon
|
|||
else if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
Vector3 hitnormal = SWWMUtility.GetLineTraceHitNormal(d);
|
||||
let p = Spawn("SpreadImpact",d.HitLocation+hitnormal*0.01);
|
||||
let p = Spawn('SpreadImpact',d.HitLocation+hitnormal*0.01);
|
||||
p.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
p.pitch = asin(-hitnormal.z);
|
||||
p.target = self;
|
||||
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation);
|
||||
let b = Spawn("MisterBuckshotImpact",d.HitLocation+hitnormal*4.);
|
||||
let b = Spawn('MisterBuckshotImpact',d.HitLocation+hitnormal*4.);
|
||||
b.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
b.pitch = asin(-hitnormal.z);
|
||||
b.target = self;
|
||||
|
|
@ -525,7 +525,7 @@ Class MisterRifle : SWWMWeapon
|
|||
if ( swwm_omnibust ) BusterWall.BustLinetrace(d,444,self,d.HitDir,d.HitLocation.z);
|
||||
}
|
||||
}
|
||||
return ResolveState("FireCluster");
|
||||
return ResolveState('FireCluster');
|
||||
}
|
||||
// precision shot
|
||||
A_StartSound("mister/firesemi",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
|
|
@ -535,7 +535,7 @@ Class MisterRifle : SWWMWeapon
|
|||
A_AlertMonsters(swwm_uncapalert?0:6000);
|
||||
for ( int i=0; i<6; i++ )
|
||||
{
|
||||
let s = Spawn("SWWMSmoke",origin);
|
||||
let s = Spawn('SWWMSmoke',origin);
|
||||
s.scale *= .4;
|
||||
s.alpha *= .1;
|
||||
s.speed *= .5;
|
||||
|
|
@ -550,12 +550,12 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
if ( d.HitActor.bNOBLOOD || d.HitActor.bDORMANT )
|
||||
{
|
||||
let p = Spawn("SWWMBulletImpact",d.HitLocation);
|
||||
let p = Spawn('SWWMBulletImpact',d.HitLocation);
|
||||
p.angle = atan2(d.HitDir.y,d.HitDir.x)+180;
|
||||
p.pitch = asin(d.HitDir.z);
|
||||
p.target = self;
|
||||
}
|
||||
let b = Spawn("MisterBulletImpact",d.HitLocation-d.HitDir*4.);
|
||||
let b = Spawn('MisterBulletImpact',d.HitLocation-d.HitDir*4.);
|
||||
b.angle = atan2(d.HitDir.y,d.HitDir.x)+180;
|
||||
b.pitch = asin(d.HitDir.z);
|
||||
b.target = self;
|
||||
|
|
@ -564,12 +564,12 @@ Class MisterRifle : SWWMWeapon
|
|||
else if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
Vector3 hitnormal = SWWMUtility.GetLineTraceHitNormal(d);
|
||||
let p = Spawn("SWWMBulletImpact",d.HitLocation+hitnormal*0.01);
|
||||
let p = Spawn('SWWMBulletImpact',d.HitLocation+hitnormal*0.01);
|
||||
p.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
p.pitch = asin(-hitnormal.z);
|
||||
p.target = self;
|
||||
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation);
|
||||
let b = Spawn("MisterBulletImpact",d.HitLocation+hitnormal*4.);
|
||||
let b = Spawn('MisterBulletImpact',d.HitLocation+hitnormal*4.);
|
||||
b.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
b.pitch = asin(-hitnormal.z);
|
||||
b.target = self;
|
||||
|
|
@ -585,7 +585,7 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
A_PlayerFire();
|
||||
SWWMHandler.DoFlash(self,Color(32,64,224,255),2);
|
||||
A_SWWMFlash("FastFlash");
|
||||
A_SWWMFlash('FastFlash');
|
||||
}
|
||||
Vector3 x = SWWMUtility.GetPlayerViewDir(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,10,2.8,-2.4);
|
||||
|
|
@ -595,7 +595,7 @@ Class MisterRifle : SWWMWeapon
|
|||
if ( index == 0 ) A_AlertMonsters(swwm_uncapalert?0:5000);
|
||||
for ( int i=0; i<3; i++ )
|
||||
{
|
||||
let s = Spawn("SWWMSmoke",origin);
|
||||
let s = Spawn('SWWMSmoke',origin);
|
||||
s.scale *= .4;
|
||||
s.alpha *= .1;
|
||||
s.speed *= .5;
|
||||
|
|
@ -613,12 +613,12 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
if ( d.HitActor.bNOBLOOD || d.HitActor.bDORMANT )
|
||||
{
|
||||
let p = Spawn("SWWMBulletImpact",d.HitLocation);
|
||||
let p = Spawn('SWWMBulletImpact',d.HitLocation);
|
||||
p.angle = atan2(d.HitDir.y,d.HitDir.x)+180;
|
||||
p.pitch = asin(d.HitDir.z);
|
||||
p.target = self;
|
||||
}
|
||||
let b = Spawn("MisterStreamImpact",d.HitLocation-d.HitDir*4.);
|
||||
let b = Spawn('MisterStreamImpact',d.HitLocation-d.HitDir*4.);
|
||||
b.angle = atan2(d.HitDir.y,d.HitDir.x)+180;
|
||||
b.pitch = asin(d.HitDir.z);
|
||||
b.target = self;
|
||||
|
|
@ -627,12 +627,12 @@ Class MisterRifle : SWWMWeapon
|
|||
else if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
Vector3 hitnormal = SWWMUtility.GetLineTraceHitNormal(d);
|
||||
let p = Spawn("SWWMBulletImpact",d.HitLocation+hitnormal*0.01);
|
||||
let p = Spawn('SWWMBulletImpact',d.HitLocation+hitnormal*0.01);
|
||||
p.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
p.pitch = asin(-hitnormal.z);
|
||||
p.target = self;
|
||||
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation);
|
||||
let b = Spawn("MisterStreamImpact",d.HitLocation+hitnormal*4.);
|
||||
let b = Spawn('MisterStreamImpact',d.HitLocation+hitnormal*4.);
|
||||
b.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
b.pitch = asin(-hitnormal.z);
|
||||
b.target = self;
|
||||
|
|
@ -669,7 +669,7 @@ Class MisterRifle : SWWMWeapon
|
|||
invoker.prefirecnt = 0;
|
||||
A_StopSound(CHAN_WEAPONEXTRA);
|
||||
A_StartSound("mister/cancelover",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return ResolveState("FireOverpressureCancel");
|
||||
return ResolveState('FireOverpressureCancel');
|
||||
}
|
||||
if ( invoker.prefirecnt < 100 )
|
||||
{
|
||||
|
|
@ -684,7 +684,7 @@ Class MisterRifle : SWWMWeapon
|
|||
A_SoundPitch(CHAN_WEAPONEXTRA,clamp(.5+invoker.prefirecnt*.005,.5,1.)**.5);
|
||||
if ( (invoker.prefirecnt >= 100) && !((gametic-invoker.holdtic)%32) && CheckLocalView() )
|
||||
A_StartSound("mister/beepover",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return A_JumpIf((invoker.prefirecnt>=100)&&!(player.cmd.buttons&BT_ATTACK),"FireOverpressureRelease");
|
||||
return A_JumpIf((invoker.prefirecnt>=100)&&!(player.cmd.buttons&BT_ATTACK),'FireOverpressureRelease');
|
||||
}
|
||||
|
||||
action void A_MisterFireRail()
|
||||
|
|
@ -695,7 +695,7 @@ Class MisterRifle : SWWMWeapon
|
|||
Vector3 x = SWWMUtility.GetPlayerViewDir(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,10,2.8,-2.4);
|
||||
SWWMHandler.DoFlash(self,Color(64,64,224,255),9);
|
||||
A_SWWMFlash("RailFlash");
|
||||
A_SWWMFlash('RailFlash');
|
||||
invoker.fired = true;
|
||||
A_StartSound("mister/fireover",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
SWWMUtility.DoKnockback(self,-x,90000.);
|
||||
|
|
@ -704,7 +704,7 @@ Class MisterRifle : SWWMWeapon
|
|||
A_AlertMonsters(swwm_uncapalert?0:12000);
|
||||
for ( int i=0; i<12; i++ )
|
||||
{
|
||||
let s = Spawn("SWWMSmoke",origin);
|
||||
let s = Spawn('SWWMSmoke',origin);
|
||||
s.scale *= .4;
|
||||
s.alpha *= .1;
|
||||
s.vel += vel*.5+x*FRandom[Mister](1.,12.);
|
||||
|
|
@ -712,7 +712,7 @@ Class MisterRifle : SWWMWeapon
|
|||
}
|
||||
Vector3 dir, startdir;
|
||||
startdir = dir = SWWMUtility.GetPlayerAimDir(self);
|
||||
let mrt = new("MisterRailTracer"); // I pity the fool
|
||||
let mrt = new('MisterRailTracer'); // I pity the fool
|
||||
mrt.hitlist.Clear();
|
||||
mrt.shootthroughlist.Clear();
|
||||
mrt.waterhitlist.Clear();
|
||||
|
|
@ -732,7 +732,7 @@ Class MisterRifle : SWWMWeapon
|
|||
dir = mrt.Results.HitVector;
|
||||
}
|
||||
while ( !mrt.fullstop );
|
||||
let mrc = new("MisterRailCounter");
|
||||
let mrc = new('MisterRailCounter');
|
||||
mrc.ChangeStatNum(STAT_USER); // so it can tick
|
||||
mrc.player = player;
|
||||
Vector3 sstart = origin;
|
||||
|
|
@ -745,7 +745,7 @@ Class MisterRifle : SWWMWeapon
|
|||
Actor b;
|
||||
if ( sdist > 32 )
|
||||
{
|
||||
b = Spawn("MisterRailBeam",sstart);
|
||||
b = Spawn('MisterRailBeam',sstart);
|
||||
b.target = self;
|
||||
b.frame = 1;
|
||||
b.speed = 32;
|
||||
|
|
@ -754,11 +754,11 @@ Class MisterRifle : SWWMWeapon
|
|||
mrc.effectors.Push(b);
|
||||
sstart += sdir*32;
|
||||
sdist -= 32;
|
||||
b = Spawn("MisterRailBeam",sstart);
|
||||
b = Spawn('MisterRailBeam',sstart);
|
||||
}
|
||||
else
|
||||
{
|
||||
b = Spawn("MisterRailBeam",sstart);
|
||||
b = Spawn('MisterRailBeam',sstart);
|
||||
b.frame = 1;
|
||||
}
|
||||
b.target = self;
|
||||
|
|
@ -777,7 +777,7 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
if ( sdist > 32 )
|
||||
{
|
||||
b = Spawn("MisterRailBeam",sstart);
|
||||
b = Spawn('MisterRailBeam',sstart);
|
||||
b.target = self;
|
||||
b.frame = 1;
|
||||
b.speed = 32;
|
||||
|
|
@ -786,15 +786,15 @@ Class MisterRifle : SWWMWeapon
|
|||
mrc.effectors.Push(b);
|
||||
sstart += sdir*32;
|
||||
sdist -= 32;
|
||||
b = Spawn("MisterRailBeam",sstart);
|
||||
b = Spawn('MisterRailBeam',sstart);
|
||||
}
|
||||
else
|
||||
{
|
||||
b = Spawn("MisterRailBeam",sstart);
|
||||
b = Spawn('MisterRailBeam',sstart);
|
||||
b.frame = 1;
|
||||
}
|
||||
}
|
||||
else b = Spawn("MisterRailBeam",sstart);
|
||||
else b = Spawn('MisterRailBeam',sstart);
|
||||
b.target = self;
|
||||
b.speed = sdist;
|
||||
[b.angle, b.pitch, b.scale.y] = SWWMUtility.CalcYBeam(sdir,sdist);
|
||||
|
|
@ -806,7 +806,7 @@ Class MisterRifle : SWWMWeapon
|
|||
sdir = mrt.Results.HitPos-sstart;
|
||||
sdist = sdir.length();
|
||||
sdir /= sdist;
|
||||
b = Spawn("MisterRailBeam",sstart);
|
||||
b = Spawn('MisterRailBeam',sstart);
|
||||
b.target = self;
|
||||
b.speed = sdist;
|
||||
[b.angle, b.pitch, b.scale.y] = SWWMUtility.CalcYBeam(sdir,sdist);
|
||||
|
|
@ -821,7 +821,7 @@ Class MisterRifle : SWWMWeapon
|
|||
}
|
||||
foreach ( w:mrt.WaterHitList )
|
||||
{
|
||||
let b = Spawn("InvisibleSplasher",w.hitpos);
|
||||
let b = Spawn('InvisibleSplasher',w.hitpos);
|
||||
b.target = self;
|
||||
b.A_CheckTerrain();
|
||||
}
|
||||
|
|
@ -850,7 +850,7 @@ Class MisterRifle : SWWMWeapon
|
|||
}
|
||||
if ( mrt.HitList[i].bExit )
|
||||
{
|
||||
let b = MisterBulletImpact(Spawn("MisterRailExitImpact",mrt.hitlist[i].HitLocation-mrt.hitlist[i].x*4.));
|
||||
let b = MisterBulletImpact(Spawn('MisterRailExitImpact',mrt.hitlist[i].HitLocation-mrt.hitlist[i].x*4.));
|
||||
b.angle = atan2(mrt.HitList[i].x.y,mrt.HitList[i].x.x);
|
||||
b.pitch = asin(-mrt.HitList[i].x.z);
|
||||
b.target = self;
|
||||
|
|
@ -860,7 +860,7 @@ Class MisterRifle : SWWMWeapon
|
|||
bi.Push(b);
|
||||
continue;
|
||||
}
|
||||
let b = MisterBulletImpact(Spawn("MisterRailEntryImpact",mrt.hitlist[i].HitLocation+mrt.hitlist[i].x*4.));
|
||||
let b = MisterBulletImpact(Spawn('MisterRailEntryImpact',mrt.hitlist[i].HitLocation+mrt.hitlist[i].x*4.));
|
||||
b.angle = atan2(mrt.HitList[i].x.y,mrt.HitList[i].x.x)+180;
|
||||
b.pitch = asin(mrt.HitList[i].x.z);
|
||||
b.target = self;
|
||||
|
|
@ -869,7 +869,7 @@ Class MisterRifle : SWWMWeapon
|
|||
mrc.effectors.Push(b);
|
||||
bi.Push(b);
|
||||
}
|
||||
LineTracer faketracer = new("LineTracer");
|
||||
LineTracer faketracer = new('LineTracer');
|
||||
for ( int i=0; i<mrt.wallpenetratelist.Size(); i++ )
|
||||
{
|
||||
if ( mrt.WallPenetrateList[i].hittype == TRACE_HitWall )
|
||||
|
|
@ -898,7 +898,7 @@ Class MisterRifle : SWWMWeapon
|
|||
}
|
||||
Vector3 hitpos = mrt.WallPenetrateList[i].hitpos;
|
||||
Vector3 hitnormal = mrt.WallPenetrateList[i].hitnormal;
|
||||
let b = MisterBulletImpact(Spawn(bExit?"MisterRailExitImpact":"MisterRailEntryImpact",hitpos+hitnormal*4.));
|
||||
let b = MisterBulletImpact(Spawn(bExit?'MisterRailExitImpact':'MisterRailEntryImpact',hitpos+hitnormal*4.));
|
||||
b.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
b.pitch = asin(-hitnormal.z);
|
||||
b.target = self;
|
||||
|
|
@ -909,7 +909,7 @@ Class MisterRifle : SWWMWeapon
|
|||
if ( (mrt.Results.HitType != TRACE_HitNone) && (mrt.Results.HitType != TRACE_HitActor) )
|
||||
{
|
||||
Vector3 hitnormal = SWWMUtility.GetLineTracerHitNormal(mrt.Results);
|
||||
let b = MisterBulletImpact(Spawn("MisterRailEntryImpact",mrt.Results.HitPos+hitnormal*4.));
|
||||
let b = MisterBulletImpact(Spawn('MisterRailEntryImpact',mrt.Results.HitPos+hitnormal*4.));
|
||||
b.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
b.pitch = asin(-hitnormal.z);
|
||||
b.target = self;
|
||||
|
|
@ -925,7 +925,7 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
Vector3 p = level.Vec3Offset(origin,startdir*d);
|
||||
if ( !level.IsPointInlevel(p) ) continue;
|
||||
Spawn("MisterRailLight",p);
|
||||
Spawn('MisterRailLight',p);
|
||||
}
|
||||
if ( mrt.wallpenetratelist.Size() > 0 )
|
||||
{
|
||||
|
|
@ -945,7 +945,7 @@ Class MisterRifle : SWWMWeapon
|
|||
mrh.Explode();
|
||||
continue;
|
||||
}
|
||||
mrh = MisterRailHit(Spawn("MisterRailHit",ofs));
|
||||
mrh = MisterRailHit(Spawn('MisterRailHit',ofs));
|
||||
mrh.target = self;
|
||||
mrh.mrc = mrc;
|
||||
mrc.effectors.Push(mrh);
|
||||
|
|
@ -956,7 +956,7 @@ Class MisterRifle : SWWMWeapon
|
|||
if ( !Random[ExploS](0,1) ) continue;
|
||||
Vector3 ofs = level.Vec3Offset(start,tdir*d);
|
||||
if ( !level.IsPointInLevel(ofs) ) continue;
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",ofs);
|
||||
let b = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',ofs);
|
||||
b.Scale *= FRandom[ExploS](.7,1.4);
|
||||
b.alpha *= .2;
|
||||
b.framestep = Random[ExploS](2,4);
|
||||
|
|
@ -980,7 +980,7 @@ Class MisterRifle : SWWMWeapon
|
|||
mrh.Explode();
|
||||
continue;
|
||||
}
|
||||
mrh = MisterRailHit(Spawn("MisterRailHit",ofs));
|
||||
mrh = MisterRailHit(Spawn('MisterRailHit',ofs));
|
||||
mrh.target = self;
|
||||
mrh.mrc = mrc;
|
||||
mrc.effectors.Push(mrh);
|
||||
|
|
@ -991,7 +991,7 @@ Class MisterRifle : SWWMWeapon
|
|||
if ( !Random[ExploS](0,1) ) continue;
|
||||
Vector3 ofs = level.Vec3Offset(start,tdir*d);
|
||||
if ( !level.IsPointInLevel(ofs) ) continue;
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",ofs);
|
||||
let b = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',ofs);
|
||||
b.Scale *= FRandom[ExploS](.7,1.4);
|
||||
b.alpha *= .2;
|
||||
b.framestep = Random[ExploS](2,4);
|
||||
|
|
@ -1012,7 +1012,7 @@ Class MisterRifle : SWWMWeapon
|
|||
mrh.Explode();
|
||||
continue;
|
||||
}
|
||||
mrh = MisterRailHit(Spawn("MisterRailHit",ofs));
|
||||
mrh = MisterRailHit(Spawn('MisterRailHit',ofs));
|
||||
mrh.target = self;
|
||||
mrh.mrc = mrc;
|
||||
mrc.effectors.Push(mrh);
|
||||
|
|
@ -1023,7 +1023,7 @@ Class MisterRifle : SWWMWeapon
|
|||
if ( !Random[ExploS](0,1) ) continue;
|
||||
Vector3 ofs = level.Vec3Offset(origin,startdir*d);
|
||||
if ( !level.IsPointInLevel(ofs) ) continue;
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",ofs);
|
||||
let b = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',ofs);
|
||||
b.Scale *= FRandom[ExploS](.7,1.4);
|
||||
b.alpha *= .2;
|
||||
b.framestep = Random[ExploS](2,4);
|
||||
|
|
@ -1038,7 +1038,7 @@ Class MisterRifle : SWWMWeapon
|
|||
Vector3 x = SWWMUtility.GetPlayerViewDir(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,10,2.8,-4);
|
||||
SWWMHandler.DoFlash(self,Color(64,64,224,255),3);
|
||||
A_SWWMFlash("AltFlash");
|
||||
A_SWWMFlash('AltFlash');
|
||||
invoker.gfired = true;
|
||||
A_StartSound("mister/grenade",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
SWWMUtility.DoKnockback(self,-x,12000.);
|
||||
|
|
@ -1047,14 +1047,14 @@ Class MisterRifle : SWWMWeapon
|
|||
A_AlertMonsters(swwm_uncapalert?0:5000);
|
||||
for ( int i=0; i<9; i++ )
|
||||
{
|
||||
let s = Spawn("SWWMSmoke",origin);
|
||||
let s = Spawn('SWWMSmoke',origin);
|
||||
s.scale *= .4;
|
||||
s.alpha *= .1;
|
||||
s.vel += vel*.5+x*FRandom[Mister](1.,4.);
|
||||
s.SetShade(Color(0,3,4)*Random[ExploS](48,63));
|
||||
}
|
||||
Vector3 dir = SWWMUtility.GetPlayerAimDir(self);
|
||||
let p = Spawn("MisterGrenade",origin);
|
||||
let p = Spawn('MisterGrenade',origin);
|
||||
p.target = self;
|
||||
p.angle = atan2(dir.y,dir.x);
|
||||
p.pitch = asin(-dir.z);
|
||||
|
|
@ -1092,7 +1092,7 @@ Class MisterRifle : SWWMWeapon
|
|||
// droppage
|
||||
let [x, y, z] = SWWMUtility.GetPlayerAxes(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,8,3,-18);
|
||||
let c = Spawn("MisterGCasing",origin);
|
||||
let c = Spawn('MisterGCasing',origin);
|
||||
c.angle = angle;
|
||||
c.pitch = pitch;
|
||||
c.vel = x*FRandom[Junk](-.2,.2)+y*FRandom[Junk](-.2,.2)-(0,0,FRandom[Junk](2.,4.));
|
||||
|
|
@ -1110,7 +1110,7 @@ Class MisterRifle : SWWMWeapon
|
|||
action void A_GrenadeIn()
|
||||
{
|
||||
A_StartSound("mister/grenadein",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
if ( !sv_infiniteammo && !FindInventory("PowerInfiniteAmmo") )
|
||||
if ( !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo') )
|
||||
invoker.Ammo2.Amount = max(0,invoker.Ammo2.Amount-1);
|
||||
invoker.gchambered = true;
|
||||
invoker.gfired = false;
|
||||
|
|
@ -1199,11 +1199,11 @@ Class MisterRifle : SWWMWeapon
|
|||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 850;
|
||||
Weapon.UpSound "mister/select";
|
||||
Weapon.AmmoType1 "MisterAmmo";
|
||||
Weapon.AmmoType1 'MisterAmmo';
|
||||
Weapon.AmmoGive1 1;
|
||||
Weapon.AmmoType2 "MisterGAmmo";
|
||||
Weapon.AmmoType2 'MisterGAmmo';
|
||||
Weapon.AmmoGive2 0;
|
||||
SWWMWeapon.DropAmmoType "SWWMCellAmmoBig";
|
||||
SWWMWeapon.DropAmmoType 'SWWMCellAmmoBig';
|
||||
MisterRifle.ClipCount 12;
|
||||
Stamina 1600000;
|
||||
+SWWMWEAPON.NOFIRSTGIVE;
|
||||
|
|
@ -1217,9 +1217,9 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
A_ChangeModel("",1,"","",7,"models","MortalMag.png",CMDL_USESURFACESKIN,-1);
|
||||
A_FullRaise();
|
||||
if ( invoker.boltlock ) return ResolveState("SelectLock");
|
||||
if ( invoker.boltlock ) return ResolveState('SelectLock');
|
||||
if ( (invoker.clipcount > 0) && (!invoker.chambered || invoker.fired) )
|
||||
return ResolveState("SelectCycle");
|
||||
return ResolveState('SelectCycle');
|
||||
return ResolveState(null);
|
||||
}
|
||||
XZW2 QRSTUV 2;
|
||||
|
|
@ -1250,7 +1250,7 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
int flg = (WRF_ALLOWRELOAD|WRF_ALLOWZOOM|WRF_ALLOWUSER1);
|
||||
// can't alt-fire if we have no grenades left
|
||||
if ( (!invoker.gchambered || invoker.gfired) && (invoker.Ammo2.Amount <= 0) && !sv_infiniteammo && !FindInventory("PowerInfiniteAmmo") )
|
||||
if ( (!invoker.gchambered || invoker.gfired) && (invoker.Ammo2.Amount <= 0) && !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo') )
|
||||
flg |= WRF_NOSECONDARY;
|
||||
A_WeaponReady(flg);
|
||||
if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) )
|
||||
|
|
@ -1262,10 +1262,10 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
int flg = (WRF_ALLOWRELOAD|WRF_ALLOWZOOM|WRF_ALLOWUSER1);
|
||||
// can't alt-fire if we have no grenades left
|
||||
if ( (!invoker.gchambered || invoker.gfired) && (invoker.Ammo2.Amount <= 0) && !sv_infiniteammo && !FindInventory("PowerInfiniteAmmo") )
|
||||
if ( (!invoker.gchambered || invoker.gfired) && (invoker.Ammo2.Amount <= 0) && !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo') )
|
||||
flg |= WRF_NOSECONDARY;
|
||||
// can't use primary fire if we have no ammo to reload from
|
||||
if ( (invoker.Ammo1.Amount <= 0) && (CountInv("MisterRound") <= 0) && !sv_infiniteammo && !FindInventory("PowerInfiniteAmmo") )
|
||||
if ( (invoker.Ammo1.Amount <= 0) && (CountInv('MisterRound') <= 0) && !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo') )
|
||||
flg |= WRF_NOPRIMARY;
|
||||
A_WeaponReady(flg);
|
||||
if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) )
|
||||
|
|
@ -1273,7 +1273,7 @@ Class MisterRifle : SWWMWeapon
|
|||
}
|
||||
Wait;
|
||||
AutoCycle:
|
||||
XZW2 A 1 A_JumpIf(invoker.clipcount<=0,"AutoCycleLock");
|
||||
XZW2 A 1 A_JumpIf(invoker.clipcount<=0,'AutoCycleLock');
|
||||
XZW6 H 2 A_BoltBack(true);
|
||||
XZW6 IJ 2;
|
||||
XZW6 K 2 A_BoltForward();
|
||||
|
|
@ -1323,9 +1323,9 @@ Class MisterRifle : SWWMWeapon
|
|||
XZW2 A 1
|
||||
{
|
||||
if ( !invoker.gchambered || invoker.gfired )
|
||||
return invoker.boltlock?ResolveState("AltReloadLock"):ResolveState("AltReload");
|
||||
return invoker.boltlock?ResolveState('AltReloadLock'):ResolveState('AltReload');
|
||||
A_MisterFireGrenade();
|
||||
return A_JumpIf(invoker.boltlock,"AltFireLock");
|
||||
return A_JumpIf(invoker.boltlock,'AltFireLock');
|
||||
}
|
||||
XZW4 OP 1;
|
||||
XZW4 QR 2;
|
||||
|
|
@ -1380,10 +1380,10 @@ Class MisterRifle : SWWMWeapon
|
|||
Reload:
|
||||
XZW2 A 2
|
||||
{
|
||||
if ( (invoker.clipcount >= invoker.default.clipcount) || ((invoker.Ammo1.Amount <= 0) && (CountInv("MisterRound") <= 0) && !sv_infiniteammo && !FindInventory("PowerInfiniteAmmo")) )
|
||||
return invoker.boltlock?ResolveState("IdleLock"):ResolveState("Idle");
|
||||
if ( (invoker.clipcount >= invoker.default.clipcount) || ((invoker.Ammo1.Amount <= 0) && (CountInv('MisterRound') <= 0) && !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo')) )
|
||||
return invoker.boltlock?ResolveState('IdleLock'):ResolveState('Idle');
|
||||
A_StartSound("mister/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return A_JumpIf(invoker.boltlock,"ReloadLock");
|
||||
return A_JumpIf(invoker.boltlock,'ReloadLock');
|
||||
}
|
||||
XZW9 KLMNOPQRST 2;
|
||||
XZW9 U 2 A_MagOut();
|
||||
|
|
@ -1461,13 +1461,13 @@ Class MisterRifle : SWWMWeapon
|
|||
XZW2 A 2
|
||||
{
|
||||
A_StartSound("mister/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return A_JumpIf(invoker.boltlock,"ZoomLock");
|
||||
return A_JumpIf(invoker.boltlock,'ZoomLock');
|
||||
}
|
||||
XZW6 PQRSTUVW 2;
|
||||
XZW6 X 2 A_FireSelect();
|
||||
XZW6 YZ 2;
|
||||
XZW7 A 2;
|
||||
XZW7 B 2 A_JumpIf(player.cmd.buttons&BT_ZOOM,"ReZoom");
|
||||
XZW7 B 2 A_JumpIf(player.cmd.buttons&BT_ZOOM,'ReZoom');
|
||||
XZW7 CD 2;
|
||||
XZW7 E 2 A_StartSound("mister/meleeend",CHAN_WEAPON,CHANF_OVERLAP,starttime:.35);
|
||||
XZW7 FGHI 2;
|
||||
|
|
@ -1480,7 +1480,7 @@ Class MisterRifle : SWWMWeapon
|
|||
XZWE BCDEFGHI 2;
|
||||
XZWE J 2 A_FireSelect();
|
||||
XZWE KLM 2;
|
||||
XZWE N 2 A_JumpIf(player.cmd.buttons&BT_ZOOM,"ReZoomLock");
|
||||
XZWE N 2 A_JumpIf(player.cmd.buttons&BT_ZOOM,'ReZoomLock');
|
||||
XZWE OP 2;
|
||||
XZWE Q 2 A_StartSound("mister/meleeend",CHAN_WEAPON,CHANF_OVERLAP,starttime:.35);
|
||||
XZWE RSTU 2;
|
||||
|
|
@ -1492,7 +1492,7 @@ Class MisterRifle : SWWMWeapon
|
|||
XZW2 A 2
|
||||
{
|
||||
A_StartSound("mister/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return A_JumpIf(invoker.boltlock,"User1Lock");
|
||||
return A_JumpIf(invoker.boltlock,'User1Lock');
|
||||
}
|
||||
XZW8 MN 2;
|
||||
XZW8 O 2
|
||||
|
|
@ -1530,7 +1530,7 @@ Class MisterRifle : SWWMWeapon
|
|||
XZW2 A 2
|
||||
{
|
||||
A_StartSound("mister/deselect",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return A_JumpIf(invoker.boltlock,"DeselectLock");
|
||||
return A_JumpIf(invoker.boltlock,'DeselectLock');
|
||||
}
|
||||
XZW2 BCDE 2;
|
||||
XZW2 FGHIJKLMNO 1;
|
||||
|
|
@ -1546,7 +1546,7 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
let psp = player.FindPSprite(PSP_FLASH);
|
||||
psp.frame = Random[GunFlash](0,3);
|
||||
let l = Spawn("MisterWeaponLight",pos);
|
||||
let l = Spawn('MisterWeaponLight',pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
|
|
@ -1562,7 +1562,7 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
let psp = player.FindPSprite(PSP_FLASH);
|
||||
psp.frame = Random[GunFlash](4,7);
|
||||
let l = Spawn("MisterWeaponLight",pos);
|
||||
let l = Spawn('MisterWeaponLight',pos);
|
||||
l.target = self;
|
||||
A_OverlayFlags(PSP_FLASH,PSPF_ALPHA|PSPF_FORCEALPHA,true);
|
||||
}
|
||||
|
|
@ -1580,7 +1580,7 @@ Class MisterRifle : SWWMWeapon
|
|||
{
|
||||
let psp = player.FindPSprite(PSP_FLASH);
|
||||
psp.frame = Random[GunFlash](8,11);
|
||||
let l = Spawn("MisterWeaponLight",pos);
|
||||
let l = Spawn('MisterWeaponLight',pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ Class MisterRing : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale 1.5;
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
|
|
@ -131,7 +131,7 @@ Class MisterBulletImpactPop : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale 6.;
|
||||
+NODAMAGETHRUST;
|
||||
+FORCERADIUSDMG;
|
||||
|
|
@ -178,7 +178,7 @@ Class MisterFuzzy : SWWMNonInteractiveActor
|
|||
{
|
||||
Obituary "$O_MORTALRIFLE";
|
||||
DamageType 'CoAb44';
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+NODAMAGETHRUST;
|
||||
+FORCERADIUSDMG;
|
||||
+FOILINVUL;
|
||||
|
|
@ -256,7 +256,7 @@ Class MisterFuzzy : SWWMNonInteractiveActor
|
|||
traildir /= len;
|
||||
for ( double i=0.; i<len; i+=4. )
|
||||
{
|
||||
let p = Spawn("MisterFuzzyTrail",level.Vec3Offset(oldpos,traildir*i));
|
||||
let p = Spawn('MisterFuzzyTrail',level.Vec3Offset(oldpos,traildir*i));
|
||||
p.vel = dir*FRandom[ExploS](1.,4.);
|
||||
p.scale *= special1/specialf1;
|
||||
}
|
||||
|
|
@ -272,7 +272,7 @@ Class MisterFuzzyTrail : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale 1.5;
|
||||
Alpha .25;
|
||||
+FORCEXYBILLBOARD;
|
||||
|
|
@ -306,7 +306,7 @@ Class MisterPop : SWWMNonInteractiveActor
|
|||
{
|
||||
Obituary "$O_MORTALRIFLE";
|
||||
DamageType 'CoAb44';
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale .2;
|
||||
+FORCEXYBILLBOARD;
|
||||
+NODAMAGETHRUST;
|
||||
|
|
@ -333,7 +333,7 @@ Class MisterPop : SWWMNonInteractiveActor
|
|||
}
|
||||
TNT1 A 1
|
||||
{
|
||||
let p = Spawn("MisterFuzzyTrail",pos);
|
||||
let p = Spawn('MisterFuzzyTrail',pos);
|
||||
p.alpha *= 1.5;
|
||||
p.scale *= .5;
|
||||
}
|
||||
|
|
@ -348,7 +348,7 @@ Class MisterBulletImpact : SWWMNonInteractiveActor
|
|||
{
|
||||
Obituary "$O_MORTALRIFLE";
|
||||
DamageType 'CoAb44';
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale 1.5;
|
||||
+NODAMAGETHRUST;
|
||||
+FORCERADIUSDMG;
|
||||
|
|
@ -370,7 +370,7 @@ Class MisterBulletImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,8);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(0,3,4)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](1,3);
|
||||
|
|
@ -381,26 +381,26 @@ Class MisterBulletImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](8,12);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](6,16);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](4,16);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](15,20);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("MisterFuzzy",pos);
|
||||
let s = Spawn('MisterFuzzy',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
s.target = target;
|
||||
}
|
||||
Spawn("MisterExLight",pos);
|
||||
Spawn("MisterBulletImpactPop",pos);
|
||||
Spawn('MisterExLight',pos);
|
||||
Spawn('MisterBulletImpactPop',pos);
|
||||
}
|
||||
virtual void A_BulletSubExplode()
|
||||
{
|
||||
|
|
@ -412,7 +412,7 @@ Class MisterBulletImpact : SWWMNonInteractiveActor
|
|||
{
|
||||
Vector3 np = level.Vec3Offset(pos,SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,16)*special1);
|
||||
if ( !level.IsPointInLevel(np) ) continue;
|
||||
let p = Spawn("MisterPop",np);
|
||||
let p = Spawn('MisterPop',np);
|
||||
p.target = target;
|
||||
}
|
||||
}
|
||||
|
|
@ -451,7 +451,7 @@ Class MisterBuckshotImpact : MisterBulletImpact
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,4);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(0,3,4)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](0,2);
|
||||
|
|
@ -462,28 +462,28 @@ Class MisterBuckshotImpact : MisterBulletImpact
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](4,6);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](2,4);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,8);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](-2,4);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("MisterFuzzy",pos);
|
||||
let s = Spawn('MisterFuzzy',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
s.target = target;
|
||||
s.special1 -= 3;
|
||||
s.special2 = -1;
|
||||
}
|
||||
Spawn("MisterExLightTiny",pos);
|
||||
let p = Spawn("MisterBulletImpactPop",pos);
|
||||
Spawn('MisterExLightTiny',pos);
|
||||
let p = Spawn('MisterBulletImpactPop',pos);
|
||||
p.A_SetScale(1.5);
|
||||
}
|
||||
override void A_BulletSubExplode()
|
||||
|
|
@ -496,7 +496,7 @@ Class MisterBuckshotImpact : MisterBulletImpact
|
|||
{
|
||||
Vector3 np = level.Vec3Offset(pos,SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,16)*special1);
|
||||
if ( !level.IsPointInLevel(np) ) continue;
|
||||
let p = Spawn("MisterPop",np);
|
||||
let p = Spawn('MisterPop',np);
|
||||
p.target = target;
|
||||
}
|
||||
}
|
||||
|
|
@ -536,7 +536,7 @@ Class MisterStreamImpact : MisterBulletImpact
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,8);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(0,3,4)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](0,2);
|
||||
|
|
@ -547,27 +547,27 @@ Class MisterStreamImpact : MisterBulletImpact
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](8,12);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](3,6);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](4,16);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](4,8);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("MisterFuzzy",pos);
|
||||
let s = Spawn('MisterFuzzy',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
s.target = target;
|
||||
s.special1 -= 2;
|
||||
}
|
||||
Spawn("MisterExLightSmall",pos);
|
||||
let p = Spawn("MisterBulletImpactPop",pos);
|
||||
Spawn('MisterExLightSmall',pos);
|
||||
let p = Spawn('MisterBulletImpactPop',pos);
|
||||
p.A_SetScale(3.);
|
||||
}
|
||||
override void A_BulletSubExplode()
|
||||
|
|
@ -580,7 +580,7 @@ Class MisterStreamImpact : MisterBulletImpact
|
|||
{
|
||||
Vector3 np = level.Vec3Offset(pos,SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,16)*special1);
|
||||
if ( !level.IsPointInLevel(np) ) continue;
|
||||
let p = Spawn("MisterPop",np);
|
||||
let p = Spawn('MisterPop',np);
|
||||
p.target = target;
|
||||
}
|
||||
}
|
||||
|
|
@ -620,7 +620,7 @@ Class MisterRailEntryImpact : MisterBulletImpact
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,10);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(0,3,4)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](0,2);
|
||||
|
|
@ -631,20 +631,20 @@ Class MisterRailEntryImpact : MisterBulletImpact
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](8,12);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](2,4);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](4,16);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](3,6);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("MisterFuzzy",pos);
|
||||
let s = Spawn('MisterFuzzy',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
s.target = target;
|
||||
|
|
@ -653,8 +653,8 @@ Class MisterRailEntryImpact : MisterBulletImpact
|
|||
MisterFuzzy(s).mrc = mrc;
|
||||
mrc.effectors.Push(s);
|
||||
}
|
||||
Spawn("MisterExLightTiny",pos);
|
||||
let p = Spawn("MisterBulletImpactPop",pos);
|
||||
Spawn('MisterExLightTiny',pos);
|
||||
let p = Spawn('MisterBulletImpactPop',pos);
|
||||
p.A_SetScale(4.);
|
||||
}
|
||||
override void A_BulletSubExplode()
|
||||
|
|
@ -668,7 +668,7 @@ Class MisterRailEntryImpact : MisterBulletImpact
|
|||
{
|
||||
Vector3 np = level.Vec3Offset(pos,SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,16)*special1);
|
||||
if ( !level.IsPointInLevel(np) ) continue;
|
||||
let p = Spawn("MisterPop",np);
|
||||
let p = Spawn('MisterPop',np);
|
||||
p.target = target;
|
||||
if ( !mrc ) continue;
|
||||
MisterPop(p).mrc = mrc;
|
||||
|
|
@ -711,7 +711,7 @@ Class MisterRailExitImpact : MisterBulletImpact
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,12);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(0,3,4)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](1,3);
|
||||
|
|
@ -722,20 +722,20 @@ Class MisterRailExitImpact : MisterBulletImpact
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](8,12);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](4,12);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](4,16);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](4,8);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("MisterFuzzy",pos);
|
||||
let s = Spawn('MisterFuzzy',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
s.target = target;
|
||||
|
|
@ -743,8 +743,8 @@ Class MisterRailExitImpact : MisterBulletImpact
|
|||
MisterFuzzy(s).mrc = mrc;
|
||||
mrc.effectors.Push(s);
|
||||
}
|
||||
Spawn("MisterExLightBig",pos);
|
||||
let p = Spawn("MisterBulletImpactPop",pos);
|
||||
Spawn('MisterExLightBig',pos);
|
||||
let p = Spawn('MisterBulletImpactPop',pos);
|
||||
p.A_SetScale(8.);
|
||||
}
|
||||
override void A_BulletSubExplode()
|
||||
|
|
@ -758,7 +758,7 @@ Class MisterRailExitImpact : MisterBulletImpact
|
|||
{
|
||||
Vector3 np = level.Vec3Offset(pos,SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,16)*special1);
|
||||
if ( !level.IsPointInLevel(np) ) continue;
|
||||
let p = Spawn("MisterPop",np);
|
||||
let p = Spawn('MisterPop',np);
|
||||
p.target = target;
|
||||
if ( !mrc ) continue;
|
||||
MisterPop(p).mrc = mrc;
|
||||
|
|
@ -823,7 +823,7 @@ Class MisterRailBeam : SWWMNonInteractiveActor
|
|||
Default
|
||||
{
|
||||
Obituary "$O_MORTALRIFLE";
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
RenderRadius 10000.;
|
||||
+FORCEXYBILLBOARD;
|
||||
+FOILINVUL;
|
||||
|
|
@ -831,7 +831,7 @@ Class MisterRailBeam : SWWMNonInteractiveActor
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
let b = Spawn("MisterRailChildBeam",pos);
|
||||
let b = Spawn('MisterRailChildBeam',pos);
|
||||
b.frame = frame;
|
||||
b.scale.y = scale.y;
|
||||
b.angle = angle;
|
||||
|
|
@ -847,7 +847,7 @@ Class MisterRailBeam : SWWMNonInteractiveActor
|
|||
if ( isFrozen() ) return;
|
||||
A_SetScale(scale.x*.85,scale.y);
|
||||
A_FadeOut(.05);
|
||||
if ( !cbt ) cbt = new("CandyBeamTracer");
|
||||
if ( !cbt ) cbt = new('CandyBeamTracer');
|
||||
cbt.hitlist.Clear();
|
||||
Vector3 dir = SWWMUtility.Vec3FromAngles(angle,pitch-90);
|
||||
cbt.ShootThroughList.Clear();
|
||||
|
|
@ -873,7 +873,7 @@ Class MisterRailChildBeam : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Alpha .5;
|
||||
RenderRadius 10000.;
|
||||
+FORCEXYBILLBOARD;
|
||||
|
|
@ -901,7 +901,7 @@ Class MisterGrenadeFlare : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
override void Tick()
|
||||
|
|
@ -966,6 +966,7 @@ Class MisterGrenade : Actor
|
|||
+BOUNCEONWALLS;
|
||||
+BOUNCEONFLOORS;
|
||||
+BOUNCEONCEILINGS;
|
||||
+BOUNCEMODIFIESPITCH;
|
||||
+THRUACTORS;
|
||||
+CANBOUNCEWATER;
|
||||
}
|
||||
|
|
@ -974,7 +975,7 @@ Class MisterGrenade : Actor
|
|||
{
|
||||
Super.PostBeginPlay();
|
||||
oldvel = vel;
|
||||
let t = Spawn("MisterGrenadeFlare",pos);
|
||||
let t = Spawn('MisterGrenadeFlare',pos);
|
||||
t.master = self;
|
||||
t.scale *= Radius/4.;
|
||||
}
|
||||
|
|
@ -997,7 +998,7 @@ Class MisterGrenade : Actor
|
|||
A_Stop();
|
||||
ClearBounce();
|
||||
bINTERPOLATEANGLES = false;
|
||||
SetStateLabel("Rest");
|
||||
SetStateLabel('Rest');
|
||||
return;
|
||||
}
|
||||
// direct hit from main grenade
|
||||
|
|
@ -1017,7 +1018,7 @@ Class MisterGrenade : Actor
|
|||
int numpt = bAMBUSH?1:3;
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",Vec3Offset(0,0,Height/2));
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',Vec3Offset(0,0,Height/2));
|
||||
s.scolor = Color(1,4,2)*Random[Mister](48,63);
|
||||
s.scale *= FRandom[Mister](.5,1.1);
|
||||
s.framestep = Random[Mister](1,3);
|
||||
|
|
@ -1100,7 +1101,7 @@ Class MisterGrenade : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,12);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(0,3,4)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](1,4);
|
||||
|
|
@ -1111,20 +1112,20 @@ Class MisterGrenade : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](8,16);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](10,20);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](8,24);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](16,24);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("MisterFuzzy",pos);
|
||||
let s = Spawn('MisterFuzzy',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
s.target = target;
|
||||
|
|
@ -1132,7 +1133,7 @@ Class MisterGrenade : Actor
|
|||
}
|
||||
// gather seekable targets
|
||||
Array<Actor> candidates;
|
||||
let tt = new("TargetTracer");
|
||||
let tt = new('TargetTracer');
|
||||
tt.target = target;
|
||||
foreach ( s:level.Sectors ) for ( Actor t=s.thinglist; t; t=t.snext )
|
||||
{
|
||||
|
|
@ -1172,7 +1173,7 @@ Class MisterGrenade : Actor
|
|||
double ang = j;
|
||||
double pt = i;
|
||||
Vector3 dir = SWWMUtility.Vec3FromAngles(ang,pt);
|
||||
let p = MisterSubGrenade(Spawn("MisterSubGrenade",pos));
|
||||
let p = MisterSubGrenade(Spawn('MisterSubGrenade',pos));
|
||||
p.angle = ang;
|
||||
p.pitch = pt;
|
||||
p.vel = dir*p.speed;
|
||||
|
|
@ -1184,8 +1185,8 @@ Class MisterGrenade : Actor
|
|||
k = (k+1)%candidates.Size();
|
||||
}
|
||||
}
|
||||
Spawn("MisterExLightBig",pos);
|
||||
Spawn("MisterRing",pos);
|
||||
Spawn('MisterExLightBig',pos);
|
||||
Spawn('MisterRing',pos);
|
||||
}
|
||||
|
||||
virtual void A_GrenadeSubExplode()
|
||||
|
|
@ -1198,7 +1199,7 @@ Class MisterGrenade : Actor
|
|||
{
|
||||
Vector3 np = level.Vec3Offset(pos,SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,20)*special2);
|
||||
if ( !level.IsPointInLevel(np) ) continue;
|
||||
let p = Spawn("MisterPop",np);
|
||||
let p = Spawn('MisterPop',np);
|
||||
p.target = target;
|
||||
}
|
||||
}
|
||||
|
|
@ -1300,7 +1301,7 @@ Class MisterSubGrenade : MisterGrenade
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,8);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(0,3,4)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](1,4);
|
||||
|
|
@ -1311,26 +1312,26 @@ Class MisterSubGrenade : MisterGrenade
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](8,12);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](5,10);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](8,16);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](6,8);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("MisterFuzzy",pos);
|
||||
let s = Spawn('MisterFuzzy',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
s.target = target;
|
||||
s.special1 -= 2;
|
||||
}
|
||||
Spawn("MisterExLight",pos);
|
||||
Spawn('MisterExLight',pos);
|
||||
}
|
||||
override void A_GrenadeSubExplode()
|
||||
{
|
||||
|
|
@ -1342,7 +1343,7 @@ Class MisterSubGrenade : MisterGrenade
|
|||
{
|
||||
Vector3 np = level.Vec3Offset(pos,SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,10)*special2);
|
||||
if ( !level.IsPointInLevel(np) ) continue;
|
||||
let p = Spawn("MisterPop",np);
|
||||
let p = Spawn('MisterPop',np);
|
||||
p.target = target;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ Class Quadravol : SWWMWeapon
|
|||
action State A_QuadFire( bool bMelee = false )
|
||||
{
|
||||
static const String BaseNum[] = {"one","two","three","four","five"};
|
||||
static const StateLabel FireStates[] = {"FireOne","FireTwo","FireThree","FireFour","FireFive"};
|
||||
static const StateLabel FireStates1H[] = {"FireOne1H","FireTwo1H","FireThree1H","FireFour1H","FireFive1H"};
|
||||
static const StateLabel FireStates[] = {'FireOne','FireTwo','FireThree','FireFour','FireFive'};
|
||||
static const StateLabel FireStates1H[] = {'FireOne1H','FireTwo1H','FireThree1H','FireFour1H','FireFive1H'};
|
||||
int idx = clamp(invoker.chargelevel-1,0,4);
|
||||
A_StartSound("quadshot/fire"..BaseNum[idx],CHAN_WEAPON,CHANF_OVERLAP);
|
||||
A_PlayerFire();
|
||||
|
|
@ -95,7 +95,7 @@ Class Quadravol : SWWMWeapon
|
|||
SWWMHandler.DoFlash(self,Color(64,255,192,64),5);
|
||||
A_AlertMonsters(swwm_uncapalert?0:2000);
|
||||
SWWMUtility.DoKnockback(self,-x,20000.);
|
||||
p = Spawn("QuadProj",origin);
|
||||
p = Spawn('QuadProj',origin);
|
||||
p.target = self;
|
||||
p.angle = atan2(x2.y,x2.x);
|
||||
p.pitch = asin(-x2.z);
|
||||
|
|
@ -117,7 +117,7 @@ Class Quadravol : SWWMWeapon
|
|||
SWWMHandler.DoFlash(self,Color(64,255,192,64),7);
|
||||
A_AlertMonsters(swwm_uncapalert?0:3000);
|
||||
SWWMUtility.DoKnockback(self,-x,40000.);
|
||||
p = Spawn("QuadProj2",origin);
|
||||
p = Spawn('QuadProj2',origin);
|
||||
p.target = self;
|
||||
p.angle = atan2(x2.y,x2.x);
|
||||
p.pitch = asin(-x2.z);
|
||||
|
|
@ -139,7 +139,7 @@ Class Quadravol : SWWMWeapon
|
|||
SWWMHandler.DoFlash(self,Color(64,255,192,64),8);
|
||||
A_AlertMonsters(swwm_uncapalert?0:4000);
|
||||
SWWMUtility.DoKnockback(self,-x,80000.);
|
||||
p = Spawn("QuadProj3",origin);
|
||||
p = Spawn('QuadProj3',origin);
|
||||
p.target = self;
|
||||
p.angle = atan2(x2.y,x2.x);
|
||||
p.pitch = asin(-x2.z);
|
||||
|
|
@ -163,7 +163,7 @@ Class Quadravol : SWWMWeapon
|
|||
SWWMUtility.DoKnockback(self,-x,150000.);
|
||||
if ( pointblank || bMelee )
|
||||
{
|
||||
p = Spawn("QuadProj3",origin);
|
||||
p = Spawn('QuadProj3',origin);
|
||||
p.target = self;
|
||||
p.angle = atan2(x2.y,x2.x);
|
||||
p.pitch = asin(-x2.z);
|
||||
|
|
@ -180,7 +180,7 @@ Class Quadravol : SWWMWeapon
|
|||
s = FRandom[Quadravol](0,.2);
|
||||
a = (i%4)*90 + FRandom[Quadravol](-50,50)*s;
|
||||
dir = SWWMUtility.ConeSpread(x2,y2,z2,a,s);
|
||||
p = Spawn("QuadProjSub2",origin);
|
||||
p = Spawn('QuadProjSub2',origin);
|
||||
p.target = self;
|
||||
p.angle = atan2(dir.y,dir.x);
|
||||
p.pitch = asin(-dir.z);
|
||||
|
|
@ -209,7 +209,7 @@ Class Quadravol : SWWMWeapon
|
|||
s = FRandom[Quadravol](0,bExtra?.5:.4);
|
||||
a = (i%4)*90 + FRandom[Quadravol](-50,50)*s;
|
||||
dir = SWWMUtility.ConeSpread(x2,y2,z2,a,s);
|
||||
p = Spawn("QuadExplArm2",origin);
|
||||
p = Spawn('QuadExplArm2',origin);
|
||||
p.target = self;
|
||||
p.tracer = self;
|
||||
p.angle = atan2(dir.y,dir.x);
|
||||
|
|
@ -217,13 +217,13 @@ Class Quadravol : SWWMWeapon
|
|||
p.special1 = bExtra*4;
|
||||
p.special2 = bExtra*10;
|
||||
}
|
||||
Spawn("QuadExplLight3",origin);
|
||||
Spawn('QuadExplLight3',origin);
|
||||
break;
|
||||
}
|
||||
if ( pointblank || bMelee ) self.DamageMobj(invoker,self,bMelee?(5+idx*2):(10+idx*4),'Fire',DMG_EXPLOSION);
|
||||
for ( int i=0; i<(4+idx); i++ )
|
||||
{
|
||||
let s = Spawn("SWWMSmoke",origin);
|
||||
let s = Spawn('SWWMSmoke',origin);
|
||||
s.special1 = 1;
|
||||
s.scale *= 1.3;
|
||||
s.alpha *= .2;
|
||||
|
|
@ -232,7 +232,7 @@ Class Quadravol : SWWMWeapon
|
|||
}
|
||||
for ( int i=0; i<(10+2*idx); i++ )
|
||||
{
|
||||
let s = Spawn("SWWMSpark",origin);
|
||||
let s = Spawn('SWWMSpark',origin);
|
||||
s.scale *= .3;
|
||||
s.alpha *= .4;
|
||||
s.vel += vel*.5+x*FRandom[Quadravol](4.,8.)+y*FRandom[Quadravol](-1.,1.)+z*FRandom[Quadravol](-1.,1.);
|
||||
|
|
@ -254,8 +254,8 @@ Class Quadravol : SWWMWeapon
|
|||
if ( invoker.waschambered )
|
||||
{
|
||||
A_ChangeModel("",2,"","",0,"models",invoker.wascharged?"QuadCell_Used.png":"QuadCell.png",CMDL_USESURFACESKIN,-1);
|
||||
if ( invoker.onehand ) A_Overlay(PSP_WEAPON+1,"DropCasing1H");
|
||||
else A_Overlay(PSP_WEAPON+1,"DropCasing");
|
||||
if ( invoker.onehand ) A_Overlay(PSP_WEAPON+1,'DropCasing1H');
|
||||
else A_Overlay(PSP_WEAPON+1,'DropCasing');
|
||||
invoker.wastecycle = 0;
|
||||
}
|
||||
else if ( !Demolitionist(self) || !(Demolitionist(self).mystats) || swwm_nomapmsg ) return;
|
||||
|
|
@ -277,7 +277,7 @@ Class Quadravol : SWWMWeapon
|
|||
A_PlayerReload(true);
|
||||
A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP,.8);
|
||||
A_ChangeModel("",2,"","",0,"models","QuadCell.png",CMDL_USESURFACESKIN,-1);
|
||||
A_Overlay(PSP_WEAPON+1,"LoadOverlay");
|
||||
A_Overlay(PSP_WEAPON+1,'LoadOverlay');
|
||||
}
|
||||
|
||||
action void A_Load()
|
||||
|
|
@ -302,7 +302,7 @@ Class Quadravol : SWWMWeapon
|
|||
Vector3 origin = SWWMUtility.GetFireOffset(self,-8,8,-16);
|
||||
if ( invoker.wascharged )
|
||||
{
|
||||
let c = Spawn("QuadravolCasing",origin);
|
||||
let c = Spawn('QuadravolCasing',origin);
|
||||
c.angle = angle;
|
||||
c.pitch = pitch-90;
|
||||
c.vel = x*FRandom[Junk](-2.5,-1.5)+y*FRandom[Junk](.5,1.)-(0,0,FRandom[Junk](2.,5.));
|
||||
|
|
@ -311,7 +311,7 @@ Class Quadravol : SWWMWeapon
|
|||
}
|
||||
if ( invoker.Ammo1.Amount >= invoker.Ammo1.MaxAmount )
|
||||
{
|
||||
let a = Inventory(Spawn("QuadravolAmmo",origin));
|
||||
let a = Inventory(Spawn('QuadravolAmmo',origin));
|
||||
a.bDROPPED = true;
|
||||
a.DropTime = 30;
|
||||
a.bSpecial = a.bSolid = false;
|
||||
|
|
@ -426,9 +426,9 @@ Class Quadravol : SWWMWeapon
|
|||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 650;
|
||||
Weapon.UpSound "quadshot/select";
|
||||
Weapon.AmmoType1 "QuadravolAmmo";
|
||||
Weapon.AmmoType1 'QuadravolAmmo';
|
||||
Weapon.AmmoGive1 3;
|
||||
SWWMWeapon.DropAmmoType "SWWMRocketAmmoSmall";
|
||||
SWWMWeapon.DropAmmoType 'SWWMRocketAmmoSmall';
|
||||
Quadravol.ClipCount 5;
|
||||
Stamina 80000;
|
||||
+SWWMWEAPON.NOFIRSTGIVE;
|
||||
|
|
@ -444,7 +444,7 @@ Class Quadravol : SWWMWeapon
|
|||
XZW2 R 1
|
||||
{
|
||||
A_FullRaise();
|
||||
return A_JumpIf(invoker.onehand,"Select1H");
|
||||
return A_JumpIf(invoker.onehand,'Select1H');
|
||||
}
|
||||
XZW2 STUVWXYZ 1;
|
||||
XZW3 ABCDEFGHI 1;
|
||||
|
|
@ -467,9 +467,9 @@ Class Quadravol : SWWMWeapon
|
|||
{
|
||||
if ( invoker.chargelevel <= 0 )
|
||||
{
|
||||
if ( invoker.clipcount > 0 ) return ResolveState("AltFire");
|
||||
if ( invoker.clipcount > 0 ) return ResolveState('AltFire');
|
||||
invoker.fromfire = true;
|
||||
return ResolveState("Reload");
|
||||
return ResolveState('Reload');
|
||||
}
|
||||
return A_QuadFire();
|
||||
}
|
||||
|
|
@ -506,7 +506,7 @@ Class Quadravol : SWWMWeapon
|
|||
XZW2 A 2
|
||||
{
|
||||
A_PlayerCheckGun();
|
||||
return A_JumpIf(invoker.onehand,"AltFire1H");
|
||||
return A_JumpIf(invoker.onehand,'AltFire1H');
|
||||
}
|
||||
XZW5 C 2;
|
||||
XZW5 D 2 A_LeverForward();
|
||||
|
|
@ -527,8 +527,8 @@ Class Quadravol : SWWMWeapon
|
|||
XZW2 A 2
|
||||
{
|
||||
if ( (invoker.clipcount >= invoker.default.clipcount) || ((invoker.Ammo1.Amount <= 0) && !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo',true)) )
|
||||
return invoker.onehand?ResolveState("Idle1H"):ResolveState("Idle");
|
||||
if ( invoker.onehand ) return ResolveState("Reload1H");
|
||||
return invoker.onehand?ResolveState('Idle1H'):ResolveState('Idle');
|
||||
if ( invoker.onehand ) return ResolveState('Reload1H');
|
||||
A_StartSound("quadshot/onehand",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return ResolveState(null);
|
||||
}
|
||||
|
|
@ -547,12 +547,12 @@ Class Quadravol : SWWMWeapon
|
|||
XZW5 P 2
|
||||
{
|
||||
if ( (invoker.clipcount >= invoker.default.clipcount) || ((invoker.Ammo1.Amount <= 0) && !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo',true)) )
|
||||
return A_JumpIf(invoker.onehand,"ReloadEnd1H");
|
||||
return A_JumpIf(invoker.onehand,'ReloadEnd1H');
|
||||
if ( invoker.fromfire && (player.cmd.buttons&BT_ATTACK) )
|
||||
return ResolveState("ReloadHold");
|
||||
return ResolveState('ReloadHold');
|
||||
invoker.fromfire = false;
|
||||
if ( player.cmd.buttons&BT_RELOAD ) return ResolveState("ReloadHold");
|
||||
return A_JumpIf(invoker.onehand,"ReloadEnd1H");
|
||||
if ( player.cmd.buttons&BT_RELOAD ) return ResolveState('ReloadHold');
|
||||
return A_JumpIf(invoker.onehand,'ReloadEnd1H');
|
||||
}
|
||||
XZW6 B 2 A_StartSound("quadshot/twohand",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW6 CDEF 2;
|
||||
|
|
@ -578,7 +578,7 @@ Class Quadravol : SWWMWeapon
|
|||
if ( invoker.onehand )
|
||||
{
|
||||
invoker.onehand = false;
|
||||
return ResolveState("Zoom1H");
|
||||
return ResolveState('Zoom1H');
|
||||
}
|
||||
A_StartSound("quadshot/onehand",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
invoker.onehand = true;
|
||||
|
|
@ -591,7 +591,7 @@ Class Quadravol : SWWMWeapon
|
|||
XZW2 A 1
|
||||
{
|
||||
A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return A_JumpIf(invoker.onehand,"User11H");
|
||||
return A_JumpIf(invoker.onehand,'User11H');
|
||||
}
|
||||
XZW7 BCD 1;
|
||||
XZW7 E 2
|
||||
|
|
@ -602,14 +602,14 @@ Class Quadravol : SWWMWeapon
|
|||
XZW7 FG 2;
|
||||
XZW7 H 2 A_Parry(6);
|
||||
XZW7 I 1;
|
||||
XZW7 J 1 A_JumpIf(A_Melee(20,"demolitionist/whitm",1.2,.6,.2),"Bayonet");
|
||||
XZW7 J 1 A_JumpIf(A_Melee(20,"demolitionist/whitm",1.2,.6,.2),'Bayonet');
|
||||
XZW7 KLM 1;
|
||||
XZW7 NOPQRSTUVWX 2;
|
||||
Goto Ready;
|
||||
Bayonet:
|
||||
XZW7 J 1 A_FireBayonet();
|
||||
XZW7 YZ 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),"BayonetFire");
|
||||
XZW8 ABC 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),"BayonetFire");
|
||||
XZW7 YZ 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),'BayonetFire');
|
||||
XZW8 ABC 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),'BayonetFire');
|
||||
XZW8 D 1 A_StartSound("quadshot/bayonetreturn",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW8 EFGH 1;
|
||||
XZW8 IJKL 2;
|
||||
|
|
@ -625,7 +625,7 @@ Class Quadravol : SWWMWeapon
|
|||
XZW2 A 1
|
||||
{
|
||||
A_StartSound(invoker.onehand?"quadshot/deselectfast":"quadshot/deselect",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
return A_JumpIf(invoker.onehand,"Deselect1H");
|
||||
return A_JumpIf(invoker.onehand,'Deselect1H');
|
||||
}
|
||||
XZW2 BCDEFGHIJKLMNOPQ 1;
|
||||
XZW2 R -1 A_FullLower();
|
||||
|
|
@ -635,7 +635,7 @@ Class Quadravol : SWWMWeapon
|
|||
{
|
||||
let psp = player.GetPSprite(PSP_FLASH);
|
||||
psp.frame = Random[GunFlash](0,9)+invoker.onehand*10;
|
||||
let l = Spawn("SWWMWeaponLight",pos);
|
||||
let l = Spawn('SWWMWeaponLight',pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
|
|
@ -741,15 +741,15 @@ Class Quadravol : SWWMWeapon
|
|||
XZWD DE 2;
|
||||
XZWD F 2 A_Parry(6);
|
||||
XZWD G 1;
|
||||
XZWD H 1 A_JumpIf(A_Melee(20,"demolitionist/whitm",1.2,.6,.2),"Bayonet1H");
|
||||
XZWD H 1 A_JumpIf(A_Melee(20,"demolitionist/whitm",1.2,.6,.2),'Bayonet1H');
|
||||
XZWD IJK 1;
|
||||
XZWD LMNOPQRSTUV 2;
|
||||
Goto Ready1H;
|
||||
Bayonet1H:
|
||||
XZWD H 1 A_FireBayonet();
|
||||
XZWD WX 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),"BayonetFire1H");
|
||||
XZWD YZ 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),"BayonetFire1H");
|
||||
XZWE A 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),"BayonetFire1H");
|
||||
XZWD WX 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),'BayonetFire1H');
|
||||
XZWD YZ 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),'BayonetFire1H');
|
||||
XZWE A 2 A_JumpIf((player.cmd.buttons&BT_ATTACK)&&(invoker.chargelevel>0),'BayonetFire1H');
|
||||
XZWE B 1 A_StartSound("quadshot/bayonetreturn",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZWE CDEF 1;
|
||||
XZWE GHIJ 2;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ Class QuadFlare : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Alpha .5;
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
|
|
@ -89,7 +89,7 @@ Class QuadTrail : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Alpha .5;
|
||||
Scale 1.5;
|
||||
+FORCEXYBILLBOARD;
|
||||
|
|
@ -178,7 +178,7 @@ Class QuadExplRing : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale 1.2;
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
|
|
@ -202,7 +202,7 @@ Class QuadProj : Actor
|
|||
{
|
||||
Super.PostBeginPlay();
|
||||
A_StartSound("quadshot/fly",CHAN_BODY,CHANF_LOOP);
|
||||
let t = Spawn("QuadFlare",pos);
|
||||
let t = Spawn('QuadFlare',pos);
|
||||
t.master = self;
|
||||
t.scale = scale*2.;
|
||||
}
|
||||
|
|
@ -224,17 +224,17 @@ Class QuadProj : Actor
|
|||
|
||||
virtual void A_QuadTrail()
|
||||
{
|
||||
let t = Spawn("QuadTrail",pos);
|
||||
let t = Spawn('QuadTrail',pos);
|
||||
t.scale *= .6;
|
||||
t.vel = vel*.2;
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*.4;
|
||||
s.vel += vel*.3;
|
||||
s.alpha *= .4;
|
||||
int numpt = Random[Quadravol](5,15);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let e = SWWMStaticSprite.SpawnAt("QuadEmber",pos);
|
||||
let e = SWWMStaticSprite.SpawnAt('QuadEmber',pos);
|
||||
e.vel += vel*.3;
|
||||
}
|
||||
}
|
||||
|
|
@ -259,13 +259,13 @@ Class QuadProj : Actor
|
|||
A_StartSound("quadshot/hit",CHAN_WEAPON,attenuation:.6);
|
||||
A_StartSound("quadshot/hit",CHAN_VOICE,attenuation:.4);
|
||||
A_AlertMonsters(swwm_uncapalert?0:1500,AMF_EMITFROMTARGET);
|
||||
Spawn("QuadExplLight",pos);
|
||||
Spawn("QuadExplRing",pos);
|
||||
Spawn('QuadExplLight',pos);
|
||||
Spawn('QuadExplRing',pos);
|
||||
int numpt = Random[Quadravol](12,18);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](2,8);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.special1 = Random[Quadravol](2,3);
|
||||
s.scale *= 4.;
|
||||
|
|
@ -275,14 +275,14 @@ Class QuadProj : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](4,16);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Quadravol](4,8);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](6,12);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
s.scale *= FRandom[Quadravol](0.9,1.8);
|
||||
}
|
||||
|
|
@ -315,7 +315,7 @@ Class QuadProj : Actor
|
|||
+HITMASTER;
|
||||
+NOFRICTION;
|
||||
+SKYEXPLODE;
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
}
|
||||
|
||||
States
|
||||
|
|
@ -364,11 +364,11 @@ Class QuadExplArm : Actor
|
|||
Spawn:
|
||||
TNT1 A 1
|
||||
{
|
||||
Spawn("QuadExplTrail",pos);
|
||||
Spawn('QuadExplTrail',pos);
|
||||
if ( !(ReactionTime%2) )
|
||||
SWWMUtility.DoExplosion(self,8+reactiontime*3,0,40+5*reactiontime,20,DE_QUADRAVOL|DE_NOSPLASH,ignoreme:tracer);
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = pvel+vel*.3;
|
||||
s.framestep = Random[ExploS](2,4);
|
||||
s.scale *= 3.;
|
||||
|
|
@ -376,7 +376,7 @@ Class QuadExplArm : Actor
|
|||
int numpt = Random[Quadravol](1,4);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let e = SWWMStaticSprite.SpawnAt("QuadEmber",pos);
|
||||
let e = SWWMStaticSprite.SpawnAt('QuadEmber',pos);
|
||||
e.vel += vel*.4;
|
||||
}
|
||||
A_CountDown();
|
||||
|
|
@ -399,7 +399,7 @@ Class QuadExplArm2 : QuadExplArm
|
|||
Spawn:
|
||||
TNT1 A 1
|
||||
{
|
||||
Spawn("QuadExplTrail2",pos);
|
||||
Spawn('QuadExplTrail2',pos);
|
||||
if ( !(ReactionTime%2) )
|
||||
{
|
||||
SWWMUtility.DoExplosion(self,0,80000+reactiontime*5000,120+6*reactiontime,50,DE_BLAST|DE_EXTRAZTHRUST,ignoreme:tracer);
|
||||
|
|
@ -407,7 +407,7 @@ Class QuadExplArm2 : QuadExplArm
|
|||
SWWMUtility.DoExplosion(self,80+reactiontime*10,0,100+4*reactiontime,50,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
}
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,5);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = pvel+vel*.6;
|
||||
s.framestep = Random[ExploS](3,5);
|
||||
s.scale *= 3.2;
|
||||
|
|
@ -415,7 +415,7 @@ Class QuadExplArm2 : QuadExplArm
|
|||
int numpt = Random[Quadravol](1,5);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let e = SWWMStaticSprite.SpawnAt("QuadEmber",pos);
|
||||
let e = SWWMStaticSprite.SpawnAt('QuadEmber',pos);
|
||||
e.vel += vel*.7;
|
||||
}
|
||||
A_CountDown();
|
||||
|
|
@ -428,7 +428,7 @@ Class QuadExplTrail : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+FORCEXYBILLBOARD;
|
||||
Scale 1.2;
|
||||
}
|
||||
|
|
@ -478,17 +478,17 @@ Class QuadProj2 : QuadProj
|
|||
}
|
||||
override void A_QuadTrail()
|
||||
{
|
||||
let t = Spawn("QuadTrail",pos);
|
||||
let t = Spawn('QuadTrail',pos);
|
||||
t.scale *= .8;
|
||||
t.vel = vel*.3;
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*.4;
|
||||
s.vel += vel*.4;
|
||||
s.alpha *= .6;
|
||||
int numpt = Random[Quadravol](5,25);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let e = SWWMStaticSprite.SpawnAt("QuadEmber",pos);
|
||||
let e = SWWMStaticSprite.SpawnAt('QuadEmber',pos);
|
||||
e.vel += vel*.4;
|
||||
}
|
||||
}
|
||||
|
|
@ -512,13 +512,13 @@ Class QuadProj2 : QuadProj
|
|||
A_StartSound("quadshot/twohit",CHAN_WEAPON,attenuation:.5);
|
||||
A_StartSound("quadshot/twohit",CHAN_VOICE,attenuation:.25);
|
||||
A_AlertMonsters(swwm_uncapalert?0:2500,AMF_EMITFROMTARGET);
|
||||
Spawn("QuadExplLight2",pos);
|
||||
Spawn("QuadExplRing2",pos);
|
||||
Spawn('QuadExplLight2',pos);
|
||||
Spawn('QuadExplRing2',pos);
|
||||
int numpt = Random[Quadravol](20,30);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](2,12);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.special1 = Random[Quadravol](2,3);
|
||||
s.scale *= 4.;
|
||||
|
|
@ -528,21 +528,21 @@ Class QuadProj2 : QuadProj
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](4,16);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Quadravol](8,12);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](6,12);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
s.scale *= FRandom[Quadravol](0.9,1.8);
|
||||
}
|
||||
numpt = Random[Quadravol](12,16);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("QuadExplArm",pos);
|
||||
let s = Spawn('QuadExplArm',pos);
|
||||
s.target = target;
|
||||
s.tracer = tracer;
|
||||
}
|
||||
|
|
@ -572,17 +572,17 @@ Class QuadProjSub : QuadProj
|
|||
}
|
||||
override void A_QuadTrail()
|
||||
{
|
||||
let t = Spawn("QuadTrail",pos);
|
||||
let t = Spawn('QuadTrail',pos);
|
||||
t.scale *= .5;
|
||||
t.vel = vel*.3;
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*.4;
|
||||
s.vel += vel*.4;
|
||||
s.alpha *= .2;
|
||||
int numpt = Random[Quadravol](1,4);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let e = SWWMStaticSprite.SpawnAt("QuadEmber",pos);
|
||||
let e = SWWMStaticSprite.SpawnAt('QuadEmber',pos);
|
||||
e.vel += vel*.4;
|
||||
}
|
||||
}
|
||||
|
|
@ -604,12 +604,12 @@ Class QuadProjSub : QuadProj
|
|||
SWWMUtility.DoExplosion(self,150,0,100,40,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
A_StartSound("quadshot/hit",CHAN_WEAPON,attenuation:.8,pitch:1.2);
|
||||
A_AlertMonsters(swwm_uncapalert?0:800,AMF_EMITFROMTARGET);
|
||||
Spawn("QuadExplLight",pos);
|
||||
Spawn('QuadExplLight',pos);
|
||||
int numpt = Random[Quadravol](6,12);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](2,8);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.special1 = Random[Quadravol](2,3);
|
||||
s.scale *= 4.;
|
||||
|
|
@ -619,14 +619,14 @@ Class QuadProjSub : QuadProj
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](4,16);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Quadravol](2,4);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](6,12);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
s.scale *= FRandom[Quadravol](0.9,1.8);
|
||||
}
|
||||
|
|
@ -655,17 +655,17 @@ Class QuadProjSub2 : QuadProj
|
|||
}
|
||||
override void A_QuadTrail()
|
||||
{
|
||||
let t = Spawn("QuadTrail",pos);
|
||||
let t = Spawn('QuadTrail',pos);
|
||||
t.scale *= .3;
|
||||
t.vel = vel*.3;
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*.4;
|
||||
s.vel += vel*.4;
|
||||
s.alpha *= .2;
|
||||
int numpt = Random[Quadravol](1,4);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let e = SWWMStaticSprite.SpawnAt("QuadEmber",pos);
|
||||
let e = SWWMStaticSprite.SpawnAt('QuadEmber',pos);
|
||||
e.vel += vel*.4;
|
||||
}
|
||||
}
|
||||
|
|
@ -687,12 +687,12 @@ Class QuadProjSub2 : QuadProj
|
|||
SWWMUtility.DoExplosion(self,180,0,100,40,DE_HOWL|DE_NOSPLASH,ignoreme:tracer);
|
||||
A_StartSound("quadshot/hit",CHAN_WEAPON,attenuation:.6,pitch:1.1);
|
||||
A_AlertMonsters(swwm_uncapalert?0:600,AMF_EMITFROMTARGET);
|
||||
Spawn("QuadExplLight",pos);
|
||||
Spawn('QuadExplLight',pos);
|
||||
int numpt = Random[Quadravol](6,12);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](2,8);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.special1 = Random[Quadravol](2,3);
|
||||
s.scale *= 4.;
|
||||
|
|
@ -702,14 +702,14 @@ Class QuadProjSub2 : QuadProj
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](4,16);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Quadravol](2,4);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](6,12);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
s.scale *= FRandom[Quadravol](0.9,1.8);
|
||||
}
|
||||
|
|
@ -753,10 +753,10 @@ Class QuadProj3 : QuadProj
|
|||
}
|
||||
override void A_QuadTrail()
|
||||
{
|
||||
let t = Spawn("QuadTrail",pos);
|
||||
let t = Spawn('QuadTrail',pos);
|
||||
t.scale *= 1.2;
|
||||
t.vel = vel*.4;
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*.4;
|
||||
s.vel += vel*.6;
|
||||
s.alpha *= .8;
|
||||
|
|
@ -764,7 +764,7 @@ Class QuadProj3 : QuadProj
|
|||
int numpt = Random[Quadravol](5,30);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let e = SWWMStaticSprite.SpawnAt("QuadEmber",pos);
|
||||
let e = SWWMStaticSprite.SpawnAt('QuadEmber',pos);
|
||||
e.vel += vel*.6;
|
||||
}
|
||||
}
|
||||
|
|
@ -789,13 +789,13 @@ Class QuadProj3 : QuadProj
|
|||
A_StartSound("quadshot/twohit",CHAN_VOICE,attenuation:.3,pitch:.8);
|
||||
A_StartSound("quadshot/extrahit",CHAN_ITEM,attenuation:.2,pitch:1.1);
|
||||
A_AlertMonsters(swwm_uncapalert?0:3500,AMF_EMITFROMTARGET);
|
||||
Spawn("QuadExplLight3",pos);
|
||||
Spawn("QuadExplRing3",pos);
|
||||
Spawn('QuadExplLight3',pos);
|
||||
Spawn('QuadExplRing3',pos);
|
||||
int numpt = Random[Quadravol](25,35);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](2,12);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.special1 = Random[Quadravol](2,3);
|
||||
s.scale *= 4.;
|
||||
|
|
@ -805,21 +805,21 @@ Class QuadProj3 : QuadProj
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](4,16);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Quadravol](10,15);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Quadravol](0,360),FRandom[Quadravol](-90,90))*FRandom[Quadravol](6,12);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
s.scale *= FRandom[Quadravol](0.9,1.8);
|
||||
}
|
||||
numpt = Random[Quadravol](16,20);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("QuadExplArm",pos);
|
||||
let s = Spawn('QuadExplArm',pos);
|
||||
s.target = target;
|
||||
s.tracer = tracer;
|
||||
s.special1 = 10;
|
||||
|
|
@ -830,7 +830,7 @@ Class QuadProj3 : QuadProj
|
|||
double pt = j+FRandom[ExploS](-15,15);
|
||||
// skip if directly hitting a wall
|
||||
if ( LineTrace(ang,40,pt,TRF_THRUACTORS|TRF_THRUHITSCAN) ) continue;
|
||||
let s = Spawn("QuadProjSub",pos);
|
||||
let s = Spawn('QuadProjSub',pos);
|
||||
s.target = target;
|
||||
s.tracer = tracer;
|
||||
s.angle = ang;
|
||||
|
|
@ -893,7 +893,7 @@ Class OnFire : Inventory
|
|||
{
|
||||
Super.AttachToOwner(other);
|
||||
cnt = 1;
|
||||
lite = Spawn("OnFireLight",other.pos);
|
||||
lite = Spawn('OnFireLight',other.pos);
|
||||
lite.specialf1 = 3;
|
||||
OnFireLight(lite).of = self;
|
||||
}
|
||||
|
|
@ -918,7 +918,7 @@ Class OnFire : Inventory
|
|||
// note: cannot spread to Demolitionist
|
||||
if ( !(target is 'Demolitionist') )
|
||||
{
|
||||
let t = OnFire(target.FindInventory("OnFire"));
|
||||
let t = OnFire(target.FindInventory('OnFire'));
|
||||
if ( !t )
|
||||
{
|
||||
t = Apply(target,instigator,min(Damage,int(Amount*.6))); // prevent "escalating" spread
|
||||
|
|
@ -986,12 +986,12 @@ Class OnFire : Inventory
|
|||
double pt = FRandom[FlameT](-90,90);
|
||||
if ( amount > 0 )
|
||||
{
|
||||
let c = SWWMAnimSprite.SpawnAt("OnFireTrail",tpos);
|
||||
let c = SWWMAnimSprite.SpawnAt('OnFireTrail',tpos);
|
||||
c.scale *= max(.35,mult*.6);
|
||||
c.vel = Owner.vel*.5+SWWMUtility.Vec3FromAngles(ang,pt)*FRandom[FlameT](.5,2.)*c.scale.x;
|
||||
}
|
||||
if ( Random[FlameT](0,3) ) continue;
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",tpos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',tpos);
|
||||
s.scale *= max(.35,mult*.5);
|
||||
s.alpha *= min(amount+30,100)*.005;
|
||||
s.vel = Owner.vel*.5+SWWMUtility.Vec3FromAngles(ang,pt)*FRandom[FlameT](.2,.6)*s.scale.x;
|
||||
|
|
@ -1000,7 +1000,7 @@ Class OnFire : Inventory
|
|||
|
||||
static OnFire Apply( Actor victim, Actor instigator, int amount )
|
||||
{
|
||||
let t = OnFire(victim.FindInventory("OnFire"));
|
||||
let t = OnFire(victim.FindInventory('OnFire'));
|
||||
if ( t )
|
||||
{
|
||||
t.instigator = instigator;
|
||||
|
|
@ -1008,7 +1008,7 @@ Class OnFire : Inventory
|
|||
t.cnt = min(t.cnt,5);
|
||||
return t;
|
||||
}
|
||||
t = OnFire(Spawn("ONFire"));
|
||||
t = OnFire(Spawn('OnFire'));
|
||||
t.AttachToOwner(victim);
|
||||
t.instigator = instigator;
|
||||
t.amount = min(t.maxamount,amount);
|
||||
|
|
@ -1022,7 +1022,7 @@ Class OnFire : Inventory
|
|||
|
||||
static clearscope OnFire IsOnFire( Actor victim )
|
||||
{
|
||||
let t = OnFire(victim.FindInventory("OnFire"));
|
||||
let t = OnFire(victim.FindInventory('OnFire'));
|
||||
if ( t && (t.amount > 0) ) return t;
|
||||
return null;
|
||||
}
|
||||
|
|
@ -1064,7 +1064,7 @@ Class OnFireTrail : SWWMAnimSprite
|
|||
}
|
||||
if ( !Random[FlameT](0,int(40*(.3-alpha))) )
|
||||
{
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = SWWMUtility.Vec3FromAngles(FRandom[FlameT](0,360),FRandom[FlameT](-90,90))*.2;
|
||||
s.vel += vel*.3;
|
||||
s.alpha *= alpha*.5;
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ Class PuntzerBeta : SWWMWeapon
|
|||
Weapon.SlotNumber 3;
|
||||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 450;
|
||||
Weapon.AmmoType1 "SMW05Ammo";
|
||||
Weapon.AmmoType1 'SMW05Ammo';
|
||||
Weapon.AmmoGive1 6;
|
||||
SWWMWeapon.DropAmmoType "SWWMShellAmmoSmall";
|
||||
SWWMWeapon.DropAmmoType 'SWWMShellAmmoSmall';
|
||||
Stamina 10000;
|
||||
+SWWMWEAPON.NOFIRSTGIVE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ Class PuntzerGamma : SWWMWeapon
|
|||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 350;
|
||||
PuntzerGamma.ClipCount 30;
|
||||
Weapon.AmmoType1 "SMW05Ammo";
|
||||
Weapon.AmmoType1 'SMW05Ammo';
|
||||
Weapon.AmmoGive1 30;
|
||||
SWWMWeapon.DropAmmoType "SWWMShellAmmoBig";
|
||||
SWWMWeapon.DropAmmoType 'SWWMShellAmmoBig';
|
||||
Stamina 30000;
|
||||
+SWWMWEAPON.NOFIRSTGIVE;
|
||||
+SWWMWEAPON.HASSCRTEX;
|
||||
|
|
|
|||
|
|
@ -46,9 +46,9 @@ Class RayKhom : SWWMWeapon
|
|||
Weapon.SlotNumber 8;
|
||||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 750;
|
||||
Weapon.AmmoType1 "RayAmmo";
|
||||
Weapon.AmmoType1 'RayAmmo';
|
||||
Weapon.AmmoGive1 1;
|
||||
SWWMWeapon.DropAmmoType "SWWMCellAmmoSmall";
|
||||
SWWMWeapon.DropAmmoType 'SWWMCellAmmoSmall';
|
||||
RayKhom.ClipCount 10;
|
||||
Stamina 500000;
|
||||
+SWWMWEAPON.NOFIRSTGIVE;
|
||||
|
|
|
|||
|
|
@ -41,9 +41,9 @@ Class RafanKos : SWWMWeapon
|
|||
Weapon.SlotNumber 0;
|
||||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 8000;
|
||||
Weapon.AmmoType1 "UltimateAmmo";
|
||||
Weapon.AmmoType1 'UltimateAmmo';
|
||||
Weapon.AmmoGive1 1;
|
||||
SWWMWeapon.DropAmmoType "SWWMCellAmmoBig";
|
||||
SWWMWeapon.DropAmmoType 'SWWMCellAmmoBig';
|
||||
RafanKos.ClipCount 4;
|
||||
Stamina -5000000;
|
||||
+SWWMWEAPON.NOFIRSTGIVE;
|
||||
|
|
|
|||
|
|
@ -82,13 +82,13 @@ Class SWWMHandler : EventHandler
|
|||
|
||||
static play void ToggleStore( bool val )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd || !hnd.gdat ) return; // shouldn't happen, but doesn't hurt to check
|
||||
hnd.gdat.disablestore = !val;
|
||||
}
|
||||
static play void ToggleRevive( bool val )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd || !hnd.gdat ) return; // shouldn't happen, but doesn't hurt to check
|
||||
hnd.gdat.disablerevive = !val;
|
||||
}
|
||||
|
|
@ -103,17 +103,9 @@ Class SWWMHandler : EventHandler
|
|||
indoomvacation = -1;
|
||||
inultdoom2 = -1;
|
||||
// class-checking ones can be initialized here easily
|
||||
foreach ( cls:AllActorClasses )
|
||||
{
|
||||
if ( cls.GetClassName() == "RLMonster" ) hasdrlamonsters = true;
|
||||
else if ( cls.GetClassName() == "LOBZombieman" ) haslegionofbones = true;
|
||||
}
|
||||
foreach ( cls:AllClasses )
|
||||
{
|
||||
if ( cls.GetClassName() != "CCards_Global" ) continue;
|
||||
ccloaded = true;
|
||||
break;
|
||||
}
|
||||
if ( FindClass('RLMonster','Actor') ) hasdrlamonsters = true;
|
||||
if ( FindClass('LOBZombieman','Actor') ) haslegionofbones = true;
|
||||
if ( FindClass('CCards_Global','Thinker') ) ccloaded = true;
|
||||
if ( LevelInfo.MapExists("Z1M1") && (LevelInfo.MapChecksum("Z1M1") ~== "2B7744234ED2C162AD08A3255E979F65") )
|
||||
iskdizd = true;
|
||||
// read bludtype files if they can be found
|
||||
|
|
@ -155,10 +147,10 @@ Class SWWMHandler : EventHandler
|
|||
// cache various services into the handler on register
|
||||
// this dramatically reduces overhead by not having to use an iterator every time they're needed
|
||||
// especially noticeable for fun tags, as they're looked up for every monster on map load
|
||||
let si = ServiceIterator.Find("FunTagService");
|
||||
let si = ServiceIterator.Find('FunTagService');
|
||||
Service sv;
|
||||
while ( sv = si.Next() ) funtagsv.Push(sv);
|
||||
si = ServiceIterator.Find("MergeMonsterService");
|
||||
si = ServiceIterator.Find('MergeMonsterService');
|
||||
while ( sv = si.Next() ) mergemonstersv.Push(sv);
|
||||
// start profiling
|
||||
if ( swwm_profstart <= 0 ) return;
|
||||
|
|
@ -181,7 +173,7 @@ Class SWWMHandler : EventHandler
|
|||
if ( !mnotify && (level.maptime >= 5) )
|
||||
{
|
||||
mnotify = true;
|
||||
let ti = ThinkerIterator.Create("SWWMStats",Thinker.STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMStats',Thinker.STAT_STATIC);
|
||||
SWWMStats s;
|
||||
while ( s = SWWMStats(ti.Next()) )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -91,9 +91,9 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
S_StartSound("misc/w_pkup",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
if ( players[e.Args[0]].mo.FindInventory("Ynykron") )
|
||||
players[e.Args[0]].mo.GiveInventory("YnykronAmmo",1);
|
||||
else players[e.Args[0]].mo.GiveInventory("Ynykron",1);
|
||||
if ( players[e.Args[0]].mo.FindInventory('Ynykron') )
|
||||
players[e.Args[0]].mo.GiveInventory('YnykronAmmo',1);
|
||||
else players[e.Args[0]].mo.GiveInventory('Ynykron',1);
|
||||
}
|
||||
else if ( e.Name ~== "swwmgravcheat" )
|
||||
{
|
||||
|
|
@ -103,9 +103,9 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
S_StartSound("misc/p_pkup",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
let g = GravityPower(players[e.Args[0]].mo.FindInventory("GravityPower"));
|
||||
let g = GravityPower(players[e.Args[0]].mo.FindInventory('GravityPower'));
|
||||
if ( g ) g.EffectTics += g.default.EffectTics;
|
||||
else players[e.Args[0]].mo.GiveInventory("GravityPower",1);
|
||||
else players[e.Args[0]].mo.GiveInventory('GravityPower',1);
|
||||
}
|
||||
else if ( e.Name ~== "swwminvischeat" )
|
||||
{
|
||||
|
|
@ -115,9 +115,9 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
S_StartSound("misc/p_pkup",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
let g = GhostPower(players[e.Args[0]].mo.FindInventory("GhostPower"));
|
||||
let g = GhostPower(players[e.Args[0]].mo.FindInventory('GhostPower'));
|
||||
if ( g ) g.EffectTics += g.default.EffectTics;
|
||||
else players[e.Args[0]].mo.GiveInventory("GhostPower",1);
|
||||
else players[e.Args[0]].mo.GiveInventory('GhostPower',1);
|
||||
}
|
||||
else if ( e.Name ~== "swwmbarriercheat" )
|
||||
{
|
||||
|
|
@ -127,9 +127,9 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
S_StartSound("misc/p_pkup",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
let b = BarrierPower(players[e.Args[0]].mo.FindInventory("BarrierPower"));
|
||||
let b = BarrierPower(players[e.Args[0]].mo.FindInventory('BarrierPower'));
|
||||
if ( b ) b.EffectTics += b.default.EffectTics;
|
||||
else players[e.Args[0]].mo.GiveInventory("BarrierPower",1);
|
||||
else players[e.Args[0]].mo.GiveInventory('BarrierPower',1);
|
||||
}
|
||||
else if ( e.Name ~== "swwmammocheat" )
|
||||
{
|
||||
|
|
@ -139,7 +139,7 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
S_StartSound("misc/ammo_pkup",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
players[e.Args[0]].mo.GiveInventory("TradedHammerspaceEmbiggener",8,true);
|
||||
players[e.Args[0]].mo.GiveInventory('TradedHammerspaceEmbiggener',8,true);
|
||||
for ( Inventory i=players[e.Args[0]].mo.inv; i; i=i.inv )
|
||||
{
|
||||
if ( !(i is 'Ammo') ) continue;
|
||||
|
|
@ -171,7 +171,7 @@ extend Class SWWMHandler
|
|||
S_StartSound("fabricator/use",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
players[e.Args[0]].health = players[e.Args[0]].mo.health = 1000;
|
||||
players[e.Args[0]].mo.GiveInventory("TradedHammerspaceEmbiggener",8,true);
|
||||
players[e.Args[0]].mo.GiveInventory('TradedHammerspaceEmbiggener',8,true);
|
||||
for ( Inventory i=players[e.Args[0]].mo.inv; i; i=i.inv )
|
||||
{
|
||||
if ( !(i is 'Ammo') ) continue;
|
||||
|
|
@ -200,14 +200,14 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
}
|
||||
let mo = players[e.Args[0]].mo;
|
||||
Actor f = Actor(ThinkerIterator.Create("SWWMFlag").Next());
|
||||
if ( !f ) f = mo.Spawn("SWWMFlag");
|
||||
Actor f = Actor(ThinkerIterator.Create('SWWMFlag').Next());
|
||||
if ( !f ) f = mo.Spawn('SWWMFlag');
|
||||
Vector2 spos = mo.Vec2Angle(40.,mo.angle);
|
||||
Sector sat = level.PointInSector(spos);
|
||||
double sz = sat.NextLowestFloorAt(spos.x,spos.y,mo.player.viewz-32.);
|
||||
f.SetOrigin((spos.x,spos.y,sz),false);
|
||||
f.A_SetAngle(mo.angle);
|
||||
f.Spawn("SWWMItemFog",f.pos);
|
||||
f.Spawn('SWWMItemFog',f.pos);
|
||||
f.A_StartSound("bestsound",CHAN_ITEMEXTRA);
|
||||
}
|
||||
else if ( e.Name ~== "swwmballcheat" )
|
||||
|
|
@ -268,7 +268,7 @@ extend Class SWWMHandler
|
|||
S_StartSound("misc/omgfart",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
else mo.A_StartSound("misc/omgfart",CHAN_VOICE,CHANF_OVERLAP,1.,.5);
|
||||
let f = mo.Spawn("SWWMGasCloudSpawner",mo.Vec3Angle(mo.radius*.5,mo.angle-180,mo.Height*.4));
|
||||
let f = mo.Spawn('SWWMGasCloudSpawner',mo.Vec3Angle(mo.radius*.5,mo.angle-180,mo.Height*.4));
|
||||
f.target = mo;
|
||||
f.angle = mo.angle+180;
|
||||
f.pitch = -mo.pitch;
|
||||
|
|
@ -281,9 +281,9 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
S_StartSound("misc/p_pkup",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
let i = InvinciballPower(players[e.Args[0]].mo.FindInventory("InvinciballPower"));
|
||||
let i = InvinciballPower(players[e.Args[0]].mo.FindInventory('InvinciballPower'));
|
||||
if ( i ) i.EffectTics += i.default.EffectTics;
|
||||
else players[e.Args[0]].mo.GiveInventory("InvinciballPower",1);
|
||||
else players[e.Args[0]].mo.GiveInventory('InvinciballPower',1);
|
||||
}
|
||||
else if ( e.Name ~== "swwmstonecheat" )
|
||||
{
|
||||
|
|
@ -301,12 +301,12 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
}
|
||||
let mo = players[e.Args[0]].mo;
|
||||
Actor f = Actor(ThinkerIterator.Create("FroggyChair").Next());
|
||||
if ( !f ) f = mo.Spawn("FroggyChair");
|
||||
Actor f = Actor(ThinkerIterator.Create('FroggyChair').Next());
|
||||
if ( !f ) f = mo.Spawn('FroggyChair');
|
||||
Vector2 ofs = Actor.AngleToVector(mo.angle,40.);
|
||||
f.SetOrigin(mo.Vec2OffsetZ(ofs.x,ofs.y,mo.player.viewz-32.),false);
|
||||
f.A_SetAngle(f.AngleTo(mo));
|
||||
f.Spawn("SWWMItemFog",f.pos);
|
||||
f.Spawn('SWWMItemFog',f.pos);
|
||||
f.A_StartSound("bestsound",CHAN_ITEMEXTRA);
|
||||
}
|
||||
else if ( e.Name ~== "swwmamnesiacheat" )
|
||||
|
|
@ -317,7 +317,7 @@ extend Class SWWMHandler
|
|||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
S_StartSound("bestsound",CHAN_VOICE,CHANF_UI);
|
||||
}
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
let ti = ThinkerIterator.Create('Actor');
|
||||
Actor a;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
{
|
||||
|
|
@ -332,10 +332,10 @@ extend Class SWWMHandler
|
|||
Console.Printf("\cyLet's mop up that big mess over there.\c-");
|
||||
S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
|
||||
}
|
||||
let cc = SWWMCorpseCleaner(ThinkerIterator.Create("SWWMCorpseCleaner",Thinker.STAT_USER).Next());
|
||||
let cc = SWWMCorpseCleaner(ThinkerIterator.Create('SWWMCorpseCleaner',Thinker.STAT_USER).Next());
|
||||
if ( !cc )
|
||||
{
|
||||
cc = new("SWWMCorpseCleaner");
|
||||
cc = new('SWWMCorpseCleaner');
|
||||
cc.ChangeStatNum(Thinker.STAT_USER);
|
||||
cc.Init(players[e.Args[0]].mo);
|
||||
}
|
||||
|
|
@ -343,7 +343,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( e.Name ~== "swwmonfirecheat" )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
let ti = ThinkerIterator.Create('Actor');
|
||||
Actor a;
|
||||
bool burned = false;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
|
|
@ -481,7 +481,7 @@ extend Class SWWMHandler
|
|||
double shine = clamp((klinger-(gametic+e.fractic+40))/20.,0.,1.);
|
||||
int col = (kcode>4)?0:(kfail)?2:1;
|
||||
int tlen = chstr.CodePointCount();
|
||||
if ( !CheatFont ) CheatFont = Font.GetFont("TewiFontOutline");
|
||||
if ( !CheatFont ) CheatFont = Font.GetFont('TewiFontOutline');
|
||||
int width = (CheatFont.StringWidth(chstr)+3*(tlen-1));
|
||||
double xx = int(Screen.GetWidth()-width*scl)/2;
|
||||
double yy = int(Screen.GetHeight()-CheatFont.GetHeight()*scl)/2;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ extend Class SWWMHandler
|
|||
tactive[i] = true;
|
||||
}
|
||||
let mo = players[consoleplayer].mo;
|
||||
if ( !ctr ) ctr = new("SWWMCrosshairTracer");
|
||||
if ( !ctr ) ctr = new('SWWMCrosshairTracer');
|
||||
Vector3 ofs, origin;
|
||||
Color col;
|
||||
let [x, y, z] = SWWMUtility.GetAxes(e.ViewAngle,e.ViewPitch,e.ViewRoll);
|
||||
|
|
|
|||
|
|
@ -19,16 +19,16 @@ extend Class SWWMHandler
|
|||
if ( (e.DamageType == 'Ynykron') || (e.DamageType == 'Massacre') ) return;
|
||||
int gibhealth = e.Thing.GetGibHealth();
|
||||
bool gotgibbed = (!e.Thing.bDONTGIB && ((e.Inflictor && e.Inflictor.bEXTREMEDEATH) || (e.DamageSource && e.DamageSource.bEXTREMEDEATH) || (e.DamageType == 'Extreme') || (e.Thing.Health < gibhealth)) && (!e.Inflictor || !e.Inflictor.bNOEXTREMEDEATH) && (!e.DamageSource || !e.DamageSource.bNOEXTREMEDEATH));
|
||||
if ( !e.Thing.FindState("XDeath",true) && !e.Thing.FindState("Death.Extreme",true) )
|
||||
if ( !e.Thing.FindState('XDeath',true) && !e.Thing.FindState('Death.Extreme',true) )
|
||||
gotgibbed = false;
|
||||
// only do special handling if they use our blood
|
||||
if ( (e.Thing.GetBloodType(0) != "mkBlood") || e.Thing.bNOBLOOD )
|
||||
if ( (e.Thing.GetBloodType(0) != 'mkBlood') || e.Thing.bNOBLOOD )
|
||||
return;
|
||||
CorpseFallTracker.TrackBody(e.Thing);
|
||||
// special handling of some monsters
|
||||
if ( e.Thing.GetClass() == "Cyberdemon" )
|
||||
if ( e.Thing.GetClass() == 'Cyberdemon' )
|
||||
{
|
||||
let [b, a] = e.Thing.A_SpawnItemEx("mkGibber",flags:SXF_USEBLOODCOLOR);
|
||||
let [b, a] = e.Thing.A_SpawnItemEx('mkGibber',flags:SXF_USEBLOODCOLOR);
|
||||
if ( !b ) return;
|
||||
mkGibber(a).gibbed = e.Thing;
|
||||
mkGibber(a).delay = 40;
|
||||
|
|
@ -37,9 +37,9 @@ extend Class SWWMHandler
|
|||
a.A_SetSize(e.Thing.default.radius,e.Thing.default.height);
|
||||
return;
|
||||
}
|
||||
else if ( e.Thing.GetClass() == "SpiderMastermind" )
|
||||
else if ( e.Thing.GetClass() == 'SpiderMastermind' )
|
||||
{
|
||||
let [b, a] = e.Thing.A_SpawnItemEx("mkGibber",flags:SXF_USEBLOODCOLOR);
|
||||
let [b, a] = e.Thing.A_SpawnItemEx('mkGibber',flags:SXF_USEBLOODCOLOR);
|
||||
if ( !b ) return;
|
||||
mkGibber(a).gibbed = e.Thing;
|
||||
mkGibber(a).delay = 60;
|
||||
|
|
@ -49,7 +49,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( gotgibbed )
|
||||
{
|
||||
let [b, a] = e.Thing.A_SpawnItemEx("mkGibber",flags:SXF_USEBLOODCOLOR);
|
||||
let [b, a] = e.Thing.A_SpawnItemEx('mkGibber',flags:SXF_USEBLOODCOLOR);
|
||||
if ( !b ) return;
|
||||
mkGibber(a).gibbed = e.Thing;
|
||||
a.A_SetSize(e.Thing.default.radius,e.Thing.default.height);
|
||||
|
|
@ -92,17 +92,17 @@ extend Class SWWMHandler
|
|||
if ( e.Damage > s.topdealt ) s.topdealt = e.Damage;
|
||||
}
|
||||
SWWMFlyTracker.Track(e.Thing,e.DamageSource);
|
||||
if ( e.Thing.bBOSS || e.Thing.FindInventory("BossMarker") )
|
||||
if ( e.Thing.bBOSS || e.Thing.FindInventory('BossMarker') )
|
||||
{
|
||||
let tk = e.Thing.FindInventory("DeepImpactOnlyToken");
|
||||
let tk = e.Thing.FindInventory('DeepImpactOnlyToken');
|
||||
if ( !tk )
|
||||
{
|
||||
tk = Inventory(Actor.Spawn("DeepImpactOnlyToken"));
|
||||
tk = Inventory(Actor.Spawn('DeepImpactOnlyToken'));
|
||||
tk.AttachToOwner(e.Thing);
|
||||
tk.special1 = 0;
|
||||
}
|
||||
Inventory pb;
|
||||
if ( (tk.special1 != -1) && ((e.DamageType == 'Push') || (e.Inflictor && (pb = e.Inflictor.FindInventory("ParriedBuff")) && pb.bAMBUSH)) )
|
||||
if ( (tk.special1 != -1) && ((e.DamageType == 'Push') || (e.Inflictor && (pb = e.Inflictor.FindInventory('ParriedBuff')) && pb.bAMBUSH)) )
|
||||
tk.special1 = 1;
|
||||
else tk.special1 = -1;
|
||||
}
|
||||
|
|
@ -121,7 +121,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
if ( e.Thing.IsFriend(e.DamageSource) )
|
||||
lastcombat = AddOneliner("friendhit",1,10);
|
||||
else if ( (!lastcombat || (gametic > lastcombat+90)) && !Random[DemoLines](0,(e.DamageSource.bBOSS||e.DamageSource.FindInventory("BossMarker"))?2:5) )
|
||||
else if ( (!lastcombat || (gametic > lastcombat+90)) && !Random[DemoLines](0,(e.DamageSource.bBOSS||e.DamageSource.FindInventory('BossMarker'))?2:5) )
|
||||
lastcombat = AddOneliner("gethit",1,15);
|
||||
}
|
||||
highesttic = gametic;
|
||||
|
|
@ -176,13 +176,13 @@ extend Class SWWMHandler
|
|||
int lc = 0;
|
||||
Inventory buff = inflictor?inflictor.FindInventory('ParriedBuff'):null;
|
||||
if ( !Random[DemoLines](0,2) && buff && (e.Thing is 'Cyberdemon') && (inflictor is 'Rocket') && (buff.tracer == e.Thing) ) lc = AddOneliner("cybully",1,15);
|
||||
else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory("BossMarker"))?1:2) && (e.DamageType == 'CriticalConcussion') ) lc = AddOneliner("ballskill",1,15);
|
||||
else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory("BossMarker"))?2:4) && (e.DamageType == 'Buttslam') ) lc = AddOneliner("asskill",1,15);
|
||||
else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory("BossMarker"))?3:5) && ((inflictor is 'HeavyMahSheenGun') || (inflictor is 'SheenTrail')) )
|
||||
else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory('BossMarker'))?1:2) && (e.DamageType == 'CriticalConcussion') ) lc = AddOneliner("ballskill",1,15);
|
||||
else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory('BossMarker'))?2:4) && (e.DamageType == 'Buttslam') ) lc = AddOneliner("asskill",1,15);
|
||||
else if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory('BossMarker'))?3:5) && ((inflictor is 'HeavyMahSheenGun') || (inflictor is 'SheenTrail')) )
|
||||
lc = AddOneliner("sheenkill",1,15);
|
||||
if ( !lc )
|
||||
{
|
||||
if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory("BossMarker"))?2:4) )
|
||||
if ( !Random[DemoLines](0,(e.Thing.bBOSS||e.Thing.FindInventory('BossMarker'))?2:4) )
|
||||
lastcombat = AddOneliner("scorekill",1,15);
|
||||
}
|
||||
else lastcombat = lc;
|
||||
|
|
@ -193,7 +193,7 @@ extend Class SWWMHandler
|
|||
// achievement stuff
|
||||
if ( e.Thing.IsHostile(src) && (e.Thing.bISMONSTER || e.Thing.player) )
|
||||
{
|
||||
if ( (e.Thing.bBOSS||e.Thing.FindInventory("BossMarker")) && ((e.DamageType == 'Dash') || (e.DamageType == 'Buttslam')) )
|
||||
if ( (e.Thing.bBOSS||e.Thing.FindInventory('BossMarker')) && ((e.DamageType == 'Dash') || (e.DamageType == 'Buttslam')) )
|
||||
SWWMUtility.AchievementProgressInc("bossdash",1,src.player);
|
||||
if ( (inflictor is 'DeepImpact') && (e.DamageType == 'Push') )
|
||||
SWWMUtility.AchievementProgressInc("sneeze",1,src.player);
|
||||
|
|
@ -213,7 +213,7 @@ extend Class SWWMHandler
|
|||
SWWMUtility.MarkAchievement("cybully",src.player);
|
||||
}
|
||||
Inventory tk;
|
||||
if ( (tk = e.Thing.FindInventory("DeepImpactOnlyToken")) && (tk.special1 == 1) )
|
||||
if ( (tk = e.Thing.FindInventory('DeepImpactOnlyToken')) && (tk.special1 == 1) )
|
||||
SWWMUtility.MarkAchievement("shame",src.player);
|
||||
SWWMUtility.AchievementProgressInc("mega",1,src.player);
|
||||
if ( src.player.Health == 1 )
|
||||
|
|
@ -295,7 +295,7 @@ extend Class SWWMHandler
|
|||
if ( (spreecount[pnum] > 0) && scr )
|
||||
scr.AppendXString(StringTable.Localize("$SWWM_SPREEKILL"),spreecount[pnum]);
|
||||
}
|
||||
if ( e.Thing.bBOSS || e.Thing.FindInventory("BossMarker") )
|
||||
if ( e.Thing.bBOSS || e.Thing.FindInventory('BossMarker') )
|
||||
{
|
||||
score += 2000;
|
||||
if ( scr ) scr.AppendXString(StringTable.Localize("$SWWM_BOSSKILL"));
|
||||
|
|
|
|||
|
|
@ -66,27 +66,27 @@ extend Class SWWMHandler
|
|||
Vector3 b1, b2;
|
||||
b1 = pos-(a.radius,a.radius,0);
|
||||
b2 = pos+(a.radius,a.radius,a.height);
|
||||
DrawWorldLine(e,(b1.x,b1.y,b1.z),(b1.x,b2.y,b1.z),"White");
|
||||
DrawWorldLine(e,(b1.x,b2.y,b1.z),(b2.x,b2.y,b1.z),"White");
|
||||
DrawWorldLine(e,(b2.x,b2.y,b1.z),(b2.x,b1.y,b1.z),"White");
|
||||
DrawWorldLine(e,(b2.x,b1.y,b1.z),(b1.x,b1.y,b1.z),"White");
|
||||
DrawWorldLine(e,(b1.x,b1.y,b2.z),(b1.x,b2.y,b2.z),"White");
|
||||
DrawWorldLine(e,(b1.x,b2.y,b2.z),(b2.x,b2.y,b2.z),"White");
|
||||
DrawWorldLine(e,(b2.x,b2.y,b2.z),(b2.x,b1.y,b2.z),"White");
|
||||
DrawWorldLine(e,(b2.x,b1.y,b2.z),(b1.x,b1.y,b2.z),"White");
|
||||
DrawWorldLine(e,(b1.x,b1.y,b1.z),(b1.x,b1.y,b2.z),"White");
|
||||
DrawWorldLine(e,(b2.x,b1.y,b1.z),(b2.x,b1.y,b2.z),"White");
|
||||
DrawWorldLine(e,(b1.x,b2.y,b1.z),(b1.x,b2.y,b2.z),"White");
|
||||
DrawWorldLine(e,(b2.x,b2.y,b1.z),(b2.x,b2.y,b2.z),"White");
|
||||
DrawWorldLine(e,(b1.x,b1.y,b1.z),(b1.x,b2.y,b1.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b1.x,b2.y,b1.z),(b2.x,b2.y,b1.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b2.x,b2.y,b1.z),(b2.x,b1.y,b1.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b2.x,b1.y,b1.z),(b1.x,b1.y,b1.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b1.x,b1.y,b2.z),(b1.x,b2.y,b2.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b1.x,b2.y,b2.z),(b2.x,b2.y,b2.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b2.x,b2.y,b2.z),(b2.x,b1.y,b2.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b2.x,b1.y,b2.z),(b1.x,b1.y,b2.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b1.x,b1.y,b1.z),(b1.x,b1.y,b2.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b2.x,b1.y,b1.z),(b2.x,b1.y,b2.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b1.x,b2.y,b1.z),(b1.x,b2.y,b2.z),0xFFFFFFFF);
|
||||
DrawWorldLine(e,(b2.x,b2.y,b1.z),(b2.x,b2.y,b2.z),0xFFFFFFFF);
|
||||
}
|
||||
let [x, y, z] = SWWMUtility.GetAxes(a.angle,a.pitch,a.roll);
|
||||
DrawWorldLine(e,pos,pos+x*16,"Red");
|
||||
DrawWorldLine(e,pos,pos+y*16,"Green");
|
||||
DrawWorldLine(e,pos,pos+z*16,"Blue");
|
||||
if ( a.vel != (0,0,0) ) DrawWorldLine(e,pos,pos+a.vel*GameTicRate,"Yellow");
|
||||
if ( a.target ) DrawWorldLine(e,pos,SWWMUtility.LerpVector3(a.target.prev,a.target.pos,e.FracTic),"Gold");
|
||||
if ( a.tracer ) DrawWorldLine(e,pos,SWWMUtility.LerpVector3(a.tracer.prev,a.tracer.pos,e.FracTic),"Orange");
|
||||
if ( a.master ) DrawWorldLine(e,pos,SWWMUtility.LerpVector3(a.master.prev,a.master.pos,e.FracTic),"Purple");
|
||||
DrawWorldLine(e,pos,pos+x*16,0xFFFF0000);
|
||||
DrawWorldLine(e,pos,pos+y*16,0xFF00FF00);
|
||||
DrawWorldLine(e,pos,pos+z*16,0xFF0000FF);
|
||||
if ( a.vel != (0,0,0) ) DrawWorldLine(e,pos,pos+a.vel*GameTicRate,0xFFFFFF00);
|
||||
if ( a.target ) DrawWorldLine(e,pos,SWWMUtility.LerpVector3(a.target.prev,a.target.pos,e.FracTic),0xFFFFA000);
|
||||
if ( a.tracer ) DrawWorldLine(e,pos,SWWMUtility.LerpVector3(a.tracer.prev,a.tracer.pos,e.FracTic),0xFFFF8000);
|
||||
if ( a.master ) DrawWorldLine(e,pos,SWWMUtility.LerpVector3(a.master.prev,a.master.pos,e.FracTic),0xFF8000FF);
|
||||
double hdiff = a.Height/2;
|
||||
if ( a.bFLOATBOB ) hdiff += a.GetBobOffset();
|
||||
Vector3 ndc = SWWMUtility.ProjectPoint(projdata,e.viewpos+level.Vec3Diff(e.viewpos,pos+(0,0,hdiff)));
|
||||
|
|
|
|||
|
|
@ -11,14 +11,14 @@ extend Class SWWMHandler
|
|||
|
||||
static void HealthFlash( int p )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd || (p == -1) ) return;
|
||||
hnd.hflash[p] = gametic+5;
|
||||
}
|
||||
|
||||
static void ArmorFlash( int p )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd || (p == -1) ) return;
|
||||
hnd.aflash[p] = gametic+5;
|
||||
}
|
||||
|
|
@ -27,7 +27,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
// don't flash when paused
|
||||
if ( menuactive && (menuactive != Menu.OnNoPause) ) return;
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
hnd.flash_camera = camera;
|
||||
hnd.flash_color = c;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ extend Class SWWMHandler
|
|||
dmult = acsre-3;
|
||||
}
|
||||
if ( iwantdie <= 0 ) return;
|
||||
if ( SWWMUtility.ValidProjectile(e.Thing) && !e.Thing.FindInventory("DontDuplicate") && (e.Thing.target && e.Thing.target.bISMONSTER && !e.Thing.target.player) )
|
||||
if ( SWWMUtility.ValidProjectile(e.Thing) && !e.Thing.FindInventory('DontDuplicate') && (e.Thing.target && e.Thing.target.bISMONSTER && !e.Thing.target.player) )
|
||||
{
|
||||
e.Thing.speed *= smult;
|
||||
e.Thing.vel *= smult;
|
||||
|
|
@ -33,7 +33,7 @@ extend Class SWWMHandler
|
|||
double s = FRandom[ExtraMissiles](0,.1);
|
||||
Vector3 dir = SWWMUtility.ConeSpread(x,y,z,a,s);
|
||||
let p = Actor.Spawn(e.Thing.GetClass(),e.Thing.pos);
|
||||
p.GiveInventory("DontDuplicate",1);
|
||||
p.GiveInventory('DontDuplicate',1);
|
||||
p.target = e.Thing.target;
|
||||
p.tracer = e.Thing.tracer;
|
||||
p.master = e.Thing.master;
|
||||
|
|
@ -48,7 +48,7 @@ extend Class SWWMHandler
|
|||
// avoid if it has some sort of special handling
|
||||
if ( e.Thing.special || e.Thing.tid || e.Thing.bDORMANT ) return;
|
||||
// random chance to spawn doubles
|
||||
if ( e.Thing.FindInventory("DontDuplicate") || Random[ExtraMissiles](0,2) ) return;
|
||||
if ( e.Thing.FindInventory('DontDuplicate') || Random[ExtraMissiles](0,2) ) return;
|
||||
int numpt = Random[ExtraMissiles](1,dmult);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
|
|
@ -67,7 +67,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
x.angle = e.Thing.angle;
|
||||
x.bAMBUSH = e.Thing.bAMBUSH;
|
||||
x.GiveInventory("DontDuplicate",1);
|
||||
x.GiveInventory('DontDuplicate',1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@ extend Class SWWMHandler
|
|||
// only Demolitionist can play voice lines
|
||||
if ( !(players[consoleplayer].mo is 'Demolitionist') )
|
||||
return 0;
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return 0;
|
||||
String voicetype = CVar.FindCVar('swwm_voicetype').GetString();
|
||||
// suppress non-rage comments when ragekit is active, only screaming allowed
|
||||
if ( players[consoleplayer].mo.FindInventory("RagekitPower") && (type != "ragekit") ) return 0;
|
||||
if ( players[consoleplayer].mo.FindInventory('RagekitPower') && (type != "ragekit") ) return 0;
|
||||
// suppress beep-boop lines if voice channel already in use
|
||||
if ( ((type == "buttonpush") || (type == "mrtouch") || (type == "mrflick"))
|
||||
&& players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE)
|
||||
|
|
@ -92,7 +92,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
// ez
|
||||
whichline = Random[DemoLines](1,countem);
|
||||
let lst = new("OnelinerHistory");
|
||||
let lst = new('OnelinerHistory');
|
||||
lst.type = type;
|
||||
lst.lines.Push(whichline);
|
||||
hnd.gdat.lastlines.Push(lst);
|
||||
|
|
@ -114,7 +114,7 @@ extend Class SWWMHandler
|
|||
|
||||
static void CancelOneliner( String type )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
if ( (hnd.onelinertype != type) || (hnd.onelinertic < gametic) ) return;
|
||||
hnd.onelinertic = 0;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
if ( !(p.mo is pc.Type) ) continue;
|
||||
// perform a hotswap, code adapted from my .flow player morph in spooktober
|
||||
let n = PlayerPawn(Actor.Spawn("Demolitionist",p.mo.pos));
|
||||
let n = PlayerPawn(Actor.Spawn('Demolitionist',p.mo.pos));
|
||||
n.player = p;
|
||||
n.angle = p.mo.angle;
|
||||
n.pitch = p.mo.pitch;
|
||||
|
|
@ -27,7 +27,7 @@ extend Class SWWMHandler
|
|||
p.mo.Destroy();
|
||||
p.mo = n;
|
||||
n.GiveDefaultInventory();
|
||||
let e = Weapon(n.FindInventory("ExplodiumGun"));
|
||||
let e = Weapon(n.FindInventory('ExplodiumGun'));
|
||||
if ( e )
|
||||
{
|
||||
p.ReadyWeapon = null;
|
||||
|
|
@ -44,14 +44,14 @@ extend Class SWWMHandler
|
|||
SWWMCredits c = SWWMCredits.Find(p);
|
||||
if ( !c )
|
||||
{
|
||||
c = new("SWWMCredits");
|
||||
c = new('SWWMCredits');
|
||||
c.ChangeStatNum(Thinker.STAT_STATIC);
|
||||
c.myplayer = p;
|
||||
}
|
||||
SWWMLoreLibrary l = SWWMLoreLibrary.Find(p);
|
||||
if ( !l )
|
||||
{
|
||||
l = new("SWWMLoreLibrary");
|
||||
l = new('SWWMLoreLibrary');
|
||||
l.ChangeStatNum(Thinker.STAT_STATIC);
|
||||
l.myplayer = p;
|
||||
}
|
||||
|
|
@ -82,7 +82,7 @@ extend Class SWWMHandler
|
|||
SWWMStats s = SWWMStats.Find(p);
|
||||
if ( !s )
|
||||
{
|
||||
s = new("SWWMStats");
|
||||
s = new('SWWMStats');
|
||||
s.ChangeStatNum(Thinker.STAT_STATIC);
|
||||
s.myplayer = p;
|
||||
s.lastspawn = level.totaltime;
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ extend Class SWWMHandler
|
|||
Class<Key> k = kname;
|
||||
if ( k )
|
||||
{
|
||||
let kg = new("KeyGet");
|
||||
let kg = new('KeyGet');
|
||||
kg.got = k;
|
||||
kg.flashtime = gametic+25;
|
||||
bar.keyflash.Push(kg);
|
||||
|
|
@ -155,7 +155,7 @@ extend Class SWWMHandler
|
|||
bar.cstip.Poke(wa,wb);
|
||||
return;
|
||||
}
|
||||
let tt = new("SWWMWeaponSwapTip").Init(wa,wb);
|
||||
let tt = new('SWWMWeaponSwapTip').Init(wa,wb);
|
||||
bar.cstip = tt;
|
||||
bar.AttachMessage(tt,-2911);
|
||||
}
|
||||
|
|
@ -169,7 +169,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( e.Name ~== "swwmdoflash" )
|
||||
{
|
||||
GenericFlash gf = new("GenericFlash").Setup(flash_camera,flash_color,flash_duration);
|
||||
GenericFlash gf = new('GenericFlash').Setup(flash_camera,flash_color,flash_duration);
|
||||
StatusBar.AttachMessage(gf,0,BaseStatusBar.HUDMSGLayer_UnderHUD);
|
||||
}
|
||||
else if ( e.Name ~== "swwmsendplayerstep" )
|
||||
|
|
@ -374,7 +374,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
if ( !playeringame[i] || !players[i].mo ) continue;
|
||||
let mo = players[i].mo;
|
||||
Inventory hams = mo.FindInventory("HammerspaceEmbiggener");
|
||||
Inventory hams = mo.FindInventory('HammerspaceEmbiggener');
|
||||
if ( hams )
|
||||
{
|
||||
if ( hams.MaxAmount != hams.default.MaxAmount )
|
||||
|
|
@ -490,8 +490,8 @@ extend Class SWWMHandler
|
|||
if ( item is 'Weapon' )
|
||||
{
|
||||
// special case, select dual guns if we bought a second one
|
||||
if ( (item is 'ExplodiumGun') && (players[e.Args[0]].mo.CountInv("ExplodiumGun") > 1) )
|
||||
players[e.Args[0]].mo.A_SelectWeapon("DualExplodiumGun");
|
||||
if ( (item is 'ExplodiumGun') && (players[e.Args[0]].mo.CountInv('ExplodiumGun') > 1) )
|
||||
players[e.Args[0]].mo.A_SelectWeapon('DualExplodiumGun');
|
||||
else players[e.Args[0]].mo.A_SelectWeapon((Class<Weapon>)(item));
|
||||
}
|
||||
}
|
||||
|
|
@ -519,7 +519,7 @@ extend Class SWWMHandler
|
|||
if ( c && c.SisterWeapon && (players[e.Args[0]].ReadyWeapon == c.SisterWeapon) )
|
||||
{
|
||||
players[e.Args[0]].ReadyWeapon = c;
|
||||
players[e.Args[0]].SetPSprite(PSP_WEAPON,c.FindState("Ready"));
|
||||
players[e.Args[0]].SetPSprite(PSP_WEAPON,c.FindState('Ready'));
|
||||
players[e.Args[0]].SetPSprite(PSP_WEAPON+1,null); // delete left weapon psprite
|
||||
}
|
||||
}
|
||||
|
|
@ -691,7 +691,7 @@ extend Class SWWMHandler
|
|||
// only if player owns any selectable weapons
|
||||
if ( !wsel && SWWMWeaponSelect.PlayerHasWeapons(players[consoleplayer].mo) )
|
||||
{
|
||||
wsel = new("SWWMWeaponSelect").Init(players[consoleplayer].mo);
|
||||
wsel = new('SWWMWeaponSelect').Init(players[consoleplayer].mo);
|
||||
StatusBar.AttachMessage(wsel,-2920,layer:StatusBar.HUDMSGLayer_UnderHUD);
|
||||
if ( WeapSel == 1 ) wsel.WeapNext();
|
||||
else if ( WeapSel == -1 ) wsel.WeapPrev();
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ extend Class SWWMHandler
|
|||
|
||||
static void QueueCasing( SWWMCasing c )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
hnd.casings_cnt++;
|
||||
if ( !hnd.casings )
|
||||
|
|
@ -35,7 +35,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
static void DeQueueCasing( SWWMCasing c )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd || !hnd.casings ) return;
|
||||
if ( (hnd.casings != c) && !c.prevcasing && !c.nextcasing ) return;
|
||||
hnd.casings_cnt--;
|
||||
|
|
@ -49,7 +49,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
static void QueueChip( SWWMChip c )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
hnd.chips_cnt++;
|
||||
if ( !hnd.chips )
|
||||
|
|
@ -69,7 +69,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
static void DeQueueChip( SWWMChip c )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd || !hnd.chips ) return;
|
||||
if ( (hnd.chips != c) && !c.prevchip && !c.nextchip ) return;
|
||||
hnd.chips_cnt--;
|
||||
|
|
@ -83,7 +83,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
static void QueueBlod( mkBloodDrop b )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
hnd.blods_cnt++;
|
||||
if ( !hnd.blods )
|
||||
|
|
@ -103,7 +103,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
static void DeQueueBlod( mkBloodDrop b )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd || !hnd.blods ) return;
|
||||
if ( (hnd.blods != b) && !b.prevblod && !b.nextblod ) return;
|
||||
hnd.blods_cnt--;
|
||||
|
|
@ -117,7 +117,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
static void QueueMeat( mkFlyingGib m )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
hnd.meats_cnt++;
|
||||
if ( !hnd.meats )
|
||||
|
|
@ -137,7 +137,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
static void DeQueueMeat( mkFlyingGib m )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd || !hnd.meats ) return;
|
||||
if ( (hnd.meats != m) && !m.prevmeat && !m.nextmeat ) return;
|
||||
hnd.meats_cnt--;
|
||||
|
|
|
|||
|
|
@ -6,203 +6,203 @@ extend Class SWWMHandler
|
|||
|
||||
private Class<Actor> GetDRLAReplacee( Class<Actor> a )
|
||||
{
|
||||
static const String refpool[] =
|
||||
static const Name refpool[] =
|
||||
{
|
||||
"Zombieman",
|
||||
"Shotgunguy",
|
||||
"Chaingunguy",
|
||||
"DoomImp",
|
||||
"Demon",
|
||||
"Spectre",
|
||||
"LostSoul",
|
||||
"Cacodemon",
|
||||
"HellKnight",
|
||||
"BaronOfHell",
|
||||
"Arachnotron",
|
||||
"PainElemental",
|
||||
"Revenant",
|
||||
"Fatso",
|
||||
"Archvile",
|
||||
"Cyberdemon",
|
||||
"SpiderMastermind",
|
||||
"BossEye",
|
||||
"BossBrain"
|
||||
'Zombieman',
|
||||
'Shotgunguy',
|
||||
'Chaingunguy',
|
||||
'DoomImp',
|
||||
'Demon',
|
||||
'Spectre',
|
||||
'LostSoul',
|
||||
'Cacodemon',
|
||||
'HellKnight',
|
||||
'BaronOfHell',
|
||||
'Arachnotron',
|
||||
'PainElemental',
|
||||
'Revenant',
|
||||
'Fatso',
|
||||
'Archvile',
|
||||
'Cyberdemon',
|
||||
'SpiderMastermind',
|
||||
'BossEye',
|
||||
'BossBrain'
|
||||
};
|
||||
static const String babypool[] =
|
||||
static const Name babypool[] =
|
||||
{
|
||||
"RLFormerHumanPistol",
|
||||
"RLFormerSergeantShotgun",
|
||||
"RLFormerCommandoChaingun",
|
||||
"RLImp",
|
||||
"RLDemon",
|
||||
"RLSpectre",
|
||||
"RLLostSoul",
|
||||
"RLCacodemon",
|
||||
"RLHellKnight",
|
||||
"RLBaronOfHell",
|
||||
"RLArachnotron",
|
||||
"RLPainElemental",
|
||||
"RLRevenant",
|
||||
"RLMancubus",
|
||||
"RLArchvile",
|
||||
"RLCyberdemon",
|
||||
"RLSpiderMastermindVariantSpawner",
|
||||
"RLEasyBossEye",
|
||||
"RLBossBrain"
|
||||
'RLFormerHumanPistol',
|
||||
'RLFormerSergeantShotgun',
|
||||
'RLFormerCommandoChaingun',
|
||||
'RLImp',
|
||||
'RLDemon',
|
||||
'RLSpectre',
|
||||
'RLLostSoul',
|
||||
'RLCacodemon',
|
||||
'RLHellKnight',
|
||||
'RLBaronOfHell',
|
||||
'RLArachnotron',
|
||||
'RLPainElemental',
|
||||
'RLRevenant',
|
||||
'RLMancubus',
|
||||
'RLArchvile',
|
||||
'RLCyberdemon',
|
||||
'RLSpiderMastermindVariantSpawner',
|
||||
'RLEasyBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
static const String easypool[] =
|
||||
static const Name easypool[] =
|
||||
{
|
||||
"RLFormerHumanNoArmageddonSpawner",
|
||||
"RLFormerSergeantNoArmageddonSpawner",
|
||||
"RLFormerCommandoNoArmageddonSpawner",
|
||||
"RLImpNoArmageddonSpawner",
|
||||
"RLDemonNoArmageddonSpawner",
|
||||
"RLSpectreNoArmageddonSpawner",
|
||||
"RLLostSoulNoArmageddonSpawner",
|
||||
"RLCacodemonNoArmageddonSpawner",
|
||||
"RLHellKnightNoArmageddonSpawner",
|
||||
"RLBaronOfHellNoArmageddonSpawner",
|
||||
"RLArachnotronNoArmageddonSpawner",
|
||||
"RLPainElementalNoArmageddonSpawner",
|
||||
"RLRevenantNoArmageddonSpawner",
|
||||
"RLMancubusNoArmageddonSpawner",
|
||||
"RLArchvileNoArmageddonSpawner",
|
||||
"RLCyberdemonNoArmageddonSpawner",
|
||||
"RLSpiderMastermindNoArmageddonSpawner",
|
||||
"RLBossEye",
|
||||
"RLBossBrain"
|
||||
'RLFormerHumanNoArmageddonSpawner',
|
||||
'RLFormerSergeantNoArmageddonSpawner',
|
||||
'RLFormerCommandoNoArmageddonSpawner',
|
||||
'RLImpNoArmageddonSpawner',
|
||||
'RLDemonNoArmageddonSpawner',
|
||||
'RLSpectreNoArmageddonSpawner',
|
||||
'RLLostSoulNoArmageddonSpawner',
|
||||
'RLCacodemonNoArmageddonSpawner',
|
||||
'RLHellKnightNoArmageddonSpawner',
|
||||
'RLBaronOfHellNoArmageddonSpawner',
|
||||
'RLArachnotronNoArmageddonSpawner',
|
||||
'RLPainElementalNoArmageddonSpawner',
|
||||
'RLRevenantNoArmageddonSpawner',
|
||||
'RLMancubusNoArmageddonSpawner',
|
||||
'RLArchvileNoArmageddonSpawner',
|
||||
'RLCyberdemonNoArmageddonSpawner',
|
||||
'RLSpiderMastermindNoArmageddonSpawner',
|
||||
'RLBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
static const String normalpool[] =
|
||||
static const Name normalpool[] =
|
||||
{
|
||||
"RLFormerHumanNoArmageddonSpawner",
|
||||
"RLFormerSergeantNoArmageddonSpawner",
|
||||
"RLFormerCommandoNoArmageddonSpawner",
|
||||
"RLImpNoArmageddonSpawner",
|
||||
"RLDemonNoArmageddonSpawner",
|
||||
"RLSpectreNoArmageddonSpawner",
|
||||
"RLLostSoulNoArmageddonSpawner",
|
||||
"RLCacodemonNoArmageddonSpawner",
|
||||
"RLHellKnightNoArmageddonSpawner",
|
||||
"RLBaronOfHellNoArmageddonSpawner",
|
||||
"RLArachnotronNoArmageddonSpawner",
|
||||
"RLPainElementalNoArmageddonSpawner",
|
||||
"RLRevenantNoArmageddonSpawner",
|
||||
"RLMancubusNoArmageddonSpawner",
|
||||
"RLArchvileNoArmageddonSpawner",
|
||||
"RLCyberdemonNoArmageddonSpawner",
|
||||
"RLSpiderMastermindNoArmageddonSpawner",
|
||||
"RLBossEye",
|
||||
"RLBossBrain"
|
||||
'RLFormerHumanNoArmageddonSpawner',
|
||||
'RLFormerSergeantNoArmageddonSpawner',
|
||||
'RLFormerCommandoNoArmageddonSpawner',
|
||||
'RLImpNoArmageddonSpawner',
|
||||
'RLDemonNoArmageddonSpawner',
|
||||
'RLSpectreNoArmageddonSpawner',
|
||||
'RLLostSoulNoArmageddonSpawner',
|
||||
'RLCacodemonNoArmageddonSpawner',
|
||||
'RLHellKnightNoArmageddonSpawner',
|
||||
'RLBaronOfHellNoArmageddonSpawner',
|
||||
'RLArachnotronNoArmageddonSpawner',
|
||||
'RLPainElementalNoArmageddonSpawner',
|
||||
'RLRevenantNoArmageddonSpawner',
|
||||
'RLMancubusNoArmageddonSpawner',
|
||||
'RLArchvileNoArmageddonSpawner',
|
||||
'RLCyberdemonNoArmageddonSpawner',
|
||||
'RLSpiderMastermindNoArmageddonSpawner',
|
||||
'RLBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
static const String hardpool[] =
|
||||
static const Name hardpool[] =
|
||||
{
|
||||
"RLFormerHumanSpawner",
|
||||
"RLFormerSergeantSpawner",
|
||||
"RLFormerCommandoSpawner",
|
||||
"RLImpSpawner",
|
||||
"RLDemonSpawner",
|
||||
"RLSpectreSpawner",
|
||||
"RLLostSoulSpawner",
|
||||
"RLCacodemonSpawner",
|
||||
"RLHellKnightSpawner",
|
||||
"RLBaronOfHellSpawner",
|
||||
"RLArachnotronSpawner",
|
||||
"RLPainElementalSpawner",
|
||||
"RLRevenantSpawner",
|
||||
"RLMancubusSpawner",
|
||||
"RLArchvileSpawner",
|
||||
"RLCyberdemonSpawner",
|
||||
"RLSpiderMastermindSpawner",
|
||||
"RLUVBossEye",
|
||||
"RLBossBrain"
|
||||
'RLFormerHumanSpawner',
|
||||
'RLFormerSergeantSpawner',
|
||||
'RLFormerCommandoSpawner',
|
||||
'RLImpSpawner',
|
||||
'RLDemonSpawner',
|
||||
'RLSpectreSpawner',
|
||||
'RLLostSoulSpawner',
|
||||
'RLCacodemonSpawner',
|
||||
'RLHellKnightSpawner',
|
||||
'RLBaronOfHellSpawner',
|
||||
'RLArachnotronSpawner',
|
||||
'RLPainElementalSpawner',
|
||||
'RLRevenantSpawner',
|
||||
'RLMancubusSpawner',
|
||||
'RLArchvileSpawner',
|
||||
'RLCyberdemonSpawner',
|
||||
'RLSpiderMastermindSpawner',
|
||||
'RLUVBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
static const String nightmarepool[] =
|
||||
static const Name nightmarepool[] =
|
||||
{
|
||||
"RLEliteFormerHumanSpawner",
|
||||
"RLEliteFormerSergeantSpawner",
|
||||
"RLEliteFormerCommandoSpawner",
|
||||
"RLNightmareImp",
|
||||
"RLNightmareDemon",
|
||||
"RLNightmareSpectre",
|
||||
"RLNightmareLostSoul",
|
||||
"RLNightmareCacodemon",
|
||||
"RLNightmareHellKnight",
|
||||
"RLNightmareBaronOfHell",
|
||||
"RLNightmareArachnotron",
|
||||
"RLNightmarePainElemental",
|
||||
"RLNightmareRevenant",
|
||||
"RLNightmareMancubus",
|
||||
"RLNightmareArchvile",
|
||||
"RLNightmareCyberdemonSpawner",
|
||||
"RLNightmareSpiderMastermindSpawner",
|
||||
"RLNightmareBossEye",
|
||||
"RLNightmareBossBrain"
|
||||
'RLEliteFormerHumanSpawner',
|
||||
'RLEliteFormerSergeantSpawner',
|
||||
'RLEliteFormerCommandoSpawner',
|
||||
'RLNightmareImp',
|
||||
'RLNightmareDemon',
|
||||
'RLNightmareSpectre',
|
||||
'RLNightmareLostSoul',
|
||||
'RLNightmareCacodemon',
|
||||
'RLNightmareHellKnight',
|
||||
'RLNightmareBaronOfHell',
|
||||
'RLNightmareArachnotron',
|
||||
'RLNightmarePainElemental',
|
||||
'RLNightmareRevenant',
|
||||
'RLNightmareMancubus',
|
||||
'RLNightmareArchvile',
|
||||
'RLNightmareCyberdemonSpawner',
|
||||
'RLNightmareSpiderMastermindSpawner',
|
||||
'RLNightmareBossEye',
|
||||
'RLNightmareBossBrain'
|
||||
};
|
||||
static const String technophobiapool[] =
|
||||
static const Name technophobiapool[] =
|
||||
{
|
||||
"RLFormerCyborgBattleRifle",
|
||||
"RLFormerCyborgBattleRifle",
|
||||
"RLFormerCyborgBattleRifle",
|
||||
"RLCyberneticImp",
|
||||
"RLCyberneticDemon",
|
||||
"RLCyberneticSpectre",
|
||||
"RLCyberneticLostSoul",
|
||||
"RLCacodemon",
|
||||
"RLCyberneticHellKnight",
|
||||
"RLCyberneticBaronOfHell",
|
||||
"RLCyberneticArachnotron",
|
||||
"RLCyberneticPainElemental",
|
||||
"RLCyberneticRevenant",
|
||||
"RLCyberneticMancubus",
|
||||
"RLCyberneticArchvile",
|
||||
"RLCyberneticCyberdemonSpawner",
|
||||
"RLCyberneticSpiderMastermindSpawner",
|
||||
"RLTechnophobiaBossEye",
|
||||
"RLTechnophobiaBossBrain"
|
||||
'RLFormerCyborgBattleRifle',
|
||||
'RLFormerCyborgBattleRifle',
|
||||
'RLFormerCyborgBattleRifle',
|
||||
'RLCyberneticImp',
|
||||
'RLCyberneticDemon',
|
||||
'RLCyberneticSpectre',
|
||||
'RLCyberneticLostSoul',
|
||||
'RLCacodemon',
|
||||
'RLCyberneticHellKnight',
|
||||
'RLCyberneticBaronOfHell',
|
||||
'RLCyberneticArachnotron',
|
||||
'RLCyberneticPainElemental',
|
||||
'RLCyberneticRevenant',
|
||||
'RLCyberneticMancubus',
|
||||
'RLCyberneticArchvile',
|
||||
'RLCyberneticCyberdemonSpawner',
|
||||
'RLCyberneticSpiderMastermindSpawner',
|
||||
'RLTechnophobiaBossEye',
|
||||
'RLTechnophobiaBossBrain'
|
||||
};
|
||||
static const String armageddonpool[] =
|
||||
static const Name armageddonpool[] =
|
||||
{
|
||||
"RLFormerAssaultTrooper",
|
||||
"RLFormerOverwatch",
|
||||
"RLFormerShocktrooper",
|
||||
"RLArmageddonImp",
|
||||
"RLArmageddonDemon",
|
||||
"RLArmageddonSpectreSpawner",
|
||||
"RLTheHungrySpawner",
|
||||
"RLArmageddonCacodemon",
|
||||
"RLArmageddonHellKnightSpawner",
|
||||
"RLArmageddonBaronOfHell",
|
||||
"RLArmageddonArachnotron",
|
||||
"RLArmageddonPainElemental",
|
||||
"RLArmageddonRevenant",
|
||||
"RLArmageddonMancubus",
|
||||
"RLArmageddonArchvileSpawner",
|
||||
"RLArmageddonCyberdemonSpawner",
|
||||
"RLArmageddonSpiderMastermindSpawner",
|
||||
"RLArmageddonBossEye",
|
||||
"RLArmageddonBossBrain"
|
||||
'RLFormerAssaultTrooper',
|
||||
'RLFormerOverwatch',
|
||||
'RLFormerShocktrooper',
|
||||
'RLArmageddonImp',
|
||||
'RLArmageddonDemon',
|
||||
'RLArmageddonSpectreSpawner',
|
||||
'RLTheHungrySpawner',
|
||||
'RLArmageddonCacodemon',
|
||||
'RLArmageddonHellKnightSpawner',
|
||||
'RLArmageddonBaronOfHell',
|
||||
'RLArmageddonArachnotron',
|
||||
'RLArmageddonPainElemental',
|
||||
'RLArmageddonRevenant',
|
||||
'RLArmageddonMancubus',
|
||||
'RLArmageddonArchvileSpawner',
|
||||
'RLArmageddonCyberdemonSpawner',
|
||||
'RLArmageddonSpiderMastermindSpawner',
|
||||
'RLArmageddonBossEye',
|
||||
'RLArmageddonBossBrain'
|
||||
};
|
||||
static const String adaptivepool[] =
|
||||
static const Name adaptivepool[] =
|
||||
{
|
||||
"RLAdaptiveFormerHuman",
|
||||
"RLAdaptiveFormerSergeant",
|
||||
"RLAdaptiveFormerCommando",
|
||||
"RLAdaptiveImp",
|
||||
"RLAdaptiveDemon",
|
||||
"RLAdaptiveSpectre",
|
||||
"RLAdaptiveLostSoul",
|
||||
"RLAdaptiveCacodemon",
|
||||
"RLAdaptiveHellKnight",
|
||||
"RLAdaptiveBaronOfHell",
|
||||
"RLAdaptiveArachnotron",
|
||||
"RLAdaptivePainElemental",
|
||||
"RLAdaptiveRevenant",
|
||||
"RLAdaptiveMancubus",
|
||||
"RLAdaptiveArchvile",
|
||||
"RLAdaptiveCyberdemon",
|
||||
"RLAdaptiveSpiderMastermind",
|
||||
"RLUVBossEye",
|
||||
"RLBossBrain"
|
||||
'RLAdaptiveFormerHuman',
|
||||
'RLAdaptiveFormerSergeant',
|
||||
'RLAdaptiveFormerCommando',
|
||||
'RLAdaptiveImp',
|
||||
'RLAdaptiveDemon',
|
||||
'RLAdaptiveSpectre',
|
||||
'RLAdaptiveLostSoul',
|
||||
'RLAdaptiveCacodemon',
|
||||
'RLAdaptiveHellKnight',
|
||||
'RLAdaptiveBaronOfHell',
|
||||
'RLAdaptiveArachnotron',
|
||||
'RLAdaptivePainElemental',
|
||||
'RLAdaptiveRevenant',
|
||||
'RLAdaptiveMancubus',
|
||||
'RLAdaptiveArchvile',
|
||||
'RLAdaptiveCyberdemon',
|
||||
'RLAdaptiveSpiderMastermind',
|
||||
'RLUVBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
switch ( swwm_drlaskill )
|
||||
{
|
||||
|
|
@ -269,37 +269,37 @@ extend Class SWWMHandler
|
|||
|
||||
private Class<Actor> GetLOBReplacee( Class<Actor> a )
|
||||
{
|
||||
static const String refpool[] =
|
||||
static const Name refpool[] =
|
||||
{
|
||||
"Zombieman",
|
||||
"Shotgunguy",
|
||||
"Chaingunguy",
|
||||
"DoomImp",
|
||||
"Demon",
|
||||
"Spectre",
|
||||
"Cacodemon",
|
||||
"HellKnight",
|
||||
"BaronOfHell",
|
||||
"Revenant",
|
||||
"Fatso",
|
||||
"Arachnotron",
|
||||
"Archvile"
|
||||
'Zombieman',
|
||||
'Shotgunguy',
|
||||
'Chaingunguy',
|
||||
'DoomImp',
|
||||
'Demon',
|
||||
'Spectre',
|
||||
'Cacodemon',
|
||||
'HellKnight',
|
||||
'BaronOfHell',
|
||||
'Revenant',
|
||||
'Fatso',
|
||||
'Arachnotron',
|
||||
'Archvile'
|
||||
};
|
||||
static const String reppool[] =
|
||||
static const Name reppool[] =
|
||||
{
|
||||
"LOBZombieman",
|
||||
"LOBShotgunguy",
|
||||
"LOBChaingunguy",
|
||||
"LOBDoomImp",
|
||||
"LOBDemon",
|
||||
"LOBSpectre",
|
||||
"LOBCacodemon",
|
||||
"LOBHellKnight",
|
||||
"LOBBaronOfHell",
|
||||
"LOBRevenant",
|
||||
"LOBFatso",
|
||||
"LOBArachnotron",
|
||||
"LOBArchvile"
|
||||
'LOBZombieman',
|
||||
'LOBShotgunguy',
|
||||
'LOBChaingunguy',
|
||||
'LOBDoomImp',
|
||||
'LOBDemon',
|
||||
'LOBSpectre',
|
||||
'LOBCacodemon',
|
||||
'LOBHellKnight',
|
||||
'LOBBaronOfHell',
|
||||
'LOBRevenant',
|
||||
'LOBFatso',
|
||||
'LOBArachnotron',
|
||||
'LOBArchvile'
|
||||
};
|
||||
for ( int i=0; i<13; i++ )
|
||||
{
|
||||
|
|
@ -315,7 +315,7 @@ extend Class SWWMHandler
|
|||
// these are all needed so boss deaths work
|
||||
if ( e.Replacement is 'DSparilHax' )
|
||||
e.Replacee = 'Sorcerer2';
|
||||
// LOB "double death" stuff
|
||||
// LOB 'double death' stuff
|
||||
if ( haslegionofbones && swwm_lobdoubled )
|
||||
{
|
||||
let rep = GetLOBReplacee(e.Replacement);
|
||||
|
|
@ -339,203 +339,203 @@ extend Class SWWMHandler
|
|||
|
||||
private Class<Actor> GetDRLAReplacement( Class<Actor> a )
|
||||
{
|
||||
static const String refpool[] =
|
||||
static const Name refpool[] =
|
||||
{
|
||||
"Zombieman",
|
||||
"Shotgunguy",
|
||||
"Chaingunguy",
|
||||
"DoomImp",
|
||||
"Demon",
|
||||
"Spectre",
|
||||
"LostSoul",
|
||||
"Cacodemon",
|
||||
"HellKnight",
|
||||
"BaronOfHell",
|
||||
"Arachnotron",
|
||||
"PainElemental",
|
||||
"Revenant",
|
||||
"Fatso",
|
||||
"Archvile",
|
||||
"Cyberdemon",
|
||||
"SpiderMastermind",
|
||||
"BossEye",
|
||||
"BossBrain"
|
||||
'Zombieman',
|
||||
'Shotgunguy',
|
||||
'Chaingunguy',
|
||||
'DoomImp',
|
||||
'Demon',
|
||||
'Spectre',
|
||||
'LostSoul',
|
||||
'Cacodemon',
|
||||
'HellKnight',
|
||||
'BaronOfHell',
|
||||
'Arachnotron',
|
||||
'PainElemental',
|
||||
'Revenant',
|
||||
'Fatso',
|
||||
'Archvile',
|
||||
'Cyberdemon',
|
||||
'SpiderMastermind',
|
||||
'BossEye',
|
||||
'BossBrain'
|
||||
};
|
||||
static const String babypool[] =
|
||||
static const Name babypool[] =
|
||||
{
|
||||
"RLFormerHumanPistol",
|
||||
"RLFormerSergeantShotgun",
|
||||
"RLFormerCommandoChaingun",
|
||||
"RLImp",
|
||||
"RLDemon",
|
||||
"RLSpectre",
|
||||
"RLLostSoul",
|
||||
"RLCacodemon",
|
||||
"RLHellKnight",
|
||||
"RLBaronOfHell",
|
||||
"RLArachnotron",
|
||||
"RLPainElemental",
|
||||
"RLRevenant",
|
||||
"RLMancubus",
|
||||
"RLArchvile",
|
||||
"RLCyberdemon",
|
||||
"RLSpiderMastermindVariantSpawner",
|
||||
"RLEasyBossEye",
|
||||
"RLBossBrain"
|
||||
'RLFormerHumanPistol',
|
||||
'RLFormerSergeantShotgun',
|
||||
'RLFormerCommandoChaingun',
|
||||
'RLImp',
|
||||
'RLDemon',
|
||||
'RLSpectre',
|
||||
'RLLostSoul',
|
||||
'RLCacodemon',
|
||||
'RLHellKnight',
|
||||
'RLBaronOfHell',
|
||||
'RLArachnotron',
|
||||
'RLPainElemental',
|
||||
'RLRevenant',
|
||||
'RLMancubus',
|
||||
'RLArchvile',
|
||||
'RLCyberdemon',
|
||||
'RLSpiderMastermindVariantSpawner',
|
||||
'RLEasyBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
static const String easypool[] =
|
||||
static const Name easypool[] =
|
||||
{
|
||||
"RLFormerHumanNoArmageddonSpawner",
|
||||
"RLFormerSergeantNoArmageddonSpawner",
|
||||
"RLFormerCommandoNoArmageddonSpawner",
|
||||
"RLImpNoArmageddonSpawner",
|
||||
"RLDemonNoArmageddonSpawner",
|
||||
"RLSpectreNoArmageddonSpawner",
|
||||
"RLLostSoulNoArmageddonSpawner",
|
||||
"RLCacodemonNoArmageddonSpawner",
|
||||
"RLHellKnightNoArmageddonSpawner",
|
||||
"RLBaronOfHellNoArmageddonSpawner",
|
||||
"RLArachnotronNoArmageddonSpawner",
|
||||
"RLPainElementalNoArmageddonSpawner",
|
||||
"RLRevenantNoArmageddonSpawner",
|
||||
"RLMancubusNoArmageddonSpawner",
|
||||
"RLArchvileNoArmageddonSpawner",
|
||||
"RLCyberdemonNoArmageddonSpawner",
|
||||
"RLSpiderMastermindNoArmageddonSpawner",
|
||||
"RLBossEye",
|
||||
"RLBossBrain"
|
||||
'RLFormerHumanNoArmageddonSpawner',
|
||||
'RLFormerSergeantNoArmageddonSpawner',
|
||||
'RLFormerCommandoNoArmageddonSpawner',
|
||||
'RLImpNoArmageddonSpawner',
|
||||
'RLDemonNoArmageddonSpawner',
|
||||
'RLSpectreNoArmageddonSpawner',
|
||||
'RLLostSoulNoArmageddonSpawner',
|
||||
'RLCacodemonNoArmageddonSpawner',
|
||||
'RLHellKnightNoArmageddonSpawner',
|
||||
'RLBaronOfHellNoArmageddonSpawner',
|
||||
'RLArachnotronNoArmageddonSpawner',
|
||||
'RLPainElementalNoArmageddonSpawner',
|
||||
'RLRevenantNoArmageddonSpawner',
|
||||
'RLMancubusNoArmageddonSpawner',
|
||||
'RLArchvileNoArmageddonSpawner',
|
||||
'RLCyberdemonNoArmageddonSpawner',
|
||||
'RLSpiderMastermindNoArmageddonSpawner',
|
||||
'RLBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
static const String normalpool[] =
|
||||
static const Name normalpool[] =
|
||||
{
|
||||
"RLFormerHumanNoArmageddonSpawner",
|
||||
"RLFormerSergeantNoArmageddonSpawner",
|
||||
"RLFormerCommandoNoArmageddonSpawner",
|
||||
"RLImpNoArmageddonSpawner",
|
||||
"RLDemonNoArmageddonSpawner",
|
||||
"RLSpectreNoArmageddonSpawner",
|
||||
"RLLostSoulNoArmageddonSpawner",
|
||||
"RLCacodemonNoArmageddonSpawner",
|
||||
"RLHellKnightNoArmageddonSpawner",
|
||||
"RLBaronOfHellNoArmageddonSpawner",
|
||||
"RLArachnotronNoArmageddonSpawner",
|
||||
"RLPainElementalNoArmageddonSpawner",
|
||||
"RLRevenantNoArmageddonSpawner",
|
||||
"RLMancubusNoArmageddonSpawner",
|
||||
"RLArchvileNoArmageddonSpawner",
|
||||
"RLCyberdemonNoArmageddonSpawner",
|
||||
"RLSpiderMastermindNoArmageddonSpawner",
|
||||
"RLBossEye",
|
||||
"RLBossBrain"
|
||||
'RLFormerHumanNoArmageddonSpawner',
|
||||
'RLFormerSergeantNoArmageddonSpawner',
|
||||
'RLFormerCommandoNoArmageddonSpawner',
|
||||
'RLImpNoArmageddonSpawner',
|
||||
'RLDemonNoArmageddonSpawner',
|
||||
'RLSpectreNoArmageddonSpawner',
|
||||
'RLLostSoulNoArmageddonSpawner',
|
||||
'RLCacodemonNoArmageddonSpawner',
|
||||
'RLHellKnightNoArmageddonSpawner',
|
||||
'RLBaronOfHellNoArmageddonSpawner',
|
||||
'RLArachnotronNoArmageddonSpawner',
|
||||
'RLPainElementalNoArmageddonSpawner',
|
||||
'RLRevenantNoArmageddonSpawner',
|
||||
'RLMancubusNoArmageddonSpawner',
|
||||
'RLArchvileNoArmageddonSpawner',
|
||||
'RLCyberdemonNoArmageddonSpawner',
|
||||
'RLSpiderMastermindNoArmageddonSpawner',
|
||||
'RLBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
static const String hardpool[] =
|
||||
static const Name hardpool[] =
|
||||
{
|
||||
"RLFormerHumanSpawner",
|
||||
"RLFormerSergeantSpawner",
|
||||
"RLFormerCommandoSpawner",
|
||||
"RLImpSpawner",
|
||||
"RLDemonSpawner",
|
||||
"RLSpectreSpawner",
|
||||
"RLLostSoulSpawner",
|
||||
"RLCacodemonSpawner",
|
||||
"RLHellKnightSpawner",
|
||||
"RLBaronOfHellSpawner",
|
||||
"RLArachnotronSpawner",
|
||||
"RLPainElementalSpawner",
|
||||
"RLRevenantSpawner",
|
||||
"RLMancubusSpawner",
|
||||
"RLArchvileSpawner",
|
||||
"RLCyberdemonSpawner",
|
||||
"RLSpiderMastermindSpawner",
|
||||
"RLUVBossEye",
|
||||
"RLBossBrain"
|
||||
'RLFormerHumanSpawner',
|
||||
'RLFormerSergeantSpawner',
|
||||
'RLFormerCommandoSpawner',
|
||||
'RLImpSpawner',
|
||||
'RLDemonSpawner',
|
||||
'RLSpectreSpawner',
|
||||
'RLLostSoulSpawner',
|
||||
'RLCacodemonSpawner',
|
||||
'RLHellKnightSpawner',
|
||||
'RLBaronOfHellSpawner',
|
||||
'RLArachnotronSpawner',
|
||||
'RLPainElementalSpawner',
|
||||
'RLRevenantSpawner',
|
||||
'RLMancubusSpawner',
|
||||
'RLArchvileSpawner',
|
||||
'RLCyberdemonSpawner',
|
||||
'RLSpiderMastermindSpawner',
|
||||
'RLUVBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
static const String nightmarepool[] =
|
||||
static const Name nightmarepool[] =
|
||||
{
|
||||
"RLEliteFormerHumanSpawner",
|
||||
"RLEliteFormerSergeantSpawner",
|
||||
"RLEliteFormerCommandoSpawner",
|
||||
"RLNightmareImp",
|
||||
"RLNightmareDemon",
|
||||
"RLNightmareSpectre",
|
||||
"RLNightmareLostSoul",
|
||||
"RLNightmareCacodemon",
|
||||
"RLNightmareHellKnight",
|
||||
"RLNightmareBaronOfHell",
|
||||
"RLNightmareArachnotron",
|
||||
"RLNightmarePainElemental",
|
||||
"RLNightmareRevenant",
|
||||
"RLNightmareMancubus",
|
||||
"RLNightmareArchvile",
|
||||
"RLNightmareCyberdemonSpawner",
|
||||
"RLNightmareSpiderMastermindSpawner",
|
||||
"RLNightmareBossEye",
|
||||
"RLNightmareBossBrain"
|
||||
'RLEliteFormerHumanSpawner',
|
||||
'RLEliteFormerSergeantSpawner',
|
||||
'RLEliteFormerCommandoSpawner',
|
||||
'RLNightmareImp',
|
||||
'RLNightmareDemon',
|
||||
'RLNightmareSpectre',
|
||||
'RLNightmareLostSoul',
|
||||
'RLNightmareCacodemon',
|
||||
'RLNightmareHellKnight',
|
||||
'RLNightmareBaronOfHell',
|
||||
'RLNightmareArachnotron',
|
||||
'RLNightmarePainElemental',
|
||||
'RLNightmareRevenant',
|
||||
'RLNightmareMancubus',
|
||||
'RLNightmareArchvile',
|
||||
'RLNightmareCyberdemonSpawner',
|
||||
'RLNightmareSpiderMastermindSpawner',
|
||||
'RLNightmareBossEye',
|
||||
'RLNightmareBossBrain'
|
||||
};
|
||||
static const String technophobiapool[] =
|
||||
static const Name technophobiapool[] =
|
||||
{
|
||||
"RLFormerCyborgBattleRifle",
|
||||
"RLFormerCyborgBattleRifle",
|
||||
"RLFormerCyborgBattleRifle",
|
||||
"RLCyberneticImp",
|
||||
"RLCyberneticDemon",
|
||||
"RLCyberneticSpectre",
|
||||
"RLCyberneticLostSoul",
|
||||
"RLCacodemon",
|
||||
"RLCyberneticHellKnight",
|
||||
"RLCyberneticBaronOfHell",
|
||||
"RLCyberneticArachnotron",
|
||||
"RLCyberneticPainElemental",
|
||||
"RLCyberneticRevenant",
|
||||
"RLCyberneticMancubus",
|
||||
"RLCyberneticArchvile",
|
||||
"RLCyberneticCyberdemonSpawner",
|
||||
"RLCyberneticSpiderMastermindSpawner",
|
||||
"RLTechnophobiaBossEye",
|
||||
"RLTechnophobiaBossBrain"
|
||||
'RLFormerCyborgBattleRifle',
|
||||
'RLFormerCyborgBattleRifle',
|
||||
'RLFormerCyborgBattleRifle',
|
||||
'RLCyberneticImp',
|
||||
'RLCyberneticDemon',
|
||||
'RLCyberneticSpectre',
|
||||
'RLCyberneticLostSoul',
|
||||
'RLCacodemon',
|
||||
'RLCyberneticHellKnight',
|
||||
'RLCyberneticBaronOfHell',
|
||||
'RLCyberneticArachnotron',
|
||||
'RLCyberneticPainElemental',
|
||||
'RLCyberneticRevenant',
|
||||
'RLCyberneticMancubus',
|
||||
'RLCyberneticArchvile',
|
||||
'RLCyberneticCyberdemonSpawner',
|
||||
'RLCyberneticSpiderMastermindSpawner',
|
||||
'RLTechnophobiaBossEye',
|
||||
'RLTechnophobiaBossBrain'
|
||||
};
|
||||
static const String armageddonpool[] =
|
||||
static const Name armageddonpool[] =
|
||||
{
|
||||
"RLFormerAssaultTrooper",
|
||||
"RLFormerOverwatch",
|
||||
"RLFormerShocktrooper",
|
||||
"RLArmageddonImp",
|
||||
"RLArmageddonDemon",
|
||||
"RLArmageddonSpectreSpawner",
|
||||
"RLTheHungrySpawner",
|
||||
"RLArmageddonCacodemon",
|
||||
"RLArmageddonHellKnightSpawner",
|
||||
"RLArmageddonBaronOfHell",
|
||||
"RLArmageddonArachnotron",
|
||||
"RLArmageddonPainElemental",
|
||||
"RLArmageddonRevenant",
|
||||
"RLArmageddonMancubus",
|
||||
"RLArmageddonArchvileSpawner",
|
||||
"RLArmageddonCyberdemonSpawner",
|
||||
"RLArmageddonSpiderMastermindSpawner",
|
||||
"RLArmageddonBossEye",
|
||||
"RLArmageddonBossBrain"
|
||||
'RLFormerAssaultTrooper',
|
||||
'RLFormerOverwatch',
|
||||
'RLFormerShocktrooper',
|
||||
'RLArmageddonImp',
|
||||
'RLArmageddonDemon',
|
||||
'RLArmageddonSpectreSpawner',
|
||||
'RLTheHungrySpawner',
|
||||
'RLArmageddonCacodemon',
|
||||
'RLArmageddonHellKnightSpawner',
|
||||
'RLArmageddonBaronOfHell',
|
||||
'RLArmageddonArachnotron',
|
||||
'RLArmageddonPainElemental',
|
||||
'RLArmageddonRevenant',
|
||||
'RLArmageddonMancubus',
|
||||
'RLArmageddonArchvileSpawner',
|
||||
'RLArmageddonCyberdemonSpawner',
|
||||
'RLArmageddonSpiderMastermindSpawner',
|
||||
'RLArmageddonBossEye',
|
||||
'RLArmageddonBossBrain'
|
||||
};
|
||||
static const String adaptivepool[] =
|
||||
static const Name adaptivepool[] =
|
||||
{
|
||||
"RLAdaptiveFormerHuman",
|
||||
"RLAdaptiveFormerSergeant",
|
||||
"RLAdaptiveFormerCommando",
|
||||
"RLAdaptiveImp",
|
||||
"RLAdaptiveDemon",
|
||||
"RLAdaptiveSpectre",
|
||||
"RLAdaptiveLostSoul",
|
||||
"RLAdaptiveCacodemon",
|
||||
"RLAdaptiveHellKnight",
|
||||
"RLAdaptiveBaronOfHell",
|
||||
"RLAdaptiveArachnotron",
|
||||
"RLAdaptivePainElemental",
|
||||
"RLAdaptiveRevenant",
|
||||
"RLAdaptiveMancubus",
|
||||
"RLAdaptiveArchvile",
|
||||
"RLAdaptiveCyberdemon",
|
||||
"RLAdaptiveSpiderMastermind",
|
||||
"RLUVBossEye",
|
||||
"RLBossBrain"
|
||||
'RLAdaptiveFormerHuman',
|
||||
'RLAdaptiveFormerSergeant',
|
||||
'RLAdaptiveFormerCommando',
|
||||
'RLAdaptiveImp',
|
||||
'RLAdaptiveDemon',
|
||||
'RLAdaptiveSpectre',
|
||||
'RLAdaptiveLostSoul',
|
||||
'RLAdaptiveCacodemon',
|
||||
'RLAdaptiveHellKnight',
|
||||
'RLAdaptiveBaronOfHell',
|
||||
'RLAdaptiveArachnotron',
|
||||
'RLAdaptivePainElemental',
|
||||
'RLAdaptiveRevenant',
|
||||
'RLAdaptiveMancubus',
|
||||
'RLAdaptiveArchvile',
|
||||
'RLAdaptiveCyberdemon',
|
||||
'RLAdaptiveSpiderMastermind',
|
||||
'RLUVBossEye',
|
||||
'RLBossBrain'
|
||||
};
|
||||
switch ( swwm_drlaskill )
|
||||
{
|
||||
|
|
@ -602,37 +602,37 @@ extend Class SWWMHandler
|
|||
|
||||
private Class<Actor> GetLOBReplacement( Class<Actor> a )
|
||||
{
|
||||
static const String refpool[] =
|
||||
static const Name refpool[] =
|
||||
{
|
||||
"Zombieman",
|
||||
"Shotgunguy",
|
||||
"Chaingunguy",
|
||||
"DoomImp",
|
||||
"Demon",
|
||||
"Spectre",
|
||||
"Cacodemon",
|
||||
"HellKnight",
|
||||
"BaronOfHell",
|
||||
"Revenant",
|
||||
"Fatso",
|
||||
"Arachnotron",
|
||||
"Archvile"
|
||||
'Zombieman',
|
||||
'Shotgunguy',
|
||||
'Chaingunguy',
|
||||
'DoomImp',
|
||||
'Demon',
|
||||
'Spectre',
|
||||
'Cacodemon',
|
||||
'HellKnight',
|
||||
'BaronOfHell',
|
||||
'Revenant',
|
||||
'Fatso',
|
||||
'Arachnotron',
|
||||
'Archvile'
|
||||
};
|
||||
static const String reppool[] =
|
||||
static const Name reppool[] =
|
||||
{
|
||||
"LOBZombieman",
|
||||
"LOBShotgunguy",
|
||||
"LOBChaingunguy",
|
||||
"LOBDoomImp",
|
||||
"LOBDemon",
|
||||
"LOBSpectre",
|
||||
"LOBCacodemon",
|
||||
"LOBHellKnight",
|
||||
"LOBBaronOfHell",
|
||||
"LOBRevenant",
|
||||
"LOBFatso",
|
||||
"LOBArachnotron",
|
||||
"LOBArchvile"
|
||||
'LOBZombieman',
|
||||
'LOBShotgunguy',
|
||||
'LOBChaingunguy',
|
||||
'LOBDoomImp',
|
||||
'LOBDemon',
|
||||
'LOBSpectre',
|
||||
'LOBCacodemon',
|
||||
'LOBHellKnight',
|
||||
'LOBBaronOfHell',
|
||||
'LOBRevenant',
|
||||
'LOBFatso',
|
||||
'LOBArachnotron',
|
||||
'LOBArchvile'
|
||||
};
|
||||
for ( int i=0; i<13; i++ )
|
||||
{
|
||||
|
|
@ -663,7 +663,7 @@ extend Class SWWMHandler
|
|||
return;
|
||||
}
|
||||
}
|
||||
// LOB "double death" stuff
|
||||
// LOB 'double death' stuff
|
||||
if ( haslegionofbones && swwm_lobdoubled )
|
||||
{
|
||||
let rep = GetLOBReplacement(e.Replacee);
|
||||
|
|
@ -729,10 +729,10 @@ extend Class SWWMHandler
|
|||
else if ( e.Replacee is 'Crossbow' ) e.Replacement = SWWMUtility.PickDoomSlot3();
|
||||
else if ( (e.Replacee is 'Chaingun') || (e.Replacee is 'Blaster') || (e.Replacee is 'FWeaponPiece3') ) e.Replacement = SWWMUtility.PickSWWMSlot5();
|
||||
else if ( (e.Replacee is 'RocketLauncher') || (e.Replacee is 'PhoenixRod') || (e.Replacee is 'FWeapHammer') ) e.Replacement = SWWMUtility.PickSWWMSlot6();
|
||||
else if ( (e.Replacee is 'PlasmaRifle') || (e.Replacee is 'SkullRod') ) e.Replacement = SWWMUtility.PickDoomSlot6();
|
||||
else if ( (e.Replacee is 'PlasmaRifle') || (e.Replacee is 'ID24Incinerator') || (e.Replacee is 'SkullRod') ) e.Replacement = SWWMUtility.PickDoomSlot6();
|
||||
else if ( e.Replacee is 'CWeapFlame' ) e.Replacement = SWWMUtility.PickSWWMSlot7();
|
||||
else if ( e.Replacee is 'MWeapLightning' ) e.Replacement = SWWMUtility.PickSWWMSlot8();
|
||||
else if ( (e.Replacee is 'BFG9000') || (e.Replacee is 'Mace') ) e.Replacement = SWWMUtility.PickDoomSlot7();
|
||||
else if ( (e.Replacee is 'BFG9000') || (e.Replacee is 'ID24CalamityBlade') || (e.Replacee is 'Mace') ) e.Replacement = SWWMUtility.PickDoomSlot7();
|
||||
else if ( e.Replacee is 'CWeaponPiece2' ) e.Replacement = SWWMUtility.PickSWWMSlot9();
|
||||
else if ( e.Replacee is 'MWeaponPiece1' ) e.Replacement = SWWMUtility.PickSWWMSlot0();
|
||||
else if ( (e.Replacee is 'ShellBox') || (e.Replacee is 'CrossbowHefty') ) e.Replacement = 'SWWMShellAmmoBig';
|
||||
|
|
@ -743,8 +743,8 @@ extend Class SWWMHandler
|
|||
else if ( e.Replacee is 'BlasterAmmo' ) e.Replacement = 'SWWMBlastAmmoSmall';
|
||||
else if ( (e.Replacee is 'RocketBox') || (e.Replacee is 'PhoenixRodHefty') || (e.Replacee is 'MaceHefty') ) e.Replacement = 'SWWMRocketAmmoBig';
|
||||
else if ( (e.Replacee is 'RocketAmmo') || (e.Replacee is 'PhoenixRodAmmo') || (e.Replacee is 'MaceAmmo') ) e.Replacement = 'SWWMRocketAmmoSmall';
|
||||
else if ( (e.Replacee is 'CellPack') || (e.Replacee is 'SkullRodHefty') ) e.Replacement = 'SWWMCellAmmoBig';
|
||||
else if ( (e.Replacee is 'Cell') || (e.Replacee is 'SkullRodAmmo') ) e.Replacement = 'SWWMCellAmmoSmall';
|
||||
else if ( (e.Replacee is 'CellPack') || (e.Replacee is 'ID24FuelTank') || (e.Replacee is 'SkullRodHefty') ) e.Replacement = 'SWWMCellAmmoBig';
|
||||
else if ( (e.Replacee is 'Cell') || (e.Replacee is 'ID24Fuel') || (e.Replacee is 'SkullRodAmmo') ) e.Replacement = 'SWWMCellAmmoSmall';
|
||||
else if ( e.Replacee is 'Mana1' ) e.Replacement = 'FabricatorTier1';
|
||||
else if ( e.Replacee is 'Mana2' ) e.Replacement = 'FabricatorTier2';
|
||||
else if ( e.Replacee is 'Mana3' ) e.Replacement = 'FabricatorTier3';
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ extend Class SWWMHandler
|
|||
PPShader.SetUniform1f("BokehSel","strength",salph);
|
||||
}
|
||||
else PPShader.SetEnabled("BokehSel",false);
|
||||
let divi = DivineSpriteEffect(mo.FindInventory("DivineSpriteEffect"));
|
||||
let divi = DivineSpriteEffect(mo.FindInventory('DivineSpriteEffect'));
|
||||
if ( divi )
|
||||
{
|
||||
PPShader.SetEnabled("DivineShader",true);
|
||||
|
|
@ -48,7 +48,7 @@ extend Class SWWMHandler
|
|||
PPShader.SetUniform1f("DivineShader","str",str);
|
||||
}
|
||||
else PPShader.SetEnabled("DevastationShader",false);
|
||||
let deva = AngeryPower(mo.FindInventory("AngeryPower"));
|
||||
let deva = AngeryPower(mo.FindInventory('AngeryPower'));
|
||||
if ( deva )
|
||||
{
|
||||
PPShader.SetEnabled("DevastationShader",true);
|
||||
|
|
@ -57,7 +57,7 @@ extend Class SWWMHandler
|
|||
PPShader.SetUniform1f("DevastationShader","xtrastr",xstrastr**2.);
|
||||
}
|
||||
else PPShader.SetEnabled("DevastationShader",false);
|
||||
let rage = RagekitPower(mo.FindInventory("RagekitPower"));
|
||||
let rage = RagekitPower(mo.FindInventory('RagekitPower'));
|
||||
if ( rage )
|
||||
{
|
||||
PPShader.SetEnabled("RagekitShader",true);
|
||||
|
|
@ -66,10 +66,10 @@ extend Class SWWMHandler
|
|||
PPShader.SetUniform1f("RagekitShader","xtrastr",xstrastr**2.);
|
||||
}
|
||||
else PPShader.SetEnabled("RagekitShader",false);
|
||||
let ghost = GhostPower(mo.FindInventory("GhostPower"));
|
||||
let ghost = GhostPower(mo.FindInventory('GhostPower'));
|
||||
if ( ghost ) PPShader.SetEnabled("GhostShader",true);
|
||||
else PPShader.SetEnabled("GhostShader",false);
|
||||
let sunny = InvinciballPower(mo.FindInventory("InvinciballPower"));
|
||||
let sunny = InvinciballPower(mo.FindInventory('InvinciballPower'));
|
||||
if ( sunny )
|
||||
{
|
||||
PPShader.SetEnabled("InvinciShader",true);
|
||||
|
|
@ -77,7 +77,7 @@ extend Class SWWMHandler
|
|||
PPShader.SetUniform1f("InvinciShader","str",str);
|
||||
}
|
||||
else PPShader.SetEnabled("InvinciShader",false);
|
||||
let coat = BarrierPower(mo.FindInventory("BarrierPower"));
|
||||
let coat = BarrierPower(mo.FindInventory('BarrierPower'));
|
||||
if ( coat )
|
||||
{
|
||||
PPShader.SetEnabled("BarrierShader",true);
|
||||
|
|
@ -154,7 +154,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
}
|
||||
else PPShader.SetEnabled("WindBlur",false);
|
||||
if ( !demo.InStateSequence(demo.CurState,demo.FindState("Dash")) )
|
||||
if ( !demo.InStateSequence(demo.CurState,demo.FindState('Dash')) )
|
||||
{
|
||||
PPShader.SetEnabled("ZoomBlur",false);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -60,15 +60,15 @@ Class ROM3R0Death : Inventory
|
|||
override void OwnerDied()
|
||||
{
|
||||
// copied from boss brain
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
let ti = ThinkerIterator.Create('Actor');
|
||||
Actor a;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
{
|
||||
if ( a is 'BossEye' ) a.SetStateLabel("Null");
|
||||
if ( a is 'BossEye' ) a.SetStateLabel('Null');
|
||||
else if ( a is 'SpawnShot' )
|
||||
{
|
||||
a.Spawn("SpawnFire",a.pos,ALLOW_REPLACE);
|
||||
a.SetStateLabel("Null");
|
||||
a.Spawn('SpawnFire',a.pos,ALLOW_REPLACE);
|
||||
a.SetStateLabel('Null');
|
||||
}
|
||||
else if ( (a.Health > 0) && (a.bBossSpawned || a.bCOUNTKILL) )
|
||||
a.DamageMobj(self,self,a.Health,'EndMii',DMG_FORCED|DMG_THRUSTLESS);
|
||||
|
|
@ -129,7 +129,7 @@ extend Class SWWMHandler
|
|||
|
||||
static play void AddBoss( int tid, String tag, bool endgame = false )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
hnd.bossactors.Clear();
|
||||
hnd.initialized = false;
|
||||
|
|
@ -144,7 +144,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
hnd.bossbrainactor = a;
|
||||
// look for boss eyes
|
||||
let eye = Actor(ThinkerIterator.Create("BossEye").Next());
|
||||
let eye = Actor(ThinkerIterator.Create('BossEye').Next());
|
||||
hnd.bossviewactor = eye;
|
||||
}
|
||||
}
|
||||
|
|
@ -155,7 +155,7 @@ extend Class SWWMHandler
|
|||
static play void AddBossActor( Actor a, String tag, bool endgame = false )
|
||||
{
|
||||
if ( !a ) return;
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
hnd.bossactors.Clear();
|
||||
hnd.initialized = false;
|
||||
|
|
@ -167,7 +167,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
hnd.bossbrainactor = a;
|
||||
// look for boss eyes
|
||||
let eye = Actor(ThinkerIterator.Create("BossEye").Next());
|
||||
let eye = Actor(ThinkerIterator.Create('BossEye').Next());
|
||||
hnd.bossviewactor = eye;
|
||||
}
|
||||
}
|
||||
|
|
@ -438,14 +438,14 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( bossmap == MAP_EVMAP30 )
|
||||
{
|
||||
if ( e.Thing.GetClassName() == "Archangelus" )
|
||||
if ( e.Thing.GetClassName() == 'Archangelus' )
|
||||
{
|
||||
bossactors.Push(e.Thing);
|
||||
bossviewactor = e.Thing;
|
||||
bosstag = "$BT_ARCHANGELUS";
|
||||
e.Thing.GiveInventory('ArchangelusMessage',1);
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "ArchangelusA" )
|
||||
else if ( e.Thing.GetClassName() == 'ArchangelusA' )
|
||||
{
|
||||
// first phase
|
||||
bossactors.Clear();
|
||||
|
|
@ -457,7 +457,7 @@ extend Class SWWMHandler
|
|||
e.Thing.GiveInventory('BossMarker',1);
|
||||
e.Thing.GiveInventory('EndgameBossMarker',1);
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "ArchangelusB" )
|
||||
else if ( e.Thing.GetClassName() == 'ArchangelusB' )
|
||||
{
|
||||
// second phase
|
||||
bossactors.Clear();
|
||||
|
|
@ -474,7 +474,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( bossmap == MAP_EVIIMAP30 )
|
||||
{
|
||||
if ( (e.Thing.GetClassName() == "The_Origin_Phase_1_Spawner") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_1_Spawner") )
|
||||
if ( (e.Thing.GetClassName() == 'The_Origin_Phase_1_Spawner') || (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_1_Spawner') )
|
||||
{
|
||||
bossactors.Push(e.Thing);
|
||||
bossviewactor = e.Thing;
|
||||
|
|
@ -482,7 +482,7 @@ extend Class SWWMHandler
|
|||
// hack to avoid "all clear" between phases
|
||||
level.total_monsters += 3;
|
||||
}
|
||||
else if ( (e.Thing.GetClassName() == "The_Origin_Phase_1") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_1") )
|
||||
else if ( (e.Thing.GetClassName() == 'The_Origin_Phase_1') || (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_1') )
|
||||
{
|
||||
// first phase
|
||||
bossactors.Clear();
|
||||
|
|
@ -496,7 +496,7 @@ extend Class SWWMHandler
|
|||
// undo the hack (part 1)
|
||||
level.total_monsters--;
|
||||
}
|
||||
else if ( (e.Thing.GetClassName() == "The_Origin_Phase_2") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_2") )
|
||||
else if ( (e.Thing.GetClassName() == 'The_Origin_Phase_2') || (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_2') )
|
||||
{
|
||||
// second phase
|
||||
bossactors.Clear();
|
||||
|
|
@ -516,7 +516,7 @@ extend Class SWWMHandler
|
|||
// undo the hack (part 2)
|
||||
level.total_monsters--;
|
||||
}
|
||||
else if ( (e.Thing.GetClassName() == "The_Origin_Phase_3") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_3") )
|
||||
else if ( (e.Thing.GetClassName() == 'The_Origin_Phase_3') || (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_3') )
|
||||
{
|
||||
// third phase
|
||||
bossactors.Clear();
|
||||
|
|
@ -538,7 +538,7 @@ extend Class SWWMHandler
|
|||
level.total_monsters--;
|
||||
}
|
||||
}
|
||||
if ( ccloaded && (e.Thing.GetClassName() == "CCards_Boss_Romero") )
|
||||
if ( ccloaded && (e.Thing.GetClassName() == 'CCards_Boss_Romero') )
|
||||
{
|
||||
bossactors.Push(e.Thing);
|
||||
e.Thing.StartHealth = e.Thing.Health *= 10;
|
||||
|
|
@ -584,11 +584,11 @@ extend Class SWWMHandler
|
|||
else if ( bossmap == MAP_EVIIMAP30 )
|
||||
{
|
||||
highesttic = gametic;
|
||||
if ( (a.GetClassName() == "The_Origin_Phase_1") || (a.GetClassName() == "The_Absolute_Origin_Phase_1") )
|
||||
if ( (a.GetClassName() == 'The_Origin_Phase_1') || (a.GetClassName() == 'The_Absolute_Origin_Phase_1') )
|
||||
lastcombat = AddOneliner("origin1",1,40);
|
||||
else if ( (a.GetClassName() == "The_Origin_Phase_2") || (a.GetClassName() == "The_Absolute_Origin_Phase_2") )
|
||||
else if ( (a.GetClassName() == 'The_Origin_Phase_2') || (a.GetClassName() == 'The_Absolute_Origin_Phase_2') )
|
||||
lastcombat = AddOneliner("origin2",1,40);
|
||||
else if ( (a.GetClassName() == "The_Origin_Phase_3") || (a.GetClassName() == "The_Absolute_Origin_Phase_3") )
|
||||
else if ( (a.GetClassName() == 'The_Origin_Phase_3') || (a.GetClassName() == 'The_Absolute_Origin_Phase_3') )
|
||||
lastcombat = AddOneliner("origin3",1,40);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ extend Class SWWMHandler
|
|||
// level end stats
|
||||
override void WorldUnloaded( WorldEvent e )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMStats",Thinker.STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMStats',Thinker.STAT_STATIC);
|
||||
SWWMStats s;
|
||||
while ( s = SWWMStats(ti.Next()) )
|
||||
{
|
||||
|
|
@ -113,7 +113,7 @@ extend Class SWWMHandler
|
|||
s.AddLevelStats();
|
||||
s.lastcluster = level.cluster;
|
||||
// nazi cleanup
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
let ti = ThinkerIterator.Create('Actor');
|
||||
Actor a;
|
||||
bool hasnazis = false;
|
||||
bool livenazis = false;
|
||||
|
|
@ -219,7 +219,7 @@ extend Class SWWMHandler
|
|||
sbounds.Resize(level.Sectors.Size());
|
||||
foreach ( s:level.Sectors )
|
||||
{
|
||||
let sb = new("SectorBounds");
|
||||
let sb = new('SectorBounds');
|
||||
sb.portalgroup = s.portalgroup;
|
||||
sb.bounds = ( 32767, 32767, -32768, -32768 );
|
||||
foreach ( l:s.Lines )
|
||||
|
|
@ -267,15 +267,10 @@ extend Class SWWMHandler
|
|||
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.DIMPLE");
|
||||
break;
|
||||
case MAP_DMAP30:
|
||||
bool rampancy = false;
|
||||
foreach ( cls:AllActorClasses )
|
||||
{
|
||||
if ( cls.GetClassName() != "Robot_BossBrain" ) continue;
|
||||
rampancy = true;
|
||||
break;
|
||||
}
|
||||
if ( rampancy ) SendInterfaceEvent(consoleplayer,"swwmsetdialogue.RAMPANCY");
|
||||
else SendInterfaceEvent(consoleplayer,"swwmsetdialogue.IOS");
|
||||
if ( FindClass('Robot_BossBrain','Actor') )
|
||||
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.RAMPANCY");
|
||||
else
|
||||
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.IOS");
|
||||
break;
|
||||
case MAP_DLVL08:
|
||||
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.NERVE");
|
||||
|
|
@ -418,14 +413,14 @@ extend Class SWWMHandler
|
|||
|| (level.GetChecksum() ~== "A52BD2038CF814101AAB7D9C78F9ACE2") )
|
||||
level.ExecuteSpecial(ACS_Execute,null,null,false,-Int('DVACATION_UNSCREW'));
|
||||
// rampancy boss brain fix (repeatedly triggering "map clear")
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
let ti = ThinkerIterator.Create('Actor');
|
||||
Actor a, brain;
|
||||
bool haseye = false;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
{
|
||||
if ( a.GetClassName() == "Robot_BossEye" )
|
||||
if ( a.GetClassName() == 'Robot_BossEye' )
|
||||
haseye = true;
|
||||
if ( a.GetClassName() == "Robot_BossBrain" )
|
||||
if ( a.GetClassName() == 'Robot_BossBrain' )
|
||||
brain = a;
|
||||
}
|
||||
if ( haseye && brain )
|
||||
|
|
@ -433,7 +428,7 @@ extend Class SWWMHandler
|
|||
brain.bCOUNTKILL = true;
|
||||
level.total_monsters++;
|
||||
// while we're at it
|
||||
Actor.Spawn("RampancyLogonDummy");
|
||||
Actor.Spawn('RampancyLogonDummy');
|
||||
}
|
||||
// KDiKDiZD abort fix due to voodoo doll post-spawn replacement
|
||||
// (we have our own mikoportal compatibility, anyway)
|
||||
|
|
@ -442,18 +437,15 @@ extend Class SWWMHandler
|
|||
// since KDiKDiZD requires software rendering, while this is a
|
||||
// hardware-only mod... but hey, they can sort-of-work together
|
||||
// (with broken visual effects, but still... somewhat working)
|
||||
foreach ( cls:AllClasses )
|
||||
if ( FindClass('KdikdizdCompatEventHandler','EventHandler') )
|
||||
{
|
||||
if ( cls.GetClassName() != 'KdikdizdCompatEventHandler' )
|
||||
continue;
|
||||
ti = ThinkerIterator.Create("Thinker");
|
||||
ti = ThinkerIterator.Create('Thinker');
|
||||
foreach ( t:ti )
|
||||
{
|
||||
if ( t.GetClassName() != 'VoodooPusher' )
|
||||
continue;
|
||||
t.Destroy();
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Eviternity II MAP33 fix. Player movement physics need to
|
||||
// have ground anchoring disabled, as it will make some
|
||||
|
|
@ -478,7 +470,7 @@ extend Class SWWMHandler
|
|||
// while we're at it, add teleporter sparks
|
||||
if ( SWWMUtility.IsTeleportLine(l) )
|
||||
{
|
||||
let a = SWWMTeleportLine(Actor.Spawn("SWWMTeleportLine"));
|
||||
let a = SWWMTeleportLine(Actor.Spawn('SWWMTeleportLine'));
|
||||
a.tline = l;
|
||||
}
|
||||
let [isexit, exittype] = SWWMUtility.IsExitLine(l);
|
||||
|
|
@ -533,7 +525,7 @@ extend Class SWWMHandler
|
|||
if ( !deathmatch ) Chancebox.SpawnChanceboxes();
|
||||
// list map keys
|
||||
maphaskeys = false;
|
||||
ti = ThinkerIterator.Create("Key");
|
||||
ti = ThinkerIterator.Create('Key');
|
||||
Key k;
|
||||
while ( k = Key(ti.Next()) )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ extend Class SWWMHandler
|
|||
|| SWWMUtility.IdentifyingDrug(e.Thing) || SWWMUtility.IdentifyingDoubleBoi(e.Thing) )
|
||||
{
|
||||
// you can pet the dog, and you can also pet the caco (and friends)
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
}
|
||||
if ( !(e.Thing is 'PlayerPawn') )
|
||||
|
|
@ -53,12 +53,12 @@ extend Class SWWMHandler
|
|||
for ( int i=0; i<MAXPLAYERS; i++ )
|
||||
{
|
||||
if ( !playeringame[i] || !players[i].mo ) continue;
|
||||
let cg = players[i].mo.FindInventory("GoldShell");
|
||||
let cg = players[i].mo.FindInventory('GoldShell');
|
||||
if ( cg ) totalneeded += cg.MaxAmount-cg.Amount;
|
||||
else totalneeded = GetDefaultByType("GoldShell").MaxAmount;
|
||||
else totalneeded = GetDefaultByType('GoldShell').MaxAmount;
|
||||
}
|
||||
// subtract any shells already in the world
|
||||
let ti = ThinkerIterator.Create("GoldShell");
|
||||
let ti = ThinkerIterator.Create('GoldShell');
|
||||
GoldShell g;
|
||||
while ( g = GoldShell(ti.Next()) )
|
||||
{
|
||||
|
|
@ -71,7 +71,7 @@ extend Class SWWMHandler
|
|||
override void WorldThingDied( WorldEvent e )
|
||||
{
|
||||
if ( profiling ) ProfileTick();
|
||||
if ( e.Thing.default.bISMONSTER && e.Thing.default.bCOUNTKILL && ((e.Thing.default.bBOSS) || (e.Thing.GetSpawnHealth() >= 1000) || e.Thing.FindInventory("BossMarker")) && (alreadygold.Find(e.Thing) == alreadygold.Size()) )
|
||||
if ( e.Thing.default.bISMONSTER && e.Thing.default.bCOUNTKILL && ((e.Thing.default.bBOSS) || (e.Thing.GetSpawnHealth() >= 1000) || e.Thing.FindInventory('BossMarker')) && (alreadygold.Find(e.Thing) == alreadygold.Size()) )
|
||||
{
|
||||
// make sure we can't farm drops from revivable enemies
|
||||
// (or cause some things to spam-spawn gold shells)
|
||||
|
|
@ -89,7 +89,7 @@ extend Class SWWMHandler
|
|||
int gchance = int(ceil(ShouldSpawnGold()/2.));
|
||||
if ( !Random[GoldDrop](0,dropweight) && Random[GoldDrop](0,gchance) )
|
||||
{
|
||||
let g = Actor.Spawn("GoldShell",e.Thing.Vec3Offset(0,0,e.Thing.Height/2.));
|
||||
let g = Actor.Spawn('GoldShell',e.Thing.Vec3Offset(0,0,e.Thing.Height/2.));
|
||||
double ang = FRandom[SpareShells](0.,360.);
|
||||
g.vel.xy = Actor.AngleToVector(ang,FRandom[SpareShells](.4,.8));
|
||||
g.vel.z = FRandom[SpareShells](2.,4.);
|
||||
|
|
@ -113,21 +113,21 @@ extend Class SWWMHandler
|
|||
level.ExecuteSpecial(Door_Open,e.Thing,null,false,10,16);
|
||||
// keep the portal closed, you can't leave unless you
|
||||
// kill everyone else
|
||||
let t = new("KoraxYeeted");
|
||||
let t = new('KoraxYeeted');
|
||||
t.ChangeStatNum(Thinker.STAT_USER);
|
||||
}
|
||||
// Archangelus instakill
|
||||
if ( (e.Thing.GetClassName() == "ArchangelusA") && (e.Thing.DamageType == 'Ynykron') )
|
||||
if ( (e.Thing.GetClassName() == 'ArchangelusA') && (e.Thing.DamageType == 'Ynykron') )
|
||||
{
|
||||
// this will skip the second phase dialogue
|
||||
// (note that you can only have an Ynykron in this fight by cheating, tho)
|
||||
archangelus_zapped = true;
|
||||
}
|
||||
// Archangelus death
|
||||
if ( e.Thing.GetClassName() == "ArchangelusB" )
|
||||
if ( e.Thing.GetClassName() == 'ArchangelusB' )
|
||||
{
|
||||
// kill all other monsters
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
let ti = ThinkerIterator.Create('Actor');
|
||||
Actor a;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
{
|
||||
|
|
@ -136,8 +136,8 @@ extend Class SWWMHandler
|
|||
}
|
||||
}
|
||||
// Origin instakill
|
||||
if ( ((e.Thing.GetClassName() == "The_Origin_Phase_1") || (e.Thing.GetClassName() == "The_Origin_Phase_2")
|
||||
|| (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_1") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_2"))
|
||||
if ( ((e.Thing.GetClassName() == 'The_Origin_Phase_1') || (e.Thing.GetClassName() == 'The_Origin_Phase_2')
|
||||
|| (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_1') || (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_2'))
|
||||
&& (e.Thing.DamageType == 'Ynykron') )
|
||||
{
|
||||
// this will trigger special dialogue on the next phase
|
||||
|
|
@ -145,7 +145,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
if ( swwm_partytime )
|
||||
{
|
||||
let pt = Actor.Spawn("PartyTime",e.Thing.pos);
|
||||
let pt = Actor.Spawn('PartyTime',e.Thing.pos);
|
||||
pt.target = e.Thing;
|
||||
}
|
||||
if ( profiling ) ProfileTock(PT_WORLDTHINGDIED);
|
||||
|
|
@ -180,7 +180,7 @@ extend Class SWWMHandler
|
|||
// tempfix keys have no tags
|
||||
static void KeyTagFix( Actor a )
|
||||
{
|
||||
let hnd = SWWMHandler(Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(Find('SWWMHandler'));
|
||||
if ( hnd ) hnd.DoKeyTagFix(a);
|
||||
}
|
||||
|
||||
|
|
@ -234,7 +234,7 @@ extend Class SWWMHandler
|
|||
IWantDieSpawn(e);
|
||||
if ( (e.Thing is 'TeleportDest') || (e.Thing is 'BossTarget') )
|
||||
{
|
||||
let d = Actor.Spawn("SWWMTeleportDest",e.Thing.pos);
|
||||
let d = Actor.Spawn('SWWMTeleportDest',e.Thing.pos);
|
||||
d.bNOGRAVITY = e.Thing.bNOGRAVITY;
|
||||
}
|
||||
if ( e.Thing is 'Inventory' )
|
||||
|
|
@ -244,10 +244,10 @@ extend Class SWWMHandler
|
|||
{
|
||||
let p = Actor.Spawn(Inventory(e.Thing).PickupFlash,e.Thing.pos);
|
||||
p.target = e.Thing;
|
||||
p.SetStateLabel("Pickup");
|
||||
p.SetStateLabel('Pickup');
|
||||
}
|
||||
// for notification
|
||||
if ( e.Thing.GetClassName() == "LDLegendaryMonsterTransformed" )
|
||||
if ( e.Thing.GetClassName() == 'LDLegendaryMonsterTransformed' )
|
||||
legtrack.Push(Inventory(e.Thing));
|
||||
}
|
||||
if ( swwm_doomfall && e.Thing.bISMONSTER && !e.Thing.bBOSS )
|
||||
|
|
@ -262,132 +262,132 @@ extend Class SWWMHandler
|
|||
if ( e.Thing.GetClass() == 'Pig' )
|
||||
e.Thing.SetTag("$FN_PIG"); // missing in gzdoom
|
||||
// eviternity stuff
|
||||
else if ( (e.Thing.GetClassName() == "Archangelus")
|
||||
|| (e.Thing.GetClassName() == "ArchangelusA")
|
||||
|| (e.Thing.GetClassName() == "ArchangelusB") )
|
||||
else if ( (e.Thing.GetClassName() == 'Archangelus')
|
||||
|| (e.Thing.GetClassName() == 'ArchangelusA')
|
||||
|| (e.Thing.GetClassName() == 'ArchangelusB') )
|
||||
e.Thing.SetTag("$FN_ANGEL");
|
||||
else if ( e.Thing.GetClassName() == "AstralCaco" )
|
||||
else if ( e.Thing.GetClassName() == 'AstralCaco' )
|
||||
e.Thing.SetTag("$FN_ASTRAL");
|
||||
else if ( e.Thing.GetClassName() == "Annihilator" )
|
||||
else if ( e.Thing.GetClassName() == 'Annihilator' )
|
||||
e.Thing.SetTag("$FN_ANNIHIL");
|
||||
else if ( e.Thing.GetClassName() == "FormerCaptain" )
|
||||
else if ( e.Thing.GetClassName() == 'FormerCaptain' )
|
||||
e.Thing.SetTag("$FN_FCAPTAIN");
|
||||
else if ( e.Thing.GetClassName() == "NightmareDemon" )
|
||||
else if ( e.Thing.GetClassName() == 'NightmareDemon' )
|
||||
e.Thing.SetTag("$FN_NDEMON");
|
||||
// eviternity 2 stuff
|
||||
else if ( e.Thing.GetClassName() == "FormerCorporal" )
|
||||
else if ( e.Thing.GetClassName() == 'FormerCorporal' )
|
||||
e.Thing.SetTag("$FN_FCORPORAL");
|
||||
else if ( e.Thing.GetClassName() == "AstralArachnotron" )
|
||||
else if ( e.Thing.GetClassName() == 'AstralArachnotron' )
|
||||
e.Thing.SetTag("$FN_ASTRALARACH");
|
||||
else if ( e.Thing.GetClassName() == "AstralCacodemon" )
|
||||
else if ( e.Thing.GetClassName() == 'AstralCacodemon' )
|
||||
e.Thing.SetTag("$FN_ASTRAL");
|
||||
else if ( e.Thing.GetClassName() == "Veilimp" )
|
||||
else if ( e.Thing.GetClassName() == 'Veilimp' )
|
||||
e.Thing.SetTag("$FN_VEILIMP");
|
||||
else if ( (e.Thing.GetClassName() == "GoldenAstralCaco")
|
||||
|| (e.Thing.GetClassName() == "GoldenAstralCacoBoss") )
|
||||
else if ( (e.Thing.GetClassName() == 'GoldenAstralCaco')
|
||||
|| (e.Thing.GetClassName() == 'GoldenAstralCacoBoss') )
|
||||
e.Thing.SetTag("$FN_ASTRALGOLD");
|
||||
else if ( e.Thing.GetClassName() == "DukeOfHell" )
|
||||
else if ( e.Thing.GetClassName() == 'DukeOfHell' )
|
||||
e.Thing.SetTag("$FN_DUKE");
|
||||
else if ( e.Thing.GetClassName() == "AstralBabycaco" )
|
||||
else if ( e.Thing.GetClassName() == 'AstralBabycaco' )
|
||||
e.Thing.SetTag("$FN_ASTRALBABY");
|
||||
else if ( e.Thing.GetClassName() == "NightmareCacodemon" )
|
||||
else if ( e.Thing.GetClassName() == 'NightmareCacodemon' )
|
||||
e.Thing.SetTag("$FN_NAC");
|
||||
else if ( e.Thing.GetClassName() == "AstralMancubus" )
|
||||
else if ( e.Thing.GetClassName() == 'AstralMancubus' )
|
||||
e.Thing.SetTag("$FN_ASTRALFATSO");
|
||||
else if ( (e.Thing.GetClassName() == "NecromenaceA")
|
||||
|| (e.Thing.GetClassName() == "NecromenaceB")
|
||||
|| (e.Thing.GetClassName() == "NecromenaceC")
|
||||
|| (e.Thing.GetClassName() == "NecromenaceD") )
|
||||
else if ( (e.Thing.GetClassName() == 'NecromenaceA')
|
||||
|| (e.Thing.GetClassName() == 'NecromenaceB')
|
||||
|| (e.Thing.GetClassName() == 'NecromenaceC')
|
||||
|| (e.Thing.GetClassName() == 'NecromenaceD') )
|
||||
e.Thing.SetTag("$FN_NECROMENACE");
|
||||
else if ( (e.Thing.GetClassName() == "The_Origin_Phase_1")
|
||||
|| (e.Thing.GetClassName() == "The_Origin_Phase_2")
|
||||
|| (e.Thing.GetClassName() == "The_Origin_Phase_3")
|
||||
|| (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_1")
|
||||
|| (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_2")
|
||||
|| (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_3") )
|
||||
else if ( (e.Thing.GetClassName() == 'The_Origin_Phase_1')
|
||||
|| (e.Thing.GetClassName() == 'The_Origin_Phase_2')
|
||||
|| (e.Thing.GetClassName() == 'The_Origin_Phase_3')
|
||||
|| (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_1')
|
||||
|| (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_2')
|
||||
|| (e.Thing.GetClassName() == 'The_Absolute_Origin_Phase_3') )
|
||||
e.Thing.SetTag("$FN_ORIGIN");
|
||||
else if ( e.Thing.GetClassName() == "SpectralAstralCacodemon" )
|
||||
else if ( e.Thing.GetClassName() == 'SpectralAstralCacodemon' )
|
||||
e.Thing.SetTag("$FN_SAC");
|
||||
else if ( e.Thing.GetClassName() == "GrandDukeofHell" )
|
||||
else if ( e.Thing.GetClassName() == 'GrandDukeofHell' )
|
||||
e.Thing.SetTag("$FN_GDUKE");
|
||||
// doom vacation stuff
|
||||
else if ( indoomvacation )
|
||||
{
|
||||
if ( e.Thing.GetClassName() == "Babe" )
|
||||
if ( e.Thing.GetClassName() == 'Babe' )
|
||||
{
|
||||
e.Thing.bSHOOTABLE = false; // no hurt
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = .2;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "CommanderKeen" )
|
||||
else if ( e.Thing.GetClassName() == 'CommanderKeen' )
|
||||
{
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = .4;
|
||||
HeadpatTracker(hp).angfix = 5;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "BBChair" )
|
||||
else if ( e.Thing.GetClassName() == 'BBChair' )
|
||||
{
|
||||
e.Thing.bUSESPECIAL = false;
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = .2;
|
||||
HeadpatTracker(hp).angfix = 15;
|
||||
HeadpatTracker(hp).patstate = e.Thing.MeleeState;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "EvilEye" )
|
||||
else if ( e.Thing.GetClassName() == 'EvilEye' )
|
||||
{
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = .1;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "HeadCandles" )
|
||||
else if ( e.Thing.GetClassName() == 'HeadCandles' )
|
||||
{
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).angfix = 20;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "HeartColumn" )
|
||||
else if ( e.Thing.GetClassName() == 'HeartColumn' )
|
||||
{
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = -.3;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "Meat2" )
|
||||
else if ( e.Thing.GetClassName() == 'Meat2' )
|
||||
{
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = .6;
|
||||
HeadpatTracker(hp).angfix = -15;
|
||||
HeadpatTracker(hp).dvacationarghack = true;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "Meat3" )
|
||||
else if ( e.Thing.GetClassName() == 'Meat3' )
|
||||
{
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = .6;
|
||||
HeadpatTracker(hp).angfix = 20;
|
||||
HeadpatTracker(hp).dvacationarghack = true;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "LegsBabe" )
|
||||
else if ( e.Thing.GetClassName() == 'LegsBabe' )
|
||||
{
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = -1.5;
|
||||
HeadpatTracker(hp).angfix = 20;
|
||||
HeadpatTracker(hp).dvacationarghack = true;
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "Meat4" )
|
||||
else if ( e.Thing.GetClassName() == 'Meat4' )
|
||||
{
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
HeadpatTracker(hp).heightfix = .6;
|
||||
HeadpatTracker(hp).angfix = 15;
|
||||
HeadpatTracker(hp).dvacationarghack = true;
|
||||
}
|
||||
}
|
||||
else if ( inultdoom2 && (e.Thing.GetClassName() == "WolfensteinSS") )
|
||||
else if ( inultdoom2 && (e.Thing.GetClassName() == 'WolfensteinSS') )
|
||||
{
|
||||
e.Thing.SetTag("$FN_ELITEZOMBIE");
|
||||
//e.Thing.Obituary = "$OB_ELITEZOMBIE";
|
||||
|
|
@ -397,7 +397,7 @@ extend Class SWWMHandler
|
|||
e.Thing.DeathSound = "grunt/death";
|
||||
e.Thing.ActiveSound = "grunt/active";
|
||||
}
|
||||
else if ( ccloaded && (e.Thing.GetClassName() == "CCards_Token_Glitched") )
|
||||
else if ( ccloaded && (e.Thing.GetClassName() == 'CCards_Token_Glitched') )
|
||||
{
|
||||
if ( !gdat.cclilithonce ) SendInterfaceEvent(consoleplayer,"swwmsetdialogue.LILITH");
|
||||
gdat.cclilithonce = true;
|
||||
|
|
@ -406,29 +406,29 @@ extend Class SWWMHandler
|
|||
|| SWWMUtility.IdentifyingDrug(e.Thing) || SWWMUtility.IdentifyingDoubleBoi(e.Thing) )
|
||||
{
|
||||
// you can pet the dog, and you can also pet the caco (and friends)
|
||||
let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos);
|
||||
let hp = Actor.Spawn('HeadpatTracker',e.Thing.pos);
|
||||
hp.target = e.Thing;
|
||||
}
|
||||
// vanilla blood color changes
|
||||
if ( (e.Thing.GetClass() == "BaronOfHell") || (e.Thing.GetClass() == "HellKnight") || (e.Thing.GetClass() == "Bishop") || (e.Thing.GetClass() == "Korax") )
|
||||
if ( (e.Thing.GetClassName() == 'BaronOfHell') || (e.Thing.GetClassName() == 'HellKnight') || (e.Thing.GetClassName() == 'Bishop') || (e.Thing.GetClassName() == 'Korax') )
|
||||
{
|
||||
let gb = Actor.Spawn("GreenBloodReference");
|
||||
let gb = Actor.Spawn('GreenBloodReference');
|
||||
e.Thing.CopyBloodColor(gb);
|
||||
gb.Destroy();
|
||||
}
|
||||
else if ( e.Thing.GetClass() == "Cacodemon" )
|
||||
else if ( e.Thing.GetClassName() == 'Cacodemon' )
|
||||
{
|
||||
let bb = Actor.Spawn("BlueBloodReference");
|
||||
let bb = Actor.Spawn('BlueBloodReference');
|
||||
e.Thing.CopyBloodColor(bb);
|
||||
bb.Destroy();
|
||||
}
|
||||
else if ( (e.Thing.GetClass() == "Wizard") || (e.Thing.GetClass() == "Heresiarch") || (e.Thing.GetClass() == "Sorcerer2") )
|
||||
else if ( (e.Thing.GetClassName() == 'Wizard') || (e.Thing.GetClassName() == 'Heresiarch') || (e.Thing.GetClassName() == 'Sorcerer2') )
|
||||
{
|
||||
let pb = Actor.Spawn("PurpleBloodReference");
|
||||
let pb = Actor.Spawn('PurpleBloodReference');
|
||||
e.Thing.CopyBloodColor(pb);
|
||||
pb.Destroy();
|
||||
}
|
||||
else if ( e.Thing.GetClass() == "LostSoul" )
|
||||
else if ( e.Thing.GetClassName() == 'LostSoul' )
|
||||
e.Thing.bNOBLOOD = true;
|
||||
VanillaBossSpawn(e);
|
||||
if ( profiling ) ProfileTock(PT_WORLDTHINGSPAWNED);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ extend Class SWWMHandler
|
|||
if ( (language != curlang) || (swwm_funtags != curfuntags) )
|
||||
{
|
||||
// manually refresh some tags if language has changed
|
||||
if ( !qti ) qti = ThinkerIterator.Create("SWWMQuickCombatTracker",Thinker.STAT_INVENTORY);
|
||||
if ( !qti ) qti = ThinkerIterator.Create('SWWMQuickCombatTracker',Thinker.STAT_INVENTORY);
|
||||
else qti.Reinit();
|
||||
SWWMQuickCombatTracker qt;
|
||||
while ( qt=SWWMQuickCombatTracker(qti.Next()) )
|
||||
|
|
@ -126,12 +126,12 @@ extend Class SWWMHandler
|
|||
combatactors.Push(a);
|
||||
combattics.Push(gametic);
|
||||
enteredcombat = true;
|
||||
if ( a.bBOSS || a.FindInventory("BossMarker") )
|
||||
if ( a.bBOSS || a.FindInventory('BossMarker') )
|
||||
bossfound = true;
|
||||
}
|
||||
}
|
||||
// be smart, demo-chan, don't shout if you're invisible, or you'll make it worse
|
||||
if ( enteredcombat && ((bossfound && (!lastcombat || (gametic > lastcombat+240))) || (!bossfound && (!highesttic || (gametic > highesttic+700)))) && !players[consoleplayer].mo.FindInventory("GhostPower") )
|
||||
if ( enteredcombat && ((bossfound && (!lastcombat || (gametic > lastcombat+240))) || (!bossfound && (!highesttic || (gametic > highesttic+700)))) && !players[consoleplayer].mo.FindInventory('GhostPower') )
|
||||
lastcombat = AddOneliner("fightstart",1,10);
|
||||
}
|
||||
|
||||
|
|
@ -203,7 +203,7 @@ extend Class SWWMHandler
|
|||
for ( int i=0; i<MAXPLAYERS; i++ )
|
||||
{
|
||||
if ( !playeringame[i] || !players[i].mo ) continue;
|
||||
let f = Actor.Spawn("PartyTime",players[i].mo.pos);
|
||||
let f = Actor.Spawn('PartyTime',players[i].mo.pos);
|
||||
if ( altclear ) f.bSTANDSTILL = true;
|
||||
else f.bAMBUSH = true;
|
||||
if ( mapclearagain )
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
int checktic;
|
||||
int maptime;
|
||||
bool unloading;
|
||||
ui Dictionary menustate; // used by Demolitionist Menu to restore old menu positions
|
||||
ui Map<String, String> menustate; // used by Demolitionist Menu to restore old menu positions
|
||||
// title stuff
|
||||
ui bool titlefirst;
|
||||
// map title stuff
|
||||
|
|
@ -39,7 +39,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
override void NewGame()
|
||||
{
|
||||
// set save version every new session
|
||||
let svd = new("SWWMSaveVerData");
|
||||
let svd = new('SWWMSaveVerData');
|
||||
svd.ChangeStatNum(Thinker.STAT_STATIC);
|
||||
svd.ver = StringTable.Localize("$SWWM_SHORTVER");
|
||||
uid = 0;
|
||||
|
|
@ -68,7 +68,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
}
|
||||
// sanity check
|
||||
Array<Thinker> stinkers;
|
||||
if ( !sti ) sti = ThinkerIterator.Create("SWWMStaticThinker");
|
||||
if ( !sti ) sti = ThinkerIterator.Create('SWWMStaticThinker');
|
||||
else sti.Reinit();
|
||||
foreach ( t:sti ) stinkers.Push(t);
|
||||
if ( stinkers.Size() > 0 )
|
||||
|
|
@ -101,7 +101,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
tainted = false;
|
||||
taintver = "";
|
||||
checktic = gametic+5;
|
||||
let ti = ThinkerIterator.Create("SWWMSaveVerData",Thinker.STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMSaveVerData',Thinker.STAT_STATIC);
|
||||
let svd = SWWMSaveVerData(ti.Next());
|
||||
if ( !svd )
|
||||
{
|
||||
|
|
@ -256,7 +256,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
if ( aprilfools && (gamestate == GS_LEVEL) )
|
||||
{
|
||||
String str = "Unregistered Ultracam";
|
||||
if ( !aprfnt ) aprfnt = Font.GetFont("TewiFontOutline");
|
||||
if ( !aprfnt ) aprfnt = Font.GetFont('TewiFontOutline');
|
||||
Screen.DrawText(aprfnt,Font.CR_WHITE,(Screen.GetWidth()-aprfnt.StringWidth(str)*CleanXFac_1)/2,2*CleanYFac_1,str,DTA_CleanNoMove_1,true);
|
||||
}
|
||||
}
|
||||
|
|
@ -267,7 +267,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
if ( e.Name ~== "swwmmaptitle" )
|
||||
{
|
||||
if ( (gamestate != GS_LEVEL) || !swwm_showmaptitle ) return;
|
||||
StatusBar.AttachMessage(new("DSMapTitle").Init(),-7777);
|
||||
StatusBar.AttachMessage(new('DSMapTitle').Init(),-7777);
|
||||
}
|
||||
else if ( e.Name ~== "swwmflushhud" )
|
||||
{
|
||||
|
|
@ -367,7 +367,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
}
|
||||
else if ( e.Name ~== "swwmgetversion" )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMSaveVerData",Thinker.STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMSaveVerData',Thinker.STAT_STATIC);
|
||||
let svd = SWWMSaveVerData(ti.Next());
|
||||
if ( svd ) Console.PrintfEx(PRINT_HIGH|PRINT_NONOTIFY,"\cj%s\c-",svd.ver);
|
||||
else Console.PrintfEx(PRINT_HIGH|PRINT_NONOTIFY,"\cg(no version data)\c-");
|
||||
|
|
@ -398,7 +398,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
stink.Resize(sdefs.Size());
|
||||
for ( int i=Thinker.STAT_INFO; i<Thinker.MAX_STATNUM; i++ )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("Thinker",i);
|
||||
let ti = ThinkerIterator.Create('Thinker',i);
|
||||
foreach ( t:ti )
|
||||
{
|
||||
if ( t is 'Actor' ) continue;
|
||||
|
|
@ -675,7 +675,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
if ( e.IsManual ) return;
|
||||
if ( e.Name.Left(16) ~== "swwmachievement." )
|
||||
{
|
||||
let c = Actor.Spawn("PartyTime",players[e.Args[0]].mo.pos);
|
||||
let c = Actor.Spawn('PartyTime',players[e.Args[0]].mo.pos);
|
||||
c.bSTANDSTILL = true;
|
||||
if ( e.Args[0] == consoleplayer )
|
||||
{
|
||||
|
|
@ -691,7 +691,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
}
|
||||
else if ( e.Name ~== "swwmsessionid" )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMSaveVerData",Thinker.STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMSaveVerData',Thinker.STAT_STATIC);
|
||||
let svd = SWWMSaveVerData(ti.Next());
|
||||
if ( !uid ) uid = e.Args[0];
|
||||
if ( svd && !svd.uid ) svd.uid = e.Args[0];
|
||||
|
|
@ -714,7 +714,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
String cver = StringTable.Localize("$SWWM_SHORTVER");
|
||||
if ( tainted )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMSaveVerData",Thinker.STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMSaveVerData',Thinker.STAT_STATIC);
|
||||
let svd = SWWMSaveVerData(ti.Next());
|
||||
if ( !svd ) Console.Printf("\cgWARNING:\n \cjSave contains no version data. Issues may happen.\c-");
|
||||
else
|
||||
|
|
@ -742,7 +742,7 @@ Class SWWMStaticHandler : StaticEventHandler
|
|||
msgpick = Random[UIStuff](1,8);
|
||||
String str = StringTable.Localize("$CRASHMSG"..msgpick.."A");
|
||||
Console.PrintfEx(PRINT_HIGH|PRINT_NONOTIFY,"\cf%s\c-",str);
|
||||
let hnd = SWWMBrutalHandler(StaticEventHandler.Find("SWWMBrutalHandler"));
|
||||
let hnd = SWWMBrutalHandler(StaticEventHandler.Find('SWWMBrutalHandler'));
|
||||
if ( hnd && hnd.detected )
|
||||
{
|
||||
S_StartSound("crash/glass",CHAN_YABLEWIT,CHANF_UI|CHANF_NOPAUSE|CHANF_OVERLAP,1,ATTN_NONE);
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ extend Class SWWMStaticHandler
|
|||
{
|
||||
achievementstate.Insert(a.basename,"2");
|
||||
EventHandler.SendNetworkEvent("swwmachievement."..a.basename,consoleplayer);
|
||||
let notif = new("SWWMAchievementNotification").Init(a.basename,a.icon,a.hasformat?a.maxval:0);
|
||||
let notif = new('SWWMAchievementNotification').Init(a.basename,a.icon,a.hasformat?a.maxval:0);
|
||||
StatusBar.AttachMessage(notif,-3478);
|
||||
lastachievementnotify = gametic+200;
|
||||
}
|
||||
|
|
@ -97,7 +97,7 @@ extend Class SWWMStaticHandler
|
|||
{
|
||||
achievementstate.Insert("everything","2");
|
||||
EventHandler.SendNetworkEvent("swwmachievement."..achievementinfo[ev].basename,consoleplayer);
|
||||
let notif = new("SWWMAchievementNotification").Init(achievementinfo[ev].basename,achievementinfo[ev].icon);
|
||||
let notif = new('SWWMAchievementNotification').Init(achievementinfo[ev].basename,achievementinfo[ev].icon);
|
||||
StatusBar.AttachMessage(notif,-3478);
|
||||
lastachievementnotify = gametic+200;
|
||||
}
|
||||
|
|
@ -131,7 +131,7 @@ extend Class SWWMStaticHandler
|
|||
else if ( !(gameinfo.gametype&GAME_HEXEN) && (ln[3] ~== "hexen") ) continue;
|
||||
else if ( !(gameinfo.gametype&GAME_RAVEN) && (ln[3] ~== "raven") ) continue;
|
||||
else if ( !(gameinfo.gametype&(GAME_DOOM|GAME_HERETIC)) && (ln[3] ~== "nothexen") ) continue;
|
||||
let ac = new("SWWMAchievementInfo");
|
||||
let ac = new('SWWMAchievementInfo');
|
||||
ac.baseindex = bidx;
|
||||
ac.basename = ln[0];
|
||||
ac.icon = TexMan.CheckForTexture("graphics/Achievements/Achievement"..ac.basename..".png");
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
pausetime = gametic;
|
||||
SWWMUtility.PrepareProjData(projdata,ViewPos,ViewRot.x,ViewRot.y,ViewRot.z,players[consoleplayer].fov);
|
||||
// interpolators first
|
||||
|
|
@ -326,53 +326,53 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
mTinyFont = Font.GetFont('MiniwiFont');
|
||||
mTinyFontOutline = Font.GetFont('MiniwiFontOutline');
|
||||
mTinyFontOutlineAlt = Font.GetFont('MiniwiFontOutlineAlt');
|
||||
MiniHudFont = Font.GetFont("MiniHUDShadow");
|
||||
MiniHudFontOutline = Font.GetFont("MiniHUDOutline");
|
||||
mhudfontcol[MCR_DEMOHUD] = Font.FindFontColor("MiniDemoHUD");
|
||||
mhudfontcol[MCR_IBUKIHUD] = Font.FindFontColor("MiniIbukiHUD");
|
||||
mhudfontcol[MCR_SAYAHUD] = Font.FindFontColor("MiniSayaHUD");
|
||||
mhudfontcol[MCR_KIRINHUD] = Font.FindFontColor("MiniKirinHUD");
|
||||
mhudfontcol[MCR_MARISAHUD] = Font.FindFontColor("MiniMarisaHUD");
|
||||
mhudfontcol[MCR_VOIDHUD] = Font.FindFontColor("MiniVoidHUD");
|
||||
mhudfontcol[MCR_WHITE] = Font.FindFontColor("MiniWhite");
|
||||
mhudfontcol[MCR_RED] = Font.FindFontColor("MiniRed");
|
||||
mhudfontcol[MCR_GREEN] = Font.FindFontColor("MiniGreen");
|
||||
mhudfontcol[MCR_BLUE] = Font.FindFontColor("MiniBlue");
|
||||
mhudfontcol[MCR_YELLOW] = Font.FindFontColor("MiniYellow");
|
||||
mhudfontcol[MCR_CYAN] = Font.FindFontColor("MiniCyan");
|
||||
mhudfontcol[MCR_PURPLE] = Font.FindFontColor("MiniPurple");
|
||||
mhudfontcol[MCR_BRASS] = Font.FindFontColor("MiniBrass");
|
||||
mhudfontcol[MCR_SILVER] = Font.FindFontColor("MiniSilver");
|
||||
mhudfontcol[MCR_GOLD] = Font.FindFontColor("MiniGold");
|
||||
mhudfontcol[MCR_MANA] = Font.FindFontColor("MiniMana");
|
||||
mhudfontcol[MCR_CRIMSON] = Font.FindFontColor("MiniCrimson");
|
||||
mhudfontcol[MCR_ELDRITCH] = Font.FindFontColor("MiniEldritch");
|
||||
mhudfontcol[MCR_KINYLUM] = Font.FindFontColor("MiniKinylum");
|
||||
mhudfontcol[MCR_SYDON] = Font.FindFontColor("MiniSydon");
|
||||
mhudfontcol[MCR_NOKOROKINYLUM] = Font.FindFontColor("MiniNokorokinylum");
|
||||
mhudfontcol[MCR_DEMOBLUE] = Font.FindFontColor("MiniDemoBlue");
|
||||
mhudfontcol[MCR_DEMOPINK] = Font.FindFontColor("MiniDemoPink");
|
||||
mhudfontcol[MCR_ORANGE] = Font.FindFontColor("MiniOrange");
|
||||
mhudfontcol[MCR_GRASS] = Font.FindFontColor("MiniGrass");
|
||||
mhudfontcol[MCR_MINT] = Font.FindFontColor("MiniMint");
|
||||
mhudfontcol[MCR_AQUA] = Font.FindFontColor("MiniAqua");
|
||||
mhudfontcol[MCR_MAGENTA] = Font.FindFontColor("MiniMagenta");
|
||||
mhudfontcol[MCR_PINK] = Font.FindFontColor("MiniPink");
|
||||
mhudfontcol[MCR_SKIN] = Font.FindFontColor("MiniSkin");
|
||||
mhudfontcol[MCR_FIRE] = Font.FindFontColor("MiniFire");
|
||||
mhudfontcol[MCR_SULFUR] = Font.FindFontColor("MiniSulfur");
|
||||
mhudfontcol[MCR_WITCH] = Font.FindFontColor("MiniWitch");
|
||||
mhudfontcol[MCR_CYANBLU] = Font.FindFontColor("MiniCyanblu");
|
||||
mhudfontcol[MCR_ICE] = Font.FindFontColor("MiniIce");
|
||||
mhudfontcol[MCR_PURPUR] = Font.FindFontColor("MiniPurpur");
|
||||
mhudfontcol[MCR_TOMATO] = Font.FindFontColor("MiniTomato");
|
||||
mhudfontcol[MCR_BLURP] = Font.FindFontColor("MiniBlurp");
|
||||
mhudfontcol[MCR_PURB] = Font.FindFontColor("MiniPurb");
|
||||
mhudfontcol[MCR_NOKRON] = Font.FindFontColor("MiniNokron");
|
||||
mhudfontcol[MCR_KABBADON] = Font.FindFontColor("MiniKabbadon");
|
||||
mhudfontcol[MCR_FLASH] = Font.FindFontColor("MiniFlash");
|
||||
mhudfontcol[MCR_REDFLASH] = Font.FindFontColor("MiniRedFlash");
|
||||
mhudfontcol[MCR_WHITEFLASH] = Font.FindFontColor("MiniWhiteFlash");
|
||||
MiniHudFont = Font.GetFont('MiniHUDShadow');
|
||||
MiniHudFontOutline = Font.GetFont('MiniHUDOutline');
|
||||
mhudfontcol[MCR_DEMOHUD] = Font.FindFontColor('MiniDemoHUD');
|
||||
mhudfontcol[MCR_IBUKIHUD] = Font.FindFontColor('MiniIbukiHUD');
|
||||
mhudfontcol[MCR_SAYAHUD] = Font.FindFontColor('MiniSayaHUD');
|
||||
mhudfontcol[MCR_KIRINHUD] = Font.FindFontColor('MiniKirinHUD');
|
||||
mhudfontcol[MCR_MARISAHUD] = Font.FindFontColor('MiniMarisaHUD');
|
||||
mhudfontcol[MCR_VOIDHUD] = Font.FindFontColor('MiniVoidHUD');
|
||||
mhudfontcol[MCR_WHITE] = Font.FindFontColor('MiniWhite');
|
||||
mhudfontcol[MCR_RED] = Font.FindFontColor('MiniRed');
|
||||
mhudfontcol[MCR_GREEN] = Font.FindFontColor('MiniGreen');
|
||||
mhudfontcol[MCR_BLUE] = Font.FindFontColor('MiniBlue');
|
||||
mhudfontcol[MCR_YELLOW] = Font.FindFontColor('MiniYellow');
|
||||
mhudfontcol[MCR_CYAN] = Font.FindFontColor('MiniCyan');
|
||||
mhudfontcol[MCR_PURPLE] = Font.FindFontColor('MiniPurple');
|
||||
mhudfontcol[MCR_BRASS] = Font.FindFontColor('MiniBrass');
|
||||
mhudfontcol[MCR_SILVER] = Font.FindFontColor('MiniSilver');
|
||||
mhudfontcol[MCR_GOLD] = Font.FindFontColor('MiniGold');
|
||||
mhudfontcol[MCR_MANA] = Font.FindFontColor('MiniMana');
|
||||
mhudfontcol[MCR_CRIMSON] = Font.FindFontColor('MiniCrimson');
|
||||
mhudfontcol[MCR_ELDRITCH] = Font.FindFontColor('MiniEldritch');
|
||||
mhudfontcol[MCR_KINYLUM] = Font.FindFontColor('MiniKinylum');
|
||||
mhudfontcol[MCR_SYDON] = Font.FindFontColor('MiniSydon');
|
||||
mhudfontcol[MCR_NOKOROKINYLUM] = Font.FindFontColor('MiniNokorokinylum');
|
||||
mhudfontcol[MCR_DEMOBLUE] = Font.FindFontColor('MiniDemoBlue');
|
||||
mhudfontcol[MCR_DEMOPINK] = Font.FindFontColor('MiniDemoPink');
|
||||
mhudfontcol[MCR_ORANGE] = Font.FindFontColor('MiniOrange');
|
||||
mhudfontcol[MCR_GRASS] = Font.FindFontColor('MiniGrass');
|
||||
mhudfontcol[MCR_MINT] = Font.FindFontColor('MiniMint');
|
||||
mhudfontcol[MCR_AQUA] = Font.FindFontColor('MiniAqua');
|
||||
mhudfontcol[MCR_MAGENTA] = Font.FindFontColor('MiniMagenta');
|
||||
mhudfontcol[MCR_PINK] = Font.FindFontColor('MiniPink');
|
||||
mhudfontcol[MCR_SKIN] = Font.FindFontColor('MiniSkin');
|
||||
mhudfontcol[MCR_FIRE] = Font.FindFontColor('MiniFire');
|
||||
mhudfontcol[MCR_SULFUR] = Font.FindFontColor('MiniSulfur');
|
||||
mhudfontcol[MCR_WITCH] = Font.FindFontColor('MiniWitch');
|
||||
mhudfontcol[MCR_CYANBLU] = Font.FindFontColor('MiniCyanblu');
|
||||
mhudfontcol[MCR_ICE] = Font.FindFontColor('MiniIce');
|
||||
mhudfontcol[MCR_PURPUR] = Font.FindFontColor('MiniPurpur');
|
||||
mhudfontcol[MCR_TOMATO] = Font.FindFontColor('MiniTomato');
|
||||
mhudfontcol[MCR_BLURP] = Font.FindFontColor('MiniBlurp');
|
||||
mhudfontcol[MCR_PURB] = Font.FindFontColor('MiniPurb');
|
||||
mhudfontcol[MCR_NOKRON] = Font.FindFontColor('MiniNokron');
|
||||
mhudfontcol[MCR_KABBADON] = Font.FindFontColor('MiniKabbadon');
|
||||
mhudfontcol[MCR_FLASH] = Font.FindFontColor('MiniFlash');
|
||||
mhudfontcol[MCR_REDFLASH] = Font.FindFontColor('MiniRedFlash');
|
||||
mhudfontcol[MCR_WHITEFLASH] = Font.FindFontColor('MiniWhiteFlash');
|
||||
GetMinimapColors();
|
||||
tclabel = mhudfontcol[MCR_CYANBLU];
|
||||
tcvalue = mhudfontcol[MCR_WHITE];
|
||||
|
|
@ -433,7 +433,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
AmmoOldMaxAmounts[i] = int.min;
|
||||
}
|
||||
ScoreInter = DynamicValueInterpolator.Create(0,.1,1,999999999);
|
||||
hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
PrevFrame = MSTimeF();
|
||||
}
|
||||
|
||||
|
|
@ -450,7 +450,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
chatopen = gametic+1; // have to add 1 because DrawChat is called after everything else
|
||||
double xx = 2;
|
||||
double yy = ss0.y-14;
|
||||
Screen.Dim("Black",.8,0,Screen.GetHeight()-int(15*hs0),Screen.GetWidth(),int(15*hs0));
|
||||
Screen.Dim(0xFF000000,.8,0,Screen.GetHeight()-int(15*hs0),Screen.GetWidth(),int(15*hs0));
|
||||
String pname = players[consoleplayer].GetUserName();
|
||||
// strip colors
|
||||
SWWMUtility.StripColor(pname);
|
||||
|
|
@ -483,9 +483,9 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
Vector2 tsize = TexMan.GetScaledSize(bgtex);
|
||||
double zoom = max(ceil(Screen.GetWidth()/tsize.x),ceil(Screen.GetHeight()/tsize.y));
|
||||
Vector2 vsize = (Screen.GetWidth(),Screen.GetHeight())/zoom;
|
||||
Screen.DrawTexture(bgtex,false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(192,0,0,0),DTA_Alpha,.5);
|
||||
Screen.DrawTexture(bgtex,false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_ColorOverlay,0xA0000000,DTA_Alpha,.5);
|
||||
}
|
||||
else Screen.Dim("Black",.5,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
else Screen.Dim(0xFF000000,.5,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
String str = StringTable.Localize("$SWWM_PAUSE");
|
||||
if ( gametic < pausetime+1000 )
|
||||
{
|
||||
|
|
@ -553,10 +553,10 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
if ( goner || (deadtimer > 0) )
|
||||
{
|
||||
double dimalph = goner?1.:min(deadtimer/80.,.8);
|
||||
Screen.Dim("Black",dimalph,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Screen.Dim(0xFF000000,dimalph,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( demo && (demo.revivefail > level.maptime) )
|
||||
{
|
||||
Screen.Dim("Red",clamp((demo.revivefail-(level.maptime+fractic))/60.,0.,.2),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Screen.Dim(0xFFFF0000,clamp((demo.revivefail-(level.maptime+fractic))/60.,0.,.2),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
str = StringTable.Localize("$SWWM_REFAIL");
|
||||
len = mSmallFont.StringWidth(str);
|
||||
xx = int((ss0.x-len)/2.);
|
||||
|
|
@ -630,7 +630,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
}
|
||||
Super.Draw(state,TicFrac);
|
||||
FrameTime = (CurFrame-PrevFrame)/1000.;
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
hsA = max(min(floor(Screen.GetWidth()/640.),floor(Screen.GetHeight()/360.)),1.);
|
||||
hsT = max(min(floor(Screen.GetWidth()/480.),floor(Screen.GetHeight()/270.)),1.);
|
||||
ymargin = clamp(swwm_hudmargin,0,10);
|
||||
|
|
|
|||
|
|
@ -244,7 +244,7 @@ extend Class SWWMStatusBar
|
|||
if ( (rprintlevel < PRINT_LOW) || (rprintlevel > PRINT_TEAMCHAT) ) rprintlevel = PRINT_HIGH;
|
||||
// strip trailing newline (all Printf type messages have this)
|
||||
outline.DeleteLastCharacter();
|
||||
let m = new("MsgLine");
|
||||
let m = new('MsgLine');
|
||||
m.str = outline;
|
||||
m.type = rprintlevel;
|
||||
m.tic = level.totaltime;
|
||||
|
|
@ -322,7 +322,7 @@ extend Class SWWMStatusBar
|
|||
yy = ss0.y-(ymargin0+50);
|
||||
int len = mSmallFont.StringWidth(ntagstr);
|
||||
double xx = (ss0.x-len)/2.;
|
||||
Screen.Dim("Black",.8*nalph,int((xx-6)*hs0),int(yy*hs0),int((len+12)*hs0),int((h+4)*hs0));
|
||||
Screen.Dim(0xFF000000,.8*nalph,int((xx-6)*hs0),int(yy*hs0),int((len+12)*hs0),int((h+4)*hs0));
|
||||
Screen.DrawText(mSmallFont,ntagcol,int(xx),yy+2,ntagstr,DTA_VirtualWidthF,ss0.x,DTA_VirtualHeightF,ss0.y,DTA_KeepRatio,true,DTA_Alpha,nalph);
|
||||
}
|
||||
if ( PickupQueue.Size() <= 0 ) return;
|
||||
|
|
@ -344,7 +344,7 @@ extend Class SWWMStatusBar
|
|||
if ( len > maxlen ) maxlen = len;
|
||||
}
|
||||
double xx = (ss0.x-maxlen)/2.;
|
||||
Screen.Dim("Black",.8*alph,int((xx-6)*hs0),int((yy-h*(l.Count()-1))*hs0),int((maxlen+12)*hs0),int((h*l.Count()+4)*hs0));
|
||||
Screen.Dim(0xFF000000,.8*alph,int((xx-6)*hs0),int((yy-h*(l.Count()-1))*hs0),int((maxlen+12)*hs0),int((h*l.Count()+4)*hs0));
|
||||
for ( int j=l.Count()-1; j>=0; j-- )
|
||||
{
|
||||
int len = mSmallFont.StringWidth(l.StringAt(j));
|
||||
|
|
@ -378,7 +378,7 @@ extend Class SWWMStatusBar
|
|||
xx = int((ss0.x*ssp-maxlen)/2.);
|
||||
yy = int(ss0.y*ssp*.375);
|
||||
yy -= (h*midl.Count()+4)/2; // center
|
||||
Screen.Dim("Black",.8*alph,int((xx-6)*hs0*hsp),int(yy*hs0*hsp),int((maxlen+12)*hs0*hsp),int((h*midl.Count()+4)*hs0*hsp));
|
||||
Screen.Dim(0xFF000000,.8*alph,int((xx-6)*hs0*hsp),int(yy*hs0*hsp),int((maxlen+12)*hs0*hsp),int((h*midl.Count()+4)*hs0*hsp));
|
||||
for ( int i=0; i<midl.Count(); i++ )
|
||||
{
|
||||
int len = mSmallFont.StringWidth(midl.StringAt(i));
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ extend Class SWWMStatusBar
|
|||
let facetimer = demo.facetimer;
|
||||
let blinktime = demo.blinktime;
|
||||
if ( CPlayer.Health <= 0 ) return 11;
|
||||
if ( (isInvulnerable() || demo.FindInventory("InvinciballPower")) && (facestate >= FS_PAIN) ) return 12;
|
||||
if ( (isInvulnerable() || demo.FindInventory('InvinciballPower')) && (facestate >= FS_PAIN) ) return 12;
|
||||
if ( facestate == FS_OUCH ) return 10;
|
||||
if ( facestate == FS_PAIN ) return (paindir==1)?8:(paindir==-1)?9:7;
|
||||
if ( facestate == FS_GRIN ) return 5;
|
||||
|
|
@ -111,18 +111,18 @@ extend Class SWWMStatusBar
|
|||
double paintime = clamp((demo.lastdamagetimer-(gametic+Fractic))/double(GameTicRate),0.,1.);
|
||||
double noiz = min(demo.lastdamage*.5*paintime,3.);
|
||||
Vector2 shake = (RandomShiver(),RandomShiver())*noiz;
|
||||
if ( !CPlayer.mo.FindInventory("GhostPower") )
|
||||
if ( !CPlayer.mo.FindInventory('GhostPower') )
|
||||
{
|
||||
int facecol = CVar.GetCVar('swwm_tagcolor',CPlayer).GetInt();
|
||||
if ( (facecol < 0) || (facecol > 15) ) facecol = 0;
|
||||
Screen.DrawTexture(FaceTex[0],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_SrcWidth,32,DTA_SrcHeight,32,DTA_DestWidth,32,DTA_DestHeight,32,DTA_SrcX,32*(facecol%4),DTA_SrcY,32*(facecol/4));
|
||||
bool raging = CPlayer.mo.FindInventory("RagekitPower");
|
||||
bool angy = CPlayer.mo.FindInventory("AngeryPower");
|
||||
bool raging = CPlayer.mo.FindInventory('RagekitPower');
|
||||
bool angy = CPlayer.mo.FindInventory('AngeryPower');
|
||||
if ( raging && angy ) Screen.DrawTexture(FaceTex[16],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
else if ( raging ) Screen.DrawTexture(FaceTex[15],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
else if ( angy ) Screen.DrawTexture(FaceTex[13],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
Screen.DrawTexture(FaceTex[1],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Color,Color(255,255,0,0),DTA_Alpha,min(1.,noiz));
|
||||
if ( (CPlayer.Health > 0) && (isInvulnerable() || CPlayer.mo.FindInventory("InvinciballPower")) )
|
||||
if ( (CPlayer.Health > 0) && (isInvulnerable() || CPlayer.mo.FindInventory('InvinciballPower')) )
|
||||
Screen.DrawTexture(FaceTex[1],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,.8+.1*sin(gametic+fractic));
|
||||
}
|
||||
else
|
||||
|
|
@ -131,7 +131,7 @@ extend Class SWWMStatusBar
|
|||
Screen.DrawTexture(FaceTex[1],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_FillColor,Color(255,0,0),DTA_Alpha,.25*min(1.,noiz));
|
||||
}
|
||||
Screen.DrawTexture(FaceTex[GetFaceTex(demo)],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
if ( CPlayer.mo.FindInventory("BarrierPower") ) Screen.DrawTexture(FaceTex[14],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,.5,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
if ( CPlayer.mo.FindInventory('BarrierPower') ) Screen.DrawTexture(FaceTex[14],false,xmargin+shake.x,ss.y-(ymargin+32)+shake.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,.5,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
}
|
||||
|
||||
private void DrawStatus()
|
||||
|
|
@ -149,7 +149,7 @@ extend Class SWWMStatusBar
|
|||
if ( round(ht) > 500 ) hcolor = MCR_GOLD;
|
||||
else if ( round(ht) > 200 ) hcolor = MCR_PURPLE;
|
||||
else if ( round(ht) > 100 ) hcolor = MCR_AQUA;
|
||||
if ( isInvulnerable() || CPlayer.mo.FindInventory("InvinciballPower") )
|
||||
if ( isInvulnerable() || CPlayer.mo.FindInventory('InvinciballPower') )
|
||||
{
|
||||
Screen.DrawTexture(HealthTex[0],false,xmargin+3+ox,ss.y-(ymargin+19+oy),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw,DTA_ColorOverlay,Color(255,0,0,0));
|
||||
Screen.DrawTexture(HealthTex[4],false,xmargin+2+ox,ss.y-(ymargin+20+oy),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw);
|
||||
|
|
@ -175,7 +175,7 @@ extend Class SWWMStatusBar
|
|||
Screen.DrawTexture(HealthTex[3],false,xmargin+2+ox,ss.y-(ymargin+20+oy),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw);
|
||||
}
|
||||
}
|
||||
if ( CPlayer.mo.FindInventory("DivineSpriteEffect") )
|
||||
if ( CPlayer.mo.FindInventory('DivineSpriteEffect') )
|
||||
{
|
||||
double falph = clamp((ht-1000)/6000.,0.,1.);
|
||||
Screen.DrawTexture(HealthTex[5],false,xmargin+2+ox,ss.y-(ymargin+20+oy),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,falph,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
|
|
|
|||
|
|
@ -118,8 +118,8 @@ extend Class SWWMStatusBar
|
|||
{
|
||||
for ( Inventory i=a.inv; i; i=i.inv )
|
||||
{
|
||||
if ( (i.GetClassName() == "LDLegendaryMonsterToken") && swwm_ldspoil ) return true;
|
||||
else if ( i.GetClassName() == "LDLegendaryMonsterTransformed" ) return true;
|
||||
if ( (i.GetClassName() == 'LDLegendaryMonsterToken') && swwm_ldspoil ) return true;
|
||||
else if ( i.GetClassName() == 'LDLegendaryMonsterTransformed' ) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -127,7 +127,7 @@ extend Class SWWMStatusBar
|
|||
private void DrawTrackers( Vector3 viewvec, bool &projinit )
|
||||
{
|
||||
let cam = players[consoleplayer].camera;
|
||||
if ( !cti ) cti = ThinkerIterator.Create("SWWMQuickCombatTracker",Thinker.STAT_INVENTORY);
|
||||
if ( !cti ) cti = ThinkerIterator.Create('SWWMQuickCombatTracker',Thinker.STAT_INVENTORY);
|
||||
else cti.Reinit();
|
||||
SWWMQuickCombatTracker ct;
|
||||
bool onlymonsters = (swwm_targeter >= 2);
|
||||
|
|
@ -197,7 +197,7 @@ extend Class SWWMStatusBar
|
|||
if ( StringTable.Localize("$SWWM_LEGPREFIX") == "R" ) tag = tag..StringTable.Localize("$SWWM_LEG");
|
||||
else tag = StringTable.Localize("$SWWM_LEG")..tag;
|
||||
}
|
||||
if ( ct.Owner.bBOSS || ct.Owner.FindInventory("BossMarker") )
|
||||
if ( ct.Owner.bBOSS || ct.Owner.FindInventory('BossMarker') )
|
||||
{
|
||||
if ( swwm_bigtags ) tag = "\cx★\c- "..tag.." \cx★\c-";
|
||||
else tag = "\cx*\c- "..tag.." \cx*\c-"; // miniwi has no stars
|
||||
|
|
@ -262,9 +262,9 @@ extend Class SWWMStatusBar
|
|||
String val = String.Format("%d",clamp(ct.lasthealth,0,999));
|
||||
int valw = MiniHUDFontOutline.StringWidth(val);
|
||||
int col = (ct.lasthealth>500)?mhudfontcol[MCR_GOLD]:(ct.lasthealth>200)?mhudfontcol[MCR_PURPLE]:(ct.lasthealth>100)?mhudfontcol[MCR_AQUA]:mhudfontcol[MCR_RED];
|
||||
if ( ct.Owner.bINVULNERABLE || (ct.Owner.player.cheats&(CF_GODMODE|CF_GODMODE2)) || ct.Owner.FindInventory("InvinciballPower") )
|
||||
if ( ct.Owner.bINVULNERABLE || (ct.Owner.player.cheats&(CF_GODMODE|CF_GODMODE2)) || ct.Owner.FindInventory('InvinciballPower') )
|
||||
col = mhudfontcol[MCR_WHITE];
|
||||
if ( ct.Owner.FindInventory("DivineSpriteEffect") )
|
||||
if ( ct.Owner.FindInventory('DivineSpriteEffect') )
|
||||
{
|
||||
double falph = clamp((ct.intp.GetValue(fractic)-1000)/6000.,0.,1.);
|
||||
String tst;
|
||||
|
|
@ -295,7 +295,7 @@ extend Class SWWMStatusBar
|
|||
double ht = clamp(ct.intp.GetValue(fractic),0,10000);
|
||||
double hw = (ht*50.)/100.;
|
||||
double ohw = hw;
|
||||
if ( ct.Owner.bINVULNERABLE || (ct.Owner.player.cheats&(CF_GODMODE|CF_GODMODE2)) || ct.Owner.FindInventory("InvinciballPower") )
|
||||
if ( ct.Owner.bINVULNERABLE || (ct.Owner.player.cheats&(CF_GODMODE|CF_GODMODE2)) || ct.Owner.FindInventory('InvinciballPower') )
|
||||
Screen.DrawTexture(EnemyHTex[1],false,barpos.x+2,barpos.y+2,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph,DTA_WindowRightF,hw);
|
||||
else
|
||||
{
|
||||
|
|
@ -316,7 +316,7 @@ extend Class SWWMStatusBar
|
|||
Screen.DrawTexture(EnemyHTex[5],false,barpos.x+2,barpos.y+2,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph,DTA_WindowRightF,hw);
|
||||
}
|
||||
}
|
||||
if ( ct.Owner.FindInventory("DivineSpriteEffect") )
|
||||
if ( ct.Owner.FindInventory('DivineSpriteEffect') )
|
||||
{
|
||||
double falph = clamp((ht-1000)/6000.,0.,1.);
|
||||
Screen.DrawTexture(EnemyHTex[6],false,barpos.x+2,barpos.y+2,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph*falph,DTA_LegacyRenderStyle,STYLE_Add);
|
||||
|
|
|
|||
|
|
@ -481,7 +481,7 @@ extend Class SWWMStatusBar
|
|||
int hsz = smol?HALFMAPSIZE_SMALL:HALFMAPSIZE;
|
||||
Vector2 cpos = SWWMUtility.LerpVector2(players[consoleplayer].Camera.prev.xy,players[consoleplayer].Camera.pos.xy,FracTic);
|
||||
Sector csec = players[consoleplayer].Camera.CurSector;
|
||||
if ( !mi ) mi = ThinkerIterator.Create("MapMarker",Thinker.STAT_MAPMARKER);
|
||||
if ( !mi ) mi = ThinkerIterator.Create('MapMarker',Thinker.STAT_MAPMARKER);
|
||||
else mi.Reinit();
|
||||
MapMarker m;
|
||||
while ( m = MapMarker(mi.Next()) )
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ Class PayRespects : HUDMessageBase
|
|||
|
||||
static PayRespects PressF()
|
||||
{
|
||||
let f = new("PayRespects");
|
||||
let f = new('PayRespects');
|
||||
f.basepos = (FRandom[FInTheChat](0.,1.),FRandom[FInTheChat](1.02,1.05));
|
||||
f.scale = FRandom[FInTheChat](.5,2.);
|
||||
f.lifespan = f.initialspan = Random[FInTheChat](20,80);
|
||||
|
|
@ -64,7 +64,7 @@ Class SWWMOneLiner : HUDMessageBase
|
|||
|
||||
static SWWMOneLiner Make( String whichline, int lifespan )
|
||||
{
|
||||
let l = new("SWWMOneLiner");
|
||||
let l = new('SWWMOneLiner');
|
||||
if ( StringTable.Localize(whichline) == "" ) l.whichline = "";
|
||||
else l.whichline = StringTable.Localize("$SWWM_LQUOTE")..StringTable.Localize(whichline)..StringTable.Localize("$SWWM_RQUOTE");
|
||||
l.curtime = l.lifespan = lifespan;
|
||||
|
|
@ -117,7 +117,7 @@ Class SWWMOneLiner : HUDMessageBase
|
|||
double fcurtime = curtime-fractic;
|
||||
double alph = clamp((fcurtime/20.)+1.,0.,1.);
|
||||
alph *= clamp((lifespan-fcurtime)/10.,0.,1.);
|
||||
Screen.Dim("Black",alph*.8,int((Screen.GetWidth()-(maxlen+12)*hs)/2.),int(bottom-(ymargin+2+fh)*hs),int((maxlen+12)*hs),int((fh+4)*hs));
|
||||
Screen.Dim(0xFF000000,alph*.8,int((Screen.GetWidth()-(maxlen+12)*hs)/2.),int(bottom-(ymargin+2+fh)*hs),int((maxlen+12)*hs),int((fh+4)*hs));
|
||||
int yy = ymargin+fh;
|
||||
for ( int i=0; i<l.Count(); i++ )
|
||||
{
|
||||
|
|
@ -373,7 +373,7 @@ Class SWWMWeaponSwapTip : HUDMessageBase
|
|||
int w = max(txtw,icow);
|
||||
int h = icoh+4+mSmallFont.GetHeight()*l.Count();
|
||||
Vector2 pos = (int(ss.x/2),ss.y-(ymargin+80+h));
|
||||
Screen.Dim("Black",.5*alpha,int((pos.x-(w+4)/2)*hs),int((pos.y-2)*hs),int((w+4)*hs),int((h+4)*hs));
|
||||
Screen.Dim(0xFF000000,.5*alpha,int((pos.x-(w+4)/2)*hs),int((pos.y-2)*hs),int((w+4)*hs),int((h+4)*hs));
|
||||
// Left Icon
|
||||
double x = pos.x-(icow/2);
|
||||
if ( icoa.IsValid() )
|
||||
|
|
@ -484,7 +484,7 @@ Class SWWMWeaponTooltip : HUDMessageBase
|
|||
int cw = int(ceil((max(w1,w)+8)/6.))*6;
|
||||
int h = mSmallFont.GetHeight()+8+mTinyFont.GetHeight()*l.Count();
|
||||
Vector2 pos = (int(ss.x/2),ss.y-(ymargin+80+h));
|
||||
Screen.Dim("Black",.5*alpha,int((pos.x-(cw+4)/2)*hs),int((pos.y-2)*hs),int((cw+4)*hs),int((h+4)*hs));
|
||||
Screen.Dim(0xFF000000,.5*alpha,int((pos.x-(cw+4)/2)*hs),int((pos.y-2)*hs),int((cw+4)*hs),int((h+4)*hs));
|
||||
Screen.DrawText(mSmallFont,Font.CR_FIRE,pos.x-w1/2,pos.y,wpn,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha);
|
||||
for ( int i=0; i<cw; i+=6 )
|
||||
Screen.DrawChar(mSmallFont,Font.CR_FIRE,(pos.x-cw/2)+i,pos.y+6,0x5F,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha);
|
||||
|
|
@ -684,7 +684,7 @@ Class SWWMDirectMessage : HUDMessageBase
|
|||
if ( seqnum < 0 )
|
||||
{
|
||||
// if there's a map message active, wait until it isn't
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd.mapmsg ) return false;
|
||||
delay--;
|
||||
if ( delay <= 0 )
|
||||
|
|
@ -781,7 +781,7 @@ Class SWWMDialogueTrigger : SWWMNonInteractiveActor abstract
|
|||
// this is a huge gross hack that only exists because you can't get arg0str out of actors
|
||||
// (primarily, because you can convert names to ints, but not viceversa)
|
||||
String dlg = GetClassName();
|
||||
dlg.StripLeft("SWWMDialogueTrigger");
|
||||
dlg.StripLeft('SWWMDialogueTrigger');
|
||||
if ( !bAMBUSH || (activator && (activator.player == players[consoleplayer])) )
|
||||
EventHandler.SendInterfaceEvent(consoleplayer,"swwmsetdialogue."..dlg);
|
||||
Destroy();
|
||||
|
|
@ -800,12 +800,8 @@ Class SWWMDialogueTriggerSpcEV2BCD : SWWMNonInteractiveActor
|
|||
{
|
||||
// the one singular astral cacodemon in this map
|
||||
// needed for everything
|
||||
foreach ( c:AllActorClasses )
|
||||
{
|
||||
if ( c.GetClassName() != "AstralCacodemon" ) continue;
|
||||
thecaco = Actor(ThinkerIterator.Create(c).Next());
|
||||
break;
|
||||
}
|
||||
let cacoclass = (Class<Actor>)(FindClass('AstralCacodemon','Actor'));
|
||||
if ( cacoclass ) thecaco = Actor(ThinkerIterator.Create(cacoclass).Next());
|
||||
if ( !thecaco )
|
||||
{
|
||||
Destroy();
|
||||
|
|
@ -1166,7 +1162,7 @@ Class DSMapTitle : HUDMessageBase
|
|||
}
|
||||
if ( ch != 256 ) ThrowAbortException("sub font definition does not list all 256 glyphs");
|
||||
// this is for compat with the dialogues, and should not go into other mods
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd ) hnd.mapmsg = self;
|
||||
bDontDeleteMe = true;
|
||||
return self;
|
||||
|
|
@ -1349,7 +1345,7 @@ Class SWWMWeaponSelect : HUDMessageBase
|
|||
S_StartSound("menu/demotab",CHAN_AUTO,CHANF_UI);
|
||||
stage = 0;
|
||||
alph = 0.;
|
||||
fnt = Font.FindFont("TewiFontOutline");
|
||||
fnt = Font.FindFont('TewiFontOutline');
|
||||
olsmoothY = smoothY = curY = CalcHeight();
|
||||
return self;
|
||||
}
|
||||
|
|
@ -1575,7 +1571,7 @@ Class SWWMWeaponSelect : HUDMessageBase
|
|||
double fractic = System.GetTimeFrac();
|
||||
double ssmoothY = SWWMUtility.Lerp(olsmoothY,smoothY,fractic);
|
||||
double salph = SWWMUtility.Lerp(olalph,alph,fractic);
|
||||
Screen.Dim("Black",.4*salph,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Screen.Dim(0xFF000000,.4*salph,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
double hs;
|
||||
Vector2 ss;
|
||||
if ( SWWMStatusBar(StatusBar) )
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ Class SWWMScoreObj play
|
|||
static SWWMScoreObj SpawnAtActorBunch( int score, Actor a, int tcolor = -1 )
|
||||
{
|
||||
if ( !a ) return null;
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return null;
|
||||
Vector3 pos = level.Vec3Offset(a.pos,SWWMUtility.Vec3FromAngles(FRandom[ScoreBits](0,360),FRandom[ScoreBits](-90,90))*8.+(0,0,a.Height/2));
|
||||
return SpawnFromHandler(hnd,score,pos,tcolor);
|
||||
|
|
@ -28,7 +28,7 @@ Class SWWMScoreObj play
|
|||
static SWWMScoreObj SpawnAtActor( int score, Actor a, int tcolor = -1 )
|
||||
{
|
||||
if ( !a ) return null;
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return null;
|
||||
Vector3 pos = a.Vec3Offset(0,0,a.Height/2);
|
||||
return SpawnFromHandler(hnd,score,pos,tcolor);
|
||||
|
|
@ -36,7 +36,7 @@ Class SWWMScoreObj play
|
|||
|
||||
static SWWMScoreObj Spawn( int score, Vector3 pos, int tcolor = -1 )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return null;
|
||||
return SpawnFromHandler(hnd,score,pos,tcolor);
|
||||
}
|
||||
|
|
@ -57,7 +57,7 @@ Class SWWMScoreObj play
|
|||
|
||||
static SWWMScoreObj SpawnFromHandler( SWWMHandler hnd, int score, Vector3 pos, int tcolor = -1 )
|
||||
{
|
||||
let o = new("SWWMScoreObj");
|
||||
let o = new('SWWMScoreObj');
|
||||
o.score = score;
|
||||
o.pos = pos;
|
||||
o.lifespan = o.initialspan = 60;
|
||||
|
|
@ -100,7 +100,7 @@ Class SWWMDamNum play
|
|||
static SWWMDamNum SpawnAtActor( int damage, Actor a, Name type = '' )
|
||||
{
|
||||
if ( !a ) return null;
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return null;
|
||||
Vector3 pos = level.Vec3Offset(a.pos,SWWMUtility.Vec3FromAngles(FRandom[ScoreBits](0,360),FRandom[ScoreBits](-90,90))*8.+(0,0,a.Height/2));
|
||||
return SpawnFromHandler(hnd,damage,pos,type);
|
||||
|
|
@ -108,7 +108,7 @@ Class SWWMDamNum play
|
|||
|
||||
static SWWMDamNum Spawn( int damage, Vector3 pos, Name type = '' )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return null;
|
||||
return SpawnFromHandler(hnd,damage,pos,type);
|
||||
}
|
||||
|
|
@ -122,10 +122,10 @@ Class SWWMDamNum play
|
|||
|
||||
static SWWMDamNum SpawnFromHandler( SWWMHandler hnd, int damage, Vector3 pos, Name type = '' )
|
||||
{
|
||||
let o = new("SWWMDamNum");
|
||||
let o = new('SWWMDamNum');
|
||||
o.damage = damage;
|
||||
o.pos = pos;
|
||||
o.tcolor = Font.FindFontColor("MiniRed");
|
||||
o.tcolor = Font.FindFontColor('MiniRed');
|
||||
if ( swwm_damnums_color ) for ( int i=0; i<hnd.damtypes.Size(); i++ )
|
||||
{
|
||||
if ( hnd.damtypes[i] != type ) continue;
|
||||
|
|
@ -182,14 +182,14 @@ Class SWWMInterest play
|
|||
static SWWMInterest Spawn( SWWMHandler hnd, Vector3 pos = (0,0,0), Key thekey = null, Line theline = null, int theexit = 0 )
|
||||
{
|
||||
if ( (!thekey && !theline) || (thekey && theline) ) return null;
|
||||
let i = new("SWWMInterest");
|
||||
let i = new('SWWMInterest');
|
||||
i.trackedkey = thekey;
|
||||
i.trackedline = theline;
|
||||
if ( thekey )
|
||||
{
|
||||
i.type = INT_Key;
|
||||
i.keytag = thekey.GetTag();
|
||||
i.marker = Actor.Spawn("SWWMInterestMarker",thekey.pos);
|
||||
i.marker = Actor.Spawn('SWWMInterestMarker',thekey.pos);
|
||||
if ( thekey is 'SWWMKey' )
|
||||
{
|
||||
Class<Key> k = thekey.species;
|
||||
|
|
@ -205,7 +205,7 @@ Class SWWMInterest play
|
|||
{
|
||||
i.type = INT_Exit;
|
||||
i.exittype = theexit;
|
||||
i.marker = Actor.Spawn("SWWMInterestMarker",pos);
|
||||
i.marker = Actor.Spawn('SWWMInterestMarker',pos);
|
||||
i.marker.SetState(i.marker.SpawnState+theexit);
|
||||
i.marker.bDORMANT = !level.allmap;
|
||||
}
|
||||
|
|
@ -258,7 +258,7 @@ Class SWWMItemSense play
|
|||
s.pos = item.Vec3Offset(0,0,item.height);
|
||||
return s;
|
||||
}
|
||||
let i = new("SWWMItemSense");
|
||||
let i = new('SWWMItemSense');
|
||||
i.item = item;
|
||||
if ( item is 'SWWMRespawnTimer' )
|
||||
{
|
||||
|
|
@ -398,7 +398,7 @@ Class SWWMSimpleTracker play
|
|||
t.Update();
|
||||
return t;
|
||||
}
|
||||
t = new("SWWMSimpleTracker");
|
||||
t = new('SWWMSimpleTracker');
|
||||
t.target = target;
|
||||
t.Update();
|
||||
t.next = hnd.strackers;
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ Class AmmoFabricator : Inventory abstract
|
|||
+FLOATBOB;
|
||||
+DONTGIB;
|
||||
Inventory.UseSound "fabricator/use";
|
||||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPickupFlash';
|
||||
Inventory.MaxAmount 0;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
|
|
@ -544,7 +544,7 @@ Class HammerspaceEmbiggener : Inventory
|
|||
Amount = min(tamount,MaxAmount);
|
||||
return;
|
||||
}
|
||||
let n = Spawn("BulkHammerspaceEmbiggener",pos);
|
||||
let n = Spawn('BulkHammerspaceEmbiggener',pos);
|
||||
Inventory(n).Amount = min(tamount,MaxAmount);
|
||||
SWWMUtility.TransferItemProp(self,n);
|
||||
ClearCounters();
|
||||
|
|
@ -558,7 +558,7 @@ Class HammerspaceEmbiggener : Inventory
|
|||
Inventory.PickupMessage "$T_EMBIGGENER";
|
||||
Inventory.MaxAmount 8;
|
||||
Inventory.InterHubAmount 8;
|
||||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPickupFlash';
|
||||
+INVENTORY.UNDROPPABLE;
|
||||
+INVENTORY.UNTOSSABLE;
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ Class GoldShellSparkle : SWWMNonInteractiveActor
|
|||
}
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale 0.05;
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
|
|
@ -83,7 +83,7 @@ Class GoldShell : SWWMAmmo
|
|||
action void A_GoldShellTrail()
|
||||
{
|
||||
if ( Random[Goldy](0,2) ) return;
|
||||
Spawn("GoldShellSparkle",Vec3Offset(FRandom[Goldy](-radius,radius)/2.,FRandom[Goldy](-radius,radius)/2.,FRandom[Goldy](10,18)));
|
||||
Spawn('GoldShellSparkle',Vec3Offset(FRandom[Goldy](-radius,radius)/2.,FRandom[Goldy](-radius,radius)/2.,FRandom[Goldy](10,18)));
|
||||
}
|
||||
|
||||
Default
|
||||
|
|
@ -267,7 +267,7 @@ Class SilverBulletAmmo : SWWMAmmo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 9;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "SilverBullets";
|
||||
SWWMAmmo.MagAmmoType 'SilverBullets';
|
||||
Accuracy 75;
|
||||
}
|
||||
States
|
||||
|
|
@ -285,7 +285,7 @@ Class SilverBullets : MagAmmo
|
|||
Tag "$T_XSBBULLET";
|
||||
MagAmmo.PickupTag "XSBBULLET";
|
||||
Stamina -12000;
|
||||
MagAmmo.ParentAmmo "SilverBulletAmmo";
|
||||
MagAmmo.ParentAmmo 'SilverBulletAmmo';
|
||||
MagAmmo.ClipSize 5;
|
||||
MagAmmo.BackpackAmount 2;
|
||||
Inventory.MaxAmount 5;
|
||||
|
|
@ -328,7 +328,7 @@ Class CandyGunAmmo : SWWMAmmo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 3;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "CandyGunBullets";
|
||||
SWWMAmmo.MagAmmoType 'CandyGunBullets';
|
||||
Accuracy 90;
|
||||
}
|
||||
States
|
||||
|
|
@ -346,7 +346,7 @@ Class CandyGunBullets : MagAmmo
|
|||
Tag "$T_CANDYBULLET";
|
||||
MagAmmo.PickupTag "CANDYBULLET";
|
||||
Stamina -14000;
|
||||
MagAmmo.ParentAmmo "CandyGunAmmo";
|
||||
MagAmmo.ParentAmmo 'CandyGunAmmo';
|
||||
MagAmmo.ClipSize 7;
|
||||
MagAmmo.BackpackAmount 1;
|
||||
Inventory.MaxAmount 7;
|
||||
|
|
@ -409,11 +409,11 @@ Class CandyGunSpares : SWWMAmmo
|
|||
Super.DoEffect();
|
||||
if ( !Owner ) return;
|
||||
// auto-give an empty gun if the player does not own one
|
||||
if ( Owner.FindInventory("CandyGun") || (Amount <= 0) ) return;
|
||||
if ( Owner.FindInventory('CandyGun') || (Amount <= 0) ) return;
|
||||
// don't do this if the player owns a Mortal Rifle and swapweapons are enabled
|
||||
if ( Owner.FindInventory("MisterRifle") && swwm_swapweapons ) return;
|
||||
if ( Owner.FindInventory('MisterRifle') && swwm_swapweapons ) return;
|
||||
Amount--;
|
||||
let g = CandyGun(Spawn("CandyGun"));
|
||||
let g = CandyGun(Spawn('CandyGun'));
|
||||
g.bInitialized = true;
|
||||
g.ammogive1 = 0;
|
||||
g.ammogive2 = 0;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ Class ArmorNugget : SWWMArmor
|
|||
Inventory.MaxAmount 200;
|
||||
Inventory.InterHubAmount 200;
|
||||
SWWMArmor.ArmorPriority 3;
|
||||
SWWMArmor.GiverArmor "ArmorNuggetItem";
|
||||
SWWMArmor.GiverArmor 'ArmorNuggetItem';
|
||||
}
|
||||
|
||||
override int HandleDamage( int damage, Name damageType, int flags )
|
||||
|
|
@ -53,7 +53,7 @@ Class ArmorNuggetItem : SWWMSpareArmor
|
|||
Inventory.MaxAmount 0;
|
||||
Inventory.InterHubAmount 0;
|
||||
Inventory.UseSound "misc/armor_pkup";
|
||||
SWWMSpareArmor.GiveArmor "ArmorNugget";
|
||||
SWWMSpareArmor.GiveArmor 'ArmorNugget';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
}
|
||||
States
|
||||
|
|
@ -78,10 +78,10 @@ Class BlastSuit : SWWMArmor
|
|||
Inventory.Amount 150;
|
||||
Inventory.MaxAmount 150;
|
||||
Inventory.InterHubAmount 150;
|
||||
Inventory.RestrictedTo "Demolitionist";
|
||||
Inventory.RestrictedTo 'Demolitionist';
|
||||
SWWMArmor.ArmorPriority 4;
|
||||
SWWMArmor.DrainMessage "$D_BLASTSUIT";
|
||||
SWWMArmor.GiverArmor "BlastSuitItem";
|
||||
SWWMArmor.GiverArmor 'BlastSuitItem';
|
||||
}
|
||||
|
||||
override int HandleDamage( int damage, Name damageType, int flags )
|
||||
|
|
@ -100,10 +100,10 @@ Class WarArmor : SWWMArmor
|
|||
Inventory.Amount 250;
|
||||
Inventory.MaxAmount 250;
|
||||
Inventory.InterHubAmount 250;
|
||||
Inventory.RestrictedTo "Demolitionist";
|
||||
Inventory.RestrictedTo 'Demolitionist';
|
||||
SWWMArmor.ArmorPriority 5;
|
||||
SWWMArmor.DrainMessage "$D_WARARMOR";
|
||||
SWWMArmor.GiverArmor "WarArmorItem";
|
||||
SWWMArmor.GiverArmor 'WarArmorItem';
|
||||
}
|
||||
|
||||
override int HandleDamage( int damage, Name damageType, int flags )
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ Class BlastSuitItem : SWWMSpareArmor
|
|||
Inventory.Icon "graphics/HUD/Icons/I_BlastSuit.png";
|
||||
Inventory.PickupMessage "$T_BLASTSUIT";
|
||||
Inventory.UseSound "armor/blastsuit";
|
||||
Inventory.RestrictedTo "Demolitionist";
|
||||
SWWMSpareArmor.GiveArmor "BlastSuit";
|
||||
Inventory.RestrictedTo 'Demolitionist';
|
||||
SWWMSpareArmor.GiveArmor 'BlastSuit';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -43,8 +43,8 @@ Class WarArmorItem : SWWMSpareArmor
|
|||
Inventory.Icon "graphics/HUD/Icons/I_WarArmor.png";
|
||||
Inventory.PickupMessage "$T_WARARMOR";
|
||||
Inventory.UseSound "armor/wararmor";
|
||||
Inventory.RestrictedTo "Demolitionist";
|
||||
SWWMSpareArmor.GiveArmor "WarArmor";
|
||||
Inventory.RestrictedTo 'Demolitionist';
|
||||
SWWMSpareArmor.GiveArmor 'WarArmor';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ Class SWWMAmmo : Ammo
|
|||
override Class<Ammo> GetParentAmmo()
|
||||
{
|
||||
Class<Object> type = GetClass();
|
||||
while ( (type.GetParentClass() != "SWWMAmmo") && type.GetParentClass() )
|
||||
while ( (type.GetParentClass() != 'SWWMAmmo') && type.GetParentClass() )
|
||||
type = type.GetParentClass();
|
||||
return (Class<Ammo>)(type);
|
||||
}
|
||||
|
|
@ -267,7 +267,7 @@ Class SWWMAmmo : Ammo
|
|||
{
|
||||
+INVENTORY.IGNORESKILL;
|
||||
+DONTGIB;
|
||||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPickupFlash';
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
|
|
@ -299,7 +299,7 @@ Class MagAmmo : Inventory abstract
|
|||
+DONTGIB;
|
||||
Inventory.PickupSound "misc/bullet_pkup";
|
||||
Inventory.Amount 1;
|
||||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPickupFlash';
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
|
|
@ -307,7 +307,7 @@ Class MagAmmo : Inventory abstract
|
|||
virtual Class<MagAmmo> GetParentMagAmmo()
|
||||
{
|
||||
Class<Object> type = GetClass();
|
||||
while ( (type.GetParentClass() != "MagAmmo") && type.GetParentClass() )
|
||||
while ( (type.GetParentClass() != 'MagAmmo') && type.GetParentClass() )
|
||||
type = type.GetParentClass();
|
||||
return (Class<MagAmmo>)(type);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ Class SWWMArmor : Armor abstract
|
|||
if ( healed > 0 ) Owner.GiveBody(healed);
|
||||
if ( (swwm_strictuntouchable == 1) && (saved > 0) && Owner.player )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd ) hnd.tookdamage[Owner.PlayerNumber()] = true;
|
||||
}
|
||||
if ( !bNODRAIN ) amount -= saved;
|
||||
|
|
@ -158,7 +158,7 @@ Class SWWMSpareArmor : Inventory abstract
|
|||
bool bPlayMe = true;
|
||||
if ( self is 'ArmorNuggetItem' )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd )
|
||||
{
|
||||
if ( hnd.lastnuggettic[Owner.PlayerNumber()] == gametic )
|
||||
|
|
@ -184,7 +184,7 @@ Class SWWMSpareArmor : Inventory abstract
|
|||
+INVENTORY.AUTOACTIVATE;
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMGreenPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMGreenPickupFlash';
|
||||
+FLOATBOB;
|
||||
+DONTGIB;
|
||||
FloatBobStrength 0.25;
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ Class SWWMHealth : Inventory abstract
|
|||
bool bPlayMe = true;
|
||||
if ( self is 'HealthNuggetItem' )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd )
|
||||
{
|
||||
if ( hnd.lastnuggettic[Owner.PlayerNumber()] == gametic )
|
||||
|
|
@ -130,7 +130,7 @@ Class SWWMHealth : Inventory abstract
|
|||
return;
|
||||
if ( (swwm_strictuntouchable == 1) && Owner.player )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd ) hnd.tookdamage[Owner.PlayerNumber()] = true;
|
||||
}
|
||||
if ( ((Owner.player == players[consoleplayer]) || bBigPowerup) && (lastautousetic < gametic) )
|
||||
|
|
@ -165,7 +165,7 @@ Class SWWMHealth : Inventory abstract
|
|||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.UseSound "misc/health_pkup";
|
||||
Inventory.PickupFlash "SWWMBluePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMBluePickupFlash';
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ Mixin Class SWWMUseToPickup
|
|||
Vector3 tracedir = level.Vec3Diff(userpos,itempos);
|
||||
double dist = tracedir.length();
|
||||
tracedir /= dist;
|
||||
let cf = new("CrossLineFinder");
|
||||
let cf = new('CrossLineFinder');
|
||||
cf.Trace(userpos,level.PointInSector(userpos.xy),tracedir,dist,0,ignoreallactors:true);
|
||||
// trigger all player cross lines found between user and item
|
||||
for ( int i=0; i<cf.clines.Size(); i++ )
|
||||
|
|
@ -109,7 +109,7 @@ Mixin Class SWWMOverlapPickupSound
|
|||
// overlap sounds
|
||||
override void PlayPickupSound( Actor toucher )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd )
|
||||
{
|
||||
if ( hnd.lastpickuptic[toucher.PlayerNumber()] == gametic )
|
||||
|
|
@ -144,7 +144,7 @@ Class SWWMRespawnTimer : SWWMNonInteractiveActor
|
|||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !tracer || !tracer.InStateSequence(tracer.CurState,tracer.FindState("HideDoomish")) )
|
||||
if ( !tracer || !tracer.InStateSequence(tracer.CurState,tracer.FindState('HideDoomish')) )
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
|
|
@ -193,7 +193,7 @@ Mixin Class SWWMPickupGlow
|
|||
{
|
||||
let p = Spawn(PickupFlash,pos);
|
||||
p.target = self;
|
||||
p.SetStateLabel("Pickup");
|
||||
p.SetStateLabel('Pickup');
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -203,7 +203,7 @@ Class SWWMItemOverlay : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+FLOATBOB;
|
||||
FloatBobStrength .25;
|
||||
}
|
||||
|
|
@ -262,7 +262,7 @@ Mixin Class SWWMRespawn
|
|||
bSPECIAL = false;
|
||||
bNOGRAVITY = true;
|
||||
bINVISIBLE = true;
|
||||
SetState(FindState("HideDoomish"));
|
||||
SetState(FindState('HideDoomish'));
|
||||
tics = 1050;
|
||||
if ( (self is 'Ammo') || (self is 'MagAmmo') )
|
||||
tics -= 350;
|
||||
|
|
@ -273,7 +273,7 @@ Mixin Class SWWMRespawn
|
|||
{
|
||||
Vector3 oldpos = pos;
|
||||
A_RestoreSpecialPosition();
|
||||
let t = Spawn("SWWMRespawnTimer",pos);
|
||||
let t = Spawn('SWWMRespawnTimer',pos);
|
||||
t.tracer = self;
|
||||
t.special1 = tics;
|
||||
t.A_SetSize(radius,height);
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ Class SWWMCollectible : Inventory abstract
|
|||
Inventory.PickupSound "menu/buyinv";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 1;
|
||||
Inventory.PickupFlash "SWWMCyanPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMCyanPickupFlash';
|
||||
SWWMCollectible.Availability AVAIL_All;
|
||||
+INVENTORY.UNTOSSABLE;
|
||||
+INVENTORY.UNDROPPABLE;
|
||||
|
|
@ -124,7 +124,7 @@ Class GenericCube : SWWMCollectible
|
|||
{
|
||||
Tag "$T_PERFECTLYGENERIC";
|
||||
Inventory.PickupMessage "$T_PERFECTLYGENERIC";
|
||||
SWWMCollectible.GestureWeapon "GenericCubeGesture";
|
||||
SWWMCollectible.GestureWeapon 'GenericCubeGesture';
|
||||
SWWMCollectible.GetLine "cubeget";
|
||||
Stamina 1000;
|
||||
}
|
||||
|
|
@ -135,7 +135,7 @@ Class AkariProject : SWWMCollectible
|
|||
{
|
||||
Tag "$T_AKARIPROJECT";
|
||||
Inventory.PickupMessage "$T_AKARIPROJECT";
|
||||
SWWMCollectible.GestureWeapon "AkariProjectGesture";
|
||||
SWWMCollectible.GestureWeapon 'AkariProjectGesture';
|
||||
SWWMCollectible.GetLine "akariget";
|
||||
Stamina 2000;
|
||||
}
|
||||
|
|
@ -146,7 +146,7 @@ Class LoveSignalsCD : SWWMCollectible
|
|||
{
|
||||
Tag "$T_LOVESIGNALS";
|
||||
Inventory.PickupMessage "$T_LOVESIGNALS";
|
||||
SWWMCollectible.GestureWeapon "LoveSignalsCDGesture";
|
||||
SWWMCollectible.GestureWeapon 'LoveSignalsCDGesture';
|
||||
SWWMCollectible.GetLine "signalsget";
|
||||
Stamina 3000;
|
||||
}
|
||||
|
|
@ -157,7 +157,7 @@ Class NutatcoBar : SWWMCollectible
|
|||
{
|
||||
Tag "$T_NUTATCO";
|
||||
Inventory.PickupMessage "$T_NUTATCO";
|
||||
SWWMCollectible.GestureWeapon "NutatcoBarGesture";
|
||||
SWWMCollectible.GestureWeapon 'NutatcoBarGesture';
|
||||
SWWMCollectible.GetLine "nutatcoget";
|
||||
Stamina 200;
|
||||
}
|
||||
|
|
@ -168,7 +168,7 @@ Class FrispyCorn : SWWMCollectible
|
|||
{
|
||||
Tag "$T_FRISPYCORN";
|
||||
Inventory.PickupMessage "$T_FRISPYCORN";
|
||||
SWWMCollectible.GestureWeapon "FrispyCornGesture";
|
||||
SWWMCollectible.GestureWeapon 'FrispyCornGesture';
|
||||
SWWMCollectible.GetLine "frispyget";
|
||||
Stamina 400;
|
||||
}
|
||||
|
|
@ -179,7 +179,7 @@ Class SayaBean : SWWMCollectible
|
|||
{
|
||||
Tag "$T_SAYABEAN";
|
||||
Inventory.PickupMessage "$T_SAYABEAN";
|
||||
SWWMCollectible.GestureWeapon "SayaBeanGesture";
|
||||
SWWMCollectible.GestureWeapon 'SayaBeanGesture';
|
||||
SWWMCollectible.GetLine "sayaget";
|
||||
Stamina 5000;
|
||||
}
|
||||
|
|
@ -207,7 +207,7 @@ Class MothPlushy : SWWMCollectible
|
|||
{
|
||||
Tag "$T_MOTHPLUSH";
|
||||
Inventory.PickupMessage "$T_MOTHPLUSH";
|
||||
SWWMCollectible.GestureWeapon "MothPlushyGesture";
|
||||
SWWMCollectible.GestureWeapon 'MothPlushyGesture';
|
||||
SWWMCollectible.GetLine "mothget";
|
||||
Stamina 7000;
|
||||
}
|
||||
|
|
@ -219,7 +219,7 @@ Class SayasMug : SWWMCollectible
|
|||
{
|
||||
Tag "$T_SAYASMUG";
|
||||
Inventory.PickupMessage "$T_SAYASMUG";
|
||||
SWWMCollectible.GestureWeapon "SayasMugGesture";
|
||||
SWWMCollectible.GestureWeapon 'SayasMugGesture';
|
||||
SWWMCollectible.GetLine "mugget";
|
||||
Stamina 1000;
|
||||
}
|
||||
|
|
@ -232,7 +232,7 @@ Class DemoPlush : SWWMCollectible
|
|||
Tag "$T_DEMOPLUSH";
|
||||
Inventory.PickupMessage "$T_DEMOPLUSH";
|
||||
SWWMCollectible.Availability AVAIL_Heretic;
|
||||
SWWMCollectible.GestureWeapon "DemoPlushGesture";
|
||||
SWWMCollectible.GestureWeapon 'DemoPlushGesture';
|
||||
SWWMCollectible.GetLine "demoget";
|
||||
Stamina 6000;
|
||||
}
|
||||
|
|
@ -246,7 +246,7 @@ Class KirinSippy : SWWMCollectible
|
|||
Tag "$T_PEACH";
|
||||
Inventory.PickupMessage "$T_PEACH";
|
||||
SWWMCollectible.Availability AVAIL_Hexen;
|
||||
SWWMCollectible.GestureWeapon "KirinSippyGesture";
|
||||
SWWMCollectible.GestureWeapon 'KirinSippyGesture';
|
||||
SWWMCollectible.GetLine "peachget";
|
||||
Stamina 300;
|
||||
}
|
||||
|
|
@ -258,7 +258,7 @@ Class MilkBreads : SWWMCollectible
|
|||
Tag "$T_MILKBREAD";
|
||||
Inventory.PickupMessage "$T_MILKBREAD";
|
||||
SWWMCollectible.Availability AVAIL_Hexen;
|
||||
SWWMCollectible.GestureWeapon "MilkBreadsGesture";
|
||||
SWWMCollectible.GestureWeapon 'MilkBreadsGesture';
|
||||
SWWMCollectible.GetLine "breadget";
|
||||
Stamina 900;
|
||||
}
|
||||
|
|
@ -270,7 +270,7 @@ Class KirinManga : SWWMCollectible
|
|||
Tag "$T_KIRINMANGA";
|
||||
Inventory.PickupMessage "$T_KIRINMANGA";
|
||||
SWWMCollectible.Availability AVAIL_Hexen;
|
||||
SWWMCollectible.GestureWeapon "KirinMangaGesture";
|
||||
SWWMCollectible.GestureWeapon 'KirinMangaGesture';
|
||||
SWWMCollectible.GetLine "mangaget";
|
||||
Stamina 1600;
|
||||
}
|
||||
|
|
@ -282,7 +282,7 @@ Class KirinPlush : SWWMCollectible
|
|||
Tag "$T_KIRINPLUSH";
|
||||
Inventory.PickupMessage "$T_KIRINPLUSH";
|
||||
SWWMCollectible.Availability AVAIL_Hexen;
|
||||
SWWMCollectible.GestureWeapon "KirinPlushGesture";
|
||||
SWWMCollectible.GestureWeapon 'KirinPlushGesture';
|
||||
SWWMCollectible.GetLine "kiringet";
|
||||
Stamina 8000;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ Class MothPlushyGesture : SWWMItemGesture
|
|||
{
|
||||
action void A_MothCheck()
|
||||
{
|
||||
let realmoth = MothPlushy(FindInventory("MothPlushy"));
|
||||
let realmoth = MothPlushy(FindInventory('MothPlushy'));
|
||||
if ( !realmoth || realmoth.activated ) return;
|
||||
realmoth.uses = min(10,realmoth.uses+1);
|
||||
if ( (realmoth.uses > 1) && !Random[Gesture](0,12-realmoth.uses) )
|
||||
|
|
@ -287,7 +287,7 @@ Class KirinPlushGesture : SWWMItemGesture
|
|||
int numpt = Random[ExploS](6,9);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("LoveHeartSparkle",Vec3Offset(FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](.1,.9)*height));
|
||||
let s = Spawn('LoveHeartSparkle',Vec3Offset(FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](.1,.9)*height));
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ Class FroggyChair : Actor
|
|||
}
|
||||
else dirto /= lento;
|
||||
vel = (dirto+(0,0,.1))*vsize*.3;
|
||||
Spawn("SWWMItemFog",pos);
|
||||
Spawn('SWWMItemFog',pos);
|
||||
other.DamageMobj(self,tracer,int(2.5*vsize),'Melee',DMG_THRUSTLESS);
|
||||
A_StartSound("squeak",CHAN_WEAPON);
|
||||
}
|
||||
|
|
@ -295,7 +295,7 @@ Class SWWMGasCloudSpawner : SWWMNonInteractiveActor
|
|||
if ( !(special1%5) )
|
||||
{
|
||||
Vector3 x = SWWMUtility.Vec3FromAngles(angle,pitch);
|
||||
let c = Spawn("SWWMGasCloud",level.Vec3Offset(pos,x*(20+special1*12)));
|
||||
let c = Spawn('SWWMGasCloud',level.Vec3Offset(pos,x*(20+special1*12)));
|
||||
c.target = target;
|
||||
c.specialf1 = 1+special1/10.;
|
||||
}
|
||||
|
|
@ -320,7 +320,7 @@ Class SWWMGasCloud : SWWMNonInteractiveActor
|
|||
if ( isFrozen() ) return;
|
||||
for ( int i=0; i<2; i++ )
|
||||
{
|
||||
let e = Spawn("SWWMFart",level.Vec3Offset(pos,specialf1*SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*20.));
|
||||
let e = Spawn('SWWMFart',level.Vec3Offset(pos,specialf1*SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*20.));
|
||||
e.target = target;
|
||||
e.scale *= specialf1;
|
||||
}
|
||||
|
|
@ -334,7 +334,7 @@ Class SWWMFart : SWWMSmoke
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Alpha .1;
|
||||
}
|
||||
States
|
||||
|
|
@ -457,7 +457,7 @@ Class FancyConfetti : SWWMNonInteractiveActor
|
|||
pitch = 0;
|
||||
roll = 0;
|
||||
dead = true;
|
||||
SetStateLabel("Death");
|
||||
SetStateLabel('Death');
|
||||
break;
|
||||
}
|
||||
nstep++;
|
||||
|
|
@ -501,7 +501,7 @@ Class SuperFancyTrail : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
XScale 24.;
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
|
|
@ -527,7 +527,7 @@ Class SuperFancySparkle : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale .25;
|
||||
+ROLLSPRITE;
|
||||
+ROLLCENTER;
|
||||
|
|
@ -572,7 +572,7 @@ Class SuperFancySparkle : SWWMNonInteractiveActor
|
|||
double dist = dir.length();
|
||||
if ( dist < .1 ) return;
|
||||
dir /= dist;
|
||||
let t = Spawn("SuperFancyTrail",pos);
|
||||
let t = Spawn('SuperFancyTrail',pos);
|
||||
t.alpha = alpha*.5;
|
||||
t.scale.x *= scale.x;
|
||||
t.speed = dist;
|
||||
|
|
@ -648,17 +648,17 @@ Class PartyTime : SWWMNonInteractiveActor
|
|||
{
|
||||
ang = FRandom[ExploS](0,360);
|
||||
pt = FRandom[ExploS](-90,30);
|
||||
let c = Spawn("FancyConfetti",Vec3Offset(0,0,specialf1));
|
||||
let c = Spawn('FancyConfetti',Vec3Offset(0,0,specialf1));
|
||||
c.vel = SWWMUtility.Vec3FromAngles(ang,pt)*FRandom[ExploS](2,8);
|
||||
if ( bAMBUSH ) c.vel *= 2;
|
||||
}
|
||||
if ( !bAMBUSH ) return;
|
||||
numpt = Random[ExploS](60,90);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
Spawn("SuperFancySparkle",Vec3Offset(0,0,specialf1));
|
||||
Spawn('SuperFancySparkle',Vec3Offset(0,0,specialf1));
|
||||
numpt = Random[ExploS](6,9);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
Spawn("SuperPartyLight",Vec3Offset(0,0,specialf1));
|
||||
Spawn('SuperPartyLight',Vec3Offset(0,0,specialf1));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -669,19 +669,19 @@ Class ChanceboxSpawner : Actor
|
|||
if ( deathmatch )
|
||||
{
|
||||
// not in DM
|
||||
let b = Spawn("HealthNuggetItem",pos);
|
||||
let b = Spawn('HealthNuggetItem',pos);
|
||||
SWWMUtility.TransferItemProp(self,b);
|
||||
ClearCounters();
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
int numbox = 0;
|
||||
ThinkerIterator ti = ThinkerIterator.Create("Chancebox");
|
||||
ThinkerIterator ti = ThinkerIterator.Create('Chancebox');
|
||||
while ( ti.Next() ) numbox++;
|
||||
if ( numbox >= 3 )
|
||||
{
|
||||
// there's three boxes in the map already
|
||||
let b = Spawn("HealthNuggetItem",pos);
|
||||
let b = Spawn('HealthNuggetItem',pos);
|
||||
SWWMUtility.TransferItemProp(self,b);
|
||||
ClearCounters();
|
||||
Destroy();
|
||||
|
|
@ -703,13 +703,13 @@ Class ChanceboxSpawner : Actor
|
|||
if ( tbox[1] > l.bbox[0] ) continue;
|
||||
if ( Level.BoxOnLineSide(pos.xy,32,l) != -1 ) continue;
|
||||
// there isn't enough space to spawn a box here
|
||||
let b = Spawn("HealthNuggetItem",pos);
|
||||
let b = Spawn('HealthNuggetItem',pos);
|
||||
SWWMUtility.TransferItemProp(self,b);
|
||||
ClearCounters();
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
let b = Spawn("Chancebox",pos);
|
||||
let b = Spawn('Chancebox',pos);
|
||||
// copy all our stuff
|
||||
SWWMUtility.TransferItemProp(self,b);
|
||||
ClearCounters();
|
||||
|
|
@ -742,7 +742,7 @@ Class CBoxLight : SpotLightAttenuated
|
|||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( !target || target.InStateSequence(target.CurState,target.FindState("BlowUp")) )
|
||||
if ( !target || target.InStateSequence(target.CurState,target.FindState('BlowUp')) )
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
|
|
@ -799,14 +799,14 @@ Class RewardVIPItems : ChanceboxReward
|
|||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
Class<Inventory> vipammodrop = null;
|
||||
if ( SWWMUtility.ItemExists("Ynykron",ownedonly:true) && SWWMUtility.CheckNeedsItem("YnykronAmmo",true) && Random[Chancebox](0,1) ) vipammodrop = "YnykronAmmo";
|
||||
//if ( SWWMUtility.ItemExists("RafanKos",ownedonly:true) && SWWMUtility.CheckNeedsItem("UltimateAmmo",true) && Random[Chancebox](0,1) && !vipammodrop ) vipammodrop = "UltimateAmmo";
|
||||
if ( SWWMUtility.ItemExists("Spreadgun",ownedonly:true) && SWWMUtility.CheckNeedsItem("GoldShell",true) && !vipammodrop ) vipammodrop = "GoldShell";
|
||||
if ( SWWMUtility.ItemExists('Ynykron',ownedonly:true) && SWWMUtility.CheckNeedsItem('YnykronAmmo',true) && Random[Chancebox](0,1) ) vipammodrop = 'YnykronAmmo';
|
||||
//if ( SWWMUtility.ItemExists("RafanKos',ownedonly:true) && SWWMUtility.CheckNeedsItem('UltimateAmmo',true) && Random[Chancebox](0,1) && !vipammodrop ) vipammodrop = 'UltimateAmmo';
|
||||
if ( SWWMUtility.ItemExists('Spreadgun',ownedonly:true) && SWWMUtility.CheckNeedsItem('GoldShell',true) && !vipammodrop ) vipammodrop = 'GoldShell';
|
||||
Class<Inventory> vipitemdrop = null;
|
||||
if ( SWWMUtility.CheckNeedsItem("Mykradvo",true) && !SWWMUtility.ItemExists("Mykradvo",worldonly:true) && Random[Chancebox](0,1) ) vipitemdrop = "Mykradvo";
|
||||
if ( SWWMUtility.CheckNeedsItem("AngerySigil",true) && !SWWMUtility.ItemExists("AngerySigil",worldonly:true) && Random[Chancebox](0,1) && !vipitemdrop ) vipitemdrop = "AngerySigil";
|
||||
if ( SWWMUtility.CheckNeedsItem("DivineSprite",true) && !SWWMUtility.ItemExists("DivineSprite",worldonly:true) && Random[Chancebox](0,1) && !vipitemdrop ) vipitemdrop = "DivineSprite";
|
||||
if ( !vipitemdrop ) vipitemdrop = "GrilledCheeseSandwich";
|
||||
if ( SWWMUtility.CheckNeedsItem('Mykradvo',true) && !SWWMUtility.ItemExists('Mykradvo',worldonly:true) && Random[Chancebox](0,1) ) vipitemdrop = 'Mykradvo';
|
||||
if ( SWWMUtility.CheckNeedsItem('AngerySigil',true) && !SWWMUtility.ItemExists('AngerySigil',worldonly:true) && Random[Chancebox](0,1) && !vipitemdrop ) vipitemdrop = 'AngerySigil';
|
||||
if ( SWWMUtility.CheckNeedsItem('DivineSprite',true) && !SWWMUtility.ItemExists('DivineSprite',worldonly:true) && Random[Chancebox](0,1) && !vipitemdrop ) vipitemdrop = 'DivineSprite';
|
||||
if ( !vipitemdrop ) vipitemdrop = 'GrilledCheeseSandwich';
|
||||
SpawnCenter(pos,(!Random[Chancebox](0,2)&&vipammodrop)?vipammodrop:vipitemdrop);
|
||||
}
|
||||
}
|
||||
|
|
@ -816,12 +816,12 @@ Class RewardHammer : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.CheckNeedsItem("ItamexHammer");
|
||||
return SWWMUtility.CheckNeedsItem('ItamexHammer');
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"ItamexHammer");
|
||||
SpawnCenter(pos,'ItamexHammer');
|
||||
}
|
||||
}
|
||||
// mortal rifle ammo treats
|
||||
|
|
@ -829,14 +829,14 @@ Class RewardMisterRifle : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("MisterRifle",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("MisterGAmmo",true)||SWWMUtility.CheckNeedsItem("MisterAmmo",true)||SWWMUtility.CheckNeedsItem("MisterRound",true));
|
||||
return SWWMUtility.ItemExists('MisterRifle',ownedonly:true)&&(SWWMUtility.CheckNeedsItem('MisterGAmmo',true)||SWWMUtility.CheckNeedsItem('MisterAmmo',true)||SWWMUtility.CheckNeedsItem('MisterRound',true));
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"MisterGAmmo");
|
||||
SpawnCircle(pos,4,"MisterRound");
|
||||
SpawnCircle(pos,8,"MisterRound",3.);
|
||||
SpawnCenter(pos,'MisterGAmmo');
|
||||
SpawnCircle(pos,4,'MisterRound');
|
||||
SpawnCircle(pos,8,'MisterRound',3.);
|
||||
}
|
||||
}
|
||||
// a spare candy gun and some bullets
|
||||
|
|
@ -844,13 +844,13 @@ Class RewardCandyGun : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("CandyGun",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("CandyGunAmmo",true)||SWWMUtility.CheckNeedsItem("CandyGunBullets",true)||SWWMUtility.CheckNeedsItem("CandyGunSpares",true));
|
||||
return SWWMUtility.ItemExists('CandyGun',ownedonly:true)&&(SWWMUtility.CheckNeedsItem('CandyGunAmmo',true)||SWWMUtility.CheckNeedsItem('CandyGunBullets',true)||SWWMUtility.CheckNeedsItem('CandyGunSpares',true));
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"CandyGun");
|
||||
SpawnCircle(pos,7,"CandyGunBullets");
|
||||
SpawnCenter(pos,'CandyGun');
|
||||
SpawnCircle(pos,7,'CandyGunBullets');
|
||||
}
|
||||
}
|
||||
// them big bolts
|
||||
|
|
@ -858,14 +858,14 @@ Class RewardCandyGun : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("RayKhom",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("RayAmmo",true)||SWWMUtility.CheckNeedsItem("RayBolt",true));
|
||||
return SWWMUtility.ItemExists('RayKhom',ownedonly:true)&&(SWWMUtility.CheckNeedsItem('RayAmmo',true)||SWWMUtility.CheckNeedsItem('RayBolt',true));
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"RayAmmo",true);
|
||||
SpawnCircle(pos,4,"RayBolt");
|
||||
SpawnCircle(pos,6,"RayBolt",3.);
|
||||
SpawnCenter(pos,'RayAmmo',true);
|
||||
SpawnCircle(pos,4,'RayBolt');
|
||||
SpawnCircle(pos,6,'RayBolt',3.);
|
||||
}
|
||||
}*/
|
||||
// them silver bullets
|
||||
|
|
@ -873,13 +873,13 @@ Class RewardSilverBullets : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("SilverBullet",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("SilverBulletAmmo",true)||SWWMUtility.CheckNeedsItem("SilverBullets",true));
|
||||
return SWWMUtility.ItemExists('SilverBullet',ownedonly:true)&&(SWWMUtility.CheckNeedsItem('SilverBulletAmmo',true)||SWWMUtility.CheckNeedsItem('SilverBullets',true));
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCircle(pos,4,"SilverBullets");
|
||||
SpawnCircle(pos,6,"SilverBullets",3.);
|
||||
SpawnCircle(pos,4,'SilverBullets');
|
||||
SpawnCircle(pos,6,'SilverBullets',3.);
|
||||
}
|
||||
}
|
||||
// blues 'n reds
|
||||
|
|
@ -887,12 +887,12 @@ Class RewardSilverBullets : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("ModernSparkster",ownedonly:true)&&(SWWMUtility.CheckNeedsItem("SparksterBAmmo",true)||SWWMUtility.CheckNeedsItem("SparksterRAmmo",true));
|
||||
return SWWMUtility.ItemExists('ModernSparkster',ownedonly:true)&&(SWWMUtility.CheckNeedsItem('SparksterBAmmo',true)||SWWMUtility.CheckNeedsItem('SparksterRAmmo',true));
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCircle(pos,6,"SparksterBAmmo",item2:"SparksterRAmmo");
|
||||
SpawnCircle(pos,6,'SparksterBAmmo',item2:'SparksterRAmmo');
|
||||
}
|
||||
}*/
|
||||
// buncha spark units
|
||||
|
|
@ -900,13 +900,13 @@ Class RewardSparkUnits : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("Sparkster",ownedonly:true)&&SWWMUtility.CheckNeedsItem("SparkUnit",true);
|
||||
return SWWMUtility.ItemExists('Sparkster',ownedonly:true)&&SWWMUtility.CheckNeedsItem('SparkUnit',true);
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"SparkUnit2",true);
|
||||
SpawnCircle(pos,3,"SparkUnit");
|
||||
SpawnCenter(pos,'SparkUnit2',true);
|
||||
SpawnCircle(pos,3,'SparkUnit');
|
||||
}
|
||||
}
|
||||
// assortment of Quadravol cells
|
||||
|
|
@ -914,14 +914,14 @@ Class RewardQuadCells : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("Quadravol",ownedonly:true)&&SWWMUtility.CheckNeedsItem("QuadravolAmmo",true);
|
||||
return SWWMUtility.ItemExists('Quadravol',ownedonly:true)&&SWWMUtility.CheckNeedsItem('QuadravolAmmo',true);
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"QuadravolAmmo3",true);
|
||||
SpawnCircle(pos,3,"QuadravolAmmo");
|
||||
SpawnCircle(pos,6,"QuadravolAmmo",3.);
|
||||
SpawnCenter(pos,'QuadravolAmmo3',true);
|
||||
SpawnCircle(pos,3,'QuadravolAmmo');
|
||||
SpawnCircle(pos,6,'QuadravolAmmo',3.);
|
||||
}
|
||||
}
|
||||
// lotta hellblazers
|
||||
|
|
@ -929,14 +929,14 @@ Class RewardHellblazers : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("Hellblazer",ownedonly:true)&&SWWMUtility.CheckNeedsItem("HellblazerMissiles",true);
|
||||
return SWWMUtility.ItemExists('Hellblazer',ownedonly:true)&&SWWMUtility.CheckNeedsItem('HellblazerMissiles',true);
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"HellblazerMissiles3",true);
|
||||
SpawnCircle(pos,3,"HellblazerMissiles");
|
||||
SpawnCircle(pos,6,"HellblazerMissiles",3.);
|
||||
SpawnCenter(pos,'HellblazerMissiles3',true);
|
||||
SpawnCircle(pos,3,'HellblazerMissiles');
|
||||
SpawnCircle(pos,6,'HellblazerMissiles',3.);
|
||||
}
|
||||
}
|
||||
// BOOLETS
|
||||
|
|
@ -944,14 +944,14 @@ Class RewardSheenAmmo : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("HeavyMahSheenGun",ownedonly:true)&&SWWMUtility.CheckNeedsItem("SheenAmmo",true);
|
||||
return SWWMUtility.ItemExists('HeavyMahSheenGun',ownedonly:true)&&SWWMUtility.CheckNeedsItem('SheenAmmo',true);
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"SheenBigAmmo",true);
|
||||
SpawnCircle(pos,5,"SheenSmallAmmo",3.);
|
||||
SpawnCircle(pos,8,"SheenAmmo3",5.,item2:"SheenAmmo2");
|
||||
SpawnCenter(pos,'SheenBigAmmo',true);
|
||||
SpawnCircle(pos,5,'SheenSmallAmmo',3.);
|
||||
SpawnCircle(pos,8,'SheenAmmo3',5.,item2:'SheenAmmo2');
|
||||
}
|
||||
}
|
||||
// Flak'em
|
||||
|
|
@ -959,13 +959,13 @@ Class RewardFlakShells : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return SWWMUtility.ItemExists("Eviscerator",ownedonly:true)&&SWWMUtility.CheckNeedsItem("EvisceratorShell",true);
|
||||
return SWWMUtility.ItemExists('Eviscerator',ownedonly:true)&&SWWMUtility.CheckNeedsItem('EvisceratorShell',true);
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"EvisceratorSixPack",true);
|
||||
SpawnCircle(pos,6,"EvisceratorShell",3.);
|
||||
SpawnCenter(pos,'EvisceratorSixPack',true);
|
||||
SpawnCircle(pos,6,'EvisceratorShell',3.);
|
||||
}
|
||||
}
|
||||
// screwbullet droppage
|
||||
|
|
@ -973,14 +973,14 @@ Class RewardFlakShells : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return (SWWMUtility.ItemExists("PuntzerBeta",ownedonly:true)||SWWMUtility.ItemExists("PuntzerGamma",ownedonly:true))&&SWWMUtility.CheckNeedsItem("SMW05Ammo",true);
|
||||
return (SWWMUtility.ItemExists('PuntzerBeta',ownedonly:true)||SWWMUtility.ItemExists('PuntzerGamma',ownedonly:true))&&SWWMUtility.CheckNeedsItem('SMW05Ammo',true);
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"SMW05SmallAmmo",true);
|
||||
SpawnCircle(pos,6,"SMW05Ammo2",2.);
|
||||
SpawnCircle(pos,12,"SMW05Ammo",4.);
|
||||
SpawnCenter(pos,'SMW05SmallAmmo',true);
|
||||
SpawnCircle(pos,6,'SMW05Ammo2',2.);
|
||||
SpawnCircle(pos,12,'SMW05Ammo',4.);
|
||||
}
|
||||
}*/
|
||||
// Lotta shells
|
||||
|
|
@ -988,14 +988,14 @@ Class RewardShells : ChanceboxReward
|
|||
{
|
||||
override bool CheckRequirements()
|
||||
{
|
||||
return (SWWMUtility.ItemExists("Spreadgun",ownedonly:true)||SWWMUtility.ItemExists("Wallbuster",ownedonly:true))&&SWWMUtility.CheckNeedsItem("RedShell",true);
|
||||
return (SWWMUtility.ItemExists('Spreadgun',ownedonly:true)||SWWMUtility.ItemExists('Wallbuster',ownedonly:true))&&SWWMUtility.CheckNeedsItem('RedShell',true);
|
||||
}
|
||||
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"RedShell4",true);
|
||||
SpawnCircle(pos,4,"RedShell2",2.);
|
||||
SpawnCircle(pos,8,"RedShell",4.);
|
||||
SpawnCenter(pos,'RedShell4',true);
|
||||
SpawnCircle(pos,4,'RedShell2',2.);
|
||||
SpawnCircle(pos,8,'RedShell',4.);
|
||||
}
|
||||
}
|
||||
// Buncha nuggets
|
||||
|
|
@ -1003,7 +1003,7 @@ Class RewardNuggets : ChanceboxReward
|
|||
{
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCircle(pos,20,Random[ChanceBox](0,1)?"HealthNuggetItem":"ArmorNuggetItem",1.,7.);
|
||||
SpawnCircle(pos,20,Random[ChanceBox](0,1)?'HealthNuggetItem':'ArmorNuggetItem',1.,7.);
|
||||
}
|
||||
}
|
||||
// Healing surprise
|
||||
|
|
@ -1011,8 +1011,8 @@ Class RewardSuperHealth : ChanceboxReward
|
|||
{
|
||||
override void SpawnReward( Vector3 pos )
|
||||
{
|
||||
SpawnCenter(pos,"RefresherItem");
|
||||
SpawnCircle(pos,15,"HealthNuggetItem",3.);
|
||||
SpawnCenter(pos,'RefresherItem');
|
||||
SpawnCircle(pos,15,'HealthNuggetItem',3.);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1103,7 +1103,7 @@ Class Chancebox : Actor
|
|||
break;
|
||||
}
|
||||
if ( blockedff ) continue;
|
||||
let sp = new("BoxSpawnSpot");
|
||||
let sp = new('BoxSpawnSpot');
|
||||
sp.pos = (testpos.x,testpos.y,fz);
|
||||
sp.angle = k+180;
|
||||
spots.Push(sp);
|
||||
|
|
@ -1121,7 +1121,7 @@ Class Chancebox : Actor
|
|||
break;
|
||||
}
|
||||
if ( blocked ) continue;
|
||||
let sp = new("BoxSpawnSpot");
|
||||
let sp = new('BoxSpawnSpot');
|
||||
sp.pos = testpos;
|
||||
sp.angle = k+180;
|
||||
spots.Push(sp);
|
||||
|
|
@ -1130,7 +1130,7 @@ Class Chancebox : Actor
|
|||
}
|
||||
if ( spots.Size() < 10 ) continue;
|
||||
int ws = Random[Chancebox](0,spots.Size()-1);
|
||||
let c = Spawn("ChanceboxSpawner",spots[ws].pos);
|
||||
let c = Spawn('ChanceboxSpawner',spots[ws].pos);
|
||||
c.angle = spots[ws].angle;
|
||||
tboxes++;
|
||||
if ( tboxes >= 3 ) break; // already spawned 3 boxes in one map (which is a lot)
|
||||
|
|
@ -1150,7 +1150,7 @@ Class Chancebox : Actor
|
|||
if ( !def.ValidGame() ) continue;
|
||||
candidates.Push(c);
|
||||
}
|
||||
let ti = ThinkerIterator.Create("SWWMCollectible");
|
||||
let ti = ThinkerIterator.Create('SWWMCollectible');
|
||||
SWWMCollectible c;
|
||||
while ( c = SWWMCollectible(ti.Next()) )
|
||||
{
|
||||
|
|
@ -1165,7 +1165,7 @@ Class Chancebox : Actor
|
|||
{
|
||||
// spawn another smaller chancebox
|
||||
// (chance increases for the inner box, up until a scale factor of 50% is reached)
|
||||
let a = Spawn("Chancebox",pos+(0,0,3*scale.y));
|
||||
let a = Spawn('Chancebox',pos+(0,0,3*scale.y));
|
||||
a.vel.z = FRandom[Chancebox](2,4);
|
||||
a.angle = angle;
|
||||
a.scale *= scale.x-.125;
|
||||
|
|
@ -1197,7 +1197,7 @@ Class Chancebox : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,8);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",Vec3Offset(0,0,16));
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',Vec3Offset(0,0,16));
|
||||
s.vel = pvel;
|
||||
s.scolor = Color(2,1,3)*Random[ExploS](64,85);
|
||||
s.framestep = Random[ExploS](2,5);
|
||||
|
|
@ -1234,7 +1234,7 @@ Class Chancebox : Actor
|
|||
{
|
||||
ang = FRandom[ExploS](0,360);
|
||||
pt = FRandom[ExploS](-90,30);
|
||||
let c = Spawn("FancyConfetti",Vec3Offset(0,0,16*scale.y));
|
||||
let c = Spawn('FancyConfetti',Vec3Offset(0,0,16*scale.y));
|
||||
c.vel = SWWMUtility.Vec3FromAngles(ang,pt)*FRandom[ExploS](2,8);
|
||||
}
|
||||
}
|
||||
|
|
@ -1248,7 +1248,7 @@ Class Chancebox : Actor
|
|||
if ( !chanceinit )
|
||||
{
|
||||
int col = 0;
|
||||
let ti = ThinkerIterator.Create("SWWMCollectible");
|
||||
let ti = ThinkerIterator.Create('SWWMCollectible');
|
||||
SWWMCollectible c;
|
||||
while ( c = SWWMCollectible(ti.Next()) ) col++;
|
||||
int tcol = 0;
|
||||
|
|
@ -1265,7 +1265,7 @@ Class Chancebox : Actor
|
|||
if ( (col > 0) && !Random[Chancebox](0,alldudchance) )
|
||||
{
|
||||
// all boxes are duds
|
||||
let ti = ThinkerIterator.Create("Chancebox");
|
||||
let ti = ThinkerIterator.Create('Chancebox');
|
||||
Chancebox c;
|
||||
while ( c = Chancebox(ti.Next()) )
|
||||
{
|
||||
|
|
@ -1277,7 +1277,7 @@ Class Chancebox : Actor
|
|||
{
|
||||
int nbox = 0, ndud = 0;
|
||||
// this one's a dud (unless all the others are)
|
||||
let ti = ThinkerIterator.Create("Chancebox");
|
||||
let ti = ThinkerIterator.Create('Chancebox');
|
||||
Chancebox c;
|
||||
while ( c = Chancebox(ti.Next()) )
|
||||
{
|
||||
|
|
@ -1290,7 +1290,7 @@ Class Chancebox : Actor
|
|||
else
|
||||
{
|
||||
// the others are duds
|
||||
let ti = ThinkerIterator.Create("Chancebox");
|
||||
let ti = ThinkerIterator.Create('Chancebox');
|
||||
Chancebox c;
|
||||
bool onemore = !Random[Chancebox](0,2); // unless...
|
||||
while ( c = Chancebox(ti.Next()) )
|
||||
|
|
@ -1310,7 +1310,7 @@ Class Chancebox : Actor
|
|||
}
|
||||
SWWMLoreLibrary.Add(user.player,"Chancebox");
|
||||
specialf2 = AngleTo(user);
|
||||
SetStateLabel("PreActive");
|
||||
SetStateLabel('PreActive');
|
||||
target = user;
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1319,15 +1319,15 @@ Class Chancebox : Actor
|
|||
Super.PostBeginPlay();
|
||||
for ( int i=0; i<4; i++ )
|
||||
{
|
||||
let l = Spawn("CBoxLight",pos);
|
||||
let l = Spawn('CBoxLight',pos);
|
||||
l.special1 = i;
|
||||
l.target = self;
|
||||
}
|
||||
let ti = ThinkerIterator.Create("Chancebox");
|
||||
let ti = ThinkerIterator.Create('Chancebox');
|
||||
Chancebox c;
|
||||
while ( c = Chancebox(ti.Next()) )
|
||||
{
|
||||
if ( c.dud || (c.CurState == c.FindState("Spawn")) )
|
||||
if ( c.dud || (c.CurState == c.FindState('Spawn')) )
|
||||
continue;
|
||||
// automatically become a dud if collectible has been found
|
||||
dud = true;
|
||||
|
|
@ -1360,7 +1360,7 @@ Class Chancebox : Actor
|
|||
int sign = (delta>=0.)?1:-1;
|
||||
delta = clamp(abs(delta)*.15,.1,10.)*sign;
|
||||
angle += delta;
|
||||
return A_JumpIf(abs(deltaangle(angle,specialf2))<1.,"Active");
|
||||
return A_JumpIf(abs(deltaangle(angle,specialf2))<1.,'Active');
|
||||
}
|
||||
Wait;
|
||||
Active:
|
||||
|
|
@ -1377,7 +1377,7 @@ Class Chancebox : Actor
|
|||
pitch = FRandom[Chancebox](-5,5);
|
||||
roll = FRandom[Chancebox](-5,5);
|
||||
special1++;
|
||||
return A_JumpIf(special1>int(40*scale.x),"BlowUp");
|
||||
return A_JumpIf(special1>int(40*scale.x),'BlowUp');
|
||||
}
|
||||
Wait;
|
||||
BlowUp:
|
||||
|
|
@ -1388,13 +1388,13 @@ Class Chancebox : Actor
|
|||
A_StartSound("chancebox/explode",CHAN_VOICE,pitch:1./scale.x);
|
||||
angle = specialf1;
|
||||
pitch = roll = 0;
|
||||
let t = Spawn("ChanceboxTop",Vec3Offset(0,0,20*scale.y));
|
||||
let t = Spawn('ChanceboxTop',Vec3Offset(0,0,20*scale.y));
|
||||
t.angle = angle;
|
||||
t.scale = scale;
|
||||
let s1 = Spawn("ChanceboxSide",level.Vec3Offset(pos,(RotateVector((12*scale.x,0),angle+90),0)));
|
||||
let s1 = Spawn('ChanceboxSide',level.Vec3Offset(pos,(RotateVector((12*scale.x,0),angle+90),0)));
|
||||
s1.angle = angle+90;
|
||||
s1.scale = scale;
|
||||
let s2 = Spawn("ChanceboxSide",level.Vec3Offset(pos,(RotateVector((12*scale.x,0),angle-90),0)));
|
||||
let s2 = Spawn('ChanceboxSide',level.Vec3Offset(pos,(RotateVector((12*scale.x,0),angle-90),0)));
|
||||
s2.angle = angle-90;
|
||||
s2.scale = scale;
|
||||
A_DropSomething();
|
||||
|
|
@ -1437,7 +1437,7 @@ Class ChanceboxTop : Actor
|
|||
}
|
||||
Wait;
|
||||
Death:
|
||||
TNT1 A 1 A_SpawnItemEx("ExplodiumBulletImpact");
|
||||
TNT1 A 1 A_SpawnItemEx('ExplodiumBulletImpact');
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
|
@ -1474,7 +1474,7 @@ Class ChanceboxSide : Actor
|
|||
}
|
||||
Wait;
|
||||
Death:
|
||||
TNT1 A 1 A_SpawnItemEx("ExplodiumBulletImpact");
|
||||
TNT1 A 1 A_SpawnItemEx('ExplodiumBulletImpact');
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ Class HealthNuggetItem : SWWMHealth
|
|||
Inventory.PickupMessage "$T_NUGGETH";
|
||||
Inventory.MaxAmount 0;
|
||||
Inventory.InterHubAmount 0;
|
||||
SWWMHealth.GiveHealth "HealthNugget";
|
||||
SWWMHealth.GiveHealth 'HealthNugget';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
-INVENTORY.INVBAR;
|
||||
}
|
||||
|
|
@ -131,7 +131,7 @@ Class TetraHealthItem : SWWMHealth
|
|||
Inventory.PickupMessage "$T_TETRAHEALTH";
|
||||
Inventory.MaxAmount 15;
|
||||
Inventory.InterHubAmount 15;
|
||||
SWWMHealth.GiveHealth "TetraHealth";
|
||||
SWWMHealth.GiveHealth 'TetraHealth';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -156,7 +156,7 @@ Class CubeHealthItem : SWWMHealth
|
|||
Inventory.PickupMessage "$T_CUBEHEALTH";
|
||||
Inventory.MaxAmount 10;
|
||||
Inventory.InterHubAmount 10;
|
||||
SWWMHealth.GiveHealth "CubeHealth";
|
||||
SWWMHealth.GiveHealth 'CubeHealth';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -178,9 +178,9 @@ Class RefresherItem : SWWMHealth
|
|||
SWWMUtility.AchievementProgressInc("refresh",1,Owner.player);
|
||||
// regen effect doesn't stack if we autoactivated recursively
|
||||
if ( recursive ) return;
|
||||
let p = Powerup(Owner.FindInventory("RefresherRegen"));
|
||||
let p = Powerup(Owner.FindInventory('RefresherRegen'));
|
||||
if ( p ) p.EffectTics += p.default.EffectTics;
|
||||
else Owner.GiveInventory("RefresherRegen",1);
|
||||
else Owner.GiveInventory('RefresherRegen',1);
|
||||
SWWMHandler.DoFlash(Owner,Color(80,224,128,255),20);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 0.95;
|
||||
|
|
@ -199,7 +199,7 @@ Class RefresherItem : SWWMHealth
|
|||
Inventory.PickupMessage "$T_REFRESHER";
|
||||
Inventory.PickupSound "misc/p_pkup";
|
||||
Inventory.UseSound "powerup/refresheruse";
|
||||
SWWMHealth.GiveHealth "RefresherHealth";
|
||||
SWWMHealth.GiveHealth 'RefresherHealth';
|
||||
+COUNTITEM;
|
||||
+INVENTORY.BIGPOWERUP;
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ Class SWWMRedCard : SWWMKey
|
|||
Tag "$T_REDCARD";
|
||||
Species "RedCard";
|
||||
Inventory.PickupMessage "$T_REDCARD";
|
||||
Inventory.PickupFlash "SWWMRedPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMRedPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -54,7 +54,7 @@ Class SWWMYellowCard : SWWMKey
|
|||
Tag "$T_YELLOWCARD";
|
||||
Species "YellowCard";
|
||||
Inventory.PickupMessage "$T_YELLOWCARD";
|
||||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -70,7 +70,7 @@ Class SWWMBlueCard : SWWMKey
|
|||
Tag "$T_BLUECARD";
|
||||
Species "BlueCard";
|
||||
Inventory.PickupMessage "$T_BLUECARD";
|
||||
Inventory.PickupFlash "SWWMBluePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMBluePickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -86,7 +86,7 @@ Class SWWMSilverCardKDiZD : SWWMKey
|
|||
Tag "$T_SILVERCARD";
|
||||
Species "BlueSkull";
|
||||
Inventory.PickupMessage "$T_SILVERCARD";
|
||||
Inventory.PickupFlash "SWWMWhitePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMWhitePickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -102,7 +102,7 @@ Class SWWMGreenCardKDiZD : SWWMKey
|
|||
Tag "$T_GREENCARD";
|
||||
Species "YellowSkull";
|
||||
Inventory.PickupMessage "$T_GREENCARD";
|
||||
Inventory.PickupFlash "SWWMGreenPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMGreenPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -118,7 +118,7 @@ Class SWWMOrangeCardKDiZD : SWWMKey
|
|||
Tag "$T_ORANGECARD";
|
||||
Species "RedSkull";
|
||||
Inventory.PickupMessage "$T_ORANGECARD";
|
||||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -134,7 +134,7 @@ Class SWWMGreenCard : SWWMKey
|
|||
Tag "$T_GREENCARD";
|
||||
Species "GreenCard";
|
||||
Inventory.PickupMessage "$T_GREENCARD";
|
||||
Inventory.PickupFlash "SWWMGreenPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMGreenPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -152,7 +152,7 @@ Class SWWMRedSkull : SWWMKey
|
|||
Tag "$T_REDSKULL";
|
||||
Species "RedSkull";
|
||||
Inventory.PickupMessage "$T_REDSKULL";
|
||||
Inventory.PickupFlash "SWWMRedPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMRedPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -168,7 +168,7 @@ Class SWWMBlueSkull : SWWMKey
|
|||
Tag "$T_BLUESKULL";
|
||||
Species "BlueSkull";
|
||||
Inventory.PickupMessage "$T_BLUESKULL";
|
||||
Inventory.PickupFlash "SWWMBluePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMBluePickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -184,7 +184,7 @@ Class SWWMYellowSkull : SWWMKey
|
|||
Tag "$T_YELLOWSKULL";
|
||||
Species "YellowSkull";
|
||||
Inventory.PickupMessage "$T_YELLOWSKULL";
|
||||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -200,7 +200,7 @@ Class SWWMPurpleSkull : SWWMKey
|
|||
Tag "$T_PURPLESKULL";
|
||||
Species "PurpleSkull";
|
||||
Inventory.PickupMessage "$T_PURPLESKULL";
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -283,7 +283,7 @@ Class SWWMKeyGreen : SWWMKey
|
|||
Tag "$T_KEYGREEN";
|
||||
Species "KeyGreen";
|
||||
Inventory.PickupMessage "$T_KEYGREEN";
|
||||
Inventory.PickupFlash "SWWMGreenPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMGreenPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -299,7 +299,7 @@ Class SWWMKeyBlue : SWWMKey
|
|||
Tag "$T_KEYBLUE";
|
||||
Species "KeyBlue";
|
||||
Inventory.PickupMessage "$T_KEYBLUE";
|
||||
Inventory.PickupFlash "SWWMBluePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMBluePickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -315,7 +315,7 @@ Class SWWMKeyYellow : SWWMKey
|
|||
Tag "$T_KEYYELLOW";
|
||||
Species "KeyYellow";
|
||||
Inventory.PickupMessage "$T_KEYYELLOW";
|
||||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -331,7 +331,7 @@ Class SWWMKeyRed : SWWMKey
|
|||
Tag "$T_KEYRED";
|
||||
Species "KeyRed";
|
||||
Inventory.PickupMessage "$T_KEYRED";
|
||||
Inventory.PickupFlash "SWWMRedPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMRedPickupFlash';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ Class LampMoth : Actor
|
|||
{
|
||||
// look for nearby lamps
|
||||
double mindist = 62500.;
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
foreach ( s:level.Sectors )
|
||||
{
|
||||
// don't check sectors that aren't within bounds, saves some time
|
||||
|
|
@ -111,12 +111,12 @@ Class LampMoth : Actor
|
|||
if ( !target || (target.Health <= 0) || target.IsFriend(self) )
|
||||
{
|
||||
A_ClearTarget();
|
||||
SetStateLabel("Spawn");
|
||||
SetStateLabel('Spawn');
|
||||
return;
|
||||
}
|
||||
if ( CheckMeleeRange() )
|
||||
{
|
||||
SetStateLabel("Melee");
|
||||
SetStateLabel('Melee');
|
||||
return;
|
||||
}
|
||||
Vector3 dest = target.Vec3Offset(0,0,target.height*.75);
|
||||
|
|
@ -145,7 +145,7 @@ Class LampMoth : Actor
|
|||
{
|
||||
if ( !lamp )
|
||||
{
|
||||
SetStateLabel("Spawn");
|
||||
SetStateLabel('Spawn');
|
||||
return;
|
||||
}
|
||||
double dst = level.Vec3Diff(pos,trail).length();
|
||||
|
|
@ -219,7 +219,7 @@ Class LampMoth : Actor
|
|||
lifespan--;
|
||||
if ( lifespan <= 0 )
|
||||
{
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',pos);
|
||||
s.alpha *= .3;
|
||||
Destroy();
|
||||
}
|
||||
|
|
@ -227,7 +227,7 @@ Class LampMoth : Actor
|
|||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 B 0 A_JumpIf(isEntranced(),"See.Entranced");
|
||||
XZW1 B 0 A_JumpIf(isEntranced(),'See.Entranced');
|
||||
XZW1 BC 1
|
||||
{
|
||||
A_SmoothWander();
|
||||
|
|
@ -235,11 +235,11 @@ Class LampMoth : Actor
|
|||
}
|
||||
Loop;
|
||||
See: // go for enemies
|
||||
XZW1 B 0 A_JumpIf(isEntranced(),"See.Entranced");
|
||||
XZW1 B 0 A_JumpIf(isEntranced(),'See.Entranced');
|
||||
XZW1 BC 1 A_SmoothChase();
|
||||
Loop;
|
||||
See.Entranced: // follow the lamp
|
||||
XZW1 B 0 A_JumpIf(!isEntranced(),"Spawn");
|
||||
XZW1 B 0 A_JumpIf(!isEntranced(),'Spawn');
|
||||
XZW1 BC 1
|
||||
{
|
||||
A_FollowLamp();
|
||||
|
|
@ -255,7 +255,7 @@ Class LampMoth : Actor
|
|||
TNT1 A 1
|
||||
{
|
||||
A_StartSound("moth/die",CHAN_VOICE,CHANF_OVERLAP,.6,2.5);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',pos);
|
||||
s.alpha *= .3;
|
||||
}
|
||||
Stop;
|
||||
|
|
@ -314,14 +314,14 @@ Class CompanionLamp : Actor
|
|||
Vector3 spawnpos = level.Vec3Offset(Vec3Offset(0,0,height/2),ofs);
|
||||
if ( !level.IsPointInLevel(spawnpos) ) return;
|
||||
// higher chance of white moths if carrying the plush
|
||||
int mchance = parent.FindInventory("MothPlushy")?3:9;
|
||||
let m = LampMoth(Spawn(Random[Moth](0,mchance)?"LampMoth":"LampMoth2",spawnpos));
|
||||
int mchance = parent.FindInventory('MothPlushy')?3:9;
|
||||
let m = LampMoth(Spawn(Random[Moth](0,mchance)?'LampMoth':'LampMoth2',spawnpos));
|
||||
if ( !m.TestMobjLocation() )
|
||||
{
|
||||
m.Destroy();
|
||||
return;
|
||||
}
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",m.pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',m.pos);
|
||||
s.alpha *= .3;
|
||||
m.master = parent;
|
||||
m.lamp = self;
|
||||
|
|
@ -337,7 +337,7 @@ Class CompanionLamp : Actor
|
|||
Destroy();
|
||||
return;
|
||||
}
|
||||
Spawn("SWWMItemFog",pos);
|
||||
Spawn('SWWMItemFog',pos);
|
||||
Trail = pos;
|
||||
}
|
||||
|
||||
|
|
@ -392,7 +392,7 @@ Class CompanionLamp : Actor
|
|||
{
|
||||
Vector3 rel = level.Vec3Diff(pos,trail);
|
||||
justteleport = false;
|
||||
Actor f = Spawn("SWWMItemFog",pos);
|
||||
Actor f = Spawn('SWWMItemFog',pos);
|
||||
f.A_StartSound("lamp/disappear",CHAN_VOICE);
|
||||
// carry over the moths
|
||||
foreach ( m:moff )
|
||||
|
|
@ -409,7 +409,7 @@ Class CompanionLamp : Actor
|
|||
SetOrigin(trail,false);
|
||||
angle = AngleTo(parent);
|
||||
vel *= 0.;
|
||||
f = Spawn("SWWMItemFog",pos);
|
||||
f = Spawn('SWWMItemFog',pos);
|
||||
f.A_StartSound("lamp/appear",CHAN_VOICE);
|
||||
return;
|
||||
}
|
||||
|
|
@ -477,7 +477,7 @@ Class CompanionLamp : Actor
|
|||
if ( SWWMLamp(master) && SWWMLamp(master).bActive )
|
||||
{
|
||||
A_StartSound("lamp/on",CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
||||
return ResolveState("Active");
|
||||
return ResolveState('Active');
|
||||
}
|
||||
return ResolveState(null);
|
||||
}
|
||||
|
|
@ -489,7 +489,7 @@ Class CompanionLamp : Actor
|
|||
if ( !SWWMLamp(master) || !SWWMLamp(master).bActive )
|
||||
{
|
||||
A_StartSound("lamp/off",CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
||||
return ResolveState("Spawn");
|
||||
return ResolveState('Spawn');
|
||||
}
|
||||
return ResolveState(null);
|
||||
}
|
||||
|
|
@ -591,10 +591,10 @@ Class SWWMLamp : Inventory
|
|||
Super.DoEffect();
|
||||
if ( !thelamp && bActivated )
|
||||
{
|
||||
thelamp = Spawn("CompanionLamp",level.Vec3Offset(Owner.pos,SWWMUtility.RotateVector3((20,0,24),Owner.angle)));
|
||||
thelamp = Spawn('CompanionLamp',level.Vec3Offset(Owner.pos,SWWMUtility.RotateVector3((20,0,24),Owner.angle)));
|
||||
CompanionLamp(thelamp).parent = Owner;
|
||||
thelamp.master = self;
|
||||
let f = Spawn("SWWMItemFog",thelamp.pos);
|
||||
let f = Spawn('SWWMItemFog',thelamp.pos);
|
||||
f.A_StartSound("lamp/appear",CHAN_VOICE);
|
||||
}
|
||||
if ( bActive && !(level.maptime%35) && !isFrozen() ) Charge--;
|
||||
|
|
@ -604,7 +604,7 @@ Class SWWMLamp : Inventory
|
|||
inactivetime++;
|
||||
if ( inactivetime > 350 ) // hide the lamp after 10 seconds of inactivity, so it doesn't get in your way
|
||||
{
|
||||
let f = Spawn("SWWMItemFog",thelamp.pos);
|
||||
let f = Spawn('SWWMItemFog',thelamp.pos);
|
||||
f.A_StartSound("lamp/disappear",CHAN_VOICE);
|
||||
thelamp.Destroy();
|
||||
bActivated = false;
|
||||
|
|
@ -622,7 +622,7 @@ Class SWWMLamp : Inventory
|
|||
Super.DetachFromOwner();
|
||||
if ( thelamp )
|
||||
{
|
||||
let f = Spawn("SWWMItemFog",thelamp.pos);
|
||||
let f = Spawn('SWWMItemFog',thelamp.pos);
|
||||
f.A_StartSound("lamp/disappear",CHAN_VOICE);
|
||||
thelamp.Destroy();
|
||||
}
|
||||
|
|
@ -643,7 +643,7 @@ Class SWWMLamp : Inventory
|
|||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Class Omnisight : Inventory
|
|||
Demolitionist(rt).lastbump *= 1.1;
|
||||
level.allmap = true;
|
||||
// activate all interest markers
|
||||
let ti = ThinkerIterator.Create("SWWMInterestMarker",STAT_MAPMARKER);
|
||||
let ti = ThinkerIterator.Create('SWWMInterestMarker',STAT_MAPMARKER);
|
||||
Actor a;
|
||||
while ( a = Actor(ti.Next()) ) a.bDORMANT = false;
|
||||
// "spread" to all players
|
||||
|
|
@ -44,8 +44,8 @@ Class Omnisight : Inventory
|
|||
Tag "$T_OMNISIGHT";
|
||||
Inventory.PickupSound "misc/p_pkup";
|
||||
Inventory.PickupMessage "$I_OMNISIGHT";
|
||||
Inventory.RestrictedTo "Demolitionist";
|
||||
Inventory.PickupFlash "SWWMCyanPickupFlash";
|
||||
Inventory.RestrictedTo 'Demolitionist';
|
||||
Inventory.PickupFlash 'SWWMCyanPickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+COUNTITEM;
|
||||
+INVENTORY.BIGPOWERUP;
|
||||
|
|
@ -91,7 +91,7 @@ Class SafetyTether : Inventory
|
|||
{
|
||||
let p = Spawn(PickupFlash,pos);
|
||||
p.target = self;
|
||||
p.SetStateLabel("Pickup");
|
||||
p.SetStateLabel('Pickup');
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -122,11 +122,11 @@ Class SafetyTether : Inventory
|
|||
if ( Owner.player == players[consoleplayer] ) Console.Printf(StringTable.Localize("$D_TETHERFAIL"));
|
||||
return;
|
||||
}
|
||||
let s = Spawn("DemolitionistShockwave",oldpos);
|
||||
let s = Spawn('DemolitionistShockwave',oldpos);
|
||||
s.target = Owner;
|
||||
s.special1 = 120;
|
||||
s.A_AlertMonsters(0,AMF_EMITFROMTARGET);
|
||||
s = Spawn("DemolitionistShockwave",Owner.pos);
|
||||
s = Spawn('DemolitionistShockwave',Owner.pos);
|
||||
s.target = Owner;
|
||||
s.special1 = 120;
|
||||
s.A_AlertMonsters(0,AMF_EMITFROMTARGET);
|
||||
|
|
@ -178,7 +178,7 @@ Class SafetyTether : Inventory
|
|||
Inventory.PickupMessage "$T_SAFETY";
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMCyanPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMCyanPickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
@ -212,7 +212,7 @@ Class BallImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = (x+SWWMUtility.Vec3FromAngles(FRandom[Spreadgun](0,360),FRandom[Spreadgun](-90,90))*.8).unit()*FRandom[Spreadgun](.1,1.2);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(1,1,1)*Random[Spreadgun](128,192));
|
||||
}
|
||||
|
|
@ -220,14 +220,14 @@ Class BallImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Spreadgun](0,360),FRandom[Spreadgun](-90,90))*FRandom[Spreadgun](2,8);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[Spreadgun](4,8);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Spreadgun](0,360),FRandom[Spreadgun](-90,90))*FRandom[Spreadgun](2,8);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
Destroy();
|
||||
|
|
@ -256,6 +256,7 @@ Class TheBall : Actor
|
|||
+NODAMAGETHRUST;
|
||||
+ALLOWBOUNCEONACTORS;
|
||||
+DONTBOUNCEONSHOOTABLES;
|
||||
+KEEPBOUNCEANGLE;
|
||||
+HITOWNER;
|
||||
-NOGRAVITY;
|
||||
Speed 80;
|
||||
|
|
@ -279,7 +280,7 @@ Class TheBall : Actor
|
|||
bool crit = false;
|
||||
if ( is_schutt && !Random[Spreadgun](0,9) )
|
||||
{
|
||||
Spawn("SWWMItemFog",pos);
|
||||
Spawn('SWWMItemFog',pos);
|
||||
int whichclonk = Random[Spreadgun](1,11);
|
||||
String snd = String.Format("misc/clonk%d",whichclonk);
|
||||
A_AlertMonsters(swwm_uncapalert?0:2500,AMF_EMITFROMTARGET);
|
||||
|
|
@ -294,7 +295,7 @@ Class TheBall : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Spreadgun](0,360),FRandom[Spreadgun](-90,90))*FRandom[Spreadgun](1,8);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.scale *= 3.;
|
||||
s.alpha *= .2;
|
||||
s.vel = pvel;
|
||||
|
|
@ -323,7 +324,7 @@ Class TheBall : Actor
|
|||
if ( victim ) victim.A_StartSound("leadball/hit",CHAN_DAMAGE,CHANF_OVERLAP,(vel.length()/30.)**.5);
|
||||
if ( vel.length() > 15. )
|
||||
{
|
||||
let s = Spawn("BallImpact",pos);
|
||||
let s = Spawn('BallImpact',pos);
|
||||
s.angle = atan2(dir.y,dir.x);
|
||||
s.pitch = asin(-dir.z);
|
||||
}
|
||||
|
|
@ -331,7 +332,7 @@ Class TheBall : Actor
|
|||
// make it so the crit does not propagate to friendlies unless we bonked a friend (you monster!)
|
||||
if ( crit )
|
||||
SWWMUtility.DoExplosion(self,dmg/2,25000,150,80,((victim.isFriend(target))?0:DE_NOHURTFRIEND)|DE_NONEXPLOSIVE,crit?'CriticalConcussion':'Concussion',target,DMG_FOILINVUL);
|
||||
if ( crit && victim && (victim.Health <= 0) && (victim.bBOSS || victim.FindInventory("BossMarker")) && target )
|
||||
if ( crit && victim && (victim.Health <= 0) && (victim.bBOSS || victim.FindInventory('BossMarker')) && target )
|
||||
SWWMUtility.MarkAchievement("clonk",target.player);
|
||||
// only rip shootables
|
||||
if ( (slamforce > girth) && is_schutt )
|
||||
|
|
@ -357,7 +358,7 @@ Class TheBall : Actor
|
|||
oldvel = vel;
|
||||
Super.Tick();
|
||||
if ( isFrozen() || (freezetics > 0) ) return;
|
||||
if ( InStateSequence(CurState,ResolveState("Death")) )
|
||||
if ( InStateSequence(CurState,ResolveState('Death')) )
|
||||
{
|
||||
deadtimer++;
|
||||
if ( deadtimer > 300 )
|
||||
|
|
@ -366,7 +367,7 @@ Class TheBall : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Spreadgun](0,360),FRandom[Spreadgun](-90,90))*FRandom[Spreadgun](1,8);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',pos);
|
||||
s.scale *= 3.;
|
||||
s.alpha *= .2;
|
||||
s.vel = pvel;
|
||||
|
|
@ -378,7 +379,7 @@ Class TheBall : Actor
|
|||
heat -= 0.004+0.0004*vel.length();
|
||||
A_SoundVolume(CHAN_WEAPON,vel.length()/75.);
|
||||
if ( heat <= 0 ) return;
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.alpha *= heat;
|
||||
}
|
||||
void A_HandleBounce()
|
||||
|
|
@ -410,7 +411,7 @@ Class TheBall : Actor
|
|||
A_StartSound("leadball/hit",CHAN_VOICE,CHANF_OVERLAP,max(0.,(vel.length()/30.-.2))**.5);
|
||||
if ( vel.length() > 15 )
|
||||
{
|
||||
let s = Spawn("BallImpact",pos);
|
||||
let s = Spawn('BallImpact',pos);
|
||||
s.angle = atan2(HitNormal.y,HitNormal.x);
|
||||
s.pitch = asin(-HitNormal.z);
|
||||
}
|
||||
|
|
@ -452,13 +453,13 @@ Class SaltTracer : LineTracer
|
|||
// liquid splashes
|
||||
if ( Results.CrossedWater )
|
||||
{
|
||||
let hl = new("WaterHit");
|
||||
let hl = new('WaterHit');
|
||||
hl.hitpos = Results.CrossedWaterPos;
|
||||
WaterHitList.Push(hl);
|
||||
}
|
||||
else if ( Results.Crossed3DWater )
|
||||
{
|
||||
let hl = new("WaterHit");
|
||||
let hl = new('WaterHit');
|
||||
hl.hitpos = Results.Crossed3DWaterPos;
|
||||
WaterHitList.Push(hl);
|
||||
}
|
||||
|
|
@ -503,7 +504,7 @@ Class SaltImpact : SWWMNonInteractiveActor
|
|||
{
|
||||
Obituary "$O_SALTSHOT";
|
||||
DamageType 'Salt';
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale 1.8;
|
||||
+NODAMAGETHRUST;
|
||||
+FORCERADIUSDMG;
|
||||
|
|
@ -524,7 +525,7 @@ Class SaltImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,6);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(1,3,4)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](1,2);
|
||||
|
|
@ -535,22 +536,22 @@ Class SaltImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,6);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](3,6)-special1;
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,12);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
Spawn("SaltLight2",pos);
|
||||
Spawn('SaltLight2',pos);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
TNT1 A 0 NoDelay A_Jump(256,"Expl1","Expl2","Expl3");
|
||||
TNT1 A 0 NoDelay A_Jump(256,'Expl1','Expl2','Expl3');
|
||||
Expl1:
|
||||
KSX1 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 1 Bright;
|
||||
Stop;
|
||||
|
|
@ -569,7 +570,7 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
{
|
||||
Obituary "$O_SALTSHOT";
|
||||
DamageType 'Salt';
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Stamina 9;
|
||||
Speed 32;
|
||||
+ROLLSPRITE;
|
||||
|
|
@ -583,7 +584,7 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
{
|
||||
special1 = 1;
|
||||
let [x, y, z] = SWWMUtility.GetAxes(angle,pitch,roll);
|
||||
let t = new("SaltTracer");
|
||||
let t = new('SaltTracer');
|
||||
t.Trace(pos,cursector,x,speed,0,ignore:target);
|
||||
foreach ( l:t.ShootThroughList )
|
||||
{
|
||||
|
|
@ -592,14 +593,14 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
}
|
||||
foreach ( w:t.WaterHitList )
|
||||
{
|
||||
let b = Actor.Spawn("InvisibleSplasher",w.hitpos);
|
||||
let b = Actor.Spawn('InvisibleSplasher',w.hitpos);
|
||||
b.target = target;
|
||||
b.A_CheckTerrain();
|
||||
}
|
||||
for ( int i=4; i<t.Results.Distance; i+=8 )
|
||||
{
|
||||
if ( Random[Spreadgun](0,Stamina) ) continue;
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",level.Vec3Offset(pos,x*i));
|
||||
let b = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',level.Vec3Offset(pos,x*i));
|
||||
b.scale *= FRandom[Spreadgun](.6,.8);
|
||||
b.framestep =Random[Spreadgun](2,3);
|
||||
b.alpha = .3;
|
||||
|
|
@ -620,7 +621,7 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
}
|
||||
Vector3 norm = SWWMUtility.GetLineTracerHitNormal(t.Results);
|
||||
if ( t.Results.HitType == TRACE_HitWall ) t.Results.HitLine.RemoteActivate(tracer,t.Results.Side,SPAC_Impact,t.Results.HitPos);
|
||||
let i = Spawn("SaltImpact",level.Vec3Offset(t.Results.HitPos,norm*4));
|
||||
let i = Spawn('SaltImpact',level.Vec3Offset(t.Results.HitPos,norm*4));
|
||||
i.angle = atan2(norm.y,norm.x);
|
||||
i.pitch = asin(-norm.z);
|
||||
i.target = target;
|
||||
|
|
@ -632,7 +633,7 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
}
|
||||
else if ( (args[0] > 20) && !Random[Spreadgun](0,800/args[0]) )
|
||||
{
|
||||
let i = Spawn("SaltImpact",level.Vec3Offset(pos,x*speed));
|
||||
let i = Spawn('SaltImpact',level.Vec3Offset(pos,x*speed));
|
||||
i.angle = atan2(x.y,x.x);
|
||||
i.pitch = asin(-x.z);
|
||||
i.target = target;
|
||||
|
|
@ -643,8 +644,8 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
}
|
||||
// next beam
|
||||
if ( !(special2%4) && !Random[Spreadgun](0,Stamina) )
|
||||
Spawn("SaltLight",level.Vec3Offset(pos,x*speed/2));
|
||||
let next = Spawn("SaltBeam",level.Vec3Offset(pos,x*speed));
|
||||
Spawn('SaltLight',level.Vec3Offset(pos,x*speed/2));
|
||||
let next = Spawn('SaltBeam',level.Vec3Offset(pos,x*speed));
|
||||
double a = FRandom[Spreadgun](0,360), s = FRandom[Spreadgun](0,.06);
|
||||
Vector3 dir = SWWMUtility.ConeSpread(x,y,z,a,s);
|
||||
next.angle = atan2(dir.y,dir.x);
|
||||
|
|
@ -653,7 +654,7 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
next.special2 = (special2+1)%10;
|
||||
next.args[0] = args[0]+1;
|
||||
next.args[1] = args[1];
|
||||
next.SetStateLabel("TrailSpawn");
|
||||
next.SetStateLabel('TrailSpawn');
|
||||
}
|
||||
|
||||
override void PostBeginPlay()
|
||||
|
|
@ -690,13 +691,13 @@ Class SaltBeam : SWWMNonInteractiveActor
|
|||
Spawn:
|
||||
XZW1 A -1 Bright NoDelay
|
||||
{
|
||||
return FindState("StarterDev")+Random[Spreadgun](0,11)*2;
|
||||
return FindState('StarterDev')+Random[Spreadgun](0,11)*2;
|
||||
}
|
||||
Stop;
|
||||
TrailSpawn:
|
||||
XZW2 A -1 Bright
|
||||
{
|
||||
return FindState("TrailerDev")+Random[Spreadgun](0,11)*2;
|
||||
return FindState('TrailerDev')+Random[Spreadgun](0,11)*2;
|
||||
}
|
||||
Stop;
|
||||
StarterDev:
|
||||
|
|
|
|||
|
|
@ -47,24 +47,24 @@ Class GrilledCheeseSandwich : Inventory
|
|||
SWWMScoreObj.SpawnAtActorBunch(1000,Owner,Font.CR_BLUE);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
{
|
||||
let n = Owner.FindInventory("ArmorNugget");
|
||||
if ( !n ) Owner.GiveInventory("ArmorNugget",GetDefaultByType("ArmorNugget").MaxAmount);
|
||||
let n = Owner.FindInventory('ArmorNugget');
|
||||
if ( !n ) Owner.GiveInventory('ArmorNugget',GetDefaultByType('ArmorNugget').MaxAmount);
|
||||
else
|
||||
{
|
||||
n.Amount = n.MaxAmount;
|
||||
if ( Owner.player == players[consoleplayer] )
|
||||
SWWMScoreObj.SpawnAtActorBunch(n.MaxAmount,Owner,Font.CR_GREEN);
|
||||
}
|
||||
let b = Owner.FindInventory("BlastSuit");
|
||||
if ( !b ) Owner.GiveInventory("BlastSuit",GetDefaultByType("BlastSuit").MaxAmount);
|
||||
let b = Owner.FindInventory('BlastSuit');
|
||||
if ( !b ) Owner.GiveInventory('BlastSuit',GetDefaultByType('BlastSuit').MaxAmount);
|
||||
else
|
||||
{
|
||||
b.Amount = b.MaxAmount;
|
||||
if ( Owner.player == players[consoleplayer] )
|
||||
SWWMScoreObj.SpawnAtActorBunch(b.MaxAmount,Owner,Font.CR_GREEN);
|
||||
}
|
||||
let w = Owner.FindInventory("WarArmor");
|
||||
if ( !w ) Owner.GiveInventory("WarArmor",GetDefaultByType("WarArmor").MaxAmount);
|
||||
let w = Owner.FindInventory('WarArmor');
|
||||
if ( !w ) Owner.GiveInventory('WarArmor',GetDefaultByType('WarArmor').MaxAmount);
|
||||
else
|
||||
{
|
||||
w.Amount = w.MaxAmount;
|
||||
|
|
@ -76,11 +76,11 @@ Class GrilledCheeseSandwich : Inventory
|
|||
SWWMLoreLibrary.Add(Owner.player,"WarArmor");
|
||||
Demolitionist(Owner).lastbump *= 1.2;
|
||||
}
|
||||
let f = Spawn("SWWMItemFog",Owner.Vec3Offset(0,0,Owner.Height/2));
|
||||
let f = Spawn('SWWMItemFog',Owner.Vec3Offset(0,0,Owner.Height/2));
|
||||
f.bAMBUSH = true;
|
||||
if ( !extrasafe ) return;
|
||||
let s = Owner.FindInventory("GrilledCheeseSafeguard");
|
||||
if ( !s ) Owner.GiveInventory("GrilledCheeseSafeguard",1);
|
||||
let s = Owner.FindInventory('GrilledCheeseSafeguard');
|
||||
if ( !s ) Owner.GiveInventory('GrilledCheeseSafeguard',1);
|
||||
else Powerup(s).EffectTics = Powerup(s).default.EffectTics;
|
||||
}
|
||||
override bool Use( bool pickup )
|
||||
|
|
@ -98,7 +98,7 @@ Class GrilledCheeseSandwich : Inventory
|
|||
}
|
||||
override void AbsorbDamage( int damage, Name damageType, int &newdamage, Actor inflictor, Actor source, int flags )
|
||||
{
|
||||
if ( Owner.FindInventory("GrilledCheeseSafeguard") )
|
||||
if ( Owner.FindInventory('GrilledCheeseSafeguard') )
|
||||
return; // the safeguard absorbs all
|
||||
if ( Owner.ApplyDamageFactor(damageType,damage) <= 0 )
|
||||
return; // this damage type is ignored by the player, so it does not affect us
|
||||
|
|
@ -115,7 +115,7 @@ Class GrilledCheeseSandwich : Inventory
|
|||
{
|
||||
if ( (swwm_strictuntouchable == 1) && Owner.player )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd ) hnd.tookdamage[Owner.PlayerNumber()] = true;
|
||||
}
|
||||
if ( damageType == 'InstantDeath' )
|
||||
|
|
@ -128,7 +128,7 @@ Class GrilledCheeseSandwich : Inventory
|
|||
}
|
||||
void SafeTeleport( bool tostart = false )
|
||||
{
|
||||
Spawn("SWWMItemFog",Owner.Vec3Offset(0,0,Owner.Height/2));
|
||||
Spawn('SWWMItemFog',Owner.Vec3Offset(0,0,Owner.Height/2));
|
||||
Vector3 safepos;
|
||||
double safeangle;
|
||||
if ( tostart || !lastsafevalid )
|
||||
|
|
@ -236,7 +236,7 @@ Class GrilledCheeseSandwich : Inventory
|
|||
Inventory.PickupMessage "$T_SANDWICH";
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
@ -340,7 +340,7 @@ Class GhostTarget : Actor
|
|||
}
|
||||
bt.Destroy();
|
||||
// player made noise or is visible again
|
||||
if ( !master || (LastHeard == master) || !master.FindInventory("GhostPower") )
|
||||
if ( !master || (LastHeard == master) || !master.FindInventory('GhostPower') )
|
||||
{
|
||||
// note: this is faster than using a thinkeriterator
|
||||
foreach ( s:level.Sectors ) for ( Actor a=s.thinglist; a; a=a.snext )
|
||||
|
|
@ -419,14 +419,14 @@ Class GhostPower : Powerup
|
|||
if ( a.target != Owner ) continue;
|
||||
if ( !gt )
|
||||
{
|
||||
gt = Spawn("GhostTarget",Owner.pos);
|
||||
gt = Spawn('GhostTarget',Owner.pos);
|
||||
if ( Owner.bFRIENDLY || Owner.player ) gt.bFRIENDLY = true;
|
||||
}
|
||||
a.target = gt;
|
||||
a.LastHeard = gt;
|
||||
gt.master = Owner;
|
||||
}
|
||||
if ( !snd ) snd = Spawn("GhostSnd",Owner.pos);
|
||||
if ( !snd ) snd = Spawn('GhostSnd',Owner.pos);
|
||||
snd.target = Owner;
|
||||
snd.master = self;
|
||||
}
|
||||
|
|
@ -454,7 +454,7 @@ Class GhostArtifact : Inventory
|
|||
Inventory.PickupMessage "$T_GHOSTARTI";
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
@ -469,14 +469,14 @@ Class GhostArtifact : Inventory
|
|||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
||||
let g = GhostPower(Owner.FindInventory("GhostPower"));
|
||||
let g = GhostPower(Owner.FindInventory('GhostPower'));
|
||||
if ( g )
|
||||
{
|
||||
g.EffectTics += g.default.EffectTics;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.04;
|
||||
}
|
||||
else Owner.GiveInventory("GhostPower",1);
|
||||
else Owner.GiveInventory('GhostPower',1);
|
||||
SWWMUtility.AchievementProgressInc("ghost",1,Owner.player);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -488,7 +488,7 @@ Class GhostArtifact : Inventory
|
|||
override void Travelled()
|
||||
{
|
||||
if ( tracer ) return;
|
||||
tracer = Spawn("GhostArtifactX",pos);
|
||||
tracer = Spawn('GhostArtifactX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -497,7 +497,7 @@ Class GhostArtifact : Inventory
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("GhostArtifactX",pos);
|
||||
tracer = Spawn('GhostArtifactX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -591,7 +591,7 @@ Class GravityPower : Powerup
|
|||
if ( !Owner ) return;
|
||||
Owner.bFLY = true;
|
||||
Owner.bNOGRAVITY = true;
|
||||
if ( !snd ) snd = Spawn("GravSnd",Owner.pos);
|
||||
if ( !snd ) snd = Spawn('GravSnd',Owner.pos);
|
||||
snd.target = Owner;
|
||||
snd.master = self;
|
||||
}
|
||||
|
|
@ -602,7 +602,7 @@ Class GravityX : SWWMItemOverlay
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Normal";
|
||||
RenderStyle 'Normal';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -620,14 +620,14 @@ Class GravitySuppressor : Inventory
|
|||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
||||
let g = GravityPower(Owner.FindInventory("GravityPower"));
|
||||
let g = GravityPower(Owner.FindInventory('GravityPower'));
|
||||
if ( g )
|
||||
{
|
||||
g.EffectTics += g.default.EffectTics;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.04;
|
||||
}
|
||||
else Owner.GiveInventory("GravityPower",1);
|
||||
else Owner.GiveInventory('GravityPower',1);
|
||||
SWWMUtility.AchievementProgressInc("gravity",1,Owner.player);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -638,7 +638,7 @@ Class GravitySuppressor : Inventory
|
|||
override void Travelled()
|
||||
{
|
||||
if ( tracer ) return;
|
||||
tracer = Spawn("GravityX",pos);
|
||||
tracer = Spawn('GravityX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -646,7 +646,7 @@ Class GravitySuppressor : Inventory
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("GravityX",pos);
|
||||
tracer = Spawn('GravityX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -662,7 +662,7 @@ Class GravitySuppressor : Inventory
|
|||
Inventory.PickupMessage "$T_GRAVITYS";
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
@ -780,7 +780,7 @@ Class InvinciballPower : Powerup
|
|||
Super.InitEffect();
|
||||
if ( !Owner ) return;
|
||||
lasteffect = int.min;
|
||||
l = Spawn("InvinciballLight",Owner.pos);
|
||||
l = Spawn('InvinciballLight',Owner.pos);
|
||||
l.target = Owner;
|
||||
l.master = self;
|
||||
lastpulse = max(lastpulse,gametic+35);
|
||||
|
|
@ -793,14 +793,14 @@ Class InvinciballPower : Powerup
|
|||
{
|
||||
Super.DoEffect();
|
||||
if ( !Owner ) return;
|
||||
if ( !snd ) snd = Spawn("InvinciSnd",Owner.pos);
|
||||
if ( !snd ) snd = Spawn('InvinciSnd',Owner.pos);
|
||||
snd.target = Owner;
|
||||
snd.master = self;
|
||||
if ( am ) return;
|
||||
am = Owner.FindInventory("InvinciballArmor");
|
||||
am = Owner.FindInventory('InvinciballArmor');
|
||||
if ( !am )
|
||||
{
|
||||
am = Inventory(Spawn("InvinciballArmor"));
|
||||
am = Inventory(Spawn('InvinciballArmor'));
|
||||
am.AttachToOwner(Owner);
|
||||
}
|
||||
am.master = self;
|
||||
|
|
@ -835,7 +835,7 @@ Class InvinciballX : SWWMItemOverlay
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Normal";
|
||||
RenderStyle 'Normal';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -859,7 +859,7 @@ Class FuckingInvinciball : Inventory
|
|||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
||||
let i = InvinciballPower(Owner.FindInventory("InvinciballPower"));
|
||||
let i = InvinciballPower(Owner.FindInventory('InvinciballPower'));
|
||||
if ( i )
|
||||
{
|
||||
i.EffectTics += i.default.EffectTics;
|
||||
|
|
@ -870,7 +870,7 @@ Class FuckingInvinciball : Inventory
|
|||
}
|
||||
else
|
||||
{
|
||||
Owner.GiveInventory("InvinciballPower",1);
|
||||
Owner.GiveInventory('InvinciballPower',1);
|
||||
SWWMHandler.AddOneliner("invinciball",2,40);
|
||||
}
|
||||
SWWMUtility.AchievementProgressInc("sunny",1,Owner.player);
|
||||
|
|
@ -883,7 +883,7 @@ Class FuckingInvinciball : Inventory
|
|||
override void Travelled()
|
||||
{
|
||||
if ( tracer ) return;
|
||||
tracer = Spawn("InvinciballX",pos);
|
||||
tracer = Spawn('InvinciballX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -891,7 +891,7 @@ Class FuckingInvinciball : Inventory
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("InvinciballX",pos);
|
||||
tracer = Spawn('InvinciballX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -907,7 +907,7 @@ Class FuckingInvinciball : Inventory
|
|||
Inventory.PickupMessage "$T_INVINCIBALL";
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
@ -1043,7 +1043,7 @@ Class RagekitPower : Powerup
|
|||
lasteffect = int.min;
|
||||
lastpulse = max(lastpulse,gametic+35);
|
||||
Demolitionist(Owner).lastbump *= .95;
|
||||
l = Spawn("RagekitLight",Owner.pos);
|
||||
l = Spawn('RagekitLight',Owner.pos);
|
||||
l.target = Owner;
|
||||
l.master = self;
|
||||
}
|
||||
|
|
@ -1052,7 +1052,7 @@ Class RagekitPower : Powerup
|
|||
{
|
||||
Super.DoEffect();
|
||||
if ( !Owner ) return;
|
||||
if ( !snd ) snd = Spawn("RageSnd",Owner.pos);
|
||||
if ( !snd ) snd = Spawn('RageSnd',Owner.pos);
|
||||
snd.target = Owner;
|
||||
snd.master = self;
|
||||
if ( !(level.maptime%30) )
|
||||
|
|
@ -1071,10 +1071,10 @@ Class RagekitPower : Powerup
|
|||
Demolitionist(Owner).lastbump *= .995;
|
||||
}
|
||||
if ( am ) return;
|
||||
am = Owner.FindInventory("RagekitArmor");
|
||||
am = Owner.FindInventory('RagekitArmor');
|
||||
if ( !am )
|
||||
{
|
||||
am = Inventory(Spawn("RagekitArmor"));
|
||||
am = Inventory(Spawn('RagekitArmor'));
|
||||
am.AttachToOwner(Owner);
|
||||
}
|
||||
}
|
||||
|
|
@ -1125,7 +1125,7 @@ Class RagekitX : SWWMItemOverlay
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Normal";
|
||||
RenderStyle 'Normal';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1153,7 +1153,7 @@ Class Ragekit : Inventory
|
|||
Owner.A_QuakeEx(8.,8.,8.,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.);
|
||||
return true;
|
||||
}
|
||||
let r = RagekitPower(Owner.FindInventory("RagekitPower"));
|
||||
let r = RagekitPower(Owner.FindInventory('RagekitPower'));
|
||||
if ( r )
|
||||
{
|
||||
r.EffectTics += r.default.EffectTics;
|
||||
|
|
@ -1162,7 +1162,7 @@ Class Ragekit : Inventory
|
|||
r.lastpulse = max(r.lastpulse,gametic+35);
|
||||
Demolitionist(Owner).lastbump *= .95;
|
||||
}
|
||||
else Owner.GiveInventory("RagekitPower",1);
|
||||
else Owner.GiveInventory('RagekitPower',1);
|
||||
return true;
|
||||
}
|
||||
override void PreTravelled()
|
||||
|
|
@ -1172,7 +1172,7 @@ Class Ragekit : Inventory
|
|||
override void Travelled()
|
||||
{
|
||||
if ( tracer ) return;
|
||||
tracer = Spawn("RagekitX",pos);
|
||||
tracer = Spawn('RagekitX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -1180,7 +1180,7 @@ Class Ragekit : Inventory
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("RagekitX",pos);
|
||||
tracer = Spawn('RagekitX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -1196,7 +1196,7 @@ Class Ragekit : Inventory
|
|||
Inventory.PickupMessage "$T_RAGEKIT";
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
@ -1303,7 +1303,7 @@ Class BarrierPower : PowerIronFeet
|
|||
Inventory.Icon "graphics/HUD/Icons/I_Barrier.png";
|
||||
Powerup.Duration -60;
|
||||
Powerup.Color "20 FF 00", 0.1;
|
||||
Powerup.Mode "Full"; // no leaky damage
|
||||
Powerup.Mode 'Full'; // no leaky damage
|
||||
+INVENTORY.ADDITIVETIME;
|
||||
}
|
||||
|
||||
|
|
@ -1311,7 +1311,7 @@ Class BarrierPower : PowerIronFeet
|
|||
{
|
||||
Super.InitEffect();
|
||||
if ( !Owner ) return;
|
||||
l = Spawn("BarrierLight",Owner.pos);
|
||||
l = Spawn('BarrierLight',Owner.pos);
|
||||
l.target = Owner;
|
||||
l.master = self;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
|
|
@ -1332,15 +1332,15 @@ Class BarrierPower : PowerIronFeet
|
|||
// don't reset air supply like PowerIronFeet, call parent instead
|
||||
Powerup.DoEffect();
|
||||
if ( !Owner ) return;
|
||||
if ( !snd ) snd = Spawn("BarrierSnd",Owner.pos);
|
||||
if ( !snd ) snd = Spawn('BarrierSnd',Owner.pos);
|
||||
snd.target = Owner;
|
||||
snd.master = self;
|
||||
if ( !am )
|
||||
{
|
||||
am = Owner.FindInventory("BarrierArmor");
|
||||
am = Owner.FindInventory('BarrierArmor');
|
||||
if ( !am )
|
||||
{
|
||||
am = Inventory(Spawn("BarrierArmor"));
|
||||
am = Inventory(Spawn('BarrierArmor'));
|
||||
am.AttachToOwner(Owner);
|
||||
}
|
||||
}
|
||||
|
|
@ -1390,14 +1390,14 @@ Class EBarrier : Inventory
|
|||
{
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
||||
let b = BarrierPower(Owner.FindInventory("BarrierPower"));
|
||||
let b = BarrierPower(Owner.FindInventory('BarrierPower'));
|
||||
if ( b )
|
||||
{
|
||||
b.EffectTics += b.default.EffectTics;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 0.95;
|
||||
}
|
||||
else Owner.GiveInventory("BarrierPower",1);
|
||||
else Owner.GiveInventory('BarrierPower',1);
|
||||
SWWMUtility.AchievementProgressInc("barrier",1,Owner.player);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1409,7 +1409,7 @@ Class EBarrier : Inventory
|
|||
{
|
||||
Super.Travelled();
|
||||
if ( tracer ) return;
|
||||
tracer = Spawn("EBarrierX",pos);
|
||||
tracer = Spawn('EBarrierX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -1417,7 +1417,7 @@ Class EBarrier : Inventory
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("EBarrierX",pos);
|
||||
tracer = Spawn('EBarrierX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -1427,10 +1427,10 @@ Class EBarrier : Inventory
|
|||
Super.DoEffect();
|
||||
if ( !Owner || (Owner.Health <= 0) ) return;
|
||||
// do not auto-use if we're invincible, that'd be a waste
|
||||
if ( Owner.bINVULNERABLE || (Owner.player && (Owner.player.cheats&(CF_GODMODE|CF_GODMODE2))) || Owner.FindInventory("InvinciballPower") )
|
||||
if ( Owner.bINVULNERABLE || (Owner.player && (Owner.player.cheats&(CF_GODMODE|CF_GODMODE2))) || Owner.FindInventory('InvinciballPower') )
|
||||
return;
|
||||
// check terrain for auto-use
|
||||
let b = Powerup(Owner.FindInventory("BarrierPower"));
|
||||
let b = Powerup(Owner.FindInventory('BarrierPower'));
|
||||
if ( b && (b.EffectTics > 5) )
|
||||
{
|
||||
terrainwait = 20;
|
||||
|
|
@ -1483,7 +1483,7 @@ Class EBarrier : Inventory
|
|||
Inventory.PickupMessage "$T_BARRIER";
|
||||
Inventory.MaxAmount 5;
|
||||
Inventory.InterHubAmount 5;
|
||||
Inventory.PickupFlash "SWWMCyanPickupFlash";
|
||||
Inventory.PickupFlash 'SWWMCyanPickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Class TendrilTracer : LineTracer
|
|||
{
|
||||
if ( Results.HitActor.bSHOOTABLE )
|
||||
{
|
||||
let ent = new("HitListEntry");
|
||||
let ent = new('HitListEntry');
|
||||
ent.hitactor = Results.HitActor;
|
||||
ent.hitlocation = Results.HitPos;
|
||||
ent.x = Results.HitVector;
|
||||
|
|
@ -46,7 +46,7 @@ Class MykradvoTendril : SWWMNonInteractiveActor
|
|||
let [x, y, z] = SWWMUtility.GetAxes(angle,pitch,roll);
|
||||
if ( !bSTANDSTILL )
|
||||
{
|
||||
let t = new("TendrilTracer");
|
||||
let t = new('TendrilTracer');
|
||||
t.hitlist.Clear();
|
||||
t.ShootThroughList.Clear();
|
||||
t.Trace(pos,CurSector,x,speed,0,ignore:target);
|
||||
|
|
@ -59,7 +59,7 @@ Class MykradvoTendril : SWWMNonInteractiveActor
|
|||
{
|
||||
if ( hit.hitactor.IsFriend(target) ) continue;
|
||||
if ( (hit.hitactor == tracer) && IsBig() ) bDoSplit = true; // we split
|
||||
int dmg = (hit.hitactor.bBOSS||hit.hitactor.FindInventory("BossMarker"))?(GetMissileDamage(0,0)*4):max(hit.hitactor.Health,GetMissileDamage(0,0));
|
||||
int dmg = (hit.hitactor.bBOSS||hit.hitactor.FindInventory('BossMarker'))?(GetMissileDamage(0,0)*4):max(hit.hitactor.Health,GetMissileDamage(0,0));
|
||||
SWWMUtility.DoKnockback(hit.hitactor,-hit.x+(0,0,.5),((hit.hitactor.Health-dmg)<=0)?60000:8000);
|
||||
let p = SWWMPuff.Setup(hit.hitlocation,hit.x,self,target,hit.hitactor);
|
||||
hit.hitactor.DamageMobj(p,target,dmg,'Plasma',DMG_THRUSTLESS|DMG_INFLICTOR_IS_PUFF);
|
||||
|
|
@ -68,7 +68,7 @@ Class MykradvoTendril : SWWMNonInteractiveActor
|
|||
}
|
||||
}
|
||||
nextpos = level.Vec3Offset(pos,x*speed);
|
||||
if ( !bSTANDSTILL && (!tracer || !tracer.bSHOOTABLE || (tracer.Health <= 0) || ((tracer.bBOSS || tracer.FindInventory("BossMarker")) && !IsBig())) )
|
||||
if ( !bSTANDSTILL && (!tracer || !tracer.bSHOOTABLE || (tracer.Health <= 0) || ((tracer.bBOSS || tracer.FindInventory('BossMarker')) && !IsBig())) )
|
||||
{
|
||||
ReactionTime--;
|
||||
if ( ReactionTime <= 0 )
|
||||
|
|
@ -103,14 +103,14 @@ Class MykradvoTendril : SWWMNonInteractiveActor
|
|||
int ntendies = tracer?clamp(tracer.GetSpawnHealth()/400,2,10):2;
|
||||
for ( int i=0; i<ntendies; i++ )
|
||||
{
|
||||
let r = Spawn("MykradvoSmallTendril",nextpos);
|
||||
let r = Spawn('MykradvoSmallTendril',nextpos);
|
||||
double a = FRandom[Mykradvo](0,360), s = FRandom[Mykradvo](0.,1.);
|
||||
Vector3 sdir = SWWMUtility.ConeSpread(x,y,z,a,s);
|
||||
r.angle = atan2(sdir.y,sdir.x);
|
||||
r.pitch = asin(-sdir.z);
|
||||
r.target = target;
|
||||
r.tracer = tracer;
|
||||
if ( tracer && (tracer.bBOSS || tracer.FindInventory("BossMarker")) ) r.ReactionTime -= Random[ExploS](5,15);
|
||||
if ( tracer && (tracer.bBOSS || tracer.FindInventory('BossMarker')) ) r.ReactionTime -= Random[ExploS](5,15);
|
||||
else r.ReactionTime += Random[ExploS](0,20);
|
||||
}
|
||||
return;
|
||||
|
|
@ -125,7 +125,7 @@ Class MykradvoTendril : SWWMNonInteractiveActor
|
|||
{
|
||||
double a = FRandom[ExploS](0,360), s = FRandom[ExploS](0,1.);
|
||||
Vector3 sdir = SWWMUtility.ConeSpread(x,y,z,a,s);
|
||||
let r = Spawn("MykradvoSmallNullTendril",nextpos);
|
||||
let r = Spawn('MykradvoSmallNullTendril',nextpos);
|
||||
r.angle = atan2(sdir.y,sdir.x);
|
||||
r.pitch = asin(-sdir.z);
|
||||
r.target = target;
|
||||
|
|
@ -171,7 +171,7 @@ Class MykradvoTendril : SWWMNonInteractiveActor
|
|||
Default
|
||||
{
|
||||
Obituary "$O_MYKRADVO";
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
DamageFunction 100;
|
||||
ReactionTime 8;
|
||||
Speed 64;
|
||||
|
|
@ -186,7 +186,7 @@ Class MykradvoTendril : SWWMNonInteractiveActor
|
|||
XZW1 A 1 Bright
|
||||
{
|
||||
A_Spread();
|
||||
return FindState("Fade")+Random[Mykradvo](0,11)*2;
|
||||
return FindState('Fade')+Random[Mykradvo](0,11)*2;
|
||||
}
|
||||
Stop;
|
||||
Fade:
|
||||
|
|
@ -353,7 +353,7 @@ Class MykradvoBurst : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+FORCEXYBILLBOARD;
|
||||
Scale 1.4;
|
||||
}
|
||||
|
|
@ -378,7 +378,7 @@ Class MykradvoBurst : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.25,8);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](128,160)+Color(28,0,31);
|
||||
s.alpha = .4;
|
||||
|
|
@ -391,13 +391,13 @@ Class MykradvoBurst : SWWMNonInteractiveActor
|
|||
{
|
||||
double ang = FRandom[ExploS](0,360);
|
||||
double pt = FRandom[ExploS](-90,90);
|
||||
let s = Spawn("MykradvoSmallNullTendril",pos);
|
||||
let s = Spawn('MykradvoSmallNullTendril',pos);
|
||||
s.angle = ang;
|
||||
s.pitch = pt;
|
||||
s.target = target;
|
||||
s.ReactionTime += Random[ExploS](0,8);
|
||||
}
|
||||
Spawn("MykradvoBurstLight",pos);
|
||||
Spawn('MykradvoBurstLight',pos);
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
|
|
@ -415,7 +415,7 @@ Class MykradvoBurst : SWWMNonInteractiveActor
|
|||
for ( int j=0; j<numpt; j++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.25,8);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](128,160)+Color(28,0,31);
|
||||
s.alpha = .4;
|
||||
|
|
@ -428,7 +428,7 @@ Class MykradvoBurst : SWWMNonInteractiveActor
|
|||
{
|
||||
double ang = FRandom[ExploS](0,360);
|
||||
double pt = FRandom[ExploS](-90,90);
|
||||
let s = Spawn("MykradvoSmallNullTendril",pos);
|
||||
let s = Spawn('MykradvoSmallNullTendril',pos);
|
||||
s.angle = ang;
|
||||
s.pitch = pt;
|
||||
s.target = target;
|
||||
|
|
@ -441,7 +441,7 @@ Class MykradvoBurst : SWWMNonInteractiveActor
|
|||
let targ = targets[0];
|
||||
if ( targ && targ.bSHOOTABLE && (targ.Health > 0) )
|
||||
{
|
||||
let t = Spawn("MykradvoTendril",pos);
|
||||
let t = Spawn('MykradvoTendril',pos);
|
||||
t.angle = t.AngleTo(targ);
|
||||
t.pitch = t.PitchTo(targ,0,targ.Height/2);
|
||||
t.target = target;
|
||||
|
|
@ -555,13 +555,13 @@ Class Mykradvo : Inventory
|
|||
if ( !FindTargets(Owner) )
|
||||
{
|
||||
int numpt = Random[ExploS](8,12);
|
||||
let f = Spawn("SWWMPurplePickupFlash",spawnpos-(0,0,16));
|
||||
let f = Spawn('SWWMPurplePickupFlash',spawnpos-(0,0,16));
|
||||
f.Scale *= .5;
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
double ang = FRandom[ExploS](0,360);
|
||||
double pt = FRandom[ExploS](-90,90);
|
||||
let s = Spawn("MykradvoSmallNullTendril",spawnpos+SWWMUtility.Vec3Fromangles(ang,pt)*FRandom[Mykradvo](2,4));
|
||||
let s = Spawn('MykradvoSmallNullTendril',spawnpos+SWWMUtility.Vec3Fromangles(ang,pt)*FRandom[Mykradvo](2,4));
|
||||
s.angle = ang;
|
||||
s.pitch = pt;
|
||||
s.ReactionTime += Random[ExploS](0,8);
|
||||
|
|
@ -573,9 +573,9 @@ Class Mykradvo : Inventory
|
|||
Amount++;
|
||||
return true;
|
||||
}
|
||||
if ( (targets.Size() == 1) && targets[0] && !targets[0].bBOSS && !targets[0].FindInventory("BossMarker") )
|
||||
if ( (targets.Size() == 1) && targets[0] && !targets[0].bBOSS && !targets[0].FindInventory('BossMarker') )
|
||||
SWWMUtility.MarkAchievement("anone",Owner.player);
|
||||
let p = Spawn("MykradvoBurst",spawnpos);
|
||||
let p = Spawn('MykradvoBurst',spawnpos);
|
||||
p.target = Owner;
|
||||
MykradvoBurst(p).targets.Move(targets);
|
||||
targets.Clear();
|
||||
|
|
@ -592,7 +592,7 @@ Class Mykradvo : Inventory
|
|||
{
|
||||
double ang = FRandom[ExploS](0,360);
|
||||
double pt = FRandom[ExploS](-90,90);
|
||||
let s = Spawn("MykradvoSmallNullTendril",pos+(0,0,16+GetBobOffset())+SWWMUtility.Vec3Fromangles(ang,pt)*FRandom[Mykradvo](4,8));
|
||||
let s = Spawn('MykradvoSmallNullTendril',pos+(0,0,16+GetBobOffset())+SWWMUtility.Vec3Fromangles(ang,pt)*FRandom[Mykradvo](4,8));
|
||||
s.angle = ang;
|
||||
s.pitch = pt;
|
||||
s.ReactionTime += Random[ExploS](-2,2);
|
||||
|
|
@ -623,7 +623,7 @@ Class Mykradvo : Inventory
|
|||
Super.Travelled();
|
||||
if ( !tracer )
|
||||
{
|
||||
tracer = Spawn("MykradvoX",pos);
|
||||
tracer = Spawn('MykradvoX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -631,7 +631,7 @@ Class Mykradvo : Inventory
|
|||
for ( int i=0; i<2; i++ )
|
||||
{
|
||||
if ( ringa[i] ) continue;
|
||||
ringa[i] = Spawn("MykradvoX2",pos);
|
||||
ringa[i] = Spawn('MykradvoX2',pos);
|
||||
ringa[i].angle = angle;
|
||||
ringa[i].target = self;
|
||||
ringa[i].FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -643,13 +643,13 @@ Class Mykradvo : Inventory
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("MykradvoX",pos);
|
||||
tracer = Spawn('MykradvoX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
for ( int i=0; i<2; i++ )
|
||||
{
|
||||
ringa[i] = Spawn("MykradvoX2",pos);
|
||||
ringa[i] = Spawn('MykradvoX2',pos);
|
||||
ringa[i].angle = angle;
|
||||
ringa[i].target = self;
|
||||
ringa[i].FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -669,7 +669,7 @@ Class Mykradvo : Inventory
|
|||
Inventory.PickupMessage "$T_MYKRADVO";
|
||||
Inventory.MaxAmount 3;
|
||||
Inventory.InterHubAmount 3;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
@ -851,7 +851,7 @@ Class AngeryPower : Powerup
|
|||
lastpulse = max(lastpulse,gametic+35);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= .95;
|
||||
l = Spawn("AngeryLight",Owner.pos);
|
||||
l = Spawn('AngeryLight',Owner.pos);
|
||||
l.target = Owner;
|
||||
l.master = self;
|
||||
}
|
||||
|
|
@ -859,7 +859,7 @@ Class AngeryPower : Powerup
|
|||
{
|
||||
Super.DoEffect();
|
||||
if ( !Owner ) return;
|
||||
if ( !snd ) snd = Spawn("AngerySnd",Owner.pos);
|
||||
if ( !snd ) snd = Spawn('AngerySnd',Owner.pos);
|
||||
snd.target = Owner;
|
||||
snd.master = self;
|
||||
}
|
||||
|
|
@ -924,7 +924,7 @@ Class AngerySigil : Inventory
|
|||
if ( pickup && !deathmatch ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
||||
SWWMUtility.AchievementProgressInc("deva",1,Owner.player);
|
||||
let r = AngeryPower(Owner.FindInventory("AngeryPower"));
|
||||
let r = AngeryPower(Owner.FindInventory('AngeryPower'));
|
||||
if ( r )
|
||||
{
|
||||
r.EffectTics += r.default.EffectTics;
|
||||
|
|
@ -933,7 +933,7 @@ Class AngerySigil : Inventory
|
|||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= .95;
|
||||
}
|
||||
else Owner.GiveInventory("AngeryPower",1);
|
||||
else Owner.GiveInventory('AngeryPower',1);
|
||||
return true;
|
||||
}
|
||||
override void PreTravelled()
|
||||
|
|
@ -944,7 +944,7 @@ Class AngerySigil : Inventory
|
|||
{
|
||||
Super.Travelled();
|
||||
if ( tracer ) return;
|
||||
tracer = Spawn("AngerySigilX",pos);
|
||||
tracer = Spawn('AngerySigilX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -952,7 +952,7 @@ Class AngerySigil : Inventory
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("AngerySigilX",pos);
|
||||
tracer = Spawn('AngerySigilX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -967,7 +967,7 @@ Class AngerySigil : Inventory
|
|||
Inventory.PickupMessage "$T_DEVASTATION";
|
||||
Inventory.MaxAmount 3;
|
||||
Inventory.InterHubAmount 3;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
@ -990,7 +990,7 @@ Class AngerySigilX : SWWMItemOverlay
|
|||
{
|
||||
Scale .5;
|
||||
Alpha .35;
|
||||
RenderStyle "Subtract";
|
||||
RenderStyle 'Subtract';
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
|
|
@ -1127,10 +1127,10 @@ Class DivineSpriteEffect : Inventory
|
|||
override void DoEffect()
|
||||
{
|
||||
Super.DoEffect();
|
||||
if ( !l ) l = Spawn("DivineSpriteLight",Owner.pos);
|
||||
if ( !l ) l = Spawn('DivineSpriteLight',Owner.pos);
|
||||
l.target = Owner;
|
||||
l.master = self;
|
||||
if ( !snd ) snd = Spawn("DivineSpriteSnd",Owner.pos);
|
||||
if ( !snd ) snd = Spawn('DivineSpriteSnd',Owner.pos);
|
||||
snd.target = Owner;
|
||||
snd.master = self;
|
||||
int numpt = Random[ExploS](5,10);
|
||||
|
|
@ -1140,7 +1140,7 @@ Class DivineSpriteEffect : Inventory
|
|||
double scl = clamp((AlphInter.GetValue()-1000.)/6000.,2.,4.);
|
||||
if ( !flare.texture )
|
||||
{
|
||||
flare.color1 = "White";
|
||||
flare.color1 = 0xFFFFFFFF;
|
||||
flare.texture = TexMan.CheckForTexture("graphics/Particles/xflare.png");
|
||||
flare.style = STYLE_AddShaded;
|
||||
flare.flags = SPF_FULLBRIGHT;
|
||||
|
|
@ -1212,10 +1212,10 @@ Class DivineSprite : Inventory
|
|||
{
|
||||
// never get auto-used on pickup unless we're in deathmatch
|
||||
if ( pickup && !deathmatch ) return false;
|
||||
let p = Owner.FindInventory("DivineSpriteEffect");
|
||||
let p = Owner.FindInventory('DivineSpriteEffect');
|
||||
if ( p ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
||||
Owner.GiveInventory("DivineSpriteEffect",1);
|
||||
Owner.GiveInventory('DivineSpriteEffect',1);
|
||||
SWWMUtility.AchievementProgressInc("divine",1,Owner.player);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1226,7 +1226,7 @@ Class DivineSprite : Inventory
|
|||
override void Travelled()
|
||||
{
|
||||
if ( tracer ) return;
|
||||
tracer = Spawn("DivineSpriteX",pos);
|
||||
tracer = Spawn('DivineSpriteX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -1234,7 +1234,7 @@ Class DivineSprite : Inventory
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("DivineSpriteX",pos);
|
||||
tracer = Spawn('DivineSpriteX',pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
|
|
@ -1250,7 +1250,7 @@ Class DivineSprite : Inventory
|
|||
Inventory.PickupMessage "$T_DIVINE";
|
||||
Inventory.MaxAmount 3;
|
||||
Inventory.InterHubAmount 3;
|
||||
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
||||
Inventory.PickupFlash 'SWWMPurplePickupFlash';
|
||||
+INVENTORY.ALWAYSPICKUP;
|
||||
+INVENTORY.AUTOACTIVATE;
|
||||
+INVENTORY.INVBAR;
|
||||
|
|
|
|||
|
|
@ -158,8 +158,8 @@ Class DemolitionistMenu : GenericMenu
|
|||
tmsg = StringTable.Localize("$SWWM_MAINCONTROLS");
|
||||
tmsgtic = MenuTime()+50;
|
||||
lasttuid = Random[TUID]();
|
||||
hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
shnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
shnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
SetClock(c_year,c_month,c_day,c_hour,c_minute,c_tz);
|
||||
clockstr = CrimeTime(c_year,c_month,c_day,c_hour,c_minute,c_tz);
|
||||
static const class<DemolitionistMenuTab> deftabs[] =
|
||||
|
|
@ -195,16 +195,12 @@ Class DemolitionistMenu : GenericMenu
|
|||
t.Ticker();
|
||||
tabs.Push(t);
|
||||
}
|
||||
if ( shnd.menustate )
|
||||
curtab = -1;
|
||||
if ( shnd.menustate.CheckKey("LastTab") )
|
||||
{
|
||||
Class<DemolitionistMenuTab> saved = shnd.menustate.At("LastTab");
|
||||
Class<DemolitionistMenuTab> saved = shnd.menustate.Get("LastTab");
|
||||
if ( saved ) curtab = FindTabType(saved,true);
|
||||
}
|
||||
else
|
||||
{
|
||||
shnd.menustate = Dictionary.Create();
|
||||
curtab = -1;
|
||||
}
|
||||
if ( curtab == -1 ) curtab = GetFirstTab();
|
||||
tabs[curtab].OnSelect();
|
||||
}
|
||||
|
|
@ -546,7 +542,7 @@ Class DemolitionistMenu : GenericMenu
|
|||
double rox = int(ss.x-rwsx)/2;
|
||||
double roy = int(ss.y-rwsy)/2;
|
||||
// copy the menu dim below the window during animations, so the transition looks smoother
|
||||
Screen.Dim((dimamount<0)?Color("Black"):dimcolor,(dimamount<0)?.5:dimamount,int(rox*hs),int(roy*hs),int(rwsx*hs),int(rwsy*hs));
|
||||
Screen.Dim((dimamount<0)?0xFF000000:dimcolor,(dimamount<0)?.5:dimamount,int(rox*hs),int(roy*hs),int(rwsx*hs),int(rwsy*hs));
|
||||
// draw the background and main frame
|
||||
if ( swwm_fuzz )
|
||||
{
|
||||
|
|
@ -557,7 +553,7 @@ Class DemolitionistMenu : GenericMenu
|
|||
Screen.DrawTexture(FancyBg,false,origin.x,origin.y+400.*i,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,.5);
|
||||
Screen.ClearClipRect();
|
||||
}
|
||||
Screen.Dim("Black",.8,int(rox*hs),int(roy*hs),int(rwsx*hs),int(rwsy*hs));
|
||||
Screen.Dim(0xFF000000,.8,int(rox*hs),int(roy*hs),int(rwsx*hs),int(rwsy*hs));
|
||||
DrawFrame(rox-origin.x,roy-origin.y,rwsx,rwsy,true);
|
||||
return;
|
||||
}
|
||||
|
|
@ -571,7 +567,7 @@ Class DemolitionistMenu : GenericMenu
|
|||
Screen.DrawTexture(FancyBg,false,origin.x,origin.y+400.*i,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,.5);
|
||||
Screen.ClearClipRect();
|
||||
}
|
||||
Screen.Dim("Black",.8,int(origin.x*hs),int(origin.y*hs),int(ws.x*hs),int(ws.y*hs));
|
||||
Screen.Dim(0xFF000000,.8,int(origin.x*hs),int(origin.y*hs),int(ws.x*hs),int(ws.y*hs));
|
||||
DrawFrame(0,0,ws.x,ws.y,true);
|
||||
// draw top and bottom separators
|
||||
DrawHSeparator(0,14,ws.x);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ Class DemolitionistHelpTab : DemolitionistMenuTab
|
|||
{
|
||||
title = StringTable.Localize("$SWWM_HELPTAB");
|
||||
bHidden = true;
|
||||
mtext = new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_HELPTXT"));
|
||||
mtext = new('DemolitionistMenuTextBox').Init(master,StringTable.Localize("$SWWM_HELPTXT"));
|
||||
return Super.Init(master);
|
||||
}
|
||||
override void OnDestroy()
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ Class DemolitionistInventoryTab : DemolitionistMenuTab
|
|||
mustsort = true;
|
||||
skipsel = true;
|
||||
// initialize
|
||||
invlist = new("DemolitionistMenuList");
|
||||
invlist = new('DemolitionistMenuList');
|
||||
invlist.master = master;
|
||||
invlist.selected = 0;
|
||||
for ( Inventory i=players[consoleplayer].mo.inv; i; i=i.inv )
|
||||
|
|
@ -245,11 +245,11 @@ Class DemolitionistInventoryTab : DemolitionistMenuTab
|
|||
String tag2 = DemolitionistMenuInvItem(invlist.items[j]).inv.GetTag();
|
||||
if ( tag > tag2 ) continue;
|
||||
greater = true;
|
||||
invlist.items.Insert(j,new("DemolitionistMenuInvItem").Init(master,i));
|
||||
invlist.items.Insert(j,new('DemolitionistMenuInvItem').Init(master,i));
|
||||
break;
|
||||
}
|
||||
if ( greater ) continue;
|
||||
invlist.items.Push(new("DemolitionistMenuInvItem").Init(master,i));
|
||||
invlist.items.Push(new('DemolitionistMenuInvItem').Init(master,i));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -284,12 +284,12 @@ Class DemolitionistInventoryTab : DemolitionistMenuTab
|
|||
String tag2 = DemolitionistMenuInvItem(invlist.items[j]).inv.GetTag();
|
||||
if ( tag > tag2 ) continue;
|
||||
greater = true;
|
||||
invlist.items.Insert(j,new("DemolitionistMenuInvItem").Init(master,inv));
|
||||
invlist.items.Insert(j,new('DemolitionistMenuInvItem').Init(master,inv));
|
||||
mustsort = true;
|
||||
break;
|
||||
}
|
||||
if ( greater ) continue;
|
||||
invlist.items.Push(new("DemolitionistMenuInvItem").Init(master,inv));
|
||||
invlist.items.Push(new('DemolitionistMenuInvItem').Init(master,inv));
|
||||
mustsort = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -641,7 +641,7 @@ Class DemolitionistMenuInvItem : DemolitionistMenuListItem
|
|||
master.tmsgtic = Menu.MenuTime()+70;
|
||||
return;
|
||||
}
|
||||
let t = new("MenuTransaction");
|
||||
let t = new('MenuTransaction');
|
||||
t.uid = master.GenTUID();
|
||||
t.type = MenuTransaction.TT_ITEMUSE;
|
||||
t.used = inv.GetClass();
|
||||
|
|
@ -654,7 +654,7 @@ Class DemolitionistMenuInvItem : DemolitionistMenuListItem
|
|||
void DropItem()
|
||||
{
|
||||
if ( !inv || (inv is 'Key') || (inv is 'SWWMCollectible') ) return;
|
||||
let t = new("MenuTransaction");
|
||||
let t = new('MenuTransaction');
|
||||
t.uid = master.GenTUID();
|
||||
t.type = MenuTransaction.TT_ITEMDROP;
|
||||
t.skipresult = false;
|
||||
|
|
|
|||
|
|
@ -105,14 +105,14 @@ Class DemolitionistKeychainTab : DemolitionistMenuTab
|
|||
mustsort = true;
|
||||
skipsel = true;
|
||||
// initialize
|
||||
invlist = new("DemolitionistMenuList");
|
||||
invlist = new('DemolitionistMenuList');
|
||||
invlist.master = master;
|
||||
invlist.selected = 0;
|
||||
int j = 0;
|
||||
for ( Inventory i=players[consoleplayer].mo.inv; i; i=i.inv )
|
||||
{
|
||||
if ( FilterInventory(i) ) continue;
|
||||
invlist.items.Push(new("DemolitionistMenuInvItem").Init(master,i));
|
||||
invlist.items.Push(new('DemolitionistMenuInvItem').Init(master,i));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -139,7 +139,7 @@ Class DemolitionistKeychainTab : DemolitionistMenuTab
|
|||
break;
|
||||
}
|
||||
if ( skipme ) continue;
|
||||
invlist.items.Push(new("DemolitionistMenuInvItem").Init(master,i));
|
||||
invlist.items.Push(new('DemolitionistMenuInvItem').Init(master,i));
|
||||
mustsort = true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,13 +53,13 @@ Class DemolitionistLibraryTab : DemolitionistMenuTab
|
|||
{
|
||||
sname[i] = StringTable.Localize("$SWWM_LORETAB"..i);
|
||||
lwidth = max(lwidth,master.mSmallFont.StringWidth("<‼ "..sname[i].." ‼>")+6);
|
||||
lists[i] = new("DemolitionistMenuList");
|
||||
lists[i] = new('DemolitionistMenuList');
|
||||
lists[i].master = master;
|
||||
}
|
||||
loresz = lore.ent.Size();
|
||||
foreach ( e:lore.ent )
|
||||
{
|
||||
let le = new("DemolitionistMenuLoreItem").Init(master,e);
|
||||
let le = new('DemolitionistMenuLoreItem').Init(master,e);
|
||||
lists[e.tab].items.Push(le);
|
||||
lwidth = max(lwidth,master.mSmallFont.StringWidth("‼"..le.label)+6);
|
||||
}
|
||||
|
|
@ -83,7 +83,7 @@ Class DemolitionistLibraryTab : DemolitionistMenuTab
|
|||
}
|
||||
override void OnSelect()
|
||||
{
|
||||
section = master.shnd.menustate.At("LastLoreSection").ToInt();
|
||||
section = master.shnd.menustate.Get("LastLoreSection").ToInt();
|
||||
smofs[section] = ofs[section];
|
||||
}
|
||||
override void OnDeselect()
|
||||
|
|
@ -102,7 +102,7 @@ Class DemolitionistLibraryTab : DemolitionistMenuTab
|
|||
for ( int i=loresz; i<lore.ent.Size(); i++ )
|
||||
{
|
||||
let ent = lore.ent[i];
|
||||
let le = new("DemolitionistMenuLoreItem").Init(master,ent);
|
||||
let le = new('DemolitionistMenuLoreItem').Init(master,ent);
|
||||
lists[ent.tab].items.Push(le);
|
||||
lwidth = max(lwidth,master.mSmallFont.StringWidth("‼"..le.label)+6);
|
||||
}
|
||||
|
|
@ -235,7 +235,7 @@ Class DemolitionistLibraryTab : DemolitionistMenuTab
|
|||
active = DemolitionistMenuLoreItem(lists[section].items[sel[section]]);
|
||||
active.bActive = true;
|
||||
clore = active.ent;
|
||||
if ( !ltext ) ltext = new("DemolitionistMenuTextBox").Init(master,StringTable.Localize(clore.text),lwidth+((maxofs[section]>0)?8:0));
|
||||
if ( !ltext ) ltext = new('DemolitionistMenuTextBox').Init(master,StringTable.Localize(clore.text),lwidth+((maxofs[section]>0)?8:0));
|
||||
else ltext.Reinit(StringTable.Localize(clore.text),lwidth+((maxofs[section]>0)?8:0));
|
||||
ltext.img = clore.img;
|
||||
master.MenuSound("menu/demosel");
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
if ( mlog )
|
||||
{
|
||||
for ( int i=(mlog.entries.Size()-1); i>=0; i-- )
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,mlog.entries[i]));
|
||||
mtext.Push(new('DemolitionistMenuTextBox').Init(master,mlog.entries[i]));
|
||||
return Super.Init(master);
|
||||
}
|
||||
// saves time
|
||||
|
|
@ -85,7 +85,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
missionstr = "$SWWM_MISSION_DOOM5_FROMDOOM1";
|
||||
if ( StringTable.Localize(missionstr) ~== missionstr.Mid(1) )
|
||||
missionstr = "$SWWM_MISSION_NONE";
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,missionstr));
|
||||
mtext.Push(new('DemolitionistMenuTextBox').Init(master,missionstr));
|
||||
bool firstskip = false;
|
||||
for ( int i=csiz-1; i>=0; i-- )
|
||||
{
|
||||
|
|
@ -103,7 +103,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
}
|
||||
if ( StringTable.Localize(xstr) ~== xstr.Mid(1) )
|
||||
continue;
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,xstr));
|
||||
mtext.Push(new('DemolitionistMenuTextBox').Init(master,xstr));
|
||||
}
|
||||
}
|
||||
else if ( (gameinfo.gametype&GAME_Heretic) && SWWMUtility.IsKnownMap() )
|
||||
|
|
@ -111,7 +111,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
missionstr = String.Format("$SWWM_MISSION_HERETIC%d",level.cluster);
|
||||
if ( StringTable.Localize(missionstr) ~== missionstr.Mid(1) )
|
||||
missionstr = "$SWWM_MISSION_NONE";
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,missionstr));
|
||||
mtext.Push(new('DemolitionistMenuTextBox').Init(master,missionstr));
|
||||
int csiz = stats.clustervisit.Size();
|
||||
bool firstskip = false;
|
||||
for ( int i=csiz-1; i>=0; i-- )
|
||||
|
|
@ -122,7 +122,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
String xstr = String.Format("$SWWM_MISSION_HERETIC%d",stats.clustervisit[i]);
|
||||
if ( StringTable.Localize(xstr) ~== xstr.Mid(1) )
|
||||
continue;
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,xstr));
|
||||
mtext.Push(new('DemolitionistMenuTextBox').Init(master,xstr));
|
||||
}
|
||||
}
|
||||
else if ( (gameinfo.gametype&GAME_Hexen) && SWWMUtility.IsKnownMap() )
|
||||
|
|
@ -133,7 +133,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
missionstr = String.Format("$SWWM_MISSION_%s%d",gstr,level.cluster);
|
||||
if ( StringTable.Localize(missionstr) ~== missionstr.Mid(1) )
|
||||
missionstr = "$SWWM_MISSION_NONE";
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,missionstr));
|
||||
mtext.Push(new('DemolitionistMenuTextBox').Init(master,missionstr));
|
||||
int csiz = stats.clustervisit.Size();
|
||||
bool firstskip = false;
|
||||
for ( int i=csiz-1; i>=0; i-- )
|
||||
|
|
@ -144,7 +144,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
String xstr = String.Format("$SWWM_MISSION_%s%d",gstr,stats.clustervisit[i]);
|
||||
if ( StringTable.Localize(xstr) ~== xstr.Mid(1) )
|
||||
continue;
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,xstr));
|
||||
mtext.Push(new('DemolitionistMenuTextBox').Init(master,xstr));
|
||||
}
|
||||
}
|
||||
return Super.Init(master);
|
||||
|
|
@ -265,13 +265,13 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
if ( mtext.Size() == 0 )
|
||||
{
|
||||
for ( int i=(mlog.entries.Size()-1); i>=0; i-- )
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,mlog.entries[i]));
|
||||
mtext.Push(new('DemolitionistMenuTextBox').Init(master,mlog.entries[i]));
|
||||
sel = 0;
|
||||
newent = true;
|
||||
}
|
||||
else for ( int i=(mlog.entries.Size()-1); i>=mtext.Size(); i-- )
|
||||
{
|
||||
mtext.Insert(0,new("DemolitionistMenuTextBox").Init(master,mlog.entries[i]));
|
||||
mtext.Insert(0,new('DemolitionistMenuTextBox').Init(master,mlog.entries[i]));
|
||||
sel++;
|
||||
newent = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Class DemolitionistStatsTab : DemolitionistMenuTab
|
|||
{
|
||||
sname[i] = StringTable.Localize("$SWWM_STATTAB"..i);
|
||||
lwidth = max(lwidth,master.mSmallFont.StringWidth(sname[i]));
|
||||
lists[i] = new("DemolitionistMenuList");
|
||||
lists[i] = new('DemolitionistMenuList');
|
||||
lists[i].master = master;
|
||||
lists[i].selected = -1;
|
||||
}
|
||||
|
|
@ -28,42 +28,42 @@ Class DemolitionistStatsTab : DemolitionistMenuTab
|
|||
stats = Demolitionist(players[consoleplayer].mo)?Demolitionist(players[consoleplayer].mo).mystats:null;
|
||||
if ( !stats ) return Super.Init(master);
|
||||
// the general stats are always the same in the same order, so init them all here in one go
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATUPTIME",stats,stat_uptime));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATONFOOT",stats,stat_onfoot));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATFLIGHT",stats,stat_flight));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATSWIM",stats,stat_swim));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATTELE",stats,stat_tele));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATBOOST",stats,stat_boost));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATDASH",stats,stat_dash));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATSTOMP",stats,stat_stomp));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATFUEL",stats,stat_fuel));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATSPEED",stats,stat_speed));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATAIRTIME",stats,stat_airtime));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATPARRY",stats,stat_parry));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATPPARRY",stats,stat_pparry));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATWPONCH",stats,stat_wponch));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATBUSTS",stats,stat_busts));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATBUTTS",stats,stat_butts));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATPATS",stats,stat_pats));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATKISS",stats,stat_kiss));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATFRIENDS",stats,stat_friends));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATITEMS",stats,stat_items));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATSECRETS",stats,stat_secrets));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATKILLS",stats,stat_kills));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATDEATHS",stats,stat_deaths));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATDDEALT",stats,stat_ddealt));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATDTAKEN",stats,stat_dtaken));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATTDEALT",stats,stat_tdealt));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATTTAKEN",stats,stat_ttaken));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATMKILL",stats,stat_mkill));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATSKILL",stats,stat_skill));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATFAVWEAP",stats,stat_favweap));
|
||||
lists[0].items.Push(new("DemolitionistMenuStatItem").Init(master,"$SWWM_STATHISCORE",stats,stat_hiscore));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATUPTIME",stats,stat_uptime));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATONFOOT",stats,stat_onfoot));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATFLIGHT",stats,stat_flight));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATSWIM",stats,stat_swim));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATTELE",stats,stat_tele));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATBOOST",stats,stat_boost));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATDASH",stats,stat_dash));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATSTOMP",stats,stat_stomp));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATFUEL",stats,stat_fuel));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATSPEED",stats,stat_speed));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATAIRTIME",stats,stat_airtime));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATPARRY",stats,stat_parry));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATPPARRY",stats,stat_pparry));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATWPONCH",stats,stat_wponch));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATBUSTS",stats,stat_busts));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATBUTTS",stats,stat_butts));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATPATS",stats,stat_pats));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATKISS",stats,stat_kiss));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATFRIENDS",stats,stat_friends));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATITEMS",stats,stat_items));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATSECRETS",stats,stat_secrets));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATKILLS",stats,stat_kills));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATDEATHS",stats,stat_deaths));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATDDEALT",stats,stat_ddealt));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATDTAKEN",stats,stat_dtaken));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATTDEALT",stats,stat_tdealt));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATTTAKEN",stats,stat_ttaken));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATMKILL",stats,stat_mkill));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATSKILL",stats,stat_skill));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATFAVWEAP",stats,stat_favweap));
|
||||
lists[0].items.Push(new('DemolitionistMenuStatItem').Init(master,"$SWWM_STATHISCORE",stats,stat_hiscore));
|
||||
for ( int i=0; i<lists[0].items.Size(); i++ )
|
||||
lists[0].items[i].ypos = i*16;
|
||||
// because these types of stats don't actually change while the menu is open, we can initialize their lists ONLY ONCE here
|
||||
foreach ( s:stats.lstats )
|
||||
lists[2].items.Push(new("DemolitionistMenuMapStatItem").Init(master,s));
|
||||
lists[2].items.Push(new('DemolitionistMenuMapStatItem').Init(master,s));
|
||||
// find the current level
|
||||
for ( int i=0; i<lists[2].items.Size(); i++ )
|
||||
{
|
||||
|
|
@ -74,7 +74,7 @@ Class DemolitionistStatsTab : DemolitionistMenuTab
|
|||
for ( int i=0; i<lists[2].items.Size(); i++ )
|
||||
lists[2].items[i].ypos = i*16;
|
||||
foreach ( inf:master.shnd.achievementinfo )
|
||||
lists[3].items.Push(new("DemolitionistMenuAchievementItem").Init(master,inf));
|
||||
lists[3].items.Push(new('DemolitionistMenuAchievementItem').Init(master,inf));
|
||||
return Super.Init(master);
|
||||
}
|
||||
override void OnDestroy()
|
||||
|
|
@ -87,7 +87,7 @@ Class DemolitionistStatsTab : DemolitionistMenuTab
|
|||
}
|
||||
override void OnSelect()
|
||||
{
|
||||
section = master.shnd.menustate.At("LastStatSection").ToInt();
|
||||
section = master.shnd.menustate.Get("LastStatSection").ToInt();
|
||||
smofs[section] = ofs[section];
|
||||
}
|
||||
override void OnDeselect()
|
||||
|
|
@ -389,7 +389,7 @@ Class DemolitionistStatsTab : DemolitionistMenuTab
|
|||
int oldindex = lists[1].items.Size();
|
||||
lists[1].items.Resize(stats.mstats.Size());
|
||||
for ( int i=oldindex; i<lists[1].items.Size(); i++ )
|
||||
lists[1].items[i] = new("DemolitionistMenuKillItem").Init(master,stats.mstats[i]);
|
||||
lists[1].items[i] = new('DemolitionistMenuKillItem').Init(master,stats.mstats[i]);
|
||||
}
|
||||
maxofs[1] = int(16*lists[1].items.Size()-(master.ws.y-46));
|
||||
// update widths
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ Class DemolitionistStoreTab : DemolitionistMenuTab
|
|||
|
||||
override void OnSelect()
|
||||
{
|
||||
bSell = master.shnd.menustate.At("WasSelling").ToInt();
|
||||
bSell = master.shnd.menustate.Get("WasSelling").ToInt();
|
||||
smofs = ofs;
|
||||
}
|
||||
override void OnDeselect()
|
||||
|
|
@ -103,7 +103,7 @@ Class DemolitionistStoreTab : DemolitionistMenuTab
|
|||
// no gravity/tether outside raven
|
||||
if ( !(gameinfo.gametype&GAME_RAVEN) && ((type is 'GravitySuppressor') || (type is 'SafetyTether')) ) return true;
|
||||
// can't sell candygun spares if we already own a Candy Gun
|
||||
if ( bSell && (type is 'CandyGunSpares') && players[consoleplayer].mo.FindInventory("CandyGun") ) return true;
|
||||
if ( bSell && (type is 'CandyGunSpares') && players[consoleplayer].mo.FindInventory('CandyGun') ) return true;
|
||||
// can't sell deep impact
|
||||
if ( bSell && (type is 'DeepImpact') ) return true;
|
||||
// skip items we don't own or are depleted if selling
|
||||
|
|
@ -138,7 +138,7 @@ Class DemolitionistStoreTab : DemolitionistMenuTab
|
|||
// skip unimplemented weapons
|
||||
if ( type is 'Weapon' )
|
||||
{
|
||||
let ready = inv.FindState("Ready");
|
||||
let ready = inv.FindState('Ready');
|
||||
if ( !ready || !ready.ValidateSpriteFrame() ) return true;
|
||||
}
|
||||
// ignore child ammos
|
||||
|
|
@ -162,7 +162,7 @@ Class DemolitionistStoreTab : DemolitionistMenuTab
|
|||
mustsort = true;
|
||||
skipsel = true;
|
||||
// initialize
|
||||
invlist[bSell] = new("DemolitionistMenuList");
|
||||
invlist[bSell] = new('DemolitionistMenuList');
|
||||
invlist[bSell].master = master;
|
||||
invlist[bSell].selected = 0;
|
||||
}
|
||||
|
|
@ -201,12 +201,12 @@ Class DemolitionistStoreTab : DemolitionistMenuTab
|
|||
let inv2 = GetDefaultByType(DemolitionistMenuStoreItem(invlist[bSell].items[j]).inv);
|
||||
if ( abs(inv.Stamina) > abs(inv2.Stamina) ) continue;
|
||||
greater = true;
|
||||
invlist[bSell].items.Insert(j,new("DemolitionistMenuStoreItem").Init(master,type,bSell));
|
||||
invlist[bSell].items.Insert(j,new('DemolitionistMenuStoreItem').Init(master,type,bSell));
|
||||
mustsort = true;
|
||||
break;
|
||||
}
|
||||
if ( greater ) continue;
|
||||
invlist[bSell].items.Push(new("DemolitionistMenuStoreItem").Init(master,type,bSell));
|
||||
invlist[bSell].items.Push(new('DemolitionistMenuStoreItem').Init(master,type,bSell));
|
||||
mustsort = true;
|
||||
}
|
||||
// don't do anything if empty
|
||||
|
|
@ -542,7 +542,7 @@ Class DemolitionistMenuStoreItem : DemolitionistMenuListItem
|
|||
if ( bSell )
|
||||
{
|
||||
pricelabel = String.Format("\cd¥%d\c-",price);
|
||||
int cur = (inv is 'CandyGun')?(players[consoleplayer].mo.CountInv("CandyGunSpares")+1):players[consoleplayer].mo.CountInv(inv);
|
||||
int cur = (inv is 'CandyGun')?(players[consoleplayer].mo.CountInv('CandyGunSpares')+1):players[consoleplayer].mo.CountInv(inv);
|
||||
if ( (cur > 1) || (inv is 'Ammo') || (inv is 'MagAmmo') ) label = String.Format("%s (%d/%d)",def.GetTag(),amt,cur);
|
||||
else label = def.GetTag();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Class SWWMAchievementMenu : GenericMenu
|
|||
Super.Init(parent);
|
||||
mTitle = StringTable.Localize("$SWWM_ATITLE");
|
||||
mSelected = 0;
|
||||
hnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
hnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( !hnd ) ThrowAbortException("SWWMStaticHandler not found???");
|
||||
mItems.Copy(hnd.achievementinfo);
|
||||
total = mItems.Size();
|
||||
|
|
|
|||
|
|
@ -146,42 +146,42 @@ Class SWWMCreditsMenu : GenericMenu
|
|||
slocal = StringTable.Localize("$SWWM_CLOCAL");
|
||||
spatrons = StringTable.Localize("$SWWM_CPATRON");
|
||||
sthanks = StringTable.Localize("$SWWM_CTHANK");
|
||||
cdev.Push(new("SWWMCreditsEntry").Init("Marisa the Magician","$SWWM_CDEV2",s:"graphics/Credits/MariSprite.png"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("Bethesda Game Studios","Fallout: New Vegas\nFallout 4"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("Epic Games","Unreal\nUnreal Tournament\nUnreal Tournament 2004\nUnreal Tournament 3"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("Ion Storm","Deus Ex"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("Looking Glass Studios","Thief\nSystem Shock 2"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("People Can Fly","Painkiller"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("Tripwire Interactive","Killing Floor"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("From Software","Dark Souls\nDark Souls II\nDark Souls III"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("SiFi270","$SWWM_ASSKEEN"));
|
||||
cassets.Push(new("SWWMCreditsEntry").Init("Nash","WidePix"));
|
||||
cmusic.Push(new("SWWMCreditsEntry").Init("Teque","Traumatic State\nDragony\nHidden Tune #242\nHypercardish 1.1"));
|
||||
cmusic.Push(new("SWWMCreditsEntry").Init("BouncyTEM","Solitary Apprehension"));
|
||||
cvoice.Push(new("SWWMCreditsEntry").Init("Vyolette","$T_DEMOLITIONIST"));
|
||||
clocal.Push(new("SWWMCreditsEntry").Init("Marisa the Magician","$SWWM_LOCES"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("Bean"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("Snacks"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("john"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("bouncytem"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("Pietro Gagliardi"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("Pope King Joe"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("Zardoz"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("NekoMithos"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("Antlason Widowz"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init("YaGirlJuniper"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("KynikossDragonn","$SWWM_CDRAGON2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("Vyolette","$SWWM_CVYOLETTE2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("Lucy","$SWWM_CLUCY2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("Gutawer","$SWWM_CGUTA2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("Mikolah","$SWWM_CMIKO2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("KeksDose","$SWWM_CKEKS2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("ZZYZX & Nash","$SWWM_CZN2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("BouncyTEM","$SWWM_CBOUNCY2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("\ctCptSledge\c- & \cdBunray\c-","$SWWM_CSLEDGE2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("$SWWM_CINSP1","$SWWM_CINSP2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("$SWWM_CCOMMUNITY1","$SWWM_CCOMMUNITY2"));
|
||||
cthanks.Push(new("SWWMCreditsEntry").Init("$SWWM_CYOU1","$SWWM_CYOU2"));
|
||||
cdev.Push(new('SWWMCreditsEntry').Init("Marisa the Magician","$SWWM_CDEV2",s:"graphics/Credits/MariSprite.png"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("Bethesda Game Studios","Fallout: New Vegas\nFallout 4"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("Epic Games","Unreal\nUnreal Tournament\nUnreal Tournament 2004\nUnreal Tournament 3"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("Ion Storm","Deus Ex"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("Looking Glass Studios","Thief\nSystem Shock 2"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("People Can Fly","Painkiller"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("Tripwire Interactive","Killing Floor"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("From Software","Dark Souls\nDark Souls II\nDark Souls III"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("SiFi270","$SWWM_ASSKEEN"));
|
||||
cassets.Push(new('SWWMCreditsEntry').Init("Nash","WidePix"));
|
||||
cmusic.Push(new('SWWMCreditsEntry').Init("Teque","Traumatic State\nDragony\nHidden Tune #242\nHypercardish 1.1"));
|
||||
cmusic.Push(new('SWWMCreditsEntry').Init("BouncyTEM","Solitary Apprehension"));
|
||||
cvoice.Push(new('SWWMCreditsEntry').Init("Vyolette","$T_DEMOLITIONIST"));
|
||||
clocal.Push(new('SWWMCreditsEntry').Init("Marisa the Magician","$SWWM_LOCES"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("Bean"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("Snacks"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("john"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("bouncytem"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("Pietro Gagliardi"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("Pope King Joe"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("Zardoz"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("NekoMithos"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("Antlason Widowz"));
|
||||
cpatrons.Push(new('SWWMCreditsEntry').Init("YaGirlJuniper"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("KynikossDragonn","$SWWM_CDRAGON2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("Vyolette","$SWWM_CVYOLETTE2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("Lucy","$SWWM_CLUCY2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("Gutawer","$SWWM_CGUTA2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("Mikolah","$SWWM_CMIKO2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("KeksDose","$SWWM_CKEKS2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("ZZYZX & Nash","$SWWM_CZN2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("BouncyTEM","$SWWM_CBOUNCY2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("\ctCptSledge\c- & \cdBunray\c-","$SWWM_CSLEDGE2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("$SWWM_CINSP1","$SWWM_CINSP2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("$SWWM_CCOMMUNITY1","$SWWM_CCOMMUNITY2"));
|
||||
cthanks.Push(new('SWWMCreditsEntry').Init("$SWWM_CYOU1","$SWWM_CYOU2"));
|
||||
speed = 16.;
|
||||
spos = ss.y-logosz.y;
|
||||
// calc total height
|
||||
|
|
@ -260,7 +260,7 @@ Class SWWMCreditsMenu : GenericMenu
|
|||
Vector2 vsize = (Screen.GetWidth(),Screen.GetHeight())/zoom;
|
||||
Screen.DrawTexture(bgtex,false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(192,0,0,0),DTA_Alpha,.8);
|
||||
}
|
||||
else Screen.Dim("Black",.8,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
else Screen.Dim(0xFF000000,.8,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Super.Drawer();
|
||||
UpdateSize();
|
||||
// logo
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ Class SWWMHelpMenu : GenericMenu
|
|||
Vector2 vsize = (Screen.GetWidth(),Screen.GetHeight())/zoom;
|
||||
Screen.DrawTexture(bgtex,false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(192,0,0,0),DTA_Alpha,.8);
|
||||
}
|
||||
else Screen.Dim("Black",.8,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
else Screen.Dim(0xFF000000,.8,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
double alph = clamp(((MenuTime()+System.GetTimeFrac())-fadetic)*(5./GameTicRate),0.,1.);
|
||||
if ( (prevpage == -1) || (alph >= 1.) ) DrawPage(curpage);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ Class SWWMStatScreen : StatusScreen
|
|||
ry -= 2*hs;
|
||||
rw += 8*hs;
|
||||
rh += 4*hs;
|
||||
Screen.Dim("Black",.8,rx,ry,rw,rh);
|
||||
Screen.Dim(0xFF000000,.8,rx,ry,rw,rh);
|
||||
// border outside
|
||||
rx -= hs;
|
||||
ry -= hs;
|
||||
|
|
@ -280,7 +280,7 @@ Class SWWMStatScreen : StatusScreen
|
|||
|
||||
private void drawSWWMBg()
|
||||
{
|
||||
if ( !shnd ) shnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
if ( !shnd ) shnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( !whichart )
|
||||
{
|
||||
int no = StringTable.Localize("$SWWM_NRENDER").ToInt();
|
||||
|
|
@ -314,7 +314,7 @@ Class SWWMStatScreen : StatusScreen
|
|||
}
|
||||
double ar = Screen.GetAspectRatio(), sar;
|
||||
Vector2 tsize, vsize;
|
||||
Screen.Clear(0,0,Screen.GetWidth(),Screen.GetHeight(),"Black");
|
||||
Screen.Clear(0,0,Screen.GetWidth(),Screen.GetHeight(),0xFF000000);
|
||||
// background pics
|
||||
if ( whichart )
|
||||
{
|
||||
|
|
@ -330,7 +330,7 @@ Class SWWMStatScreen : StatusScreen
|
|||
}
|
||||
private void drawSWWMFg()
|
||||
{
|
||||
if ( !shnd ) shnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
if ( !shnd ) shnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
// intermission tips at the bottom
|
||||
if ( !whichtip )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ Class SWWMOptionMenu : OptionMenu
|
|||
// draw at the bottom unless the selected option could be covered by the tooltip
|
||||
int ypos = Screen.GetHeight()-height;
|
||||
if ( cy > ypos ) ypos = 0;
|
||||
Screen.Dim("Black",.75,0,ypos,Screen.GetWidth(),height);
|
||||
Screen.Dim(0xFF000000,.75,0,ypos,Screen.GetWidth(),height);
|
||||
ypos += 2*CleanYFac_1;
|
||||
for ( int i=0; i<ttlines.Count(); i++ )
|
||||
{
|
||||
|
|
@ -352,7 +352,7 @@ Class SWWMMainMenu : SWWMCleanMenu
|
|||
int height = mSmallFont.GetHeight()+4;
|
||||
xx = CleanWidth_1-width;
|
||||
yy = CleanHeight_1-height;
|
||||
Screen.Dim("Black",.75,int(xx*CleanXFac_1),int(yy*CleanYFac_1),int(width*CleanXFac_1),int(height*CleanYFac_1));
|
||||
Screen.Dim(0xFF000000,.75,int(xx*CleanXFac_1),int(yy*CleanYFac_1),int(width*CleanXFac_1),int(height*CleanYFac_1));
|
||||
Screen.DrawText(mSmallFont,Font.CR_GOLD,(xx+4)*CleanXFac_1,(yy+2)*CleanYFac_1,str,DTA_CleanNoMove_1,true);
|
||||
}
|
||||
|
||||
|
|
@ -391,7 +391,7 @@ Class SWWMScrollMenu : SWWMCleanMenu
|
|||
if ( itm.GetClass() == 'ListMenuItemTextItem' )
|
||||
{
|
||||
let ti = ListMenuItemTextItem(itm);
|
||||
let rep = new("ListMenuItemSWWMTextItemM");
|
||||
let rep = new('ListMenuItemSWWMTextItemM');
|
||||
let [c, p] = ti.GetAction();
|
||||
rep.InitDirect(ti.GetX(),ti.GetY(),mDesc.mLineSpacing,ti.mHotkey,ti.mText,ti.mFont,ti.mColor,ti.mColorSelected,c,p);
|
||||
if ( (ti.mText == "$M_EPITNT") || (tntfix && (tntfix < 5)) )
|
||||
|
|
@ -402,7 +402,7 @@ Class SWWMScrollMenu : SWWMCleanMenu
|
|||
else if ( itm.GetClass() == 'ListMenuItemPatchItem' )
|
||||
{
|
||||
let pi = ListMenuItemPatchItem(itm);
|
||||
let rep = new("ListMenuItemSWWMPatchItemM");
|
||||
let rep = new('ListMenuItemSWWMPatchItemM');
|
||||
let [c, p] = pi.GetAction();
|
||||
rep.InitDirect(pi.GetX(),pi.GetY(),mDesc.mLineSpacing,pi.mHotkey,pi.mTexture,c,p);
|
||||
mDesc.mItems[i] = rep;
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ Class SWWMTitleStuff : EventHandler
|
|||
// birthday event
|
||||
if ( SystemTime.Format("%d%m",SystemTime.Now()) == "2001" )
|
||||
titletimer = -500;
|
||||
let shnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
let shnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( shnd )
|
||||
{
|
||||
if ( shnd.titlefirst )
|
||||
|
|
@ -143,7 +143,7 @@ Class SWWMTitleStuff : EventHandler
|
|||
Vector2 tsize, vsize;
|
||||
if ( titletimer < -300 )
|
||||
{
|
||||
Screen.Dim("Black",1.,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Screen.Dim(0xFF000000,1.,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
double alf;
|
||||
if ( titletimer < -420 ) alf = clamp((titletimer+450)/30.,0.,1.);
|
||||
else if ( titletimer > -330 ) alf = clamp(1.-(titletimer+330)/30.,0.,1.);
|
||||
|
|
@ -163,7 +163,7 @@ Class SWWMTitleStuff : EventHandler
|
|||
if ( !tex[3] ) tex[3] = TexMan.CheckForTexture((gameinfo.gametype&GAME_Raven)?"TITLE":"TITLEPIC",TexMan.Type_MiscPatch);
|
||||
if ( titletimer < 0 )
|
||||
{
|
||||
Screen.Dim("Black",1.,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Screen.Dim(0xFF000000,1.,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( titletimer < -20 )
|
||||
{
|
||||
rss = int(MSTime()*(GameTicRate/1000.));
|
||||
|
|
@ -173,9 +173,9 @@ Class SWWMTitleStuff : EventHandler
|
|||
Screen.DrawTexture(tex[3],true,ofs.x,ofs.y,DTA_VirtualWidthF,tsize.x,DTA_VirtualHeightF,tsize.y,DTA_FullscreenScale,FSMode_ScaleToFit43,DTA_TopLeft,true);
|
||||
RenderExplosions();
|
||||
}
|
||||
if ( titletimer > -20 ) Screen.Dim("White",1.-clamp((20+titletimer+e.FracTic)/20.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
else if ( titletimer > -80 ) Screen.Dim("White",clamp((80+titletimer+e.FracTic)/50.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( titletimer <= -250 ) Screen.Dim("Black",1.-clamp((270+titletimer+e.FracTic)/20.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( titletimer > -20 ) Screen.Dim(0xFFFFFFFF,1.-clamp((20+titletimer+e.FracTic)/20.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
else if ( titletimer > -80 ) Screen.Dim(0xFFFFFFFF,clamp((80+titletimer+e.FracTic)/50.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( titletimer <= -250 ) Screen.Dim(0xFF000000,1.-clamp((270+titletimer+e.FracTic)/20.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
return;
|
||||
}
|
||||
double GameSecs = (titletimer+e.FracTic)/GameTicRate;
|
||||
|
|
@ -185,9 +185,9 @@ Class SWWMTitleStuff : EventHandler
|
|||
double zoom = max(ceil(Screen.GetWidth()/tsize.x),ceil(Screen.GetHeight()/tsize.y));
|
||||
vsize = (Screen.GetWidth(),Screen.GetHeight())/zoom;
|
||||
Screen.DrawTexture(tex[2],false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(192,0,0,0));
|
||||
Screen.Dim("Black",clamp(1.-GameSecs*.05,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Screen.Dim(0xFF000000,clamp(1.-GameSecs*.05,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
}
|
||||
else Screen.Dim("Black",1.,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
else Screen.Dim(0xFF000000,1.,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
double hs = max(min(floor(Screen.GetWidth()/320.),floor(Screen.GetHeight()/200.)),1.);
|
||||
Vector2 ss = (Screen.GetWidth(),Screen.GetHeight())/hs;
|
||||
Render_NewTitle(e,GameSecs);
|
||||
|
|
@ -277,7 +277,7 @@ Class SWWMTitleStuff : EventHandler
|
|||
double alf1 = clamp((GameSecs-26.5)*.5,0.,1.);
|
||||
double alf2 = (GameSecs>28)?clamp((GameSecs-3)%5,0.,1.):0.;
|
||||
lfade.Clear(0,0,4,4,Color(int(255*alf1),int(255*alf2),0));
|
||||
if ( bFadeIn ) Screen.Dim("Black",1.-clamp(GameSecs-22,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( bFadeIn ) Screen.Dim(0xFF000000,1.-clamp(GameSecs-22,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( GameSecs < 27 )
|
||||
{
|
||||
static const int lofs[] =
|
||||
|
|
@ -346,7 +346,7 @@ Class SWWMTitleStuff : EventHandler
|
|||
if ( (GameSecs >= 23.) && (GameSecs < 25.6) )
|
||||
{
|
||||
double alf = 1.-SWWMUtility.fract(GameSecs*5.);
|
||||
Screen.Dim("White",.05*alf,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
Screen.Dim(0xFFFFFFFF,.05*alf,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -142,10 +142,10 @@ Class Demolitionist : PlayerPawn
|
|||
Player.DisplayName "$T_DEMOLITIONIST";
|
||||
// StartItem array is defined but not used directly
|
||||
// just declared here for mod compat
|
||||
Player.StartItem "ExplodiumGun";
|
||||
Player.StartItem "DeepImpact";
|
||||
Player.StartItem "AlmasteelPlating";
|
||||
Player.StartItem "SayaCollar";
|
||||
Player.StartItem 'ExplodiumGun';
|
||||
Player.StartItem 'DeepImpact';
|
||||
Player.StartItem 'AlmasteelPlating';
|
||||
Player.StartItem 'SayaCollar';
|
||||
Player.ViewHeight 52;
|
||||
Player.AirCapacity 0;
|
||||
Player.GruntSpeed 20;
|
||||
|
|
@ -196,7 +196,7 @@ Class Demolitionist : PlayerPawn
|
|||
// swap ourselves for a voodoo doll
|
||||
if ( !player || (player.mo != self) )
|
||||
{
|
||||
let v = Spawn("SWWMVoodooDoll",pos);
|
||||
let v = Spawn('SWWMVoodooDoll',pos);
|
||||
v.angle = angle;
|
||||
v.player = player;
|
||||
// give it a face if it belongs to a player
|
||||
|
|
@ -211,7 +211,7 @@ Class Demolitionist : PlayerPawn
|
|||
oldsinglefirst = swwm_singlefirst; // super already sets up the slots, so save the cvar value now
|
||||
mystats = SWWMStats.Find(player);
|
||||
// sanity checks
|
||||
if ( !EventHandler.Find("SWWMHandler") || !StaticEventHandler.Find("SWWMStaticHandler") )
|
||||
if ( !EventHandler.Find('SWWMHandler') || !StaticEventHandler.Find('SWWMStaticHandler') )
|
||||
ThrowAbortException("Panic! SWWM event handlers not detected!");
|
||||
}
|
||||
|
||||
|
|
@ -258,7 +258,7 @@ Class Demolitionist : PlayerPawn
|
|||
}
|
||||
// adjust fov from dashing
|
||||
double spd = vel.length();
|
||||
if ( InStateSequence(CurState,FindState("Dash")) && (spd > 10.) )
|
||||
if ( InStateSequence(CurState,FindState('Dash')) && (spd > 10.) )
|
||||
{
|
||||
Vector3 facedir = SWWMUtility.Vec3FromAngles(angle,pitch);
|
||||
if ( spd > 0. )
|
||||
|
|
@ -298,23 +298,23 @@ Class Demolitionist : PlayerPawn
|
|||
if ( ceilse && florse )
|
||||
{
|
||||
// snap both planes
|
||||
let q = Spawn("BustedQuake",(ceil.centerspot.x,ceil.centerspot.y,ceil.ceilingplane.ZAtPoint(ceil.centerspot)));
|
||||
let q = Spawn('BustedQuake',(ceil.centerspot.x,ceil.centerspot.y,ceil.ceilingplane.ZAtPoint(ceil.centerspot)));
|
||||
q.specialf1 = 6.;
|
||||
q = Spawn("BustedQuake",(flor.centerspot.x,flor.centerspot.y,flor.floorplane.ZAtPoint(flor.centerspot)));
|
||||
q = Spawn('BustedQuake',(flor.centerspot.x,flor.centerspot.y,flor.floorplane.ZAtPoint(flor.centerspot)));
|
||||
q.specialf1 = 6.;
|
||||
SWWMCrusherBroken.Create(flor,ceil,diffh/2.);
|
||||
}
|
||||
else if ( ceilse )
|
||||
{
|
||||
// snap ceiling
|
||||
let q = Spawn("BustedQuake",(ceil.centerspot.x,ceil.centerspot.y,ceil.ceilingplane.ZAtPoint(ceil.centerspot)));
|
||||
let q = Spawn('BustedQuake',(ceil.centerspot.x,ceil.centerspot.y,ceil.ceilingplane.ZAtPoint(ceil.centerspot)));
|
||||
q.specialf1 = 10.;
|
||||
SWWMCrusherBroken.Create(null,ceil,diffh);
|
||||
}
|
||||
else if ( florse )
|
||||
{
|
||||
// snap floor
|
||||
let q = Spawn("BustedQuake",(flor.centerspot.x,flor.centerspot.y,flor.floorplane.ZAtPoint(flor.centerspot)));
|
||||
let q = Spawn('BustedQuake',(flor.centerspot.x,flor.centerspot.y,flor.floorplane.ZAtPoint(flor.centerspot)));
|
||||
q.specialf1 = 10.;
|
||||
SWWMCrusherBroken.Create(flor,null,diffh);
|
||||
}
|
||||
|
|
@ -369,7 +369,7 @@ Class Demolitionist : PlayerPawn
|
|||
damage = 0;
|
||||
if ( (swwm_strictuntouchable >= 2) && (damage > 0) && player )
|
||||
{
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd ) hnd.tookdamage[PlayerNumber()] = true;
|
||||
}
|
||||
if ( (mod == 'Crush') && player && (player.mo == self) )
|
||||
|
|
@ -384,12 +384,12 @@ Class Demolitionist : PlayerPawn
|
|||
// break a spike trap
|
||||
else if ( source is 'ThrustFloor' )
|
||||
{
|
||||
let q = Spawn("BustedQuake",source.pos);
|
||||
let q = Spawn('BustedQuake',source.pos);
|
||||
q.specialf1 = 4.;
|
||||
int numpt = Random[ExploS](30,40);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("SWWMChip",source.Vec3Angle(source.radius,FRandom[ExploS](0,360),1.+FRandom[ExploS](0,max(0.,source.height-source.floorclip))));
|
||||
let s = Spawn('SWWMChip',source.Vec3Angle(source.radius,FRandom[ExploS](0,360),1.+FRandom[ExploS](0,max(0.,source.height-source.floorclip))));
|
||||
s.vel = ((0,0,1)+SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*.6).unit()*FRandom[ExploS](2.,16.);
|
||||
s.scale *= FRandom[ExploS](1.5,3.);
|
||||
s.A_SetTranslation('StoneSpike');
|
||||
|
|
@ -397,13 +397,13 @@ Class Demolitionist : PlayerPawn
|
|||
numpt = Random[ExploS](12,16);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",source.Vec3Offset(0,0,1.+FRandom[ExploS](0,max(0.,source.height-source.floorclip))));
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',source.Vec3Offset(0,0,1.+FRandom[ExploS](0,max(0.,source.height-source.floorclip))));
|
||||
s.vel = ((0,0,1)+SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))).unit()*FRandom[ExploS](-2,8.);
|
||||
s.scale *= 2.5;
|
||||
s.framestep = Random[ExploS](4,9);
|
||||
s.scolor = Color(5,4,3)*Random[ExploS](20,40);
|
||||
}
|
||||
Spawn("SWWMCrushedSpike",source.pos);
|
||||
Spawn('SWWMCrushedSpike',source.pos);
|
||||
if ( source.master ) source.master.Destroy();
|
||||
source.Destroy();
|
||||
damage = 20; // reduce so it's not instant kill
|
||||
|
|
@ -575,7 +575,7 @@ Class Demolitionist : PlayerPawn
|
|||
if ( !player ) return false;
|
||||
int score = 100;
|
||||
// last secret (this is called before counting it up, so have to subtract)
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !deathmatch && !(gameinfo.gametype&GAME_Hexen) && (level.found_secrets == level.total_secrets-1) && (!hnd || !hnd.allsecrets) )
|
||||
{
|
||||
if ( hnd ) hnd.allsecrets = true;
|
||||
|
|
@ -730,7 +730,7 @@ Class Demolitionist : PlayerPawn
|
|||
if ( player.ReadyWeapon is 'SWWMGesture' )
|
||||
{
|
||||
player.PendingWeapon = SWWMGesture(player.ReadyWeapon).formerweapon;
|
||||
player.SetPSprite(PSP_WEAPON,player.ReadyWeapon.ResolveState("Deselect"));
|
||||
player.SetPSprite(PSP_WEAPON,player.ReadyWeapon.ResolveState('Deselect'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -760,7 +760,7 @@ Class Demolitionist : PlayerPawn
|
|||
bumpvelz = 0.;
|
||||
}
|
||||
// notify carried lamp that we just moved
|
||||
let l = SWWMLamp(FindInventory("SWWMLamp"));
|
||||
let l = SWWMLamp(FindInventory('SWWMLamp'));
|
||||
if ( l && l.thelamp )
|
||||
CompanionLamp(l.thelamp).justteleport = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ extend Class Demolitionist
|
|||
{
|
||||
if ( !player )
|
||||
{
|
||||
if ( !InStateSequence(CurState,FindState("Spawn")) )
|
||||
SetStateLabel("Spawn");
|
||||
if ( !InStateSequence(CurState,FindState('Spawn')) )
|
||||
SetStateLabel('Spawn');
|
||||
return;
|
||||
}
|
||||
if ( player.health <= 0 ) return;
|
||||
|
|
@ -16,46 +16,46 @@ extend Class Demolitionist
|
|||
if ( player.crouchdir == -1 )
|
||||
{
|
||||
// Crouching
|
||||
if ( InStateSequence(CurState,FindState("CrouchMove"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveRun"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveFast")) )
|
||||
SetStateLabel("Crouch");
|
||||
else if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Float"))
|
||||
|| InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("StartCrouch");
|
||||
if ( InStateSequence(CurState,FindState('CrouchMove'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveRun'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveFast')) )
|
||||
SetStateLabel('Crouch');
|
||||
else if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Float'))
|
||||
|| InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('StartCrouch');
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Crouch"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMove"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveRun"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveFast")) )
|
||||
SetStateLabel("EndCrouch");
|
||||
else if ( InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("Float")) )
|
||||
if ( InStateSequence(CurState,FindState('Crouch'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMove'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveRun'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveFast')) )
|
||||
SetStateLabel('EndCrouch');
|
||||
else if ( InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('Float')) )
|
||||
{
|
||||
SetStateLabel("Spawn");
|
||||
SetStateLabel('Spawn');
|
||||
A_StartSound("demolitionist/runstop",CHAN_FOOTSTEP,CHANF_OVERLAP,.2);
|
||||
}
|
||||
else if ( InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop")) )
|
||||
SetStateLabel("SeeFastEnd");
|
||||
else if ( InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("SwimEnd");
|
||||
else if ( InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop')) )
|
||||
SetStateLabel('SeeFastEnd');
|
||||
else if ( InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('SwimEnd');
|
||||
}
|
||||
}
|
||||
else if ( !bNoGravity )
|
||||
|
|
@ -63,45 +63,45 @@ extend Class Demolitionist
|
|||
// Falling
|
||||
if ( player.crouchdir == -1 )
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Jump"))
|
||||
|| InStateSequence(CurState,FindState("Float"))
|
||||
|| InStateSequence(CurState,FindState("Fall"))
|
||||
|| InStateSequence(CurState,FindState("FallLoop"))
|
||||
|| InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("StartCrouch");
|
||||
if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Jump'))
|
||||
|| InStateSequence(CurState,FindState('Float'))
|
||||
|| InStateSequence(CurState,FindState('Fall'))
|
||||
|| InStateSequence(CurState,FindState('FallLoop'))
|
||||
|| InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('StartCrouch');
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( (InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Float")))
|
||||
if ( (InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Float')))
|
||||
&& (abs(pos.z-floorz) > maxstepheight) )
|
||||
SetStateLabel("Fall");
|
||||
else if ( InStateSequence(CurState,FindState("Crouch"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMove"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveRun"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveFast")) )
|
||||
SetStateLabel("EndCrouch");
|
||||
else if ( InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("SwimEnd");
|
||||
SetStateLabel('Fall');
|
||||
else if ( InStateSequence(CurState,FindState('Crouch'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMove'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveRun'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveFast')) )
|
||||
SetStateLabel('EndCrouch');
|
||||
else if ( InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('SwimEnd');
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -110,46 +110,46 @@ extend Class Demolitionist
|
|||
if ( player.crouchdir == -1 )
|
||||
{
|
||||
// Crouching
|
||||
if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Jump"))
|
||||
|| InStateSequence(CurState,FindState("Float"))
|
||||
|| InStateSequence(CurState,FindState("Fall"))
|
||||
|| InStateSequence(CurState,FindState("FallLoop"))
|
||||
|| InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("StartCrouch");
|
||||
if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Jump'))
|
||||
|| InStateSequence(CurState,FindState('Float'))
|
||||
|| InStateSequence(CurState,FindState('Fall'))
|
||||
|| InStateSequence(CurState,FindState('FallLoop'))
|
||||
|| InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('StartCrouch');
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Jump"))
|
||||
|| InStateSequence(CurState,FindState("Fall"))
|
||||
|| InStateSequence(CurState,FindState("FallLoop")) )
|
||||
SetStateLabel("Float");
|
||||
else if ( InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("SwimEnd");
|
||||
else if ( InStateSequence(CurState,FindState("Crouch"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMove"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveRun"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveFast")) )
|
||||
SetStateLabel("EndCrouch");
|
||||
if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Jump'))
|
||||
|| InStateSequence(CurState,FindState('Fall'))
|
||||
|| InStateSequence(CurState,FindState('FallLoop')) )
|
||||
SetStateLabel('Float');
|
||||
else if ( InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('SwimEnd');
|
||||
else if ( InStateSequence(CurState,FindState('Crouch'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMove'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveRun'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveFast')) )
|
||||
SetStateLabel('EndCrouch');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -158,8 +158,8 @@ extend Class Demolitionist
|
|||
{
|
||||
if ( !player )
|
||||
{
|
||||
if ( !InStateSequence(CurState,FindState("SeeRun")) )
|
||||
SetStateLabel("SeeRun");
|
||||
if ( !InStateSequence(CurState,FindState('SeeRun')) )
|
||||
SetStateLabel('SeeRun');
|
||||
return;
|
||||
}
|
||||
if ( player.health <= 0 ) return;
|
||||
|
|
@ -169,61 +169,61 @@ extend Class Demolitionist
|
|||
if ( player.crouchdir == -1 )
|
||||
{
|
||||
// Crouching
|
||||
if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Fall"))
|
||||
|| InStateSequence(CurState,FindState("FallLoop"))
|
||||
|| InStateSequence(CurState,FindState("Float"))
|
||||
|| InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("StartCrouch");
|
||||
else if ( InStateSequence(CurState,FindState("Crouch")) )
|
||||
if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Fall'))
|
||||
|| InStateSequence(CurState,FindState('FallLoop'))
|
||||
|| InStateSequence(CurState,FindState('Float'))
|
||||
|| InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('StartCrouch');
|
||||
else if ( InStateSequence(CurState,FindState('Crouch')) )
|
||||
{
|
||||
switch( FastCheck() )
|
||||
{
|
||||
case 2:
|
||||
SetStateLabel("CrouchMoveFast");
|
||||
SetStateLabel('CrouchMoveFast');
|
||||
break;
|
||||
case 1:
|
||||
SetStateLabel("CrouchMoveRun");
|
||||
SetStateLabel('CrouchMoveRun');
|
||||
break;
|
||||
default:
|
||||
SetStateLabel("CrouchMove");
|
||||
SetStateLabel('CrouchMove');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Crouch"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMove"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveRun"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveFast")) )
|
||||
SetStateLabel("EndCrouch");
|
||||
else if ( InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("SwimEnd");
|
||||
if ( InStateSequence(CurState,FindState('Crouch'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMove'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveRun'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveFast')) )
|
||||
SetStateLabel('EndCrouch');
|
||||
else if ( InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('SwimEnd');
|
||||
else if ( (FastCheck() == 2)
|
||||
&& (InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))) )
|
||||
SetStateLabel("SeeFast");
|
||||
else if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Float"))
|
||||
|| InStateSequence(CurState,FindState("Turn")) )
|
||||
&& (InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))) )
|
||||
SetStateLabel('SeeFast');
|
||||
else if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Float'))
|
||||
|| InStateSequence(CurState,FindState('Turn')) )
|
||||
{
|
||||
if ( FastCheck() == 1 ) SetStateLabel("SeeRun");
|
||||
else SetStateLabel("See");
|
||||
if ( FastCheck() == 1 ) SetStateLabel('SeeRun');
|
||||
else SetStateLabel('See');
|
||||
A_StartSound("demolitionist/runstart",CHAN_FOOTSTEP,CHANF_OVERLAP,.2);
|
||||
}
|
||||
}
|
||||
|
|
@ -239,34 +239,34 @@ extend Class Demolitionist
|
|||
if ( player.crouchdir == -1 )
|
||||
{
|
||||
// Crouching
|
||||
if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Jump"))
|
||||
|| InStateSequence(CurState,FindState("Fall"))
|
||||
|| InStateSequence(CurState,FindState("FallLoop"))
|
||||
|| InStateSequence(CurState,FindState("Float"))
|
||||
|| InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("StartCrouch");
|
||||
else if ( InStateSequence(CurState,FindState("Crouch")) )
|
||||
if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Jump'))
|
||||
|| InStateSequence(CurState,FindState('Fall'))
|
||||
|| InStateSequence(CurState,FindState('FallLoop'))
|
||||
|| InStateSequence(CurState,FindState('Float'))
|
||||
|| InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('StartCrouch');
|
||||
else if ( InStateSequence(CurState,FindState('Crouch')) )
|
||||
{
|
||||
switch( FastCheck() )
|
||||
{
|
||||
case 2:
|
||||
SetStateLabel("CrouchMoveFast");
|
||||
SetStateLabel('CrouchMoveFast');
|
||||
break;
|
||||
case 1:
|
||||
SetStateLabel("CrouchMoveRun");
|
||||
SetStateLabel('CrouchMoveRun');
|
||||
break;
|
||||
default:
|
||||
SetStateLabel("CrouchMove");
|
||||
SetStateLabel('CrouchMove');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -274,46 +274,46 @@ extend Class Demolitionist
|
|||
else if ( bFlyCheat || (player.cheats&CF_NOCLIP2) )
|
||||
{
|
||||
// Special case, fly cheats don't play a swim animation, only float
|
||||
// (this fixes Demo "swimming" on the library ladder in Spooktober, for example)
|
||||
if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Jump"))
|
||||
|| InStateSequence(CurState,FindState("Fall"))
|
||||
|| InStateSequence(CurState,FindState("FallLoop"))
|
||||
|| InStateSequence(CurState,FindState("Swim"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoop"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopRun"))
|
||||
|| InStateSequence(CurState,FindState("SwimLoopFast")) )
|
||||
SetStateLabel("Float");
|
||||
else if ( InStateSequence(CurState,FindState("Crouch"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMove"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveRun"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveFast")) )
|
||||
SetStateLabel("EndCrouch");
|
||||
// (this fixes Demo 'swimming' on the library ladder in Spooktober, for example)
|
||||
if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Jump'))
|
||||
|| InStateSequence(CurState,FindState('Fall'))
|
||||
|| InStateSequence(CurState,FindState('FallLoop'))
|
||||
|| InStateSequence(CurState,FindState('Swim'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoop'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopRun'))
|
||||
|| InStateSequence(CurState,FindState('SwimLoopFast')) )
|
||||
SetStateLabel('Float');
|
||||
else if ( InStateSequence(CurState,FindState('Crouch'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMove'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveRun'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveFast')) )
|
||||
SetStateLabel('EndCrouch');
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Spawn"))
|
||||
|| InStateSequence(CurState,FindState("Turn"))
|
||||
|| InStateSequence(CurState,FindState("See"))
|
||||
|| InStateSequence(CurState,FindState("SeeRun"))
|
||||
|| InStateSequence(CurState,FindState("SeeFast"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastLoop"))
|
||||
|| InStateSequence(CurState,FindState("SeeFastEnd"))
|
||||
|| InStateSequence(CurState,FindState("Jump"))
|
||||
|| InStateSequence(CurState,FindState("Fall"))
|
||||
|| InStateSequence(CurState,FindState("FallLoop"))
|
||||
|| InStateSequence(CurState,FindState("Float")) )
|
||||
SetStateLabel("Swim");
|
||||
else if ( InStateSequence(CurState,FindState("Crouch"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveRun"))
|
||||
|| InStateSequence(CurState,FindState("CrouchMoveFast")) )
|
||||
SetStateLabel("EndCrouch");
|
||||
if ( InStateSequence(CurState,FindState('Spawn'))
|
||||
|| InStateSequence(CurState,FindState('Turn'))
|
||||
|| InStateSequence(CurState,FindState('See'))
|
||||
|| InStateSequence(CurState,FindState('SeeRun'))
|
||||
|| InStateSequence(CurState,FindState('SeeFast'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastLoop'))
|
||||
|| InStateSequence(CurState,FindState('SeeFastEnd'))
|
||||
|| InStateSequence(CurState,FindState('Jump'))
|
||||
|| InStateSequence(CurState,FindState('Fall'))
|
||||
|| InStateSequence(CurState,FindState('FallLoop'))
|
||||
|| InStateSequence(CurState,FindState('Float')) )
|
||||
SetStateLabel('Swim');
|
||||
else if ( InStateSequence(CurState,FindState('Crouch'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveRun'))
|
||||
|| InStateSequence(CurState,FindState('CrouchMoveFast')) )
|
||||
SetStateLabel('EndCrouch');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -323,11 +323,11 @@ extend Class Demolitionist
|
|||
// Do nothing if it's a SWWM weapon, since those do things themselves
|
||||
if ( player && (player.ReadyWeapon is 'SWWMWeapon') )
|
||||
return;
|
||||
if ( InStateSequence(CurState,FindState("Dash"))
|
||||
|| InStateSequence(CurState,FindState("Boost")) )
|
||||
if ( InStateSequence(CurState,FindState('Dash'))
|
||||
|| InStateSequence(CurState,FindState('Boost')) )
|
||||
return; // don't cancel dash/boost
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel("CrouchMissile");
|
||||
else SetStateLabel("Missile");
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel('CrouchMissile');
|
||||
else SetStateLabel('Missile');
|
||||
}
|
||||
|
||||
override void PlayAttacking2()
|
||||
|
|
@ -337,62 +337,62 @@ extend Class Demolitionist
|
|||
|
||||
void PlayFire()
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Dash"))
|
||||
|| InStateSequence(CurState,FindState("Boost")) )
|
||||
if ( InStateSequence(CurState,FindState('Dash'))
|
||||
|| InStateSequence(CurState,FindState('Boost')) )
|
||||
return; // don't cancel dash/boost
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel("CrouchMissile");
|
||||
else SetStateLabel("Missile");
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel('CrouchMissile');
|
||||
else SetStateLabel('Missile');
|
||||
}
|
||||
|
||||
void PlayMelee()
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Dash"))
|
||||
|| InStateSequence(CurState,FindState("Boost")) )
|
||||
if ( InStateSequence(CurState,FindState('Dash'))
|
||||
|| InStateSequence(CurState,FindState('Boost')) )
|
||||
return; // don't cancel dash/boost
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel("CrouchMelee");
|
||||
else SetStateLabel("Melee");
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel('CrouchMelee');
|
||||
else SetStateLabel('Melee');
|
||||
}
|
||||
|
||||
void PlayFastMelee()
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Dash"))
|
||||
|| InStateSequence(CurState,FindState("Boost")) )
|
||||
if ( InStateSequence(CurState,FindState('Dash'))
|
||||
|| InStateSequence(CurState,FindState('Boost')) )
|
||||
return; // don't cancel dash/boost
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel("CrouchFastMelee");
|
||||
else SetStateLabel("FastMelee");
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel('CrouchFastMelee');
|
||||
else SetStateLabel('FastMelee');
|
||||
}
|
||||
|
||||
void PlayReload()
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Dash"))
|
||||
|| InStateSequence(CurState,FindState("Boost")) )
|
||||
if ( InStateSequence(CurState,FindState('Dash'))
|
||||
|| InStateSequence(CurState,FindState('Boost')) )
|
||||
return; // don't cancel dash/boost
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel("CrouchReload");
|
||||
else SetStateLabel("Reload");
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel('CrouchReload');
|
||||
else SetStateLabel('Reload');
|
||||
}
|
||||
|
||||
void PlayFastReload()
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Dash"))
|
||||
|| InStateSequence(CurState,FindState("Boost")) )
|
||||
if ( InStateSequence(CurState,FindState('Dash'))
|
||||
|| InStateSequence(CurState,FindState('Boost')) )
|
||||
return; // don't cancel dash/boost
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel("CrouchFastReload");
|
||||
else SetStateLabel("FastReload");
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel('CrouchFastReload');
|
||||
else SetStateLabel('FastReload');
|
||||
}
|
||||
|
||||
void PlayCheckGun()
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Dash"))
|
||||
|| InStateSequence(CurState,FindState("Boost")) )
|
||||
if ( InStateSequence(CurState,FindState('Dash'))
|
||||
|| InStateSequence(CurState,FindState('Boost')) )
|
||||
return; // don't cancel dash/boost
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel("CrouchCheckGun");
|
||||
else SetStateLabel("CheckGun");
|
||||
if ( player && (player.crouchdir == -1) ) SetStateLabel('CrouchCheckGun');
|
||||
else SetStateLabel('CheckGun');
|
||||
}
|
||||
|
||||
void A_DMFade()
|
||||
{
|
||||
if ( player ) return;
|
||||
Spawn("TeleportFog",pos,ALLOW_REPLACE);
|
||||
Spawn('TeleportFog',pos,ALLOW_REPLACE);
|
||||
Destroy();
|
||||
}
|
||||
|
||||
|
|
@ -492,7 +492,7 @@ extend Class Demolitionist
|
|||
if ( (dashfuel <= 0.) && fullfuel )
|
||||
SWWMUtility.AchievementProgressInc("brake",1,player);
|
||||
if ( (dashfuel <= 0.) || (dashboost <= 0.) )
|
||||
SetStateLabel("DashEnd");
|
||||
SetStateLabel('DashEnd');
|
||||
}
|
||||
|
||||
void A_BoostUp( bool initial = false )
|
||||
|
|
@ -514,7 +514,7 @@ extend Class Demolitionist
|
|||
{
|
||||
if ( !initial )
|
||||
{
|
||||
if ( player.onground ) SetStateLabel("JumpEnd");
|
||||
if ( player.onground ) SetStateLabel('JumpEnd');
|
||||
else SetStateLabel("Fall");
|
||||
}
|
||||
return;
|
||||
|
|
@ -563,16 +563,16 @@ extend Class Demolitionist
|
|||
Spawn:
|
||||
// normal idle
|
||||
#### # 2;
|
||||
XZW1 A 1 A_JumpIf(player&&(player.mo==self)&&(abs(player.cmd.yaw|player.cmd.pitch)>128),"Turn");
|
||||
XZW1 A 1 A_JumpIf(player&&(player.mo==self)&&(abs(player.cmd.yaw|player.cmd.pitch)>128),'Turn');
|
||||
Wait;
|
||||
See:
|
||||
// normal walking
|
||||
#### # 2;
|
||||
XZW1 BCD 2 A_FastJump(null,"SeeRun","SeeFast");
|
||||
XZW1 BCD 2 A_FastJump(null,'SeeRun','SeeFast');
|
||||
XZW1 E 0 A_Footstep(1);
|
||||
XZW1 EFGHIJKL 2 A_FastJump(null,"SeeRun","SeeFast");
|
||||
XZW1 EFGHIJKL 2 A_FastJump(null,'SeeRun','SeeFast');
|
||||
XZW1 M 0 A_Footstep(-1);
|
||||
XZW1 MNOPA 2 A_FastJump(null,"SeeRun","SeeFast");
|
||||
XZW1 MNOPA 2 A_FastJump(null,'SeeRun','SeeFast');
|
||||
Goto See+1;
|
||||
Turn:
|
||||
#### # 8 A_StartSound("demolitionist/runstart",CHAN_FOOTSTEP,CHANF_OVERLAP,.1);
|
||||
|
|
@ -582,12 +582,12 @@ extend Class Demolitionist
|
|||
Goto Spawn+1;
|
||||
SeeRun:
|
||||
#### # 2;
|
||||
XZWI PQR 2 A_FastJump("See",null,"SeeFast");
|
||||
XZWI PQR 2 A_FastJump('See',null,'SeeFast');
|
||||
XZWI S 0 A_Footstep(1,1);
|
||||
XZWI STUVWX 2 A_FastJump("See",null,"SeeFast");
|
||||
XZWI STUVWX 2 A_FastJump('See',null,'SeeFast');
|
||||
XZWI Y 0 A_Footstep(-1,1);
|
||||
XZWI YZ 2 A_FastJump("See",null,"SeeFast");
|
||||
XZW1 A 2 A_FastJump("See",null,"SeeFast");
|
||||
XZWI YZ 2 A_FastJump('See',null,'SeeFast');
|
||||
XZW1 A 2 A_FastJump('See',null,'SeeFast');
|
||||
Goto SeeRun+1;
|
||||
SeeFast:
|
||||
// sprinting
|
||||
|
|
@ -596,22 +596,22 @@ extend Class Demolitionist
|
|||
Goto SeeFastLoop;
|
||||
SeeFastLoop:
|
||||
// keep sprinting
|
||||
XZW1 T 1 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW1 U 1 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW1 T 1 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW1 U 1 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW1 V 0 A_Footstep(1,2);
|
||||
XZW1 V 1 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW1 W 2 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW1 X 2 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW1 Y 2 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW1 Z 2 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW2 A 1 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW2 B 1 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW1 V 1 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW1 W 2 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW1 X 2 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW1 Y 2 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW1 Z 2 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW2 A 1 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW2 B 1 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW2 C 0 A_Footstep(-1,2);
|
||||
XZW2 C 1 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW2 D 2 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW2 E 2 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW2 F 2 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW2 G 2 A_JumpIf(FastCheck()!=2,"SeeFastEnd");
|
||||
XZW2 C 1 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW2 D 2 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW2 E 2 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW2 F 2 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
XZW2 G 2 A_JumpIf(FastCheck()!=2,'SeeFastEnd');
|
||||
Goto SeeFastLoop;
|
||||
SeeFastEnd:
|
||||
// brake
|
||||
|
|
@ -620,14 +620,14 @@ extend Class Demolitionist
|
|||
Goto Spawn+1;
|
||||
Pain:
|
||||
// ouchy
|
||||
XZW1 A 1 A_JumpIf(player&&(player.mo==self)&&(player.crouchdir==-1),"CrouchPain");
|
||||
XZW1 A 1 A_JumpIf(player&&(player.mo==self)&&(player.crouchdir==-1),'CrouchPain');
|
||||
XZW2 M 1 A_DemoPain();
|
||||
XZW2 NOPQ 1;
|
||||
Goto Spawn+1;
|
||||
Death:
|
||||
XDeath:
|
||||
// ded
|
||||
XZW1 A 0 A_JumpIf(player&&(player.mo==self)&&(player.crouchdir==-1),"CrouchDeath");
|
||||
XZW1 A 0 A_JumpIf(player&&(player.mo==self)&&(player.crouchdir==-1),'CrouchDeath');
|
||||
XZW1 A 2
|
||||
{
|
||||
A_DemoScream();
|
||||
|
|
@ -643,7 +643,7 @@ extend Class Demolitionist
|
|||
XZW3 IJKLMNO 2
|
||||
{
|
||||
if ( player.onground||bNoGravity )
|
||||
return ResolveState("BoostEnd");
|
||||
return ResolveState('BoostEnd');
|
||||
A_BoostUp(true);
|
||||
return ResolveState(null);
|
||||
}
|
||||
|
|
@ -651,11 +651,11 @@ extend Class Demolitionist
|
|||
XZW3 P 1
|
||||
{
|
||||
if ( player.onground||bNoGravity )
|
||||
return ResolveState("BoostEnd");
|
||||
return ResolveState('BoostEnd');
|
||||
A_BoostUp(false);
|
||||
return ResolveState(null);
|
||||
}
|
||||
XZW3 P 1 A_JumpIf((vel.z<-10)&&(pos.z>(floorz+80)),"Fall");
|
||||
XZW3 P 1 A_JumpIf((vel.z<-10)&&(pos.z>(floorz+80)),'Fall');
|
||||
Goto Boost+8;
|
||||
BoostEnd:
|
||||
// stop boost
|
||||
|
|
@ -664,17 +664,17 @@ extend Class Demolitionist
|
|||
Goto Spawn+1;
|
||||
Jump:
|
||||
#### # 2;
|
||||
XZWJ ABCDEF 2 A_JumpIf(player.onground&&!bNoGravity,"FallEnd");
|
||||
XZWJ ABCDEF 2 A_JumpIf(player.onground&&!bNoGravity,'FallEnd');
|
||||
Goto FallLoop;
|
||||
Fall:
|
||||
// start fall
|
||||
#### # 4;
|
||||
XZW3 XYZ 2 A_JumpIf(player.onground&&!bNoGravity,"FallEnd");
|
||||
XZW4 AB 2 A_JumpIf(player.onground&&!bNoGravity,"FallEnd");
|
||||
XZW3 XYZ 2 A_JumpIf(player.onground&&!bNoGravity,'FallEnd');
|
||||
XZW4 AB 2 A_JumpIf(player.onground&&!bNoGravity,'FallEnd');
|
||||
Goto FallLoop;
|
||||
FallLoop:
|
||||
// falling
|
||||
XZW4 CDEFGH 3 A_JumpIf(player.onground&&!bNoGravity,"FallEnd");
|
||||
XZW4 CDEFGH 3 A_JumpIf(player.onground&&!bNoGravity,'FallEnd');
|
||||
Goto FallLoop;
|
||||
FallEnd:
|
||||
// landing
|
||||
|
|
@ -806,27 +806,27 @@ extend Class Demolitionist
|
|||
Stop;
|
||||
CrouchMove:
|
||||
#### # 4;
|
||||
XZW7 MN 4 A_FastJump(null,"CrouchMoveRun","CrouchMoveFast");
|
||||
XZW7 MN 4 A_FastJump(null,'CrouchMoveRun','CrouchMoveFast');
|
||||
XZW7 O 0 A_Crawl(.1,false);
|
||||
XZW7 OPQRS 4 A_FastJump(null,"CrouchMoveRun","CrouchMoveFast");
|
||||
XZW7 OPQRS 4 A_FastJump(null,'CrouchMoveRun','CrouchMoveFast');
|
||||
XZW7 T 0 A_Crawl(.1,true);
|
||||
XZW7 TUV 4 A_FastJump(null,"CrouchMoveRun","CrouchMoveFast");
|
||||
XZW7 TUV 4 A_FastJump(null,'CrouchMoveRun','CrouchMoveFast');
|
||||
Goto CrouchMove+1;
|
||||
CrouchMoveRun:
|
||||
#### # 3;
|
||||
XZW7 MN 3 A_FastJump("CrouchMove",null,"CrouchMoveFast");
|
||||
XZW7 MN 3 A_FastJump('CrouchMove',null,'CrouchMoveFast');
|
||||
XZW7 O 0 A_Crawl(.2,false);
|
||||
XZW7 OPQRS 3 A_FastJump("CrouchMove",null,"CrouchMoveFast");
|
||||
XZW7 OPQRS 3 A_FastJump('CrouchMove',null,'CrouchMoveFast');
|
||||
XZW7 T 0 A_Crawl(.2,true);
|
||||
XZW7 TUV 3 A_FastJump("CrouchMove",null,"CrouchMoveFast");
|
||||
XZW7 TUV 3 A_FastJump('CrouchMove',null,'CrouchMoveFast');
|
||||
Goto CrouchMoveRun+1;
|
||||
CrouchMoveFast:
|
||||
#### # 2;
|
||||
XZW7 MN 2 A_FastJump("CrouchMove","CrouchMoveRun",null);
|
||||
XZW7 MN 2 A_FastJump('CrouchMove','CrouchMoveRun',null);
|
||||
XZW7 O 0 A_Crawl(.4,false);
|
||||
XZW7 OPQRS 2 A_FastJump("CrouchMove","CrouchMoveRun",null);
|
||||
XZW7 OPQRS 2 A_FastJump('CrouchMove','CrouchMoveRun',null);
|
||||
XZW7 T 0 A_Crawl(.4,true);
|
||||
XZW7 TUV 2 A_FastJump("CrouchMove","CrouchMoveRun",null);
|
||||
XZW7 TUV 2 A_FastJump('CrouchMove','CrouchMoveRun',null);
|
||||
Goto CrouchMoveFast+2;
|
||||
CrouchWave:
|
||||
#### # 3;
|
||||
|
|
@ -914,27 +914,27 @@ extend Class Demolitionist
|
|||
Goto SwimLoop;
|
||||
SwimLoop:
|
||||
#### # 5;
|
||||
XZWE MNO 5 A_FastJump(null,"SwimLoopRun","SwimLoopFast");
|
||||
XZWE MNO 5 A_FastJump(null,'SwimLoopRun','SwimLoopFast');
|
||||
XZWE P 0 A_Crawl(.1,false);
|
||||
XZWE PQRSTU 5 A_FastJump(null,"SwimLoopRun","SwimLoopFast");
|
||||
XZWE PQRSTU 5 A_FastJump(null,'SwimLoopRun','SwimLoopFast');
|
||||
XZWE V 0 A_Crawl(.1,true);
|
||||
XZWE VWX 5 A_FastJump(null,"SwimLoopRun","SwimLoopFast");
|
||||
XZWE VWX 5 A_FastJump(null,'SwimLoopRun','SwimLoopFast');
|
||||
Goto SwimLoop+1;
|
||||
SwimLoopRun:
|
||||
#### # 3;
|
||||
XZWE MNO 3 A_FastJump("SwimLoop",null,"SwimLoopFast");
|
||||
XZWE MNO 3 A_FastJump('SwimLoop',null,'SwimLoopFast');
|
||||
XZWE P 0 A_Crawl(.2,false);
|
||||
XZWE PQRSTU 3 A_FastJump("SwimLoop",null,"SwimLoopFast");
|
||||
XZWE PQRSTU 3 A_FastJump('SwimLoop',null,'SwimLoopFast');
|
||||
XZWE V 0 A_Crawl(.2,true);
|
||||
XZWE VWX 3 A_FastJump("SwimLoop",null,"SwimLoopFast");
|
||||
XZWE VWX 3 A_FastJump('SwimLoop',null,'SwimLoopFast');
|
||||
Goto SwimLoopRun+1;
|
||||
SwimLoopFast:
|
||||
#### # 2;
|
||||
XZWE MNO 2 A_FastJump("SwimLoop","SwimLoopRun",null);
|
||||
XZWE MNO 2 A_FastJump('SwimLoop','SwimLoopRun',null);
|
||||
XZWE P 0 A_Crawl(.4,false);
|
||||
XZWE PQRSTU 2 A_FastJump("SwimLoop","SwimLoopRun",null);
|
||||
XZWE PQRSTU 2 A_FastJump('SwimLoop','SwimLoopRun',null);
|
||||
XZWE V 0 A_Crawl(.4,true);
|
||||
XZWE VWX 2 A_FastJump("SwimLoop","SwimLoopRun",null);
|
||||
XZWE VWX 2 A_FastJump('SwimLoop','SwimLoopRun',null);
|
||||
Goto SwimLoopFast+1;
|
||||
SwimEnd:
|
||||
#### # 2;
|
||||
|
|
|
|||
|
|
@ -92,13 +92,13 @@ extend Class Demolitionist
|
|||
foreach ( cls:AllActorClasses )
|
||||
{
|
||||
let type = (class<Weapon>)(cls);
|
||||
if ( !type || (type == "Weapon") ) continue;
|
||||
if ( !type || (type == 'Weapon') ) continue;
|
||||
// Don't give already owned weapons
|
||||
let owned = FindInventory(type);
|
||||
if ( owned && (owned.Amount >= owned.MaxAmount) ) continue;
|
||||
// Don't give replaced weapons unless the replacement was done by Dehacked.
|
||||
let rep = GetReplacement(type);
|
||||
if ( (rep == type) || (rep is "DehackedPickup") )
|
||||
if ( (rep == type) || (rep is 'DehackedPickup') )
|
||||
{
|
||||
// Give the weapon only if it is set in a weapon slot.
|
||||
if ( !player.weapons.LocateWeapon(type) ) continue;
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ extend Class Demolitionist
|
|||
facetimer = 50;
|
||||
}
|
||||
facesad = false;
|
||||
if ( FindInventory("RagekitPower") && (facestate < FS_PAIN) )
|
||||
if ( FindInventory('RagekitPower') && (facestate < FS_PAIN) )
|
||||
{
|
||||
facestate = FS_EVIL;
|
||||
facetimer = 10;
|
||||
|
|
@ -137,7 +137,7 @@ extend Class Demolitionist
|
|||
private int GetFaceTex()
|
||||
{
|
||||
if ( player.Health <= 0 ) return 3;
|
||||
if ( (bInvulnerable || (player.cheats&(CF_GODMODE|CF_GODMODE2)) || FindInventory("InvinciballPower")) && (facestate >= FS_PAIN) ) return 14;
|
||||
if ( (bInvulnerable || (player.cheats&(CF_GODMODE|CF_GODMODE2)) || FindInventory('InvinciballPower')) && (facestate >= FS_PAIN) ) return 14;
|
||||
if ( facestate == FS_OUCH ) return 12;
|
||||
if ( facestate == FS_PAIN ) return (paindir==1)?10:(paindir==-1)?9:8;
|
||||
if ( facestate == FS_GRIN ) return 7;
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ Class DashTrail : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale .3;
|
||||
+MASTERNOSEE;
|
||||
+FORCEXYBILLBOARD;
|
||||
|
|
@ -102,12 +102,12 @@ Class DashTrail : SWWMNonInteractiveActor
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
SetState(FindState("Spawn")+Random[ExploS](0,7));
|
||||
SetState(FindState('Spawn')+Random[ExploS](0,7));
|
||||
if ( waterlevel > 0 ) return;
|
||||
let t = Spawn("DashTrail2",level.Vec3Offset(pos,vel*.3));
|
||||
let t = Spawn('DashTrail2',level.Vec3Offset(pos,vel*.3));
|
||||
t.master = master;
|
||||
t.vel = vel*1.2;
|
||||
let s = Spawn("SWWMSmoke",level.Vec3Offset(pos,vel*1.6));
|
||||
let s = Spawn('SWWMSmoke',level.Vec3Offset(pos,vel*1.6));
|
||||
s.vel = vel*.8;
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,128));
|
||||
s.special1 = Random[ExploS](2,4);
|
||||
|
|
@ -132,7 +132,7 @@ Class DashTrail2 : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale .2;
|
||||
Alpha .4;
|
||||
+MASTERNOSEE;
|
||||
|
|
@ -141,7 +141,7 @@ Class DashTrail2 : SWWMNonInteractiveActor
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
SetState(FindState("Spawn")+Random[ExploS](0,7));
|
||||
SetState(FindState('Spawn')+Random[ExploS](0,7));
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -152,7 +152,7 @@ Class DashTrail2 : SWWMNonInteractiveActor
|
|||
A_SetScale(scale.x*1.04);
|
||||
if ( waterlevel > 0 )
|
||||
{
|
||||
let b = Spawn("SWWMBubble",pos);
|
||||
let b = Spawn('SWWMBubble',pos);
|
||||
b.vel = vel;
|
||||
b.scale *= scale.x;
|
||||
Destroy();
|
||||
|
|
@ -168,7 +168,7 @@ Class DemolitionistRadiusShockwaveTail : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -190,7 +190,7 @@ Class DemolitionistRadiusShockwave : Actor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Speed 15;
|
||||
DamageFunction int(200*alpha);
|
||||
DamageType 'GroundPound';
|
||||
|
|
@ -233,10 +233,10 @@ Class DemolitionistRadiusShockwave : Actor
|
|||
pitch = min(85,(pitch+2)*1.05);
|
||||
if ( !Random[ExploS](0,3) )
|
||||
{
|
||||
let p = Spawn("InvisibleSplasher",Vec3Offset(0,0,2));
|
||||
let p = Spawn('InvisibleSplasher',Vec3Offset(0,0,2));
|
||||
p.target = target;
|
||||
}
|
||||
let s = Spawn("DemolitionistRadiusShockwaveTail",pos);
|
||||
let s = Spawn('DemolitionistRadiusShockwaveTail',pos);
|
||||
s.vel = vel*.35;
|
||||
s.scale = scale;
|
||||
s.alpha = alpha*.4;
|
||||
|
|
@ -281,7 +281,7 @@ Class DemolitionistShockwave : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<360; i+=5 )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,3);
|
||||
let s = Spawn("SWWMSmoke",Vec3Angle(4,i,8));
|
||||
let s = Spawn('SWWMSmoke',Vec3Angle(4,i,8));
|
||||
s.vel = pvel+SWWMUtility.AngleToVector3(i,7.);
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
s.special1 = Random[ExploS](1,4);
|
||||
|
|
@ -291,7 +291,7 @@ Class DemolitionistShockwave : SWWMNonInteractiveActor
|
|||
if ( pos.z > floorz+16 ) return;
|
||||
for ( int i=0; i<360; i+=5 )
|
||||
{
|
||||
let r = Spawn("DemolitionistRadiusShockwave",Vec3Angle(5,i));
|
||||
let r = Spawn('DemolitionistRadiusShockwave',Vec3Angle(5,i));
|
||||
r.target = target;
|
||||
r.angle = i;
|
||||
r.vel.xy = AngleToVector(i,r.speed+min(special1*.15,30));
|
||||
|
|
@ -301,14 +301,14 @@ Class DemolitionistShockwave : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,12);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
let raging = RagekitPower(target.FindInventory("RagekitPower"));
|
||||
let raging = RagekitPower(target.FindInventory('RagekitPower'));
|
||||
if ( raging || swwm_omnibust )
|
||||
{
|
||||
// bust the floor if we can
|
||||
let tempme = new("LineTracer"); // gross hack to pass needed data
|
||||
let tempme = new('LineTracer'); // gross hack to pass needed data
|
||||
int dmg = 40+min(special1,120);
|
||||
if ( raging ) dmg *= 8;
|
||||
F3DFloor ff;
|
||||
|
|
@ -324,7 +324,7 @@ Class DemolitionistShockwave : SWWMNonInteractiveActor
|
|||
BusterWall.Bust(tempme.Results,dmg,target,(0,0,-1),pos.z);
|
||||
if ( raging )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",pos);
|
||||
let ps = Spawn('BigPunchSplash',pos);
|
||||
ps.damagetype = 'GroundPound';
|
||||
ps.target = target;
|
||||
ps.special1 = dmg;
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ Class AlmasteelPlating : SWWMArmor
|
|||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 1;
|
||||
Inventory.InterHubAmount 1;
|
||||
Inventory.RestrictedTo "Demolitionist";
|
||||
Inventory.RestrictedTo 'Demolitionist';
|
||||
SWWMArmor.ArmorPriority 2;
|
||||
+INVENTORY.UNCLEARABLE;
|
||||
+SWWMARMOR.NOHITFLASH;
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ extend Class Demolitionist
|
|||
}
|
||||
if ( abs(floorz-zatstep) <= 8. )
|
||||
{
|
||||
let bs = Spawn("mkBloodStep",(checkpos.xy,zatstep));
|
||||
let bs = Spawn('mkBloodStep',(checkpos.xy,zatstep));
|
||||
bs.angle = angle;
|
||||
bs.frame = foot;
|
||||
bs.A_ChangeModel("",0,"","",0,"models/extra",String.Format("BloodFoot%d.png",Random[Blood](1,4)));
|
||||
|
|
@ -80,7 +80,7 @@ extend Class Demolitionist
|
|||
footblood[foot] = max(0.,footblood[foot]*.95-.05);
|
||||
}
|
||||
// part 2: check for stepping on a blood pool, make feet bloody
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
for ( mkBloodPool p=hnd.bloodpools; p; p=p.nextpool )
|
||||
{
|
||||
// vertical distance fast check
|
||||
|
|
@ -104,7 +104,7 @@ extend Class Demolitionist
|
|||
A_StartSound("demolitionist/run",CHAN_FOOTSTEP,CHANF_OVERLAP,vol);
|
||||
if ( !nosplash )
|
||||
{
|
||||
let b = Spawn("InvisibleSplasher",level.Vec3Offset(pos,(RotateVector((0,yofs*.25*radius),angle),0)));
|
||||
let b = Spawn('InvisibleSplasher',level.Vec3Offset(pos,(RotateVector((0,yofs*.25*radius),angle),0)));
|
||||
b.target = self;
|
||||
b.A_CheckTerrain();
|
||||
}
|
||||
|
|
@ -114,7 +114,7 @@ extend Class Demolitionist
|
|||
A_StartSound("demolitionist/walk",CHAN_FOOTSTEP,CHANF_OVERLAP,vol*.5);
|
||||
if ( !nosplash )
|
||||
{
|
||||
let b = Spawn("InvisibleSplasher",level.Vec3Offset(pos,(RotateVector((0,yofs*.25*radius),angle),0)));
|
||||
let b = Spawn('InvisibleSplasher',level.Vec3Offset(pos,(RotateVector((0,yofs*.25*radius),angle),0)));
|
||||
b.target = self;
|
||||
b.A_CheckTerrain();
|
||||
}
|
||||
|
|
@ -124,7 +124,7 @@ extend Class Demolitionist
|
|||
A_StartSound("demolitionist/walk",CHAN_FOOTSTEP,CHANF_OVERLAP,vol*.2);
|
||||
if ( !nosplash )
|
||||
{
|
||||
let b = Spawn("SmolInvisibleSplasher",level.Vec3Offset(pos,(RotateVector((0,yofs*.25*radius),angle),0)));
|
||||
let b = Spawn('SmolInvisibleSplasher',level.Vec3Offset(pos,(RotateVector((0,yofs*.25*radius),angle),0)));
|
||||
b.target = self;
|
||||
b.A_CheckTerrain();
|
||||
}
|
||||
|
|
@ -220,7 +220,7 @@ extend Class Demolitionist
|
|||
|
||||
override void CheckMoveUpDown()
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Dash")) )
|
||||
if ( InStateSequence(CurState,FindState('Dash')) )
|
||||
player.cmd.upmove = 0;
|
||||
if ( bFly && !bFlyCheat && !(player.cheats&CF_NOCLIP2) )
|
||||
{
|
||||
|
|
@ -286,7 +286,7 @@ extend Class Demolitionist
|
|||
Super.MovePlayer();
|
||||
return;
|
||||
}
|
||||
bool isdashing = InStateSequence(CurState,FindState("Dash"));
|
||||
bool isdashing = InStateSequence(CurState,FindState('Dash'));
|
||||
if ( isdashing ) player.cmd.forwardmove = player.cmd.sidemove = 0;
|
||||
if ( bFly && !bFlyCheat && !(player.cheats&CF_NOCLIP2) )
|
||||
{
|
||||
|
|
@ -452,7 +452,7 @@ extend Class Demolitionist
|
|||
guidepitch *= .9;
|
||||
guideroll *= .9;
|
||||
// anchor to ground when going down steps
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( lastground && !player.onground && !bFly && !bFlyCheat && (abs(pos.z-floorz) <= maxdropoffheight) && (player.jumptics == 0) && (vel.z <= 0) && !isdashing && !hnd.nogroundanchor )
|
||||
{
|
||||
// test for gap crossing (i.e: climbing up platforms with holes between them)
|
||||
|
|
@ -517,7 +517,7 @@ extend Class Demolitionist
|
|||
vel += dashdir*dashboost;
|
||||
vel.z += clamp(-vel.z*.4,0.,30.);
|
||||
player.jumptics = -1;
|
||||
SetStateLabel("Dash");
|
||||
SetStateLabel('Dash');
|
||||
A_StartSound("demolitionist/jet",CHAN_JETPACK,CHANF_LOOP);
|
||||
lastbump *= .95;
|
||||
mystats.dashcount++;
|
||||
|
|
@ -526,7 +526,7 @@ extend Class Demolitionist
|
|||
|
||||
override void CheckJump()
|
||||
{
|
||||
if ( InStateSequence(CurState,FindState("Dash")) ) return; // do not
|
||||
if ( InStateSequence(CurState,FindState('Dash')) ) return; // do not
|
||||
if ( !(player.cmd.buttons&BT_JUMP) || (gamestate != GS_LEVEL) ) return;
|
||||
Vector2 walldir = AngleToVector(angle);
|
||||
bool walljump = false, wallclimb = false;
|
||||
|
|
@ -632,7 +632,7 @@ extend Class Demolitionist
|
|||
}
|
||||
}
|
||||
if ( jumpfac > 0 ) jumpvelz *= jumpfac;
|
||||
bool raging = FindInventory("RagekitPower");
|
||||
bool raging = FindInventory('RagekitPower');
|
||||
if ( raging ) jumpvelz *= 2.;
|
||||
double pvelz = vel.z;
|
||||
if ( !player.onground && !(player.cheats&CF_PREDICTING) )
|
||||
|
|
@ -658,7 +658,7 @@ extend Class Demolitionist
|
|||
int dmg = jumpactor.DamageMobj(self,self,10,'Jump');
|
||||
if ( raging )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",pos);
|
||||
let ps = Spawn('BigPunchSplash',pos);
|
||||
ps.damagetype = 'Jump';
|
||||
ps.target = self;
|
||||
ps.special1 = dmg;
|
||||
|
|
@ -683,7 +683,7 @@ extend Class Demolitionist
|
|||
mystats.boostcount++;
|
||||
last_boost = level.maptime+1;
|
||||
BumpView(3.,vel);
|
||||
SetStateLabel("Boost");
|
||||
SetStateLabel('Boost');
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -731,7 +731,7 @@ extend Class Demolitionist
|
|||
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/jump%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
|
||||
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/jump%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
|
||||
}
|
||||
SetStateLabel("Jump");
|
||||
SetStateLabel('Jump');
|
||||
}
|
||||
}
|
||||
last_jump_held = level.maptime+1;
|
||||
|
|
@ -740,7 +740,7 @@ extend Class Demolitionist
|
|||
bool AllowCrouch()
|
||||
{
|
||||
if ( player.cmd.buttons&BT_JUMP ) return false;
|
||||
if ( InStateSequence(CurState,FindState("Dash")) ) return false; // no crouch during dash
|
||||
if ( InStateSequence(CurState,FindState('Dash')) ) return false; // no crouch during dash
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -821,7 +821,7 @@ extend Class Demolitionist
|
|||
grav *= .35;
|
||||
}
|
||||
// reduce gravity while we're boosting
|
||||
else if ( InStateSequence(CurState,FindState("Dash")) || InStateSequence(CurState,FindState("Boost")) )
|
||||
else if ( InStateSequence(CurState,FindState('Dash')) || InStateSequence(CurState,FindState('Boost')) )
|
||||
grav *= .25;
|
||||
vel.z -= grav;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ extend Class Demolitionist
|
|||
{
|
||||
if ( player.usedown )
|
||||
return;
|
||||
if ( !itrace ) itrace = new("SWWMItemTracer");
|
||||
if ( !itrace ) itrace = new('SWWMItemTracer');
|
||||
Vector3 dir;
|
||||
let [x, y, z] = SWWMUtility.GetPlayerAxes(self);
|
||||
Vector3 origin = SWWMUtility.GetPlayerEye(self);
|
||||
|
|
@ -183,7 +183,7 @@ extend Class Demolitionist
|
|||
|
||||
bool CheckMirrorUse()
|
||||
{
|
||||
if ( !mtrace ) mtrace = new("SWWMMirrorTracer");
|
||||
if ( !mtrace ) mtrace = new('SWWMMirrorTracer');
|
||||
Vector3 dir = SWWMUtility.GetPlayerAimDir(self);
|
||||
Vector3 origin = SWWMUtility.GetPlayerEye(self);
|
||||
mtrace.Trace(origin,level.PointInSector(origin.xy),dir,UseRange,0,ignoreallactors:true);
|
||||
|
|
@ -289,7 +289,7 @@ extend Class Demolitionist
|
|||
deadtimer++;
|
||||
if ( (deadtimer == 60) && (player == players[consoleplayer]) )
|
||||
A_StartSound("demolitionist/youdied",CHAN_DEMOVOICE,CHANF_OVERLAP|CHANF_UI);
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( multiplayer || level.AllowRespawn || sv_singleplayerrespawn || G_SkillPropertyInt(SKILLP_PlayerRespawn) )
|
||||
{
|
||||
// standard behaviour, respawn normally
|
||||
|
|
@ -311,7 +311,7 @@ extend Class Demolitionist
|
|||
else if ( (player.cmd.buttons&BT_ATTACK) && (deadtimer > 120) && (!hnd || !hnd.gdat.disablerevive) && swwm_revive )
|
||||
{
|
||||
// reboot (if possible)
|
||||
if ( !FindInventory("ReviveCooldown") && (((swwm_revivecooldown >= 0) && (G_SkillPropertyInt(SKILLP_ACSReturn) < 4)) || !hasrevived) && (G_SkillPropertyInt(SKILLP_ACSReturn) < 6) )
|
||||
if ( !FindInventory('ReviveCooldown') && (((swwm_revivecooldown >= 0) && (G_SkillPropertyInt(SKILLP_ACSReturn) < 4)) || !hasrevived) && (G_SkillPropertyInt(SKILLP_ACSReturn) < 6) )
|
||||
{
|
||||
if ( hasrevived ) SWWMUtility.MarkAchievement("sekiro",player);
|
||||
hasrevived = true;
|
||||
|
|
@ -322,9 +322,9 @@ extend Class Demolitionist
|
|||
player.bonuscount = 0;
|
||||
player.poisoncount = 0;
|
||||
blinktime = 30;
|
||||
SetState(FindState("Spawn")+1); // skip tweening
|
||||
SetState(FindState('Spawn')+1); // skip tweening
|
||||
roll = 0;
|
||||
let s = Spawn("DemolitionistShockwave",pos);
|
||||
let s = Spawn('DemolitionistShockwave',pos);
|
||||
s.target = self;
|
||||
s.special1 = 30;
|
||||
ReactionTime = 17;
|
||||
|
|
@ -341,7 +341,7 @@ extend Class Demolitionist
|
|||
SWWMHandler.DoFlash(self,Color(255,128,192,255),30);
|
||||
if ( special1 > 2 ) special1 = 0;
|
||||
if ( (swwm_revivecooldown > 0) && (G_SkillPropertyInt(SKILLP_ACSReturn) < 4) )
|
||||
GiveInventory("ReviveCooldown",1);
|
||||
GiveInventory('ReviveCooldown',1);
|
||||
}
|
||||
else if ( level.maptime > revivefail )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ extend Class Demolitionist
|
|||
break;
|
||||
}
|
||||
if ( !addme ) continue;
|
||||
let nmi = new("SWWMMagItem");
|
||||
let nmi = new('SWWMMagItem');
|
||||
nmi.target = self;
|
||||
nmi.item = i;
|
||||
nmi.next = magitem;
|
||||
|
|
@ -207,7 +207,7 @@ extend Class Demolitionist
|
|||
isAnalogMoving = CVar.GetCVar('swwm_analogmove',player).GetBool();
|
||||
UpdateFace();
|
||||
UpdateTags();
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd )
|
||||
{
|
||||
if ( hasteleported ) hnd.SendInterfaceEvent(PlayerNumber(),"swwmsendplayertele");
|
||||
|
|
@ -221,21 +221,21 @@ extend Class Demolitionist
|
|||
}
|
||||
if ( !selflight )
|
||||
{
|
||||
selflight = new("DemolitionistSelfLight");
|
||||
selflight = new('DemolitionistSelfLight');
|
||||
selflight.ChangeStatNum(STAT_USER);
|
||||
selflight.target = self;
|
||||
selflight.Tick();
|
||||
}
|
||||
if ( !myshadow ) myshadow = SWWMShadow.Track(self);
|
||||
// double-check that we have these
|
||||
if ( !FindInventory("AlmasteelPlating") )
|
||||
if ( !FindInventory('AlmasteelPlating') )
|
||||
{
|
||||
let ap = Inventory(Spawn("AlmasteelPlating"));
|
||||
let ap = Inventory(Spawn('AlmasteelPlating'));
|
||||
if ( !ap.CallTryPickup(self) ) ap.Destroy();
|
||||
}
|
||||
if ( !FindInventory("SayaCollar") )
|
||||
if ( !FindInventory('SayaCollar') )
|
||||
{
|
||||
let sc = Inventory(Spawn("SayaCollar"));
|
||||
let sc = Inventory(Spawn('SayaCollar'));
|
||||
if ( !sc.CallTryPickup(self) ) sc.Destroy();
|
||||
}
|
||||
// this is why we need mod cvar callbacks
|
||||
|
|
@ -257,20 +257,20 @@ extend Class Demolitionist
|
|||
{
|
||||
if ( health > 1000 )
|
||||
{
|
||||
let spr = DivineSpriteEffect(FindInventory("DivineSpriteEffect"));
|
||||
let spr = DivineSpriteEffect(FindInventory('DivineSpriteEffect'));
|
||||
if ( !spr || spr.bHealDone )
|
||||
A_SetHealth(max(1000,health-10));
|
||||
if ( health <= 1000 ) healcooldown = 40;
|
||||
}
|
||||
else if ( health > 500 )
|
||||
{
|
||||
if ( !FindInventory("GrilledCheeseSafeguard") && !(healtimer%3) )
|
||||
if ( !FindInventory('GrilledCheeseSafeguard') && !(healtimer%3) )
|
||||
A_SetHealth(health-1);
|
||||
if ( health <= 500 ) healcooldown = 20;
|
||||
}
|
||||
else if ( health > 200 )
|
||||
{
|
||||
if ( !FindInventory("RefresherRegen") && !(healtimer%12) )
|
||||
if ( !FindInventory('RefresherRegen') && !(healtimer%12) )
|
||||
A_SetHealth(health-1);
|
||||
}
|
||||
healtimer++;
|
||||
|
|
@ -317,7 +317,7 @@ extend Class Demolitionist
|
|||
int numpt = Random[ExploS](-2,2);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let p = Spawn("SWWMBubble",Vec3Offset(FRandom[ExploS](-radius,radius)*.8,FRandom[ExploS](-radius,radius)*.8,FRandom[ExploS](height*.1,height*.9)));
|
||||
let p = Spawn('SWWMBubble',Vec3Offset(FRandom[ExploS](-radius,radius)*.8,FRandom[ExploS](-radius,radius)*.8,FRandom[ExploS](height*.1,height*.9)));
|
||||
p.scale *= FRandom[ExploS](.02,.2);
|
||||
p.vel += vel*.2;
|
||||
}
|
||||
|
|
@ -335,7 +335,7 @@ extend Class Demolitionist
|
|||
if ( spd > mystats.topspeed ) mystats.topspeed = spd;
|
||||
if ( spd > ((3600*GameTicRate)/32000.) )
|
||||
SWWMUtility.AchievementProgress("sanic",int((spd*3600*GameTicRate)/32000.),player);
|
||||
bool isdashing = InStateSequence(CurState,FindState("Dash"));
|
||||
bool isdashing = InStateSequence(CurState,FindState('Dash'));
|
||||
if ( player.onground && !bNoGravity && !lastground )
|
||||
{
|
||||
// bump down weapon
|
||||
|
|
@ -343,13 +343,13 @@ extend Class Demolitionist
|
|||
BumpView(min(-lastvelz/10.,20));
|
||||
if ( lastvelz < -25 )
|
||||
{
|
||||
let s = Spawn("DemolitionistShockwave",pos);
|
||||
let s = Spawn('DemolitionistShockwave',pos);
|
||||
s.target = self;
|
||||
s.special1 = int(-lastvelz);
|
||||
A_AlertMonsters(swwm_uncapalert?0:2500);
|
||||
BumpView(15.);
|
||||
lastbump *= 1.1;
|
||||
if ( FindInventory("RagekitPower") )
|
||||
if ( FindInventory('RagekitPower') )
|
||||
{
|
||||
// stop for just a split second UNLESS bunnyhopping
|
||||
if ( !IsRunning() || (level.maptime >= (lastairtic+10)) )
|
||||
|
|
@ -444,9 +444,9 @@ extend Class Demolitionist
|
|||
if ( (lastvelz < -5) || !(level.maptime%5) )
|
||||
{
|
||||
int realdmg = encroached.DamageMobj(self,self,int((2+max(0,-lastvelz*3))*max(1.,mass/encroached.mass)),'Jump',DMG_THRUSTLESS);
|
||||
if ( FindInventory("RagekitPower") )
|
||||
if ( FindInventory('RagekitPower') )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",pos);
|
||||
let ps = Spawn('BigPunchSplash',pos);
|
||||
ps.damagetype = 'Jump';
|
||||
ps.target = self;
|
||||
ps.special1 = realdmg;
|
||||
|
|
@ -506,7 +506,7 @@ extend Class Demolitionist
|
|||
lastground = player.onground;
|
||||
lastvelz = prevvelz;
|
||||
prevvelz = vel.z;
|
||||
bool isboosting = InStateSequence(CurState,FindState("Boost"));
|
||||
bool isboosting = InStateSequence(CurState,FindState('Boost'));
|
||||
bNOFRICTION = ((bFly&&!bFlyCheat&&!(player.cheats&CF_NOCLIP2))||isdashing);
|
||||
if ( fuelcooldown == 1 ) A_StartSound("demolitionist/fuelregen",CHAN_FUELREGEN,CHANF_LOOP,.35,4.,.5);
|
||||
else if ( fuelcooldown > 1 ) A_StopSound(CHAN_FUELREGEN);
|
||||
|
|
@ -562,7 +562,7 @@ extend Class Demolitionist
|
|||
{
|
||||
for ( int i=-1; i<=1; i+=2 ) for ( int j=1; j<4; j++ )
|
||||
{
|
||||
a = Spawn("DashTrail",Vec3Angle(15,angle+i*140,35));
|
||||
a = Spawn('DashTrail',Vec3Angle(15,angle+i*140,35));
|
||||
a.master = self;
|
||||
a.vel = (RotateVector((j,0),angle+i*160),0)-(0,0,1)*j;
|
||||
a.vel -= vel*.5;
|
||||
|
|
@ -574,7 +574,7 @@ extend Class Demolitionist
|
|||
Vector3 viewdir = SWWMUtility.Vec3FromAngles(angle,pitch);
|
||||
// look for things we could potentially bump into
|
||||
bool bumped = false;
|
||||
let raging = RagekitPower(FindInventory("RagekitPower"));
|
||||
let raging = RagekitPower(FindInventory('RagekitPower'));
|
||||
double maxmass = max(mass*spd/40.,200);
|
||||
if ( raging ) maxmass *= 2;
|
||||
let bt = BlockThingsIterator.Create(self,spd+radius+1024);
|
||||
|
|
@ -651,7 +651,7 @@ extend Class Demolitionist
|
|||
{
|
||||
A_StartSound("demolitionist/buttslam",CHAN_DAMAGE,CHANF_OVERLAP,1.,.4);
|
||||
if ( swwm_buttsfx ) A_StartSound("demolitionist/buttslamx",CHAN_DAMAGE,CHAN_OVERLAP,1.,.2);
|
||||
Spawn("SWWMItemFog",level.Vec3Offset(pos,diff/2));
|
||||
Spawn('SWWMItemFog',level.Vec3Offset(pos,diff/2));
|
||||
A_QuakeEx(8.,8.,8.,8,0,3000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:300,rollIntensity:1.);
|
||||
mystats.buttslams++;
|
||||
lastbump *= .8;
|
||||
|
|
@ -659,7 +659,7 @@ extend Class Demolitionist
|
|||
}
|
||||
if ( raging )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",level.Vec3Offset(pos,diff/2));
|
||||
let ps = Spawn('BigPunchSplash',level.Vec3Offset(pos,diff/2));
|
||||
ps.damagetype = buttslam?'Buttslam':'Dash';
|
||||
ps.target = self;
|
||||
ps.special1 = dmg;
|
||||
|
|
@ -687,7 +687,7 @@ extend Class Demolitionist
|
|||
if ( raging || swwm_omnibust )
|
||||
{
|
||||
// see if we can bust it
|
||||
let tempme = new("LineTracer"); // gross hack to pass needed data
|
||||
let tempme = new('LineTracer'); // gross hack to pass needed data
|
||||
int dmg = int(10+spd*3.);
|
||||
if ( raging ) dmg *= 8;
|
||||
bool buttslam = false;
|
||||
|
|
@ -705,7 +705,7 @@ extend Class Demolitionist
|
|||
// busted through
|
||||
if ( raging )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",Vec3Offset(0,0,Height));
|
||||
let ps = Spawn('BigPunchSplash',Vec3Offset(0,0,Height));
|
||||
ps.damagetype = buttslam?'Buttslam':'Dash';
|
||||
ps.target = self;
|
||||
ps.special1 = int(10+spd*3.);
|
||||
|
|
@ -717,7 +717,7 @@ extend Class Demolitionist
|
|||
{
|
||||
A_StartSound("demolitionist/buttslam",CHAN_DAMAGE,CHANF_OVERLAP,1.,.4);
|
||||
if ( swwm_buttsfx ) A_StartSound("demolitionist/buttslamx",CHAN_DAMAGE,CHAN_OVERLAP,1.,.2);
|
||||
Spawn("SWWMItemFog",Vec3Offset(0,0,Height));
|
||||
Spawn('SWWMItemFog',Vec3Offset(0,0,Height));
|
||||
A_QuakeEx(8.,8.,8.,8,0,3000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:300,rollIntensity:1.);
|
||||
mystats.buttslams++;
|
||||
lastbump *= .8;
|
||||
|
|
@ -741,7 +741,7 @@ extend Class Demolitionist
|
|||
dashboost *= 0.;
|
||||
if ( raging )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",Vec3Offset(0,0,Height));
|
||||
let ps = Spawn('BigPunchSplash',Vec3Offset(0,0,Height));
|
||||
ps.damagetype = (dir dot viewdir < -3.)?'Buttslam':'Dash';
|
||||
ps.target = self;
|
||||
ps.special1 = int(10+spd*3.);
|
||||
|
|
@ -783,7 +783,7 @@ extend Class Demolitionist
|
|||
if ( raging || swwm_omnibust )
|
||||
{
|
||||
// see if we can bust it
|
||||
let tempme = new("LineTracer"); // gross hack to pass needed data
|
||||
let tempme = new('LineTracer'); // gross hack to pass needed data
|
||||
int dmg = int(10+spd*3.);
|
||||
if ( raging ) dmg *= 8;
|
||||
if ( buttslam ) dmg *= 3;
|
||||
|
|
@ -805,7 +805,7 @@ extend Class Demolitionist
|
|||
// busted through
|
||||
if ( raging )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",Vec3Offset(dir.x*radius,dir.y*radius,(tempme.Results.Tier==TIER_UPPER)?Height:(tempme.Results.Tier==TIER_LOWER)?0:(Height/2)));
|
||||
let ps = Spawn('BigPunchSplash',Vec3Offset(dir.x*radius,dir.y*radius,(tempme.Results.Tier==TIER_UPPER)?Height:(tempme.Results.Tier==TIER_LOWER)?0:(Height/2)));
|
||||
ps.damagetype = buttslam?'Buttslam':'Dash';
|
||||
ps.target = self;
|
||||
ps.special1 = int(10+spd*3.);
|
||||
|
|
@ -816,7 +816,7 @@ extend Class Demolitionist
|
|||
{
|
||||
A_StartSound("demolitionist/buttslam",CHAN_DAMAGE,CHANF_OVERLAP,1.,.4);
|
||||
if ( swwm_buttsfx ) A_StartSound("demolitionist/buttslamx",CHAN_DAMAGE,CHAN_OVERLAP,1.,.2);
|
||||
Spawn("SWWMItemFog",Vec3Offset(dir.x*radius,dir.y*radius,(tempme.Results.Tier==TIER_UPPER)?Height:(tempme.Results.Tier==TIER_LOWER)?0:(Height/2)));
|
||||
Spawn('SWWMItemFog',Vec3Offset(dir.x*radius,dir.y*radius,(tempme.Results.Tier==TIER_UPPER)?Height:(tempme.Results.Tier==TIER_LOWER)?0:(Height/2)));
|
||||
A_QuakeEx(8.,8.,8.,8,0,3000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:300,rollIntensity:1.);
|
||||
mystats.buttslams++;
|
||||
lastbump *= .8;
|
||||
|
|
@ -839,7 +839,7 @@ extend Class Demolitionist
|
|||
dashboost *= 0.;
|
||||
if ( raging )
|
||||
{
|
||||
let ps = Spawn("BigPunchSplash",Vec3Offset(dir.x*radius,dir.y*radius,Height/2.));
|
||||
let ps = Spawn('BigPunchSplash',Vec3Offset(dir.x*radius,dir.y*radius,Height/2.));
|
||||
ps.damagetype = (dir dot viewdir < -3.)?'Buttslam':'Dash';
|
||||
ps.target = self;
|
||||
ps.special1 = int(10+spd*3.);
|
||||
|
|
@ -887,7 +887,7 @@ extend Class Demolitionist
|
|||
Actor a;
|
||||
for ( int i=-1; i<=1; i+=2 ) for ( int j=1; j<4; j++ )
|
||||
{
|
||||
a = Spawn("DashTrail",Vec3Angle(10,angle+i*140,40));
|
||||
a = Spawn('DashTrail',Vec3Angle(10,angle+i*140,40));
|
||||
a.master = self;
|
||||
a.vel = .5*(RotateVector((j,0),angle+i*160),0)-(0,0,1)*j;
|
||||
a.vel -= vel*.5;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Class mkBlood : SWWMNonInteractiveActor
|
|||
void A_Bleed( int str = 1 )
|
||||
{
|
||||
if ( !target ) return;
|
||||
let b = Spawn("mkBloodSpray",pos);
|
||||
let b = Spawn('mkBloodSpray',pos);
|
||||
Vector2 dirto = target.Vec2To(self).unit();
|
||||
b.angle = atan2(dirto.y,dirto.x);
|
||||
b.pitch = FRandom[Blood](-60,30);
|
||||
|
|
@ -45,7 +45,7 @@ Class mkBlood : SWWMNonInteractiveActor
|
|||
level.SpawnParticle(puff);
|
||||
}
|
||||
}
|
||||
let s = mkBloodSmoke(SWWMStaticSprite.SpawnAt("mkBloodSmoke",pos));
|
||||
let s = mkBloodSmoke(SWWMStaticSprite.SpawnAt('mkBloodSmoke',pos));
|
||||
s.scolor = b.fillcolor;
|
||||
s.scale *= .4*str;
|
||||
s.thickness = str-1;
|
||||
|
|
@ -111,7 +111,7 @@ Class mkBloodSpray : SWWMNonInteractiveActor
|
|||
int cnt = sz-Random[Blood](0,4);
|
||||
for ( int i=0; i<cnt; i++ )
|
||||
{
|
||||
let d = Spawn("mkBloodDrop",pos);
|
||||
let d = Spawn('mkBloodDrop',pos);
|
||||
d.SetShade(fillcolor);
|
||||
d.CopyBloodColor(self);
|
||||
ang = baseang+target.angle+FRandom[Blood](-15.,15.)*str;
|
||||
|
|
@ -147,7 +147,7 @@ Class mkBloodDrop : SWWMNonInteractiveActor
|
|||
+ROLLCENTER;
|
||||
Scale .35;
|
||||
Mass 1;
|
||||
RenderStyle "Translucent";
|
||||
RenderStyle 'Translucent';
|
||||
}
|
||||
// try to reduce overhead as much as possible with this
|
||||
override void Tick()
|
||||
|
|
@ -184,7 +184,7 @@ Class mkBloodDrop : SWWMNonInteractiveActor
|
|||
if ( special1-- ) return;
|
||||
special2 += 10;
|
||||
special1 = Random[Blood](20,30)+special2;
|
||||
let d = Spawn("mkBloodDrop",Vec3Offset(0,0,-2));
|
||||
let d = Spawn('mkBloodDrop',Vec3Offset(0,0,-2));
|
||||
d.master = self;
|
||||
d.SetShade(fillcolor);
|
||||
d.CopyBloodColor(self);
|
||||
|
|
@ -433,7 +433,7 @@ Class mkBloodDrop : SWWMNonInteractiveActor
|
|||
Super.PostBeginPlay();
|
||||
SWWMHandler.QueueBlod(self);
|
||||
int jumps = Random[Blood](0,3);
|
||||
state dest = ResolveState("Spawn");
|
||||
state dest = ResolveState('Spawn');
|
||||
SetState(dest+jumps);
|
||||
}
|
||||
override void OnDestroy()
|
||||
|
|
@ -532,7 +532,7 @@ Class mkFlyingGib : Actor
|
|||
Super.Tick();
|
||||
if ( isFrozen() || (freezetics > 0) ) return;
|
||||
if ( killme ) A_FadeOut(.01);
|
||||
if ( CurState == ResolveState("Death2") )
|
||||
if ( CurState == ResolveState('Death2') )
|
||||
{
|
||||
if ( vel.length() < .1 )
|
||||
bleeding = false;
|
||||
|
|
@ -594,7 +594,7 @@ Class mkFlyingGib : Actor
|
|||
Mass 10;
|
||||
Scale .75;
|
||||
Gravity .5;
|
||||
BounceType "Doom";
|
||||
BounceType 'Doom';
|
||||
BounceFactor .2;
|
||||
+MISSILE;
|
||||
+DROPOFF;
|
||||
|
|
@ -625,7 +625,7 @@ Class mkFlyingGib : Actor
|
|||
}
|
||||
Goto Spawn;
|
||||
Death:
|
||||
XZW1 # 1 A_JumpIf(pos.z<=floorz,"Death2");
|
||||
XZW1 # 1 A_JumpIf(pos.z<=floorz,'Death2');
|
||||
Wait;
|
||||
Death2:
|
||||
XZW1 # -1
|
||||
|
|
@ -636,7 +636,7 @@ Class mkFlyingGib : Actor
|
|||
else roll = Random[Gibs](175,185);
|
||||
A_Stop();
|
||||
// floor drop
|
||||
let b = Spawn("mkBloodDrop",pos);
|
||||
let b = Spawn('mkBloodDrop',pos);
|
||||
b.scale *= 2.0;
|
||||
b.SetShade(shadecol);
|
||||
}
|
||||
|
|
@ -662,7 +662,7 @@ Class mkGibber : SWWMNonInteractiveActor
|
|||
double ang, pt;
|
||||
Vector3 dir;
|
||||
int bloodthrottle = 0, gibthrottle = 0;
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( hnd )
|
||||
{
|
||||
if ( hnd.oldmaxblood != 0 )
|
||||
|
|
@ -673,7 +673,7 @@ Class mkGibber : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<gibsize; i++ )
|
||||
{
|
||||
if ( bloodthrottle && (!i || (i%bloodthrottle)) ) continue;
|
||||
let a = mkBloodSmoke(SWWMStaticSprite.SpawnAt("mkBloodSmoke",pos+(FRandom[Gibs](-.8,.8)*radius,FRandom[Gibs](-.8,.8)*radius,FRandom[Gibs](0.,.9)*height)));
|
||||
let a = mkBloodSmoke(SWWMStaticSprite.SpawnAt('mkBloodSmoke',pos+(FRandom[Gibs](-.8,.8)*radius,FRandom[Gibs](-.8,.8)*radius,FRandom[Gibs](0.,.9)*height)));
|
||||
a.scale = (.5,.5);
|
||||
a.alpha = 1.;
|
||||
ang = FRandom[Gibs](0,360);
|
||||
|
|
@ -706,7 +706,7 @@ Class mkGibber : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<gibsize; i++ )
|
||||
{
|
||||
if ( bloodthrottle && (!i || (i%bloodthrottle)) ) continue;
|
||||
let [b, a] = A_SpawnItemEx("mkBloodDrop",FRandom[Gibs](-.8,.8)*radius,FRandom[Gibs](-.8,.8)*radius,FRandom[Gibs](0.,.9)*height,flags:SXF_ABSOLUTEANGLE|SXF_USEBLOODCOLOR);
|
||||
let [b, a] = A_SpawnItemEx('mkBloodDrop',FRandom[Gibs](-.8,.8)*radius,FRandom[Gibs](-.8,.8)*radius,FRandom[Gibs](0.,.9)*height,flags:SXF_ABSOLUTEANGLE|SXF_USEBLOODCOLOR);
|
||||
if ( !b ) continue;
|
||||
ang = FRandom[Gibs](0,360);
|
||||
pt = FRandom[Gibs](-90,90);
|
||||
|
|
@ -757,7 +757,7 @@ Class mkGibber : SWWMNonInteractiveActor
|
|||
}
|
||||
if ( mksplat )
|
||||
{
|
||||
let s = Spawn("mkBloodBlast",pos);
|
||||
let s = Spawn('mkBloodBlast',pos);
|
||||
s.SetShade(shadecol);
|
||||
s.master = gibbed;
|
||||
mksplat = false;
|
||||
|
|
@ -771,7 +771,7 @@ Class mkGibber : SWWMNonInteractiveActor
|
|||
{
|
||||
Radius 32;
|
||||
Height 16;
|
||||
mkGibber.GibType "mkFlyingGib";
|
||||
mkGibber.GibType 'mkFlyingGib';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -802,8 +802,8 @@ Class mkBloodBlast : SWWMNonInteractiveActor
|
|||
}
|
||||
default
|
||||
{
|
||||
RenderStyle "Shaded";
|
||||
StencilColor "Red";
|
||||
RenderStyle 'Shaded';
|
||||
StencilColor "FF 00 00";
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -818,21 +818,21 @@ Class GreenBloodReference : Actor
|
|||
{
|
||||
Default
|
||||
{
|
||||
BloodColor "Green";
|
||||
BloodColor "00 FF 00";
|
||||
}
|
||||
}
|
||||
Class BlueBloodReference : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
BloodColor "Blue";
|
||||
BloodColor "00 00 FF";
|
||||
}
|
||||
}
|
||||
Class PurpleBloodReference : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
BloodColor "Purple";
|
||||
BloodColor "80 00 FF";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -846,7 +846,7 @@ Class CorpseFallTracker : Thinker
|
|||
static void TrackBody( Actor b )
|
||||
{
|
||||
if ( !b ) return;
|
||||
let cft = new("CorpseFallTracker");
|
||||
let cft = new('CorpseFallTracker');
|
||||
cft.ChangeStatNum(STAT_USER);
|
||||
cft.mybody = b;
|
||||
cft.lastvelz = b.vel.z;
|
||||
|
|
@ -868,7 +868,7 @@ Class CorpseFallTracker : Thinker
|
|||
// wait until body is dead on floor and at the last state of animation
|
||||
if ( (mybody.Health > 0) || isflying || (mybody.tics != -1) || (mybody.vel.length() > 0) )
|
||||
return;
|
||||
let b = mybody.Spawn("mkBloodPool",mybody.pos);
|
||||
let b = mybody.Spawn('mkBloodPool',mybody.pos);
|
||||
Color shadecol;
|
||||
if ( mybody.bloodcolor ) shadecol = Color(mybody.bloodcolor.r/2,mybody.bloodcolor.g/2,mybody.bloodcolor.b/2);
|
||||
else shadecol = Color(80,0,0);
|
||||
|
|
@ -905,7 +905,7 @@ Class mkBloodPool : SWWMNonInteractiveActor
|
|||
prevpool.nextpool = nextpool;
|
||||
if ( nextpool ) nextpool.prevpool = prevpool;
|
||||
}
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
hnd.bloodpools = nextpool;
|
||||
}
|
||||
|
|
@ -920,7 +920,7 @@ Class mkBloodPool : SWWMNonInteractiveActor
|
|||
A_SetScale(sz);
|
||||
A_QueueCorpse();
|
||||
SWWMUtility.SetToSlope(self,FRandom[Blood](0,360));
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
if ( !hnd ) return;
|
||||
nextpool = hnd.bloodpools;
|
||||
hnd.bloodpools = self;
|
||||
|
|
@ -957,7 +957,7 @@ Class mkBloodPool : SWWMNonInteractiveActor
|
|||
{
|
||||
Radius 1;
|
||||
Height 1;
|
||||
StencilColor "Red";
|
||||
StencilColor "FF 00 00";
|
||||
mkBloodPool.BaseAccel .0006;
|
||||
}
|
||||
States
|
||||
|
|
@ -998,8 +998,8 @@ Class mkBloodStep : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Shaded";
|
||||
StencilColor "Red";
|
||||
RenderStyle 'Shaded';
|
||||
StencilColor "FF 00 00";
|
||||
}
|
||||
|
||||
States
|
||||
|
|
|
|||
|
|
@ -177,10 +177,10 @@ Class SWWMDamageAccumulator : Inventory
|
|||
static void Accumulate( Actor victim, int amount, Actor inflictor, Actor source, Name type, bool dontgib = false, int flags = 0 )
|
||||
{
|
||||
if ( !victim ) return;
|
||||
SWWMDamageAccumulator match = SWWMDamageAccumulator(victim.FindInventory("SWWMDamageAccumulator"));
|
||||
SWWMDamageAccumulator match = SWWMDamageAccumulator(victim.FindInventory('SWWMDamageAccumulator'));
|
||||
if ( !match )
|
||||
{
|
||||
match = SWWMDamageAccumulator(Spawn("SWWMDamageAccumulator"));
|
||||
match = SWWMDamageAccumulator(Spawn('SWWMDamageAccumulator'));
|
||||
match.AttachToOwner(victim);
|
||||
}
|
||||
match.amounts.Push(amount);
|
||||
|
|
@ -194,11 +194,11 @@ Class SWWMDamageAccumulator : Inventory
|
|||
|
||||
static clearscope int GetAmount( Actor victim )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMDamageAccumulator",STAT_USER);
|
||||
SWWMDamageAccumulator match = SWWMDamageAccumulator(victim.FindInventory("SWWMDamageAccumulator"));
|
||||
let ti = ThinkerIterator.Create('SWWMDamageAccumulator',STAT_USER);
|
||||
SWWMDamageAccumulator match = SWWMDamageAccumulator(victim.FindInventory('SWWMDamageAccumulator'));
|
||||
if ( match )
|
||||
{
|
||||
if ( match.source && match.source.FindInventory("AngeryPower") )
|
||||
if ( match.source && match.source.FindInventory('AngeryPower') )
|
||||
return (match.total>85899345)?int.max:(match.total*25);
|
||||
return match.total;
|
||||
}
|
||||
|
|
@ -222,14 +222,14 @@ Class SWWMWhoPushedMe : Inventory
|
|||
static void SetInstigator( Actor b, Actor whomst )
|
||||
{
|
||||
if ( !b || !whomst ) return;
|
||||
SWWMWhoPushedMe ffd = SWWMWhoPushedMe(b.FindInventory("SWWMWhoPushedMe"));
|
||||
SWWMWhoPushedMe ffd = SWWMWhoPushedMe(b.FindInventory('SWWMWhoPushedMe'));
|
||||
if ( ffd )
|
||||
{
|
||||
ffd.instigator = whomst;
|
||||
ffd.killtimer = 0; // cancel kill timer
|
||||
return;
|
||||
}
|
||||
ffd = SWWMWhoPushedMe(Spawn("SWWMWhoPushedMe"));
|
||||
ffd = SWWMWhoPushedMe(Spawn('SWWMWhoPushedMe'));
|
||||
ffd.AttachToOwner(b);
|
||||
ffd.instigator = whomst;
|
||||
}
|
||||
|
|
@ -237,7 +237,7 @@ Class SWWMWhoPushedMe : Inventory
|
|||
static Actor RecallInstigator( Actor b )
|
||||
{
|
||||
if ( !b ) return null;
|
||||
SWWMWhoPushedMe ffd = SWWMWhoPushedMe(b.FindInventory("SWWMWhoPushedMe"));
|
||||
SWWMWhoPushedMe ffd = SWWMWhoPushedMe(b.FindInventory('SWWMWhoPushedMe'));
|
||||
if ( ffd )
|
||||
{
|
||||
Actor whomst = ffd.instigator;
|
||||
|
|
@ -287,13 +287,13 @@ Class SWWMFlyTracker : Inventory
|
|||
static void Track( Actor b, Actor whomst )
|
||||
{
|
||||
if ( !b || !whomst ) return;
|
||||
SWWMFlyTracker ffd = SWWMFlyTracker(b.FindInventory("SWWMFlyTracker"));
|
||||
SWWMFlyTracker ffd = SWWMFlyTracker(b.FindInventory('SWWMFlyTracker'));
|
||||
if ( ffd )
|
||||
{
|
||||
ffd.instigator = whomst;
|
||||
return;
|
||||
}
|
||||
ffd = SWWMFlyTracker(Spawn("SWWMFlyTracker"));
|
||||
ffd = SWWMFlyTracker(Spawn('SWWMFlyTracker'));
|
||||
ffd.AttachToOwner(b);
|
||||
ffd.instigator = whomst;
|
||||
ffd.curpos = ffd.startpos = b.pos;
|
||||
|
|
@ -373,7 +373,7 @@ Class SWWMQuickCombatTracker : Inventory
|
|||
// force update tag if Grace of Lilith has glitched our owner
|
||||
if ( item.GetClassName() == 'CCards_Token_Glitched' )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
UpdateTag(hnd);
|
||||
}
|
||||
return Super.HandlePickup(item);
|
||||
|
|
@ -412,7 +412,7 @@ Class SWWMQuickCombatTracker : Inventory
|
|||
}
|
||||
return t;
|
||||
}
|
||||
t = SWWMQuickCombatTracker(Spawn("SWWMQuickCombatTracker"));
|
||||
t = SWWMQuickCombatTracker(Spawn('SWWMQuickCombatTracker'));
|
||||
t.myplayer = p;
|
||||
t.AttachToOwner(target);
|
||||
// players always use SpawnHealth
|
||||
|
|
@ -457,7 +457,7 @@ Class SWWMQuickCombatTracker : Inventory
|
|||
}
|
||||
if ( PMHack && !Owner.isFrozen() )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
UpdateTag(hnd);
|
||||
}
|
||||
// cap lifespan if owner is dead
|
||||
|
|
@ -510,7 +510,7 @@ Class SmoothLinearValueInterpolator
|
|||
|
||||
static SmoothLinearValueInterpolator Create( double val, double diff )
|
||||
{
|
||||
let v = new("SmoothLinearValueInterpolator");
|
||||
let v = new('SmoothLinearValueInterpolator');
|
||||
v.oldval = v.val = val;
|
||||
v.diff = diff;
|
||||
return v;
|
||||
|
|
@ -537,7 +537,7 @@ Class SmoothDynamicValueInterpolator
|
|||
|
||||
static SmoothDynamicValueInterpolator Create( double val, double factor, double mindiff = 1., double maxdiff = 0. )
|
||||
{
|
||||
let v = new("SmoothDynamicValueInterpolator");
|
||||
let v = new('SmoothDynamicValueInterpolator');
|
||||
v.oldval = v.val = val;
|
||||
v.factor = factor;
|
||||
v.mindiff = mindiff;
|
||||
|
|
|
|||
|
|
@ -245,8 +245,8 @@ Class SWWMSmoke : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Shaded";
|
||||
StencilColor "FFFFFF";
|
||||
RenderStyle 'Shaded';
|
||||
StencilColor "FF FF FF";
|
||||
Speed 1;
|
||||
+FORCEXYBILLBOARD;
|
||||
+ROLLSPRITE;
|
||||
|
|
@ -318,7 +318,7 @@ Class SWWMSmoke : SWWMNonInteractiveActor
|
|||
UpdateWaterLevel();
|
||||
if ( (waterlevel > 0) && !bAMBUSH )
|
||||
{
|
||||
let b = Spawn("SWWMBubble",pos);
|
||||
let b = Spawn('SWWMBubble',pos);
|
||||
b.scale *= abs(scale.x);
|
||||
b.vel = vel;
|
||||
Destroy();
|
||||
|
|
@ -364,7 +364,7 @@ Class SWWMHalfSmoke : SWWMAnimSprite
|
|||
|
||||
override void EnteredWater()
|
||||
{
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfBubble",pos);
|
||||
let b = SWWMAnimSprite.SpawnAt('SWWMHalfBubble',pos);
|
||||
b.scale *= abs(scale.x);
|
||||
b.vel = vel;
|
||||
Destroy();
|
||||
|
|
@ -412,7 +412,7 @@ Class SWWMBubble : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+FORCEXYBILLBOARD;
|
||||
Scale 0.5;
|
||||
}
|
||||
|
|
@ -424,7 +424,7 @@ Class SWWMBubble : SWWMNonInteractiveActor
|
|||
pt = FRandom[Puff](-90,90);
|
||||
vel += SWWMUtility.Vec3FromAngles(ang,pt)*FRandom[Puff](0.2,0.8);
|
||||
if ( (waterlevel <= 0) || (waterdepth < (scale.y*9.)) ) Destroy();
|
||||
SetState(ResolveState("Spawn")+Random[Puff](0,19));
|
||||
SetState(ResolveState('Spawn')+Random[Puff](0,19));
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
|
|
@ -536,7 +536,7 @@ Class SWWMSparkTrail : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
override void Tick()
|
||||
|
|
@ -566,7 +566,7 @@ Class SWWMSpark : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+FORCEXYBILLBOARD;
|
||||
Gravity .2;
|
||||
Scale .05;
|
||||
|
|
@ -652,7 +652,7 @@ Class SWWMSpark : SWWMNonInteractiveActor
|
|||
pitch = 0;
|
||||
roll = 0;
|
||||
dead = true;
|
||||
SetStateLabel("Death");
|
||||
SetStateLabel('Death');
|
||||
break;
|
||||
}
|
||||
nstep++;
|
||||
|
|
@ -663,7 +663,7 @@ Class SWWMSpark : SWWMNonInteractiveActor
|
|||
if ( (taillen > 0.) && (alpha > .3) && (waterlevel <= 0) )
|
||||
{
|
||||
taildir /= taillen;
|
||||
let t = Spawn("SWWMSparkTrail",newpos);
|
||||
let t = Spawn('SWWMSparkTrail',newpos);
|
||||
t.alpha = alpha*.3;
|
||||
t.speed = taillen;
|
||||
[t.angle, t.pitch, t.scale.y] = SWWMUtility.CalcYBeam(taildir,taillen);
|
||||
|
|
@ -678,7 +678,7 @@ Class SWWMSpark : SWWMNonInteractiveActor
|
|||
UpdateWaterLevel();
|
||||
if ( waterlevel > 0 )
|
||||
{
|
||||
let b = Spawn("SWWMBubble",pos);
|
||||
let b = Spawn('SWWMBubble',pos);
|
||||
b.vel = vel;
|
||||
b.scale *= 0.3;
|
||||
Destroy();
|
||||
|
|
@ -792,7 +792,7 @@ Class SWWMChip : SWWMNonInteractiveActor
|
|||
dist *= .3;
|
||||
vel = dir*spd;
|
||||
newpos = d.HitLocation+dir;
|
||||
SetStateLabel("Bounce");
|
||||
SetStateLabel('Bounce');
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -819,7 +819,7 @@ Class SWWMChip : SWWMNonInteractiveActor
|
|||
}
|
||||
vel = (0,0,0);
|
||||
dead = true;
|
||||
SetStateLabel("Death");
|
||||
SetStateLabel('Death');
|
||||
break;
|
||||
}
|
||||
nstep++;
|
||||
|
|
@ -896,7 +896,7 @@ Class SWWMItemFog : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+ROLLSPRITE;
|
||||
+ROLLCENTER;
|
||||
+FORCEXYBILLBOARD;
|
||||
|
|
@ -919,7 +919,7 @@ Class SWWMItemFog : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,8);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.scolor = Color(3,2,1)*Random[ExploS](64,85);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
|
|
@ -930,14 +930,14 @@ Class SWWMItemFog : SWWMNonInteractiveActor
|
|||
else for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,8);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.scolor = Color(3,2,1)*Random[ExploS](64,85);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.scale *= 3.;
|
||||
s.alpha *= .2;
|
||||
}
|
||||
Spawn(bAMBUSH?"PoofLight2":"PoofLight",pos);
|
||||
Spawn(bAMBUSH?'PoofLight2':'PoofLight',pos);
|
||||
}
|
||||
BLPF A 1 Bright A_FadeOut(.3);
|
||||
Wait;
|
||||
|
|
@ -998,7 +998,7 @@ Class SWWMTeleportDest : SWWMNonInteractiveActor
|
|||
if ( (level.maptime+special1)%10 ) return;
|
||||
if ( !flare.texture )
|
||||
{
|
||||
flare.color1 = "88 AA FF";
|
||||
flare.color1 = 0xFF88AAFF;
|
||||
flare.texture = TexMan.CheckForTexture("graphics/Particles/xflare.png");
|
||||
flare.style = STYLE_AddShaded;
|
||||
flare.flags = SPF_FULLBRIGHT;
|
||||
|
|
@ -1057,7 +1057,7 @@ Class SWWMTeleportLine : SWWMNonInteractiveActor
|
|||
numpt *= int(clamp((apos-bpos).length()/32,1,8));
|
||||
if ( !flare.texture )
|
||||
{
|
||||
flare.color1 = "88 AA FF";
|
||||
flare.color1 = 0xFF88AAFF;
|
||||
flare.texture = TexMan.CheckForTexture("graphics/Particles/xflare.png");
|
||||
flare.style = STYLE_AddShaded;
|
||||
flare.flags = SPF_FULLBRIGHT;
|
||||
|
|
@ -1090,14 +1090,14 @@ Class SWWMTeleportFog : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
A_StartSound("misc/teleport",CHAN_VOICE);
|
||||
Spawn("TeleLight",pos);
|
||||
Spawn('TeleLight',pos);
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -1108,7 +1108,7 @@ Class SWWMTeleportFog : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,8)*alpha;
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.scolor = Color(1,2,3)*int(Random[ExploS](64,85)*alpha);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
|
|
@ -1124,7 +1124,7 @@ Class SWWMTeleportFog : SWWMNonInteractiveActor
|
|||
if ( LineTrace(ang,dist,pt,TRF_THRUACTORS|TRF_THRUHITSCAN) ) continue;
|
||||
Vector3 ofs = SWWMUtility.Vec3FromAngles(ang,pt)*dist;
|
||||
Vector3 spos = level.Vec3Offset(pos,ofs);
|
||||
let s = SWWMTeleportSparkle(SWWMStaticSprite.SpawnAt("SWWMTeleportSparkle",spos));
|
||||
let s = SWWMTeleportSparkle(SWWMStaticSprite.SpawnAt('SWWMTeleportSparkle',spos));
|
||||
s.scale *= FRandom[ExploS](.8,1.2);
|
||||
s.scalestep = FRandom[ExploS](.93,.97);
|
||||
s.alphastep = FRandom[ExploS](.02,.04);
|
||||
|
|
@ -1143,7 +1143,7 @@ Class SWWMPickupFlash : SWWMNonInteractiveActor
|
|||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Args 0,3,2,1;
|
||||
+ROLLSPRITE;
|
||||
+ROLLCENTER;
|
||||
|
|
@ -1153,7 +1153,7 @@ Class SWWMPickupFlash : SWWMNonInteractiveActor
|
|||
{
|
||||
Super.PostBeginPlay();
|
||||
frame = Args[0];
|
||||
if ( CurState != ResolveState("Pickup") ) return;
|
||||
if ( CurState != ResolveState('Pickup') ) return;
|
||||
WorldOffset = (0,0,16);
|
||||
}
|
||||
void A_Sparkle()
|
||||
|
|
@ -1168,7 +1168,7 @@ Class SWWMPickupFlash : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,8);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.scolor = Color(Args[1],Args[2],Args[3])*Random[ExploS](64,85);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
|
|
@ -1384,7 +1384,7 @@ Class SWWMBulletTrail : LineTracer
|
|||
|
||||
static play void DoTrail( Actor target, Vector3 pos, Vector3 dir, double dist, int bubblesparse, bool smoky = false )
|
||||
{
|
||||
let t = new("SWWMBulletTrail");
|
||||
let t = new('SWWMBulletTrail');
|
||||
t.WaterHitList.Clear();
|
||||
t.ShootThroughList.Clear();
|
||||
t.Trace(pos,level.PointInSector(pos.xy),dir,dist,0,ignore:target);
|
||||
|
|
@ -1396,7 +1396,7 @@ Class SWWMBulletTrail : LineTracer
|
|||
}
|
||||
foreach ( w:t.WaterHitList )
|
||||
{
|
||||
let b = Actor.Spawn("InvisibleSplasher",w.hitpos);
|
||||
let b = Actor.Spawn('InvisibleSplasher',w.hitpos);
|
||||
b.target = target;
|
||||
b.A_CheckTerrain();
|
||||
}
|
||||
|
|
@ -1404,7 +1404,7 @@ Class SWWMBulletTrail : LineTracer
|
|||
{
|
||||
if ( Random[Boolet](0,bubblesparse) ) continue;
|
||||
if ( !Random[Boolet](0,i/100) ) continue; // fall off w/ distance
|
||||
let b = SWWMAnimSprite.SpawnAt(smoky?"SWWMHalfSmoke":"SWWMHalfBubble",level.Vec3Offset(pos,dir*i));
|
||||
let b = SWWMAnimSprite.SpawnAt(smoky?'SWWMHalfSmoke':'SWWMHalfBubble',level.Vec3Offset(pos,dir*i));
|
||||
b.Scale *= FRandom[Boolet](.4,.6);
|
||||
}
|
||||
t.Destroy();
|
||||
|
|
@ -1415,13 +1415,13 @@ Class SWWMBulletTrail : LineTracer
|
|||
// liquid splashes
|
||||
if ( Results.CrossedWater )
|
||||
{
|
||||
let hl = new("WaterHit");
|
||||
let hl = new('WaterHit');
|
||||
hl.hitpos = Results.CrossedWaterPos;
|
||||
WaterHitList.Push(hl);
|
||||
}
|
||||
else if ( Results.Crossed3DWater )
|
||||
{
|
||||
let hl = new("WaterHit");
|
||||
let hl = new('WaterHit');
|
||||
hl.hitpos = Results.Crossed3DWaterPos;
|
||||
WaterHitList.Push(hl);
|
||||
}
|
||||
|
|
@ -1447,7 +1447,7 @@ Class SWWMPuff : SWWMNonInteractiveActor
|
|||
{
|
||||
static Actor Setup( Vector3 pos, Vector3 dir, Actor inflictor = null, Actor source = null, Actor victim = null )
|
||||
{
|
||||
let p = Spawn("SWWMPuff",pos);
|
||||
let p = Spawn('SWWMPuff',pos);
|
||||
p.angle = atan2(dir.y,dir.x);
|
||||
p.pitch = asin(-dir.z);
|
||||
p.master = inflictor; // so certain scripts can fetch the weapon that spawned this puff
|
||||
|
|
@ -1486,7 +1486,7 @@ Class SWWMShadow : SWWMNonInteractiveActor
|
|||
static SWWMShadow Track( Actor other )
|
||||
{
|
||||
// this is necessary due to multiplayer respawn nonsense
|
||||
let ti = ThinkerIterator.Create("SWWMShadow");
|
||||
let ti = ThinkerIterator.Create('SWWMShadow');
|
||||
SWWMShadow s;
|
||||
while ( s = SWWMShadow(ti.Next()) )
|
||||
{
|
||||
|
|
@ -1494,7 +1494,7 @@ Class SWWMShadow : SWWMNonInteractiveActor
|
|||
s.Update(true);
|
||||
return s;
|
||||
}
|
||||
s = SWWMShadow(Spawn("SWWMShadow",other.pos));
|
||||
s = SWWMShadow(Spawn('SWWMShadow',other.pos));
|
||||
s.target = other;
|
||||
s.Update(true);
|
||||
return s;
|
||||
|
|
@ -1551,8 +1551,8 @@ Class SWWMShadow : SWWMNonInteractiveActor
|
|||
}
|
||||
default
|
||||
{
|
||||
RenderStyle "Shaded";
|
||||
StencilColor "000000";
|
||||
RenderStyle 'Shaded';
|
||||
StencilColor "00 00 00";
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -1603,7 +1603,7 @@ Class SWWMWaterSplash : SWWMBaseSplash
|
|||
str = FRandom[ExploS](2.,12.);
|
||||
dir *= str*.25;
|
||||
dir.z += 1.;
|
||||
puff.color1 = SWWMUtility.LerpColor("40 60 FF","A0 C0 FF",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF4060FF,0xFFA0C0FF,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1630,7 +1630,7 @@ Class SWWMWaterSplash2 : SWWMBaseSplash
|
|||
str = FRandom[ExploS](1.,6.);
|
||||
dir *= str*.25;
|
||||
dir.z += .35;
|
||||
puff.color1 = SWWMUtility.LerpColor("40 60 FF","A0 C0 FF",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF4060FF,0xFFA0C0FF,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1657,7 +1657,7 @@ Class SWWMBloodSplash : SWWMBaseSplash
|
|||
str = FRandom[ExploS](2.,12.);
|
||||
dir *= str*.25;
|
||||
dir.z += 1.;
|
||||
puff.color1 = SWWMUtility.LerpColor("80 00 00","60 00 00",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF800000,0xFF600000,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+.5;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1684,7 +1684,7 @@ Class SWWMBloodSplash2 : SWWMBaseSplash
|
|||
str = FRandom[ExploS](1.,6.);
|
||||
dir *= str*.25;
|
||||
dir.z += .35;
|
||||
puff.color1 = SWWMUtility.LerpColor("80 00 00","60 00 00",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF800000,0xFF600000,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+.5;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1711,7 +1711,7 @@ Class SWWMSludgeSplash : SWWMBaseSplash
|
|||
str = FRandom[ExploS](2.,8.);
|
||||
dir *= str*.25;
|
||||
dir.z += .4;
|
||||
puff.color1 = SWWMUtility.LerpColor("40 50 40","30 30 30",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF405040,0xFF303030,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+2.;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1738,7 +1738,7 @@ Class SWWMSludgeSplash2 : SWWMBaseSplash
|
|||
str = FRandom[ExploS](1.,4.);
|
||||
dir *= str*.25;
|
||||
dir.z += .15;
|
||||
puff.color1 = SWWMUtility.LerpColor("40 50 40","30 30 30",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF405040,0xFF303030,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+2.;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1765,7 +1765,7 @@ Class SWWMMudSplash : SWWMBaseSplash
|
|||
str = FRandom[ExploS](2.,8.);
|
||||
dir *= str*.25;
|
||||
dir.z += .4;
|
||||
puff.color1 = SWWMUtility.LerpColor("50 40 20","30 20 10",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF504020,0xFF302010,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+2.;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1792,7 +1792,7 @@ Class SWWMMudSplash2 : SWWMBaseSplash
|
|||
str = FRandom[ExploS](1.,4.);
|
||||
dir *= str*.25;
|
||||
dir.z += .15;
|
||||
puff.color1 = SWWMUtility.LerpColor("50 40 20","30 20 10",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF504020,0xFF302010,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+2.;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1821,7 +1821,7 @@ Class SWWMSlimeSplash : SWWMBaseSplash
|
|||
str = FRandom[ExploS](2.,8.);
|
||||
dir *= str*.25;
|
||||
dir.z += .4;
|
||||
puff.color1 = SWWMUtility.LerpColor("00 FF 00","00 80 00",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF00FF00,0xFF008000,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+2.;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1850,7 +1850,7 @@ Class SWWMSlimeSplash2 : SWWMBaseSplash
|
|||
str = FRandom[ExploS](1.,4.);
|
||||
dir *= str*.25;
|
||||
dir.z += .15;
|
||||
puff.color1 = SWWMUtility.LerpColor("00 FF 00","00 80 00",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFF00FF00,0xFF008000,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+2.;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1879,7 +1879,7 @@ Class SWWMLavaSplash : SWWMBaseSplash
|
|||
str = FRandom[ExploS](2.,12.);
|
||||
dir *= str*.35;
|
||||
dir.z += .6;
|
||||
puff.color1 = SWWMUtility.LerpColor("FF C0 40","FF 40 20",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFFFFC040,0xFFFF4020,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+1.;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1887,7 +1887,7 @@ Class SWWMLavaSplash : SWWMBaseSplash
|
|||
puff.accel = (0,0,-.03*str);
|
||||
level.SpawnParticle(puff);
|
||||
}
|
||||
let s = Spawn("SWWMSizzleSmoke",pos);
|
||||
let s = Spawn('SWWMSizzleSmoke',pos);
|
||||
s.target = target;
|
||||
}
|
||||
}
|
||||
|
|
@ -1909,7 +1909,7 @@ Class SWWMLavaSplash2 : SWWMBaseSplash
|
|||
str = FRandom[ExploS](1.,6.);
|
||||
dir *= str*.35;
|
||||
dir.z += .2;
|
||||
puff.color1 = SWWMUtility.LerpColor("FF C0 40","FF 40 20",FRandom[ExploS](0.,1.));
|
||||
puff.color1 = SWWMUtility.LerpColor(0xFFFFC040,0xFFFF4020,FRandom[ExploS](0.,1.));
|
||||
puff.texture = pufftex[Random[ExploS](0,7)];
|
||||
puff.size = str+1.;
|
||||
puff.sizestep = -.02*str;
|
||||
|
|
@ -1917,7 +1917,7 @@ Class SWWMLavaSplash2 : SWWMBaseSplash
|
|||
puff.accel = (0,0,-.03*str);
|
||||
level.SpawnParticle(puff);
|
||||
}
|
||||
let s = Spawn("SWWMSizzleSmoke2",pos);
|
||||
let s = Spawn('SWWMSizzleSmoke2',pos);
|
||||
s.target = target;
|
||||
}
|
||||
}
|
||||
|
|
@ -1933,7 +1933,7 @@ Class SWWMSizzleSmoke : SWWMBaseSplash
|
|||
pt = FRandom[ExploS](-90,-30);
|
||||
dir = SWWMUtility.Vec3FromAngles(ang,pt);
|
||||
str = FRandom[ExploS](.5,2.);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',pos);
|
||||
s.vel = dir*str+(0,0,.4);
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](192,224);
|
||||
s.scale *= 8.;
|
||||
|
|
@ -1956,7 +1956,7 @@ Class SWWMSizzleSmoke2 : SWWMBaseSplash
|
|||
pt = FRandom[ExploS](-90,-30);
|
||||
dir = SWWMUtility.Vec3FromAngles(ang,pt);
|
||||
str = FRandom[ExploS](.25,1.);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMSmallSmoke',pos);
|
||||
s.vel = dir*str+(0,0,.15);
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](192,224);
|
||||
s.scale *= 4.;
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@ Class SWWMGesture : SWWMWeapon
|
|||
return;
|
||||
let psp = Owner.player.FindPSprite(PSP_WEAPON);
|
||||
if ( !psp ) return;
|
||||
if ( (Owner.Health <= 0) && (psp.CurState != ResolveState("Deselect")) )
|
||||
Owner.player.SetPSprite(PSP_WEAPON,ResolveState("Deselect"));
|
||||
if ( (Owner.Health <= 0) && (psp.CurState != ResolveState('Deselect')) )
|
||||
Owner.player.SetPSprite(PSP_WEAPON,ResolveState('Deselect'));
|
||||
// check if we're waving at a dying enemy
|
||||
if ( (psp.frame >= 3) && (psp.frame <= 12) && (psp.sprite == GetSpriteIndex('XZW1')) )
|
||||
CheckWave();
|
||||
|
|
@ -98,7 +98,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
if ( !mo || !(mo is 'Demolitionist') ) return null; // only Demo
|
||||
if ( mo.Health <= 0 ) return null; // dead
|
||||
if ( !force && (mo.player.cheats&CF_TOTALLYFROZEN) ) return null; // frozen today (unless forced)
|
||||
SWWMGesture w = SWWMGesture(mo.FindInventory("SWWMGesture"));
|
||||
SWWMGesture w = SWWMGesture(mo.FindInventory('SWWMGesture'));
|
||||
if ( w && ((mo.player.PendingWeapon is 'SWWMGesture') || (mo.player.ReadyWeapon is 'SWWMGesture')
|
||||
|| (mo.player.PendingWeapon is 'SWWMItemGesture') || (mo.player.ReadyWeapon is 'SWWMItemGesture')) )
|
||||
{
|
||||
|
|
@ -114,7 +114,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
}
|
||||
if ( !w )
|
||||
{
|
||||
w = SWWMGesture(Spawn("SWWMGesture"));
|
||||
w = SWWMGesture(Spawn('SWWMGesture'));
|
||||
w.AttachToOwner(mo);
|
||||
}
|
||||
if ( mo.player.PendingWeapon != WP_NOCHANGE ) w.formerweapon = mo.player.PendingWeapon;
|
||||
|
|
@ -133,7 +133,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
if ( mo.Health <= 0 ) return null; // dead
|
||||
if ( !forced && (mo.player.cheats&CF_TOTALLYFROZEN) ) return null; // frozen today (unless forced)
|
||||
if ( !a ) return null;
|
||||
SWWMGesture w = SWWMGesture(mo.FindInventory("SWWMGesture"));
|
||||
SWWMGesture w = SWWMGesture(mo.FindInventory('SWWMGesture'));
|
||||
if ( w && ((mo.player.PendingWeapon is 'SWWMGesture') || (mo.player.ReadyWeapon is 'SWWMGesture')
|
||||
|| (mo.player.PendingWeapon is 'SWWMItemGesture') || (mo.player.ReadyWeapon is 'SWWMItemGesture')) )
|
||||
{
|
||||
|
|
@ -149,7 +149,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
}
|
||||
if ( !w )
|
||||
{
|
||||
w = SWWMGesture(Spawn("SWWMGesture"));
|
||||
w = SWWMGesture(Spawn('SWWMGesture'));
|
||||
w.AttachToOwner(mo);
|
||||
}
|
||||
if ( mo.player.PendingWeapon != WP_NOCHANGE ) w.formerweapon = mo.player.PendingWeapon;
|
||||
|
|
@ -178,7 +178,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
invoker.whichweapon = invoker.sweapon[0];
|
||||
// push back
|
||||
invoker.sweapon.Delete(0);
|
||||
player.SetPSprite(PSP_WEAPON,ResolveState("Ready"));
|
||||
player.SetPSprite(PSP_WEAPON,ResolveState('Ready'));
|
||||
return;
|
||||
}
|
||||
if ( invoker.queued )
|
||||
|
|
@ -186,7 +186,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
invoker.whichweapon = null;
|
||||
invoker.whichgesture = invoker.nextgesture;
|
||||
invoker.queued = false;
|
||||
player.SetPSprite(PSP_WEAPON,ResolveState("Ready"));
|
||||
player.SetPSprite(PSP_WEAPON,ResolveState('Ready'));
|
||||
return;
|
||||
}
|
||||
if ( invoker.formerweapon ) player.PendingWeapon = invoker.formerweapon;
|
||||
|
|
@ -196,7 +196,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
if ( (player.PendingWeapon is 'SWWMGesture') || (player.PendingWeapon is 'SWWMItemGesture') )
|
||||
player.PendingWeapon = null;
|
||||
}
|
||||
player.SetPSprite(PSP_WEAPON,ResolveState("Deselect"));
|
||||
player.SetPSprite(PSP_WEAPON,ResolveState('Deselect'));
|
||||
}
|
||||
|
||||
action void A_Headpat()
|
||||
|
|
@ -209,14 +209,14 @@ Class SWWMGesture : SWWMWeapon
|
|||
Vector3 patpos = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz-4),dir*30.);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("LoveHeartSparkle",patpos);
|
||||
let s = Spawn('LoveHeartSparkle',patpos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
}
|
||||
if ( pt.target && pt.target.bSHOOTABLE )
|
||||
{
|
||||
int healamt = 10;
|
||||
let raging = RagekitPower(FindInventory("RagekitPower"));
|
||||
let raging = RagekitPower(FindInventory('RagekitPower'));
|
||||
if ( raging )
|
||||
{
|
||||
healamt *= 8;
|
||||
|
|
@ -276,9 +276,9 @@ Class SWWMGesture : SWWMWeapon
|
|||
if ( deathmatch )
|
||||
t.SetFriendPlayer(player);
|
||||
// cancel any attacks
|
||||
if ( t.InStateSequence(t.CurState,t.FindState("Missile"))
|
||||
|| t.InStateSequence(t.CurState,t.FindState("Melee")) )
|
||||
t.SetState(t.FindState("See"));
|
||||
if ( t.InStateSequence(t.CurState,t.FindState('Missile'))
|
||||
|| t.InStateSequence(t.CurState,t.FindState('Melee')) )
|
||||
t.SetState(t.FindState('See'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -291,13 +291,13 @@ Class SWWMGesture : SWWMWeapon
|
|||
double a = FRandom[Spread](0,360), s = FRandom[Spread](0,.005);
|
||||
let [x2, y2, z2] = SWWMUtility.GetPlayerAxesAutoAimed(self);
|
||||
Vector3 dir = SWWMUtility.ConeSpread(x2,y2,z2,a,s);
|
||||
let p = Spawn("ExplodiumMagProj",origin);
|
||||
let p = Spawn('ExplodiumMagProj',origin);
|
||||
p.special1 = 7;
|
||||
p.target = self;
|
||||
p.angle = atan2(dir.y,dir.x);
|
||||
p.pitch = asin(-dir.z);
|
||||
p.vel = dir*p.speed*1.5;
|
||||
if ( FindInventory("RagekitPower") ) p.vel *= 4.;
|
||||
if ( FindInventory('RagekitPower') ) p.vel *= 4.;
|
||||
p.ClearBounce();
|
||||
p.bEXPLODEONWATER = true;
|
||||
p.bSKYEXPLODE = true;
|
||||
|
|
@ -321,7 +321,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
if ( !weap ) return;
|
||||
Vector3 x = SWWMUtility.GetPlayerViewDir(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,10,0,0);
|
||||
let p = Spawn("ExplodiumMagAttach",origin);
|
||||
let p = Spawn('ExplodiumMagAttach',origin);
|
||||
p.special1 = 7;
|
||||
p.target = self;
|
||||
p.angle = angle;
|
||||
|
|
@ -351,7 +351,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
Vector3 dir;
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,10,0,-1);
|
||||
let [x2, y2, z2] = SWWMUtility.GetPlayerAxesAutoAimed(self);
|
||||
let p = Spawn("LoveHeart",origin);
|
||||
let p = Spawn('LoveHeart',origin);
|
||||
p.target = self;
|
||||
p.angle = atan2(x2.y,x2.x);
|
||||
p.pitch = asin(-x2.z);
|
||||
|
|
@ -378,7 +378,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
break;
|
||||
}
|
||||
if ( !addme ) continue;
|
||||
let nhit = new("HHitList");
|
||||
let nhit = new('HHitList');
|
||||
nhit.a = d.HitActor;
|
||||
nhit.dir = dir;
|
||||
hits.Push(nhit);
|
||||
|
|
@ -434,35 +434,35 @@ Class SWWMGesture : SWWMWeapon
|
|||
}
|
||||
g.gest = invoker;
|
||||
player.ReadyWeapon = g;
|
||||
player.SetPSPrite(PSP_WEAPON,g.FindState("Fire"));
|
||||
player.SetPSPrite(PSP_WEAPON,g.FindState('Fire'));
|
||||
return ResolveState(null);
|
||||
}
|
||||
switch ( invoker.whichgesture )
|
||||
{
|
||||
case GS_Headpat:
|
||||
return ResolveState("Headpat");
|
||||
return ResolveState('Headpat');
|
||||
case GS_Grenade:
|
||||
return ResolveState("QuickGrenade");
|
||||
return ResolveState('QuickGrenade');
|
||||
case GS_EmptyMelee:
|
||||
return ResolveState("EmptyMelee");
|
||||
return ResolveState('EmptyMelee');
|
||||
case GS_Wave:
|
||||
return ResolveState("Wave");
|
||||
return ResolveState('Wave');
|
||||
case GS_ThumbsUp:
|
||||
return ResolveState("Approve");
|
||||
return ResolveState('Approve');
|
||||
case GS_Victory:
|
||||
return ResolveState("Victory");
|
||||
return ResolveState('Victory');
|
||||
case GS_BlowKiss:
|
||||
return ResolveState("BlowKiss");
|
||||
return ResolveState('BlowKiss');
|
||||
}
|
||||
return ResolveState("NoGesture");
|
||||
return ResolveState('NoGesture');
|
||||
}
|
||||
Wait;
|
||||
Fire:
|
||||
XZW1 A 1;
|
||||
Goto Ready;
|
||||
Headpat:
|
||||
XZW1 A 0 A_JumpIf(CountInv("RagekitPower"),"Ragepat");
|
||||
XZW1 A 3 A_CallPlayerGesture("Headpat","Headpat");
|
||||
XZW1 A 0 A_JumpIf(CountInv('RagekitPower'),'Ragepat');
|
||||
XZW1 A 3 A_CallPlayerGesture('Headpat','Headpat');
|
||||
XZW3 TU 3;
|
||||
XZW3 V 2 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW3 WX 2;
|
||||
|
|
@ -484,15 +484,15 @@ Class SWWMGesture : SWWMWeapon
|
|||
{
|
||||
if ( player.cmd.buttons&BT_USE )
|
||||
{
|
||||
if ( FindInventory("RagekitPower") )
|
||||
if ( FindInventory('RagekitPower') )
|
||||
{
|
||||
A_CallPlayerGesture("RagepatLoop","RagepatLoop");
|
||||
return ResolveState("RagepatLoop");
|
||||
A_CallPlayerGesture('RagepatLoop','RagepatLoop');
|
||||
return ResolveState('RagepatLoop');
|
||||
}
|
||||
else
|
||||
{
|
||||
A_CallPlayerGesture("HeadpatLoop","HeadpatLoop");
|
||||
return ResolveState("HeadpatLoop");
|
||||
A_CallPlayerGesture('HeadpatLoop','HeadpatLoop');
|
||||
return ResolveState('HeadpatLoop');
|
||||
}
|
||||
}
|
||||
return ResolveState(null);
|
||||
|
|
@ -504,7 +504,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW1 A -1 A_FinishGesture();
|
||||
Stop;
|
||||
Ragepat:
|
||||
XZW1 A 3 A_CallPlayerGesture("Ragepat","Ragepat");
|
||||
XZW1 A 3 A_CallPlayerGesture('Ragepat','Ragepat');
|
||||
XZW3 TU 2;
|
||||
XZW3 V 1 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW3 WX 1;
|
||||
|
|
@ -534,15 +534,15 @@ Class SWWMGesture : SWWMWeapon
|
|||
{
|
||||
if ( player.cmd.buttons&BT_USE )
|
||||
{
|
||||
if ( FindInventory("RagekitPower") )
|
||||
if ( FindInventory('RagekitPower') )
|
||||
{
|
||||
A_CallPlayerGesture("RagepatLoop","RagepatLoop");
|
||||
return ResolveState("RagepatLoop");
|
||||
A_CallPlayerGesture('RagepatLoop','RagepatLoop');
|
||||
return ResolveState('RagepatLoop');
|
||||
}
|
||||
else
|
||||
{
|
||||
A_CallPlayerGesture("HeadpatLoop","HeadpatLoop");
|
||||
return ResolveState("HeadpatLoop");
|
||||
A_CallPlayerGesture('HeadpatLoop','HeadpatLoop');
|
||||
return ResolveState('HeadpatLoop');
|
||||
}
|
||||
}
|
||||
return ResolveState(null);
|
||||
|
|
@ -560,7 +560,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW4 U 3 A_PlayerReload();
|
||||
XZW4 V 2 A_StartSound("explodium/magpin",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW4 WX 2;
|
||||
XZW4 Y 3 A_JumpIf(CanPlantGrenade(),"QuickGrenadePlant");
|
||||
XZW4 Y 3 A_JumpIf(CanPlantGrenade(),'QuickGrenadePlant');
|
||||
XZW4 Z 2
|
||||
{
|
||||
A_StartSound("explodium/throwmag",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
|
|
@ -571,7 +571,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW5 G 2 A_ThrowMag();
|
||||
XZW5 HIJ 3;
|
||||
XZW5 KL 4;
|
||||
XZW4 Q 0 A_JumpIf(player.cmd.buttons&BT_USER4,"QuickGrenade");
|
||||
XZW4 Q 0 A_JumpIf(player.cmd.buttons&BT_USER4,'QuickGrenade');
|
||||
XZW4 Q -1 A_FinishGesture();
|
||||
Stop;
|
||||
QuickGrenadePlant:
|
||||
|
|
@ -581,7 +581,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW5 V 2 A_PlantMag();
|
||||
XZW5 W 4 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW5 XY 4;
|
||||
XZW4 Q 0 A_JumpIf(player.cmd.buttons&BT_USER4,"QuickGrenade");
|
||||
XZW4 Q 0 A_JumpIf(player.cmd.buttons&BT_USER4,'QuickGrenade');
|
||||
XZW4 Q -1 A_FinishGesture();
|
||||
Stop;
|
||||
EmptyMelee:
|
||||
|
|
@ -598,13 +598,13 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW0 A -1
|
||||
{
|
||||
if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK|BT_USER1) )
|
||||
return ResolveState("EmptyMelee")+3;
|
||||
return ResolveState('EmptyMelee')+3;
|
||||
A_FinishGesture();
|
||||
return ResolveState(null);
|
||||
}
|
||||
Stop;
|
||||
Wave:
|
||||
XZW1 A 3 A_CallPlayerGesture("Wave","CrouchWave");
|
||||
XZW1 A 3 A_CallPlayerGesture('Wave','CrouchWave');
|
||||
XZW1 B 3;
|
||||
XZW1 C 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW1 DEFGHIJ 3;
|
||||
|
|
@ -613,7 +613,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW1 A -1 A_FinishGesture();
|
||||
Stop;
|
||||
Approve:
|
||||
XZW1 A 3 A_CallPlayerGesture("Approve","CrouchApprove");
|
||||
XZW1 A 3 A_CallPlayerGesture('Approve','CrouchApprove');
|
||||
XZW1 QR 3;
|
||||
XZW1 S 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW1 TUVWXY 3;
|
||||
|
|
@ -623,7 +623,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW1 A -1 A_FinishGesture();
|
||||
Stop;
|
||||
Victory:
|
||||
XZW1 A 3 A_CallPlayerGesture("Victory","CrouchVictory");
|
||||
XZW1 A 3 A_CallPlayerGesture('Victory','CrouchVictory');
|
||||
XZW2 HI 3;
|
||||
XZW2 J 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
XZW2 KLMNOPQR 3;
|
||||
|
|
@ -632,7 +632,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
XZW1 A -1 A_FinishGesture();
|
||||
Stop;
|
||||
BlowKiss:
|
||||
XZW1 A 3 A_CallPlayerGesture("BlowKiss","CrouchBlowKiss");
|
||||
XZW1 A 3 A_CallPlayerGesture('BlowKiss','CrouchBlowKiss');
|
||||
XZW3 A 3;
|
||||
XZW3 B 3;
|
||||
XZW3 C 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
|
|
@ -695,8 +695,8 @@ Class SWWMItemGesture : SWWMWeapon abstract
|
|||
return;
|
||||
let psp = Owner.player.FindPSprite(PSP_WEAPON);
|
||||
if ( !psp ) return;
|
||||
if ( (Owner.Health <= 0) && (psp.CurState != ResolveState("Deselect")) )
|
||||
Owner.player.SetPSprite(PSP_WEAPON,ResolveState("Deselect"));
|
||||
if ( (Owner.Health <= 0) && (psp.CurState != ResolveState('Deselect')) )
|
||||
Owner.player.SetPSprite(PSP_WEAPON,ResolveState('Deselect'));
|
||||
}
|
||||
|
||||
action void A_FinishGesture()
|
||||
|
|
@ -716,7 +716,7 @@ Class SWWMItemGesture : SWWMWeapon abstract
|
|||
gest.sweapon.Delete(0);
|
||||
// go back to the main gesture
|
||||
player.ReadyWeapon = gest;
|
||||
player.SetPSPrite(PSP_WEAPON,gest.ResolveState("Ready"));
|
||||
player.SetPSPrite(PSP_WEAPON,gest.ResolveState('Ready'));
|
||||
invoker.gotused = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -727,7 +727,7 @@ Class SWWMItemGesture : SWWMWeapon abstract
|
|||
gest.queued = false;
|
||||
// go back to the main gesture
|
||||
player.ReadyWeapon = gest;
|
||||
player.SetPSPrite(PSP_WEAPON,gest.ResolveState("Ready"));
|
||||
player.SetPSPrite(PSP_WEAPON,gest.ResolveState('Ready'));
|
||||
invoker.gotused = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -740,7 +740,7 @@ Class SWWMItemGesture : SWWMWeapon abstract
|
|||
if ( (player.PendingWeapon is 'SWWMGesture') || (player.PendingWeapon is 'SWWMItemGesture') )
|
||||
player.PendingWeapon = null;
|
||||
}
|
||||
player.SetPSPrite(PSP_WEAPON,gest.ResolveState("SoftDeselect"));
|
||||
player.SetPSPrite(PSP_WEAPON,gest.ResolveState('SoftDeselect'));
|
||||
invoker.gotused = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Class LoveHeartTrail : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Alpha .1;
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
|
|
@ -119,7 +119,7 @@ Class LoveHeart : Actor
|
|||
}
|
||||
}
|
||||
if ( s ) s.smooch++;
|
||||
let raging = RagekitPower(self.target.FindInventory("RagekitPower"));
|
||||
let raging = RagekitPower(self.target.FindInventory('RagekitPower'));
|
||||
if ( (target is 'WolfensteinSS') || (target.Species == 'WolfensteinSS') ) target.bFRIENDLY = false;
|
||||
if ( target.IsFriend(self.target) || SWWMUtility.IdentifyingDog(target) )
|
||||
{
|
||||
|
|
@ -149,7 +149,7 @@ Class LoveHeart : Actor
|
|||
}
|
||||
Vector3 dirto = level.Vec3Diff(pos,target.Vec3Offset(0,0,target.Height/2)).unit();
|
||||
SWWMUtility.DoKnockback(target,dirto,1500.*damage);
|
||||
let bread = target.FindState("Pain");
|
||||
let bread = target.FindState('Pain');
|
||||
if ( bread ) target.SetState(bread);
|
||||
if ( raging )
|
||||
{
|
||||
|
|
@ -188,13 +188,13 @@ Class LoveHeart : Actor
|
|||
for ( int i=2; i<6; i++ )
|
||||
{
|
||||
Vector3 dir2 = vel.unit();
|
||||
let t = Spawn("LoveHeartTrail",level.Vec3Offset(pos,-dir2*steppy*i));
|
||||
let t = Spawn('LoveHeartTrail',level.Vec3Offset(pos,-dir2*steppy*i));
|
||||
t.scale = scale;
|
||||
}
|
||||
int numpt = Random[ExploS](1,3);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("LoveHeartSparkle",pos);
|
||||
let s = Spawn('LoveHeartSparkle',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
}
|
||||
|
|
@ -444,7 +444,7 @@ Class LoveHeart : Actor
|
|||
if ( swwm_omnibust )
|
||||
{
|
||||
int dmg = GetMissileDamage(0,0);
|
||||
let raging = RagekitPower(self.target.FindInventory("RagekitPower"));
|
||||
let raging = RagekitPower(self.target.FindInventory('RagekitPower'));
|
||||
if ( raging ) dmg *= 8;
|
||||
if ( BusterWall.ProjectileBust(self,dmg,SWWMUtility.Vec3FromAngles(angle,pitch)) )
|
||||
raging.DoHitFX();
|
||||
|
|
@ -457,12 +457,12 @@ Class LoveHeart : Actor
|
|||
A_QuakeEx(1.5,1.5,1.5,8,0,300,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D);
|
||||
A_SprayDecal("HeartyGlow",64);
|
||||
A_StartSound("bestsound",CHAN_VOICE);
|
||||
Spawn("LoveHeartBurstLight",pos);
|
||||
Spawn('LoveHeartBurstLight',pos);
|
||||
int numpt = Random[ExploS](10,15);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.5,4);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(10,8,9)*Random[ExploS](20,25));
|
||||
s.special1 = Random[ExploS](1,3);
|
||||
|
|
@ -472,7 +472,7 @@ Class LoveHeart : Actor
|
|||
numpt = Random[ExploS](40,50);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("LoveHeartSparkle",pos);
|
||||
let s = Spawn('LoveHeartSparkle',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
s.scale *= RandomPick[ExploS](1,3);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ Class SWWMHangingKeen : Actor
|
|||
{
|
||||
action void A_DropKeen()
|
||||
{
|
||||
Spawn("SWWMDroppedKeen",Vec3Offset(0,0,8));
|
||||
Spawn('SWWMDroppedKeen',Vec3Offset(0,0,8));
|
||||
if ( target ) SWWMUtility.MarkAchievement("keen",target.player);
|
||||
}
|
||||
override bool Used( Actor user )
|
||||
|
|
@ -91,7 +91,7 @@ Class SWWMDroppedKeen : Actor
|
|||
KEE3 B 1 A_JumpIf(pos.z<=floorz,1);
|
||||
Wait;
|
||||
KEE3 B 12 A_StartSound("newkeen/bounce",volume:.6);
|
||||
TNT1 A 1 { Spawn("TeleportFog",pos,ALLOW_REPLACE); }
|
||||
TNT1 A 1 { Spawn('TeleportFog',pos,ALLOW_REPLACE); }
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
|
@ -109,7 +109,7 @@ Class SWWMBossBrainExpl : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,6);
|
||||
let s = Spawn("SWWMSmoke",pos);
|
||||
let s = Spawn('SWWMSmoke',pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
s.special1 = Random[ExploS](1,4);
|
||||
|
|
@ -120,26 +120,26 @@ Class SWWMBossBrainExpl : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,12);
|
||||
let s = Spawn("SWWMSpark",pos);
|
||||
let s = Spawn('SWWMSpark',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = Random[ExploS](10,15);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](2,24);
|
||||
let s = Spawn("SWWMChip",pos);
|
||||
let s = Spawn('SWWMChip',pos);
|
||||
s.vel = pvel;
|
||||
}
|
||||
numpt = int(Random[ExploS](-1,2)+special1);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn("SWWMBossBrainExplArm",pos);
|
||||
let s = Spawn('SWWMBossBrainExplArm',pos);
|
||||
s.target = target;
|
||||
}
|
||||
}
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
Scale 2.5;
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
|
|
@ -183,9 +183,9 @@ Class SWWMBossBrainExplArm : Actor
|
|||
TNT1 A 1
|
||||
{
|
||||
A_CountDown();
|
||||
Spawn("ExplodiumMagTrail",pos);
|
||||
Spawn('ExplodiumMagTrail',pos);
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt('SWWMHalfSmoke',pos);
|
||||
s.vel = pvel+vel*.2;
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](64,224);
|
||||
s.framestep = Random[ExploS](2,4);
|
||||
|
|
@ -199,7 +199,7 @@ Class SWWMBossBrainPain : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
RenderStyle 'Add';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -217,7 +217,7 @@ Class SWWMBossBrain : BossBrain
|
|||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
let ti = ThinkerIterator.Create("BossEye");
|
||||
let ti = ThinkerIterator.Create('BossEye');
|
||||
Actor eye;
|
||||
if ( eye = Actor(ti.Next()) ) eyeless = false;
|
||||
else eyeless = true;
|
||||
|
|
@ -238,7 +238,7 @@ Class SWWMBossBrain : BossBrain
|
|||
// big explosions throughout
|
||||
for ( int x=-350; x<=350; x+=10 )
|
||||
{
|
||||
let s = Spawn("SWWMBossBrainExpl",Vec2OffsetZ(x,tntdir?280:-280,Random[BrainExplode](120,500)));
|
||||
let s = Spawn('SWWMBossBrainExpl',Vec2OffsetZ(x,tntdir?280:-280,Random[BrainExplode](120,500)));
|
||||
s.tics = Random[BrainExplode](5,120);
|
||||
s.special1 = Random[BrainExplode](0,3);
|
||||
}
|
||||
|
|
@ -249,7 +249,7 @@ Class SWWMBossBrain : BossBrain
|
|||
// small explosion on brain hole
|
||||
for ( int x=-40; x<=40; x+=20 )
|
||||
{
|
||||
let s = Spawn("SWWMBossBrainExpl",Vec2OffsetZ(x,tntdir?280:-280,Random[BrainExplode](380,420)));
|
||||
let s = Spawn('SWWMBossBrainExpl',Vec2OffsetZ(x,tntdir?280:-280,Random[BrainExplode](380,420)));
|
||||
s.tics = Random[BrainExplode](1,10);
|
||||
s.scale *= .5;
|
||||
}
|
||||
|
|
@ -259,15 +259,15 @@ Class SWWMBossBrain : BossBrain
|
|||
// just let players have their 100% kills in peace
|
||||
void EverythingDies()
|
||||
{
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
let ti = ThinkerIterator.Create('Actor');
|
||||
Actor a;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
{
|
||||
if ( a is 'BossEye' ) a.SetStateLabel("Null");
|
||||
if ( a is 'BossEye' ) a.SetStateLabel('Null');
|
||||
else if ( a is 'SpawnShot' )
|
||||
{
|
||||
a.Spawn("SpawnFire",a.pos,ALLOW_REPLACE);
|
||||
a.SetStateLabel("Null");
|
||||
a.Spawn('SpawnFire',a.pos,ALLOW_REPLACE);
|
||||
a.SetStateLabel('Null');
|
||||
}
|
||||
else if ( (a.Health > 0) && (a.bBossSpawned || a.bCOUNTKILL) )
|
||||
a.DamageMobj(self,self,a.Health,'EndMii',DMG_FORCED|DMG_THRUSTLESS);
|
||||
|
|
@ -293,7 +293,7 @@ Class SWWMBossBrain : BossBrain
|
|||
A_StartSound("brain/pain",CHAN_VOICE,attenuation:ATTN_NONE);
|
||||
A_QuakeEx(3.,3.,3.,15,0,65535,"",QF_RELATIVE|QF_SCALEDOWN,falloff:65535,rollIntensity:.3);
|
||||
if ( !eyeless ) SpawnBrainExpl(false);
|
||||
Spawn("SWWMBossBrainPain",pos);
|
||||
Spawn('SWWMBossBrainPain',pos);
|
||||
}
|
||||
Goto Spawn;
|
||||
Death:
|
||||
|
|
@ -307,7 +307,7 @@ Class SWWMBossBrain : BossBrain
|
|||
SpawnBrainExpl(true);
|
||||
EverythingDies();
|
||||
}
|
||||
Spawn("SWWMBossBrainPain",pos);
|
||||
Spawn('SWWMBossBrainPain',pos);
|
||||
}
|
||||
MBRN A 1
|
||||
{
|
||||
|
|
@ -340,7 +340,7 @@ Class SWWMGuard : Actor
|
|||
Obituary "$OB_WOLFGUARD";
|
||||
Tag "$FN_WOLFGUARD";
|
||||
Species "WolfensteinSS";
|
||||
DropItem "Clip";
|
||||
DropItem 'Clip';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -388,7 +388,7 @@ Class SWWMSS : Actor
|
|||
Obituary "$OB_WOLFSS_ORIG";
|
||||
Tag "$FN_WOLFSS_ORIG";
|
||||
Species "WolfensteinSS";
|
||||
DropItem "Clip";
|
||||
DropItem 'Clip';
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Class KoraxYeeted : Thinker
|
|||
int sidx = level.CreateSectorTagIterator(145).Next();
|
||||
if ( sidx == -1 ) return;
|
||||
Sector door = level.Sectors[sidx];
|
||||
let ti = ThinkerIterator.Create("SectorEffect");
|
||||
let ti = ThinkerIterator.Create('SectorEffect');
|
||||
SectorEffect se;
|
||||
while ( se = SectorEffect(ti.Next()) )
|
||||
{
|
||||
|
|
@ -58,7 +58,7 @@ Class SWWMCrusherBroken : Thinker
|
|||
static void Create( Sector f, Sector c, double diffh )
|
||||
{
|
||||
if ( !f && !c ) return;
|
||||
let ti = ThinkerIterator.Create("SWWMCrusherBroken",STAT_USER);
|
||||
let ti = ThinkerIterator.Create('SWWMCrusherBroken',STAT_USER);
|
||||
SWWMCrusherBroken cb;
|
||||
while ( cb = SWWMCrusherBroken(ti.Next()) )
|
||||
{
|
||||
|
|
@ -75,7 +75,7 @@ Class SWWMCrusherBroken : Thinker
|
|||
continue;
|
||||
}
|
||||
}
|
||||
cb = new("SWWMCrusherBroken");
|
||||
cb = new('SWWMCrusherBroken');
|
||||
cb.fsec = f;
|
||||
cb.csec = c;
|
||||
cb.ChangeStatNum(STAT_USER);
|
||||
|
|
@ -87,7 +87,7 @@ Class SWWMCrusherBroken : Thinker
|
|||
static void Remove( Sector f, Sector c )
|
||||
{
|
||||
if ( !f && !c ) return;
|
||||
let ti = ThinkerIterator.Create("SWWMCrusherBroken",STAT_USER);
|
||||
let ti = ThinkerIterator.Create('SWWMCrusherBroken',STAT_USER);
|
||||
SWWMCrusherBroken cb;
|
||||
while ( cb = SWWMCrusherBroken(ti.Next()) )
|
||||
{
|
||||
|
|
@ -212,7 +212,7 @@ Class SWWMCorpseCleaner : Thinker
|
|||
void Init( Actor activator )
|
||||
{
|
||||
toclean.Clear();
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
let ti = ThinkerIterator.Create('Actor');
|
||||
Actor a;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
{
|
||||
|
|
@ -243,7 +243,7 @@ Class SWWMCorpseCleaner : Thinker
|
|||
}
|
||||
Actor a = toclean[i++];
|
||||
if ( !a || !a.bKILLED || (a.tics != -1) ) continue;
|
||||
let f = a.Spawn("SWWMItemFog",a.pos);
|
||||
let f = a.Spawn('SWWMItemFog',a.pos);
|
||||
f.A_StartSound("bestsound",CHAN_ITEM);
|
||||
a.Destroy();
|
||||
}
|
||||
|
|
@ -269,11 +269,11 @@ Class SWWMGlobals : SWWMStaticThinker
|
|||
|
||||
static play SWWMGlobals Get()
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMGlobals",STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMGlobals',STAT_STATIC);
|
||||
SWWMGlobals g = SWWMGlobals(ti.Next());
|
||||
if ( !g )
|
||||
{
|
||||
g = new("SWWMGlobals");
|
||||
g = new('SWWMGlobals');
|
||||
g.ChangeStatNum(STAT_STATIC);
|
||||
}
|
||||
return g;
|
||||
|
|
|
|||
|
|
@ -17,16 +17,16 @@ Class SWWMMissionLog : SWWMStaticThinker
|
|||
|
||||
static clearscope SWWMMissionLog Get()
|
||||
{
|
||||
let ml = SWWMMissionLog(ThinkerIterator.Create("SWWMMissionLog",STAT_STATIC).Next());
|
||||
let ml = SWWMMissionLog(ThinkerIterator.Create('SWWMMissionLog',STAT_STATIC).Next());
|
||||
return ml;
|
||||
}
|
||||
|
||||
static play void AddLog( String str )
|
||||
{
|
||||
let ml = SWWMMissionLog(ThinkerIterator.Create("SWWMMissionLog",STAT_STATIC).Next());
|
||||
let ml = SWWMMissionLog(ThinkerIterator.Create('SWWMMissionLog',STAT_STATIC).Next());
|
||||
if ( !ml )
|
||||
{
|
||||
ml = new("SWWMMissionLog");
|
||||
ml = new('SWWMMissionLog');
|
||||
ml.ChangeStatNum(STAT_STATIC);
|
||||
}
|
||||
if ( ml.entries.Find(str) < ml.entries.Size() ) return;
|
||||
|
|
@ -36,10 +36,10 @@ Class SWWMMissionLog : SWWMStaticThinker
|
|||
|
||||
static play void SetClock( int year, int month, int day, int hour, int minute, String tz = "JST" )
|
||||
{
|
||||
let ml = SWWMMissionLog(ThinkerIterator.Create("SWWMMissionLog",STAT_STATIC).Next());
|
||||
let ml = SWWMMissionLog(ThinkerIterator.Create('SWWMMissionLog',STAT_STATIC).Next());
|
||||
if ( !ml )
|
||||
{
|
||||
ml = new("SWWMMissionLog");
|
||||
ml = new('SWWMMissionLog');
|
||||
ml.ChangeStatNum(STAT_STATIC);
|
||||
}
|
||||
ml.clockset = true;
|
||||
|
|
@ -147,7 +147,7 @@ Class SWWMStats : SWWMStaticThinker
|
|||
if ( inflictor is 'SWWMPuff' ) inflictor = inflictor.master; // special puffs transfer real inflictor through master pointer
|
||||
if ( inflictor is 'Weapon' ) which = Weapon(inflictor).GetClass();
|
||||
if ( which is 'DualExplodiumGun' ) which = 'ExplodiumGun'; // don't credit sister weapon
|
||||
if ( inflictor && inflictor.FindInventory("ParriedBuff") ) which = 'DoomWeapon'; // gross hack
|
||||
if ( inflictor && inflictor.FindInventory('ParriedBuff') ) which = 'DoomWeapon'; // gross hack
|
||||
// properly credit some projectiles to their respective gun
|
||||
else if ( inflictor is 'AirBullet' ) which = 'DeepImpact';
|
||||
else if ( (inflictor is 'HammerShockwave') || (inflictor is 'HammerRadiusShockwave') ) which = 'ItamexHammer';
|
||||
|
|
@ -238,7 +238,7 @@ Class SWWMStats : SWWMStaticThinker
|
|||
bool wf_hack = false;
|
||||
if ( (li.mapname == "E1M4") && LevelInfo.MapExists("E1M4B") )
|
||||
{
|
||||
let cv = CVar.GetCVar("wf_blackroomswap_e1m4b");
|
||||
let cv = CVar.GetCVar('wf_blackroomswap_e1m4b');
|
||||
if ( cv && cv.GetBool() )
|
||||
{
|
||||
wf_hack = true;
|
||||
|
|
@ -247,14 +247,14 @@ Class SWWMStats : SWWMStaticThinker
|
|||
}
|
||||
else if ( (li.mapname == "E1M8") && LevelInfo.MapExists("E1M8B") )
|
||||
{
|
||||
let cv = CVar.GetCVar("wf_blackroomswap_e1m8b");
|
||||
let cv = CVar.GetCVar('wf_blackroomswap_e1m8b');
|
||||
if ( cv && cv.GetBool() )
|
||||
{
|
||||
wf_hack = true;
|
||||
li = LevelInfo.FindLevelInfo("E1M8B");
|
||||
}
|
||||
}
|
||||
let ls = new("LevelStat");
|
||||
let ls = new('LevelStat');
|
||||
// we can automatically assume that all levels from the same cluster will have this flag as well
|
||||
ls.hub = !!(level.clusterflags&level.CLUSTER_HUB);
|
||||
ls.visited = false;
|
||||
|
|
@ -301,7 +301,7 @@ Class SWWMStats : SWWMStaticThinker
|
|||
ls.suck = level.sucktime;
|
||||
return;
|
||||
}
|
||||
ls = new("LevelStat");
|
||||
ls = new('LevelStat');
|
||||
ls.hub = !!(level.clusterflags&level.CLUSTER_HUB);
|
||||
ls.visited = true;
|
||||
ls.cluster = level.cluster;
|
||||
|
|
@ -341,7 +341,7 @@ Class SWWMStats : SWWMStaticThinker
|
|||
{
|
||||
if ( victim )
|
||||
{
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
Class<Actor> mvictim = SWWMUtility.MergeMonster(hnd,victim.GetClass());
|
||||
bool found = false;
|
||||
foreach ( ms:mstats )
|
||||
|
|
@ -353,7 +353,7 @@ Class SWWMStats : SWWMStaticThinker
|
|||
}
|
||||
if ( !found )
|
||||
{
|
||||
let ms = new("MonsterKill");
|
||||
let ms = new('MonsterKill');
|
||||
ms.m = mvictim;
|
||||
ms.kills = 1;
|
||||
mstats.Push(ms);
|
||||
|
|
@ -368,7 +368,7 @@ Class SWWMStats : SWWMStaticThinker
|
|||
if ( (favweapon == -1) || (wstats[favweapon].kills < wstats[i].kills) ) favweapon = i;
|
||||
return;
|
||||
}
|
||||
let ws = new("WeaponUsage");
|
||||
let ws = new('WeaponUsage');
|
||||
ws.w = which;
|
||||
ws.kills = 1;
|
||||
wstats.Push(ws);
|
||||
|
|
@ -378,7 +378,7 @@ Class SWWMStats : SWWMStaticThinker
|
|||
|
||||
static clearscope SWWMStats Find( PlayerInfo p )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMStats",STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMStats',STAT_STATIC);
|
||||
SWWMStats t;
|
||||
while ( t = SWWMStats(ti.Next()) )
|
||||
{
|
||||
|
|
@ -454,7 +454,7 @@ Class SWWMCredits : SWWMStaticThinker
|
|||
|
||||
static clearscope SWWMCredits Find( PlayerInfo p )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMCredits",STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMCredits',STAT_STATIC);
|
||||
SWWMCredits t;
|
||||
while ( t = SWWMCredits(ti.Next()) )
|
||||
{
|
||||
|
|
@ -655,7 +655,7 @@ Class SWWMLoreLibrary : SWWMStaticThinker
|
|||
if ( e.tag != "$"..tag ) continue;
|
||||
return true;
|
||||
}
|
||||
SWWMLore e = new("SWWMLore");
|
||||
SWWMLore e = new('SWWMLore');
|
||||
e.tag = "$"..tag;
|
||||
if ( StringTable.Localize(e.tag) == "" )
|
||||
{
|
||||
|
|
@ -696,7 +696,7 @@ Class SWWMLoreLibrary : SWWMStaticThinker
|
|||
SWWMLoreLibrary ll = Find(p);
|
||||
if ( !ll )
|
||||
{
|
||||
ll = new("SWWMLoreLibrary");
|
||||
ll = new('SWWMLoreLibrary');
|
||||
ll.ChangeStatNum(STAT_STATIC);
|
||||
ll.myplayer = p;
|
||||
}
|
||||
|
|
@ -736,7 +736,7 @@ Class SWWMLoreLibrary : SWWMStaticThinker
|
|||
|
||||
static clearscope SWWMLoreLibrary Find( PlayerInfo p )
|
||||
{
|
||||
let ti = ThinkerIterator.Create("SWWMLoreLibrary",STAT_STATIC);
|
||||
let ti = ThinkerIterator.Create('SWWMLoreLibrary',STAT_STATIC);
|
||||
SWWMLoreLibrary ll;
|
||||
while ( ll = SWWMLoreLibrary(ti.Next()) )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ Class EnvmapDebugSphere : Actor
|
|||
override void Tick() {}
|
||||
Default
|
||||
{
|
||||
RenderStyle "Normal";
|
||||
RenderStyle 'Normal';
|
||||
Radius 16;
|
||||
Height 48;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ extend class SWWMUtility
|
|||
static void MarkAchievement( String mvar, PlayerInfo p = null )
|
||||
{
|
||||
if ( !p || (p != players[consoleplayer]) ) return;
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( !hnd ) return;
|
||||
String val = hnd.achievementstate.At(mvar);
|
||||
if ( val == "" )
|
||||
|
|
@ -19,7 +19,7 @@ extend class SWWMUtility
|
|||
static int GetAchievementProgress( String pvar, PlayerInfo p = null )
|
||||
{
|
||||
if ( !p || (p != players[consoleplayer]) ) return 0;
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( !hnd ) return 0;
|
||||
String pval = hnd.achievementprogress.At(pvar);
|
||||
if ( pval == "" )
|
||||
|
|
@ -32,7 +32,7 @@ extend class SWWMUtility
|
|||
static void AchievementProgress( String pvar, int val, PlayerInfo p = null )
|
||||
{
|
||||
if ( !p || (p != players[consoleplayer]) ) return;
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( !hnd ) return;
|
||||
String pval = hnd.achievementprogress.At(pvar);
|
||||
if ( pval == "" )
|
||||
|
|
@ -46,7 +46,7 @@ extend class SWWMUtility
|
|||
static void AchievementProgressInc( String pvar, int inc, PlayerInfo p = null )
|
||||
{
|
||||
if ( !p || (p != players[consoleplayer]) ) return;
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( !hnd ) return;
|
||||
String pval = hnd.achievementprogress.At(pvar);
|
||||
if ( pval == "" )
|
||||
|
|
@ -59,7 +59,7 @@ extend class SWWMUtility
|
|||
static void AchievementProgressIncDouble( String pvar, double inc, PlayerInfo p = null )
|
||||
{
|
||||
if ( !p || (p != players[consoleplayer]) ) return;
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( !hnd ) return;
|
||||
String pval = hnd.achievementprogress.At(pvar);
|
||||
if ( pval == "" )
|
||||
|
|
@ -75,7 +75,7 @@ extend class SWWMUtility
|
|||
static void AchievementProgressOr( String pvar, int val, PlayerInfo p = null )
|
||||
{
|
||||
if ( !p || (p != players[consoleplayer]) ) return;
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find("SWWMStaticHandler"));
|
||||
let hnd = SWWMStaticHandler(StaticEventHandler.Find('SWWMStaticHandler'));
|
||||
if ( !hnd ) return;
|
||||
String pval = hnd.achievementprogress.At(pvar);
|
||||
if ( pval == "" )
|
||||
|
|
|
|||
|
|
@ -49,14 +49,14 @@ extend Class SWWMUtility
|
|||
// debug, display radius sphere
|
||||
if ( swwm_debugblast )
|
||||
{
|
||||
let s = Actor.Spawn("RadiusDebugSphere",(flags&DE_CENTERHEIGHT)?Source.Vec3Offset(0,0,Source.height/2):Source.pos);
|
||||
let s = Actor.Spawn('RadiusDebugSphere',(flags&DE_CENTERHEIGHT)?Source.Vec3Offset(0,0,Source.height/2):Source.pos);
|
||||
s.Scale *= ExplosionRadius;
|
||||
s.SetShade((Damage>0)?"Green":"Blue");
|
||||
s.SetShade((Damage>0)?0xFF00FF00:0xFF0000FF);
|
||||
if ( FullDamageRadius > 0. )
|
||||
{
|
||||
let s = Actor.Spawn("RadiusDebugSphere",(flags&DE_CENTERHEIGHT)?Source.Vec3Offset(0,0,Source.height/2):Source.pos);
|
||||
let s = Actor.Spawn('RadiusDebugSphere',(flags&DE_CENTERHEIGHT)?Source.Vec3Offset(0,0,Source.height/2):Source.pos);
|
||||
s.Scale *= FullDamageRadius;
|
||||
s.SetShade("Red");
|
||||
s.SetShade(0xFFFF0000);
|
||||
}
|
||||
}
|
||||
if ( !(flags&DE_NOSPLASH) ) Source.CheckSplash(ExplosionRadius);
|
||||
|
|
@ -164,7 +164,7 @@ extend Class SWWMUtility
|
|||
}
|
||||
if ( (Instigator is 'Demolitionist') && haskilled && !(flags&DE_NONEXPLOSIVE) )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
let hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
|
||||
let demo = Demolitionist(Instigator);
|
||||
if ( hnd && (gametic > demo.lastbang+30) && (gametic > hnd.lastcombat+10) && !Random[DemoLines](0,3) )
|
||||
demo.lastbang = SWWMHandler.AddOneLiner("blast",2,10);
|
||||
|
|
@ -177,8 +177,8 @@ Class RadiusDebugSphere : SWWMNonInteractiveActor
|
|||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "AddStencil";
|
||||
StencilColor "White";
|
||||
RenderStyle 'AddStencil';
|
||||
StencilColor "FF FF FF";
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue