diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 3a53d963a2c..71f59dd570f 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -5405,7 +5405,7 @@
"bZW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bZX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bZY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/medical/paramedic)
-"bZZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/paramedic,/obj/item/weapon/key/ambulance_train{name = "spare ambulance key"},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic)
+"bZZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/paramedic,/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic)
"caa" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic)
"cab" = (/obj/machinery/light,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 2; name = "Paramedic APC"; pixel_y = -24},/obj/machinery/camera{c_tag = "Paramedic Bay"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic)
"cac" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 0e3e69fe274..0ed44c6aa10 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -81,10 +81,8 @@
return
last_move = direct
- src.move_speed = world.timeofday - src.l_move_time
- src.l_move_time = world.timeofday
-
-
+ src.move_speed = world.time - src.l_move_time
+ src.l_move_time = world.time
spawn(5) // Causes space drifting. /tg/station has no concept of speed, we just use 5
if(loc && direct && last_move == direct)
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index 50ffc340dbf..f824fa3a5fa 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -131,17 +131,12 @@
new /obj/item/clothing/head/soft/blue(src)
new /obj/item/clothing/gloves/color/latex(src)
new /obj/item/clothing/gloves/color/latex(src)
- new /obj/item/clothing/gloves/color/latex(src)
- new /obj/item/clothing/gloves/color/latex(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/head/soft/blue(src)
new /obj/item/clothing/head/soft/blue(src)
new /obj/item/clothing/suit/storage/paramedic(src)
new /obj/item/clothing/suit/storage/paramedic(src)
- new /obj/item/clothing/suit/storage/paramedic(src)
- new /obj/item/clothing/suit/storage/paramedic(src)
- new /obj/item/weapon/tank/emergency_oxygen/engi(src)
- new /obj/item/weapon/tank/emergency_oxygen/engi(src)
new /obj/item/weapon/tank/emergency_oxygen/engi(src)
new /obj/item/weapon/tank/emergency_oxygen/engi(src)
+ new /obj/item/key/ambulance(src)
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 198e5c8a042..b7f2f2d91bb 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -91,41 +91,38 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
//send this msg to all admins
var/admin_number_afk = 0
+ var/list/mentorholders = list()
var/list/modholders = list()
var/list/adminholders = list()
for(var/client/X in admins)
- if(check_rights(R_MOD|R_MENTOR, 0, X.mob))
- if(X.is_afk())
- admin_number_afk++
- modholders += X
if(check_rights(R_ADMIN, 0, X.mob))
if(X.is_afk())
admin_number_afk++
adminholders += X
+ continue
+ if(check_rights(R_MOD, 0, X.mob))
+ modholders += X
+ continue
+ if(check_rights(R_MENTOR, 0, X.mob))
+ mentorholders += X
+ continue
switch(selected_type)
if("Question")
- if(modholders.len)
- for(var/client/X in modholders)
- if(X.prefs.sound & SOUND_ADMINHELP)
- X << 'sound/effects/adminhelp.ogg'
- X << msg
- if(adminholders.len)
- for(var/client/X in adminholders)
- if(X.prefs.sound & SOUND_ADMINHELP)
- X << 'sound/effects/adminhelp.ogg'
- X << msg
+ for(var/client/X in mentorholders + modholders + adminholders)
+ if(X.prefs.sound & SOUND_ADMINHELP)
+ X << 'sound/effects/adminhelp.ogg'
+ X << msg
if("Player Complaint")
- if(adminholders.len)
- for(var/client/X in adminholders)
- if(X.prefs.sound & SOUND_ADMINHELP)
- X << 'sound/effects/adminhelp.ogg'
- X << msg
+ for(var/client/X in modholders + adminholders)
+ if(X.prefs.sound & SOUND_ADMINHELP)
+ X << 'sound/effects/adminhelp.ogg'
+ X << msg
//show it to the person adminhelping too
src << "[selected_type]: [original_msg]"
- var/admin_number_present = admins.len - admin_number_afk
+ var/admin_number_present = adminholders.len - admin_number_afk
log_admin("[selected_type]: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins.")
if(admin_number_present <= 0)
if(!admin_number_afk)
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index e4c97421fdb..f62186ba2f6 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -170,7 +170,7 @@
if(S.victim == mob)
return
- if(mob.stat==2) return
+ if(mob.stat==DEAD) return
// handle possible spirit movement
if(istype(mob,/mob/spirit))
@@ -234,6 +234,7 @@
return 0
move_delay = world.time//set move delay
+ mob.last_movement = world.time
mob.last_move_intent = world.time + 10
switch(mob.m_intent)
if("run")
@@ -286,10 +287,8 @@
else if(mob.confused)
step(mob, pick(cardinal))
- mob.last_movement = world.time
else
. = ..()
- mob.last_movement=world.time
for (var/obj/item/weapon/grab/G in mob)
if (G.state == GRAB_NECK)
diff --git a/code/modules/vehicle/train/train.dm b/code/modules/vehicle/train/train.dm
index cf318c04a64..33021d80e06 100644
--- a/code/modules/vehicle/train/train.dm
+++ b/code/modules/vehicle/train/train.dm
@@ -2,7 +2,7 @@
name = "train"
dir = 4
- move_delay = 1
+ move_delay = 2
health = 100
maxhealth = 100
diff --git a/code/modules/vehicle/train/trains/ambulance.dm b/code/modules/vehicle/train/trains/ambulance.dm
index 813a2a918aa..fea50fba521 100644
--- a/code/modules/vehicle/train/trains/ambulance.dm
+++ b/code/modules/vehicle/train/trains/ambulance.dm
@@ -13,14 +13,7 @@
var/car_limit = 3 //how many cars an engine can pull before performance degrades
active_engines = 1
- var/obj/item/weapon/key/ambulance_train/key
-
-/obj/item/weapon/key/ambulance_train
- name = "ambulance key"
- desc = "A keyring with a small steel key, and tag with a red cross on it."
- icon = 'icons/obj/vehicles.dmi'
- icon_state = "keydoc"
- w_class = 1
+ var/obj/item/key/ambulance/key
/obj/vehicle/train/ambulance/trolley
name = "ambulance train trolley"
@@ -56,7 +49,7 @@
..()
/obj/vehicle/train/ambulance/engine/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
- if(istype(W, /obj/item/weapon/key/ambulance_train))
+ if(istype(W, /obj/item/key/ambulance))
if(!key)
user.drop_item()
key = W
@@ -174,7 +167,6 @@
else
return ..()
-
/obj/vehicle/train/ambulance/engine/examine(mob/user)
if(..(user, 1))
user << "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition."
@@ -287,5 +279,5 @@
else
move_delay = max(0, (-car_limit * active_engines) + train_length - active_engines) //limits base overweight so you cant overspeed trains
move_delay *= (1 / max(1, active_engines)) * 2 //overweight penalty (scaled by the number of engines)
- move_delay += config.run_speed //base reference speed
+ move_delay += 1+config.run_speed //base reference speed
move_delay *= 1.05
diff --git a/code/world.dm b/code/world.dm
index 14b23b525b5..9062500b0d8 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -219,8 +219,8 @@ var/world_topic_spam_protect_time = world.timeofday
world << "Rebooting world immediately due to host request"
return ..(1)
var/delay
- if(time)
- delay = time
+ if(!isnull(time))
+ delay = max(0,time)
else
delay = ticker.restart_timeout
if(ticker.delay_end)