diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index f658cafbeb..4523cc5b67 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -22,7 +22,10 @@
tiled_dirt = TRUE
/turf/open/floor/Initialize(mapload)
- broken_states = typelist("broken_states", broken_states)
+ if (!broken_states)
+ broken_states = typelist("broken_states", list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5"))
+ else
+ broken_states = typelist("broken_states", broken_states)
burnt_states = typelist("burnt_states", burnt_states)
if(!broken && broken_states && (icon_state in broken_states))
broken = TRUE
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 6020a0b945..dd2baa7db8 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -79,7 +79,7 @@
/obj/item/gun/energy/can_shoot()
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
- return cell.charge >= shot.e_cost
+ return !QDELETED(cell) ? (cell.charge >= shot.e_cost) : FALSE
/obj/item/gun/energy/recharge_newshot(no_cyborg_drain)
if (!ammo_type || !cell)
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 4d18fed803..2f9221e986 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -37,7 +37,7 @@
/obj/item/gun/energy/decloner/update_icon()
..()
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
- if(cell.charge > shot.e_cost)
+ if(!QDELETED(cell) && (cell.charge > shot.e_cost))
add_overlay("decloner_spin")
/obj/item/gun/energy/floragun
@@ -153,7 +153,7 @@
// Tool procs, in case plasma cutter is used as welder
/obj/item/gun/energy/plasmacutter/tool_use_check(mob/living/user, amount)
- if(cell.charge >= amount * 100)
+ if(!QDELETED(cell) && (cell.charge >= amount * 100))
return TRUE
to_chat(user, "You need more charge to complete this task!")
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index 0be09f94be..9a7e92b7e0 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -69,7 +69,6 @@
var/zooming_angle
var/current_zoom_x = 0
var/current_zoom_y = 0
- var/zoom_animating = 0
var/static/image/charged_overlay = image(icon = 'icons/obj/guns/energy.dmi', icon_state = "esniper_charged")
var/static/image/drained_overlay = image(icon = 'icons/obj/guns/energy.dmi', icon_state = "esniper_empty")
@@ -112,18 +111,6 @@
to_chat(owner, "You disable [src]'s zooming system.")
reset_zooming()
-/obj/item/gun/energy/beam_rifle/proc/smooth_zooming(delay_override = null)
- if(!check_user() || !zooming || zoom_lock == ZOOM_LOCK_OFF || zoom_lock == ZOOM_LOCK_CENTER_VIEW)
- return
- if(zoom_animating && delay_override != 0)
- return smooth_zooming(zoom_animating + delay_override) //Automatically compensate for ongoing zooming actions.
- var/total_time = SSfastprocess.wait
- if(delay_override)
- total_time = delay_override
- zoom_animating = total_time
- animate(current_user.client, pixel_x = current_zoom_x, pixel_y = current_zoom_y , total_time, SINE_EASING, ANIMATION_PARALLEL)
- zoom_animating = 0
-
/obj/item/gun/energy/beam_rifle/proc/set_autozoom_pixel_offsets_immediate(current_angle)
if(zoom_lock == ZOOM_LOCK_CENTER_VIEW || zoom_lock == ZOOM_LOCK_OFF)
return
@@ -136,7 +123,6 @@
current_user.client.change_view(world.view + zoom_target_view_increase)
zoom_current_view_increase = zoom_target_view_increase
set_autozoom_pixel_offsets_immediate(zooming_angle)
- smooth_zooming()
/obj/item/gun/energy/beam_rifle/proc/start_zooming()
if(zoom_lock == ZOOM_LOCK_OFF)
@@ -153,7 +139,6 @@
user = current_user
if(!user || !user.client)
return FALSE
- zoom_animating = 0
animate(user.client, pixel_x = 0, pixel_y = 0, 0, FALSE, LINEAR_EASING, ANIMATION_END_NOW)
zoom_current_view_increase = 0
user.client.change_view(CONFIG_GET(string/default_view))
@@ -164,7 +149,7 @@
/obj/item/gun/energy/beam_rifle/update_icon()
cut_overlays()
var/obj/item/ammo_casing/energy/primary_ammo = ammo_type[1]
- if(cell.charge > primary_ammo.e_cost)
+ if(!QDELETED(cell) && (cell.charge > primary_ammo.e_cost))
add_overlay(charged_overlay)
else
add_overlay(drained_overlay)
@@ -294,7 +279,6 @@
if(zoom_lock == ZOOM_LOCK_AUTOZOOM_FREEMOVE)
zooming_angle = lastangle
set_autozoom_pixel_offsets_immediate(zooming_angle)
- smooth_zooming(2)
return ..()
/obj/item/gun/energy/beam_rifle/onMouseDown(object, location, params, mob/mob)
@@ -582,4 +566,4 @@
/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/on_hit()
qdel(src)
- return FALSE
+ return FALSE
\ No newline at end of file