diff --git a/language.txt b/language.txt index 47b2543..0b65876 100644 --- a/language.txt +++ b/language.txt @@ -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_RAZORCLAW1 = "%k took a bite off %o with the Razorclaw."; O_RAZORCLAW2 = "%o was shredded into mincemeat by %k's Razorclaw."; -O_RAZORCLAWDECAP1 = "%k tore %o's head off with the Razorclaw."; -O_RAZORCLAWDECAP2 = "%o got %p head sliced off by %k's Razorclaw."; +O_RAZORCLAWDECAP = "%k tore %o's head off with the Razorclaw."; 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_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_RAZORCLAW1 = "%k mordisqueó a %o con la Garra Cortadora."; 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_RAZORCLAWDECAP2 = "%o fue decapitad@[ao_esp] por la Garra Cortadora de %k."; +O_RAZORCLAWDECAP = "%k le arrancó la cabeza a %o con la Garra Cortadora."; 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_QUADSHOT = "%o tragó un bocado de perdigones del Quadshot de %k."; diff --git a/zscript/bonesaw.zsc b/zscript/bonesaw.zsc index dc106e4..64acbb2 100644 --- a/zscript/bonesaw.zsc +++ b/zscript/bonesaw.zsc @@ -40,11 +40,10 @@ Class Bonesaw : UnrealWeapon } override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack ) { - if ( !bAltFire ) - return StringTable.Localize((mod=='Decapitated')?"$O_RAZORCLAWDECAP2":"$O_RAZORCLAW2"); - return StringTable.Localize((mod=='Decapitated')?"$O_RAZORCLAWDECAP1":"$O_RAZORCLAW1"); + if ( !bAltFire ) return StringTable.Localize("$O_RAZORCLAW2"); + return StringTable.Localize((mod=='Decapitated')?"$O_RAZORCLAWDECAP":"$O_RAZORCLAW1"); } - private action bool TryHit( double angle, int dmg ) + private action bool TryHit( double angle, int dmg, bool decap = false ) { FTranslatedLineTarget t; double slope = AimLineAttack(angle,DEFMELEERANGE,t,0.,ALF_CHECK3D); @@ -58,7 +57,7 @@ Class Bonesaw : UnrealWeapon if ( d.HitType == TRACE_HitActor ) { 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)); 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); @@ -127,7 +126,7 @@ Class Bonesaw : UnrealWeapon 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 {