Pulling lockers, chairs, etc. now gives you a slowdown. (#9785)

This commit is contained in:
mikomyazaki
2020-08-28 19:46:03 +01:00
committed by GitHub
parent 5fba6ee1c1
commit 34c6b3ed87
10 changed files with 46 additions and 7 deletions

View File

@@ -81,6 +81,7 @@
var/max_cooling = 12 //in degrees per second - probably don't need to mess with heat capacity here
var/charge_consumption = 8.3 //charge per second at max_cooling
var/thermostat = T20C
slowdown = 0
// Examine to see tank pressure
/obj/structure/closet/airbubble/examine(mob/user)

View File

@@ -12,6 +12,8 @@
var/material/material
var/build_amt = 2 // used by some structures to determine into how many pieces they should disassemble into or be made with
var/slowdown = 0 //amount that pulling mobs have their movement delayed by
/obj/structure/Destroy()
if(parts)
new parts(loc)

View File

@@ -28,6 +28,8 @@
var/const/default_mob_size = 15
var/obj/item/closet_teleporter/linked_teleporter
slowdown = 5
/obj/structure/closet/LateInitialize()
if (opened) // if closed, any item at the crate's loc is put in the contents
return

View File

@@ -13,6 +13,8 @@
var/tablestatus = 0
pass_flags = PASSTABLE
slowdown = 0
/obj/structure/closet/crate/can_open()
if (tablestatus != -1)//Can't be opened while under a table

View File

@@ -30,6 +30,8 @@
var/makes_rolling_sound = TRUE
var/buckle_sound = 'sound/effects/buckle.ogg'
slowdown = 5
/obj/structure/bed/Initialize(mapload, var/new_material, var/new_padding_material)
. = ..()
color = null
@@ -213,6 +215,7 @@
var/obj/item/reagent_containers/beaker
var/iv_attached = 0
var/iv_stand = TRUE
slowdown = 0
/obj/structure/bed/roller/update_icon()
overlays.Cut()

View File

@@ -9,6 +9,8 @@
var/mob/living/pulling = null
var/bloodiness
slowdown = 0
/obj/structure/bed/chair/wheelchair/update_icon()
cut_overlays()
add_overlay(image(icon = 'icons/obj/furniture.dmi', icon_state = "w_overlay", layer = FLY_LAYER))

View File

@@ -4,11 +4,7 @@
if(species.slowdown)
tally = species.slowdown
if(ishuman(pulling))
var/mob/living/carbon/human/H = pulling
if(H.species.slowdown> species.slowdown)
tally = H.species.slowdown
tally += H.ClothesSlowdown()
tally += get_pulling_movement_delay()
if (istype(loc, /turf/space) || isopenturf(loc))
if(!(locate(/obj/structure/lattice, loc) || locate(/obj/structure/stairs, loc) || locate(/obj/structure/ladder, loc)))
@@ -176,3 +172,12 @@
/mob/living/carbon/human/proc/ClothesSlowdown()
for(var/obj/item/I in list(wear_suit, w_uniform, back, gloves, head, wear_mask, shoes, l_ear, r_ear, glasses, belt))
. += I.slowdown
/mob/living/carbon/human/get_pulling_movement_delay()
. = ..()
if(ishuman(pulling))
var/mob/living/carbon/human/H = pulling
if(H.species.slowdown > species.slowdown)
. += H.species.slowdown - species.slowdown
. += H.ClothesSlowdown()

View File

@@ -31,4 +31,14 @@
up_hint.icon_state = "uphint[(B ? !!B.is_hole : 0)]"
/mob/living/silicon/robot/movement_delay()
return speed
. = speed
. += get_pulling_movement_delay()
/mob/living/silicon/robot/get_pulling_movement_delay()
. = ..()
if(ishuman(pulling))
var/mob/living/carbon/human/H = pulling
if(H.species.slowdown > speed)
. += H.species.slowdown - speed
. += H.ClothesSlowdown()

View File

@@ -207,7 +207,13 @@
return 0
/mob/proc/movement_delay()
return 0
. = get_pulling_movement_delay()
/mob/proc/get_pulling_movement_delay()
. = 0
if(istype(pulling, /obj/structure))
var/obj/structure/P = pulling
. += P.slowdown
/mob/proc/Life()
return

View File

@@ -0,0 +1,6 @@
author: mikomyazaki
delete-after: True
changes:
- tweak: "Pulling structures, e.g. chairs, lockers will now cause some slowdown. To prevent people circumventing the slowdown from pulling a slow mob by putting them inside something first. Roller beds & Wheelchairs are exempt from this."