(WIP) View sway, shake, etc. in weapon animations.

This commit is contained in:
Mari the Deer 2023-03-10 19:37:09 +01:00
commit e69dfa7e1f
20 changed files with 588 additions and 209 deletions

View file

@ -226,8 +226,8 @@ Class ItamexHammer : SWWMWeapon
Stop;
Select:
XZW2 I 3 A_FullRaise();
XZW2 JK 3;
XZW2 LMNO 2;
XZW2 JK 3 A_BumpView(-.1,tics:3);
XZW2 LMNO 2 A_BumpView(.2,tics:2);
XZW2 PQRST 3;
Goto Ready;
Ready:
@ -239,13 +239,13 @@ Class ItamexHammer : SWWMWeapon
Wait;
Fire:
XZW2 A 2 A_StartSound("itamex/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
XZW2 UVWXYZ 1;
XZW2 UVWXYZ 1 A_BumpAngle(-1);
XZW3 A 1
{
A_StartSound("itamex/swing",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerMelee();
}
XZW3 BCDE 1;
XZW3 BCDE 1 A_BumpAngle(4);
XZW3 F 1 A_HammerHit();
XZW3 GHIJK 2;
XZW3 L 2 A_StartSound("itamex/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
@ -261,8 +261,17 @@ Class ItamexHammer : SWWMWeapon
Goto Ready;
AltFire:
XZW2 A 2 A_StartSound("itamex/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 DEFG 2 A_AltCharge();
XZW4 HIJKLMNOPQRSTU 1 A_AltCharge();
XZW4 DEFG 2
{
A_BumpView(.4,tics:2);
A_AltCharge();
}
XZW4 HIJKLMN 1
{
A_BumpView(-.2);
A_AltCharge();
}
XZW4 OPQRSTU 1 A_AltCharge();
XZW4 V 1 A_AltHold();
Wait;
AltRelease:
@ -283,7 +292,7 @@ Class ItamexHammer : SWWMWeapon
Goto Ready;
Zoom:
XZW2 A 2 A_StartSound("itamex/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 XYZ 2 A_BumpAngle(-5);
XZW5 XYZ 2 A_BumpAngle(-2,tics:2);
XZW6 ABCDEF 1 A_ChargeUp();
XZW6 G 0 A_SpinReact();
XZW6 G 1 A_SpinMove();
@ -306,36 +315,47 @@ Class ItamexHammer : SWWMWeapon
Goto Ready;
Reload:
XZW2 A 2 A_StartSound("itamex/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
XZW6 XYZ 2;
XZW6 XYZ 2 A_BumpView(-.1,tics:2);
XZW7 ABCDEF 2;
XZW7 G 1
{
A_PlayerCheckGun();
A_QuakeEx(.3,.3,.3,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("itamex/meleeend",CHAN_WEAPONEXTRA,pitch:.7,starttime:.2);
}
XZW7 HIJ 1;
XZW7 K 1 A_StartSound("itamex/meleeend",CHAN_WEAPONEXTRA,pitch:.8,starttime:.2);
XZW7 LMNO 1;
XZW7 P 1 A_StartSound("itamex/meleeend",CHAN_WEAPONEXTRA,pitch:.9,starttime:.2);
XZW7 QRST 1;
XZW7 HIJ 1 A_BumpView(-.05);
XZW7 K 1
{
A_QuakeEx(.3,.3,.3,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("itamex/meleeend",CHAN_WEAPONEXTRA,pitch:.8,starttime:.2);
}
XZW7 LMNO 1 A_BumpView(-.05);
XZW7 P 1
{
A_QuakeEx(.3,.3,.3,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("itamex/meleeend",CHAN_WEAPONEXTRA,pitch:.9,starttime:.2);
}
XZW7 QRST 1 A_BumpView(-.05);
XZW7 U 1 A_StopSound(CHAN_WEAPONEXTRA);
XZW7 VWXYZ 1;
XZW7 VWXYZ 1 A_BumpView(.05);
XZW8 A 0 A_StartSound("itamex/meleeend",CHAN_WEAPON,CHANF_OVERLAP,starttime:.42);
XZW8 BCDE 3;
XZW8 FGHI 2;
XZW8 BCDE 3 A_BumpView(-.1,tics:3);
XZW8 FGHI 2 A_BumpView(.05,tics:2);
Goto Ready;
User1:
XZW2 A 1;
XZW8 J 1 A_StartSound("itamex/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
XZW8 KLM 1;
XZW8 N 2 A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
XZW8 OPQ 2;
XZW8 OPQ 2 A_BumpView(.5,tics:2);
XZW8 R 1
{
A_BumpFOV(.97);
A_QuakeEx(1.,1.,1.,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.4);
A_Parry(9);
A_PlayerMelee(true);
}
XZW8 S 1;
XZW8 S 1 A_BumpView(-6);
XZW8 T 3 A_Melee(50,"demolitionist/whitm",1.2,1.4);
XZW8 UVWXYZ 2;
XZW9 ABC 2;
@ -345,8 +365,8 @@ Class ItamexHammer : SWWMWeapon
Goto Ready;
Deselect:
XZW2 A 3 A_StartSound("itamex/deselect",CHAN_WEAPON,CHANF_OVERLAP);
XZW2 BCD 3;
XZW2 EFGHI 2;
XZW2 BCD 3 A_BumpView(.1,tics:3);
XZW2 EFGHI 2 A_BumpView(.2,tics:2);
XZW2 J -1 A_FullLower();
Stop;
}

View file

@ -107,8 +107,10 @@ Class HeavyMahSheenGun : SWWMWeapon
if ( invoker.firespeed == 1 )
{
A_AlertMonsters(swwm_uncapalert?0:3000);
A_BumpFOV(.98);
A_QuakeEx(1.6,1.6,1.6,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
A_BumpFOV(.95);
A_BumpView(FRandom[Sheen](-.4,.4));
A_BumpAngle(FRandom[Sheen](-.4,.4));
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");
@ -118,7 +120,9 @@ Class HeavyMahSheenGun : SWWMWeapon
else if ( invoker.firespeed == 2 )
{
A_AlertMonsters(swwm_uncapalert?0:5000);
A_BumpFOV(.99+FRandom[Sheen](-.005,.005));
A_BumpFOV(.97+FRandom[Sheen](-.01,.01));
A_BumpView(FRandom[Sheen](-.3,.3));
A_BumpAngle(FRandom[Sheen](-.3,.3));
A_QuakeEx(1.8,1.8,1.8,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.15);
A_StartSound("sheen/2100rpm",CHAN_WEAPONEXTRA,CHANF_LOOPING,attenuation:.4);
invoker.vibrate = min(1.,invoker.vibrate*1.05+.05);
@ -128,7 +132,9 @@ Class HeavyMahSheenGun : SWWMWeapon
else if ( invoker.firespeed == 0 )
{
A_AlertMonsters(swwm_uncapalert?0:2000);
A_BumpFOV(.97);
A_BumpFOV(.92);
A_BumpView(FRandom[Sheen](-.5,.5));
A_BumpAngle(FRandom[Sheen](-.5,.5));
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.);
@ -360,8 +366,8 @@ Class HeavyMahSheenGun : SWWMWeapon
A_FullRaise();
if ( invoker.incooldown ) A_StartSound("sheen/overheat",CHAN_WEAPONEXTRA2,CHANF_LOOPING,attenuation:3.);
}
XZW2 LMNOP 3;
XZW2 QRSTUV 2;
XZW2 LMNOP 3 A_BumpView(-.05,tics:3);
XZW2 QRSTUV 2 A_BumpView(.2,tics:2);
XZW2 WX 3;
Goto Ready;
Ready:
@ -590,9 +596,10 @@ Class HeavyMahSheenGun : SWWMWeapon
Stop;
AltFire:
XZW2 A 3 A_StartSound("sheen/crankin",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 IJ 2;
XZW5 IJ 2 A_BumpView(.2,tics:2);
XZW5 K 3
{
A_QuakeEx(.5,.5,.5,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
invoker.firespeed = min(2,invoker.firespeed+1);
EventHandler.SendInterfaceEvent(PlayerNumber(),"swwmnametag.$SWWM_SHEENSPEED"..(invoker.firespeed+1));
}
@ -601,9 +608,10 @@ Class HeavyMahSheenGun : SWWMWeapon
Goto Ready;
Zoom:
XZW2 A 3 A_StartSound("sheen/crankin",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 NO 2;
XZW5 NO 2 A_BumpView(-.2,tics:2);
XZW5 P 3
{
A_QuakeEx(.5,.5,.5,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
invoker.firespeed = max(0,invoker.firespeed-1);
EventHandler.SendInterfaceEvent(PlayerNumber(),"swwmnametag.$SWWM_SHEENSPEED"..(invoker.firespeed+1));
}
@ -616,25 +624,30 @@ Class HeavyMahSheenGun : SWWMWeapon
A_StartSound("sheen/deselect",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerCheckGun();
}
XZW5 TUVW 3;
XZW5 XYZ 4;
XZW5 TUVW 3 A_BumpView(-.3,tics:3);
XZW5 XYZ 4 A_BumpView(-.1,tics:4);
XZW6 A 4;
XZW6 B 3 A_StartSound("sheen/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZW6 CDE 3;
XZW6 FGHIJKL 2;
XZW6 F 2;
XZW6 GH 2 A_BumpView(1.,tics:2);
XZW6 IJKL 2;
Goto Ready;
User1:
XZW2 A 3 A_StartSound("sheen/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
XZW6 MNOPQR 3;
XZW6 MNO 3;
XZW6 PQR 3 A_BumpAngle(1,3);
XZW6 S 3 A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
XZW6 T 3;
XZW6 U 2
{
A_BumpFOV(.94);
A_QuakeEx(1.6,1.6,1.6,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.65);
A_Parry(9);
A_PlayerMelee();
}
XZW6 V 2;
XZW6 W 2 A_Melee(80+int(invoker.barrelheat/4.),"demolitionist/whitl",1.25,1.3,1.4);
XZW6 V 2 A_BumpAngle(-15);
XZW6 W 2 A_Melee(80+int(invoker.barrelheat/4.),"demolitionist/whitl",1.35,1.3,1.4);
XZW6 XYZ 3;
XZW7 AB 4;
XZW7 C 4 A_StartSound("sheen/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
@ -642,7 +655,7 @@ Class HeavyMahSheenGun : SWWMWeapon
Goto Ready;
Deselect:
XZW2 A 2 A_StartSound("sheen/deselect",CHAN_WEAPON,CHANF_OVERLAP);
XZW2 BCDEFGHIJK 2;
XZW2 BCDEFGHIJ 2 A_BumpView(.1,tics:2);
XZW2 K -1
{
A_StopSound(CHAN_WEAPONEXTRA2);

View file

@ -1535,12 +1535,12 @@ Class MisterRifle : SWWMWeapon
return A_JumpIf(invoker.boltlock,"DeselectLock");
}
XZW2 BCDE 2;
XZW2 FGHIJKLMNOP 1;
XZW2 FGHIJKLMNO 1;
XZW2 P -1 A_FullLower();
Stop;
DeselectLock:
XZWB EFGHI 2;
XZWB JKLMNOPQRST 1;
XZWB JKLMNOPQRS 1;
XZWB T -1 A_FullLower();
Stop;
Flash:

View file

@ -623,7 +623,7 @@ Class Quadravol : SWWMWeapon
A_StartSound(invoker.onehand?"quadshot/deselectfast":"quadshot/deselect",CHAN_WEAPON,CHANF_OVERLAP);
return A_JumpIf(invoker.onehand,"Deselect1H");
}
XZW2 BCDEFGHIJKLMNOPQR 1;
XZW2 BCDEFGHIJKLMNOPQ 1;
XZW2 R -1 A_FullLower();
Stop;
Flash:

View file

@ -426,33 +426,33 @@ extend Class Demolitionist
}
}
}
double bstr = CVar.GetCVar('swwm_bumpstrength',player).GetFloat();
if ( abs(bumpvelz) > double.epsilon )
{
lagvel.z += bumpvelz*.5;
lagvel.z += bumpvelz*bstr*.5;
bumpvelz *= .8;
}
Vector3 temp = (ViewAngle,ViewPitch,ViewRoll);
if ( abs(bumpangle) > double.epsilon )
{
temp.x += bumpangle*.5;
temp.x += bumpangle*bstr*.5;
bumpangle *= .8;
}
if ( abs(bumppitch) > double.epsilon )
{
temp.y += bumppitch*.5;
temp.y += bumppitch*bstr*.5;
bumppitch *= .8;
}
if ( abs(bumproll) > double.epsilon )
{
temp.z += bumproll*.5;
temp.z += bumproll*bstr*.5;
bumproll *= .8;
}
// stabilize view angles
if ( temp dot temp < double.epsilon ) temp = (0,0,0);
else temp *= .8;
if ( ViewAngle != temp.x ) A_SetViewAngle(temp.x,SPF_INTERPOLATE);
// IMPORTANT: don't call A_SetViewPitch if the player's min/max pitch are not yet initialized
if ( (ViewPitch != temp.y) && !(player.MinPitch == player.MaxPitch == pitch) ) A_SetViewPitch(temp.y,SPF_INTERPOLATE);
if ( ViewPitch != temp.y ) A_SetViewPitch(temp.y,SPF_INTERPOLATE);
if ( ViewRoll != temp.z ) A_SetViewRoll(temp.z,SPF_INTERPOLATE);
if ( player.onground && !lastground ) landvelz = lastvelz;
else if ( !player.onground && lastground ) landvelz = 0;

View file

@ -26,6 +26,10 @@ Class SWWMWeapon : Weapon abstract
int oldtagcolor;
double bvstr, bastr;
Vector3 bvdir;
int bvtics, batics;
bool IsSwapWeapon( Inventory i ) const
{
if ( bNoSwapWeapon || (i.GetClass() == GetClass()) ) return false;
@ -204,15 +208,26 @@ Class SWWMWeapon : Weapon abstract
Demolitionist(self).lastbump *= factor;
}
action void A_BumpView( double factor, Vector3 dir = (0,0,0) )
action void A_BumpView( double factor, Vector3 dir = (0,0,0), int tics = 0 )
{
if ( !(self is 'Demolitionist') ) return;
Demolitionist(self).BumpView(factor,dir);
if ( tics > 1 )
{
invoker.bvstr = factor;
invoker.bvdir = dir;
invoker.bvtics = tics-1;
}
}
action void A_BumpAngle( double factor )
action void A_BumpAngle( double factor, int tics = 0 )
{
if ( !(self is 'Demolitionist') ) return;
Demolitionist(self).bumpangle += factor;
if ( tics > 1 )
{
invoker.bastr = factor;
invoker.batics = tics-1;
}
}
// subtracts given ammo from price, drops excess
@ -601,6 +616,18 @@ Class SWWMWeapon : Weapon abstract
override void Tick()
{
Super.Tick();
if ( bvtics > 0 )
{
if ( Demolitionist(Owner) && Owner.player && (Owner.player.ReadyWeapon == self) )
Demolitionist(Owner).BumpView(bvstr,bvdir);
bvtics--;
}
if ( batics > 0 )
{
if ( Demolitionist(Owner) && Owner.player && (Owner.player.ReadyWeapon == self) )
Demolitionist(Owner).BumpAngle += bastr;
batics--;
}
if ( !Owner )
{
angle -= (180./64.);

View file

@ -61,8 +61,9 @@ Class Hellblazer : SWWMWeapon
A_StartSound(bAlt?"hellblazer/altfire":"hellblazer/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:(bAlt?1.7:.8));
A_AlertMonsters(swwm_uncapalert?0:bAlt?400:1200);
double qstr = bAlt?4.:5.;
A_QuakeEx(qstr,qstr,qstr,bAlt?4:12,0,8,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.12*qstr);
A_QuakeEx(qstr,qstr,qstr,bAlt?4:12,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.12*qstr);
A_BumpFOV(bAlt?.96:.93);
A_BumpView(bAlt?-2:-3);
A_PlayerFire();
invoker.clipcount = max(0,invoker.clipcount-1);
invoker.magstate[invoker.magpos-invoker.preload] = true;
@ -366,7 +367,7 @@ Class Hellblazer : SWWMWeapon
A_StartSound("hellblazer/deselect",CHAN_WEAPON,CHANF_OVERLAP);
A_GlassOverlay("Deselect_G");
}
XZW2 BCDEFGHI 2;
XZW2 BCDEFGH 2;
XZW2 I -1 A_FullLower();
Stop;
Deselect_G:
@ -602,10 +603,17 @@ Class Hellblazer : SWWMWeapon
XZW8 JKL 2;
XZW8 M 2 A_StartSound("hellblazer/open",CHAN_WEAPON,CHANF_OVERLAP);
XZW8 NOPQ 2;
XZW8 RSTUVWXY 2;
XZW8 Z 2 A_StartSound("hellblazer/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZW8 R 2 A_QuakeEx(.8,.8,.8,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
XZW8 STUVWXY 2;
XZW8 Z 2
{
A_BumpView(-1.);
A_StartSound("hellblazer/magout",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW9 ABCDEFGHIJ 2;
XZWB VWXYZ 3;
XZWB VW 3 A_BumpView(.3,tics:3);
XZWB X 3;
XZWB YZ 3 A_BumpView(-.3,tics:3);
Goto Load_G;
Load:
XZW4 JKLMNOPQRSTUVWXYZ 2;
@ -614,11 +622,16 @@ Class Hellblazer : SWWMWeapon
Load_G:
XZW9 J 2 A_PlayerReload();
XZW9 KLMNOP 2;
XZW9 Q 2 A_StartSound("hellblazer/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZW9 Q 2
{
A_BumpView(1.);
A_StartSound("hellblazer/magin",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW9 RSTUVWX 2;
XZW9 Y 2 A_StartSound("hellblazer/close",CHAN_WEAPON,CHANF_OVERLAP);
XZW9 Z 2;
XZWA ABC 2;
XZWA A 2 A_QuakeEx(1.2,1.2,1.2,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
XZWA BC 2;
XZWA D 2 A_StartSound("hellblazer/meleestop",CHAN_WEAPON,CHANF_OVERLAP);
XZWA EFGHIJ 2;
Goto Ready_G;
@ -653,9 +666,14 @@ Class Hellblazer : SWWMWeapon
A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerMelee();
}
XZWB BCD 2;
XZWB E 2 A_Parry(9);
XZWB FG 1;
XZWB BCD 2 A_BumpView(.5,tics:2);
XZWB E 2
{
A_BumpFOV(.96);
A_QuakeEx(1.2,1.2,1.2,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.4);
A_Parry(9);
}
XZWB FG 1 A_BumpView(-3);
XZWB H 1 A_Melee(75,"demolitionist/whitl",1.05,1.2,1.2);
XZWB IJKLM 2;
XZWB N 2 A_StartSound("hellblazer/meleeend",CHAN_WEAPON,CHANF_OVERLAP);

View file

@ -220,10 +220,11 @@ Class Wallbuster : SWWMWeapon
player.SetPsprite(PSP_WEAPON,ResolveState("FireTwentyFive"));
SWWMHandler.DoFlash(self,Color(80,255,192,64),7);
}
double qk = min(9.,1.+howmany/5.);
double qk = min(9.,1.+howmany/4.);
int ql = min(25,6+howmany/2);
A_QuakeEx(qk,qk,qk,ql,0,8,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:qk*.15);
A_BumpFOV(1.-qk*.04);
A_BumpView(-qk*.6);
A_AlertMonsters(swwm_uncapalert?0:alertness);
A_PlayerFire();
if ( flashstr > 0 )
@ -482,7 +483,9 @@ Class Wallbuster : SWWMWeapon
Stop;
Select:
XZW2 G 1 A_FullRaise();
XZW2 HIJKLMNOP 2;
XZW2 HI 2 A_BumpView(.2,tics:2);
XZW2 JKL 2 A_BumpView(-.3,tics:2);
XZW2 MNOP 2;
Goto Ready;
Ready:
XZW2 A 1
@ -561,7 +564,11 @@ Class Wallbuster : SWWMWeapon
XZW2 A 2 A_StartSound("wallbuster/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 DEFG 2;
XZW4 HIJK 1;
XZW4 L 1 A_StartSound("wallbuster/unlock",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 L 1
{
A_QuakeEx(.8,.8,.8,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_StartSound("wallbuster/unlock",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW4 MNOPQ 1;
XZW4 RSTUV 1;
Goto Detach;
@ -703,7 +710,11 @@ Class Wallbuster : SWWMWeapon
A_ChangeModel("",1,"","",4+i,"models","",CMDL_USESURFACESKIN,-1);
}
XZW8 OPQRS 1;
XZW8 T 1 A_StartSound("wallbuster/lock",CHAN_WEAPON,CHANF_OVERLAP);
XZW8 T 1
{
A_QuakeEx(1.,1.,1.,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.4);
A_StartSound("wallbuster/lock",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW8 UVWXY 1;
XZW8 Z 1 A_StartSound("wallbuster/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZW9 ABC 1;
@ -716,9 +727,14 @@ Class Wallbuster : SWWMWeapon
A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerMelee();
}
XZW9 GHI 2;
XZW9 J 2 A_Parry(9);
XZW9 KLM 1;
XZW9 GHI 2 A_BumpView(1,tics:2);
XZW9 J 2
{
A_BumpFOV(.96);
A_QuakeEx(1.2,1.2,1.2,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.5);
A_Parry(9);
}
XZW9 KLM 1 A_BumpView(-4);
XZW9 N 1 A_Melee(70,"demolitionist/whitl",1.2,1.4,1.3);
XZW9 OPQRS 2;
XZW9 T 2 A_StartSound("wallbuster/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
@ -728,7 +744,9 @@ Class Wallbuster : SWWMWeapon
Goto Ready;
Deselect:
XZW2 A 2 A_StartSound("wallbuster/deselect",CHAN_WEAPON,CHANF_OVERLAP);
XZW2 BCDEFG 2;
XZW2 B 2;
XZW2 CD 2 A_BumpView(.1,tics:2);
XZW2 EF 2 A_BumpView(.2,tics:2);
XZW2 G -1 A_FullLower();
Stop;
FlashRed:

View file

@ -71,7 +71,7 @@ Class Eviscerator : SWWMWeapon
if ( !weap ) return;
invoker.isfiring = true;
A_StartSound("eviscerator/fire",CHAN_WEAPON,CHANF_OVERLAP);
A_QuakeEx(6.,6.,6.,3,0,10,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.5);
A_QuakeEx(6.,6.,6.,8,0,10,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.5);
A_BumpFOV(.94);
A_SWWMFlash();
A_PlayerFire();
@ -146,7 +146,7 @@ Class Eviscerator : SWWMWeapon
invoker.isfiring = true;
A_StartSound("eviscerator/altfire",CHAN_WEAPON,CHANF_OVERLAP);
A_StartSound("eviscerator/fire",CHAN_WEAPON,CHANF_OVERLAP);
A_QuakeEx(4.,4.,4.,5,0,10,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.9);
A_QuakeEx(4.,4.,4.,15,0,10,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.9);
A_BumpFOV(.91);
A_SWWMFlash();
A_PlayerFire();
@ -275,12 +275,12 @@ Class Eviscerator : SWWMWeapon
A_StartSound("eviscerator/deselect",CHAN_WEAPON,CHANF_OVERLAP);
return A_JumpIf(invoker.extended,"DeselectExt");
}
XZW2 BCDEFGH 2;
XZW2 BCDEFG 2;
XZW2 H -1 A_FullLower();
Stop;
DeselectExt:
XZW4 Z 2;
XZW5 ABCDEFG 2;
XZW5 ABCDEF 2;
XZW5 G -1 A_FullLower();
Stop;
Select:
@ -346,7 +346,11 @@ Class Eviscerator : SWWMWeapon
Eject:
XZW2 A 4;
XZW3 STUV 2;
XZW3 W 1 A_StartSound("eviscerator/eject",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 W 1
{
A_QuakeEx(.3,.3,.3,4,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("eviscerator/eject",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW3 X 1
{
int layer = PSP_WEAPON+1;
@ -358,6 +362,7 @@ Class Eviscerator : SWWMWeapon
XZW4 AB 1;
XZW4 C 1
{
A_QuakeEx(.5,.5,.5,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.15);
A_StartSound("eviscerator/ejectend",CHAN_WEAPON,CHANF_OVERLAP);
A_StartLoad();
}
@ -367,7 +372,11 @@ Class Eviscerator : SWWMWeapon
EjectExt:
XZW4 Z 4;
XZW6 RSTU 2;
XZW6 V 1 A_StartSound("eviscerator/eject",CHAN_WEAPON,CHANF_OVERLAP);
XZW6 V 1
{
A_QuakeEx(.3,.3,.3,4,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("eviscerator/eject",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW6 W 1
{
int layer = PSP_WEAPON+1;
@ -379,6 +388,7 @@ Class Eviscerator : SWWMWeapon
XZW7 A 1;
XZW7 B 1
{
A_QuakeEx(.5,.5,.5,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.15);
A_StartSound("eviscerator/ejectend",CHAN_WEAPON,CHANF_OVERLAP);
A_StartLoad();
}
@ -431,7 +441,11 @@ Class Eviscerator : SWWMWeapon
return A_JumpIf(invoker.extended,"ZoomExt");
}
XZW4 JKLMN 2;
XZW4 O 1 A_StartSound("eviscerator/switch");
XZW4 O 1
{
A_QuakeEx(.25,.25,.25,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("eviscerator/switch");
}
XZW4 PQR 1;
XZW4 S 2
{
@ -444,7 +458,11 @@ Class Eviscerator : SWWMWeapon
ZoomExt:
XZW4 Z 2;
XZW7 IJK 3;
XZW7 L 1 A_StartSound("eviscerator/switch");
XZW7 L 1
{
A_QuakeEx(.25,.25,.25,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("eviscerator/switch");
}
XZW7 MNO 1;
XZW7 P 2
{
@ -487,23 +505,42 @@ Class Eviscerator : SWWMWeapon
A_PlayerMelee();
return A_JumpIf(invoker.extended,"User1Ext");
}
XZW8 WXY 2;
XZW8 Z 1;
XZW8 WXY 2 A_BumpAngle(2,2);
XZW8 Z 1 A_BumpAngle(2);
XZW9 AB 1;
XZW9 C 1 A_Parry(9);
XZW9 D 1;
XZW9 E 2 A_Melee(60,"demolitionist/whitm",1.1,1.2,1.2);
XZW9 C 1
{
A_BumpFOV(.98);
A_QuakeEx(.8,.8,.8,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.5);
A_Parry(9);
}
XZW9 D 1 A_BumpAngle(-8);
XZW9 E 2
{
A_BumpAngle(-4);
A_Melee(60,"demolitionist/whitm",1.1,1.2,1.2);
}
XZW9 FGH 2;
XZW9 I 2 A_StartSound("eviscerator/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZW9 JKL 2;
Goto Ready;
User1Ext:
XZW4 Z 2;
XZWA NOP 2;
XZWA QRS 1;
XZWA T 1 A_Parry(9);
XZWA U 1;
XZWA V 2 A_Melee(60,"demolitionist/whitm",1.1,1.2);
XZWA NOP 2 A_BumpAngle(2,2);
XZWA Q 1 A_BumpAngle(2);
XZWA RS 1;
XZWA T 1
{
A_BumpFOV(.98);
A_QuakeEx(.8,.8,.8,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.5);
A_Parry(9);
}
XZWA U 1 A_BumpAngle(-8);
XZWA V 2
{
A_BumpAngle(-4);
A_Melee(60,"demolitionist/whitm",1.1,1.2);
}
XZWA WXY 2;
XZWA Z 2 A_StartSound("eviscerator/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZWB ABC 2;

View file

@ -76,6 +76,7 @@ Class Ynykron : SWWMWeapon
a.LastHeard = self;
}
A_QuakeEx(9.,9.,9.,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:2.5);
A_BumpView(-5);
A_BumpFOV(.7);
A_PlayerFire();
SWWMHandler.DoFlash(self,Color(120,255,255,255),30);
@ -130,6 +131,11 @@ Class Ynykron : SWWMWeapon
Owner.A_SoundVolume(CHAN_WEAPONEXTRA2,(.025*chargelevel)**3.);
}
if ( Owner.player.ReadyWeapon != self ) return;
if ( (chargelevel > 10.) && !(level.maptime&3) )
{
double str = (chargelevel-10.)/50.;
Owner.A_QuakeEx(str,str,str,4,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:str/5.);
}
let pspm = Owner.player.FindPSprite(PSP_WEAPON);
if ( pspm )
{
@ -227,7 +233,9 @@ Class Ynykron : SWWMWeapon
A_StartSound("ynykron/ready",CHAN_WEAPONEXTRA2,CHANF_LOOP,(.025*invoker.chargelevel)**3.,2.);
A_FullRaise();
}
XZW2 MNOPQRSTUVWXYZ 2;
XZW2 MNOP 2 A_BumpView(-.2,tics:2);
XZW2 QRSTUV 2 A_BumpView(-.6,tics:2);
XZW2 WXYZ 2 A_BumpView(.5,tics:2);
XZW3 A 2;
Goto Ready;
Ready:
@ -262,16 +270,24 @@ Class Ynykron : SWWMWeapon
A_OverlayFlags(PSP_WEAPON+1,PSPF_RENDERSTYLE|PSPF_ALPHA|PSPF_FORCESTYLE|PSPF_FORCEALPHA,true);
A_OverlayRenderStyle(PSP_WEAPON+1,STYLE_Add);
A_OverlayAlpha(PSP_WEAPON+1,0.);
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
A_StartSound("ynykron/ventopen",CHAN_WEAPON,CHANF_OVERLAP);
A_BumpFOV(.995);
A_QuakeEx(1.2,1.2,1.2,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
}
XZWA ABCDEF 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
XZWA G 2
{
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
A_StartSound("ynykron/ventclose",CHAN_WEAPON,CHANF_OVERLAP);
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
}
XZWA H 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
XZWA I 2
{
A_BumpFOV(.99);
A_QuakeEx(1.4,1.4,1.4,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
}
XZWA HI 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
Goto Ready;
ReadyVentSmoke:
XZWB D 1
@ -331,10 +347,19 @@ Class Ynykron : SWWMWeapon
A_StartSound("ynykron/magout",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerReload();
}
XZW3 WXYZ 2;
XZW3 WXYZ 2 A_BumpView(.5,tics:2);
XZW4 A 2;
XZW4 B 2 A_StopSound(CHAN_WEAPONEXTRA);
XZW4 CDEFGHIJKLMNO 2;
XZW4 B 2
{
A_BumpView(-2.);
A_BumpFOV(.99);
A_QuakeEx(1.4,1.4,1.4,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_StopSound(CHAN_WEAPONEXTRA);
}
XZW4 CDEF 2;
XZW4 GHIJ 2 A_BumpView(.5,tics:2);
XZW4 K 2 A_BumpView(2.);
XZW4 LMNO 2;
XZW4 P 0
{
invoker.inverted = true;
@ -349,9 +374,19 @@ Class Ynykron : SWWMWeapon
A_StartSound("ynykron/magout",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerReload();
}
XZW5 UVWXY 2;
XZW5 Z 2 A_StopSound(CHAN_WEAPONEXTRA);
XZW6 ABCDEFGHIJKLM 2;
XZW5 UVWX 2 A_BumpView(.5,tics:2);
XZW5 Y 2;
XZW5 Z 2
{
A_BumpView(-2.);
A_BumpFOV(.99);
A_QuakeEx(1.4,1.4,1.4,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_StopSound(CHAN_WEAPONEXTRA);
}
XZW6 ABCD 2;
XZW6 EFGH 2 A_BumpView(.5,tics:2);
XZW6 I 2 A_BumpView(2.);
XZW6 JKLM 2;
XZW6 N 0
{
invoker.inverted = false;
@ -361,19 +396,36 @@ Class Ynykron : SWWMWeapon
PutNormal:
XZW4 PQRS 2;
XZW4 T 2 A_StartSound("ynykron/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 UVWXYZ 2;
XZW4 UVWX 2 A_BumpView(.5,tics:2);
XZW4 YZ 2 A_BumpView(.5,tics:2);
XZW5 A 2 A_StartSound("ynykron/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 B 2 A_StartSound("ynykron/idle",CHAN_WEAPONEXTRA,CHANF_LOOP,.3,4.);
XZW5 CDEFGHIJK 2;
XZW5 B 2
{
A_BumpView(4.);
A_BumpFOV(.98);
A_QuakeEx(2.,2.,2.,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.5);
A_StartSound("ynykron/idle",CHAN_WEAPONEXTRA,CHANF_LOOP,.3,4.);
}
XZW5 C 2;
XZW5 DEFG 2 A_BumpView(-1,tics:2);
XZW5 HIJK 2;
XZW5 L 4;
Goto Ready;
PutInverted:
XZW6 NOPQ 2;
XZW6 R 2 A_StartSound("ynykron/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZW6 STUVWX 2;
XZW6 STUVWX 2 A_BumpView(.5,tics:2);
XZW6 Y 2 A_StartSound("ynykron/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZW6 Z 2 A_StartSound("ynykron/idle",CHAN_WEAPONEXTRA,CHANF_LOOP,.3,4.);
XZW7 ABCDEFGHI 2;
XZW6 Z 2
{
A_BumpView(4.);
A_BumpFOV(.98);
A_QuakeEx(2.,2.,2.,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.5);
A_StartSound("ynykron/idle",CHAN_WEAPONEXTRA,CHANF_LOOP,.3,4.);
}
XZW7 A 2;
XZW7 BCDE 2 A_BumpView(-1,tics:2);
XZW7 FGHI 2;
XZW7 J 4;
XZW5 P 0;
Goto Ready;
@ -391,7 +443,14 @@ Class Ynykron : SWWMWeapon
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
A_StartSound("ynykron/ventopen",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW7 RSTUV 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
XZW7 R 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
XZW7 S 2
{
A_BumpFOV(.995);
A_QuakeEx(1.2,1.2,1.2,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
}
XZW7 TUV 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
Discharging:
XZW7 W 2
{
@ -405,7 +464,13 @@ Class Ynykron : SWWMWeapon
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
A_StartSound("ynykron/ventclose",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW7 YZ 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
XZW7 Y 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
XZW7 Z 2
{
A_BumpFOV(.99);
A_QuakeEx(1.4,1.4,1.4,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
}
Goto Ready;
DischargeSmoke:
XZWA T 2
@ -432,7 +497,9 @@ Class Ynykron : SWWMWeapon
XZW2 A 2;
XZW3 BC 2;
XZW3 D 2 A_StartSound("ynykron/latch",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 EFGHI 2;
XZW3 EF 2;
XZW3 G 2 A_QuakeEx(1.,1.,1.,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
XZW3 HI 2;
XZW2 A 0
{
invoker.chargestate = CS_CHARGING;
@ -451,7 +518,13 @@ Class Ynykron : SWWMWeapon
UnloadNormal:
XZW2 A 2;
XZW3 STU 2;
XZW3 V 2 A_StartSound("ynykron/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 V 2
{
A_BumpView(-2.);
A_BumpFOV(.99);
A_QuakeEx(1.4,1.4,1.4,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_StartSound("ynykron/magout",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW3 WXYZ 2;
XZW4 A 2;
XZW4 B 2 A_StopSound(CHAN_WEAPONEXTRA);
@ -502,7 +575,11 @@ Class Ynykron : SWWMWeapon
A_StartSound("ynykron/checkout",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerCheckGun();
}
XZW8 ABCDEFGHIJKLMNOPQRSTUVW 2;
XZW8 ABCDE 2 A_BumpView(.3,tics:2);
XZW8 FGHIJKL 2 A_BumpView(-.8,tics:2);
XZW8 MNOPQR 2 A_BumpView(-.4,tics:2);
XZW8 STU 2 A_BumpView(.5,tics:2);
XZW8 VW 2;
XZW8 X 4; // smoothen more
Goto Ready;
User1:
@ -513,19 +590,26 @@ Class Ynykron : SWWMWeapon
A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerMelee();
}
XZW8 YZ 2;
XZW9 AB 2;
XZW9 C 1 A_Parry(9);
XZW9 DE 1;
XZW8 YZ 2 A_BumpAngle(-1.,2);
XZW9 AB 2 A_BumpAngle(-.5,2);
XZW9 C 1
{
A_BumpFOV(.93);
A_QuakeEx(2.,2.,2.,10,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.8);
A_Parry(9);
}
XZW9 DE 1 A_BumpAngle(10.);
XZW9 F 1 A_Melee(100,"demolitionist/whitl",1.5,1.6,1.7,MELEE_Wider);
XZW9 GHIJK 1;
XZW9 LMNO 2;
XZW9 GHIJK 1 A_BumpAngle(2.);
XZW9 LMNO 2 A_BumpAngle(.5,2);
XZW9 P 2 A_StartSound("ynykron/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZW9 QRSTUVWXYZ 2;
Goto Ready;
Deselect:
XZW2 A 2 A_StartSound("ynykron/deselect",CHAN_WEAPON,CHANF_OVERLAP);
XZW2 BCDEFGHIJK 2;
XZW2 BCDE 2 A_BumpView(.1,tics:2);
XZW2 FGH 2 A_BumpView(.2,tics:2);
XZW2 IJK 2 A_BumpView(.3,tics:2);
XZW2 L -1
{
A_StopSound(CHAN_WEAPONEXTRA);

View file

@ -115,6 +115,8 @@ Class DeepImpact : SWWMWeapon
{
let weap = Weapon(invoker);
if ( !weap ) return;
A_BumpFOV(.995);
A_BumpView(-.2);
A_QuakeEx(.8,.8,.8,2,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.05);
A_StartSound("deepimpact/fire",CHAN_WEAPON,CHANF_OVERLAP);
A_AlertMonsters(swwm_uncapalert?0:300);
@ -259,6 +261,8 @@ Class DeepImpact : SWWMWeapon
let weap = Weapon(invoker);
if ( !weap ) return;
A_StopSound(CHAN_WEAPONEXTRA);
A_BumpFOV(.85);
A_BumpView(-5);
A_QuakeEx(6.,6.,6.,10,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.7);
A_StartSound("deepimpact/altfire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.5);
A_AlertMonsters(swwm_uncapalert?0:8000);
@ -437,17 +441,26 @@ Class DeepImpact : SWWMWeapon
A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerMelee();
}
XZW4 H 2 A_StartSound("demolitionist/reloadbeg",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 H 2
{
A_BumpView(.5,tics:4);
A_StartSound("demolitionist/reloadbeg",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW4 I 2;
XZW4 J 1 A_Parry(9);
XZW4 KLM 1;
XZW4 J 1
{
A_BumpFOV(.98);
A_QuakeEx(.5,.5,.5,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
A_Parry(9);
}
XZW4 KLM 1 A_BumpView(-1);
XZW4 N 4 A_Melee(60,"demolitionist/whits");
XZW4 O 3 { invoker.PlayUpSound(self); }
XZW4 PQRSTUV 2;
Goto Ready;
Deselect:
XZW2 A 2 A_StartSound("deepimpact/deselect",CHAN_WEAPON,CHANF_OVERLAP);
XZW2 BCDEFGHI 2;
XZW2 BCDEFGH 2;
XZW2 I -1 A_FullLower();
Stop;
}

View file

@ -217,8 +217,9 @@ Class Spreadgun : SWWMWeapon
A_SWWMFlash("FlashGold");
A_StartSound("spreadgun/goldfire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6);
A_AlertMonsters(swwm_uncapalert?0:2500);
A_QuakeEx(6.,6.,6.,9,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.2);
A_QuakeEx(6.,6.,6.,12,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.2);
A_BumpFOV(.76);
A_BumpView(-4);
SWWMHandler.DoFlash(self,Color(96,255,224,16),5);
}
else
@ -226,8 +227,9 @@ Class Spreadgun : SWWMWeapon
A_SWWMFlash("FlashRed");
A_StartSound("spreadgun/redfire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6);
A_AlertMonsters(swwm_uncapalert?0:800);
A_QuakeEx(3.,3.,3.,9,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.6);
A_BumpFOV(.88);
A_QuakeEx(2.5,2.5,2.5,8,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.6);
A_BumpFOV(.93);
A_BumpView(-1);
SWWMHandler.DoFlash(self,Color(40,255,192,64),5);
}
A_PlayerFire();
@ -470,12 +472,12 @@ Class Spreadgun : SWWMWeapon
A_StartSound("spreadgun/deselect",CHAN_WEAPON,CHANF_OVERLAP);
return A_JumpIf(invoker.fired,"DeselectFired");
}
XZW2 BCDEFGHI 1;
XZW2 BCDEFGH 1;
XZW2 I -1 A_FullLower();
Stop;
DeselectFired:
XZW2 Z 1;
XZW3 ABCDEFGH 1;
XZW3 ABCDEFG 1;
XZW3 H -1 A_FullLower();
Stop;
Select:

View file

@ -51,6 +51,7 @@ Class Sparkster : SWWMWeapon
A_StartSound("biospark/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.7);
A_QuakeEx(2.,2.,2.,5,0,8,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
A_BumpFOV(.96);
A_BumpView(-.5);
A_SWWMFlash();
SWWMHandler.DoFlash(self,Color(64,192,255,96),3);
A_AlertMonsters(swwm_uncapalert?0:5000);
@ -70,6 +71,7 @@ Class Sparkster : SWWMWeapon
A_StartSound("biospark/altfire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.8);
A_QuakeEx(3.,3.,3.,5,0,8,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_BumpFOV(.95);
A_BumpView(-.6);
A_SWWMFlash();
SWWMHandler.DoFlash(self,Color(64,192,255,96),3);
A_AlertMonsters(swwm_uncapalert?0:4000);
@ -89,6 +91,7 @@ Class Sparkster : SWWMWeapon
A_StartSound("biospark/thirdfire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:1.5);
A_QuakeEx(5.,5.,5.,10,0,8,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.6);
A_BumpFOV(.94);
A_BumpView(-.8);
A_AlertMonsters(swwm_uncapalert?0:1200);
A_PlayerFire();
SWWMUtility.DoKnockback(self,-x,2500.);
@ -249,7 +252,7 @@ Class Sparkster : SWWMWeapon
A_StartSound("biospark/deselect",CHAN_WEAPON,CHANF_OVERLAP);
return A_JumpIf(invoker.doublestacc,"DoubleDeselect");
}
XZW2 BCDEFG 2;
XZW2 BCDEF 2;
XZW2 G -1
{
A_StopSound(CHAN_WEAPONEXTRA);
@ -258,7 +261,7 @@ Class Sparkster : SWWMWeapon
Stop;
DoubleDeselect:
XZW5 Z 2;
XZW6 STUVWX 2;
XZW6 STUVW 2;
XZW6 X -1
{
A_StopSound(CHAN_WEAPONEXTRA);
@ -432,6 +435,8 @@ Class Sparkster : SWWMWeapon
{
invoker.clipcount = 0;
invoker.nomag = true;
A_BumpView(1);
A_QuakeEx(.3,.3,.3,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("biospark/magout",CHAN_WEAPON,CHANF_OVERLAP);
A_StopSound(CHAN_WEAPONEXTRA);
}
@ -450,6 +455,8 @@ Class Sparkster : SWWMWeapon
invoker.clipcount = 0;
invoker.nomag = true;
invoker.doublestacc = false;
A_BumpView(1);
A_QuakeEx(.3,.3,.3,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.1);
A_StartSound("biospark/magout",CHAN_WEAPON,CHANF_OVERLAP);
A_StopSound(CHAN_WEAPONEXTRA);
A_StopSound(CHAN_WEAPONEXTRA2);
@ -466,6 +473,8 @@ Class Sparkster : SWWMWeapon
invoker.Ammo1.Amount = max(0,invoker.Ammo1.Amount-1);
invoker.clipcount = invoker.default.clipcount;
invoker.nomag = false;
A_BumpView(-1.5);
A_QuakeEx(.6,.6,.6,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
A_StartSound("biospark/magin",CHAN_WEAPON,CHANF_OVERLAP);
A_StartSound("biospark/idle",CHAN_WEAPONEXTRA,CHANF_LOOP,.4,4.);
}
@ -486,6 +495,8 @@ Class Sparkster : SWWMWeapon
invoker.Ammo1.Amount = max(0,invoker.Ammo1.Amount-1);
invoker.clipcount += invoker.default.clipcount;
invoker.doublestacc = true;
A_BumpView(-2);
A_QuakeEx(.75,.75,.75,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.25);
A_StartSound("biospark/magin",CHAN_WEAPON,CHANF_OVERLAP);
A_SoundVolume(CHAN_WEAPONEXTRA,.6);
A_StartSound("biospark/idle2",CHAN_WEAPONEXTRA2,CHANF_LOOP,.2,4.);
@ -507,6 +518,8 @@ Class Sparkster : SWWMWeapon
invoker.Ammo1.Amount = max(0,invoker.Ammo1.Amount-1);
invoker.clipcount += invoker.default.clipcount;
invoker.doublestacc = true;
A_BumpView(-.8);
A_QuakeEx(.6,.6,.6,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2);
A_StartSound("biospark/magin",CHAN_WEAPON,CHANF_OVERLAP);
A_SoundVolume(CHAN_WEAPONEXTRA,.6);
A_StartSound("biospark/idle2",CHAN_WEAPONEXTRA2,CHANF_LOOP,.2,4.);
@ -546,9 +559,14 @@ Class Sparkster : SWWMWeapon
A_PlayerMelee();
return A_JumpIf(invoker.doublestacc,"DoubleUser1");
}
XZW4 EFG 2;
XZW4 H 1 A_Parry(9);
XZW4 IJ 1;
XZW4 EFG 2 A_BumpView(1,tics:2);
XZW4 H 1
{
A_BumpFOV(.98);
A_QuakeEx(.8,.8,.8,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_Parry(9);
}
XZW4 IJ 1 A_BumpView(-4);
XZW4 K 2 A_Melee(60,"demolitionist/whitm",1.,1.1,1.1);
XZW4 LMNOPQ 2;
XZW4 R 2 A_StartSound("biospark/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
@ -556,9 +574,14 @@ Class Sparkster : SWWMWeapon
Goto Ready;
DoubleUser1:
XZW5 Z 2;
XZW7 RST 2;
XZW7 U 1 A_Parry(9);
XZW7 VW 1;
XZW7 RST 2 A_BumpView(1,tics:2);
XZW7 U 1
{
A_BumpFOV(.98);
A_QuakeEx(.8,.8,.8,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.3);
A_Parry(9);
}
XZW7 VW 1 A_BumpView(-4);
XZW7 X 2 A_Melee(60,"demolitionist/whitm",1.,1.1);
XZW7 YZ 2;
XZW8 ABCD 2;

View file

@ -80,6 +80,7 @@ Class ExplodiumGun : SWWMWeapon
A_StartSound("explodium/fire",CHAN_WEAPON,CHANF_OVERLAP);
A_QuakeEx(4.5,4.5,4.5,3,0,10,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.5);
A_BumpFOV(.96);
A_BumpView(-.2);
A_SWWMFlash();
SWWMHandler.DoFlash(self,Color(64,255,224,64),3);
A_AlertMonsters(swwm_uncapalert?0:5000);
@ -346,7 +347,8 @@ Class ExplodiumGun : SWWMWeapon
A_FullRaise();
return A_JumpIf(invoker.firstselect,"FirstSelect");
}
XZW2 CDEFGH 2;
XZW2 CDE 2 A_BumpView(-.1,tics:2);
XZW2 FGH 2 A_BumpView(.05,tics:2);
Goto Ready;
FirstSelect:
XZW2 B 1 A_JumpIf(level.maptime>8,1);
@ -356,7 +358,8 @@ Class ExplodiumGun : SWWMWeapon
invoker.firstselect = false;
invoker.PlayUpSound(self);
}
XZW2 CDEFGH 2;
XZW2 CDE 2 A_BumpView(-.1,tics:2);
XZW2 FGH 2 A_BumpView(.05,tics:2);
XZW2 A 2;
Goto Slide;
Ready:
@ -405,13 +408,23 @@ Class ExplodiumGun : SWWMWeapon
XZWB E 1 { invoker.clipcount = 0; }
XZWB F 1;
XZWB G 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZWB HIJK 1;
XZWB H 1 A_BumpView(.3);
XZWB IJK 1;
XZWB L 1 A_DropMag();
XZWB MNOPQR 1;
XZWB S 1 A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZWB S 1
{
A_BumpView(-.1);
A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP);
}
XZWB TUVWXYZ 1;
XZWC ABCD 1;
XZWC E 1 { A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP); invoker.clipcount = invoker.default.clipcount; }
XZWC E 1
{
A_BumpView(-.4);
A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP);
invoker.clipcount = invoker.default.clipcount;
}
XZWC FGHI 1;
XZWC J 1
{
@ -454,7 +467,9 @@ Class ExplodiumGun : SWWMWeapon
A_StartSound("explodium/throwmag",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerMelee();
}
XZW6 EFGHIJKLMNOPRS 1;
XZW6 EFGHI 1 A_BumpView(.25);
XZW6 JKLMNO 1;
XZW6 PRS 1 A_BumpView(-1.5);
XZW6 T 1 A_ThrowMag();
XZW6 UV 2;
XZW6 W 2
@ -478,32 +493,43 @@ Class ExplodiumGun : SWWMWeapon
XZW3 B 1 { invoker.clipcount = 0; }
XZW3 C 1;
XZW3 D 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 EFGH 1;
XZW3 E 1 A_BumpView(.3);
XZW3 FGH 1;
XZW3 I 1 A_DropMag();
Goto ReloadEnd;
ReloadEmpty:
XZW2 A 1;
XZW3 JKLMNOPQRS 1;
XZW3 T 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 UVWX 1;
XZW3 U 1 A_BumpView(.3);
XZW3 VWX 1;
XZW3 Y 1 A_DropMag();
Goto ReloadEnd;
ReloadEnd:
XZW3 Z 1;
XZW4 ABCDE 1;
XZW4 F 1 A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 F 1
{
A_BumpView(-.1);
A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW4 GHIJKLMNOPQ 1;
XZW4 R 1 { A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP); invoker.clipcount = invoker.default.clipcount; }
XZW4 R 1
{
A_BumpView(-.4);
A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP);
invoker.clipcount = invoker.default.clipcount;
}
XZW4 STUV 1;
XZW2 A 1 A_JumpIf(!invoker.chambered,"Slide");
Goto Ready;
Slide:
XZW2 A 1;
XZW4 WXY 1;
XZW4 WXY 1 A_BumpView(-.1);
XZW5 A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 BC 1;
XZW5 D 1 { invoker.chambered = true; invoker.clipcount--; }
XZW5 EFG 1;
XZW5 EFG 1 A_BumpView(.1);
XZW5 H 1 A_StartSound("explodium/slideforward",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 IJKLM 1;
Goto Ready;
@ -517,10 +543,14 @@ Class ExplodiumGun : SWWMWeapon
CheckBullet:
XZW2 A 1;
XZW7 A 1 A_Overlay(PSP_WEAPON+1,"CheckBulletCasing");
XZW7 BCDE 1;
XZW7 BCDE 1 A_BumpView(-.2);
XZW7 F 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP);
XZW7 GHIJKLMNOP 1;
XZW7 Q 1 A_StartSound("explodium/slideforward",CHAN_WEAPON,CHANF_OVERLAP);
XZW7 Q 1
{
A_BumpView(.6);
A_StartSound("explodium/slideforward",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW7 RS 1;
Goto Ready;
CheckBulletCasing:
@ -529,15 +559,16 @@ Class ExplodiumGun : SWWMWeapon
Stop;
User1:
XZW2 A 1;
XZW7 TU 1;
XZW7 TU 1 A_BumpView(.1);
User1Hold:
XZW7 V 1
{
A_BumpAngle(1.);
A_PlayerMelee(true);
A_StartSound("demolitionist/swing",CHAN_WEAPON,CHANF_OVERLAP);
A_Parry(9);
}
XZW7 WX 1;
XZW7 WX 1 A_BumpAngle(-.5);
XZW7 Y 1 A_Melee();
XZW7 Z 2;
XZW8 ABCDE 2;
@ -546,16 +577,23 @@ Class ExplodiumGun : SWWMWeapon
Goto Select;
Zoom1:
XZW2 A 2 A_StartSound("explodium/checkout",CHAN_WEAPON,CHANF_OVERLAP);
XZW8 GHIJKLMNOPQRSTUVWXYZ 2;
XZW8 GHIJ 2 A_BumpView(-.2);
XZW8 KLMNO 2 A_BumpView(-.3);
XZW8 PQR 2 A_BumpView(.5);
XZW8 STUV 2 A_BumpView(.2);
XZW8 WXYZ 2;
Goto Ready;
Zoom2:
XZW2 A 1 A_StartSound("explodium/speen",CHAN_WEAPON,CHANF_OVERLAP);
XZW9 ABCDEFGHIJKLMNOPQRSTUVW 1;
XZW9 ABCD 1 A_BumpView(.2);
XZW9 EFGHIJ 1 A_BumpView(-.2);
XZW9 KLMNOP 1 A_BumpView(-.1);
XZW9 QRST 1 A_BumpView(.3);
XZW9 UVW 1;
Goto Ready;
Deselect:
XZW2 A 2 A_StartSound("explodium/deselect",CHAN_WEAPON,CHANF_OVERLAP);
XZWA TUVW 2;
XZW2 B 2;
XZWA TUVW 2 A_BumpView(.1,tics:2);
XZW2 B -1 A_FullLower();
Stop;
Flash:
@ -621,6 +659,7 @@ Class DualExplodiumGun : SWWMWeapon
A_StartSound("explodium/fire",CHAN_WEAPON,CHANF_OVERLAP);
A_QuakeEx(4.5,4.5,4.5,3,0,10,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.5);
A_BumpFOV(.96);
A_BumpView(-.2);
if ( side == 1 )
A_SWWMFlash("Flash");
else if ( side == -1 )
@ -776,12 +815,20 @@ Class DualExplodiumGun : SWWMWeapon
A_FullRaise();
ExplodiumGun(invoker.SisterWeapon).firstselect = false;
}
XZW2 C 2;
XZW2 D 2 { player.SetPSprite(PSP_WEAPON+1,ResolveState("LeftSelect")); }
XZW2 EFGHAA 2;
XZW2 C 2 A_BumpView(-.1,tics:2);
XZW2 D 2
{
A_BumpView(-.1,tics:2);
player.SetPSprite(PSP_WEAPON+1,ResolveState("LeftSelect"));
}
XZW2 E 2 A_BumpView(-.1,tics:2);
XZW2 FGH 2 A_BumpView(.05,tics:2);
XZW2 AA 2;
Goto Ready;
LeftSelect:
XZWB BCDEFGH 2;
XZWB B 2;
XZWB CDE 2 A_BumpView(-.1,tics:2);
XZWB FGH 2 A_BumpView(.05,tics:2);
Goto LeftReady;
Ready:
XZW2 A 1
@ -872,18 +919,25 @@ Class DualExplodiumGun : SWWMWeapon
A_PlayerReload();
A_StartSound("explodium/deselect",CHAN_WEAPON,CHANF_OVERLAP);
}
XZWI WXYZ 2;
XZWJ AB 2;
XZWI WXY 2 A_BumpView(.2,tics:2);
XZWI Z 2 A_BumpView(.1,tics:2);
XZWJ AB 2 A_BumpView(.1,tics:2);
XZWJ CD 1;
XZWJ E 1 { ExplodiumGun(invoker.SisterWeapon).clipcount = 0; }
XZWJ F 1;
XZWJ G 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZWJ HIJ 1;
XZWJ H 1 A_BumpView(.2);
XZWJ IJ 1;
XZWJ K 0 A_DropMag();
XZWJ LMN 3;
XZWJ O 2 A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZWJ PQR 2;
XZWJ S 1 { A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP); ExplodiumGun(invoker.SisterWeapon).clipcount = ExplodiumGun(invoker.SisterWeapon).default.clipcount; }
XZWJ S 1
{
A_BumpView(-.2);
A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP);
ExplodiumGun(invoker.SisterWeapon).clipcount = ExplodiumGun(invoker.SisterWeapon).default.clipcount;
}
XZWJ TUVW 1;
XZWJ X 2 A_StartSound("explodium/select",CHAN_WEAPON,CHANF_OVERLAP);
XZWJ Y 2
@ -938,17 +992,24 @@ Class DualExplodiumGun : SWWMWeapon
A_PlayerReload();
A_StartSound("explodium/deselect",CHAN_WEAPON,CHANF_OVERLAP);
}
XZWL ABCDEF 2;
XZWL ABC 2 A_BumpView(.2,tics:2);
XZWL DEF 2 A_BumpView(.1,tics:2);
XZWL GH 1;
XZWL I 1 { invoker.clipcount = 0; }
XZWL J 1;
XZWL K 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZWL LMN 1;
XZWL L 1 A_BumpView(.2);
XZWL MN 1;
XZWL O 0 A_DropMag();
XZWL PQR 3;
XZWL S 2 A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZWL TUV 2;
XZWL W 1 { A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP); invoker.clipcount = invoker.default.clipcount; }
XZWL W 1
{
A_BumpView(-.2);
A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP);
invoker.clipcount = invoker.default.clipcount;
}
XZWL XYZ 1;
XZWM A 1;
XZWM B 2 A_StartSound("explodium/select",CHAN_WEAPON,CHANF_OVERLAP);
@ -982,22 +1043,22 @@ Class DualExplodiumGun : SWWMWeapon
Stop;
Lower:
XZW2 A 2;
XZW7 TUV 2;
XZW7 TUV 2 A_BumpView(.1,tics:2);
XZW2 B -1;
Stop;
LeftLower:
XZWB A 2;
XZWG TUV 2;
XZWG TUV 2 A_BumpView(.1,tics:2);
XZWB B -1;
Stop;
Raise:
XZW2 B 2;
XZW7 VUT 2;
XZW7 VUT 2 A_BumpView(-.1,tics:2);
XZW2 A 1;
Goto Ready;
LeftRaise:
XZWB B 2;
XZWG VUT 2;
XZWG VUT 2 A_BumpView(-.1,tics:2);
XZWB A 1;
Goto LeftReady;
Reload:
@ -1008,36 +1069,46 @@ Class DualExplodiumGun : SWWMWeapon
if ( ExplodiumGun(invoker.SisterWeapon).clipcount <= 0 ) return ResolveState("ReloadEmpty");
return ResolveState(null);
}
XZW2 TUVWXY 2;
XZW2 TUV 2 A_BumpView(.2,tics:2);
XZW2 WXY 2 A_BumpView(.1,tics:2);
XZW2 Z 1;
XZW3 A 1;
XZW3 B 1 { ExplodiumGun(invoker.SisterWeapon).clipcount = 0; }
XZW3 C 1;
XZW3 D 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 EFG 1;
XZW3 E 1 A_BumpView(.2);
XZW3 FG 1;
XZW3 H 0 A_DropMag();
Goto ReloadEnd;
ReloadEmpty:
XZW2 A 1;
XZW3 IJKLMN 2;
XZW3 IJK 2 A_BumpView(.2,tics:2);
XZW3 LMN 2 A_BumpView(.1,tics:2);
XZW3 OPQR 1;
XZW3 S 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 TUV 1;
XZW3 T 1 A_BumpView(.2);
XZW3 UV 1;
XZW3 W 0 A_DropMag();
Goto ReloadEnd;
ReloadEnd:
XZW3 XYZ 3;
XZW4 A 2 A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 BCD 2;
XZW4 E 1 { A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP); ExplodiumGun(invoker.SisterWeapon).clipcount = ExplodiumGun(invoker.SisterWeapon).default.clipcount; }
XZW4 E 1
{
A_BumpView(-.2);
A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP);
ExplodiumGun(invoker.SisterWeapon).clipcount = ExplodiumGun(invoker.SisterWeapon).default.clipcount;
}
XZW4 FGHI 1;
XZW4 J 2 A_StartSound("explodium/select",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 KLMNOP 2;
XZW4 KLM 2 A_BumpView(-.2,tics:2);
XZW4 NOP 2 A_BumpView(.1,tics:2);
Goto Ready;
Slide:
XZW2 A 9 { player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftLower")); }
XZW2 A 1;
XZW4 WXY 1;
XZW4 WXY 1 A_BumpView(-.1);
XZW5 A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 BC 1;
XZW5 D 1
@ -1045,7 +1116,7 @@ Class DualExplodiumGun : SWWMWeapon
ExplodiumGun(invoker.SisterWeapon).chambered = true;
ExplodiumGun(invoker.SisterWeapon).clipcount--;
}
XZW5 EFG 1;
XZW5 EFG 1 A_BumpView(.1);
XZW5 H 1 A_StartSound("explodium/slideforward",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 IJKLM 1;
XZW2 A 0 { player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftRaise")); }
@ -1065,36 +1136,46 @@ Class DualExplodiumGun : SWWMWeapon
if ( invoker.clipcount <= 0 ) return ResolveState("LeftReloadEmpty");
return ResolveState(null);
}
XZWB TUVWXY 2;
XZWB TUV 2 A_BumpView(.2,tics:2);
XZWB WXY 2 A_BumpView(.1,tics:2);
XZWB Z 1;
XZWC A 1;
XZWC B 1 { invoker.clipcount = 0; }
XZWC C 1;
XZWC D 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZWC EFG 1;
XZWC E 1 A_BumpView(.2);
XZWC FG 1;
XZWC H 0 A_DropMag();
Goto LeftReloadEnd;
LeftReloadEmpty:
XZWB A 1;
XZWC IJKLMN 2;
XZWC IJK 2 A_BumpView(.2,tics:2);
XZWC LMN 2 A_BumpView(.1,tics:2);
XZWC OPQR 1;
XZWC S 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZWC TUV 1;
XZWC T 1 A_BumpView(.2);
XZWC UV 1;
XZWC W 0 A_DropMag();
Goto LeftReloadEnd;
LeftReloadEnd:
XZWC XYZ 3;
XZWD A 2 A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP);
XZWD BCD 2;
XZWD E 1 { A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP); invoker.clipcount = invoker.default.clipcount; }
XZWD E 1
{
A_BumpView(-.2);
A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP);
invoker.clipcount = invoker.default.clipcount;
}
XZWD FGHI 1;
XZWD J 2 A_StartSound("explodium/select",CHAN_WEAPON,CHANF_OVERLAP);
XZWD KLMNOP 2;
XZWD KLM 2 A_BumpView(-.2,tics:2);
XZWD NOP 2 A_BumpView(.1,tics:2);
Goto LeftReady;
LeftSlide:
XZWB A 9 { player.SetPSPrite(PSP_WEAPON,ResolveState("Lower")); }
XZWB A 1;
XZWD WXY 1;
XZWD WXY 1 A_BumpView(-.1);
XZWE A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP);
XZWE BC 1;
XZWE D 1
@ -1102,7 +1183,7 @@ Class DualExplodiumGun : SWWMWeapon
invoker.chambered = true;
invoker.clipcount--;
}
XZWE EFG 1;
XZWE EFG 1 A_BumpView(.1);
XZWE H 1 A_StartSound("explodium/slideforward",CHAN_WEAPON,CHANF_OVERLAP);
XZWE IJKLM 1;
XZWB A 0 { player.SetPSPrite(PSP_WEAPON,ResolveState("Raise")); }
@ -1113,13 +1194,25 @@ Class DualExplodiumGun : SWWMWeapon
A_PlayerCheckGun();
A_StartSound("explodium/speen",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW9 ABCDEFG 1;
XZW9 H 1 { player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftZoom")); }
XZW9 IJKLMNOPQRSTUVW 1;
XZW9 ABCD 1 A_BumpView(.2);
XZW9 EFG 1 A_BumpView(-.2);
XZW9 H 1
{
A_BumpView(-.2);
player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftZoom"));
}
XZW9 IJ 1 A_BumpView(-.2);
XZW9 KLMNOP 1 A_BumpView(-.1);
XZW9 QRST 1 A_BumpView(.3);
XZW9 UVW 1;
Goto Ready;
LeftZoom:
XZWB A 1;
XZWH ABCDEFGHIJKLMNOPQRSTUVW 1;
XZWH ABCD 1 A_BumpView(.2);
XZWH EFGHIJ 1 A_BumpView(-.2);
XZWH KLMNOP 1 A_BumpView(-.1);
XZWH QRST 1 A_BumpView(.3);
XZWH UVW 1;
Goto LeftReady;
User1:
XZW2 A 1 { player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftUser1")); }
@ -1145,16 +1238,19 @@ Class DualExplodiumGun : SWWMWeapon
Stop;
Deselect:
XZW2 A 2 A_StartSound("explodium/deselect",CHAN_WEAPON,CHANF_OVERLAP);
XZWA T 2;
XZWA U 2 { player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftDeselect")); }
XZWA VW 2;
XZW2 B 6;
XZWA T 2 A_BumpView(.1,tics:2);
XZWA U 2
{
A_BumpView(.1,tics:2);
player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftDeselect"));
}
XZWA VW 2 A_BumpView(.1,tics:2);
XZW2 B -1 A_FullLower();
Stop;
LeftDeselect:
XZWB A 2;
XZWA PQRS 2;
XZWB B 2;
XZWA PQRS 2 A_BumpView(.1,tics:2);
XZWB B 0;
Stop;
Flash:
XZWZ A 2 Bright

View file

@ -124,8 +124,9 @@ Class CandyGun : SWWMWeapon
invoker.chambered = invoker.clipcount;
invoker.clipcount = max(invoker.clipcount-1,0);
A_StartSound("candygun/fire",CHAN_WEAPON,CHANF_OVERLAP);
A_QuakeEx(5.,5.,5.,5,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:2.);
A_BumpFOV(.94);
A_QuakeEx(6.3,6.3,6.3,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:2.);
A_BumpFOV(.88);
A_BumpView(-.35);
A_SWWMFlash();
SWWMHandler.DoFlash(self,Color(64,224,64,255),5);
A_AlertMonsters(swwm_uncapalert?0:9000);
@ -666,13 +667,11 @@ Class CandyGun : SWWMWeapon
return A_JumpIf((invoker.clipcount<=0)&&!invoker.chambered,"DeselectLast");
}
XZWA TUVW 2;
XZW2 B 2;
XZW2 B -1 A_FullLower();
Stop;
DeselectLast:
XZW9 X 2;
XZWE QRST 2;
XZWE U 2;
XZWE U -1 A_FullLower();
Stop;
Flash:

View file

@ -473,9 +473,10 @@ Class SilverBullet : SWWMWeapon
A_SWWMFlash();
A_StartSound("silverbullet/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.3);
A_AlertMonsters(swwm_uncapalert?0:16000);
A_QuakeEx(8.,8.,8.,10,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:2.);
A_QuakeEx(8.5,8.5,8.5,15,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:2.2);
double basezoom = invoker.zoomed?clamp(invoker.zoomlevel,1.,16.):1.;
A_BumpFOV(.76);
A_BumpView(invoker.proneme?-2:-8);
A_BumpFOV(.64);
A_PlayerFire();
SWWMHandler.DoFlash(self,Color(110,255,192,80),8);
let [x, y, z] = SWWMUtility.GetPlayerAxes(self);
@ -826,6 +827,8 @@ Class SilverBullet : SWWMWeapon
TNT1 A 12 A_StartSound("silverbullet/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
TNT1 A 10
{
A_QuakeEx(.5,.5,.5,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.4);
A_BumpFOV(.99);
A_StartSound("silverbullet/boltopen",CHAN_WEAPON,CHANF_OVERLAP);
if ( invoker.chambered )
{
@ -839,7 +842,12 @@ Class SilverBullet : SWWMWeapon
invoker.chambered = (invoker.clipcount>0);
invoker.clipcount = max(0,invoker.clipcount-1);
}
TNT1 A 2 A_StartSound("silverbullet/boltclose",CHAN_WEAPON,CHANF_OVERLAP);
TNT1 A 2
{
A_QuakeEx(1.2,1.2,1.2,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.65);
A_BumpFOV(.98);
A_StartSound("silverbullet/boltclose",CHAN_WEAPON,CHANF_OVERLAP);
}
TNT1 A 20 A_StartSound("silverbullet/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
Goto ZoomReady;
DoCock:
@ -848,6 +856,8 @@ Class SilverBullet : SWWMWeapon
XZW3 AB 2;
XZW3 C 2
{
A_QuakeEx(.5,.5,.5,6,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.4);
A_BumpFOV(.99);
A_StartSound("silverbullet/boltopen",CHAN_WEAPON,CHANF_OVERLAP);
if ( invoker.chambered )
{
@ -862,7 +872,12 @@ Class SilverBullet : SWWMWeapon
invoker.clipcount = max(0,invoker.clipcount-1);
}
XZW3 DEFG 2;
XZW3 H 2 A_StartSound("silverbullet/boltclose",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 H 2
{
A_QuakeEx(1.2,1.2,1.2,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.65);
A_BumpFOV(.98);
A_StartSound("silverbullet/boltclose",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW3 I 2 A_StartSound("silverbullet/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 JKLMNOPQR 2;
Goto Ready;
@ -961,7 +976,13 @@ Class SilverBullet : SWWMWeapon
A_ChangeModel("",1,"","",4,"models",String.Format("SilverbulletAmmo%s.png",(invoker.clipcount<=0)?"_Empty":""),CMDL_USESURFACESKIN,-1);
}
XZW4 DEFGHI 2;
XZW4 J 2 A_StartSound("silverbullet/magout",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 J 2
{
A_BumpView(-2);
A_BumpFOV(.92);
A_QuakeEx(1.8,1.8,1.8,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.8);
A_StartSound("silverbullet/magout",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW4 KLMN 2;
Goto Load;
Load:
@ -974,6 +995,9 @@ Class SilverBullet : SWWMWeapon
XZW4 S 2
{
A_LoadMag();
A_BumpView(-12);
A_BumpFOV(.89);
A_QuakeEx(2.6,2.6,2.6,12,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.2);
A_StartSound("silverbullet/magin",CHAN_WEAPON,CHANF_OVERLAP);
}
XZW4 T 2 A_StartSound("silverbullet/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
@ -1021,12 +1045,17 @@ Class SilverBullet : SWWMWeapon
A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
A_PlayerMelee();
}
XZW5 XYZ 3;
XZW6 A 1 A_Parry(9);
XZW6 BC 1;
XZW5 XYZ 3 A_BumpAngle(-1,3);
XZW6 A 1
{
A_BumpFOV(.94);
A_QuakeEx(1.6,1.6,1.6,8,0,15,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.65);
A_Parry(9);
}
XZW6 BC 1 A_BumpAngle(6);
XZW6 D 1 A_Melee(90,"demolitionist/whitl",1.6,2.,2.,MELEE_Wider);
XZW6 EF 1;
XZW6 GHI 2;
XZW6 EF 1 A_BumpAngle(4);
XZW6 GHI 2 A_BumpAngle(1,2);
XZW6 J 3 A_StartSound("silverbullet/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
XZW6 KLMNO 3;
XZW6 PQR 2;