Corrected thrust angle of all trace-based damages.
This commit is contained in:
parent
f5181637b5
commit
729563f8ae
6 changed files with 13 additions and 13 deletions
|
|
@ -68,7 +68,7 @@ Class UTChainsaw : UTWeapon
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Chainsaw](20,30);
|
int dmg = Random[Chainsaw](20,30);
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x));
|
||||||
d.HitActor.vel -= x*(500/d.HitActor.mass);
|
d.HitActor.vel -= x*(500/d.HitActor.mass);
|
||||||
vel += x*(100/mass);
|
vel += x*(100/mass);
|
||||||
if ( d.HitActor.player ) d.HitActor.A_QuakeEx(5,5,5,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
if ( d.HitActor.player ) d.HitActor.A_QuakeEx(5,5,5,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
||||||
|
|
@ -106,8 +106,8 @@ Class UTChainsaw : UTWeapon
|
||||||
{
|
{
|
||||||
int dmg = Random[Chainsaw](50,60);
|
int dmg = Random[Chainsaw](50,60);
|
||||||
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) )
|
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) )
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg*2,'Decapitated');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg*2,'Decapitated',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x));
|
||||||
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed');
|
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x));
|
||||||
d.HitActor.vel = -y*(1200/d.HitActor.mass);
|
d.HitActor.vel = -y*(1200/d.HitActor.mass);
|
||||||
vel += x*(100/mass);
|
vel += x*(100/mass);
|
||||||
if ( d.HitActor.player ) d.HitActor.A_QuakeEx(5,5,5,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
if ( d.HitActor.player ) d.HitActor.A_QuakeEx(5,5,5,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25);
|
||||||
|
|
|
||||||
|
|
@ -306,7 +306,7 @@ Class Enforcer : UTWeapon replaces Pistol
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Enforcer](15,20);
|
int dmg = Random[Enforcer](15,20);
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x));
|
||||||
if ( d.HitActor.bNOBLOOD )
|
if ( d.HitActor.bNOBLOOD )
|
||||||
{
|
{
|
||||||
let p = Spawn("BulletImpact",d.HitLocation);
|
let p = Spawn("BulletImpact",d.HitLocation);
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Impact](60,80)*realcharge;
|
int dmg = Random[Impact](60,80)*realcharge;
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
d.HitActor.vel = x*(1000/d.HitActor.mass)*realcharge;
|
d.HitActor.vel = x*(1000/d.HitActor.mass)*realcharge;
|
||||||
if ( d.HitActor.bNOBLOOD )
|
if ( d.HitActor.bNOBLOOD )
|
||||||
{
|
{
|
||||||
|
|
@ -94,7 +94,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
{
|
{
|
||||||
realcharge = max(1.0,realcharge);
|
realcharge = max(1.0,realcharge);
|
||||||
int dmg = Random[Impact](16,24)*realcharge; // It's a flat damage of 36 on UT, but I think it's more fair for it to scale
|
int dmg = Random[Impact](16,24)*realcharge; // It's a flat damage of 36 on UT, but I think it's more fair for it to scale
|
||||||
dmg = DamageMobj(invoker,self,dmg,'impact');
|
dmg = DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
TraceBleed(dmg,invoker);
|
TraceBleed(dmg,invoker);
|
||||||
vel -= x*(1200/mass)*realcharge;
|
vel -= x*(1200/mass)*realcharge;
|
||||||
let p = Spawn("HammerImpact",d.HitLocation-d.HitDir*4);
|
let p = Spawn("HammerImpact",d.HitLocation-d.HitDir*4);
|
||||||
|
|
@ -138,13 +138,13 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Impact](25,35)*dscale;
|
int dmg = Random[Impact](25,35)*dscale;
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
||||||
}
|
}
|
||||||
else if ( d.HitType != TRACE_HitNone )
|
else if ( d.HitType != TRACE_HitNone )
|
||||||
{
|
{
|
||||||
int dmg = Random[Impact](16,24)*dscale;
|
int dmg = Random[Impact](16,24)*dscale;
|
||||||
dmg = DamageMobj(invoker,self,dmg,'impact');
|
dmg = DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
vel -= x*(600/mass)*dscale;
|
vel -= x*(600/mass)*dscale;
|
||||||
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
|
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ Class Minigun : UTWeapon
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = Random[Minigun](12,18); // fun fact: the Minigun is one of the few weapons that has actual RNG damage in UT
|
int dmg = Random[Minigun](12,18); // fun fact: the Minigun is one of the few weapons that has actual RNG damage in UT
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x));
|
||||||
if ( d.HitActor.bNOBLOOD )
|
if ( d.HitActor.bNOBLOOD )
|
||||||
{
|
{
|
||||||
let p = Spawn("BulletImpact",d.HitLocation);
|
let p = Spawn("BulletImpact",d.HitLocation);
|
||||||
|
|
|
||||||
|
|
@ -339,7 +339,7 @@ Class ShockBeam : Actor
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
t.Results.HitActor.DamageMobj(self,target,Random[ASMD](35,50),'jolted');
|
t.Results.HitActor.DamageMobj(self,target,Random[ASMD](35,50),'jolted',DMG_USEANGLE,atan2(t.Results.HitVector.y,t.Results.HitVector.x));
|
||||||
let r = Spawn("ShockBeamRing",pos);
|
let r = Spawn("ShockBeamRing",pos);
|
||||||
r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x);
|
r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x);
|
||||||
r.pitch = asin(-t.Results.HitVector.z);
|
r.pitch = asin(-t.Results.HitVector.z);
|
||||||
|
|
@ -560,7 +560,7 @@ Class SuperShockBeam : Actor
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
t.Results.HitActor.DamageMobj(self,target,Random[ASMD](3500,5000),'joltedX');
|
t.Results.HitActor.DamageMobj(self,target,Random[ASMD](3500,5000),'joltedX',DMG_USEANGLE,atan2(t.Results.HitVector.y,t.Results.HitVector.x));
|
||||||
let r = Spawn("SuperShockBeamRing",pos);
|
let r = Spawn("SuperShockBeamRing",pos);
|
||||||
r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x);
|
r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x);
|
||||||
r.pitch = asin(-t.Results.HitVector.z);
|
r.pitch = asin(-t.Results.HitVector.z);
|
||||||
|
|
|
||||||
|
|
@ -89,8 +89,8 @@ Class SniperRifle : UTWeapon
|
||||||
{
|
{
|
||||||
int dmg = Random[Sniper](45,60);
|
int dmg = Random[Sniper](45,60);
|
||||||
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) )
|
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) )
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg+70,'Decapitated');
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg+70,'Decapitated',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x));
|
||||||
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot');
|
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x));
|
||||||
if ( d.HitActor.bNOBLOOD )
|
if ( d.HitActor.bNOBLOOD )
|
||||||
{
|
{
|
||||||
let p = Spawn("BulletImpact",d.HitLocation);
|
let p = Spawn("BulletImpact",d.HitLocation);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue