Make items drop in "Unreal style" from the player.

This commit is contained in:
Mari the Deer 2023-07-01 14:12:36 +02:00
commit bce371235c
12 changed files with 42 additions and 2 deletions

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r798 \cu(Sat 1 Jul 14:31:11 CEST 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r798 \cu(2023-07-01 14:31:11)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r799 \cu(Sat 1 Jul 14:31:18 CEST 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r799 \cu(2023-07-01 14:31:18)\c-";

View file

@ -5,6 +5,7 @@ Class SWWMAmmo : Ammo
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMUnrealStyleDrop;
meta String PickupTag;
meta Class<MagAmmo> MagAmmoType;
@ -277,6 +278,7 @@ Class MagAmmo : Inventory abstract
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMUnrealStyleDrop;
meta Class<Ammo> ParentAmmo;
Ammo pamo;

View file

@ -140,6 +140,7 @@ Class SWWMSpareArmor : Inventory abstract
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
meta Class<SWWMArmor> giveme;

View file

@ -7,6 +7,7 @@ Class SWWMHealth : Inventory abstract
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
// can't use the Health class for whatever reason
// nice parser you got there I guess?

View file

@ -237,6 +237,20 @@ Mixin Class SWWMRotatingPickup
}
}
Mixin Class SWWMUnrealStyleDrop
{
override void OnDrop( Actor dropper )
{
if ( !(dropper is 'Demolitionist') ) return;
Vector3 ofs = SWWMUtility.RotateVector3((dropper.radius,0.,dropper.height*.5),dropper.angle);
SetOrigin(level.Vec3Offset(dropper.pos,ofs),false);
vel = SWWMUtility.GetPlayerViewDir(dropper)*12.+(0.,0.,4.);
angle = dropper.angle;
pitch = 0;
roll = 0;
}
}
Mixin Class SWWMRespawn
{
override void Hide()

View file

@ -4,6 +4,7 @@ Class SWWMCollectible : Inventory abstract
{
Mixin SWWMUseToPickup;
Mixin SWWMRotatingPickup;
Mixin SWWMUnrealStyleDrop;
meta int avail;
bool propagated;

View file

@ -5,6 +5,7 @@ Class SWWMKey : Key abstract
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRotatingPickup;
Mixin SWWMUnrealStyleDrop;
bool propagated;

View file

@ -493,6 +493,7 @@ Class SWWMLamp : Inventory
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
bool bActive, bActivated;
TextureID OnIcon;

View file

@ -6,6 +6,7 @@ Class Omnisight : Inventory
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMUnrealStyleDrop;
override bool TryPickup( in out Actor toucher )
{
@ -76,6 +77,7 @@ Class SafetyTether : Inventory
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMUnrealStyleDrop;
bool bPrimed, bFailed;
int primetim;

View file

@ -190,6 +190,13 @@ Class GrilledCheeseSandwich : Inventory
override void OnDrop( Actor dropper )
{
lastdropper = dropper;
if ( !(dropper is 'Demolitionist') ) return;
Vector3 ofs = SWWMUtility.RotateVector3((dropper.radius,0.,dropper.height*.5),dropper.angle);
SetOrigin(level.Vec3Offset(dropper.pos,ofs),false);
vel = SWWMUtility.GetPlayerViewDir(dropper)*12.+(0.,0.,4.);
angle = dropper.angle;
pitch = 0;
roll = 0;
}
override void PostTeleport( Vector3 destpos, double destangle, int flags )
{
@ -411,6 +418,7 @@ Class GhostArtifact : Inventory
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
Default
{
@ -582,6 +590,7 @@ Class GravitySuppressor : Inventory
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
override bool Use( bool pickup )
{
@ -814,6 +823,7 @@ Class FuckingInvinciball : Inventory
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
override Inventory CreateCopy( Actor other )
{
@ -1092,6 +1102,7 @@ Class Ragekit : Inventory
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
override bool Use( bool pickup )
{
@ -1334,6 +1345,7 @@ Class EBarrier : Inventory
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
int terrainwait;

View file

@ -472,6 +472,7 @@ Class Mykradvo : Inventory
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
Actor ringa[2];
@ -905,6 +906,7 @@ Class AngerySigil : Inventory
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
override bool Use( bool pickup )
{
@ -1189,6 +1191,7 @@ Class DivineSprite : Inventory
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Mixin SWWMUnrealStyleDrop;
override bool Use( bool pickup )
{

View file

@ -2,6 +2,7 @@
Class SWWMWeapon : Weapon abstract
{
Mixin SWWMOverlapPickupSound;
Mixin SWWMUnrealStyleDrop;
bool wasused;
bool bUsePickup;
@ -723,6 +724,7 @@ Class SWWMDualWeaponGiver : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMUnrealStyleDrop;
bool bUsePickup;
SWWMWeapon giveme[2];