Impact Hammer fully implemented. Began working on Chainsaw.
Tweaked the shake effect on all weapons. Covered up some seams on redeemer texture. Moved the model slightly to cover up a gap. Corrected the chainsaw and translocator HUD icons.
This commit is contained in:
parent
1ddda70712
commit
72eb6ca8d1
17 changed files with 254 additions and 21 deletions
|
|
@ -398,7 +398,7 @@ Class BioRifle : UTWeapon
|
|||
UTMainHandler.DoFlash(self,Color(48,0,255,0),1);
|
||||
A_AlertMonsters();
|
||||
if ( alt ) A_QuakeEx(1+0.5*invoker.charge,1+0.5*invoker.charge,1+0.5*invoker.charge,5+1.2*invoker.charge,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05+0.01*invoker.charge);
|
||||
else A_QuakeEx(1,1,1,5,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||
else A_QuakeEx(1,1,1,5,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||
Vector3 x, y, z;
|
||||
double a, s;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,20 @@
|
|||
Class UTChainsaw : UTWeapon replaces Chainsaw
|
||||
{
|
||||
double sawcnt;
|
||||
|
||||
action void A_SawHit()
|
||||
{
|
||||
A_QuakeEx(3,3,3,2,0,1,"",QF_RELATIVE,rollIntensity:0.15);
|
||||
invoker.sawcnt += 1./TICRATE;
|
||||
if ( invoker.sawcnt < 0.15 ) return;
|
||||
invoker.sawcnt = 0;
|
||||
invoker.FireEffect();
|
||||
}
|
||||
action void A_SawSwipe()
|
||||
{
|
||||
A_QuakeEx(3,3,3,3,0,1,"",QF_RELATIVE,rollIntensity:0.15);
|
||||
invoker.FireEffect();
|
||||
}
|
||||
Default
|
||||
{
|
||||
Tag "Chainsaw";
|
||||
|
|
@ -16,5 +31,75 @@ Class UTChainsaw : UTWeapon replaces Chainsaw
|
|||
Stop;
|
||||
CSWP B -1;
|
||||
Stop;
|
||||
Select:
|
||||
CSWS A 1 A_Raise(int.max);
|
||||
Wait;
|
||||
Ready:
|
||||
CSWS ABCDEFGHIJLMNO 1 A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE,rollIntensity:0.1);
|
||||
Idle:
|
||||
CSWI A 0 A_PlaySound("chainsaw/idle",CHAN_6,looping:true);
|
||||
CSWI ABCDEFGHIJ 1
|
||||
{
|
||||
A_WeaponReady();
|
||||
A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE,rollIntensity:0.1);
|
||||
}
|
||||
Goto Idle+1;
|
||||
Fire:
|
||||
CSWJ A 1 A_PlaySound("chainsaw/fire",CHAN_6,looping:true);
|
||||
CSWJ BCDEF 1 A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE,rollIntensity:0.1);
|
||||
Hold:
|
||||
CSWJ G 1 A_SawHit();
|
||||
CSWJ H 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ H 1 A_SawHit();
|
||||
CSWJ I 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ I 1 A_SawHit();
|
||||
CSWJ J 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ J 1 A_SawHit();
|
||||
CSWJ K 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ K 1 A_SawHit();
|
||||
CSWJ L 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ L 1 A_SawHit();
|
||||
CSWJ M 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ M 1 A_SawHit();
|
||||
CSWJ N 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ N 1 A_SawHit();
|
||||
CSWJ O 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ O 1 A_SawHit();
|
||||
CSWJ P 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ P 1 A_SawHit();
|
||||
CSWJ Q 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ Q 1 A_SawHit();
|
||||
CSWJ R 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ R 1 A_SawHit();
|
||||
CSWJ S 0 A_Refire(1);
|
||||
Goto Release;
|
||||
CSWJ S 1 A_SawHit();
|
||||
CSWJ G 0 A_Refire("Hold");
|
||||
Release:
|
||||
CSWJ FEDCBA 1 A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE,rollIntensity:0.1);
|
||||
Goto Idle;
|
||||
AltFire:
|
||||
CSWA A 0 A_PlaySound("chainsaw/fire",CHAN_6);
|
||||
CSWA ABCDEFG 2 A_QuakeEx(3,3,3,3,0,1,"",QF_RELATIVE,rollIntensity:0.15);
|
||||
CSWA H 2 A_SawSwipe();
|
||||
CSWA IJK 2 A_QuakeEx(3,3,3,3,0,1,"",QF_RELATIVE,rollIntensity:0.15);
|
||||
CSWA K 0 A_PlaySound("chainsaw/idle",CHAN_6,looping:true);
|
||||
Goto Ready;
|
||||
Deselect:
|
||||
CSWD A 0 A_PlaySound("chainsaw/lower",CHAN_6);
|
||||
CSWD ABCDEF 2;
|
||||
CSWD F 1 A_Lower(int.max);
|
||||
Wait;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -469,7 +469,7 @@ Class FlakCannon : UTWeapon
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(160,255,96,0),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(1,1,1,3,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||
A_QuakeEx(1,1,1,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||
Vector3 x, y, z;
|
||||
double a, s;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
|
|
@ -507,7 +507,7 @@ Class FlakCannon : UTWeapon
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(128,255,96,0),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(2,2,2,6,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
A_QuakeEx(2,2,2,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
Vector3 x, y, z;
|
||||
double a, s;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
|||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
d.HitActor.DamageMobj(invoker,self,60*realcharge,'impact');
|
||||
d.HitActor.vel += x*(1000/d.HitActor.mass)*realcharge;
|
||||
d.HitActor.vel = x*(1000/d.HitActor.mass)*realcharge;
|
||||
if ( d.HitActor.bNOBLOOD )
|
||||
{
|
||||
let p = Spawn("HammerImpact",d.HitLocation-d.HitDir*4);
|
||||
|
|
@ -81,7 +81,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
|||
}
|
||||
else if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
realcharge = max(1.0,invoker.chargesize);
|
||||
realcharge = max(1.0,realcharge);
|
||||
DamageMobj(invoker,self,24*realcharge,'impact'); // It's a flat damage of 36 on UT, but I think it's more fair for it to scale
|
||||
TraceBleed(24*realcharge,invoker);
|
||||
vel -= x*(1200/mass)*realcharge;
|
||||
|
|
@ -90,8 +90,8 @@ Class ImpactHammer : UTWeapon replaces Fist
|
|||
p.pitch = asin(-d.HitDir.z);
|
||||
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
|
||||
}
|
||||
A_QuakeEx(realcharge*4,realcharge*4,realcharge*4,12,0,96,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:realcharge*0.2);
|
||||
realcharge = max(1.0,invoker.chargesize);
|
||||
A_QuakeEx(realcharge*6,realcharge*6,realcharge*6,16,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:realcharge*0.2);
|
||||
realcharge = max(1.0,realcharge);
|
||||
int numpt = Random[Impact](20,40);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
|
|
@ -112,7 +112,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
|||
A_PlaySound("impact/fire",CHAN_WEAPON);
|
||||
invoker.FireEffect();
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(2,2,2,6,0,96,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
A_QuakeEx(2,2,2,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+3.0*y-4.0*z;
|
||||
|
|
@ -122,7 +122,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
|||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
d.HitActor.DamageMobj(invoker,self,20*dscale,'impact');
|
||||
d.HitActor.vel += x*(500/d.HitActor.mass)*dscale;
|
||||
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
||||
}
|
||||
else if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -348,6 +348,7 @@ Class PulseGun : UTWeapon
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(32,128,255,128),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = pos+(0,0,player.viewheight)+10.0*x+4.5*y-2.4*z;
|
||||
|
|
@ -383,7 +384,7 @@ Class PulseGun : UTWeapon
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(32,128,255,128),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(1,1,1,2,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||
A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05);
|
||||
A_Overlay(-2,"MuzzleFlash");
|
||||
A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
||||
A_OverlayRenderstyle(-2,STYLE_Add);
|
||||
|
|
|
|||
|
|
@ -791,7 +791,7 @@ Class ShockRifle : UTWeapon
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(128,128,0,255),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(3,3,3,4,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
A_QuakeEx(3,3,3,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+3.0*y-4.0*z;
|
||||
|
|
@ -810,7 +810,7 @@ Class ShockRifle : UTWeapon
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(128,128,0,255),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(3,3,3,8,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
A_QuakeEx(3,3,3,8,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+3.0*y-4.0*z;
|
||||
|
|
@ -859,7 +859,7 @@ Class ShockRifle : UTWeapon
|
|||
ASMA BCDEFGHIJ 2;
|
||||
Goto Idle;
|
||||
Deselect:
|
||||
ASMD ABCDEFG 1;
|
||||
ASMD ABCDEFG 2;
|
||||
ASMD G 1 A_Lower(int.max);
|
||||
Wait;
|
||||
Select:
|
||||
|
|
@ -900,7 +900,7 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(128,255,128,0),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(8,8,8,12,0,96,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
||||
A_QuakeEx(8,8,8,12,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+3.0*y-4.0*z;
|
||||
|
|
@ -919,7 +919,7 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(128,255,128,0),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(8,8,8,16,0,96,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
||||
A_QuakeEx(8,8,8,16,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+3.0*y-4.0*z;
|
||||
|
|
@ -968,7 +968,7 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
|||
ASMA BCDEFGHIJ 2;
|
||||
Goto Idle;
|
||||
Deselect:
|
||||
ASMD ABCDEFG 1;
|
||||
ASMD ABCDEFG 2;
|
||||
ASMD G 1 A_Lower(int.max);
|
||||
Wait;
|
||||
Select:
|
||||
|
|
|
|||
|
|
@ -522,7 +522,7 @@ Class WarheadLauncher : UTWeapon replaces BFG9000
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(128,255,128,128),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(6,6,6,20,0,100,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2);
|
||||
A_QuakeEx(6,6,6,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
vel -= x*10;
|
||||
|
|
@ -558,7 +558,7 @@ Class WarheadLauncher : UTWeapon replaces BFG9000
|
|||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(128,255,128,128),1);
|
||||
A_AlertMonsters();
|
||||
A_QuakeEx(6,6,6,20,0,100,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2);
|
||||
A_QuakeEx(6,6,6,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2);
|
||||
Vector3 x, y, z;
|
||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||
vel -= x*10;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue