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