diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 2dc73e09440..f9d06892425 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -594,6 +594,7 @@ Turf and target are seperate in case you want to teleport some distance from a t var/old_icon1 = T.icon var/old_overlays = T.overlays.Copy() var/old_underlays = T.underlays.Copy() + var/old_decals = T.decals?.Copy() if(platingRequired) if(istype(B, get_base_turf_by_area(B))) @@ -604,8 +605,10 @@ Turf and target are seperate in case you want to teleport some distance from a t X.set_dir(old_dir1) X.icon_state = old_icon_state1 X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi + X.decals = old_decals X.overlays = old_overlays X.underlays = old_underlays + X.update_icon() // necessary to update decals properly var/list/objs = new/list() var/list/newobjs = new/list() diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index b7d4763ef1d..c4c175de982 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -17,6 +17,7 @@ pry_mod = 0.5 base_type = /obj/machinery/door/window frame_type = /obj/structure/windoor_assembly + set_dir_on_update = FALSE // these can properly face all 4 directions! don't force us into just 2! var/base_state = "left" /obj/machinery/door/window/get_auto_access() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index adc95f1f1b7..a66c7356191 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -654,12 +654,6 @@ if(usr == loc) toggle_safety(usr) -/obj/item/gun/CtrlClick(var/mob/user) - if(loc == user) - toggle_safety(user) - return TRUE - . = ..() - /obj/item/gun/proc/safety() return has_safety && safety_state @@ -718,4 +712,16 @@ return FALSE if(get_active_hand() != autofiring || incapacitated()) return FALSE - return TRUE \ No newline at end of file + return TRUE + +/obj/item/gun/get_alt_interactions(mob/user) + . = ..() + LAZYADD(., /decl/interaction_handler/toggle_safety) + +/decl/interaction_handler/toggle_safety + name = "Toggle Gun Safety" + expected_target_type = /obj/item/gun + +/decl/interaction_handler/toggle_safety/invoked(atom/target, mob/user, obj/item/prop) + var/obj/item/gun/gun = target + gun.toggle_safety(user) diff --git a/code/modules/projectiles/guns/projectile/bolt_action.dm b/code/modules/projectiles/guns/projectile/bolt_action.dm index 52d46d77d45..0647f000429 100644 --- a/code/modules/projectiles/guns/projectile/bolt_action.dm +++ b/code/modules/projectiles/guns/projectile/bolt_action.dm @@ -11,7 +11,7 @@ handle_casings = HOLD_CASINGS load_method = SINGLE_CASING max_shells = 1 - ammo_type = /obj/item/ammo_casing/shell + ammo_type = /obj/item/ammo_casing/rifle one_hand_penalty = 2 load_sound = 'sound/weapons/guns/interaction/rifle_load.ogg' fire_delay = 8 @@ -49,6 +49,7 @@ unload_shell() else to_chat(user, "You work the bolt open.") + playsound(src.loc, 'sound/weapons/guns/interaction/rifle_boltback.ogg', 50, 1) else to_chat(user, "You work the bolt closed.") playsound(src.loc, 'sound/weapons/guns/interaction/rifle_boltforward.ogg', 50, 1) @@ -85,4 +86,5 @@ bulk = 8 scoped_accuracy = 8 //increased accuracy over the LWAP because only one shot scope_zoom = 2 - fire_delay = 12 \ No newline at end of file + fire_delay = 12 + ammo_type = /obj/item/ammo_casing/shell diff --git a/code/modules/reagents/reagent_containers/drinkingglass/shaker.dm b/code/modules/reagents/reagent_containers/drinkingglass/shaker.dm index e180625b9ea..6e3f14c984c 100644 --- a/code/modules/reagents/reagent_containers/drinkingglass/shaker.dm +++ b/code/modules/reagents/reagent_containers/drinkingglass/shaker.dm @@ -25,6 +25,18 @@ /obj/item/chems/drinks/glass2/fitnessflask/proteinshake name = "protein shake" +// This exists to let the name auto-set properly. +/decl/cocktail/proteinshake + name = "protein shake" + description = "A revolting slurry of protein and water, fortified with iron." + hidden_from_codex = TRUE + ratios = list( + /decl/material/liquid/nutriment = 2, + /decl/material/liquid/nutriment/protein = 1, + /decl/material/liquid/water = 3, + /decl/material/solid/metal/iron + ) + /obj/item/chems/drinks/glass2/fitnessflask/proteinshake/populate_reagents() reagents.add_reagent(/decl/material/liquid/nutriment, 30) reagents.add_reagent(/decl/material/solid/metal/iron, 10) diff --git a/icons/obj/guns/bolt_action.dmi b/icons/obj/guns/bolt_action.dmi index 75979dec624..54b224bd7ca 100644 Binary files a/icons/obj/guns/bolt_action.dmi and b/icons/obj/guns/bolt_action.dmi differ