From ab23a934fc92746225b61e29ca3b00a0991e8eae Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 5 Jan 2020 15:01:12 -0800 Subject: [PATCH 1/9] Update beams.dm --- code/modules/projectiles/projectile/beams.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index be73e22e6d..49c4beefab 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -117,8 +117,11 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser light_color = LIGHT_COLOR_GREEN -/obj/item/projectile/beam/emitter/singularity_pull() - return //don't want the emitters to miss +/obj/item/projectile/beam/emitter/hitscan + hitscan = TRUE + muzzle_effect_type = /obj/effect/temp_visual/impact_effect/emitter + tracer_effect_type = /obj/effect/temp_visual/tracer_effect/emitter + impact_effect_type = /obj/effect/temp_visual/impact_effect/emitter /obj/item/projectile/beam/lasertag name = "laser tag beam" @@ -207,4 +210,4 @@ . = ..() if(isopenturf(target) || istype(target, /turf/closed/indestructible))//shrunk floors wouldnt do anything except look weird, i-walls shouldnt be bypassable return - target.AddComponent(/datum/component/shrink, shrink_time) \ No newline at end of file + target.AddComponent(/datum/component/shrink, shrink_time) From 198b1d5bd4ee7d667d7ae1c04756d4de59329156 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 5 Jan 2020 15:01:58 -0800 Subject: [PATCH 2/9] Update emitter.dm --- code/modules/power/singularity/emitter.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 71a8565d26..1be201f2b8 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -30,7 +30,7 @@ var/locked = FALSE var/allow_switch_interact = TRUE - var/projectile_type = /obj/item/projectile/beam/emitter + var/projectile_type = /obj/item/projectile/beam/emitter/hitscan var/projectile_sound = 'sound/weapons/emitter.ogg' var/datum/effect_system/spark_spread/sparks From eea8d353b6d34301cb2865afee9496f73bbb8bc2 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 5 Jan 2020 15:03:14 -0800 Subject: [PATCH 3/9] Update tracer.dm --- .../objects/effects/temporary_visuals/projectiles/tracer.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm index 0cd4589d4c..bd2c6c6e87 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm @@ -70,3 +70,7 @@ /obj/effect/projectile/tracer/laser/wavemotion name = "particle trail" icon_state = "tracer_wavemotion" + +/obj/effect/projectile/tracer/laser/emitter + name = "emitter beam" + icon_state = "emitter" From 6e1e1aac3ecea55aaf0cc1329a6658c75cacd387 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 5 Jan 2020 15:03:42 -0800 Subject: [PATCH 4/9] Update impact.dm --- .../objects/effects/temporary_visuals/projectiles/impact.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm index 0360c4ccc2..a98c40d4fc 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm @@ -39,4 +39,8 @@ /obj/effect/projectile/impact/laser/wavemotion name = "particle impact" - icon_state = "impact_wavemotion" \ No newline at end of file + icon_state = "impact_wavemotion" + +/obj/effect/projectile/impact/laser/emitter + name = "emitter impact" + icon_state = "impact_emitter" From 07885a399a68ca21697a8c5666c077a7d4d7a55b Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 5 Jan 2020 15:04:13 -0800 Subject: [PATCH 5/9] Update muzzle.dm --- .../objects/effects/temporary_visuals/projectiles/muzzle.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm index cbd4b21d39..a7ff399734 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm @@ -31,4 +31,8 @@ /obj/effect/projectile/muzzle/laser/wavemotion name = "particle backblast" - icon_state = "muzzle_wavemotion" \ No newline at end of file + icon_state = "muzzle_wavemotion" + +/obj/effect/projectile/muzzle/laser/emitter + name = "emitter flash" + icon_state = "muzzle_emitter" From f26c02801a1f14a2dd4667160bebf2e66a4a711c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 5 Jan 2020 15:04:51 -0800 Subject: [PATCH 6/9] Update beams.dm --- code/modules/projectiles/projectile/beams.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 49c4beefab..0a2e44213b 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -119,9 +119,9 @@ /obj/item/projectile/beam/emitter/hitscan hitscan = TRUE - muzzle_effect_type = /obj/effect/temp_visual/impact_effect/emitter - tracer_effect_type = /obj/effect/temp_visual/tracer_effect/emitter - impact_effect_type = /obj/effect/temp_visual/impact_effect/emitter + muzzle_effect_type = /obj/effect/projectile/muzzle/laser/emitter + tracer_effect_type = /obj/effect/projectile/tracer/laser/emitter + impact_effect_type = /obj/effect/projectile/impact/laser/emitter /obj/item/projectile/beam/lasertag name = "laser tag beam" From aca8c33149cdd930567729faf851a2c9afb048c3 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 5 Jan 2020 15:08:12 -0800 Subject: [PATCH 7/9] Update beams.dm --- code/modules/projectiles/projectile/beams.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 0a2e44213b..1c5291732e 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -117,6 +117,9 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser light_color = LIGHT_COLOR_GREEN +/obj/item/projectile/beam/emitter/singularity_pull() + return + /obj/item/projectile/beam/emitter/hitscan hitscan = TRUE muzzle_effect_type = /obj/effect/projectile/muzzle/laser/emitter From 39461e2806a576ad91c7cf18b0cb12e6575c74f6 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 5 Jan 2020 15:16:04 -0800 Subject: [PATCH 8/9] Update beams.dm --- code/modules/projectiles/projectile/beams.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 1c5291732e..89a9079454 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -122,9 +122,10 @@ /obj/item/projectile/beam/emitter/hitscan hitscan = TRUE - muzzle_effect_type = /obj/effect/projectile/muzzle/laser/emitter - tracer_effect_type = /obj/effect/projectile/tracer/laser/emitter - impact_effect_type = /obj/effect/projectile/impact/laser/emitter + muzzle_type = /obj/effect/projectile/muzzle/laser/emitter + tracer_type = /obj/effect/projectile/tracer/laser/emitter + impact_type = /obj/effect/projectile/impact/laser/emitter + impact_effect_type = null /obj/item/projectile/beam/lasertag name = "laser tag beam" From ed5172f9ca776b5ba8755328e0d183946e06ad2d Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 20 Jan 2020 23:17:58 -0700 Subject: [PATCH 9/9] changes --- code/modules/projectiles/projectile.dm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index cc778bcf05..55a75e1688 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -57,6 +57,8 @@ var/muzzle_type var/impact_type + var/turf/last_angle_set_hitscan_store //last turf we stored a hitscan segment while changing angles. without this you'll have potentially hundreds of segments from a homing projectile or something. + //Fancy hitscan lighting effects! var/hitscan_light_intensity = 1.5 var/hitscan_light_range = 0.75 @@ -410,12 +412,16 @@ START_PROCESSING(SSprojectiles, src) pixel_move(1, FALSE) //move it now! -/obj/item/projectile/proc/setAngle(new_angle) //wrapper for overrides. +/obj/item/projectile/proc/setAngle(new_angle, hitscan_store_segment = TRUE) //wrapper for overrides. Angle = new_angle if(!nondirectional_sprite) var/matrix/M = new M.Turn(Angle) transform = M + if(fired && hitscan && trajectory && isloc(loc) && (loc != last_angle_set_hitscan_store)) + last_angle_set_hitscan_store = loc + var/datum/point/pcache = trajectory.copy_to() + store_hitscan_collision(pcache) if(trajectory) trajectory.set_angle(new_angle) return TRUE @@ -462,7 +468,7 @@ beam_segments[beam_index] = null //record start. /obj/item/projectile/proc/process_hitscan() - var/safety = range * 3 + var/safety = range * 10 record_hitscan_start(RETURN_POINT_VECTOR_INCREMENT(src, Angle, MUZZLE_EFFECT_PIXEL_INCREMENT, 1)) while(loc && !QDELETED(src)) if(paused) @@ -647,7 +653,7 @@ /obj/item/projectile/proc/cleanup_beam_segments() QDEL_LIST_ASSOC(beam_segments) beam_segments = list() - qdel(beam_index) + QDEL_NULL(beam_index) /obj/item/projectile/proc/finalize_hitscan_and_generate_tracers(impacting = TRUE) if(trajectory && beam_index)