- All items now have vanilla hitbox sizes for compatibility. - Removed extended hitboxes (no longer needed). - Blob shadows are now exclusive to players (and eventually monsters). - Glows and sparkles are no longer toggleable. - Glows and sparkles have fixed size/radius. - Item sparkles are now handled by the glows, rather than the player.
377 lines
5.8 KiB
Text
377 lines
5.8 KiB
Text
// Key item replacements, including some for popular map packs
|
|
|
|
Class SWWMKey : Key abstract
|
|
{
|
|
Mixin SWWMOverlapPickupSound;
|
|
Mixin SWWMUseToPickup;
|
|
|
|
bool propagated;
|
|
Class<SWWMItemGesture> gesture;
|
|
|
|
Property GestureWeapon : gesture;
|
|
|
|
override bool TryPickup( in out Actor toucher )
|
|
{
|
|
// attach the vanilla key that we replace
|
|
let rt = toucher;
|
|
if ( toucher.player ) rt = toucher.player.mo;
|
|
Class<Key> pc = Species;
|
|
if ( pc && !rt.FindInventory(pc) )
|
|
{
|
|
if ( rt.player && !deathmatch && !propagated && CVar.GetCVar('swwm_collectanimkey',rt.player).GetBool() )
|
|
SWWMGesture.SetSpecialGesture(rt.player.mo,gesture);
|
|
let p = Inventory(Spawn(pc));
|
|
SWWMHandler.KeyTagFix(p);
|
|
p.AttachToOwner(rt);
|
|
}
|
|
// clean up the flag
|
|
propagated = false;
|
|
GoAwayAndDie();
|
|
return true;
|
|
}
|
|
|
|
Default
|
|
{
|
|
+NOTDMATCH;
|
|
+FLOATBOB;
|
|
FloatBobStrength 0.25;
|
|
}
|
|
}
|
|
|
|
Class SWWMRedCard : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_REDCARD";
|
|
Species "RedCard";
|
|
Inventory.PickupMessage "$T_REDCARD";
|
|
Inventory.PickupFlash "SWWMRedPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMRedCardGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 AB 10;
|
|
Loop;
|
|
}
|
|
}
|
|
Class SWWMYellowCard : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_YELLOWCARD";
|
|
Species "YellowCard";
|
|
Inventory.PickupMessage "$T_YELLOWCARD";
|
|
Inventory.PickupFlash "SWWMPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMYellowCardGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 AB 10;
|
|
Loop;
|
|
}
|
|
}
|
|
Class SWWMBlueCard : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_BLUECARD";
|
|
Species "BlueCard";
|
|
Inventory.PickupMessage "$T_BLUECARD";
|
|
Inventory.PickupFlash "SWWMBluePickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMBlueCardGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 AB 10;
|
|
Loop;
|
|
}
|
|
}
|
|
Class SWWMSilverCardKDiZD : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_SILVERCARD";
|
|
Species "BlueSkull";
|
|
Inventory.PickupMessage "$T_SILVERCARD";
|
|
Inventory.PickupFlash "SWWMWhitePickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMSilverCardGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 AB 10;
|
|
Loop;
|
|
}
|
|
}
|
|
Class SWWMGreenCardKDiZD : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_GREENCARD";
|
|
Species "YellowSkull";
|
|
Inventory.PickupMessage "$T_GREENCARD";
|
|
Inventory.PickupFlash "SWWMGreenPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMGreenCardGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 AB 10;
|
|
Loop;
|
|
}
|
|
}
|
|
Class SWWMOrangeCardKDiZD : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_ORANGECARD";
|
|
Species "RedSkull";
|
|
Inventory.PickupMessage "$T_ORANGECARD";
|
|
Inventory.PickupFlash "SWWMPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMOrangeCardGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 AB 10;
|
|
Loop;
|
|
}
|
|
}
|
|
Class SWWMGreenCard : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_GREENCARD";
|
|
Species "GreenCard";
|
|
Inventory.PickupMessage "$T_GREENCARD";
|
|
Inventory.PickupFlash "SWWMGreenPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMGreenCardGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 AB 10;
|
|
Loop;
|
|
}
|
|
}
|
|
// more Doom key color variants will be implemented as needed
|
|
|
|
Class SWWMRedSkull : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_REDSKULL";
|
|
Species "RedSkull";
|
|
Inventory.PickupMessage "$T_REDSKULL";
|
|
Inventory.PickupFlash "SWWMRedPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMRedSkullGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMBlueSkull : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_BLUESKULL";
|
|
Species "BlueSkull";
|
|
Inventory.PickupMessage "$T_BLUESKULL";
|
|
Inventory.PickupFlash "SWWMBluePickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMBlueSkullGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMYellowSkull : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_YELLOWSKULL";
|
|
Species "YellowSkull";
|
|
Inventory.PickupMessage "$T_YELLOWSKULL";
|
|
Inventory.PickupFlash "SWWMPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMYellowSkullGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMPurpleSkull : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_PURPLESKULL";
|
|
Species "PurpleSkull";
|
|
Inventory.PickupMessage "$T_PURPLESKULL";
|
|
Inventory.PickupFlash "SWWMPurplePickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMPurpleSkullGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Verdant Citadel fake keys
|
|
Class SWWMFakeRedSkull : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius .1;
|
|
Height 0.;
|
|
+NOBLOCKMAP;
|
|
+MOVEWITHSECTOR;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMFakeBlueSkull : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius .1;
|
|
Height 0.;
|
|
+NOBLOCKMAP;
|
|
+MOVEWITHSECTOR;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMFakeYellowSkull : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius .1;
|
|
Height 0.;
|
|
+NOBLOCKMAP;
|
|
+MOVEWITHSECTOR;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMFakePurpleSkull : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius .1;
|
|
Height 0.;
|
|
+NOBLOCKMAP;
|
|
+MOVEWITHSECTOR;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
Class SWWMKeyGreen : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_KEYGREEN";
|
|
Species "KeyGreen";
|
|
Inventory.PickupMessage "$T_KEYGREEN";
|
|
Inventory.PickupFlash "SWWMGreenPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMGreenKeyGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMKeyBlue : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_KEYBLUE";
|
|
Species "KeyBlue";
|
|
Inventory.PickupMessage "$T_KEYBLUE";
|
|
Inventory.PickupFlash "SWWMBluePickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMBlueKeyGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMKeyYellow : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_KEYYELLOW";
|
|
Species "KeyYellow";
|
|
Inventory.PickupMessage "$T_KEYYELLOW";
|
|
Inventory.PickupFlash "SWWMPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMYellowKeyGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
Class SWWMKeyRed : SWWMKey
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_KEYRED";
|
|
Species "KeyRed";
|
|
Inventory.PickupMessage "$T_KEYRED";
|
|
Inventory.PickupFlash "SWWMRedPickupFlash";
|
|
SWWMKey.GestureWeapon "SWWMRedKeyGesture";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// HEXDD thingy
|
|
Class SWWMChaosSphere : Key
|
|
{
|
|
Default
|
|
{
|
|
Tag "$T_CHAOSSPHERE";
|
|
Inventory.InterHubAmount 1; // don't strip, this thing is always kept
|
|
+INVENTORY.UNDROPPABLE;
|
|
+INVENTORY.UNTOSSABLE;
|
|
+INVENTORY.UNCLEARABLE;
|
|
}
|
|
}
|