Files
BatrachophrenoandGitHub af0312c7d4 Bugfix batch (Pesticide Edition) (#21556)
Fixes https://github.com/Aurorastation/Aurora.3/issues/18504
Fixes https://github.com/Aurorastation/Aurora.3/issues/21064
Fixes https://github.com/Aurorastation/Aurora.3/issues/21267
Fixes https://github.com/Aurorastation/Aurora.3/issues/21455
Fixes https://github.com/Aurorastation/Aurora.3/issues/21535

Miscellaneous bugfixes, code cleanup, etc. Smaller batches this time.

changes:
  - spellcheck: "Renames 'gibber' to 'autobutcher'."
  - code_imp: "Cleans up a lot of old autobutcher code."
- code_imp: "Simplifies and unifies a lot of circuit board naming code."
  - code_imp: "Updates various code comments to DMDocs format."
- balance: "Slightly increased damage of beating someone with a ladder."
- bugfix: "Fixes foreign speech displaying the translated versions in
langchat for non-fluent listeners."
- bugfix: "Fixes whispered speech langchat; whispers are now correctly
italicized."
- bugfix: "Fixes shouted speech langchat; shouts are now correctly
biggified."
  - bugfix: "Adds missing Omni Gas Mixer, Gas Meter options from RFD-P."
- bugfix: "Adds missing circuit boards for bioballistic delivery system,
lysis-isolation centrifuge, and autobutcher to allow for construction
and deconstruction."
- bugfix: "Fixes empty algae chips bag having description set for its
name."
- bugfix: "Adds fallback_specific_heat values to several reagents that
were missing them."
- bugfix: "Fixes antimateriel projectiles being erroneously
damage-capped when hitting walls."
- bugfix: "Fixes laser beam effects not using the base colors of their
beam VFX."
- qol: "Added helpful feedback hint to move closer when someone speaks
aloud within 4 tiles while you're in vacuum (as features go, this one
felt more like a bug to experience)."
  - qol: "Updated various examine hints."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-11-11 10:56:12 +00:00

115 lines
3.4 KiB
Plaintext

/proc/generate_tracer_between_points(datum/point/starting, datum/point/ending, beam_type, color, qdel_in = 5, light_range = 2, light_color_override, light_intensity = 1, instance_key) //Do not pass z-crossing points as that will not be properly (and likely will never be properly until it's absolutely needed) supported!
if(!istype(starting) || !istype(ending) || !ispath(beam_type))
return
var/datum/point/midpoint = point_midpoint_points(starting, ending)
var/obj/effect/projectile/tracer/PB = new beam_type
if(isnull(light_color_override))
if(isnull(PB.light_color))
light_color_override = color
else light_color_override = PB.light_color
PB.apply_vars(angle_between_points(starting, ending), midpoint.return_px(), midpoint.return_py(), color, pixel_length_between_points(starting, ending) / world.icon_size, midpoint.return_turf(), 0)
. = PB
if(light_range > 0 && light_intensity > 0)
var/list/turf/line = get_line(starting.return_turf(), ending.return_turf())
tracing_line:
for(var/i in line)
var/turf/T = i
for(var/obj/effect/projectile_lighting/PL in T)
if(PL.owner == instance_key)
continue tracing_line
QDEL_IN(new /obj/effect/projectile_lighting(T, light_color_override, light_range, light_intensity, instance_key), qdel_in > 0? qdel_in : 5)
line = null
if(qdel_in)
QDEL_IN(PB, qdel_in)
/obj/effect/projectile/tracer
name = "beam"
icon = 'icons/effects/projectiles/tracer.dmi'
/obj/effect/projectile/tracer/laser
name = "laser"
icon_state = "beam"
light_color = LIGHT_COLOR_RED
/obj/effect/projectile/tracer/laser/scc
icon_state = "beam_scc"
light_color = COLOR_INDIGO
/obj/effect/projectile/tracer/laser/blue
icon_state = "beam_blue"
/obj/effect/projectile/tracer/disabler
name = "disabler"
icon_state = "beam_omni"
light_color = LIGHT_COLOR_CYAN
/obj/effect/projectile/tracer/xray
name = "xray laser"
icon_state = "xray"
light_color = LIGHT_COLOR_GREEN
/obj/effect/projectile/tracer/pulse
name = "pulse laser"
icon_state = "u_laser"
light_color = LIGHT_COLOR_BLUE
/obj/effect/projectile/tracer/plasma_cutter
name = "plasma blast"
icon_state = "plasmacutter"
light_color = LIGHT_COLOR_CYAN
/obj/effect/projectile/tracer/stun
name = "stun beam"
icon_state = "stun"
light_color = LIGHT_COLOR_YELLOW
/obj/effect/projectile/tracer/heavy_laser
name = "heavy laser"
icon_state = "beam_heavy"
light_power = 3
light_color = LIGHT_COLOR_RED
/obj/effect/projectile/tracer/cult
name = "arcane beam"
icon_state = "cult"
light_color = LIGHT_COLOR_VIOLET
appearance_flags = NO_CLIENT_COLOR
/obj/effect/projectile/tracer/cult/heavy
name = "heavy arcane beam"
icon_state = "hcult"
light_power = 3
appearance_flags = NO_CLIENT_COLOR
/obj/effect/projectile/tracer/solar
name = "solar energy"
icon_state = "solar"
light_color = LIGHT_COLOR_FIRE
/obj/effect/projectile/tracer/eyelaser
icon_state = "eye"
light_color = LIGHT_COLOR_RED
/obj/effect/projectile/tracer/emitter
icon_state = "emitter"
light_color = COLOR_SPRING_GREEN
/obj/effect/projectile/tracer/tachyon
name = "particle beam"
icon_state = "invisible"
light_color = LIGHT_COLOR_VIOLET
/obj/effect/projectile/tracer/bfg
icon_state = "bfg"
light_color = LIGHT_COLOR_GREEN
/obj/effect/projectile/tracer/hegemony
name = "laser"
icon_state = "hegemony"
light_color = LIGHT_COLOR_ORANGE
/obj/effect/projectile/tracer/tesla
name = "lightning"
icon_state = "lightning"
light_color = LIGHT_COLOR_CYAN