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:

+ +
+ +

20 August 2014

-

updated:

+

SoundScopes updated: