From fcbd8174e6f3a7b9ab8b5bd93c832190bd10d7be Mon Sep 17 00:00:00 2001 From: HMBGERDO <61080616+HMBGERDO@users.noreply.github.com> Date: Wed, 7 Jun 2023 21:08:25 +0200 Subject: [PATCH] Slowdown on pulling (#21056) * slowdown on pulling * slowdown only when pulling structure or machinery * moving speed modifier to /mob/living/carbon instead of all atoms * added pull_speed to /atom/movable, moved movement_delay proc to carbon/human * no-slowdown-trash-bin * Update code/game/atoms_movable.dm Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * removed pull_speed on /obj/item/storage/bag/trash, no need to set this * more 0 pull_speed objects * added gravity check, moved pull_speed to /obj --------- Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> --- code/game/gamemodes/nuclear/nuclearbomb.dm | 1 + code/game/machinery/machinery.dm | 1 + code/game/objects/objs.dm | 2 ++ code/game/objects/structures.dm | 1 + code/game/objects/structures/crates_lockers/closets.dm | 1 + code/game/objects/structures/engicart.dm | 1 + code/game/objects/structures/janicart.dm | 1 + code/game/objects/structures/stool_bed_chair_nest/bed.dm | 1 + code/game/objects/structures/stool_bed_chair_nest/chairs.dm | 1 + code/game/objects/structures/tables_racks.dm | 1 + code/modules/mob/living/carbon/human/human_movement.dm | 3 +++ code/modules/reagents/reagent_dispenser.dm | 4 ++++ code/modules/vehicle/ambulance.dm | 1 + 13 files changed, 19 insertions(+) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index a808bdbcf8c..40a23f1d45d 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -22,6 +22,7 @@ GLOBAL_VAR(bomb_set) anchored = TRUE power_state = NO_POWER_USE requires_power = FALSE + pull_speed = 0 /// Are our bolts *supposed* to be in the floor, may not actually cause anchoring if the bolts are cut var/extended = TRUE diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 9bba680e0e2..14d5de830c1 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -7,6 +7,7 @@ layer = BELOW_OBJ_LAYER armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, rad = 0, fire = 50, acid = 70) atom_say_verb = "beeps" + pull_speed = 0.5 var/stat = 0 /// How is this machine currently passively consuming power? diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 31257730660..276eb4030a2 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -32,6 +32,8 @@ var/suicidal_hands = FALSE // Does it requires you to hold it to commit suicide with it? /// Is it emagged or not? var/emagged = FALSE + /// slowndown on pulling by human. Bigger value = slower pulling + var/pull_speed = 0 /obj/New() ..() diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index c15a4e39bfc..e3b8b6e3a79 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -3,6 +3,7 @@ pressure_resistance = 8 max_integrity = 300 face_while_pulling = TRUE + pull_speed = 0.5 var/climbable var/mob/living/climber var/broken = FALSE diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index d7daa0c19e8..d8492657914 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -408,6 +408,7 @@ icon_state = "bluespace" open_door_sprite = "bluespace_door" storage_capacity = 60 + pull_speed = 0 var/materials = list(MAT_METAL = 5000, MAT_PLASMA = 2500, MAT_TITANIUM = 500, MAT_BLUESPACE = 500) /obj/structure/closet/bluespace/CheckExit(atom/movable/AM) diff --git a/code/game/objects/structures/engicart.dm b/code/game/objects/structures/engicart.dm index d545bd3190c..96dafc051ed 100644 --- a/code/game/objects/structures/engicart.dm +++ b/code/game/objects/structures/engicart.dm @@ -6,6 +6,7 @@ face_while_pulling = FALSE anchored = FALSE density = TRUE + pull_speed = 0 var/obj/item/stack/sheet/glass/myglass = null var/obj/item/stack/sheet/metal/mymetal = null var/obj/item/stack/sheet/plasteel/myplasteel = null diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index a132917b4e3..210027d7c72 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -9,6 +9,7 @@ density = TRUE face_while_pulling = FALSE container_type = OPENCONTAINER + pull_speed = 0 //copypaste sorry var/maximum_volume = 150 var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 3c88544bb88..ccc44638cb9 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -136,6 +136,7 @@ resistance_flags = NONE anchored = FALSE comfort = 1 + pull_speed = 0 var/icon_up = "up" var/icon_down = "down" var/folded = /obj/item/roller diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index a12662f9740..22ffce9e495 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -238,6 +238,7 @@ movable = TRUE item_chair = null buildstackamount = 5 + pull_speed = 0 /obj/structure/chair/comfy/shuttle name = "shuttle seat" diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index b33964cf8d2..e90ecfb0360 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -763,6 +763,7 @@ icon_state = "tray" buildstack = /obj/item/stack/sheet/mineral/titanium buildstackamount = 2 + pull_speed = 0 var/list/typecache_can_hold = list(/mob, /obj/item) var/list/held_items = list() diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 74e8261fa56..e83cf63db5c 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -3,6 +3,9 @@ . += ..() . += GLOB.configuration.movement.human_delay . += dna.species.movement_delay(src) + if(mob_has_gravity() && isobj(pulling)) + var/obj/pulled = pulling + . += pulled.pull_speed /mob/living/carbon/human/Process_Spacemove(movement_dir = 0) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 9cb7bce0f02..61e2d065d60 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -79,6 +79,7 @@ name = "water tank" desc = "A water tank." icon_state = "water" + pull_speed = 0 /obj/structure/reagent_dispensers/watertank/high name = "high-capacity water tank" @@ -93,6 +94,7 @@ icon_state = "oil" reagent_id = "oil" tank_volume = 3000 + pull_speed = 0 /obj/structure/reagent_dispensers/fueltank name = "fuel tank" @@ -101,6 +103,7 @@ reagent_id = "fuel" tank_volume = 4000 anchored = TRUE + pull_speed = 0 var/obj/item/assembly_holder/rig = null var/accepts_rig = 1 @@ -279,6 +282,7 @@ icon = 'icons/obj/nuclearbomb.dmi' icon_state = "nuclearbomb0" anchored = TRUE + pull_speed = 0 /obj/structure/reagent_dispensers/beerkeg/nuke/update_overlays() . = ..() diff --git a/code/modules/vehicle/ambulance.dm b/code/modules/vehicle/ambulance.dm index 3d30f9c4907..b1a9ee182ee 100644 --- a/code/modules/vehicle/ambulance.dm +++ b/code/modules/vehicle/ambulance.dm @@ -109,6 +109,7 @@ icon = 'icons/vehicles/CargoTrain.dmi' icon_state = "ambulance" anchored = FALSE + pull_speed = 0 /obj/structure/bed/amb_trolley/examine(mob/user) . = ..()