From 2f6fdffb9aaefe20ddaa0ee0e6a471f6919f4540 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 3 Oct 2021 22:42:28 +0200 Subject: [PATCH] Trim beam length on impact for minimap. --- language.version | 4 ++-- zscript/weapons/swwm_deathlydeathcannon_fx.zsc | 5 +++++ zscript/weapons/swwm_shot_fx.zsc | 1 + zscript/weapons/swwm_sparkyboi_fx.zsc | 4 ++++ zscript/weapons/swwm_tastytreat_fx.zsc | 1 + 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/language.version b/language.version index fb5fcf6a2..202657cb9 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1.12 r1 \cu(Sun 3 Oct 22:31:00 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.1.12 r1 \cu(2021-10-03 22:31:00)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1.12 r2 \cu(Sun 3 Oct 22:42:28 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.1.12 r2 \cu(2021-10-03 22:42:28)\c-"; diff --git a/zscript/weapons/swwm_deathlydeathcannon_fx.zsc b/zscript/weapons/swwm_deathlydeathcannon_fx.zsc index f521cf587..3cbedc4b5 100644 --- a/zscript/weapons/swwm_deathlydeathcannon_fx.zsc +++ b/zscript/weapons/swwm_deathlydeathcannon_fx.zsc @@ -722,6 +722,7 @@ Class YnykronBeam : Actor { // goodbye nospread = true; + speed = t.Results.Distance; // shortens in minimap return; } if ( t.Results.HitType != TRACE_HitNone ) @@ -819,6 +820,7 @@ Class YnykronBeam : Actor YnykronShot(master).blastcount++; } nospread = true; + speed = t.Results.Distance; // shortens in minimap return; } if ( ((special1%256) < speed) && !Random[Ynykron](0,20) ) @@ -1646,6 +1648,7 @@ Class YnykronLightningArc : Actor } invoker.nextpos = t.Results.HitPos; bAMBUSH = true; + speed = t.Results.Distance; // shortens in minimap return; } invoker.nextpos = level.Vec3Offset(pos,x*speed); @@ -2729,6 +2732,7 @@ Class YnykronAltBeam : Actor { // goodbye nospread = true; + speed = t.Results.Distance; // shortens in minimap return; } if ( t.Results.HitType != TRACE_HitNone ) @@ -2756,6 +2760,7 @@ Class YnykronAltBeam : Actor b.angle = atan2(norm.y,norm.x); b.pitch = asin(-norm.z); nospread = true; + speed = t.Results.Distance; // shortens in minimap return; } if ( special1 >= 25600 ) diff --git a/zscript/weapons/swwm_shot_fx.zsc b/zscript/weapons/swwm_shot_fx.zsc index 4142d0188..1acf96275 100644 --- a/zscript/weapons/swwm_shot_fx.zsc +++ b/zscript/weapons/swwm_shot_fx.zsc @@ -535,6 +535,7 @@ Class SaltBeam : Actor i.special2 = Accuracy; i.args[0] = args[1]; } + speed = t.Results.Distance; // shortens in minimap return; } else if ( (args[0] > 20) && !Random[Spreadgun](0,800/args[0]) ) diff --git a/zscript/weapons/swwm_sparkyboi_fx.zsc b/zscript/weapons/swwm_sparkyboi_fx.zsc index 5938efe5a..03c904b07 100644 --- a/zscript/weapons/swwm_sparkyboi_fx.zsc +++ b/zscript/weapons/swwm_sparkyboi_fx.zsc @@ -1165,6 +1165,7 @@ Class BiosparkBeam : Actor if ( t.Results.HitType == TRACE_HasHitSky ) { bAMBUSH = true; + speed = t.Results.Distance; // shortens in minimap return; } if ( t.Results.HitType != TRACE_HitNone ) @@ -1175,6 +1176,7 @@ Class BiosparkBeam : Actor s.pitch = asin(-normal.z); bAMBUSH = true; if ( swwm_omnibust ) BusterWall.Bust(t.Results,GetMissileDamage(0,0),target,t.Results.HitVector,t.Results.HitPos.z); + speed = t.Results.Distance; // shortens in minimap return; } double closest = double.infinity; @@ -1506,9 +1508,11 @@ Class BiosparkArc : Actor normal *= 0; } invoker.nextpos = level.Vec3Offset(t.Results.HitPos,normal); + if ( t.Results.HitType != TRACE_HitNone ) speed = t.Results.Distance; // shortens in minimap if ( t.Results.HitType == TRACE_HasHitSky ) { bAMBUSH = true; + speed = t.Results.Distance; // shortens in minimap return; } double a = FRandom[Sparkster](0,360), s = FRandom[Sparkster](0.,.8); diff --git a/zscript/weapons/swwm_tastytreat_fx.zsc b/zscript/weapons/swwm_tastytreat_fx.zsc index 410822cb6..d35c9b8f0 100644 --- a/zscript/weapons/swwm_tastytreat_fx.zsc +++ b/zscript/weapons/swwm_tastytreat_fx.zsc @@ -136,6 +136,7 @@ Class CandyBeam : Actor t.Results.HitPos = level.Vec3Offset(pos,x*speed); normal *= 0; } + if ( t.Results.HitType != TRACE_HitNone ) speed = t.Results.Distance; // shortens in minimap double a = FRandom[Candy](0,360), s = FRandom[Candy](0.,.8); invoker.nextpos = level.Vec3Offset(t.Results.HitPos,normal); invoker.nextdir = (dir+cos(a)*y*s+sin(a)*z*s).unit();