diff --git a/zscript/chainsaw.zsc b/zscript/chainsaw.zsc index d603bbb..7a45b18 100644 --- a/zscript/chainsaw.zsc +++ b/zscript/chainsaw.zsc @@ -68,7 +68,7 @@ Class UTChainsaw : UTWeapon if ( d.HitType == TRACE_HitActor ) { 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); 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); @@ -106,8 +106,8 @@ Class UTChainsaw : UTWeapon { int dmg = Random[Chainsaw](50,60); if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) ) - dmg = d.HitActor.DamageMobj(invoker,self,dmg*2,'Decapitated'); - else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed'); + 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',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x)); d.HitActor.vel = -y*(1200/d.HitActor.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); diff --git a/zscript/enforcer.zsc b/zscript/enforcer.zsc index 4788a82..1edfa4c 100644 --- a/zscript/enforcer.zsc +++ b/zscript/enforcer.zsc @@ -306,7 +306,7 @@ Class Enforcer : UTWeapon replaces Pistol if ( d.HitType == TRACE_HitActor ) { 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 ) { let p = Spawn("BulletImpact",d.HitLocation); diff --git a/zscript/impacthammer.zsc b/zscript/impacthammer.zsc index 19e8dfc..d62782b 100644 --- a/zscript/impacthammer.zsc +++ b/zscript/impacthammer.zsc @@ -76,7 +76,7 @@ Class ImpactHammer : UTWeapon replaces Fist if ( d.HitType == TRACE_HitActor ) { 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; if ( d.HitActor.bNOBLOOD ) { @@ -94,7 +94,7 @@ Class ImpactHammer : UTWeapon replaces Fist { 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 - dmg = DamageMobj(invoker,self,dmg,'impact'); + dmg = DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS); TraceBleed(dmg,invoker); vel -= x*(1200/mass)*realcharge; let p = Spawn("HammerImpact",d.HitLocation-d.HitDir*4); @@ -138,13 +138,13 @@ Class ImpactHammer : UTWeapon replaces Fist if ( d.HitType == TRACE_HitActor ) { 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; } else if ( d.HitType != TRACE_HitNone ) { 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; if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4); } diff --git a/zscript/minigun.zsc b/zscript/minigun.zsc index 84c7b0b..7346cb0 100644 --- a/zscript/minigun.zsc +++ b/zscript/minigun.zsc @@ -123,7 +123,7 @@ Class Minigun : UTWeapon 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 - 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 ) { let p = Spawn("BulletImpact",d.HitLocation); diff --git a/zscript/shockrifle.zsc b/zscript/shockrifle.zsc index ec2b6ce..15d6685 100644 --- a/zscript/shockrifle.zsc +++ b/zscript/shockrifle.zsc @@ -339,7 +339,7 @@ Class ShockBeam : Actor } 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); r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x); r.pitch = asin(-t.Results.HitVector.z); @@ -560,7 +560,7 @@ Class SuperShockBeam : Actor } 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); r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x); r.pitch = asin(-t.Results.HitVector.z); diff --git a/zscript/sniperrifle.zsc b/zscript/sniperrifle.zsc index 848fc40..ef00727 100644 --- a/zscript/sniperrifle.zsc +++ b/zscript/sniperrifle.zsc @@ -89,8 +89,8 @@ Class SniperRifle : UTWeapon { int dmg = Random[Sniper](45,60); if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) ) - dmg = d.HitActor.DamageMobj(invoker,self,dmg+70,'Decapitated'); - else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot'); + 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',DMG_USEANGLE,atan2(d.HitDir.y,d.HitDir.x)); if ( d.HitActor.bNOBLOOD ) { let p = Spawn("BulletImpact",d.HitLocation);