diff --git a/Scopes Files/PowerPlant_Alarm.ogg b/Scopes Files/PowerPlant_Alarm.ogg
new file mode 100644
index 00000000..382f2409
Binary files /dev/null and b/Scopes Files/PowerPlant_Alarm.ogg differ
diff --git a/Scopes Files/gravitygenerator.dm b/Scopes Files/gravitygenerator.dm
index e1a093ad..ffb004fc 100644
--- a/Scopes Files/gravitygenerator.dm
+++ b/Scopes Files/gravitygenerator.dm
@@ -21,7 +21,7 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi
/client/proc/cmd_dev_reset_gravity()
set category = "Debug"
set name = "Restore Default Gravity"
- set desc = "Resets all gravity on the entire server"
+ set desc = "Resets all gravity on the entire server(This spams Scopes like mad.)"
if(!check_rights(R_DEBUG|R_DEV)) return
@@ -36,6 +36,9 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi
src << "\red The game hasn't started yet!"
return
+ if(alert(usr, "Be sure to warn Scopes, Chris, and Skull. This could be very spammy for their logs", "Restore gravity", "No", "Yes") == "No")
+ return 0
+
world << "\red \b Resetting Gravity Simulation."
gravity_is_on = 1
spawn(10)
@@ -44,10 +47,12 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi
continue
A.has_gravity = 1
+ msg_scopes("Gravity reset in: [A.name]")
for(var/area/SubA in A.related)
SubA.has_gravity = 1
for(var/mob/living/carbon/human/M in SubA)
M:float(0)
+ msg_scopes("Did you enjoy that insane amount of things")
world << "\red Gravity Simulation reset."
feedback_add_details("admin_verb","RSG")
@@ -156,6 +161,7 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi
var/list/localareas = list()
var/effectiverange = 255 //Currently unused due to errors
var/round_start = 2 //To help stop a bug with round start
+ var/has_been_charged = 0
/obj/machinery/gravity_field_generator/main/Del() // If we somehow get deleted, remove all of our other parts.
log_debug("Gravity Generator Destroyed")
@@ -329,6 +335,8 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi
var/alert = 0
var/area/area = get_area(src)
if(new_state) // If we turned on
+ if(has_been_charged)
+ return
if(gravity_in_level() == 0)
alert = 1
gravity_is_on = 1
@@ -355,8 +363,10 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi
if(charging_state != POWER_IDLE)
if(charging_state == POWER_UP && charge_count >= 100)
set_state(1)
+ has_been_charged = 1
else if(charging_state == POWER_DOWN && charge_count <= 0)
set_state(0)
+ has_been_charged = 0
else
if(charging_state == POWER_UP)
charge_count += 2
diff --git a/Scopes Files/medical_alarm.dm b/Scopes Files/medical_alarm.dm
index b2f52964..5da73d3b 100644
--- a/Scopes Files/medical_alarm.dm
+++ b/Scopes Files/medical_alarm.dm
@@ -7,10 +7,11 @@
/obj/machinery/medical_alarm
name = "Medical Emergency button"
desc = "Medical Emergency button for when people are hurt"
- icon = 'Scopes Files/Alarms.dmi'
+ icon = 'Scopes Files/Alarms.dmi' //temp holder until it's done
icon_state = "eng_stand"
anchored = 1
var/on = 1
+ var/played_sound = 0
var/area/area = null
var/otherarea = null
//luminosity = 1
@@ -40,6 +41,7 @@
icon_state = "eng_unlock"
else
icon_state = "eng_stand"
+ ..()
/obj/machinery/medical_alarm/examine()
set src in oview(1)
@@ -50,7 +52,6 @@
src.attack_hand(user)
/obj/machinery/medical_alarm/attack_hand(mob/user)
-// var/last_icon = icon_state
icon_state = "eng_press"
add_fingerprint(usr)
// if(!allowed(user))
@@ -62,24 +63,27 @@
for(var/area/A in area.master.related)
A.medical_alarm = on
- spawn(10)
+ spawn(8)
A.updateicon()
for(var/obj/machinery/medical_alarm/L in A)
L.on = on
- spawn(10)
+ spawn(8)
L.updateicon()
L.activate()
- area.master.power_change()
-
/obj/machinery/medical_alarm/proc/make_noise()
for (var/mob/O in hearers(6, src.loc))
- O << "Impliment Sound"
+ if(!played_sound)
+ O.playsound_local(src, 'Scopes Files/PowerPlant_Alarm.ogg', 10, 1, 0.5, 1)
+ O << "The [src] beeps"
+ played_sound = 1
/obj/machinery/medical_alarm/proc/activate()
if(on)
make_noise()
spawn(100)
activate()
+ else
+ played_sound = 0
return
\ No newline at end of file
diff --git a/Scopes Files/space_cooler.dm b/Scopes Files/space_cooler.dm
new file mode 100644
index 00000000..a2eb1369
--- /dev/null
+++ b/Scopes Files/space_cooler.dm
@@ -0,0 +1,210 @@
+// Sooooo Yeah.
+//
+// This is reverse of the heater code.
+// Still want to make it use super cooled N2 instead of a power cell
+// Changes will come but wanted to get it in the DME quickly
+//
+// This does work if you want to use it. Just needs sprites.
+
+/obj/machinery/space_cooler
+ anchored = 0
+ density = 1
+ icon = 'icons/obj/atmos.dmi'
+ icon_state = "sheater0"
+ name = "space cooler"
+ desc = "Made by Space Amish using traditional space techniques, this cooler is guaranteed not to set the station on fire."
+ var/obj/item/weapon/cell/cell
+ var/on = 0
+ var/open = 0
+ var/set_temperature = 20 // in celcius, add T0C for kelvin
+ var/cooling_power = 40000
+
+ flags = FPRINT
+
+
+ New()
+ ..()
+ cell = new(src)
+ cell.charge = 1000
+ cell.maxcharge = 1000
+ update_icon()
+ return
+
+ update_icon()
+ overlays.Cut()
+ icon_state = "sheater[on]"
+ if(open)
+ overlays += "sheater-open"
+ return
+
+ examine()
+ set src in oview(12)
+ if (!( usr ))
+ return
+ usr << "This is \icon[src] \an [src.name]."
+ usr << src.desc
+
+ usr << "The cooler is [on ? "on" : "off"] and the hatch is [open ? "open" : "closed"]."
+ if(open)
+ usr << "The power cell is [cell ? "installed" : "missing"]."
+ else
+ usr << "The charge meter reads [cell ? round(cell.percent(),1) : 0]%"
+ return
+
+ emp_act(severity)
+ if(stat & (BROKEN|NOPOWER))
+ ..(severity)
+ return
+ if(cell)
+ cell.emp_act(severity)
+ ..(severity)
+
+ attackby(obj/item/I, mob/user)
+ if(istype(I, /obj/item/weapon/cell))
+ if(open)
+ if(cell)
+ user << "There is already a power cell inside."
+ return
+ else
+ // insert cell
+ var/obj/item/weapon/cell/C = usr.get_active_hand()
+ if(istype(C))
+ user.drop_item()
+ cell = C
+ C.loc = src
+ C.add_fingerprint(usr)
+
+ user.visible_message("\blue [user] inserts a power cell into [src].", "\blue You insert the power cell into [src].")
+ else
+ user << "The hatch must be open to insert a power cell."
+ return
+ else if(istype(I, /obj/item/weapon/screwdriver))
+ open = !open
+ user.visible_message("\blue [user] [open ? "opens" : "closes"] the hatch on the [src].", "\blue You [open ? "open" : "close"] the hatch on the [src].")
+ update_icon()
+ if(!open && user.machine == src)
+ user << browse(null, "window=spacecooler")
+ user.unset_machine()
+ else
+ ..()
+ return
+
+ attack_hand(mob/user as mob)
+ src.add_fingerprint(user)
+ interact(user)
+
+ interact(mob/user as mob)
+
+ if(open)
+
+ var/dat
+ dat = "Power cell: "
+ if(cell)
+ dat += "Installed
"
+ else
+ dat += "Removed
"
+
+ dat += "Power Level: [cell ? round(cell.percent(),1) : 0]%
"
+
+ dat += "Set Temperature: "
+
+ dat += "-"
+
+ dat += " [set_temperature]°C "
+ dat += "+
"
+
+ user.set_machine(src)
+ user << browse("
Space cooler Control Panel[dat]", "window=spacecooler")
+ onclose(user, "spacecooler")
+
+
+
+
+ else
+ on = !on
+ user.visible_message("\blue [user] switches [on ? "on" : "off"] the [src].","\blue You switch [on ? "on" : "off"] the [src].")
+ update_icon()
+ return
+
+
+ Topic(href, href_list)
+ if (usr.stat)
+ return
+ if ((in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon)))
+ usr.set_machine(src)
+
+ switch(href_list["op"])
+
+ if("temp")
+ var/value = text2num(href_list["val"])
+
+ // limit to 20-90 degC
+ set_temperature = dd_range(-50, 20, set_temperature + value)
+
+ if("cellremove")
+ if(open && cell && !usr.get_active_hand())
+ cell.updateicon()
+ usr.put_in_hands(cell)
+ cell.add_fingerprint(usr)
+ cell = null
+ usr.visible_message("\blue [usr] removes the power cell from \the [src].", "\blue You remove the power cell from \the [src].")
+
+
+ if("cellinstall")
+ if(open && !cell)
+ var/obj/item/weapon/cell/C = usr.get_active_hand()
+ if(istype(C))
+ usr.drop_item()
+ cell = C
+ C.loc = src
+ C.add_fingerprint(usr)
+
+ usr.visible_message("\blue [usr] inserts a power cell into \the [src].", "\blue You insert the power cell into \the [src].")
+
+ updateDialog()
+ else
+ usr << browse(null, "window=spacecooler")
+ usr.unset_machine()
+ return
+
+
+
+ process()
+ if(on)
+ if(cell && cell.charge > 0)
+
+ var/turf/simulated/L = loc
+ if(istype(L))
+ var/datum/gas_mixture/env = L.return_air()
+ if(env.temperature != set_temperature + T0C)
+
+ var/transfer_moles = 0.25 * env.total_moles()
+
+ var/datum/gas_mixture/removed = env.remove(transfer_moles)
+
+ //world << "got [transfer_moles] moles at [removed.temperature]"
+
+ if(removed)
+
+ var/heat_capacity = removed.heat_capacity()
+ //world << "heating ([heat_capacity])"
+ if(heat_capacity) // Added check to avoid divide by zero (oshi-) runtime errors -- TLE
+ if(removed.temperature > set_temperature + T0C)
+ removed.temperature = min(removed.temperature - cooling_power/heat_capacity, TCMB) // Added min() check to try and avoid wacky superheating issues in low gas scenarios -- TLE
+ else
+ removed.temperature = max(removed.temperature + cooling_power/heat_capacity, 1000)
+ cell.use(cooling_power/20000)
+
+ //world << "now at [removed.temperature]"
+
+ env.merge(removed)
+
+ //world << "turf now at [env.temperature]"
+
+
+ else
+ on = 0
+ update_icon()
+
+
+ return
\ No newline at end of file
diff --git a/aurora.dme b/aurora.dme
index b9456d4f..c5bbe042 100644
--- a/aurora.dme
+++ b/aurora.dme
@@ -1469,5 +1469,7 @@
#include "interface\skin.dmf"
#include "maps\tgstation2.dmm"
#include "Scopes Files\gravitygenerator.dm"
+#include "Scopes Files\medical_alarm.dm"
#include "Scopes Files\signal_modifier.dm"
+#include "Scopes Files\space_cooler.dm"
// END_INCLUDE
diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm
index 6d3b3185..207d51f2 100644
--- a/code/controllers/voting.dm
+++ b/code/controllers/voting.dm
@@ -238,7 +238,10 @@ datum/controller/vote
started_time = world.time
var/timedifference = round((world.time - last_vote_time))
var/timedifference_text
+ timedifference_text = time2text(timedifference, "hh:mm:ss")
+ msg_scopes("timedifference_text debug: [timedifference]")
timedifference_text = time2text(timedifference,"mm:ss")
+ msg_scopes("timedifference: [timedifference] timedifference_text: [timedifference_text] started_time: [started_time]")
for(var/client/C in admins)
C << "Time since last vote: [timedifference_text]"
var/text = "[capitalize(mode)] vote started by [initiator]."
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index bd76d17d..039c0827 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -1118,18 +1118,18 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/datum/supply_packs/atmos_freezer
name = "Gas Cooling Unit"
- contains = list(/obj/machinery/atmospherics/unary/cold_sink/freezer) //MAKE A FREEZER THAT IS, BY DEFAULT, UNANCHORED!
+ contains = list(/obj/machinery/atmospherics/unary/cold_sink/freezer/cargo)
cost = 50
- containertype = /obj/structure/closet/crate/secure/large //Test if this works ((should))
+ containertype = /obj/structure/closet/crate/secure/large
containername = "gas cooling unit crate"
access = access_atmospherics
group = "Engineering"
/datum/supply_packs/atmos_heater
name = "Gas Heating Unit"
- contains = list(/obj/machinery/atmospherics/unary/heat_reservoir/heater) //MAKE A COOLER THAT IS, BY DEFAULT, UNANCHORED!
+ contains = list(/obj/machinery/atmospherics/unary/heat_reservoir/heater/cargo)
cost = 50
- containertype = /obj/structure/closet/crate/secure/large //Test if this works ((should))
+ containertype = /obj/structure/closet/crate/secure/large
containername = "gas heating unit crate"
access = access_atmospherics
group = "Engineering"
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index a36b569d..07448e83 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -98,6 +98,7 @@
if (A)
A.meteorhit(src)
+ message_admins("Meteor hit [A] at [src.x], [src.y], [src.z]([src ? "JMP" : "null"])" , 0)
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
if (--src.hits <= 0)
diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm
index 504536b4..1f1d83fb 100644
--- a/code/game/machinery/Freezer.dm
+++ b/code/game/machinery/Freezer.dm
@@ -3,6 +3,7 @@
icon = 'icons/obj/Cryogenic2.dmi'
icon_state = "freezer_0"
density = 1
+ var/setup = 0
anchored = 1.0
@@ -11,7 +12,12 @@
/obj/machinery/atmospherics/unary/cold_sink/freezer/New()
..()
initialize_directions = dir
- anchored = 0
+ anchored = 1
+
+/obj/machinery/atmospherics/unary/cold_sink/freezer/cargo/New()
+ ..()
+ spawn(1)
+ anchored = 0
/obj/machinery/atmospherics/unary/cold_sink/freezer/initialize()
if(node) return
@@ -23,6 +29,7 @@
node = target
break
+ setup = 1
update_icon()
@@ -113,6 +120,8 @@
user.visible_message("[user.name] secures [src.name] to the floor.", "You secure [src.name] to the floor.", "You hear a ratchet")
anchored = 1
initialize_directions = dir
+ if(!setup)
+ initialize()
if(1)
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
spawn(10)
@@ -125,6 +134,7 @@
icon = 'icons/obj/Cryogenic2.dmi'
icon_state = "freezer_0"
density = 1
+ var/setup = 0
anchored = 1.0
@@ -133,7 +143,12 @@
/obj/machinery/atmospherics/unary/heat_reservoir/heater/New()
..()
initialize_directions = dir
- anchored = 0
+ anchored = 1
+
+/obj/machinery/atmospherics/unary/heat_reservoir/heater/cargo/New()
+ ..()
+ spawn(1)
+ anchored = 0
/obj/machinery/atmospherics/unary/heat_reservoir/heater/initialize()
if(node) return
@@ -145,6 +160,7 @@
node = target
break
+ setup = 1
update_icon()
@@ -233,6 +249,8 @@
user.visible_message("[user.name] secures [src.name] to the floor.", "You secure [src.name] to the floor.", "You hear a ratchet")
anchored = 1
initialize_directions = dir
+ if(!setup)
+ initialize()
if(1)
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
spawn(10)
diff --git a/code/game/machinery/kitchen/deep_fryer.dm b/code/game/machinery/kitchen/deep_fryer.dm
index 84e0365e..858dbe1f 100644
--- a/code/game/machinery/kitchen/deep_fryer.dm
+++ b/code/game/machinery/kitchen/deep_fryer.dm
@@ -18,8 +18,39 @@
/obj/machinery/deepfryer/attackby(obj/item/I, mob/user)
if(on)
- user << "[src] is still active!"
- return
+ var/obj/item/weapon/grab/G = I
+ if(istype(G)) // handle grabbed mob
+ if(ismob(G.affecting))
+ var/mob/living/GM = G.affecting
+ for (var/mob/V in viewers(usr))
+ V.show_message("[usr] starts pushing [GM.name] into the fryer.", 3)
+
+ if(do_after(usr, 20))
+ var/body_part = fry_mob_by_limb(GM, user.zone_sel.selecting)
+ if(!body_part) //If you fry a valid part this will be set
+ for (var/mob/V in viewers(usr))
+ if(GM.sleeping||GM.resting)
+ V.show_message("[GM.name] is to much of a dead weight to be place in the fryer")
+ else
+ V.show_message("[GM.name] breaks free.", 3)
+ return
+
+ for (var/mob/C in viewers(src))
+ C.show_message("\red [GM.name]'s [body_part] has been placed in the [src] by [user].", 3)
+
+ del(G)
+ usr.attack_log += text("\[[time_stamp()]\] Has placed [GM.name] ([GM.ckey]) in in the fryer.")
+ GM.attack_log += text("\[[time_stamp()]\] Has been fried by [usr.name] ([usr.ckey])")
+ msg_admin_attack("[usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a fryer. (JMP)")
+ else
+ for (var/mob/V in viewers(usr))
+ V.show_message("[usr] broke free")
+ return
+
+ else
+ user << "[src] is still active!"
+ return
+
if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks/))
user << "Budget cuts won't let you put that in there."
return
@@ -27,31 +58,51 @@
user << "You cannot doublefry."
return
else
- user << "You put [I] into [src]."
- on = TRUE
- user.drop_item()
- frying = I
- frying.loc = src
- icon_state = "fryer_on"
- sleep(200)
-
- if(frying && frying.loc == src)
- var/obj/item/weapon/reagent_containers/food/snacks/deepfryholder/S = new(get_turf(src))
- if(istype(frying, /obj/item/weapon/reagent_containers/))
- var/obj/item/weapon/reagent_containers/food = frying
- food.reagents.trans_to(S, food.reagents.total_volume)
- S.color = "#FFAD33"
- S.icon = frying.icon
- S.overlays = I.overlays
- S.icon_state = frying.icon_state
- S.name = "deep fried [frying.name]"
- S.desc = I.desc
- frying.loc = S //this might be a bad idea.
-
- icon_state = "fryer_off"
- on = FALSE
- playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
+ fry_food(I, user)
+/obj/machinery/deepfryer/proc/fry_mob_by_limb(var/mob/living/M, var/limb)
+ switch(limb)
+ if("head")
+ M.apply_damage(40, BURN, limb)
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your head."
+ return "head"
+ if("l_leg")
+ M.apply_damage(20, BURN, limb)
+ M.apply_damage(30, BURN, "l_foot")
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your left leg and foot."
+ return "left leg"
+ if("l_foot")
+ M.apply_damage(20, BURN, limb)
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your left foot."
+ return "left foot"
+ if("r_leg")
+ M.apply_damage(20, BURN, limb)
+ M.apply_damage(30, BURN, "r_foot")
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your right leg and foot."
+ return "right leg"
+ if("r_foot")
+ M.apply_damage(20, BURN, limb)
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your right foot."
+ return "right foot"
+ if("l_arm")
+ M.apply_damage(20, BURN, limb)
+ M.apply_damage(30, BURN, "l_hand")
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your left arm and hand."
+ return "left arm"
+ if("l_hand")
+ M.apply_damage(20, BURN, limb)
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your left hand."
+ return "left hand"
+ if("r_arm")
+ M.apply_damage(20, BURN, limb)
+ M.apply_damage(30, BURN, "r_hand")
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your right arm and hand."
+ return "right arm"
+ if("r_hand")
+ M.apply_damage(20, BURN, limb)
+ M << "\red Your thoughts are overwritten by the pain, as seering hot oil encompasses your right hand."
+ return "right hand"
+ return null
/obj/machinery/deepfryer/attack_hand(mob/user)
if(on && frying)
@@ -59,4 +110,31 @@
user.put_in_hands(frying)
frying = null
return
- ..()
\ No newline at end of file
+ ..()
+
+/obj/machinery/deepfryer/proc/fry_food(var/obj/I, var/mob/user)
+ user << "You put [I] into [src]."
+ on = TRUE
+ user.drop_item()
+ frying = I
+ frying.loc = src
+ icon_state = "fryer_on"
+ sleep(200)
+
+ if(frying && frying.loc == src)
+ var/obj/item/weapon/reagent_containers/food/snacks/deepfryholder/S = new(get_turf(src))
+ if(istype(frying, /obj/item/weapon/reagent_containers/))
+ var/obj/item/weapon/reagent_containers/food = frying
+ food.reagents.trans_to(S, food.reagents.total_volume)
+ S.color = "#FFAD33"
+ S.icon = frying.icon
+ S.overlays = I.overlays
+ S.icon_state = frying.icon_state
+ S.name = "deep fried [frying.name]"
+ S.desc = I.desc
+ frying.loc = S //this might be a bad idea.
+
+ icon_state = "fryer_off"
+ on = FALSE
+ playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
+ return
\ No newline at end of file
diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm
index a598c02c..cbea8c1f 100644
--- a/code/modules/client/preferences_gear.dm
+++ b/code/modules/client/preferences_gear.dm
@@ -60,79 +60,79 @@ proc/populate_gear_list()
display_name = "hair flower pin"
path = /obj/item/clothing/head/hairflower
cost = 2
- slot = slot_head
+// slot = slot_head
/datum/gear/bandana
display_name = "pirate bandana"
path = /obj/item/clothing/head/bandana
cost = 3
- slot = slot_head
+// slot = slot_head
/datum/gear/overalls
display_name = "overalls"
path = /obj/item/clothing/suit/apron/overalls
cost = 2
- slot = slot_wear_suit
+// slot = slot_wear_suit
/datum/gear/wcoat
display_name = "waistcoat"
path = /obj/item/clothing/suit/wcoat
cost = 2
- slot = slot_wear_suit
+// slot = slot_wear_suit
/datum/gear/prescription
display_name = "prescription sunglasses"
path = /obj/item/clothing/glasses/sunglasses/prescription
cost = 3
- slot = slot_glasses
+// slot = slot_glasses
/datum/gear/eyepatch
display_name = "eyepatch"
path = /obj/item/clothing/glasses/eyepatch
cost = 3
- slot = slot_glasses
+// slot = slot_glasses
/datum/gear/flatcap
display_name = "flat cap"
path = /obj/item/clothing/head/flatcap
cost = 2
- slot = slot_head
+// slot = slot_head
/datum/gear/redsoftcap
display_name = "red softcap"
path = /obj/item/clothing/head/soft/red
cost = 2
- slot = slot_head
+// slot = slot_head
/datum/gear/bluesoftcap
display_name = "blue softcap"
path = /obj/item/clothing/head/soft/blue
cost = 2
- slot = slot_head
+// slot = slot_head
/datum/gear/greensoftcap
display_name = "green softcap"
path = /obj/item/clothing/head/soft/green
cost = 2
- slot = slot_head
+// slot = slot_head
/datum/gear/greysoftcap
display_name = "grey softcap"
path = /obj/item/clothing/head/soft/grey
cost = 2
- slot = slot_head
+// slot = slot_head
/datum/gear/purplesoftcap
display_name = "purple softcap"
path = /obj/item/clothing/head/soft/purple
cost = 2
- slot = slot_head
+// slot = slot_head
/datum/gear/labcoat
display_name = "labcoat"
path = /obj/item/clothing/suit/storage/labcoat
cost = 3
- slot = slot_wear_suit
+// slot = slot_wear_suit
/datum/gear/bluescrubs
display_name = "blue scrubs"
@@ -149,11 +149,17 @@ proc/populate_gear_list()
path = /obj/item/clothing/under/rank/medical/green
cost = 1
+/datum/gear/surgeryapron
+ display_name = "surgical apron"
+ path = /obj/item/clothing/suit/apron/surgery
+ cost = 1
+
+
/datum/gear/sandal
display_name = "sandals"
path = /obj/item/clothing/shoes/sandal
cost = 1
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/work_boots
display_name = "work boots"
@@ -164,121 +170,121 @@ proc/populate_gear_list()
display_name = "leather shoes"
path = /obj/item/clothing/shoes/leather
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/dress_shoes
display_name = "dress shoes"
path = /obj/item/clothing/shoes/centcom
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/black_gloves
display_name = "black gloves"
path = /obj/item/clothing/gloves/black
cost = 1
- slot = slot_gloves
+// slot = slot_gloves
/datum/gear/red_gloves
display_name = "red gloves"
path = /obj/item/clothing/gloves/red
cost = 1
- slot = slot_gloves
+// slot = slot_gloves
/datum/gear/blue_gloves
display_name = "blue gloves"
path = /obj/item/clothing/gloves/blue
cost = 1
- slot = slot_gloves
+// slot = slot_gloves
/datum/gear/orange_gloves
display_name = "orange gloves"
path = /obj/item/clothing/gloves/orange
cost = 1
- slot = slot_gloves
+// slot = slot_gloves
/datum/gear/purple_gloves
display_name = "purple gloves"
path = /obj/item/clothing/gloves/purple
cost = 1
- slot = slot_gloves
+// slot = slot_gloves
/datum/gear/brown_gloves
display_name = "brown gloves"
path = /obj/item/clothing/gloves/brown
cost = 1
- slot = slot_gloves
+// slot = slot_gloves
/datum/gear/green_gloves
display_name = "green gloves"
path = /obj/item/clothing/gloves/green
cost = 2
- slot = slot_gloves
+// slot = slot_gloves
/datum/gear/white_gloves
display_name = "white gloves"
path = /obj/item/clothing/gloves/white
cost = 2
- slot = slot_gloves
+// slot = slot_gloves
/datum/gear/black_shoes
display_name = "black shoes"
path = /obj/item/clothing/shoes/black
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/blue_shoes
display_name = "blue shoes"
path = /obj/item/clothing/shoes/blue
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/brown_shoes
display_name = "brown shoes"
path = /obj/item/clothing/shoes/brown
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/green_shoes
display_name = "green shoes"
path = /obj/item/clothing/shoes/green
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/orange_shoes
display_name = "orange shoes"
path = /obj/item/clothing/shoes/orange
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/purple_shoes
display_name = "purple shoes"
path = /obj/item/clothing/shoes/purple
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/red_shoes
display_name = "red shoes"
path = /obj/item/clothing/shoes/red
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/white_shoes
display_name = "white shoes"
path = /obj/item/clothing/shoes/white
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/yellow_shoes
display_name = "yellow shoes"
path = /obj/item/clothing/shoes/yellow
cost = 2
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/jackboots
display_name = "jackboots"
path = /obj/item/clothing/shoes/jackboots
cost = 3
- slot = slot_shoes
+// slot = slot_shoes
/datum/gear/webbing
display_name = "webbing"
@@ -323,76 +329,76 @@ proc/populate_gear_list()
/datum/gear/skirt_blue
display_name = "blue plaid skirt"
path = /obj/item/clothing/under/dress/plaid_blue
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/skirt_red
display_name = "red plaid skirt"
path = /obj/item/clothing/under/dress/plaid_red
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/skirt_purple
display_name = "purple plaid skirt"
path = /obj/item/clothing/under/dress/plaid_purple
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/skirt_green
display_name = "green plaid skirt"
path = /obj/item/clothing/under/dress/plaid_green
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/skirt_black
display_name = "black skirt"
path = /obj/item/clothing/under/blackskirt
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/sundress
display_name = "sundress"
path = /obj/item/clothing/under/sundress
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/uniform_captain
display_name = "captain's dress uniform"
path = /obj/item/clothing/under/dress/dress_cap
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
allowed_roles = list("Captain")
/datum/gear/uniform_hop
display_name = "HoP dress uniform"
path = /obj/item/clothing/under/dress/dress_hop
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
allowed_roles = list("Head of Personnel")
/datum/gear/uniform_hr
display_name = "HR director uniform"
path = /obj/item/clothing/under/dress/dress_hr
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
allowed_roles = list("Head of Personnel")
/datum/gear/kilt
display_name = "kilt"
path = /obj/item/clothing/under/kilt
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/exec_suit
display_name = "executive suit"
path = /obj/item/clothing/under/suit_jacket/really_black
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/exec_suit
display_name = "executive suit"
path = /obj/item/clothing/under/suit_jacket/really_black
- slot = slot_w_uniform
+// slot = slot_w_uniform
cost = 3
/datum/gear/oldmansuit
@@ -406,7 +412,7 @@ proc/populate_gear_list()
display_name = "Security HUD"
path = /obj/item/clothing/glasses/hud/security
cost = 3
- slot = slot_glasses
+// slot = slot_glasses
allowed_roles = list("Security Officer","Head of Security","Warden")
/datum/gear/black_vest
@@ -417,7 +423,7 @@ proc/populate_gear_list()
/datum/gear/armpit
display_name = "shoulder holster"
- path = /obj/item/clothing/tie/holster/armpit
+// path = /obj/item/clothing/tie/holster/armpit
cost = 3
allowed_roles = list("Captain", "Head of Personnel", "Security Officer", "Head of Security")
@@ -425,7 +431,7 @@ proc/populate_gear_list()
display_name = "security beret"
path = /obj/item/clothing/head/beret/sec
cost = 1
- slot = slot_head
+// slot = slot_head
allowed_roles = list("Security Officer","Head of Security","Warden")
//Engineering
@@ -433,7 +439,7 @@ proc/populate_gear_list()
display_name = "engineering beret"
path = /obj/item/clothing/head/beret/eng
cost = 1
- slot = slot_head
+// slot = slot_head
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
/datum/gear/brown_vest
@@ -446,7 +452,7 @@ proc/populate_gear_list()
display_name = "engineering bandana"
path = /obj/item/clothing/head/helmet/greenbandana/fluff/taryn_kifer_1
cost = 2
- slot = slot_head
+// slot = slot_head
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
//Science
@@ -464,14 +470,14 @@ proc/populate_gear_list()
display_name = "Zhan-Khazan furs"
path = /obj/item/clothing/suit/tajaran/furs
cost = 3
- slot = slot_wear_suit
+// slot = slot_wear_suit
whitelisted = "Tajaran"
/datum/gear/zhan_scarf
display_name = "Zhan-Khazan headscarf"
path = /obj/item/clothing/head/tajaran/scarf
cost = 2
- slot = slot_head
+// slot = slot_head
whitelisted = "Tajaran"
*/
@@ -479,12 +485,12 @@ proc/populate_gear_list()
display_name = "roughspun robe"
path = /obj/item/clothing/suit/unathi/robe
cost = 3
- slot = slot_wear_suit
+// slot = slot_wear_suit
whitelisted = "Unathi"
/datum/gear/unathi_mantle
display_name = "hide mantle"
path = /obj/item/clothing/suit/unathi/mantle
cost = 2
- slot = slot_wear_suit
+// slot = slot_wear_suit
whitelisted = "Unathi"
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index d9c6707a..74b3610e 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -110,6 +110,12 @@
item_state = "overalls"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS
+/obj/item/clothing/suit/apron/surgery
+ name = "surgical apron"
+ desc = "To keep their blood off while you knife them."
+ icon_state = "surgeon"
+ item_state = "surgeon"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS
/obj/item/clothing/suit/syndicatefake
name = "red space suit replica"
diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm
index 5081bc55..903c265f 100644
--- a/code/modules/projectiles/guns/projectile/bow.dm
+++ b/code/modules/projectiles/guns/projectile/bow.dm
@@ -210,7 +210,7 @@
/obj/item/weapon/crossbowframe
name = "crossbow frame"
desc = "A half-finished crossbow."
- icon_state = "crossbowframe0"
+ icon_state = "crossbow"
item_state = "crossbow-solid"
var/buildstate = 0
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index c88b121b..41759378 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -93,7 +93,7 @@
var/obj/item/weapon/gun/daddy = shot_from //Kinda balanced by fact you need like 2 seconds to aim
if (daddy.target && original in daddy.target) //As opposed to no-delay pew pew
miss_modifier += -30
- def_zone = get_zone_with_miss_chance(def_zone, M, miss_modifier + 15*distance)
+ def_zone = get_zone_with_miss_chance(def_zone, M, miss_modifier + 5*distance)
if(!def_zone)
visible_message("\blue \The [src] misses [M] narrowly!")
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 186db440..67d052bf 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -279,6 +279,9 @@
New()
..()
reagents.add_reagent("nutriment", 10)
+ Del()
+ contents = null
+ ..()
/obj/item/weapon/reagent_containers/food/snacks/candy
name = "candy"
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 20b5e6d5..206d0f85 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1595,7 +1595,7 @@ datum/design/smg
datum/design/rapidlaser
name = "Rapid-fire Laser"
desc = "A fast-firing laser that shoots bursts of weaker beams."
- id = "smg"
+ id = "rapidlaser"
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$uranium" = 1000)
diff --git a/data/investigate/gravity.html b/data/investigate/gravity.html
index f90f8a6c..8ab1a86a 100644
--- a/data/investigate/gravity.html
+++ b/data/investigate/gravity.html
@@ -1,2 +1,2 @@
-19:49 [0x200775f] (92,152,1) || the gravitational generator has regained power.
-19:49 [0x200775f] (92,152,1) || the gravitational generator is now charging.
+16:13 [0x2007747] (92,152,1) || the gravitational generator has regained power.
+16:13 [0x2007747] (92,152,1) || the gravitational generator is now charging.
diff --git a/html/changelog.html b/html/changelog.html
index f711e86d..9093b7c0 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,9 +56,24 @@ should be listed in the changelog upon commit though. Thanks. -->
+
+
25 August 2014
+
SoundScopes updated:
+
+ - Workplace hazards baised of hair length
+ - Gavity Generator Fix
+ - Fryed food no longer drops it's original item when eaten
+ - Medical Alarms
+ - Air Conditioners
+ - Admin Logs
+ - Debug Logs
+
+
+
+
20 August 2014
-
updated:
+
SoundScopes updated:
- Malf - Cameras reactivating now play the wirecutter sound, offering audible
- Malf - Overload no longer breaches and does less damage
@@ -75,7 +90,7 @@ should be listed in the changelog upon commit though. Thanks. -->
16 August 2014
-
Sound Scopes updated:
+
SoundScopes updated:
- Custom loadout - Green Plaid Skirt
- Custom loadout - Old Man Suit
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 677da897..ee833553 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ