Fancy FOV features (no more A_ZoomLevel hackery).
This commit is contained in:
parent
51365c5bf6
commit
8c978a9f25
15 changed files with 123 additions and 44 deletions
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r354 \cu(Fri 12 Mar 23:00:49 CET 2021)\c-";
|
||||
SWWM_SHORTVER="\cw0.9.11b-pre r354 \cu(2021-03-12 23:00:49)\c-";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r355 \cu(Sat 13 Mar 02:04:42 CET 2021)\c-";
|
||||
SWWM_SHORTVER="\cw0.9.11b-pre r355 \cu(2021-03-13 02:04:42)\c-";
|
||||
|
|
|
|||
|
|
@ -53,15 +53,13 @@ Class RefresherRegen : Powerup
|
|||
override void DoEffect()
|
||||
{
|
||||
Super.DoEffect();
|
||||
if ( Owner && (Owner.health > 0) && !((EffectTics-5)%175) )
|
||||
{
|
||||
if ( Owner.GiveBody(int(Strength),500) )
|
||||
{
|
||||
SWWMScoreObj.Spawn(int(Strength),Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),ST_Health);
|
||||
SWWMHandler.DoFlash(Owner,Color(32,224,128,255),10);
|
||||
Owner.A_StartSound("powerup/refresher",CHAN_ITEM,CHANF_LOCAL,.4);
|
||||
}
|
||||
}
|
||||
if ( !Owner || (Owner.health <= 0) || ((EffectTics-5)%175) ) return;
|
||||
if ( !Owner.GiveBody(int(Strength),500) ) return;
|
||||
SWWMScoreObj.Spawn(int(Strength),Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),ST_Health);
|
||||
SWWMHandler.DoFlash(Owner,Color(32,224,128,255),10);
|
||||
Owner.A_StartSound("powerup/refresher",CHAN_ITEM,CHANF_LOCAL,.4);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 0.99;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -191,6 +189,8 @@ Class RefresherItem : SWWMHealth
|
|||
if ( p ) p.EffectTics += p.default.EffectTics;
|
||||
else Owner.GiveInventory("RefresherRegen",1);
|
||||
SWWMHandler.DoFlash(Owner,Color(80,224,128,255),20);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 0.95;
|
||||
}
|
||||
override bool Use( bool pickup )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -65,6 +65,8 @@ Class GrilledCheeseSandwich : Inventory
|
|||
let s = Owner.FindInventory("GrilledCheeseSafeguard");
|
||||
if ( !s ) Owner.GiveInventory("GrilledCheeseSafeguard",1);
|
||||
else Powerup(s).EffectTics = Powerup(s).default.EffectTics;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= .87;
|
||||
}
|
||||
override bool Use( bool pickup )
|
||||
{
|
||||
|
|
@ -272,6 +274,8 @@ Class GhostPower : PowerInvisibility
|
|||
Super.InitEffect();
|
||||
if ( !Owner ) return;
|
||||
SWWMHandler.DoFlash(Owner,Color(96,224,192,255),20);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.04;
|
||||
DoEffect();
|
||||
}
|
||||
override void EndEffect()
|
||||
|
|
@ -281,6 +285,8 @@ Class GhostPower : PowerInvisibility
|
|||
Owner.bNOTARGET = false;
|
||||
Owner.A_StartSound("powerup/ghostend",CHAN_ITEMEXTRA);
|
||||
SWWMHandler.DoFlash(Owner,Color(96,224,192,255),20);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.02;
|
||||
if ( (EffectTics <= 0) && Owner && Owner.CheckLocalView() ) Console.Printf(StringTable.Localize("$D_GHOSTARTI"));
|
||||
}
|
||||
|
||||
|
|
@ -375,7 +381,12 @@ Class GhostArtifact : Inventory
|
|||
if ( pickup && !deathmatch ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
let g = GhostPower(Owner.FindInventory("GhostPower"));
|
||||
if ( g ) g.EffectTics += g.default.EffectTics;
|
||||
if ( g )
|
||||
{
|
||||
g.EffectTics += g.default.EffectTics;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.04;
|
||||
}
|
||||
else Owner.GiveInventory("GhostPower",1);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -468,6 +479,8 @@ Class GravityPower : Powerup
|
|||
DoEffect();
|
||||
if ( Owner.pos.z <= Owner.floorz )
|
||||
Owner.vel.z = 1;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.04;
|
||||
}
|
||||
override void EndEffect()
|
||||
{
|
||||
|
|
@ -480,6 +493,8 @@ Class GravityPower : Powerup
|
|||
if ( Owner.pos.z > Owner.floorz ) Owner.player.centering = true;
|
||||
}
|
||||
Owner.A_StartSound("powerup/gravityend",CHAN_ITEMEXTRA);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.02;
|
||||
if ( (EffectTics <= 0) && Owner && Owner.CheckLocalView() ) Console.Printf(StringTable.Localize("$D_GRAVITYS"));
|
||||
}
|
||||
|
||||
|
|
@ -515,7 +530,12 @@ Class GravitySuppressor : Inventory
|
|||
if ( pickup && !deathmatch ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
let g = GravityPower(Owner.FindInventory("GravityPower"));
|
||||
if ( g ) g.EffectTics += g.default.EffectTics;
|
||||
if ( g )
|
||||
{
|
||||
g.EffectTics += g.default.EffectTics;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.04;
|
||||
}
|
||||
else Owner.GiveInventory("GravityPower",1);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -654,6 +674,8 @@ Class InvinciballPower : Powerup
|
|||
l.master = self;
|
||||
lastpulse = max(lastpulse,gametic+35);
|
||||
SWWMHandler.DoFlash(Owner,Color(96,255,64,0),20);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.1;
|
||||
}
|
||||
|
||||
override void DoEffect()
|
||||
|
|
@ -671,6 +693,8 @@ Class InvinciballPower : Powerup
|
|||
if ( !Owner ) return;
|
||||
Owner.A_StartSound("powerup/invinciballend",CHAN_ITEMEXTRA);
|
||||
SWWMHandler.DoFlash(Owner,Color(96,255,64,0),20);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.05;
|
||||
if ( (EffectTics <= 0) && Owner && Owner.CheckLocalView() ) Console.Printf(StringTable.Localize("$D_INVINCIBALL"));
|
||||
}
|
||||
|
||||
|
|
@ -712,6 +736,8 @@ Class InvinciballPower : Powerup
|
|||
Owner.A_StartSound("powerup/invinciballhit",CHAN_POWERUP);
|
||||
lasteffect = level.maptime;
|
||||
lastpulse = max(lastpulse,gametic+20);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.05;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -748,6 +774,8 @@ Class FuckingInvinciball : Inventory
|
|||
i.EffectTics += i.default.EffectTics;
|
||||
i.lastpulse = max(i.lastpulse,gametic+35);
|
||||
SWWMHandler.DoFlash(Owner,Color(96,255,64,0),20);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.1;
|
||||
}
|
||||
else Owner.GiveInventory("InvinciballPower",1);
|
||||
return true;
|
||||
|
|
@ -900,6 +928,7 @@ Class RagekitPower : Powerup
|
|||
Owner.A_QuakeEx(8,8,8,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.);
|
||||
lasteffect = int.min;
|
||||
lastpulse = max(lastpulse,gametic+35);
|
||||
Demolitionist(Owner).lastbump *= .95;
|
||||
l = Spawn("RagekitLight",Owner.pos);
|
||||
l.target = Owner;
|
||||
l.master = self;
|
||||
|
|
@ -922,6 +951,7 @@ Class RagekitPower : Powerup
|
|||
lastrage = SWWMHandler.AddOneliner("ragekit",2,5)+40;
|
||||
Owner.A_QuakeEx(2,2,2,Random[Rage](1,2),0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.5);
|
||||
lastpulse = max(lastpulse,gametic+10);
|
||||
Demolitionist(Owner).lastbump *= .98;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -933,6 +963,7 @@ Class RagekitPower : Powerup
|
|||
SWWMHandler.DoFlash(Owner,Color(128,255,0,0),30);
|
||||
Owner.A_QuakeEx(4,4,4,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.);
|
||||
Owner.A_AlertMonsters(2000);
|
||||
Demolitionist(Owner).lastbump *= .9;
|
||||
if ( (EffectTics <= 0) && Owner && Owner.CheckLocalView() ) Console.Printf(StringTable.Localize("$D_RAGEKIT"));
|
||||
}
|
||||
|
||||
|
|
@ -972,6 +1003,7 @@ Class RagekitPower : Powerup
|
|||
Owner.A_StartSound("powerup/ragekithit",CHAN_POWERUP);
|
||||
lasteffect = level.maptime;
|
||||
lastpulse = max(lastpulse,gametic+35);
|
||||
Demolitionist(Owner).lastbump *= .9;
|
||||
}
|
||||
|
||||
override void AbsorbDamage( int damage, Name damageType, out int newdamage, Actor inflictor, Actor source, int flags )
|
||||
|
|
@ -1025,6 +1057,7 @@ Class Ragekit : Inventory
|
|||
SWWMHandler.DoFlash(Owner,Color(64,255,0,0),30);
|
||||
Owner.A_QuakeEx(8,8,8,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.);
|
||||
r.lastpulse = max(r.lastpulse,gametic+35);
|
||||
Demolitionist(Owner).lastbump *= .95;
|
||||
}
|
||||
else Owner.GiveInventory("RagekitPower",1);
|
||||
return true;
|
||||
|
|
@ -1093,6 +1126,8 @@ Class Omnisight : Inventory
|
|||
// automatically zoom out so the player can know how far this goes
|
||||
CVar.FindCVar('swwm_mm_zoom').SetFloat(2.);
|
||||
}
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 1.1;
|
||||
level.allmap = true;
|
||||
}
|
||||
// spread to all players
|
||||
|
|
@ -1109,6 +1144,8 @@ Class Omnisight : Inventory
|
|||
// automatically zoom out so the player can know how far this goes
|
||||
CVar.FindCVar('swwm_mm_zoom').SetFloat(2.);
|
||||
}
|
||||
if ( players[i].mo is 'Demolitionist' )
|
||||
Demolitionist(players[i].mo).lastbump *= 1.1;
|
||||
}
|
||||
// not used up, must be kept for the targetting features to work
|
||||
return false;
|
||||
|
|
@ -1932,12 +1969,16 @@ Class BarrierPower : PowerIronFeet
|
|||
l = Spawn("BarrierLight",Owner.pos);
|
||||
l.target = Owner;
|
||||
l.master = self;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 0.95;
|
||||
}
|
||||
override void EndEffect()
|
||||
{
|
||||
Super.EndEffect();
|
||||
if ( !Owner ) return;
|
||||
Owner.A_StartSound("powerup/barrierend",CHAN_ITEMEXTRA);
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 0.95;
|
||||
if ( (EffectTics <= 0) && Owner && Owner.CheckLocalView() ) Console.Printf(StringTable.Localize("$D_BARRIER"));
|
||||
}
|
||||
|
||||
|
|
@ -1963,7 +2004,12 @@ Class EBarrier : Inventory
|
|||
if ( pickup && !deathmatch ) return false;
|
||||
if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
let b = BarrierPower(Owner.FindInventory("BarrierPower"));
|
||||
if ( b ) b.EffectTics += b.default.EffectTics;
|
||||
if ( b )
|
||||
{
|
||||
b.EffectTics += b.default.EffectTics;
|
||||
if ( Owner is 'Demolitionist' )
|
||||
Demolitionist(Owner).lastbump *= 0.95;
|
||||
}
|
||||
else Owner.GiveInventory("BarrierPower",1);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ Class Demolitionist : PlayerPawn
|
|||
transient int revivefail;
|
||||
|
||||
transient int bumptic;
|
||||
transient double lastbump;
|
||||
|
||||
Actor selflight;
|
||||
Actor oldencroached;
|
||||
|
|
@ -591,6 +592,44 @@ Class Demolitionist : PlayerPawn
|
|||
A_SoundVolume(CHAN_AMBEXTRA,(players[consoleplayer].Camera==self)?1.:0.);
|
||||
lastunder = curunder;
|
||||
}
|
||||
override void CheckFOV()
|
||||
{
|
||||
if ( !player ) return;
|
||||
float desired = player.desiredfov;
|
||||
// adjust fov from weapon (abs due to special use of negative
|
||||
// to prevent it from scaling look sensitivity)
|
||||
if ( (player.playerstate != PST_DEAD) && player.readyweapon
|
||||
&& player.readyweapon.fovscale )
|
||||
desired *= abs(player.readyweapon.fovscale);
|
||||
// additional fov bump from various effects
|
||||
// akin to the old A_ZoomFactor trick, but not limited to weapons and can stack
|
||||
if ( lastbump <= 0. ) lastbump = 1.;
|
||||
if ( lastbump != 1. )
|
||||
{
|
||||
player.fov *= lastbump;
|
||||
lastbump = 1.;
|
||||
}
|
||||
// adjust fov from dashing
|
||||
double spd = vel.length();
|
||||
if ( spd > 10. )
|
||||
{
|
||||
Vector3 facedir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),sin(-pitch));
|
||||
if ( spd > 0. )
|
||||
{
|
||||
double rel = max(0,vel.unit() dot facedir);
|
||||
desired *= 1.+clamp(rel*(spd-10.),-80.,80.)*.002;
|
||||
}
|
||||
}
|
||||
if ( player.fov == desired ) return;
|
||||
// interpolate towards desired fov
|
||||
if ( abs(player.fov-desired) < .1 ) player.fov = desired;
|
||||
else
|
||||
{
|
||||
float zoom = max(.1,abs(player.fov-desired)*.35);
|
||||
if ( player.fov > desired ) player.fov -= zoom;
|
||||
else player.fov += zoom;
|
||||
}
|
||||
}
|
||||
override Vector2 BobWeapon( double ticfrac )
|
||||
{
|
||||
// non-mod weapons bob normally
|
||||
|
|
@ -962,6 +1001,7 @@ Class Demolitionist : PlayerPawn
|
|||
A_StartSound("demolitionist/bump",CHAN_DAMAGE,CHANF_OVERLAP);
|
||||
a.A_StartSound("demolitionist/bump",CHAN_DAMAGE,CHANF_OVERLAP);
|
||||
bumptic = gametic+int(20+spd/4.);
|
||||
lastbump *= .8;
|
||||
if ( (diff.z < a.height) && (lastvelz >= -25) && (a.bDONTTHRUST || a.bACTLIKEBRIDGE || (a.Mass >= maxmass) || (!a.bSHOOTABLE && !a.bPUSHABLE && (a.Health > 0))) && a.bSOLID && (dir dot dirto > .65) )
|
||||
{
|
||||
if ( bumped ) continue;
|
||||
|
|
@ -1077,6 +1117,7 @@ Class Demolitionist : PlayerPawn
|
|||
bumped = true;
|
||||
A_StartSound("demolitionist/bump",CHAN_DAMAGE,CHANF_OVERLAP);
|
||||
bumptic = gametic+int(20+spd/4.);
|
||||
lastbump *= .8;
|
||||
A_QuakeEx(8,8,8,16,0,128,"",QF_RELATIVE|QF_SCALEDOWN);
|
||||
A_AlertMonsters(swwm_uncapalert?0:800);
|
||||
vel *= .2;
|
||||
|
|
@ -1170,6 +1211,7 @@ Class Demolitionist : PlayerPawn
|
|||
bumped = true;
|
||||
A_StartSound("demolitionist/bump",CHAN_DAMAGE,CHANF_OVERLAP);
|
||||
bumptic = gametic+int(25+spd/4.);
|
||||
lastbump *= .8;
|
||||
A_QuakeEx(8,8,8,16,0,128,"",QF_RELATIVE|QF_SCALEDOWN);
|
||||
A_AlertMonsters(swwm_uncapalert?0:800);
|
||||
vel *= .2;
|
||||
|
|
|
|||
|
|
@ -120,6 +120,12 @@ Class SWWMWeapon : Weapon abstract
|
|||
return -1, 0;
|
||||
}
|
||||
|
||||
action void A_BumpFOV( double factor )
|
||||
{
|
||||
if ( !(self is 'Demolitionist') ) return;
|
||||
Demolitionist(self).lastbump *= factor;
|
||||
}
|
||||
|
||||
// subtracts given ammo from price, drops excess
|
||||
virtual bool PickupForAmmoSWWM( SWWMWeapon ownedWeapon )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -210,8 +210,7 @@ Class Hellblazer : SWWMWeapon
|
|||
A_AlertMonsters(swwm_uncapalert?0:bAlt?400:1200);
|
||||
int qstr = bAlt?4:5;
|
||||
A_QuakeEx(qstr,qstr,qstr,bAlt?4:12,0,8,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.12*qstr);
|
||||
A_ZoomFactor(bAlt?.96:.93,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(bAlt?.96:.93);
|
||||
A_PlayerFire();
|
||||
invoker.clipcount = max(0,invoker.clipcount-1);
|
||||
invoker.magstate[invoker.magpos] = true;
|
||||
|
|
|
|||
|
|
@ -458,8 +458,7 @@ Class Wallbuster : SWWMWeapon
|
|||
int qk = min(9,1+howmany/5);
|
||||
int ql = min(25,6+howmany/2);
|
||||
A_QuakeEx(qk,qk,qk,ql,0,8,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:qk*.15);
|
||||
A_ZoomFactor(1.-qk*.04,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(1.-qk*.04);
|
||||
A_AlertMonsters(swwm_uncapalert?0:alertness);
|
||||
A_PlayerFire();
|
||||
if ( redflashstr > 0 )
|
||||
|
|
|
|||
|
|
@ -107,8 +107,7 @@ Class Eviscerator : SWWMWeapon
|
|||
invoker.isfiring = true;
|
||||
A_StartSound("eviscerator/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
A_QuakeEx(6,6,6,3,0,10,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.5);
|
||||
A_ZoomFactor(.94,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.94);
|
||||
A_SWWMFlash();
|
||||
A_PlayerFire();
|
||||
SWWMHandler.DoFlash(self,Color(64,255,224,96),3);
|
||||
|
|
@ -178,8 +177,7 @@ Class Eviscerator : SWWMWeapon
|
|||
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,rollIntensity:.9);
|
||||
A_ZoomFactor(.91,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.91);
|
||||
A_SWWMFlash();
|
||||
A_PlayerFire();
|
||||
SWWMHandler.DoFlash(self,Color(16,255,224,96),3);
|
||||
|
|
|
|||
|
|
@ -108,8 +108,7 @@ Class Ynykron : SWWMWeapon
|
|||
}
|
||||
else A_AlertMonsters(); // full range alert
|
||||
A_QuakeEx(9,9,9,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:2.5);
|
||||
A_ZoomFactor(.7,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.7);
|
||||
A_PlayerFire();
|
||||
SWWMHandler.DoFlash(self,Color(120,255,255,255),30);
|
||||
A_Overlay(PSP_WEAPON+1,"FireSmoke");
|
||||
|
|
|
|||
|
|
@ -41,8 +41,7 @@ Class PusherWeapon : SWWMWeapon
|
|||
invoker.chargelevel = clamp(invoker.chargelevel+FRandom[Pusher](-.04,.08),.3,1.);
|
||||
A_QuakeEx(1,1,1,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.5);
|
||||
A_WeaponOffset(FRandom[Pusher](-1,1)*2,32+FRandom[Pusher](-1,1)*2);
|
||||
A_ZoomFactor(1.01,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(1.01);
|
||||
A_Recoil(-cos(pitch));
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);
|
||||
|
|
@ -118,8 +117,7 @@ Class PusherWeapon : SWWMWeapon
|
|||
A_StartSound("pusher/motorend",CHAN_WEAPONEXTRA,CHANF_DEFAULT,pitch:1.5);
|
||||
A_StartSound("pusher/stop",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
A_StartSound("pusher/altfire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
A_ZoomFactor(1.+invoker.chargelevel*.2,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(1.+invoker.chargelevel*.2);
|
||||
A_Recoil(-(2.+4.*invoker.chargelevel)*cos(pitch));
|
||||
A_QuakeEx(2+int(invoker.chargelevel*2),2+int(invoker.chargelevel*2),2+int(invoker.chargelevel*2),3+int(invoker.chargelevel*6),0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.3+invoker.chargelevel*.7);
|
||||
A_WeaponOffset(0,32);
|
||||
|
|
|
|||
|
|
@ -407,8 +407,7 @@ Class Spreadgun : SWWMWeapon
|
|||
A_StartSound(sounds[i],CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6);
|
||||
A_AlertMonsters(swwm_uncapalert?0:louds[i]);
|
||||
A_QuakeEx(quakes[i],quakes[i],quakes[i],9,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.2*quakes[i]);
|
||||
A_ZoomFactor(1.-quakes[i]*.04,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(1.-quakes[i]*.04);
|
||||
A_PlayerFire();
|
||||
SWWMHandler.DoFlash(self,cols[i],5);
|
||||
Vector3 x, y, z;
|
||||
|
|
|
|||
|
|
@ -91,8 +91,7 @@ Class Sparkster : SWWMWeapon
|
|||
// spark
|
||||
A_StartSound("biospark/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.7);
|
||||
A_QuakeEx(2,2,2,5,0,8,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.2);
|
||||
A_ZoomFactor(.96,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.96);
|
||||
A_SWWMFlash();
|
||||
SWWMHandler.DoFlash(self,Color(64,192,255,96),3);
|
||||
A_AlertMonsters(swwm_uncapalert?0:5000);
|
||||
|
|
@ -112,8 +111,7 @@ Class Sparkster : SWWMWeapon
|
|||
// beam
|
||||
A_StartSound("biospark/altfire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.8);
|
||||
A_QuakeEx(3,3,3,5,0,8,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.3);
|
||||
A_ZoomFactor(.95,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.95);
|
||||
A_SWWMFlash();
|
||||
SWWMHandler.DoFlash(self,Color(64,192,255,96),3);
|
||||
A_AlertMonsters(swwm_uncapalert?0:4000);
|
||||
|
|
@ -133,8 +131,7 @@ Class Sparkster : SWWMWeapon
|
|||
// big spark
|
||||
A_StartSound("biospark/thirdfire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:1.5);
|
||||
A_QuakeEx(5,5,5,10,0,8,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.6);
|
||||
A_ZoomFactor(.94,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.94);
|
||||
A_AlertMonsters(swwm_uncapalert?0:1200);
|
||||
A_PlayerFire();
|
||||
SWWMUtility.DoKnockback(self,-x,2500.);
|
||||
|
|
|
|||
|
|
@ -93,8 +93,7 @@ Class ExplodiumGun : SWWMWeapon
|
|||
invoker.clipcount = max(invoker.clipcount-1,0);
|
||||
A_StartSound("explodium/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
A_QuakeEx(5,5,5,3,0,10,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.5);
|
||||
A_ZoomFactor(.96,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.96);
|
||||
A_SWWMFlash();
|
||||
SWWMHandler.DoFlash(self,Color(64,255,224,64),3);
|
||||
A_AlertMonsters(swwm_uncapalert?0:5000);
|
||||
|
|
@ -533,8 +532,7 @@ Class DualExplodiumGun : SWWMWeapon
|
|||
}
|
||||
A_StartSound("explodium/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||
A_QuakeEx(5,5,5,3,0,10,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.5);
|
||||
A_ZoomFactor(.96,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.96);
|
||||
if ( side == 1 )
|
||||
A_SWWMFlash("Flash");
|
||||
else if ( side == -1 )
|
||||
|
|
|
|||
|
|
@ -115,8 +115,7 @@ Class CandyGun : SWWMWeapon
|
|||
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,rollIntensity:2.);
|
||||
A_ZoomFactor(.94,ZOOM_INSTANT);
|
||||
A_ZoomFactor(1.);
|
||||
A_BumpFOV(.94);
|
||||
A_SWWMFlash();
|
||||
SWWMHandler.DoFlash(self,Color(64,224,64,255),5);
|
||||
A_AlertMonsters(swwm_uncapalert?0:9000);
|
||||
|
|
|
|||
|
|
@ -593,8 +593,7 @@ Class SilverBullet : SWWMWeapon
|
|||
int str = invoker.fcbchambered?7:8;
|
||||
A_QuakeEx(str,str,str,10,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:str/4.);
|
||||
double basezoom = invoker.zoomed?clamp(invoker.zoomlevel,1.,16.):1.;
|
||||
A_ZoomFactor(basezoom*(invoker.fcbchambered?.8:.76),ZOOM_INSTANT);
|
||||
A_ZoomFactor(basezoom);
|
||||
A_BumpFOV(invoker.fcbchambered?.8:.76);
|
||||
A_PlayerFire();
|
||||
SWWMHandler.DoFlash(self,Color(110,255,192,80),8);
|
||||
Vector3 x, y, z;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue