Disable decapitation with bonesaw primary fire, for balance.

This commit is contained in:
Marisa the Magician 2019-12-07 01:01:44 +01:00
commit 953e6d8748
2 changed files with 7 additions and 10 deletions

View file

@ -25,8 +25,7 @@ O_MINIGUN = "%k's Minigun turned %o into a leaky piece of meat.";
O_STUNNER = "%o couldn't stand the force from %k's Stunner."; O_STUNNER = "%o couldn't stand the force from %k's Stunner.";
O_RAZORCLAW1 = "%k took a bite off %o with the Razorclaw."; O_RAZORCLAW1 = "%k took a bite off %o with the Razorclaw.";
O_RAZORCLAW2 = "%o was shredded into mincemeat by %k's Razorclaw."; O_RAZORCLAW2 = "%o was shredded into mincemeat by %k's Razorclaw.";
O_RAZORCLAWDECAP1 = "%k tore %o's head off with the Razorclaw."; O_RAZORCLAWDECAP = "%k tore %o's head off with the Razorclaw.";
O_RAZORCLAWDECAP2 = "%o got %p head sliced off by %k's Razorclaw.";
O_PROTOMAG = "%k put a couple extra holes into %o with the Protomag."; O_PROTOMAG = "%k put a couple extra holes into %o with the Protomag.";
O_PROTOMAG2 = "%k put a couple extra holes into %o with the Dual Protomags."; O_PROTOMAG2 = "%k put a couple extra holes into %o with the Dual Protomags.";
O_QUADSHOT = "%o ate a mouthful of buckshot from %k's Quadshot."; O_QUADSHOT = "%o ate a mouthful of buckshot from %k's Quadshot.";
@ -323,8 +322,7 @@ O_RAZORJACK = "%k arrancó un trozo ensangrentado de %o con el Razorjack.";
O_STUNNER = "%o no pudo soportar la fuerza del Aturdidor de %k."; O_STUNNER = "%o no pudo soportar la fuerza del Aturdidor de %k.";
O_RAZORCLAW1 = "%k mordisqueó a %o con la Garra Cortadora."; O_RAZORCLAW1 = "%k mordisqueó a %o con la Garra Cortadora.";
O_RAZORCLAW2 = "%o fue hech@[ao_esp] picadillo por la Garra Cortadora de %k."; O_RAZORCLAW2 = "%o fue hech@[ao_esp] picadillo por la Garra Cortadora de %k.";
O_RAZORCLAWDECAP1 = "%k le arrancó la cabeza a %o con la Garra Cortadora."; O_RAZORCLAWDECAP = "%k le arrancó la cabeza a %o con la Garra Cortadora.";
O_RAZORCLAWDECAP2 = "%o fue decapitad@[ao_esp] por la Garra Cortadora de %k.";
O_PROTOMAG = "%k le hizo unos cuantos agujeros extra a %o con la Protoarma."; O_PROTOMAG = "%k le hizo unos cuantos agujeros extra a %o con la Protoarma.";
O_PROTOMAG2 = "%k le hizo unos cuantos agujeros extra a %o con las Dos Protoarmas."; O_PROTOMAG2 = "%k le hizo unos cuantos agujeros extra a %o con las Dos Protoarmas.";
O_QUADSHOT = "%o tragó un bocado de perdigones del Quadshot de %k."; O_QUADSHOT = "%o tragó un bocado de perdigones del Quadshot de %k.";

View file

@ -40,11 +40,10 @@ Class Bonesaw : UnrealWeapon
} }
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack ) override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
{ {
if ( !bAltFire ) if ( !bAltFire ) return StringTable.Localize("$O_RAZORCLAW2");
return StringTable.Localize((mod=='Decapitated')?"$O_RAZORCLAWDECAP2":"$O_RAZORCLAW2"); return StringTable.Localize((mod=='Decapitated')?"$O_RAZORCLAWDECAP":"$O_RAZORCLAW1");
return StringTable.Localize((mod=='Decapitated')?"$O_RAZORCLAWDECAP1":"$O_RAZORCLAW1");
} }
private action bool TryHit( double angle, int dmg ) private action bool TryHit( double angle, int dmg, bool decap = false )
{ {
FTranslatedLineTarget t; FTranslatedLineTarget t;
double slope = AimLineAttack(angle,DEFMELEERANGE,t,0.,ALF_CHECK3D); double slope = AimLineAttack(angle,DEFMELEERANGE,t,0.,ALF_CHECK3D);
@ -58,7 +57,7 @@ Class Bonesaw : UnrealWeapon
if ( d.HitType == TRACE_HitActor ) if ( d.HitType == TRACE_HitActor )
{ {
invoker.bFORCEPAIN = !Random[Bonesaw](0,d.HitActor.bBOSS?5:2); invoker.bFORCEPAIN = !Random[Bonesaw](0,d.HitActor.bBOSS?5:2);
if ( d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8) ) if ( decap && (d.HitLocation.z >= (d.HitActor.pos.z+d.HitActor.height*0.8)) )
dmg = d.HitActor.DamageMobj(invoker,self,dmg*2,'Decapitated',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x)); dmg = d.HitActor.DamageMobj(invoker,self,dmg*2,'Decapitated',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x));
else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x)); else dmg = d.HitActor.DamageMobj(invoker,self,dmg,'slashed',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x));
UTMainHandler.DoKnockback(d.HitActor,d.HitDir,-7000); UTMainHandler.DoKnockback(d.HitActor,d.HitDir,-7000);
@ -127,7 +126,7 @@ Class Bonesaw : UnrealWeapon
b.vel += vel*.5; b.vel += vel*.5;
} }
} }
for ( int i=0; i<8; i++ ) if ( TryHit(angle+i*(45./16),30) || TryHit(angle-i*(45./16),30) ) return; for ( int i=0; i<8; i++ ) if ( TryHit(angle+i*(45./16),30,true) || TryHit(angle-i*(45./16),30,true) ) return;
} }
Default Default
{ {