diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm index 3df03bebde7..e6731d4ea17 100644 --- a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm @@ -10,7 +10,7 @@ name = "air vent" desc = "Has a valve and pump attached to it" use_power = 1 - + can_unwrench = 1 var/area/initial_loc @@ -68,7 +68,7 @@ ..() /obj/machinery/atmospherics/unary/vent_pump/high_volume - name = "Large Air Vent" + name = "large air vent" power_channel = EQUIP /obj/machinery/atmospherics/unary/vent_pump/high_volume/New() @@ -184,7 +184,7 @@ if(frequency != 1439) initial_loc.air_vent_info -= id_tag initial_loc.air_vent_names -= id_tag - name = "Vent Pump" + name = "vent pump" else broadcast_status() @@ -399,4 +399,3 @@ initial_loc.air_vent_info -= id_tag initial_loc.air_vent_names -= id_tag return ..() - \ No newline at end of file diff --git a/code/ATMOSPHERICS/datum_icon_manager.dm b/code/ATMOSPHERICS/datum_icon_manager.dm index bf514607b31..75cb0fce8ce 100644 --- a/code/ATMOSPHERICS/datum_icon_manager.dm +++ b/code/ATMOSPHERICS/datum_icon_manager.dm @@ -186,9 +186,9 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_ var/cache_name = state for(var/D in cardinal) - var/image/I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D) + var/image/I = image(icon('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)) underlays[cache_name + "[D]"] = I for(var/pipe_color in pipe_colors) - I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D) + I = image(icon('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)) I.color = pipe_colors[pipe_color] underlays[state + "[D]" + "[pipe_colors[pipe_color]]"] = I diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index ff9d805a138..20930f1cdb8 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -54,8 +54,6 @@ #define HAS_UNDERSHIRT 2 #define HAS_SOCKS 4 -//Species Blood Flags -#define BLOOD_SLIME 1 //Species Body Flags #define FEET_CLAWS 1 #define FEET_PADDED 2 @@ -64,6 +62,7 @@ #define HAS_SKIN_TONE 16 #define HAS_SKIN_COLOR 32 #define TAIL_WAGGING 64 +#define NO_EYES 128 //Species Diet Flags #define DIET_CARN 1 diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index cc6d6f9c621..fe27e399c84 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -1,38 +1,20 @@ -proc/random_underwear(gender, species = "Human") - var/list/pick_list = list() +/proc/random_underwear(var/gender) switch(gender) - if(MALE) pick_list = underwear_m - if(FEMALE) pick_list = underwear_f - else pick_list = underwear_list - return pick_species_allowed_underwear(pick_list, species) + if(MALE) return pick(underwear_m) + if(FEMALE) return pick(underwear_f) + else return pick(underwear_list) -proc/random_undershirt(gender, species = "Human") - var/list/pick_list = list() +/proc/random_undershirt(var/gender) switch(gender) - if(MALE) pick_list = undershirt_m - if(FEMALE) pick_list = undershirt_f - else pick_list = undershirt_list - return pick_species_allowed_underwear(pick_list, species) + if(MALE) return pick(undershirt_m) + if(FEMALE) return pick(undershirt_f) + else return pick(undershirt_list) -proc/random_socks(gender, species = "Human") - var/list/pick_list = list() +/proc/random_socks(gender) switch(gender) - if(MALE) pick_list = socks_m - if(FEMALE) pick_list = socks_f - else pick_list = socks_list - return pick_species_allowed_underwear(pick_list, species) - -proc/pick_species_allowed_underwear(list/all_picks, species) - var/list/valid_picks = list() - for(var/test in all_picks) - var/datum/sprite_accessory/S = all_picks[test] - if(!(species in S.species_allowed)) - continue - valid_picks += test - - if(!valid_picks.len) valid_picks += "Nude" - - return pick(valid_picks) + if(MALE) return pick(socks_m) + if(FEMALE) return pick(socks_f) + else return pick(socks_list) proc/random_hair_style(var/gender, species = "Human") var/h_style = "Bald" @@ -53,7 +35,7 @@ proc/random_hair_style(var/gender, species = "Human") return h_style -proc/GetOppositeDir(var/dir) +/proc/GetOppositeDir(var/dir) switch(dir) if(NORTH) return SOUTH if(SOUTH) return NORTH diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 311ef87f57d..2421c64b62f 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -50,16 +50,14 @@ var/hex = "" while(num) - var/val = num & 15 - num >>= 4 + var/val = num % 16 + num = round(num / 16) if(val > 9) val = ascii2text(55 + val) // 65 - 70 correspond to "A" - "F" hex = "[val][hex]" - while(length(hex) < placeholder) hex = "0[hex]" - return hex || "0" // Concatenates a list of strings into a single string. A seperator may optionally be provided. diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 76bb71e296a..aac2893b049 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -1,3 +1,144 @@ +/obj/screen/ai + icon = 'icons/mob/screen_ai.dmi' + +/obj/screen/ai/aicore + name = "AI core" + icon_state = "ai_core" + +/obj/screen/ai/aicore/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.view_core() + +/obj/screen/ai/camera_list + name = "Show Camera List" + icon_state = "camera" + +/obj/screen/ai/camera_list/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + var/camera = input(AI) in AI.get_camera_list() + AI.ai_camera_list(camera) + +/obj/screen/ai/camera_track + name = "Track With Camera" + icon_state = "track" + +/obj/screen/ai/camera_track/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + var/target_name = input(AI) as null|anything in AI.trackable_mobs() + if(target_name) + AI.ai_camera_track(target_name) + +/obj/screen/ai/camera_light + name = "Toggle Camera Light" + icon_state = "camera_light" + +/obj/screen/ai/camera_light/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.toggle_camera_light() + +/obj/screen/ai/crew_monitor + name = "Crew Monitoring Console" + icon_state = "crew_monitor" + +/obj/screen/ai/crew_monitor/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.subsystem_crew_monitor() + +/obj/screen/ai/crew_manifest + name = "Crew Manifest" + icon_state = "manifest" + +/obj/screen/ai/crew_manifest/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.ai_roster() + +/obj/screen/ai/alerts + name = "Show Alerts" + icon_state = "alerts" + +/obj/screen/ai/alerts/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.subsystem_alarm_monitor() + +/obj/screen/ai/announcement + name = "Make Announcement" + icon_state = "announcement" + +/obj/screen/ai/announcement/Click() + var/mob/living/silicon/ai/AI = usr + AI.announcement() + +/obj/screen/ai/call_shuttle + name = "Call Emergency Shuttle" + icon_state = "call_shuttle" + +/obj/screen/ai/call_shuttle/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.ai_call_shuttle() + +/obj/screen/ai/state_laws + name = "State Laws" + icon_state = "state_laws" + +/obj/screen/ai/state_laws/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.subsystem_law_manager() + +/obj/screen/ai/pda_msg_send + name = "PDA - Send Message" + icon_state = "pda_send" + +/obj/screen/ai/pda_msg_send/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.cmd_send_pdamesg(usr) + +/obj/screen/ai/pda_msg_show + name = "PDA - Show Message Log" + icon_state = "pda_receive" + +/obj/screen/ai/pda_msg_show/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.cmd_show_message_log(usr) + +/obj/screen/ai/image_take + name = "Take Image" + icon_state = "take_picture" + +/obj/screen/ai/image_take/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.aiCamera.toggle_camera_mode() + +/obj/screen/ai/image_view + name = "View Images" + icon_state = "view_images" + +/obj/screen/ai/image_view/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.aiCamera.viewpictures() + +/obj/screen/ai/sensors + name = "Sensor Augmentation" + icon_state = "ai_sensor" + +/obj/screen/ai/sensors/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.sensor_mode() + + /datum/hud/proc/ai_hud() adding = list() other = list() @@ -5,7 +146,7 @@ var/obj/screen/using //AI core - using = new /obj/screen() + using = new /obj/screen/ai/aicore() using.name = "AI Core" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "ai_core" @@ -14,7 +155,7 @@ adding += using //Camera list - using = new /obj/screen() + using = new /obj/screen/ai/camera_list() using.name = "Show Camera List" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "camera" @@ -23,7 +164,7 @@ adding += using //Track - using = new /obj/screen() + using = new /obj/screen/ai/camera_track() using.name = "Track With Camera" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "track" @@ -32,7 +173,7 @@ adding += using //Camera light - using = new /obj/screen() + using = new /obj/screen/ai/camera_light() using.name = "Toggle Camera Light" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "camera_light" @@ -41,7 +182,7 @@ adding += using //Crew Monitorting - using = new /obj/screen() + using = new /obj/screen/ai/crew_monitor() using.name = "Crew Monitoring" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "crew_monitor" @@ -50,7 +191,7 @@ adding += using //Crew Manifest - using = new /obj/screen() + using = new /obj/screen/ai/crew_manifest() using.name = "Show Crew Manifest" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "manifest" @@ -59,7 +200,7 @@ adding += using //Alerts - using = new /obj/screen() + using = new /obj/screen/ai/alerts() using.name = "Show Alerts" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "alerts" @@ -68,7 +209,7 @@ adding += using //Announcement - using = new /obj/screen() + using = new /obj/screen/ai/announcement() using.name = "Announcement" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "announcement" @@ -77,7 +218,7 @@ adding += using //Shuttle - using = new /obj/screen() + using = new /obj/screen/ai/announcement() using.name = "Call Emergency Shuttle" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "call_shuttle" @@ -86,7 +227,7 @@ adding += using //Laws - using = new /obj/screen() + using = new /obj/screen/ai/state_laws() using.name = "Law Manager" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "state_laws" @@ -95,7 +236,7 @@ adding += using //PDA message - using = new /obj/screen() + using = new /obj/screen/ai/pda_msg_send() using.name = "PDA - Send Message" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "pda_send" @@ -104,7 +245,7 @@ adding += using //PDA log - using = new /obj/screen() + using = new /obj/screen/ai/pda_msg_show() using.name = "PDA - Show Message Log" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "pda_receive" @@ -113,7 +254,7 @@ adding += using //Take image - using = new /obj/screen() + using = new /obj/screen/ai/image_take() using.name = "Take Image" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "take_picture" @@ -122,21 +263,21 @@ adding += using //View images - using = new /obj/screen() + using = new /obj/screen/ai/image_view() using.name = "View Images" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "view_images" using.screen_loc = ui_ai_view_images using.layer = 20 adding += using - + //Medical/Security sensors - using = new /obj/screen() + using = new /obj/screen/ai/sensors() using.name = "Set Sensor Augmentation" using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "ai_sensor" + using.icon_state = "ai_sensor" using.screen_loc = ui_ai_sensor - using.layer = 20 + using.layer = 20 adding += using mymob.client.screen += adding + other diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index 763269c2af7..568ffa084f2 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -1,3 +1,23 @@ +/obj/screen/alien + icon = 'icons/mob/screen_alien.dmi' + +/obj/screen/alien/leap + name = "toggle leap" + icon_state = "leap_off" + +/obj/screen/alien/leap/Click() + if(istype(usr, /mob/living/carbon/alien/humanoid)) + var/mob/living/carbon/alien/humanoid/hunter/AH = usr + AH.toggle_leap() + +/obj/screen/alien/nightvision + name = "toggle night-vision" + icon_state = "nightvision1" + +/obj/screen/alien/nightvision/Click() + var/mob/living/carbon/alien/humanoid/A = usr + A.nightvisiontoggle() + /datum/hud/proc/embryo_hud() return @@ -8,7 +28,7 @@ var/obj/screen/using var/obj/screen/inventory/inv_box - using = new /obj/screen() + using = new /obj/screen/act_intent() using.name = "act_intent" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_alien.dmi' @@ -18,7 +38,7 @@ src.adding += using action_intent = using - using = new /obj/screen() + using = new /obj/screen/mov_intent() using.name = "mov_intent" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_alien.dmi' @@ -29,7 +49,7 @@ move_intent = using if(istype(mymob, /mob/living/carbon/alien/humanoid/hunter)) - mymob.leap_icon = new /obj/screen() + mymob.leap_icon = new /obj/screen/alien/leap() mymob.leap_icon.icon = 'icons/mob/screen1_alien.dmi' mymob.leap_icon.name = "toggle leap" mymob.leap_icon.icon_state = "leap_off" @@ -83,7 +103,7 @@ //end of equippable shit - using = new /obj/screen() + using = new /obj/screen/resist() using.name = "resist" using.icon = 'icons/mob/screen1_alien.dmi' using.icon_state = "act_resist" @@ -91,7 +111,7 @@ using.layer = 19 src.adding += using - using = new /obj/screen() + using = new /obj/screen/drop() using.name = "drop" using.icon = 'icons/mob/screen1_alien.dmi' using.icon_state = "act_drop" @@ -99,7 +119,7 @@ using.layer = 19 src.adding += using - mymob.throw_icon = new /obj/screen() + mymob.throw_icon = new /obj/screen/throw_catch() mymob.throw_icon.icon = 'icons/mob/screen1_alien.dmi' mymob.throw_icon.icon_state = "act_throw_off" mymob.throw_icon.name = "throw" @@ -129,7 +149,7 @@ mymob.healths.name = "health" mymob.healths.screen_loc = ui_alien_health - nightvisionicon = new /obj/screen() + nightvisionicon = new /obj/screen/alien/nightvision() nightvisionicon.icon = 'icons/mob/screen1_alien.dmi' nightvisionicon.icon_state = "nightvision1" nightvisionicon.name = "night vision" diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index 4c9b7b651c1..18c2d344f53 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -4,7 +4,7 @@ var/obj/screen/using - using = new /obj/screen() + using = new /obj/screen/act_intent() using.name = "act_intent" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_alien.dmi' @@ -14,7 +14,7 @@ src.adding += using action_intent = using - using = new /obj/screen() + using = new /obj/screen/mov_intent() using.name = "mov_intent" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_alien.dmi' @@ -50,7 +50,7 @@ mymob.healths.name = "health" mymob.healths.screen_loc = ui_alien_health - nightvisionicon = new /obj/screen() + nightvisionicon = new /obj/screen/alien/nightvision() nightvisionicon.icon = 'icons/mob/screen1_alien.dmi' nightvisionicon.icon_state = "nightvision1" nightvisionicon.name = "night vision" diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index f55951b5f37..0c36b29db06 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -1,3 +1,30 @@ +/obj/screen/human + icon = 'icons/mob/screen1_midnight.dmi' + +/obj/screen/human/toggle + name = "toggle" + icon_state = "toggle" + +/obj/screen/human/toggle/Click() + if(usr.hud_used.inventory_shown) + usr.hud_used.inventory_shown = 0 + usr.client.screen -= usr.hud_used.other + else + usr.hud_used.inventory_shown = 1 + usr.client.screen += usr.hud_used.other + + usr.hud_used.hidden_inventory_update() + +/obj/screen/human/equip + name = "equip" + icon_state = "act_equip" + +/obj/screen/human/equip/Click() + if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return 1 + var/mob/living/carbon/human/H = usr + H.quick_equip() + /datum/hud/proc/human_hud(var/ui_style='icons/mob/screen1_White.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255) src.adding = list() @@ -7,7 +34,7 @@ var/obj/screen/using var/obj/screen/inventory/inv_box - using = new /obj/screen() + using = new /obj/screen/act_intent() using.name = "act_intent" using.dir = SOUTHWEST using.icon = ui_style @@ -19,60 +46,9 @@ src.adding += using action_intent = using -//intent small hud objects - var/icon/ico - ico = new(ui_style, "black") - ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) - ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height()) - using = new /obj/screen( src ) - using.name = "help" - using.icon = ico - using.screen_loc = ui_acti - using.alpha = ui_alpha - using.layer = 21 - src.adding += using - help_intent = using - ico = new(ui_style, "black") - ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) - ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height()) - using = new /obj/screen( src ) - using.name = "disarm" - using.icon = ico - using.screen_loc = ui_acti - using.alpha = ui_alpha - using.layer = 21 - src.adding += using - disarm_intent = using - - ico = new(ui_style, "black") - ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) - ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2) - using = new /obj/screen( src ) - using.name = "grab" - using.icon = ico - using.screen_loc = ui_acti - using.alpha = ui_alpha - using.layer = 21 - src.adding += using - grab_intent = using - - ico = new(ui_style, "black") - ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) - ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2) - using = new /obj/screen( src ) - using.name = "harm" - using.icon = ico - using.screen_loc = ui_acti - using.alpha = ui_alpha - using.layer = 21 - src.adding += using - hurt_intent = using - -//end intent small hud objects - - using = new /obj/screen() + using = new /obj/screen/mov_intent() using.name = "mov_intent" using.dir = SOUTHWEST using.icon = ui_style @@ -84,7 +60,7 @@ src.adding += using move_intent = using - using = new /obj/screen() + using = new /obj/screen/drop() using.name = "drop" using.icon = ui_style using.icon_state = "act_drop" @@ -252,7 +228,7 @@ inv_box.alpha = ui_alpha src.adding += inv_box - using = new /obj/screen() + using = new /obj/screen/resist() using.name = "resist" using.icon = ui_style using.icon_state = "act_resist" @@ -262,7 +238,7 @@ using.alpha = ui_alpha src.hotkeybuttons += using - using = new /obj/screen() + using = new /obj/screen/human/toggle() using.name = "toggle" using.icon = ui_style using.icon_state = "other" @@ -272,7 +248,7 @@ using.alpha = ui_alpha src.adding += using - using = new /obj/screen() + using = new /obj/screen/human/equip() using.name = "equip" using.icon = ui_style using.icon_state = "act_equip" @@ -359,7 +335,7 @@ inv_box.alpha = ui_alpha src.adding += inv_box - mymob.throw_icon = new /obj/screen() + mymob.throw_icon = new /obj/screen/throw_catch() mymob.throw_icon.icon = ui_style mymob.throw_icon.icon_state = "act_throw_off" mymob.throw_icon.name = "throw" @@ -386,7 +362,7 @@ mymob.toxin.name = "toxin" mymob.toxin.screen_loc = ui_toxin - mymob.internals = new /obj/screen() + mymob.internals = new /obj/screen/internals() mymob.internals.icon = ui_style mymob.internals.icon_state = "internal0" mymob.internals.name = "internal" diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index fce38a8b465..85f91e53e30 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -7,7 +7,7 @@ var/obj/screen/using var/obj/screen/inventory/inv_box - using = new /obj/screen() + using = new /obj/screen/act_intent() using.name = "act_intent" using.dir = SOUTHWEST using.icon = ui_style @@ -20,7 +20,7 @@ action_intent = using //intent small hud objects - var/icon/ico +/* var/icon/ico ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) @@ -69,10 +69,10 @@ using.layer = 21 src.adding += using hurt_intent = using - +*/ //end intent small hud objects - using = new /obj/screen() + using = new /obj/screen/mov_intent() using.name = "mov_intent" using.dir = SOUTHWEST using.icon = ui_style @@ -84,7 +84,7 @@ src.adding += using move_intent = using - using = new /obj/screen() + using = new /obj/screen/drop() using.name = "drop" using.icon = ui_style using.icon_state = "act_drop" @@ -170,7 +170,7 @@ inv_box.alpha = ui_alpha src.adding += inv_box - mymob.throw_icon = new /obj/screen() + mymob.throw_icon = new /obj/screen/throw_catch() mymob.throw_icon.icon = ui_style mymob.throw_icon.icon_state = "act_throw_off" mymob.throw_icon.name = "throw" @@ -197,7 +197,7 @@ mymob.toxin.name = "toxin" mymob.toxin.screen_loc = ui_toxin - mymob.internals = new /obj/screen() + mymob.internals = new /obj/screen/internals() mymob.internals.icon = ui_style mymob.internals.icon_state = "internal0" mymob.internals.name = "internal" diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index bd782657ce9..78ee883960c 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -1,3 +1,83 @@ +/obj/screen/robot + icon = 'icons/mob/screen1_robot.dmi' + +/obj/screen/robot/module + name = "cyborg module" + icon_state = "nomod" + +/obj/screen/robot/module/Click() + if(isrobot(usr)) + var/mob/living/silicon/robot/R = usr + if(R.module) + R.hud_used.toggle_show_robot_modules() + return 1 + R.pick_module() + +/obj/screen/robot/module1 + name = "module1" + icon_state = "inv1" + +/obj/screen/robot/module1/Click() + if(isrobot(usr)) + var/mob/living/silicon/robot/R = usr + R.toggle_module(1) + +/obj/screen/robot/module2 + name = "module2" + icon_state = "inv2" + +/obj/screen/robot/module2/Click() + if(isrobot(usr)) + var/mob/living/silicon/robot/R = usr + R.toggle_module(2) + +/obj/screen/robot/module3 + name = "module3" + icon_state = "inv3" + +/obj/screen/robot/module3/Click() + if(isrobot(usr)) + var/mob/living/silicon/robot/R = usr + R.toggle_module(3) + + +/obj/screen/robot/radio + name = "radio" + icon_state = "radio" + +/obj/screen/robot/radio/Click() + if(issilicon(usr)) + var/mob/living/silicon/robot/R = usr + R.radio_menu() + +/obj/screen/robot/store + name = "store" + icon_state = "store" + +/obj/screen/robot/store/Click() + if(isrobot(usr)) + var/mob/living/silicon/robot/R = usr + R.uneq_active() + R.hud_used.update_robot_modules_display() + +/obj/screen/robot/lamp + name = "headlamp" + icon_state = "lamp0" + +/obj/screen/robot/lamp/Click() + if(isrobot(usr)) + var/mob/living/silicon/robot/R = usr + R.control_headlamp() + +/obj/screen/robot/panel + name = "installed modules" + icon_state = "panel" + +/obj/screen/robot/panel/Click() + if(issilicon(usr)) + var/mob/living/silicon/robot/R = usr + R.installed_modules() + /datum/hud/proc/robot_hud() src.adding = list() @@ -7,7 +87,7 @@ //Radio - using = new /obj/screen() + using = new /obj/screen/robot/radio() using.name = "radio" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' @@ -18,7 +98,7 @@ //Module select - using = new /obj/screen() + using = new /obj/screen/robot/module1() using.name = "module1" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' @@ -28,7 +108,7 @@ src.adding += using mymob:inv1 = using - using = new /obj/screen() + using = new /obj/screen/robot/module2() using.name = "module2" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' @@ -38,7 +118,7 @@ src.adding += using mymob:inv2 = using - using = new /obj/screen() + using = new /obj/screen/robot/module3() using.name = "module3" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' @@ -51,7 +131,7 @@ //End of module select //Sec/Med HUDs - using = new /obj/screen() + using = new /obj/screen/ai/sensors() using.name = "Toggle Sensor Augmentation" using.icon = 'icons/mob/screen_ai.dmi' using.icon_state = "ai_sensor" @@ -60,7 +140,7 @@ adding += using //Intent - using = new /obj/screen() + using = new /obj/screen/act_intent() using.name = "act_intent" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' @@ -85,7 +165,7 @@ mymob.healths.screen_loc = ui_borg_health //Installed Module - mymob.hands = new /obj/screen() + mymob.hands = new /obj/screen/robot/module() mymob.hands.icon = 'icons/mob/screen1_robot.dmi' mymob.hands.icon_state = "nomod" mymob.hands.name = "module" @@ -93,14 +173,14 @@ //Store - mymob.throw_icon = new /obj/screen() + mymob.throw_icon = new /obj/screen/robot/store() mymob.throw_icon.icon = 'icons/mob/screen1_robot.dmi' mymob.throw_icon.icon_state = "store" mymob.throw_icon.name = "store" mymob.throw_icon.screen_loc = ui_borg_store //Headlamp - mymob:lamp_button = new /obj/screen() + mymob:lamp_button = new /obj/screen/robot/lamp() mymob:lamp_button.icon = 'icons/mob/screen1_robot.dmi' mymob:lamp_button.icon_state = "lamp0" mymob:lamp_button.name = "Toggle Headlamp" @@ -152,15 +232,16 @@ //Handle the gun settings buttons mymob.gun_setting_icon = new /obj/screen/gun/mode(null) - if (mymob.client) - if (mymob.client.gun_mode) // If in aim mode, correct the sprite - mymob.gun_setting_icon.dir = 2 - for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons - if (G.target) - mymob.item_use_icon = new /obj/screen/gun/item(null) - if (mymob.client.target_can_click) - mymob.item_use_icon.dir = 1 - src.adding += mymob.item_use_icon + mymob.item_use_icon = new /obj/screen/gun/item(null) + //if (mymob.client) + // if (mymob.client.gun_mode) // If in aim mode, correct the sprite + // mymob.gun_setting_icon.dir = 2 + //for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons + // if (G.target) + // mymob.item_use_icon = new /obj/screen/gun/item(null) + // if (mymob.client.target_can_click) + // mymob.item_use_icon.dir = 1 + //src.adding += mymob.item_use_icon /*mymob.gun_move_icon = new /obj/screen/gun/move(null) if (mymob.client.target_can_move) mymob.gun_move_icon.dir = 1 diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 27fdd64cd75..68ed970a55d 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -41,6 +41,15 @@ S.close(usr) return 1 +/obj/screen/drop + name = "drop" + icon = 'icons/mob/screen1_midnight.dmi' + icon_state = "act_drop" + layer = 19 + +/obj/screen/drop/Click() + usr.drop_item_v() + /obj/screen/grab name = "grab" @@ -54,7 +63,202 @@ /obj/screen/grab/attackby() return +/obj/screen/act_intent + name = "intent" + icon_state = "help" +/obj/screen/act_intent/Click(location, control, params) + if(ishuman(usr)) + var/_x = text2num(params2list(params)["icon-x"]) + var/_y = text2num(params2list(params)["icon-y"]) + + if(_x<=16 && _y<=16) + usr.a_intent_change(I_HARM) + else if(_x<=16 && _y>=17) + usr.a_intent_change(I_HELP) + else if(_x>=17 && _y<=16) + usr.a_intent_change(I_GRAB) + + else if(_x>=17 && _y>=17) + usr.a_intent_change(I_DISARM) + + else + usr.a_intent_change("right") + +/obj/screen/internals + name = "toggle internals" + icon_state = "internal0" + +/obj/screen/internals/Click() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + if(!C.stat && !C.stunned && !C.paralysis && !C.restrained()) + if(C.internal) + C.internal = null + C << "No longer running on internals." + if(C.internals) + C.internals.icon_state = "internal0" + else + + var/no_mask + if(!(C.wear_mask && C.wear_mask.flags & AIRTIGHT)) + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(!(H.head && H.head.flags & AIRTIGHT)) + no_mask = 1 + + if(no_mask) + C << "You are not wearing a suitable mask or helmet." + return 1 + else + var/list/nicename = null + var/list/tankcheck = null + var/breathes = "oxygen" //default, we'll check later + var/list/contents = list() + var/from = "on" + + if(ishuman(C)) + var/mob/living/carbon/human/H = C + breathes = H.species.breath_type + nicename = list ("suit", "back", "belt", "right hand", "left hand", "left pocket", "right pocket") + tankcheck = list (H.s_store, C.back, H.belt, C.r_hand, C.l_hand, H.l_store, H.r_store) + else + nicename = list("right hand", "left hand", "back") + tankcheck = list(C.r_hand, C.l_hand, C.back) + + // Rigs are a fucking pain since they keep an air tank in nullspace. + if(istype(C.back,/obj/item/weapon/rig)) + var/obj/item/weapon/rig/rig = C.back + if(rig.air_supply) + from = "in" + nicename |= "hardsuit" + tankcheck |= rig.air_supply + + for(var/i=1, i bestcontents) + best = i + bestcontents = contents[i] + + + //We've determined the best container now we set it as our internals + + if(best) + C << "You are now running on internals from [tankcheck[best]] [from] your [nicename[best]]." + C.internal = tankcheck[best] + + + if(C.internal) + if(C.internals) + C.internals.icon_state = "internal1" + else + C << "You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank." + +/obj/screen/mov_intent + name = "run/walk toggle" + icon = 'icons/mob/screen1_midnight.dmi' + icon_state = "running" + +/obj/screen/mov_intent/Click() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + if(C.legcuffed) + C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!" + C.m_intent = "walk" //Just incase + C.hud_used.move_intent.icon_state = "walking" + return 1 + switch(usr.m_intent) + if("run") + usr.m_intent = "walk" + usr.hud_used.move_intent.icon_state = "walking" + if("walk") + usr.m_intent = "run" + usr.hud_used.move_intent.icon_state = "running" + if(istype(usr,/mob/living/carbon/alien/humanoid)) + usr.update_icons() + + + +/obj/screen/pull + name = "stop pulling" + icon = 'icons/mob/screen1_Midnight.dmi' + icon_state = "pull" + +/obj/screen/pull/Click() + usr.stop_pulling() + +/obj/screen/pull/update_icon(mob/mymob) + if(!mymob) return + if(mymob.pulling) + icon_state = "pull" + else + icon_state = "pull0" + +/obj/screen/resist + name = "resist" + icon = 'icons/mob/screen1_midnight.dmi' + icon_state = "act_resist" + layer = 19 + +/obj/screen/resist/Click() + if(isliving(usr)) + var/mob/living/L = usr + L.resist() + +/obj/screen/throw_catch + name = "throw/catch" + icon = 'icons/mob/screen1_midnight.dmi' + icon_state = "act_throw_off" + +/obj/screen/throw_catch/Click() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + C.toggle_throw_mode() /obj/screen/storage name = "storage" @@ -72,33 +276,6 @@ master.attackby(I, usr, params) return 1 -/obj/screen/gun - name = "gun" - icon = 'icons/mob/screen1.dmi' - master = null - dir = 2 - - /*move - name = "Allow Walking" - icon_state = "no_walk0" - screen_loc = ui_gun2 - - run - name = "Allow Running" - icon_state = "no_run0" - screen_loc = ui_gun3*/ - - item - name = "Allow Item Use" - icon_state = "no_item0" - screen_loc = ui_gun1 - - mode - name = "Toggle Gun Mode" - icon_state = "gun0" - screen_loc = ui_gun_select - //dir = 1 - /obj/screen/zone_sel name = "damage zone" icon_state = "zone_sel" @@ -170,408 +347,34 @@ overlays.Cut() overlays += image('icons/mob/zone_sel.dmi', "[selecting]") -/obj/screen/pull - name = "stop pulling" - icon = 'icons/mob/screen1_Midnight.dmi' - icon_state = "pull" +/obj/screen/gun + name = "gun" + icon = 'icons/mob/screen1.dmi' + master = null + dir = 2 -/obj/screen/pull/Click() - usr.stop_pulling() +/obj/screen/gun/mode + name = "Toggle Gun Mode" + icon_state = "gun0" + screen_loc = ui_gun_select -/obj/screen/pull/update_icon(mob/mymob) - if(!mymob) return - if(mymob.pulling) - icon_state = "pull" - else - icon_state = "pull0" +/obj/screen/gun/mode/Click() + usr.client.ToggleGunMode() +/obj/screen/gun/item + name = "Allow Item Use" + icon_state = "no_item0" + screen_loc = ui_gun1 -/obj/screen/Click(location, control, params) - if(!usr) return 1 +/obj/screen/gun/item/Click() + if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. + return + if(!istype(usr.get_active_hand(), /obj/item/weapon/gun)) + usr << "You need your gun in your active hand to do that!" + return + usr.client.AllowTargetClick() + gun_click_time = world.time - switch(name) - if("toggle") - if(usr.hud_used.inventory_shown) - usr.hud_used.inventory_shown = 0 - usr.client.screen -= usr.hud_used.other - else - usr.hud_used.inventory_shown = 1 - usr.client.screen += usr.hud_used.other - - usr.hud_used.hidden_inventory_update() - - if("equip") - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech - return 1 - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - H.quick_equip() - - if("resist") - if(isliving(usr)) - var/mob/living/L = usr - L.resist() - - if("mov_intent") - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - if(C.legcuffed) - C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!" - C.m_intent = "walk" //Just incase - C.hud_used.move_intent.icon_state = "walking" - return 1 - switch(usr.m_intent) - if("run") - usr.m_intent = "walk" - usr.hud_used.move_intent.icon_state = "walking" - if("walk") - usr.m_intent = "run" - usr.hud_used.move_intent.icon_state = "running" - if(istype(usr,/mob/living/carbon/alien/humanoid)) - usr.update_icons() - if("m_intent") - if(!usr.m_int) - switch(usr.m_intent) - if("run") - usr.m_int = "13,14" - if("walk") - usr.m_int = "14,14" - if("face") - usr.m_int = "15,14" - else - usr.m_int = null - if("walk") - usr.m_intent = "walk" - usr.m_int = "14,14" - if("face") - usr.m_intent = "face" - usr.m_int = "15,14" - if("run") - usr.m_intent = "run" - usr.m_int = "13,14" - if("Reset Machine") - usr.unset_machine() - if("internal") - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - if(!C.stat && !C.stunned && !C.paralysis && !C.restrained()) - if(C.internal) - C.internal = null - C << "No longer running on internals." - if(C.internals) - C.internals.icon_state = "internal0" - else - - var/no_mask - if(!(C.wear_mask && C.wear_mask.flags & AIRTIGHT)) - if(ishuman(C)) - var/mob/living/carbon/human/H = C - if(!(H.head && H.head.flags & AIRTIGHT)) - no_mask = 1 - - if(no_mask) - C << "You are not wearing a suitable mask or helmet." - return 1 - else - var/list/nicename = null - var/list/tankcheck = null - var/breathes = "oxygen" //default, we'll check later - var/list/contents = list() - var/from = "on" - - if(ishuman(C)) - var/mob/living/carbon/human/H = C - breathes = H.species.breath_type - nicename = list ("suit", "back", "belt", "right hand", "left hand", "left pocket", "right pocket") - tankcheck = list (H.s_store, C.back, H.belt, C.r_hand, C.l_hand, H.l_store, H.r_store) - else - nicename = list("right hand", "left hand", "back") - tankcheck = list(C.r_hand, C.l_hand, C.back) - - // Rigs are a fucking pain since they keep an air tank in nullspace. - if(istype(C.back,/obj/item/weapon/rig)) - var/obj/item/weapon/rig/rig = C.back - if(rig.air_supply) - from = "in" - nicename |= "hardsuit" - tankcheck |= rig.air_supply - - for(var/i=1, i bestcontents) - best = i - bestcontents = contents[i] - - - //We've determined the best container now we set it as our internals - - if(best) - C << "You are now running on internals from [tankcheck[best]] [from] your [nicename[best]]." - C.internal = tankcheck[best] - - - if(C.internal) - if(C.internals) - C.internals.icon_state = "internal1" - else - C << "You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank." - if("act_intent") - usr.a_intent_change("right") - if("help") - usr.a_intent = I_HELP - usr.hud_used.action_intent.icon_state = "intent_help" - if("harm") - usr.a_intent = I_HARM - usr.hud_used.action_intent.icon_state = "intent_harm" - if("grab") - usr.a_intent = I_GRAB - usr.hud_used.action_intent.icon_state = "intent_grab" - if("disarm") - usr.a_intent = I_DISARM - usr.hud_used.action_intent.icon_state = "intent_disarm" - if("throw") - if(!usr.stat && isturf(usr.loc) && !usr.restrained()) - usr:toggle_throw_mode() - if("drop") - usr.drop_item_v() - - if("module") - if(isrobot(usr)) - var/mob/living/silicon/robot/R = usr - if(R.module) - R.hud_used.toggle_show_robot_modules() - return 1 - R.pick_module() - - if("radio") - if(issilicon(usr)) - usr:radio_menu() - if("panel") - if(issilicon(usr)) - usr:installed_modules() - - if("store") - if(isrobot(usr)) - var/mob/living/silicon/robot/R = usr - R.uneq_active() - R.hud_used.update_robot_modules_display() - - if("Toggle Sensor Augmentation") - if(isrobot(usr)) - var/mob/living/silicon/robot/R = usr - R.sensor_mode() - - if("Toggle Headlamp") - if(isrobot(usr)) - var/mob/living/silicon/robot/R = usr - R.control_headlamp() - - if("module1") - if(istype(usr, /mob/living/silicon/robot)) - usr:toggle_module(1) - - if("module2") - if(istype(usr, /mob/living/silicon/robot)) - usr:toggle_module(2) - - if("module3") - if(istype(usr, /mob/living/silicon/robot)) - usr:toggle_module(3) - - /*if("Allow Walking") - if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. - return - if(!istype(usr.equipped(),/obj/item/weapon/gun)) - usr << "You need your gun in your active hand to do that!" - return - usr.client.AllowTargetMove() - gun_click_time = world.time - - if("Disallow Walking") - if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. - return - if(!istype(usr.equipped(),/obj/item/weapon/gun)) - usr << "You need your gun in your active hand to do that!" - return - usr.client.AllowTargetMove() - gun_click_time = world.time - - if("Allow Running") - if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. - return - if(!istype(usr.equipped(),/obj/item/weapon/gun)) - usr << "You need your gun in your active hand to do that!" - return - usr.client.AllowTargetRun() - gun_click_time = world.time - - if("Disallow Running") - if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. - return - if(!istype(usr.equipped(),/obj/item/weapon/gun)) - usr << "You need your gun in your active hand to do that!" - return - usr.client.AllowTargetRun() - gun_click_time = world.time*/ - - if("Allow Item Use") - if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. - return - if(!istype(usr.get_active_hand(), /obj/item/weapon/gun)) - usr << "You need your gun in your active hand to do that!" - return - usr.client.AllowTargetClick() - gun_click_time = world.time - - - if("Disallow Item Use") - if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. - return - if(!istype(usr.get_active_hand(), /obj/item/weapon/gun)) - usr << "You need your gun in your active hand to do that!" - return - usr.client.AllowTargetClick() - gun_click_time = world.time - - if("Toggle Gun Mode") - usr.client.ToggleGunMode() - - if("AI Core") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.view_core() - - if("Show Camera List") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - var/camera = input(AI) in AI.get_camera_list() - AI.ai_camera_list(camera) - - if("Track With Camera") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - var/target_name = input(AI) as null|anything in AI.trackable_mobs() - if(target_name) - AI.ai_camera_track(target_name) - - if("Toggle Camera Light") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.toggle_camera_light() - - if("Crew Monitoring") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.subsystem_crew_monitor() - - if("Show Crew Manifest") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.ai_roster() - - if("Show Alerts") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.subsystem_alarm_monitor() - - if("Announcement") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.announcement() - - if("Call Emergency Shuttle") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.ai_call_shuttle() - - if("Law Manager") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.subsystem_law_manager() - - if("PDA - Send Message") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.cmd_send_pdamesg(usr) - - if("PDA - Show Message Log") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.cmd_show_message_log(usr) - - if("Take Image") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.aiCamera.toggle_camera_mode() - - if("View Images") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.aiCamera.viewpictures() - - if("Set Sensor Augmentation") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.sensor_mode() - - // Alien - if("night vision") - var/mob/living/carbon/alien/humanoid/A = usr - A.nightvisiontoggle() - - if("toggle leap") - if(istype(usr, /mob/living/carbon/alien/humanoid)) - var/mob/living/carbon/alien/humanoid/hunter/AH = usr - AH.toggle_leap() - - else - return 0 - return 1 /obj/screen/inventory/Click() // At this point in client Click() code we have passed the 1/10 sec check and little else diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 97de7c19e51..7f0e58d3bbb 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -312,7 +312,7 @@ proc/get_id_photo(var/mob/living/carbon/human/H) else clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if(!H.species.bloodflags & BLOOD_SLIME) + if(!H.species.bodyflags & NO_EYES) preview_icon.Blend(eyes_s, ICON_OVERLAY) if(clothes_s) preview_icon.Blend(clothes_s, ICON_OVERLAY) diff --git a/code/datums/mixed.dm b/code/datums/mixed.dm index df066541633..31f7d67af36 100644 --- a/code/datums/mixed.dm +++ b/code/datums/mixed.dm @@ -23,6 +23,9 @@ size = 5.0 var/list/fields = list( ) +/datum/data/record/Destroy() + ..() + return QDEL_HINT_HARDDEL_NOW /datum/data/text name = "text" diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index b0dcf14933f..ae432ee7336 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -174,10 +174,6 @@ if(occupant) user << "\blue The DNA Scanner is already occupied!" return -/* if(isrobot(user)) - if(!istype(user:module, /obj/item/weapon/robot_module/medical)) - user << "You do not have the means to do this!" - return*/ var/mob/living/L = O if(!istype(L) || L.buckled) return @@ -193,7 +189,7 @@ visible_message("[user] puts [L.name] into the DNA Scanner.") put_in(L) if(user.pulling == L) - user.pulling = null + user.stop_pulling() /obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob, params) if(istype(item, /obj/item/weapon/screwdriver)) @@ -243,6 +239,11 @@ qdel(G) return +/obj/machinery/dna_scannernew/relaymove(mob/user as mob) + if(user.incapacitated()) + return 0 //maybe they should be able to get out with cuffs, but whatever + go_out() + /obj/machinery/dna_scannernew/proc/put_in(var/mob/M) if(M.client) M.client.perspective = EYE_PERSPECTIVE @@ -334,7 +335,7 @@ return 0 /obj/machinery/computer/scan_consolenew - name = "DNA Modifier Access Console" + name = "\improper DNA Modifier access console" desc = "Allows you to scan and modify DNA." icon = 'icons/obj/computer.dmi' icon_screen = "dna" diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 821c6598b35..ea28a92cee4 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -301,6 +301,8 @@ Made by Xhuis flags = NO_BLOOD | NO_BREATHE | NO_SCAN | NO_INTORGANS burn_mod = 1.5 //1.5x burn damage, 2x is excessive + silent_steps = 1 + /datum/game_mode/proc/update_shadow_icons_added(datum/mind/shadow_mind) spawn(0) for(var/datum/mind/shadowling in shadows) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 666023d0af8..cbfb8549923 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -120,7 +120,7 @@ if(!H) return 0 switch(H.backbag) if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) - if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) + if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/chemistry(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_chem(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear) @@ -151,7 +151,7 @@ if(!H) return 0 switch(H.backbag) if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) - if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) + if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/genetics(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_gen(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_medsci(H), slot_l_ear) @@ -181,8 +181,8 @@ if(!H) return 0 H.equip_or_collect(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear) switch(H.backbag) - if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/medic(H), slot_back) - if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) + if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/virology(H), slot_back) + if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_vir(H), slot_back) if(4) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_or_collect(new /obj/item/clothing/under/rank/virologist(H), slot_w_uniform) H.equip_or_collect(new /obj/item/device/pda/viro(H), slot_wear_pda) diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 2f57243382f..5247727034a 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -27,7 +27,7 @@ if(!H) return 0 switch(H.backbag) if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) - if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) + if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/science(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/rd(H), slot_l_ear) @@ -65,7 +65,7 @@ if(!H) return 0 switch(H.backbag) if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) - if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) + if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/science(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear) diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm index 30b3e89e496..156ca4c29f4 100644 --- a/code/game/jobs/job/support.dm +++ b/code/game/jobs/job/support.dm @@ -90,7 +90,7 @@ if(!H) return 0 switch(H.backbag) if(1) H.equip_or_collect(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) - if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack(H), slot_back) + if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/botany(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_hyd(H), slot_back) if(4) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 6a0bd412e8f..96849a2905d 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -98,6 +98,8 @@ C.client.eye = src C.resting = 1 C.loc = src.loc + if (user.pulling == C) + user.stop_pulling() for(var/obj/O in src) O.loc = src.loc src.add_fingerprint(user) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 0035170d4dd..bc4b732d047 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -322,6 +322,11 @@ max_chem = E * 20 min_health = -E * 25 +/obj/machinery/sleeper/relaymove(mob/user as mob) + if(user.incapacitated()) + return 0 //maybe they should be able to get out with cuffs, but whatever + go_out() + /obj/machinery/sleeper/process() if(filtering > 0) if(beaker) @@ -566,10 +571,6 @@ if(occupant) user << "The sleeper is already occupied!" return -/* if(isrobot(user)) - if(!istype(user:module, /obj/item/weapon/robot_module/medical)) - user << "You do not have the means to do this!" - return*/ var/mob/living/L = O if(!istype(L) || L.buckled) return @@ -600,7 +601,7 @@ L << "You feel cool air surround you. You go numb as your senses turn inward." src.add_fingerprint(user) if(user.pulling == L) - user.pulling = null + user.stop_pulling() return return diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 9662358a32f..53e49224c6c 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -1,7 +1,7 @@ /obj/machinery/bodyscanner var/mob/living/carbon/occupant var/locked - name = "Body Scanner" + name = "body scanner" icon = 'icons/obj/Cryogenic2.dmi' icon_state = "bodyscanner-open" density = 1 diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index 17ee041e81b..54fd1edeaf3 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -1,5 +1,5 @@ /obj/machinery/ai_slipper - name = "AI Liquid Dispenser" + name = "\improper AI liquid dispenser" icon = 'icons/obj/device.dmi' icon_state = "motion3" layer = 3 diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index fbe43b8095b..97a99e7899d 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -1,7 +1,7 @@ obj/machinery/air_sensor icon = 'icons/obj/stationobjs.dmi' icon_state = "gsensor1" - name = "Gas Sensor" + name = "gas sensor" req_one_access_txt = "24;10" anchored = 1 diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index 948de84f89f..0b1be444c7c 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/area_atmos - name = "Area Air Control" + name = "area air control" desc = "A computer used to control the stationary scrubbers and pumps in the area." icon_screen = "area_atmos" icon_keyboard = "atmos_key" diff --git a/code/game/machinery/bees_items.dm b/code/game/machinery/bees_items.dm index 0a008eb819e..41540788bb7 100644 --- a/code/game/machinery/bees_items.dm +++ b/code/game/machinery/bees_items.dm @@ -29,7 +29,7 @@ /obj/item/weapon/bee_net/verb/empty_bees() set src in usr - set name = "Empty bee net" + set name = "empty bee net" set category = "Object" var/mob/living/carbon/M if(iscarbon(usr)) diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index c91fa3a8597..f63f4e333c1 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -1,5 +1,5 @@ /obj/machinery/biogenerator - name = "Biogenerator" + name = "biogenerator" desc = "Converts plants into biomass, which can be used to construct useful items." icon = 'icons/obj/biogenerator.dmi' icon_state = "biogen-empty" diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index bd0da6f8fc2..6f0af9e4923 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/HolodeckControl - name = "Holodeck Control Computer" + name = "holodeck control computer" desc = "A computer used to control a nearby holodeck." icon_keyboard = "tech_key" icon_screen = "holocontrol" diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index 1daf3be5714..f3e6de46321 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -1,7 +1,7 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/operating - name = "Operating Computer" + name = "operating computer" density = 1 anchored = 1.0 icon_keyboard = "med_key" diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index a95627913f0..74ea7609137 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/aifixer - name = "AI System Integrity Restorer" + name = "\improper AI system integrity restorer" icon = 'icons/obj/computer.dmi' icon_keyboard = "rd_key" icon_screen = "ai-fixer" diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 6cbd71cf35a..cecf755b37d 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -5,7 +5,7 @@ var/global/list/minor_air_alarms = list() /obj/machinery/computer/atmos_alert - name = "Atmospheric Alert Computer" + name = "atmospheric alert computer" desc = "Used to access the station's atmospheric sensors." circuit = /obj/item/weapon/circuitboard/atmos_alert icon_keyboard = "atmos_key" diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 3c0b46e6813..197008c40f7 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -12,8 +12,8 @@ var/datum/nano_module/atmos_control/atmos_control /obj/machinery/computer/atmoscontrol/laptop - name = "Atmospherics Laptop" - desc = "Cheap Nanotrasen Laptop." + name = "atmospherics laptop" + desc = "Cheap Nanotrasen laptop." icon_state = "medlaptop" density = 0 diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index c70ac8d37cc..1e6c8c2f5a6 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -280,7 +280,7 @@ // Other computer monitors. /obj/machinery/computer/security/telescreen - name = "Telescreen" + name = "\improper Telescreen" desc = "Used for watching camera networks." icon = 'icons/obj/stationobjs.dmi' icon_state = "telescreen" @@ -295,7 +295,7 @@ return /obj/machinery/computer/security/telescreen/entertainment - name = "Entertainment Monitor" + name = "entertainment monitor" desc = "Damn, they better have Paradise TV on these things." icon = 'icons/obj/status_display.dmi' icon_state = "entertainment" @@ -305,7 +305,7 @@ luminosity = 0 /obj/machinery/computer/security/wooden_tv - name = "Security Camera Monitor" + name = "security camera monitor" desc = "An old TV hooked into the stations camera network." icon_state = "television" icon_keyboard = null @@ -315,7 +315,7 @@ network = list("SS13") /obj/machinery/computer/security/mining - name = "Outpost Camera Monitor" + name = "outpost camera monitor" desc = "Used to access the various cameras on the outpost." icon_keyboard = "mining_key" icon_screen = "mining" @@ -323,7 +323,7 @@ network = list("Mining Outpost") /obj/machinery/computer/security/engineering - name = "Engineering Camera Monitor" + name = "engineering camera monitor" desc = "Used to monitor fires and breaches." icon_keyboard = "power_key" icon_screen = "engie_cams" diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 020969521a1..4e7dd4e28cf 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -3,7 +3,7 @@ var/time_last_changed_position = 0 /obj/machinery/computer/card - name = "Identification Computer" + name = "identification computer" desc = "Terminal for programming Nanotrasen employee ID cards to access parts of the station." icon_keyboard = "id_key" icon_screen = "id" @@ -428,6 +428,6 @@ var/time_last_changed_position = 0 return 1 /obj/machinery/computer/card/centcom - name = "CentCom Identification Computer" + name = "\improper CentCom identification computer" circuit = /obj/item/weapon/circuitboard/card/centcom req_access = list(access_cent_commander) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 6031cce4552..4873fd9ca80 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/cloning - name = "Cloning Console" + name = "cloning console" icon = 'icons/obj/computer.dmi' icon_keyboard = "med_key" icon_screen = "dna" diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 8a3bd132976..b46e1102d8f 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -6,7 +6,7 @@ // The communications computer /obj/machinery/computer/communications - name = "Communications Console" + name = "communications console" desc = "This can be used for various important functions. Still under developement." icon_keyboard = "tech_key" icon_screen = "comm" diff --git a/code/game/machinery/computer/hologram.dm b/code/game/machinery/computer/hologram.dm index bfd95d46457..2b5f0b92296 100644 --- a/code/game/machinery/computer/hologram.dm +++ b/code/game/machinery/computer/hologram.dm @@ -1,7 +1,7 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/hologram_comp - name = "Hologram Computer" + name = "hologram computer" desc = "Rumoured to control holograms." icon = 'icons/obj/stationobjs.dmi' icon_keyboard = "tech_key" diff --git a/code/game/machinery/computer/honkputer.dm b/code/game/machinery/computer/honkputer.dm index 0b31b365033..06e5d102fb2 100644 --- a/code/game/machinery/computer/honkputer.dm +++ b/code/game/machinery/computer/honkputer.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/HONKputer - name = "HONKputer Mark I" + name = "\improper HONKputer Mark I" desc = "A yellow computer used in case of critically low levels of HONK." icon = 'icons/obj/machines/HONKputer.dmi' icon_state = "honkputer" diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 383c01a519f..f3ddbe5bb0d 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -1,7 +1,7 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/aiupload - name = "AI Upload" + name = "\improper AI upload console" desc = "Used to upload laws to the AI." icon_screen = "command" icon_keyboard = "med_key" @@ -64,7 +64,7 @@ return 1 /obj/machinery/computer/borgupload - name = "Cyborg Upload" + name = "cyborg upload console" desc = "Used to upload laws to Cyborgs." icon_screen = "command" icon_keyboard = "med_key" diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 5c47e0f923f..2e1853c598f 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -1,7 +1,7 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/med_data//TODO:SANITY - name = "Medical Records" + name = "medical records console" desc = "This can be used to check medical records." icon_keyboard = "med_key" icon_screen = "medcomp" @@ -517,8 +517,8 @@ /obj/machinery/computer/med_data/laptop - name = "Medical Laptop" - desc = "Cheap Nanotrasen Laptop." + name = "medical laptop" + desc = "Cheap Nanotrasen laptop." icon_state = "laptop" icon_keyboard = "laptop_key" icon_screen = "medlaptop" diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index e8a975d27b1..0ebb13efcd6 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -5,8 +5,8 @@ /obj/machinery/computer/message_monitor - name = "Message Monitor Console" - desc = "Used to Monitor the crew's messages, that are sent via PDA. Can also be used to view Request Console messages." + name = "message monitoring console" + desc = "Used to monitor the crew's messages that are sent via PDA. It can also be used to view Request Console messages." icon_screen = "comm_logs" light_color = LIGHT_COLOR_GREEN var/hack_icon = "tcboss" diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index a34db3d1526..20509af301d 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -1,8 +1,8 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/pod - name = "Mass Drivers and Pod Doors Control" - desc = "A controll for launching pods. Some people prefer firing Mechas." + name = "mass drivers and pod doors control" + desc = "A control for launching pods. Some people prefer firing Mechas." icon_screen = "mass_driver" light_color = "#555555" circuit = /obj/item/weapon/circuitboard/pod @@ -268,7 +268,7 @@ /obj/machinery/computer/pod/old/syndicate - name = "External Airlock Controls" + name = "external airlock controls" desc = "The Syndicate operate on a tight budget. Operates external airlocks." req_access = list(access_syndicate) circuit = /obj/item/weapon/circuitboard/syndicatedoor @@ -282,7 +282,7 @@ ..() /obj/machinery/computer/pod/old/swf - name = "Magix System IV" + name = "\improper Magix System IV" desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" circuit = /obj/item/weapon/circuitboard/swfdoor @@ -315,7 +315,7 @@ P.failchance = 0//So it has no fail chance when teleporting. P.target = pick(spawn_marauder)//Where the marauder will arrive. spawn_marauder.Remove(P.target) - + for(var/obj/machinery/door/poddoor/M in world) if(M.z != src.z) continue if(M.id_tag == ident_tag) diff --git a/code/game/machinery/computer/pod_tracking_console.dm b/code/game/machinery/computer/pod_tracking_console.dm index 060b58eda90..5ac31a0f567 100644 --- a/code/game/machinery/computer/pod_tracking_console.dm +++ b/code/game/machinery/computer/pod_tracking_console.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/podtracker - name = "Pod Tracking Console" + name = "pod tracking console" icon = 'icons/obj/computer.dmi' icon_keyboard = "tech_key" icon_screen = "rdcomp" @@ -9,10 +9,10 @@ /obj/machinery/computer/podtracker/attack_ai(var/mob/user as mob) return attack_hand(user) - + /obj/machinery/computer/podtracker/attack_hand(user as mob) ui_interact(user) - + /obj/machinery/computer/podtracker/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] var/list/pods[0] @@ -28,7 +28,7 @@ if(myPod.occupant2) occupant2 = myPod.occupant2.name pods.Add(list(list("pod" = "\ref[myPod]", "name" = podname, "occupant" = occupant, "occupant2" = occupant2, "x" = myPod.x, "y" = myPod.y, "z" = myPod.z))) - + data["pods"] = pods ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) @@ -42,6 +42,6 @@ /obj/machinery/computer/podtracker/Topic(href, href_list) if(..()) return 1 - + if(href_list["refresh"]) nanomanager.update_uis(src) diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index ac5d15fc392..6c67ddd71cc 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -1,7 +1,7 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/prisoner - name = "Prisoner Management" + name = "prisoner management console" icon = 'icons/obj/computer.dmi' icon_keyboard = "security_key" icon_screen = "explosive" diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm index 3e860928ef9..4a70b1f74f2 100644 --- a/code/game/machinery/computer/prisonshuttle.dm +++ b/code/game/machinery/computer/prisonshuttle.dm @@ -11,7 +11,7 @@ var/prison_shuttle_time = 0 var/prison_shuttle_timeleft = 0 /obj/machinery/computer/prison_shuttle - name = "Prison Shuttle Console" + name = "prison shuttle console" icon = 'icons/obj/computer.dmi' icon_keyboard = "security_key" icon_screen = "syndishuttle" diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 017702d67fa..9498a070d98 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -1,8 +1,8 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/secure_data//TODO:SANITY - name = "Security Records" - desc = "Used to view and edit personnel's security records" + name = "security records" + desc = "Used to view and edit personnel's security records." icon_keyboard = "security_key" icon_screen = "security" req_one_access = list(access_security, access_forensics_lockers) diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index 28125a24c96..c2dcd3270a0 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/shuttle - name = "Shuttle" + name = "shuttle control conse" desc = "For shuttle control." icon_keyboard = "tech_key" icon_screen = "shuttle" diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index a2adae97cf3..3dc5a599a6e 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -1,7 +1,7 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/skills//TODO:SANITY - name = "Employment Records" + name = "employment records console" desc = "Used to view personnel's employment records" icon_state = "laptop" icon_keyboard = "laptop_key" diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm index 6bd58e74e4f..5d7c67d29ee 100644 --- a/code/game/machinery/computer/specops_shuttle.dm +++ b/code/game/machinery/computer/specops_shuttle.dm @@ -12,7 +12,7 @@ var/specops_shuttle_time = 0 var/specops_shuttle_timeleft = 0 /obj/machinery/computer/specops_shuttle - name = "Spec. Ops. Shuttle Console" + name = "\improper Spec. Ops. shuttle console" icon = 'icons/obj/computer.dmi' icon_keyboard = "security_key" icon_screen = "syndishuttle" diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index 9f1238c56d2..c40e7968145 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/station_alert - name = "Station Alert Console" + name = "station alert console" desc = "Used to access the station's automated alert system." icon_keyboard = "tech_key" icon_screen = "alert:0" diff --git a/code/game/machinery/computer/store.dm b/code/game/machinery/computer/store.dm index 5beab8b5d1e..001578d1fcd 100644 --- a/code/game/machinery/computer/store.dm +++ b/code/game/machinery/computer/store.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/merch - name = "Merch Computer" + name = "merch computer" icon = 'icons/obj/computer.dmi' icon_screen = "comm_logs" circuit = /obj/item/weapon/circuitboard/merch diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm index a0bcff2139a..76d7bf83a6a 100644 --- a/code/game/machinery/computer/syndicate_specops_shuttle.dm +++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm @@ -11,7 +11,7 @@ var/syndicate_elite_shuttle_time = 0 var/syndicate_elite_shuttle_timeleft = 0 /obj/machinery/computer/syndicate_elite_shuttle - name = "Elite Syndicate Squad Shuttle Console" + name = "\improper Elite Syndicate Squad shuttle console" icon = 'icons/obj/computer.dmi' icon_keyboard = "syndie_key" icon_screen = "syndishuttle" diff --git a/code/game/machinery/computer/telecrystalconsoles.dm b/code/game/machinery/computer/telecrystalconsoles.dm index 84b99e4dfe5..d154a09b02e 100644 --- a/code/game/machinery/computer/telecrystalconsoles.dm +++ b/code/game/machinery/computer/telecrystalconsoles.dm @@ -4,12 +4,12 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F /obj/machinery/computer/telecrystals - name = "\improper Telecrystal assignment station" + name = "telecrystal assignment station" desc = "A device used to manage telecrystals during group operations. You shouldn't be looking at this particular one..." ///////////////////////////////////////////// /obj/machinery/computer/telecrystals/uplinker - name = "\improper Telecrystal upload/recieve station" + name = "telecrystal upload/recieve station" desc = "A device used to manage telecrystals during group operations. To use, simply insert your uplink. With your uplink installed \ you can upload your telecrystals to the group's pool using the console, or be assigned additional telecrystals by your lieutenant." icon_state = "tcstation" diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 8419189dee3..9b4bec6516d 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -97,10 +97,6 @@ if(occupant) user << "\blue The cryo cell is already occupied!" return -/* if(isrobot(user)) - if(!istype(user:module, /obj/item/weapon/robot_module/medical)) - user << "You do not have the means to do this!" - return*/ var/mob/living/L = O if(!istype(L) || L.buckled) return @@ -117,7 +113,7 @@ else visible_message("[user] puts [L.name] into the cryo cell.") if(user.pulling == L) - user.pulling = null + user.stop_pulling() /obj/machinery/atmospherics/unary/cryo_cell/process() ..() diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index 988edaf8580..e560f12e8db 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -1,6 +1,6 @@ /obj/machinery/kitchen_machine/microwave - name = "Microwave" + name = "microwave" desc = "A microwave, perfect for reheating things with radiation." icon = 'icons/obj/kitchen.dmi' icon_state = "mw" diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 54355179c8e..7e132f64614 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -1,82 +1,76 @@ var/datum/announcement/minor/slotmachine_announcement = new(do_log = 0) + /obj/machinery/slot_machine - name = "Slot Machine" + name = "slot machine" desc = "Gambling for the antisocial." icon = 'icons/obj/objects.dmi' icon_state = "slots-off" anchored = 1 density = 1 -// mats = 10 - var/money = 25000 var/plays = 0 var/working = 0 var/balance=0 - attack_hand(var/mob/user as mob) - if(user.mind) - if(user.mind.initial_account) - balance = user.mind.initial_account.money - user.machine = src - if (src.working) - var/dat = {"Slot Machine
-

- Please wait!
"} - user << browse(dat, "window=slotmachine;size=450x500") - onclose(user, "slotmachine") - else - var/dat = {"Slot Machine
-

- Five credits to play!
- Prize Money Available: [src.money]
- Credits Remaining: [balance]
- [src.plays] players have tried their luck today!
-

- Play!
"} - user << browse(dat, "window=slotmachine;size=400x500") - onclose(user, "slotmachine") +/obj/machinery/slot_machine/attack_hand(var/mob/user as mob) + if(user.mind) + if(user.mind.initial_account) + balance = user.mind.initial_account.money + user.machine = src + if (working) + var/dat = {"Slot Machine
+

+ Please wait!
"} + user << browse(dat, "window=slotmachine;size=450x500") + onclose(user, "slotmachine") + else + var/dat = {"Slot Machine
+

+ Five credits to play!
+ Credits Remaining: [balance]
+ [plays] players have tried their luck today!
+

+
Play!
"} + user << browse(dat, "window=slotmachine;size=400x500") + onclose(user, "slotmachine") - Topic(href, href_list) - if(href_list["ops"]) - var/operation = text2num(href_list["ops"]) - if(operation == 1) // Play -/* if (src.working == 1) - usr << "\red You need to wait until the machine stops spinning!" - return */ - if (balance < 5) - usr << "\red Insufficient money to play!" - return - usr.mind.initial_account.money -= 5 - src.money += 5 - src.plays += 1 - src.working = 1 - src.icon_state = "slots-on" - usr << "Let's roll!" - var/roll = rand(1,10000) - spawn(100) - if (roll == 1) - for(var/mob/O in hearers(src, null)) - O.show_message(text("[] says, 'JACKPOT! You win [src.money]!'", src), 1) - slotmachine_announcement.Announce("Congratulations [usr.name] on winning the Jackpot!", "Jackpot Winner") - usr.mind.initial_account.money += src.money - src.money = 0 - else if (roll > 1 && roll <= 10) - for(var/mob/O in hearers(src, null)) - O.show_message(text("[] says, 'Big Winner! You win five thousand credits!'", src), 1) - usr.mind.initial_account.money += 5000 - src.money -= 5000 - else if (roll > 10 && roll <= 100) - for(var/mob/O in hearers(src, null)) - O.show_message(text("[] says, 'Winner! You win five hundred credits!'", src), 1) - usr.mind.initial_account.money += 500 - src.money -= 500 - else if (roll > 100 && roll <= 1000) - usr << "\blue You win a free game!" - usr.mind.initial_account.money += 5 - src.money -= 5 - else - usr << "\red No luck!" - src.working = 0 - src.icon_state = "slots-off" - src.add_fingerprint(usr) - src.updateUsrDialog() - return +/obj/machinery/slot_machine/Topic(href, href_list) + if(href_list["ops"]) + var/operation = text2num(href_list["ops"]) + if(operation == 1) // Play + if (working == 1) + usr << "You need to wait until the machine stops spinning!" + return + if (balance < 5) + usr << "Insufficient money to play!" + return + usr.mind.initial_account.money -= 5 + plays += 1 + working = 1 + icon_state = "slots-on" + var/roll = rand(1,10000) + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + spawn(30) + if (roll == 1) + playsound(src.loc, 'sound/effects/engine_alert2.ogg', 50, 0) + visible_message("[src] says, 'JACKPOT! [usr.name] has won two hundred and fifty thousand credits!'") + slotmachine_announcement.Announce("Congratulations to [usr.name] on winning the jackpot of two hundred and fifty thousand credits!", "Jackpot Winner") + usr.mind.initial_account.money += 250000 + else if (roll > 1 && roll <= 10) + playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) + visible_message("[src] says, 'Big Winner! [usr.name] has won five thousand credits!'") + usr.mind.initial_account.money += 5000 + else if (roll > 10 && roll <= 100) + playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) + visible_message("[src] says, 'Winner! [usr.name] has won win five hundred credits!'") + usr.mind.initial_account.money += 500 + else if (roll > 100 && roll <= 1000) + playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) + usr << "You win 5 credits!" + usr.mind.initial_account.money += 5 + else + usr << "No luck!" + working = 0 + icon_state = "slots-off" + add_fingerprint(usr) + updateUsrDialog() + return diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index 9bc3e77fa1e..a16bbe7b870 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -4,7 +4,7 @@ light_color = LIGHT_COLOR_DARKGREEN /obj/machinery/computer/telecomms/server - name = "Telecommunications Server Monitor" + name = "telecommunications server monitor" icon_screen = "comm_logs" diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm index 1bd424c0142..f966f477057 100644 --- a/code/game/machinery/telecomms/telemonitor.dm +++ b/code/game/machinery/telecomms/telemonitor.dm @@ -8,7 +8,7 @@ /obj/machinery/computer/telecomms/monitor - name = "Telecommunications Monitor" + name = "telecommunications monitor" icon_screen = "comm_monitor" var/screen = 0 // the screen number: diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm index 6e93ab8b7c6..878f39b0394 100644 --- a/code/game/machinery/telecomms/traffic_control.dm +++ b/code/game/machinery/telecomms/traffic_control.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/telecomms/traffic - name = "Telecommunications Traffic Control" + name = "telecommunications traffic control" var/screen = 0 // the screen number: var/list/servers = list() // the servers located by the computer diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index d0b62cef441..2df044d7e8a 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/teleporter - name = "Teleporter Control Console" + name = "teleporter control console" desc = "Used to control a linked teleportation Hub and Station." icon_screen = "teleport" icon_keyboard = "teleport_key" diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index eddbff40b5f..8d414c2168a 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -35,7 +35,7 @@ * A vending machine */ /obj/machinery/vending - name = "Vendomat" + name = "\improper Vendomat" desc = "A generic vending machine." icon = 'icons/obj/vending.dmi' icon_state = "generic" @@ -697,7 +697,7 @@ /* /obj/machinery/vending/atmospherics //Commenting this out until someone ponies up some actual working, broken, and unpowered sprites - Quarxink - name = "Tank Vendor" + name = "\improper Tank Vendor" desc = "A vendor with a wide variety of masks and gas tanks." icon = 'icons/obj/objects.dmi' icon_state = "dispenser" @@ -707,7 +707,7 @@ */ /obj/machinery/vending/boozeomat - name = "Booze-O-Mat" + name = "\improper Booze-O-Mat" desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles icon_deny = "boozeomat-deny" @@ -743,7 +743,7 @@ component_parts += new /obj/item/weapon/vending_refill/boozeomat(0) /obj/machinery/vending/coffee - name = "Hot Drinks machine" + name = "\improper Hot Drinks machine" desc = "A vending machine which dispenses hot drinks." product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies" icon_state = "coffee" @@ -767,8 +767,8 @@ component_parts += new /obj/item/weapon/vending_refill/coffee(0) /obj/machinery/vending/snack - name = "Getmore Chocolate Corp" - desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars" + name = "\improper Getmore Chocolate Corp" + desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars." product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" icon_state = "snack" @@ -792,8 +792,8 @@ component_parts += new /obj/item/weapon/vending_refill/snack(0) /obj/machinery/vending/chinese - name = "Mr. Chang" - desc = "A self-serving chinese food machine, for all your chinese food needs." + name = "\improper Mr. Chang" + desc = "A self-serving Chinese food machine, for all your Chinese food needs." product_slogans = "Taste 5000 years of culture!" icon_state = "snack" products = list(/obj/item/weapon/reagent_containers/food/snacks/chinese/chowmein = 5, /obj/item/weapon/reagent_containers/food/snacks/chinese/tao = 5, /obj/item/weapon/reagent_containers/food/snacks/chinese/newdles = 5, @@ -802,8 +802,8 @@ /obj/item/weapon/reagent_containers/food/snacks/chinese/rice = 50, /obj/item/weapon/reagent_containers/food/snacks/wingfangchu = 50) /obj/machinery/vending/cola - name = "Robust Softdrinks" - desc = "A softdrink vendor provided by Robust Industries, LLC." + name = "\improper Robust Softdrinks" + desc = "A soft drink vendor provided by Robust Industries, LLC." icon_state = "Cola_Machine" product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!" product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space." @@ -829,8 +829,8 @@ //This one's from bay12 /obj/machinery/vending/cart - name = "PTech" - desc = "Cartridges for PDAs" + name = "\improper PTech" + desc = "Cartridges for PDA's." product_slogans = "Carts to go!" icon_state = "cart" icon_deny = "cart-deny" @@ -859,8 +859,8 @@ contraband = list(/obj/item/clothing/under/patriotsuit = 1,/obj/item/weapon/bedsheet/patriot = 3) /obj/machinery/vending/cigarette - name = "Cigarette machine" //OCD had to be uppercase to look nice with the new formating - desc = "If you want to get cancer, might as well do it in style" + name = "cigarette machine" + desc = "If you want to get cancer, might as well do it in style." product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." vend_delay = 34 @@ -882,7 +882,7 @@ component_parts += new /obj/item/weapon/vending_refill/cigarette(0) /obj/machinery/vending/medical - name = "NanoMed Plus" + name = "\improper NanoMed Plus" desc = "Medical drug dispenser." icon_state = "med" icon_deny = "med-deny" @@ -898,7 +898,7 @@ //This one's from bay12 /obj/machinery/vending/plasmaresearch - name = "Toximate 3000" + name = "\improper Toximate 3000" desc = "All the fine parts you need in one vending machine!" products = list(/obj/item/clothing/under/rank/scientist = 6,/obj/item/clothing/suit/bio_suit = 6,/obj/item/clothing/head/bio_hood = 6, /obj/item/device/transfer_valve = 6,/obj/item/device/assembly/timer = 6,/obj/item/device/assembly/signaler = 6, @@ -906,7 +906,7 @@ contraband = list(/obj/item/device/assembly/health = 3) /obj/machinery/vending/wallmed1 - name = "NanoMed" + name = "\improper NanoMed" desc = "Wall-mounted Medical Equipment dispenser." product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?" icon_state = "wallmed" @@ -917,7 +917,7 @@ contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) /obj/machinery/vending/wallmed2 - name = "NanoMed" + name = "\improper NanoMed" desc = "Wall-mounted Medical Equipment dispenser." icon_state = "wallmed" icon_deny = "wallmed-deny" @@ -928,7 +928,7 @@ contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3) /obj/machinery/vending/wallmed1/syndicate - name = "SyndiMed Plus" + name = "\improper SyndiMed Plus" desc = "EVIL wall-mounted Medical Equipment dispenser." icon_state = "syndimed" icon_deny = "syndimed-deny" @@ -938,8 +938,8 @@ contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) /obj/machinery/vending/security - name = "SecTech" - desc = "A security equipment vendor" + name = "\improper SecTech" + desc = "A security equipment vendor." product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?" icon_state = "sec" icon_deny = "sec-deny" @@ -949,7 +949,7 @@ contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2,/obj/item/device/hailer = 5) /obj/machinery/vending/hydronutrients - name = "NutriMax" + name = "\improper NutriMax" desc = "A plant nutrients vendor" product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." @@ -962,7 +962,7 @@ ///obj/item/beezeez = 45, /obj/machinery/vending/hydroseeds - name = "MegaSeed Servitor" + name = "\improper MegaSeed Servitor" desc = "When you need seeds fast!" product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!" product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!" @@ -1007,7 +1007,7 @@ src.product_records.Add(product) /obj/machinery/vending/magivend - name = "MagiVend" + name = "\improper MagiVend" desc = "A magic vending machine." icon_state = "MagiVend" product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!" @@ -1056,8 +1056,8 @@ component_parts += new /obj/item/weapon/vending_refill/autodrobe(0) /obj/machinery/vending/dinnerware - name = "Dinnerware" - desc = "A kitchen and restaurant equipment vendor" + name = "\improper Dinnerware" + desc = "A kitchen and restaurant equipment vendor." product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." icon_state = "dinnerware" products = list(/obj/item/weapon/storage/bag/tray = 8,/obj/item/weapon/kitchen/utensil/fork = 6, @@ -1072,15 +1072,15 @@ contraband = list(/obj/item/weapon/kitchen/utensil/spoon = 2,/obj/item/weapon/kitchen/utensil/knife = 2,/obj/item/weapon/kitchen/rollingpin = 2, /obj/item/weapon/butch = 2) /obj/machinery/vending/sovietsoda - name = "BODA" - desc = "Old sweet water vending machine" + name = "\improper BODA" + desc = "Old sweet water vending machine." icon_state = "sovietsoda" product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." products = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda = 30) contraband = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/cola = 20) /obj/machinery/vending/tool - name = "YouTool" + name = "\improper YouTool" desc = "Tools for tools." icon_state = "tool" icon_deny = "tool-deny" @@ -1091,7 +1091,7 @@ premium = list(/obj/item/clothing/gloves/color/yellow = 1) /obj/machinery/vending/engivend - name = "Engi-Vend" + name = "\improper Engi-Vend" desc = "Spare tool vending. What? Did you expect some witty description?" icon_state = "engivend" icon_deny = "engivend-deny" @@ -1102,7 +1102,7 @@ //This one's from bay12 /obj/machinery/vending/engineering - name = "Robco Tool Maker" + name = "\improper Robco Tool Maker" desc = "Everything you need for do-it-yourself station repair." icon_state = "engi" icon_deny = "engi-deny" @@ -1119,7 +1119,7 @@ //This one's from bay12 /obj/machinery/vending/robotics - name = "Robotech Deluxe" + name = "\improper Robotech Deluxe" desc = "All the tools you need to create your own robot army." icon_state = "robotics" icon_deny = "robotics-deny" @@ -1132,7 +1132,7 @@ /obj/machinery/vending/eva - name = "Hardsuit Kits" + name = "\improper Hardsuit Kits" desc = "Conversion kits for your alien hardsuit needs." products = list(/obj/item/device/modkit = 6,/obj/item/device/modkit/tajaran = 6,/obj/item/device/modkit/unathi = 6,/obj/item/device/modkit/skrell = 6,/obj/item/device/modkit/vox = 6) @@ -1149,20 +1149,20 @@ contraband = list(/obj/item/weapon/kitchen/utensil/knife = 6) /obj/machinery/vending/hatdispenser - name = "Hatlord 9000" - desc = "It doesn't seem the slightist bit unusual. This frustrates you immensly." + name = "\improper Hatlord 9000" + desc = "It doesn't seem the slightest bit unusual. This frustrates you immensely." icon_state = "hats" - product_ads = "Warning, not all hats are dog/monkey compatable. Apply forcefully with care.;Apply directly to the forehead.;Who doesn't love spending cash on hats?!;From the people that brought you collectable hat crates, Hatlord!" + product_ads = "Warning, not all hats are dog/monkey compatible. Apply forcefully with care.;Apply directly to the forehead.;Who doesn't love spending cash on hats?!;From the people that brought you collectable hat crates, Hatlord!" products = list(/obj/item/clothing/head/bowlerhat = 10,/obj/item/clothing/head/beaverhat = 10,/obj/item/clothing/head/boaterhat = 10,/obj/item/clothing/head/fedora = 10,/obj/item/clothing/head/fez = 10) contraband = list(/obj/item/clothing/head/bearpelt = 5) premium = list(/obj/item/clothing/head/soft/rainbow = 1) refill_canister = /obj/item/weapon/vending_refill/hatdispenser /obj/machinery/vending/suitdispenser - name = "Suitlord 9000" + name = "\improper Suitlord 9000" desc = "You wonder for a moment why all of your shirts and pants come conjoined. This hurts your head and you stop thinking about it." icon_state = "suits" - product_ads = "Pre-Ironed, Pre-Washed, Pre-Wor-*BZZT*;Blood of your enemys washes right out!;Who are YOU wearing?;Look dapper! Look like an idiot!;Dont carry your size? How about you shave off some pounds you fat lazy- *BZZT*" + product_ads = "Pre-Ironed, Pre-Washed, Pre-Wor-*BZZT*;Blood of your enemies washes right out!;Who are YOU wearing?;Look dapper! Look like an idiot!;Dont carry your size? How about you shave off some pounds you fat lazy- *BZZT*" products = list(/obj/item/clothing/under/color/black = 10,/obj/item/clothing/under/color/blue = 10,/obj/item/clothing/under/color/green = 10,/obj/item/clothing/under/color/grey = 10,/obj/item/clothing/under/color/pink = 10,/obj/item/clothing/under/color/red = 10, /obj/item/clothing/under/color/white = 10, /obj/item/clothing/under/color/yellow = 10,/obj/item/clothing/under/color/lightblue = 10,/obj/item/clothing/under/color/aqua = 10,/obj/item/clothing/under/color/purple = 10,/obj/item/clothing/under/color/lightgreen = 10, /obj/item/clothing/under/color/lightblue = 10,/obj/item/clothing/under/color/lightbrown = 10,/obj/item/clothing/under/color/brown = 10,/obj/item/clothing/under/color/yellowgreen = 10,/obj/item/clothing/under/color/darkblue = 10,/obj/item/clothing/under/color/lightred = 10, /obj/item/clothing/under/color/darkred = 10) @@ -1171,8 +1171,8 @@ refill_canister = /obj/item/weapon/vending_refill/suitdispenser /obj/machinery/vending/shoedispenser - name = "Shoelord 9000" - desc = "Wow, hatlord looked fancy, suitlord looked streamlined, and this is just normal. The guy who disigned these must be an idiot." + name = "\improper Shoelord 9000" + desc = "Wow, hatlord looked fancy, suitlord looked streamlined, and this is just normal. The guy who designed these must be an idiot." icon_state = "shoes" product_ads = "Put your foot down!;One size fits all!;IM WALKING ON SUNSHINE!;No hobbits allowed.;NO PLEASE WILLY, DONT HURT ME- *BZZT*" products = list(/obj/item/clothing/shoes/black = 10,/obj/item/clothing/shoes/brown = 10,/obj/item/clothing/shoes/blue = 10,/obj/item/clothing/shoes/green = 10,/obj/item/clothing/shoes/yellow = 10,/obj/item/clothing/shoes/purple = 10,/obj/item/clothing/shoes/red = 10,/obj/item/clothing/shoes/white = 10,/obj/item/clothing/shoes/sandal=10) @@ -1181,7 +1181,7 @@ refill_canister = /obj/item/weapon/vending_refill/shoedispenser /obj/machinery/vending/syndicigs - name = "Suspicious Cigarette Machine" + name = "\improper Suspicious Cigarette Machine" desc = "Smoke 'em if you've got 'em." product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." @@ -1190,7 +1190,7 @@ products = list(/obj/item/weapon/storage/fancy/cigarettes/syndicate = 10,/obj/item/weapon/lighter/random = 5) /obj/machinery/vending/syndisnack - name = "Getmore Chocolate Corp" + name = "\improper Getmore Chocolate Corp" desc = "A modified snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars" product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" @@ -1202,7 +1202,7 @@ //This one's from NTstation //don't forget to change the refill size if you change the machine's contents! /obj/machinery/vending/clothing - name = "ClothesMate" //renamed to make the slogan rhyme + name = "\improper ClothesMate" //renamed to make the slogan rhyme desc = "A vending machine for clothing." icon_state = "clothes" product_slogans = "Dress for success!;Prepare to look swagalicious!;Look at all this free swag!;Why leave style up to fate? Use the ClothesMate!" @@ -1239,7 +1239,7 @@ component_parts += new /obj/item/weapon/vending_refill/clothing(0) /obj/machinery/vending/artvend - name = "ArtVend" + name = "\improper ArtVend" desc = "A vending machine for art supplies." product_slogans = "Stop by for all your artistic needs!;Color the floors with crayons, not blood!;Don't be a starving artist, use ArtVend. ;Don't fart, do art!" product_ads = "Just like Kindergarten!;Now with 1000% more vibrant colors!;Screwing with the janitor was never so easy!;Creativity is at the heart of every spessman." @@ -1254,7 +1254,7 @@ premium = list(/obj/item/weapon/contraband/poster = 5) /obj/machinery/vending/crittercare - name = "CritterCare" + name = "\improper CritterCare" desc = "A vending machine for pet supplies." product_slogans = "Stop by for all your animal's needs!;Cuddly pets deserve a stylish collar!;Pets in space, what could be more adorable?;Freshest fish eggs in the system!;Rocks are the perfect pet, buy one today!" product_ads = "House-training costs extra!;Now with 1000% more cat hair!;Allergies are a sign of weakness!;Dogs are man's best friend. Remember that Vulpkanin!; Heat lamps for Unathi!; Vox-y want a cracker?" @@ -1282,4 +1282,4 @@ component_parts += V component_parts += new /obj/item/weapon/vending_refill/crittercare(0) component_parts += new /obj/item/weapon/vending_refill/crittercare(0) - component_parts += new /obj/item/weapon/vending_refill/crittercare(0) \ No newline at end of file + component_parts += new /obj/item/weapon/vending_refill/crittercare(0) diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index a32e32c1075..f566b41bf2a 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -198,6 +198,9 @@ update_equip_info() return + container_resist(var/mob/living/L) + go_out() + update_equip_info() if(..()) send_byjax(chassis.occupant,"msleeper.browser","lossinfo",get_occupant_dam()) diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index f50bc1327dd..7a01a53a8b9 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -198,7 +198,7 @@ return /obj/machinery/computer/mech_bay_power_console - name = "Mech Bay Power Control Console" + name = "mech bay power control console" density = 1 anchored = 1 icon = 'icons/obj/computer.dmi' diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index f85a1586d26..6cc31ad8136 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/mecha - name = "Exosuit Control" + name = "exosuit control console" icon = 'icons/obj/computer.dmi' icon_keyboard = "rd_key" icon_screen = "mecha" diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm index b08245b010f..9aa4263859a 100644 --- a/code/game/objects/items/random_items.dm +++ b/code/game/objects/items/random_items.dm @@ -27,7 +27,7 @@ /obj/item/stack/sheet/animalhide/random - name = "Random animal hide" + name = "random animal hide" New() ..() spawn(1) @@ -80,7 +80,7 @@ name = "unlabelled bottle" pixel_x = rand(-10,10) pixel_y = rand(-10,10) - + /obj/item/weapon/reagent_containers/food/drinks/bottle/random_drink name = "unlabelled drink" icon = 'icons/obj/drinks.dmi' @@ -96,7 +96,7 @@ icon_state = pick("alco-white","alco-green","alco-blue","alco-clear","alco-red") pixel_x = rand(-5,5) pixel_y = rand(-5,5) - + /obj/item/weapon/reagent_containers/food/drinks/bottle/random_reagent // Same as the chembottle code except the container name = "unlabelled drink?" icon = 'icons/obj/drinks.dmi' @@ -146,7 +146,7 @@ // ------------------------------------- /obj/structure/closet/crate/secure/unknownchemicals - name = "Grey-market Chemicals Grab Pack" + name = "grey-market chemicals grab pack" desc = "Crate full of chemicals of unknown type and value from a 'trusted' source." req_one_access = list(access_chemistry,access_research,access_qm) // the qm knows a guy, you see. @@ -172,7 +172,7 @@ return /obj/structure/closet/crate/secure/chemicals - name = "Chemical Supply Kit" + name = "chemical supply kit" desc = "Full of basic chemistry supplies." req_one_access = list(access_chemistry,access_research) @@ -229,7 +229,7 @@ */ /obj/structure/closet/secure_closet/random_drinks - name = "Unlabelled Booze" + name = "unlabelled booze closet" req_access = list(access_bar) icon_state = "cabinetdetective_locked" icon_closed = "cabinetdetective" diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 0e16bfe18ae..0cef06f2fa2 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -366,8 +366,8 @@ for(var/obj/item/organ/external/O in H.organs) total_brute += O.brute_dam total_burn += O.burn_dam - if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations)) - tobehealed = health + threshold + if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations)) + tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived H.adjustOxyLoss(tobehealed) H.adjustToxLoss(tobehealed) @@ -475,8 +475,8 @@ for(var/obj/item/organ/external/O in H.organs) total_brute += O.brute_dam total_burn += O.burn_dam - if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations)) - tobehealed = health + threshold + if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations)) + tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived H.adjustOxyLoss(tobehealed) H.adjustToxLoss(tobehealed) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index ae796523aa9..64a5ad53948 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -63,6 +63,9 @@ overlays.Cut() return + if (can_operate(M)) + do_surgery(M, user, src) + /obj/item/weapon/kitchen/utensil/fork name = "fork" desc = "It's a fork. Sure is pointy." diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm index 31df6806d10..d40799ef1b9 100644 --- a/code/game/objects/items/weapons/lighters.dm +++ b/code/game/objects/items/weapons/lighters.dm @@ -17,7 +17,7 @@ var/lit = 0 /obj/item/weapon/lighter/zippo - name = "Zippo lighter" + name = "zippo lighter" desc = "The zippo." icon_state = "zippo" item_state = "zippo" @@ -101,7 +101,7 @@ icon_state = "zippo_nt_off" icon_on = "zippo_nt_on" icon_off = "zippo_nt_off" - + /obj/item/weapon/lighter/zippo/blue name = "blue zippo lighter" desc = "A zippo lighter made of some blue metal." @@ -109,20 +109,20 @@ icon_on = "bluezippoon" icon_off = "bluezippo" -/obj/item/weapon/lighter/zippo/black +/obj/item/weapon/lighter/zippo/black name = "black zippo lighter" desc = "A black zippo lighter." icon_state = "blackzippo" icon_on = "blackzippoon" icon_off = "blackzippo" -/obj/item/weapon/lighter/zippo/engraved +/obj/item/weapon/lighter/zippo/engraved name = "engraved zippo lighter" desc = "A intricately engraved zippo lighter." icon_state = "engravedzippo" icon_on = "engravedzippoon" icon_off = "engravedzippo" - + /obj/item/weapon/lighter/zippo/gonzofist name = "Gonzo Fist zippo" desc = "A Zippo lighter with the iconic Gonzo Fist on a matte black finish." diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 5c5953d4085..37f7fccbc94 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -120,6 +120,36 @@ icon_state = "engiepack" item_state = "engiepack" +/obj/item/weapon/storage/backpack/botany + name = "botany backpack" + desc = "It's a backpack made of all-natural fibers." + icon_state = "botpack" + item_state = "botpack" + +/obj/item/weapon/storage/backpack/chemistry + name = "chemistry backpack" + desc = "A backpack specially designed to repel stains and hazardous liquids." + icon_state = "chempack" + item_state = "chempack" + +/obj/item/weapon/storage/backpack/genetics + name = "genetics backpack" + desc = "A bag designed to be super tough, just in case someone hulks out on you." + icon_state = "genepack" + item_state = "genepack" + +/obj/item/weapon/storage/backpack/science + name = "science backpack" + desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma." + icon_state = "toxpack" + item_state = "toxpack" + +/obj/item/weapon/storage/backpack/virology + name = "virology backpack" + desc = "A backpack made of hypo-allergenic fibers. It's designed to help prevent the spread of disease. Smells like monkey." + icon_state = "viropack" + item_state = "viropack" + /* * Satchel Types */ @@ -149,13 +179,11 @@ name = "industrial satchel" desc = "A tough satchel with extra pockets." icon_state = "satchel-eng" - item_state = "engiepack" /obj/item/weapon/storage/backpack/satchel_med name = "medical satchel" desc = "A sterile satchel used in medical departments." icon_state = "satchel-med" - item_state = "medicalpack" /obj/item/weapon/storage/backpack/satchel_vir name = "virologist satchel" @@ -181,18 +209,16 @@ name = "security satchel" desc = "A robust satchel for security related needs." icon_state = "satchel-sec" - item_state = "securitypack" /obj/item/weapon/storage/backpack/satchel_hyd name = "hydroponics satchel" desc = "A green satchel for plant related work." - icon_state = "satchel_hyd" + icon_state = "satchel-hyd" /obj/item/weapon/storage/backpack/satchel_cap name = "captain's satchel" desc = "An exclusive satchel for Nanotrasen officers." icon_state = "satchel-cap" - item_state = "captainpack" /obj/item/weapon/storage/backpack/satchel_flat name = "smuggler's satchel" diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index 42641e5cb00..22899fe36d4 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -197,7 +197,7 @@ icon_locking = "safeb" icon_sparking = "safespark" force = 8.0 - w_class = 8.0 + w_class = 5.0 max_w_class = 8 anchored = 1.0 density = 0 diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index d8256e6e983..2cc2f739dcc 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -4,6 +4,11 @@ * Fireaxe * Double-Bladed Energy Swords * Spears + * Kidan spear + * Chainsaw + * Singularity hammer + * Mjolnnir + * Knighthammer */ /*################################################################## @@ -34,6 +39,9 @@ else //something wrong name = "[initial(name)]" update_icon() + if(user) + user.update_inv_r_hand() + user.update_inv_l_hand() if(isrobot(user)) user << "You free up your module." else @@ -59,6 +67,9 @@ force = force_wielded name = "[name] (Wielded)" update_icon() + if(user) + user.update_inv_r_hand() + user.update_inv_l_hand() if(isrobot(user)) user << "You dedicate your module to [name]." else diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index bc65d324d82..a6e8ef3ca57 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -256,3 +256,6 @@ a { anchored = 0 step_towards(src,S) else step_towards(src,S) + +/obj/proc/container_resist(var/mob/living) + return diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 1c8498c6cee..752d3dcb083 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -365,3 +365,42 @@ open() if(AM.loc == src) return 0 return 1 + +/obj/structure/closet/container_resist(var/mob/living/L) + var/breakout_time = 2 //2 minutes by default + if(opened) + if (L.loc == src) + L.forceMove(get_turf(src)) // Let's just be safe here + return //Door's open... wait, why are you in it's contents then? + if(!welded) + return //closed but not welded... + // else Meh, lets just keep it at 2 minutes for now + // breakout_time++ //Harder to get out of welded lockers than locked lockers + + //okay, so the closet is either welded or locked... resist!!! + L.changeNext_move(CLICK_CD_BREAKOUT) + L.last_special = world.time + CLICK_CD_BREAKOUT + L << "You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)" + for(var/mob/O in viewers(usr.loc)) + O.show_message("The [src] begins to shake violently!", 1) + + + spawn(0) + if(do_after(L,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds + if(!src || !L || L.stat != CONSCIOUS || L.loc != src || opened) //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened + return + + //Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'... + if(!welded) + return + + //Well then break it! + welded = 0 + update_icon() + usr << "You successfully break out!" + for(var/mob/O in viewers(L.loc)) + O.show_message("\the [usr] successfully broke out of \the [src]!", 1) + if(istype(src.loc, /obj/structure/bigDelivery)) //nullspace ect.. read the comment above + var/obj/structure/bigDelivery/BD = src.loc + BD.attack_hand(usr) + open() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index 22ea8981563..82897dfe61a 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -1,6 +1,6 @@ //I still dont think this should be a closet but whatever /obj/structure/closet/fireaxecabinet - name = "Fire Axe Cabinet" + name = "fire axe cabinet" desc = "There is small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." var/obj/item/weapon/twohanded/fireaxe/fireaxe = new/obj/item/weapon/twohanded/fireaxe icon_state = "fireaxe1000" 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 05f0b653e13..908a8dc26c4 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -120,7 +120,7 @@ //Paramedic /obj/structure/closet/paramedic - name = "Paramedic Wardrobe" + name = "paramedic wardrobe" desc = "It's a storage unit for paramedic equipment." icon_state = "blue" icon_closed = "blue" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm index 95ac7f0c949..38321723e2a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm @@ -1,5 +1,5 @@ /obj/structure/closet/secure_closet/bar - name = "Booze" + name = "Booze cabinet" req_access = list(access_bar) icon_state = "cabinetdetective_locked" icon_closed = "cabinetdetective" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index c410617775c..e7d23c4a795 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -1,5 +1,5 @@ /obj/structure/closet/secure_closet/cargotech - name = "Cargo Technician's Locker" + name = "cargo technician's locker" req_access = list(access_cargo) icon_state = "securecargo1" icon_closed = "securecargo" @@ -20,7 +20,7 @@ return /obj/structure/closet/secure_closet/quartermaster - name = "Quartermaster's Locker" + name = "quartermaster's locker" req_access = list(access_qm) icon_state = "secureqm1" icon_closed = "secureqm" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 7dcc838b66f..0ce79c29b17 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -1,5 +1,5 @@ /obj/structure/closet/secure_closet/engineering_chief - name = "Chief Engineer's Locker" + name = "chief engineer's locker" req_access = list(access_ce) icon_state = "securece1" icon_closed = "securece" @@ -35,7 +35,7 @@ return /obj/structure/closet/secure_closet/engineering_electrical - name = "Electrical Supplies" + name = "electrical supplies locker" req_access = list(access_engine_equip) icon_state = "secureengelec1" icon_closed = "secureengelec" @@ -65,7 +65,7 @@ /obj/structure/closet/secure_closet/engineering_welding - name = "Welding Supplies" + name = "welding supplies locker" req_access = list(access_engine_equip) icon_state = "secureengweld1" icon_closed = "secureengweld" @@ -89,7 +89,7 @@ /obj/structure/closet/secure_closet/engineering_personal - name = "Engineer's Locker" + name = "engineer's locker" req_access = list(access_engine_equip) icon_state = "secureeng1" icon_closed = "secureeng" @@ -119,7 +119,7 @@ return /obj/structure/closet/secure_closet/atmos_personal - name = "Technician's Locker" + name = "technician's locker" req_access = list(access_atmospherics) icon_state = "secureeng1" icon_closed = "secureeng" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index ef44ad76adc..9342b704087 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -24,7 +24,7 @@ return /obj/structure/closet/secure_closet/freezer/kitchen - name = "Kitchen Cabinet" + name = "kitchen cabinet" req_access = list(access_kitchen) New() @@ -43,7 +43,7 @@ /obj/structure/closet/secure_closet/freezer/meat - name = "Meat Fridge" + name = "meat fridge" icon_state = "fridge1" icon_closed = "fridge" icon_locked = "fridge1" @@ -62,7 +62,7 @@ /obj/structure/closet/secure_closet/freezer/fridge - name = "Refrigerator" + name = "refrigerator" icon_state = "fridge1" icon_closed = "fridge" icon_locked = "fridge1" @@ -85,7 +85,7 @@ /obj/structure/closet/secure_closet/freezer/money - name = "Freezer" + name = "freezer" icon_state = "fridge1" icon_closed = "fridge" icon_locked = "fridge1" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index fa15c6926e2..c661f3bead0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -1,5 +1,5 @@ /obj/structure/closet/secure_closet/hydroponics - name = "Botanist's locker" + name = "botanist's locker" req_access = list(access_hydroponics) icon_state = "hydrosecure1" icon_closed = "hydrosecure" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index a2bc3cc0f80..2de9a2adf45 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -1,5 +1,5 @@ /obj/structure/closet/secure_closet/medical1 - name = "Medicine Closet" + name = "medicine closet" desc = "Filled with medical junk." icon_state = "medical1" icon_closed = "medical" @@ -28,7 +28,7 @@ /obj/structure/closet/secure_closet/medical2 - name = "Anesthetic" + name = "anesthetic locker" desc = "Used to knock people out." icon_state = "medical1" icon_closed = "medical" @@ -53,7 +53,7 @@ /obj/structure/closet/secure_closet/medical3 - name = "Medical Doctor's Locker" + name = "medical doctor's locker" req_access = list(access_surgery) icon_state = "securemed1" icon_closed = "securemed" @@ -82,7 +82,7 @@ //Exam Room /obj/structure/closet/secure_closet/exam - name = "Exam Room Closet" + name = "exam room closet" desc = "Filled with exam room materials." icon_state = "medical1" icon_closed = "medical" @@ -126,7 +126,7 @@ new /obj/item/weapon/reagent_containers/pill/methamphetamine(src) /obj/structure/closet/secure_closet/psychiatrist - name = "Psychiatrist's Locker" + name = "psychiatrist's locker" req_access = list(access_psychiatrist) icon_state = "securemed1" icon_closed = "securemed" @@ -146,7 +146,7 @@ return /obj/structure/closet/secure_closet/CMO - name = "Chief Medical Officer's Locker" + name = "chief medical officer's locker" req_access = list(access_cmo) icon_state = "cmosecure1" icon_closed = "cmosecure" @@ -190,7 +190,7 @@ /obj/structure/closet/secure_closet/animal - name = "Animal Control" + name = "animal control locker" req_access = list(access_surgery) @@ -206,7 +206,7 @@ /obj/structure/closet/secure_closet/chemical - name = "Chemical Closet" + name = "chemical closet" desc = "Store dangerous chemicals in here." icon_state = "medical1" icon_closed = "medical" @@ -225,7 +225,7 @@ return /obj/structure/closet/secure_closet/medical_wall - name = "First Aid Closet" + name = "first aid closet" desc = "It's a secure wall-mounted storage unit for first aid supplies." icon_state = "medical_wall_locked" icon_closed = "medical_wall_unlocked" @@ -251,7 +251,7 @@ icon_state = icon_opened /obj/structure/closet/secure_closet/paramedic - name = "Paramedic EVA gear" + name = "paramedic EVA gear" desc = "A locker with a Paramedic EVA suit." icon_state = "medical1" icon_closed = "medical" @@ -272,7 +272,7 @@ return /obj/structure/closet/secure_closet/reagents - name = "Chemical Storage Closet" + name = "chemical storage closet" desc = "Store dangerous chemicals in here." icon_state = "chemical1" icon_closed = "chemical" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index c97e60a07e1..a935d1f8cfb 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -1,5 +1,5 @@ /obj/structure/closet/secure_closet/scientist - name = "Scientist's Locker" + name = "scientist's locker" req_access = list(access_tox_storage) icon_state = "secureres1" icon_closed = "secureres" @@ -11,6 +11,7 @@ New() ..() sleep(2) + new /obj/item/weapon/storage/backpack/science(src) new /obj/item/weapon/storage/backpack/satchel_tox(src) new /obj/item/clothing/under/rank/scientist(src) //new /obj/item/clothing/suit/labcoat/science(src) @@ -25,7 +26,7 @@ /obj/structure/closet/secure_closet/RD - name = "Research Director's Locker" + name = "research director's locker" req_access = list(access_rd) icon_state = "rdsecure1" icon_closed = "rdsecure" @@ -53,7 +54,7 @@ return /obj/structure/closet/secure_closet/research_reagents - name = "Research Chemical Storage Closet" + name = "research chemical storage closet" desc = "Store dangerous chemicals in here." icon_state = "rchemical1" icon_closed = "rchemical" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index db95e1d7b3c..1c2a34c719d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -127,4 +127,49 @@ if(welded) overlays += "welded" else - icon_state = icon_opened \ No newline at end of file + icon_state = icon_opened + +/obj/structure/closet/secure_closet/container_resist(var/mob/living/L) + var/breakout_time = 2 //2 minutes by default + if(opened) + if (L.loc == src) + L.forceMove(get_turf(src)) // Let's just be safe here + return //Door's open... wait, why are you in it's contents then? + if(!locked && !welded) + return //It's a secure closet, but isn't locked. Easily escapable from, no need to 'resist' + + //okay, so the closet is either welded or locked... resist!!! + L.changeNext_move(CLICK_CD_BREAKOUT) + L.last_special = world.time + CLICK_CD_BREAKOUT + L << "You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)" + for(var/mob/O in viewers(src)) + O.show_message("The [src] begins to shake violently!", 1) + + + spawn(0) + if(do_after(usr,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds + if(!src || !L || L.stat != CONSCIOUS || L.loc != src || opened) //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened + return + + //Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'... + if(!locked && !welded) + return + + //Well then break it! + desc = "It appears to be broken." + icon_state = icon_off + flick(icon_broken, src) + sleep(10) + flick(icon_broken, src) + sleep(10) + broken = 1 + locked = 0 + welded = 0 + update_icon() + usr << "\red You successfully break out!" + for(var/mob/O in viewers(L.loc)) + O.show_message("\the [usr] successfully broke out of \the [src]!", 1) + if(istype(src.loc, /obj/structure/bigDelivery)) //Do this to prevent contents from being opened into nullspace (read: bluespace) + var/obj/structure/bigDelivery/BD = src.loc + BD.attack_hand(usr) + open() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 6b2da40c7f5..31c67ddc9b5 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -1,5 +1,5 @@ /obj/structure/closet/secure_closet/captains - name = "Captain's Locker" + name = "captain's locker" req_access = list(access_captain) icon_state = "capsecure1" icon_closed = "capsecure" @@ -32,7 +32,7 @@ /obj/structure/closet/secure_closet/hop - name = "Head of Personnel's Locker" + name = "head of personnel's locker" req_access = list(access_hop) icon_state = "hopsecure1" icon_closed = "hopsecure" @@ -58,7 +58,7 @@ return /obj/structure/closet/secure_closet/hop2 - name = "Head of Personnel's Attire" + name = "head of personnel's attire" req_access = list(access_hop) icon_state = "hopsecure1" icon_closed = "hopsecure" @@ -87,7 +87,7 @@ /obj/structure/closet/secure_closet/hos - name = "Head of Security's Locker" + name = "head of security's locker" req_access = list(access_hos) icon_state = "hossecure1" icon_closed = "hossecure" @@ -126,7 +126,7 @@ /obj/structure/closet/secure_closet/warden - name = "Warden's Locker" + name = "warden's locker" req_access = list(access_armory) icon_state = "wardensecure1" icon_closed = "wardensecure" @@ -166,7 +166,7 @@ /obj/structure/closet/secure_closet/security - name = "Security Officer's Locker" + name = "security officer's locker" req_access = list(access_security) icon_state = "sec1" icon_closed = "sec" @@ -197,7 +197,7 @@ return /obj/structure/closet/secure_closet/brigdoc - name = "Brig Physician's Locker" + name = "brig physician's locker" req_access = list(access_security) icon_state = "securemed1" icon_closed = "securemed" @@ -227,7 +227,7 @@ return /obj/structure/closet/secure_closet/blueshield - name = "Blueshield's Locker" + name = "blueshield's locker" req_access = list(access_blueshield) icon_state = "bssecure1" icon_closed = "bssecure" @@ -258,7 +258,7 @@ return /obj/structure/closet/secure_closet/ntrep - name = "Nanotrasen Representative's Locker" + name = "\improper Nanotrasen Representative's locker" req_access = list(access_ntrep) icon_state = "ntsecure1" icon_closed = "ntsecure" @@ -317,7 +317,7 @@ /obj/structure/closet/secure_closet/detective - name = "Detective's Cabinet" + name = "detective's cabinet" req_access = list(access_forensics_lockers) icon_state = "cabinetdetective_locked" icon_closed = "cabinetdetective" @@ -361,7 +361,7 @@ icon_state = icon_opened /obj/structure/closet/secure_closet/injection - name = "Lethal Injections" + name = "lethal injections locker" req_access = list(access_captain) @@ -375,7 +375,7 @@ /obj/structure/closet/secure_closet/brig - name = "Brig Locker" + name = "brig locker" req_access = list(access_brig) anchored = 1 var/id = null @@ -388,7 +388,7 @@ /obj/structure/closet/secure_closet/courtroom - name = "Courtroom Locker" + name = "courtroom locker" req_access = list(access_court) New() diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index b5680be43bc..7304681bf6b 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -373,6 +373,8 @@ new /obj/item/clothing/shoes/white(src) new /obj/item/clothing/suit/storage/labcoat/chemist(src) new /obj/item/clothing/suit/storage/labcoat/chemist(src) + new /obj/item/weapon/storage/backpack/chemistry(src) + new /obj/item/weapon/storage/backpack/chemistry(src) new /obj/item/weapon/storage/backpack/satchel_chem(src) new /obj/item/weapon/storage/backpack/satchel_chem(src) new /obj/item/weapon/storage/bag/chemistry(src) @@ -394,6 +396,10 @@ new /obj/item/clothing/shoes/white(src) new /obj/item/clothing/suit/storage/labcoat/genetics(src) new /obj/item/clothing/suit/storage/labcoat/genetics(src) + new /obj/item/weapon/storage/backpack/genetics(src) + new /obj/item/weapon/storage/backpack/genetics(src) + new /obj/item/weapon/storage/backpack/satchel_gen(src) + new /obj/item/weapon/storage/backpack/satchel_gen(src) return @@ -413,6 +419,10 @@ new /obj/item/clothing/suit/storage/labcoat/virologist(src) new /obj/item/clothing/mask/surgical(src) new /obj/item/clothing/mask/surgical(src) + new /obj/item/weapon/storage/backpack/virology(src) + new /obj/item/weapon/storage/backpack/virology(src) + new /obj/item/weapon/storage/backpack/satchel_vir(src) + new /obj/item/weapon/storage/backpack/satchel_vir(src) return diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index fad18f5e176..7e37c7a8988 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -347,14 +347,14 @@ /obj/structure/closet/crate/internals desc = "A internals crate." - name = "Internals crate" + name = "internals crate" icon_state = "o2crate" icon_opened = "o2crateopen" icon_closed = "o2crate" /obj/structure/closet/crate/trashcart desc = "A heavy, metal trashcart with wheels." - name = "Trash Cart" + name = "trash Cart" icon_state = "trashcart" icon_opened = "trashcartopen" icon_closed = "trashcart" @@ -377,14 +377,14 @@ /obj/structure/closet/crate/medical desc = "A medical crate." - name = "Medical crate" + name = "medical crate" icon_state = "medicalcrate" icon_opened = "medicalcrateopen" icon_closed = "medicalcrate" /obj/structure/closet/crate/rcd desc = "A crate for the storage of the RCD." - name = "RCD crate" + name = "\improper RCD crate" icon_state = "crate" icon_opened = "crateopen" icon_closed = "crate" @@ -426,14 +426,14 @@ /obj/structure/closet/crate/bin desc = "A large bin." - name = "Large bin" + name = "large bin" icon_state = "largebin" icon_opened = "largebinopen" icon_closed = "largebin" /obj/structure/closet/crate/radiation desc = "A crate with a radiation sign on it." - name = "Radioactive gear crate" + name = "radioactive gear crate" icon_state = "radiation" icon_opened = "radiationopen" icon_closed = "radiation" @@ -451,21 +451,21 @@ /obj/structure/closet/crate/secure/weapon desc = "A secure weapons crate." - name = "Weapons crate" + name = "weapons crate" icon_state = "weaponcrate" icon_opened = "weaponcrateopen" icon_closed = "weaponcrate" /obj/structure/closet/crate/secure/plasma desc = "A secure plasma crate." - name = "Plasma crate" + name = "plasma crate" icon_state = "plasmacrate" icon_opened = "plasmacrateopen" icon_closed = "plasmacrate" /obj/structure/closet/crate/secure/gear desc = "A secure gear crate." - name = "Gear crate" + name = "gear crate" icon_state = "secgearcrate" icon_opened = "secgearcrateopen" icon_closed = "secgearcrate" @@ -479,7 +479,7 @@ /obj/structure/closet/crate/secure/bin desc = "A secure bin." - name = "Secure bin" + name = "secure bin" icon_state = "largebins" icon_opened = "largebinsopen" icon_closed = "largebins" @@ -550,7 +550,7 @@ icon_closed = "largermetal" /obj/structure/closet/crate/hydroponics - name = "Hydroponics crate" + name = "hydroponics crate" desc = "All you need to destroy those pesky weeds and pests." icon_state = "hydrocrate" icon_opened = "hydrocrateopen" diff --git a/code/game/objects/structures/crates_lockers/crittercrate.dm b/code/game/objects/structures/crates_lockers/crittercrate.dm index e0c07307373..b3f9dac3d04 100644 --- a/code/game/objects/structures/crates_lockers/crittercrate.dm +++ b/code/game/objects/structures/crates_lockers/crittercrate.dm @@ -92,5 +92,5 @@ amount = 50 /obj/structure/closet/critter/deer - name = "Deer crate" + name = "deer crate" content_mob = /mob/living/simple_animal/deer \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/walllocker.dm b/code/game/objects/structures/crates_lockers/walllocker.dm index 4cf3bcf979d..2937e7b58ac 100644 --- a/code/game/objects/structures/crates_lockers/walllocker.dm +++ b/code/game/objects/structures/crates_lockers/walllocker.dm @@ -3,7 +3,7 @@ /obj/structure/closet/walllocker desc = "A wall mounted storage locker." - name = "Wall Locker" + name = "wall locker" icon = 'icons/obj/walllocker.dmi' icon_state = "wall-locker" density = 0 diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 1dc18de23ba..f0747bc2f89 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -192,7 +192,7 @@ /obj/structure/flora/kirbyplants - name = "Potted plant" + name = "potted plant" icon = 'icons/obj/flora/plants.dmi' icon_state = "plant-1" anchored = 0 @@ -205,7 +205,7 @@ icon_state = "plant-36" /obj/structure/flora/kirbyplants/dead - name = "RD's potted plant" + name = "\improper RD's potted plant" desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." icon_state = "plant-dead" diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index a23ba5ac92e..7c6de0f828f 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -35,7 +35,7 @@ /obj/structure/inflatable/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) return 0 - + /obj/structure/inflatable/CanAtmosPass(turf/T) return !density @@ -75,15 +75,15 @@ user.visible_message("[user] tears at [src]!") /obj/structure/inflatable/attack_alien(mob/user as mob) - if(islarva(user)) + if(islarva(user)) return attack_generic(user, 15) /obj/structure/inflatable/attack_animal(mob/user as mob) - if(!isanimal(user)) + if(!isanimal(user)) return var/mob/living/simple_animal/M = user - if(M.melee_damage_upper <= 0) + if(M.melee_damage_upper <= 0) return attack_generic(M, M.melee_damage_upper) @@ -94,7 +94,7 @@ attack_generic(user, rand(10, 15)) /obj/structure/inflatable/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if(!istype(W)) + if(!istype(W)) return if (can_puncture(W)) visible_message("\red [user] pierces [src] with [W]!") @@ -119,7 +119,6 @@ src.transfer_fingerprints_to(R) qdel(src) else - //user << "\blue You slowly deflate the inflatable wall." visible_message("[src] slowly deflates.") spawn(50) var/obj/item/inflatable/R = new /obj/item/inflatable(loc) @@ -178,16 +177,16 @@ if(istype(mover, /obj/effect/beam)) return !opacity return !density - + /obj/structure/inflatable/door/CanAtmosPass(turf/T) return !density /obj/structure/inflatable/door/proc/TryToSwitchState(atom/user) - if(isSwitchingStates) + if(isSwitchingStates) return if(ismob(user)) var/mob/M = user - if(world.time - user.last_bumped <= 60) + if(world.time - user.last_bumped <= 60) return //NOTE do we really need that? if(M.client) if(iscarbon(M)) @@ -240,14 +239,14 @@ visible_message("[src] rapidly deflates!") var/obj/item/inflatable/door/torn/R = new /obj/item/inflatable/door/torn(loc) src.transfer_fingerprints_to(R) + qdel(src) else visible_message("[src] slowly deflates.") spawn(50) var/obj/item/inflatable/door/R = new /obj/item/inflatable/door(loc) src.transfer_fingerprints_to(R) - + qdel(src) air_update_turf(1) - qdel(src) /obj/item/inflatable/torn name = "torn inflatable wall" diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index d23de20410c..fedce12962c 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -143,6 +143,16 @@ connected = null return ..() +/obj/structure/morgue/container_resist(var/mob/living/L) + var/mob/living/carbon/CM = L + if(!istype(CM)) + return + if (CM.stat || CM.restrained()) + return + + CM << "You attempt to slide yourself out of \the [src]..." + src.attack_hand(CM) + /* * Morgue tray @@ -314,12 +324,12 @@ if(contents.len <= 0) for (var/mob/M in viewers(src)) - M.show_message("\red You hear a hollow crackle.", 1) + M.show_message("You hear a hollow crackle.", 1) return else for (var/mob/M in viewers(src)) - M.show_message("\red You hear a roar as the crematorium activates.", 1) + M.show_message("You hear a roar as the crematorium activates.", 1) cremating = 1 locked = 1 @@ -355,6 +365,15 @@ connected = null return ..() +/obj/structure/crematorium/container_resist(var/mob/living/L) + var/mob/living/carbon/CM = L + if(!istype(CM)) + return + if (CM.stat || CM.restrained()) + return + + CM << "You attempt to slide yourself out of \the [src]..." + src.attack_hand(CM) /* * Crematorium tray diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index c24482a0da4..9cddb5a9fa4 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -115,6 +115,12 @@ var/list/wood_icons = list("wood","wood-broken") else if(is_plating()) if(!broken && !burnt) icon_state = icon_plating //Because asteroids are 'platings' too. + + footstep_sounds = list( + "human" = list('sound/effects/footstep/plating_human.ogg'), + "xeno" = list('sound/effects/footstep/plating_xeno.ogg') + ) + else if(is_light_floor()) var/obj/item/stack/tile/light/T = floor_tile if(T.on) @@ -193,11 +199,20 @@ var/list/wood_icons = list("wood","wood-broken") icon_state = "carpet[connectdir]-[diagonalconnect]" + footstep_sounds = list( + "human" = list('sound/effects/footstep/carpet_human.ogg'), + "xeno" = list('sound/effects/footstep/carpet_xeno.ogg') + ) + else if(is_wood_floor()) if(!broken && !burnt) if( !(icon_state in wood_icons) ) icon_state = "wood" - //world << "[icon_state]y's got [icon_state]" + + footstep_sounds = list( + "human" = list('sound/effects/footstep/wood_all.ogg'), //@RonaldVanWonderen of Freesound.org + "xeno" = list('sound/effects/footstep/wood_all.ogg') //@RonaldVanWonderen of Freesound.org + ) /turf/simulated/floor/return_siding_icon_state() diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index b66819a86a5..bc603e95406 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -31,6 +31,11 @@ icon_state = "wood" floor_tile = new/obj/item/stack/tile/wood + footstep_sounds = list( + "human" = list('sound/effects/footstep/wood_all.ogg'), //@RonaldVanWonderen of Freesound.org + "xeno" = list('sound/effects/footstep/wood_all.ogg') //@RonaldVanWonderen of Freesound.org + ) + /turf/simulated/floor/vault icon_state = "rockvault" @@ -131,6 +136,11 @@ floor_tile = null intact = 0 + footstep_sounds = list( + "human" = list('sound/effects/footstep/plating_human.ogg'), + "xeno" = list('sound/effects/footstep/plating_xeno.ogg') + ) + /turf/simulated/floor/plating/airless icon_state = "plating" name = "airless plating" @@ -226,7 +236,7 @@ nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD /turf/simulated/shuttle/floor4 // Added this floor tile so that I have a seperate turf to check in the shuttle -- Polymorph - name = "Brig floor" // Also added it into the 2x3 brig area of the shuttle. + name = "brig floor" // Also added it into the 2x3 brig area of the shuttle. icon_state = "floor4" /turf/simulated/shuttle/floor4/vox //Vox skipjack floors @@ -235,20 +245,20 @@ nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD /turf/simulated/floor/beach - name = "Beach" + name = "beach" icon = 'icons/misc/beach.dmi' /turf/simulated/floor/beach/sand - name = "Sand" + name = "sand" icon_state = "sand" /turf/simulated/floor/beach/coastline - name = "Coastline" + name = "coastline" icon = 'icons/misc/beach2.dmi' icon_state = "sandwater" /turf/simulated/floor/beach/water - name = "Water" + name = "water" icon_state = "water" /turf/simulated/floor/beach/water/New() @@ -256,7 +266,7 @@ overlays += image("icon"='icons/misc/beach.dmi',"icon_state"="water5","layer"=MOB_LAYER+0.1) /turf/simulated/floor/grass - name = "Grass patch" + name = "grass patch" icon_state = "grass1" floor_tile = new/obj/item/stack/tile/grass @@ -273,10 +283,15 @@ FF.update_icon() //so siding get updated properly /turf/simulated/floor/carpet - name = "Carpet" + name = "carpet" icon_state = "carpet" floor_tile = new/obj/item/stack/tile/carpet + footstep_sounds = list( + "human" = list('sound/effects/footstep/carpet_human.ogg'), + "xeno" = list('sound/effects/footstep/carpet_xeno.ogg') + ) + New() floor_tile.New() //I guess New() isn't ran on objects spawned without the definition of a turf to house them, ah well. if(!icon_state) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 8cd2500b0e0..3dce001a535 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -29,6 +29,8 @@ var/image/obscured //camerachunks + var/list/footstep_sounds = list() + /turf/New() ..() for(var/atom/movable/AM in src) diff --git a/code/modules/awaymissions/exile.dm b/code/modules/awaymissions/exile.dm index 7699d653833..d0cdce5b7f4 100644 --- a/code/modules/awaymissions/exile.dm +++ b/code/modules/awaymissions/exile.dm @@ -23,7 +23,7 @@ return dat /obj/item/weapon/implantcase/exile - name = "Glass Case- 'Exile'" + name = "\improper Glass Case- 'Exile'" desc = "A case containing an exile implant." icon = 'icons/obj/items.dmi' icon_state = "implantcase-r" @@ -36,7 +36,7 @@ /obj/structure/closet/secure_closet/exile - name = "Exile Implants" + name = "exile implants" req_access = list(access_hos) New() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 324b5e7b427..d301db27226 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1040,7 +1040,7 @@ datum/preferences if("input") switch(href_list["preference"]) if("name") - var/raw_name = input(user, "Choose your character's name:", "Character Preference") as text|null + var/raw_name = input(user, "Choose your character's name:", "Character Preference") as text|null if (!isnull(raw_name)) // Check to ensure that the user entered text (rather than cancel.) var/new_name = reject_bad_name(raw_name) if(new_name) @@ -1108,19 +1108,6 @@ datum/preferences //this shouldn't happen f_style = facial_hair_styles_list["Shaved"] - // Don't wear another species' underwear! - var/datum/sprite_accessory/S = underwear_list[underwear] - if(!(species in S.species_allowed)) - underwear = random_underwear(gender, species) - - S = undershirt_list[undershirt] - if(!(species in S.species_allowed)) - undershirt = random_undershirt(gender, species) - - S = socks_list[socks] - if(!(species in S.species_allowed)) - socks = random_socks(gender, species) - //reset hair colour and skin colour r_hair = 0//hex2num(copytext(new_hair, 2, 4)) g_hair = 0//hex2num(copytext(new_hair, 4, 6)) @@ -1169,7 +1156,7 @@ datum/preferences var/input = "Choose your character's hair colour:" if(species == "Machine") input = "Choose your character's frame colour:" - var/new_hair = input(user, input, "Character Preference", rgb(r_hair, g_hair, b_hair)) as color|null + var/new_hair = input(user, input, "Character Preference") as color|null if(new_hair) r_hair = hex2num(copytext(new_hair, 2, 4)) g_hair = hex2num(copytext(new_hair, 4, 6)) @@ -1206,7 +1193,7 @@ datum/preferences body_accessory = (new_body_accessory == "None") ? null : new_body_accessory if("facial") - var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference", rgb(r_facial, g_facial, b_facial)) as color|null + var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference") as color|null if(new_facial) r_facial = hex2num(copytext(new_facial, 2, 4)) g_facial = hex2num(copytext(new_facial, 4, 6)) @@ -1268,7 +1255,7 @@ datum/preferences socks = new_socks if("eyes") - var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference", rgb(r_eyes, g_eyes, b_eyes)) as color|null + var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference") as color|null if(new_eyes) r_eyes = hex2num(copytext(new_eyes, 2, 4)) g_eyes = hex2num(copytext(new_eyes, 4, 6)) @@ -1283,7 +1270,7 @@ datum/preferences if("skin") if((species in list("Unathi", "Tajaran", "Skrell", "Slime People", "Vulpkanin", "Machine")) || body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user)) - var/new_skin = input(user, "Choose your character's skin colour: ", "Character Preference", rgb(r_skin, g_skin, b_skin)) as color|null + var/new_skin = input(user, "Choose your character's skin colour: ", "Character Preference") as color|null if(new_skin) r_skin = hex2num(copytext(new_skin, 2, 4)) g_skin = hex2num(copytext(new_skin, 4, 6)) @@ -1291,7 +1278,7 @@ datum/preferences if("ooccolor") - var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference", ooccolor) as color|null + var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null if(new_ooccolor) ooccolor = new_ooccolor @@ -1436,7 +1423,7 @@ datum/preferences UI_style = "Midnight" if("UIcolor") - var/UI_style_color_new = input(user, "Choose your UI color, dark colors are not recommended!", UI_style_color) as color|null + var/UI_style_color_new = input(user, "Choose your UI color, dark colors are not recommended!") as color|null if(!UI_style_color_new) return UI_style_color = UI_style_color_new diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 0361ad7c5f5..2e196811932 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -310,6 +310,7 @@ BLIND // can't see anything body_parts_covered = FEET slot_flags = SLOT_FEET + var/silence_steps = 0 permeability_coefficient = 0.50 slowdown = SHOES_SLOWDOWN diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 28672d724d5..7c152804e4c 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -1,5 +1,5 @@ /obj/item/clothing/glasses/hud - name = "HUD" + name = "\improper HUD" desc = "A heads-up display that provides important info in (almost) real time." flags = null //doesn't protect eyes because it's a monocle, duh origin_tech = "magnets=3;biotech=2" @@ -9,20 +9,20 @@ /obj/item/clothing/glasses/hud/health - name = "Health Scanner HUD" + name = "\improper Health Scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." icon_state = "healthhud" HUDType = MEDHUD /obj/item/clothing/glasses/hud/health_advanced - name = "Advanced Health Scanner HUD" + name = "\improper Advanced Health Scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status. Includes anti-flash filter." icon_state = "advmedhud" flash_protect = 1 HUDType = MEDHUD /obj/item/clothing/glasses/hud/health/night - name = "Night Vision Health Scanner HUD" + name = "\improper Night Vision Health Scanner HUD" desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." icon_state = "healthhudnight" item_state = "glasses" @@ -32,14 +32,14 @@ /obj/item/clothing/glasses/hud/security - name = "Security HUD" + name = "\improper Security HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." icon_state = "securityhud" var/global/list/jobs[0] flash_protect = 1 /obj/item/clothing/glasses/hud/security/jensenshades - name = "Augmented shades" + name = "augmented shades" desc = "Polarized bioneural eyewear, designed to augment your vision." icon_state = "jensenshades" item_state = "jensenshades" @@ -47,7 +47,7 @@ invisa_view = 2 /obj/item/clothing/glasses/hud/security/night - name = "Night Vision Security HUD" + name = "\improper Night Vision Security HUD" desc = "An advanced heads-up display which provides id data and vision in complete darkness." icon_state = "securityhudnight" darkness_view = 8 diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index f9f39bc063d..418db118b82 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -11,6 +11,7 @@ var/list/clothing_choices = list() siemens_coefficient = 0.8 species_restricted = null + silence_steps = 1 /obj/item/clothing/shoes/mime name = "mime shoes" @@ -175,3 +176,25 @@ icon_state = "noble_boot" item_color = "noble_boot" item_state = "noble_boot" + + +/obj/item/clothing/shoes/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/shoe_silencer)) + silence_steps = 1 + user.unEquip(I) + qdel(I) + else . = ..() + +/obj/item/shoe_silencer + name = "shoe rags" + desc = "Looks sneaky." + icon_state = "sheet-cloth" + +/datum/table_recipe/shoe_rags + name = "Shoe Rags" + + result = /obj/item/shoe_silencer + reqs = list(/obj/item/stack/tape_roll = 10) + tools = list(/obj/item/weapon/wirecutters) + + time = 40 diff --git a/code/modules/computer3/computers/HolodeckControl.dm b/code/modules/computer3/computers/HolodeckControl.dm index cb492c6991b..2b59985bc83 100644 --- a/code/modules/computer3/computers/HolodeckControl.dm +++ b/code/modules/computer3/computers/HolodeckControl.dm @@ -10,7 +10,7 @@ /datum/file/program/holodeck - name = "Holodeck Control Console" + name = "holodeck control console" desc = "Used to control a nearby holodeck." active_state = "holocontrol" var/area/linkedholodeck = null diff --git a/code/modules/computer3/computers/camera.dm b/code/modules/computer3/computers/camera.dm index ddf583888fd..d2180c174a8 100644 --- a/code/modules/computer3/computers/camera.dm +++ b/code/modules/computer3/computers/camera.dm @@ -14,7 +14,7 @@ /obj/machinery/computer3/security/wooden_tv - name = "security cameras" + name = "security cameras console" desc = "An old TV hooked into the stations camera network." icon = 'icons/obj/computer.dmi' icon_state = "security_det" @@ -30,7 +30,7 @@ /obj/machinery/computer3/security/mining - name = "Outpost Cameras" + name = "outpost cameras console" desc = "Used to access the various cameras on the outpost." spawn_files = list(/datum/file/camnet_key/miningoutpost) @@ -80,14 +80,14 @@ name = "Telecomms Network Key" title = "telecommunications satellite" desc = "Connects to telecommunications satellite security cameras." - networks = list("Telecomms") - + networks = list("Telecomms") + /datum/file/camnet_key/researchoutpost name = "Research Outpost Network Key" title = "research outpost" desc = "Connects to research outpost security cameras." networks = list("Research Outpost") - + /datum/file/camnet_key/miningoutpost name = "Mining Outpost Network Key" title = "mining outpost" @@ -100,67 +100,67 @@ title = "research" desc = "Connects to research security cameras." networks = list("Research") - + /datum/file/camnet_key/prison name = "Prison Network Key" title = "prison" desc = "Connects to prison security cameras." networks = list("Prison") - + /datum/file/camnet_key/interrogation name = "Interrogation Network Key" title = "interrogation" desc = "Connects to interrogation security cameras." networks = list("Interrogation") - + /datum/file/camnet_key/supermatter name = "Supermatter Network Key" title = "supermatter" desc = "Connects to supermatter security cameras." networks = list("Supermatter") - + /datum/file/camnet_key/singularity name = "Singularity Network Key" title = "singularity" desc = "Connects to singularity security cameras." networks = list("Singularity") - + /datum/file/camnet_key/anomalyisolation name = "Anomaly Isolation Network Key" title = "anomalyisolation" desc = "Connects to interrogation security cameras." networks = list("Anomaly Isolation") - + /datum/file/camnet_key/toxins name = "Toxins Network Key" title = "toxins" desc = "Connects to toxins security cameras." networks = list("Toxins") - + /datum/file/camnet_key/telepad name = "Telepad Network Key" title = "telepad" desc = "Connects to telepad security cameras." networks = list("Telepad") - + /datum/file/camnet_key/ert name = "Emergency Response Team Network Key" title = "emergency response team" desc = "Connects to emergency response team security cameras." networks = list("ERT") - + /datum/file/camnet_key/centcom name = "Central Command Network Key" title = "central command" desc = "Connects to central command security cameras." networks = list("CentCom") - + /datum/file/camnet_key/thunderdome name = "Thunderdome Network Key" title = "thunderdome" desc = "Connects to thunderdome security cameras." networks = list("Thunderdome") - + /datum/file/camnet_key/entertainment name = "Entertainment Network Key" title = "entertainment" diff --git a/code/modules/computer3/computers/crew.dm b/code/modules/computer3/computers/crew.dm index 2d89b336f80..cbd4f11a67c 100644 --- a/code/modules/computer3/computers/crew.dm +++ b/code/modules/computer3/computers/crew.dm @@ -4,7 +4,7 @@ icon_state = "frame-med" /datum/file/program/crew - name = "Crew Monitoring Console" + name = "crew monitoring console" desc = "Used to monitor active health sensors built into most of the crew's uniforms." active_state = "crew" var/list/tracked = list( ) diff --git a/code/modules/computer3/computers/law.dm b/code/modules/computer3/computers/law.dm index 1ee99e5b9cb..1520f889ee5 100644 --- a/code/modules/computer3/computers/law.dm +++ b/code/modules/computer3/computers/law.dm @@ -1,7 +1,7 @@ /obj/machinery/computer3/aiupload - name = "AI Upload" + name = "\improper AI upload console" desc = "Used to upload laws to the AI." icon_state = "frame-rnd" var/mob/living/silicon/ai/current = null @@ -52,7 +52,7 @@ /obj/machinery/computer3/borgupload - name = "Cyborg Upload" + name = "cyborg upload console" desc = "Used to upload laws to Cyborgs." icon_state = "frame-rnd" var/mob/living/silicon/robot/current = null diff --git a/code/modules/computer3/lapvend.dm b/code/modules/computer3/lapvend.dm index 4d96d94878e..7e4a0f1769e 100644 --- a/code/modules/computer3/lapvend.dm +++ b/code/modules/computer3/lapvend.dm @@ -1,5 +1,5 @@ /obj/machinery/lapvend - name = "Laptop Vendor" + name = "laptop vendor" desc = "A generic vending machine." icon = 'icons/obj/vending.dmi' icon_state = "robotics" diff --git a/code/modules/economy/ATM.dm b/code/modules/economy/ATM.dm index 31ad003135e..d73e93e782f 100644 --- a/code/modules/economy/ATM.dm +++ b/code/modules/economy/ATM.dm @@ -14,7 +14,7 @@ log transactions #define PRINT_DELAY 100 /obj/machinery/atm - name = "Nanotrasen Automatic Teller Machine" + name = "Nanotrasen automatic teller machine" desc = "For all your monetary needs!" icon = 'icons/obj/terminals.dmi' icon_state = "atm" diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index befef4ed4d6..76e3bd4dd15 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -114,7 +114,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f // TODO: Make this an actual /obj/machinery/computer that can be crafted from circuit boards and such // It is August 22nd, 2012... This TODO has already been here for months.. I wonder how long it'll last before someone does something about it. /obj/machinery/librarycomp - name = "Check-In/Out Computer" + name = "check-in/out computer" icon = 'icons/obj/library.dmi' icon_state = "computer" anchored = 1 @@ -473,7 +473,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f qdel(O) else ..() - + /client/proc/delbook() set name = "Delete Book" set desc = "Permamently deletes a book from the database." @@ -485,7 +485,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f var/isbn = input("ISBN number?", "Delete Book") as num | null if(!isbn) return - + var/DBQuery/query_delbook = dbcon.NewQuery("DELETE FROM [format_table_name("library")] WHERE id=[isbn]") if(!query_delbook.Execute()) var/err = query_delbook.ErrorMsg() diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 8ce3ed99c57..ec56a3eca8d 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -177,7 +177,7 @@ /obj/structure/closet/crate/miningcar desc = "A mining car. This one doesn't work on rails, but has to be dragged." - name = "Mining car (not for rails)" + name = "mining car (not for rails)" icon = 'icons/obj/storage.dmi' icon_state = "miningcar" density = 1 diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 20f82d3a0bc..6b4de5b9c50 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -34,6 +34,25 @@ for(var/mob/living/M in contents) M.show_message(message,m_type) +/obj/item/weapon/holder/container_resist(var/mob/living/L) + var/mob/M = src.loc //Get our mob holder (if any). + + if(istype(M)) + M.unEquip(src) + M << "[src] wriggles out of your grip!" + src << "You wriggle out of [M]'s grip!" + else if(istype(src.loc,/obj/item)) + src << "You struggle free of [src.loc]." + src.forceMove(get_turf(src)) + + if(istype(M)) + for(var/atom/A in M.contents) + if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/weapon/holder)) + return + M.status_flags &= ~PASSEMOTES + + return + //Mob procs and vars for scooping up /mob/living/var/holder_type diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 35f272def08..956453c4640 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -291,3 +291,30 @@ Des: Removes all infected images from the alien. #undef HEAT_DAMAGE_LEVEL_1 #undef HEAT_DAMAGE_LEVEL_2 #undef HEAT_DAMAGE_LEVEL_3 + +/mob/living/carbon/alien/handle_footstep(turf/T) + if(..()) + if(T.footstep_sounds["xeno"]) + var/S = pick(T.footstep_sounds["xeno"]) + if(S) + if(m_intent == "run") + if(!(step_count % 2)) //every other turf makes a sound + return 0 + + var/range = -(world.view - 2) + range -= 0.666 //-(7 - 2) = (-5) = -5 | -5 - (0.666) = -5.666 | (7 + -5.666) = 1.334 | 1.334 * 3 = 4.002 | range(4.002) = range(4) + var/volume = 5 + + if(m_intent == "walk") + return 0 //silent when walking + + if(buckled || lying || throwing) + return 0 //people flying, lying down or sitting do not step + + if(!has_gravity(src)) + if(step_count % 3) //this basically says, every three moves make a noise + return 0 //1st - none, 1%3==1, 2nd - none, 2%3==2, 3rd - noise, 3%3==0 + + playsound(T, S, volume, 1, range) + return 1 + return 0 diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 1f584b97c35..3cd7e511369 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -72,9 +72,7 @@ /obj/item/device/mmi/posibrain/proc/transfer_personality(var/mob/candidate) src.searching = 0 - src.brainmob.mind = candidate.mind - //src.brainmob.key = candidate.key - src.brainmob.ckey = candidate.ckey + src.brainmob.key = candidate.key src.name = "positronic brain ([src.brainmob.name])" src.brainmob << "You are a positronic brain, brought into existence on [station_name()]." diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 183640bb45b..15791ddd85a 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -64,62 +64,60 @@ tie_msg += " with [english_accessory_list(U)]" if(w_uniform.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] blood-stained [w_uniform.name][tie_msg]!\n" + msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] [w_uniform.blood_color != "#030303" ? "blood-stained":"oil-stained"] [w_uniform.name][tie_msg]!\n" else msg += "[t_He] [t_is] wearing \icon[w_uniform] \a [w_uniform][tie_msg].\n" //head if(head) if(head.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] blood-stained [head.name] on [t_his] head!\n" + msg += "[t_He] [t_is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] [head.blood_color != "#030303" ? "blood-stained":"oil-stained"] [head.name] on [t_his] head!\n" else msg += "[t_He] [t_is] wearing \icon[head] \a [head] on [t_his] head.\n" //suit/armour if(wear_suit) if(wear_suit.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[wear_suit] [wear_suit.gender==PLURAL?"some":"a"] blood-stained [wear_suit.name]!\n" + msg += "[t_He] [t_is] wearing \icon[wear_suit] [wear_suit.gender==PLURAL?"some":"a"] [wear_suit.blood_color != "#030303" ? "blood-stained":"oil-stained"] [wear_suit.name]!\n" else msg += "[t_He] [t_is] wearing \icon[wear_suit] \a [wear_suit].\n" //suit/armour storage if(s_store && !skipsuitstorage) if(s_store.blood_DNA) - msg += "[t_He] [t_is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] blood-stained [s_store.name] on [t_his] [wear_suit.name]!\n" + msg += "[t_He] [t_is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] [s_store.blood_color != "#030303" ? "blood-stained":"oil-stained"] [s_store.name] on [t_his] [wear_suit.name]!\n" else msg += "[t_He] [t_is] carrying \icon[s_store] \a [s_store] on [t_his] [wear_suit.name].\n" //back if(back) if(back.blood_DNA) - msg += "[t_He] [t_has] \icon[back] [back.gender==PLURAL?"some":"a"] blood-stained [back] on [t_his] back.\n" + msg += "[t_He] [t_has] \icon[back] [back.gender==PLURAL?"some":"a"] [back.blood_color != "#030303" ? "blood-stained":"oil-stained"] [back] on [t_his] back.\n" else msg += "[t_He] [t_has] \icon[back] \a [back] on [t_his] back.\n" //left hand if(l_hand && !(l_hand.flags & ABSTRACT)) if(l_hand.blood_DNA) - msg += "[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in [t_his] left hand!\n" + msg += "[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] [l_hand.blood_color != "#030303" ? "blood-stained":"oil-stained"] [l_hand.name] in [t_his] left hand!\n" else msg += "[t_He] [t_is] holding \icon[l_hand] \a [l_hand] in [t_his] left hand.\n" //right hand if(r_hand && !(r_hand.flags & ABSTRACT)) if(r_hand.blood_DNA) - msg += "[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in [t_his] right hand!\n" + msg += "[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] [r_hand.blood_color != "#030303" ? "blood-stained":"oil-stained"] [r_hand.name] in [t_his] right hand!\n" else msg += "[t_He] [t_is] holding \icon[r_hand] \a [r_hand] in [t_his] right hand.\n" //gloves if(gloves && !skipgloves) if(gloves.blood_DNA) - msg += "[t_He] [t_has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] blood-stained [gloves.name] on [t_his] hands!\n" + msg += "[t_He] [t_has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [gloves.blood_color != "#030303" ? "blood-stained":"oil-stained"] [gloves.name] on [t_his] hands!\n" else msg += "[t_He] [t_has] \icon[gloves] \a [gloves] on [t_his] hands.\n" else if(blood_DNA) - msg += "[t_He] [t_has] blood-stained hands!\n" - - //handcuffed? + msg += "[t_He] [t_has] [hand_blood_color != "#030303" ? "blood-stained":"oil-stained"] hands!\n" //handcuffed? if(handcuffed) @@ -133,28 +131,31 @@ //belt if(belt) if(belt.blood_DNA) - msg += "[t_He] [t_has] \icon[belt] [belt.gender==PLURAL?"some":"a"] blood-stained [belt.name] about [t_his] waist!\n" + msg += "[t_He] [t_has] \icon[belt] [belt.gender==PLURAL?"some":"a"] [belt.blood_color != "#030303" ? "blood-stained":"oil-stained"] [belt.name] about [t_his] waist!\n" else msg += "[t_He] [t_has] \icon[belt] \a [belt] about [t_his] waist.\n" //shoes if(shoes && !skipshoes) if(shoes.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] blood-stained [shoes.name] on [t_his] feet!\n" + msg += "[t_He] [t_is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] [shoes.blood_color != "#030303" ? "blood-stained":"oil-stained"] [shoes.name] on [t_his] feet!\n" else msg += "[t_He] [t_is] wearing \icon[shoes] \a [shoes] on [t_his] feet.\n" + else if (blood_DNA) + msg += "[t_He] [t_has] [feet_blood_color != "#030303" ? "blood-stained":"oil-stained"] feet!\n" + //mask if(wear_mask && !skipmask) if(wear_mask.blood_DNA) - msg += "[t_He] [t_has] \icon[wear_mask] [wear_mask.gender==PLURAL?"some":"a"] blood-stained [wear_mask.name] on [t_his] face!\n" + msg += "[t_He] [t_has] \icon[wear_mask] [wear_mask.gender==PLURAL?"some":"a"] [wear_mask.blood_color != "#030303" ? "blood-stained":"oil-stained"] [wear_mask.name] on [t_his] face!\n" else msg += "[t_He] [t_has] \icon[wear_mask] \a [wear_mask] on [t_his] face.\n" //eyes if(glasses && !skipeyes) if(glasses.blood_DNA) - msg += "[t_He] [t_has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] blood-stained [glasses] covering [t_his] eyes!\n" + msg += "[t_He] [t_has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] [glasses.blood_color != "#030303" ? "blood-stained":"oil-stained"] [glasses] covering [t_his] eyes!\n" else msg += "[t_He] [t_has] \icon[glasses] \a [glasses] covering [t_his] eyes.\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5880349b588..3816f117e13 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1583,7 +1583,7 @@ src << "You ran out of blood to write with!" var/obj/effect/decal/cleanable/blood/writing/W = new(T) - + W.message = message W.add_fingerprint(src) // Allows IPC's to change their monitor display diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 39bdd785530..c6e6279b3ad 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -95,4 +95,55 @@ if(!has_gravity(loc)) return var/obj/item/clothing/shoes/S = shoes - S.step_action(src) \ No newline at end of file + S.step_action(src) + +/mob/living/carbon/human/handle_footstep(turf/T) + if(..()) + if(T.footstep_sounds["human"]) + var/S = pick(T.footstep_sounds["human"]) + if(S) + if(m_intent == "run") + if(!(step_count % 2)) //every other turf makes a sound + return 0 + + var/range = -(world.view - 2) + if(m_intent == "walk") + range -= 0.333 + if(!shoes) + range -= 0.333 + + //shoes + running + //-(7 - 2) = -(5) = -5 | -5 - 0 = -5 | (7 + -5) = 2 | 2 * 3 = 6 | range(6) = range(6) + //running OR shoes + //-(7 - 2) = (-5) = -5 | -5 - 0.333 = -5.333 | (7 + -5.333) = 1.667 | 1.667 * 3 = 5.001 | range(5.001) = range(5) + //walking AND no shoes + //-(7 - 2) = (-5) = -5 | -5 - (0.333 * 2) = -5.666 | (7 + -5.666) = 1.334 | 1.334 * 3 = 4.002 | range(4.002) = range(4) + + var/volume = 13 + if(m_intent == "walk") + volume -= 4 + if(!shoes) + volume -= 4 + + if(istype(shoes, /obj/item/clothing/shoes)) + var/obj/item/clothing/shoes/shooess = shoes + if(shooess.silence_steps) + return 0 //silent + + if(!has_organ("l_foot") && !has_organ("r_foot")) + return 0 //no feet no footsteps + + if(buckled || lying || throwing) + return 0 //people flying, lying down or sitting do not step + + if(!has_gravity(src)) + if(step_count % 3) //this basically says, every three moves make a noise + return 0 //1st - none, 1%3==1, 2nd - none, 2%3==2, 3rd - noise, 3%3==0 + + if(species.silent_steps) + return 0 //species is silent + + playsound(T, S, volume, 1, range) + return 1 + + return 0 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index c891c9e2cd2..28879225b39 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -150,3 +150,14 @@ var/list/all_bits = internal_organs|organs for(var/obj/item/organ/O in all_bits) O.set_dna(dna) + +/* +Given the name of an organ, returns the external organ it's contained in +I use this to standardize shadowling dethrall code +-- Crazylemon +*/ +/mob/living/carbon/human/proc/named_organ_parent(var/organ_name) + if (!(organ_name in internal_organs_by_name)) + return null + var/obj/item/organ/O = internal_organs_by_name[organ_name] + return O.parent_organ \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 6462d413e7b..4a83a771149 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -23,6 +23,7 @@ var/unarmed //For empty hand harm-intent attack var/unarmed_type = /datum/unarmed_attack var/slowdown = 0 // Passive movement speed malus (or boost, if negative) + var/silent_steps = 0 // Stops step noises var/breath_type = "oxygen" // Non-oxygen gas breathed, if any. var/poison_type = "plasma" // Poisonous air. @@ -62,7 +63,7 @@ var/flags = 0 // Various specific features. var/clothing_flags = 0 // Underwear and socks. - var/bloodflags = 0 + var/exotic_blood var/bodyflags = 0 var/dietflags = 0 // Make sure you set this, otherwise it won't be able to digest a lot of foods @@ -591,4 +592,4 @@ else H.bodytemp.icon_state = "temp0" - return 1 \ No newline at end of file + return 1 diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 9f9c0642988..1e85a1e2e52 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -319,10 +319,10 @@ flags = IS_WHITELISTED | NO_BREATHE | HAS_LIPS | NO_INTORGANS | NO_SCAN clothing_flags = HAS_SOCKS - bodyflags = HAS_SKIN_COLOR - bloodflags = BLOOD_SLIME + bodyflags = HAS_SKIN_COLOR | NO_EYES dietflags = DIET_CARN reagent_tag = PROCESS_ORG + exotic_blood = "water" //ventcrawler = 1 //ventcrawling commented out has_organ = list( diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index dc23580c131..a248d5ae581 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -481,10 +481,18 @@ if (s_active && !( s_active in contents ) && get_turf(s_active) != get_turf(src)) //check !( s_active in contents ) first so we hopefully don't have to call get_turf() so much. s_active.close(src) + handle_footstep(loc) + step_count++ + if(update_slimes) for(var/mob/living/carbon/slime/M in view(1,src)) M.UpdateFeed(src) +/mob/living/proc/handle_footstep(turf/T) + if(istype(T)) + return 1 + return 0 + /*////////////////////// START RESIST PROCS */////////////////////// @@ -499,10 +507,6 @@ var/mob/living/L = usr - //Getting out of someone's inventory. - if(istype(src.loc,/obj/item/weapon/holder)) - resist_holder() - //Resisting control by an alien mind. if(istype(src.loc,/mob/living/simple_animal/borer)) resist_borer() @@ -511,17 +515,15 @@ if ((!(L.stat) && !(L.restrained()))) resist_grab(L) //this passes L because the proc requires a typecasted mob/living instead of just 'src' - // Sliding out of a morgue/crematorium - if(loc && (istype(loc, /obj/structure/morgue) || istype(loc, /obj/structure/crematorium))) - resist_tray(L) - //unbuckling yourself if(L.buckled && (L.last_special <= world.time) ) resist_buckle(L) //this passes L because the proc requires a typecasted mob/living instead of just 'src' - //Breaking out of a locker? - else if(src.loc && (istype(src.loc, /obj/structure/closet))) - resist_closet() + //Breaking out of an object? + else if(src.loc && istype(src.loc, /obj) && (!isturf(src.loc))) + if(stat == CONSCIOUS && !stunned && !weakened && !paralysis) + var/obj/C = loc + C.container_resist(L) //breaking out of handcuffs else if(iscarbon(L)) @@ -540,28 +542,6 @@ RESIST SUBPROCS *///////////////////// -/* resist_holder allows small mobs that can be picked up to get out of their holder, so they aren't stuck forever. -*///// -/mob/living/proc/resist_holder() - var/obj/item/weapon/holder/H = src.loc //Get our item holder. - var/mob/M = H.loc //Get our mob holder (if any). - - if(istype(M)) - M.unEquip(H) - M << "[H] wriggles out of your grip!" - src << "You wriggle out of [M]'s grip!" - else if(istype(H.loc,/obj/item)) - src << "You struggle free of [H.loc]." - H.forceMove(get_turf(H)) - - if(istype(M)) - for(var/atom/A in M.contents) - if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/weapon/holder)) - return - M.status_flags &= ~PASSEMOTES - - return - /* resist_borer allows a mob to regain control of their body after a borer has assumed control. *///// /mob/living/proc/resist_borer() @@ -647,87 +627,6 @@ else L.buckled.user_unbuckle_mob(L,L) -/* resist_closet() allows a mob to break out of a welded/locked closet -*///// -/mob/living/proc/resist_closet() - var/breakout_time = 2 //2 minutes by default - var/mob/living/L = src - var/obj/structure/closet/C = L.loc - if(C.opened) - return //Door's open... wait, why are you in it's contents then? - if(istype(L.loc, /obj/structure/closet/secure_closet)) - var/obj/structure/closet/secure_closet/SC = L.loc - if(!SC.locked && !SC.welded) - return //It's a secure closet, but isn't locked. Easily escapable from, no need to 'resist' - else - if(!C.welded) - return //closed but not welded... - // else Meh, lets just keep it at 2 minutes for now - // breakout_time++ //Harder to get out of welded lockers than locked lockers - - //okay, so the closet is either welded or locked... resist!!! - L.changeNext_move(CLICK_CD_BREAKOUT) - L.last_special = world.time + CLICK_CD_BREAKOUT - L << "\red You lean on the back of \the [C] and start pushing the door open. (this will take about [breakout_time] minutes)" - for(var/mob/O in viewers(usr.loc)) - O.show_message("\red The [L.loc] begins to shake violently!", 1) - - - spawn(0) - if(do_after(usr,(breakout_time*60*10), target = C)) //minutes * 60seconds * 10deciseconds - if(!C || !L || L.stat != CONSCIOUS || L.loc != C || C.opened) //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened - return - - //Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'... - if(istype(L.loc, /obj/structure/closet/secure_closet)) - var/obj/structure/closet/secure_closet/SC = L.loc - if(!SC.locked && !SC.welded) - return - else - if(!C.welded) - return - - //Well then break it! - if(istype(usr.loc, /obj/structure/closet/secure_closet)) - var/obj/structure/closet/secure_closet/SC = L.loc - SC.desc = "It appears to be broken." - SC.icon_state = SC.icon_off - flick(SC.icon_broken, SC) - sleep(10) - flick(SC.icon_broken, SC) - sleep(10) - SC.broken = 1 - SC.locked = 0 - SC.update_icon() - usr << "\red You successfully break out!" - for(var/mob/O in viewers(L.loc)) - O.show_message("\red \the [usr] successfully broke out of \the [SC]!", 1) - if(istype(SC.loc, /obj/structure/bigDelivery)) //Do this to prevent contents from being opened into nullspace (read: bluespace) - var/obj/structure/bigDelivery/BD = SC.loc - BD.attack_hand(usr) - SC.open() - else - C.welded = 0 - C.update_icon() - usr << "\red You successfully break out!" - for(var/mob/O in viewers(L.loc)) - O.show_message("\red \the [usr] successfully broke out of \the [C]!", 1) - if(istype(C.loc, /obj/structure/bigDelivery)) //nullspace ect.. read the comment above - var/obj/structure/bigDelivery/BD = C.loc - BD.attack_hand(usr) - C.open() - -// resist_tray allows a mob to slide themselves out of a morgue or crematorium -/mob/living/proc/resist_tray(var/mob/living/carbon/CM) - if(!istype(CM)) - return - if (usr.stat || usr.restrained()) - return - - usr << "You attempt to slide yourself out of \the [loc]..." - var/obj/structure/S = loc - S.attack_hand(src) - /* resist_stop_drop_roll allows a mob to stop, drop, and roll in order to put out a fire burning on them. *///// /mob/living/proc/resist_stop_drop_roll(var/mob/living/carbon/CM) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 08a99c0dba2..f21d2a2d954 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -51,4 +51,5 @@ var/list/icon/pipes_shown = list() var/last_played_vent - var/list/datum/action/actions = list() \ No newline at end of file + var/list/datum/action/actions = list() + var/step_count = 0 \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 7254d619f62..f34804bfbba 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -238,7 +238,7 @@ var/list/ai_verbs_default = list( The alternative was to rewrite a bunch of AI code instead here we are. */ /obj/machinery/ai_powersupply - name="Power Supply" + name="\improper AI power supply" active_power_usage=1000 use_power = 2 power_channel = EQUIP diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm index b59f69ec3c0..34f98cb5893 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/drone_control - name = "Maintenance Drone Control" + name = "maintenance drone control console" desc = "Used to monitor the station's drone population and the assembler that services them." icon_screen = "power" icon_keyboard = "power_key" diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 533bc1f7a2b..a6ce6632258 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -21,15 +21,17 @@ ear_deaf = 0 -/mob/living/silicon/robot/proc/use_power() - if (is_component_functioning("power cell") && cell) +/mob/living/silicon/robot/proc/use_power() + if (stat == DEAD) + return + else if (is_component_functioning("power cell") && cell) if(module) for(var/obj/item/borg/B in module.modules) if(B.powerneeded) if((cell.charge * 100 / cell.maxcharge) < B.powerneeded) src << "Deactivating [B.name] due to lack of power!" - unEquip(B) - if(cell.charge <= 0) + unEquip(B) + if(cell.charge <= 0) uneq_all() update_headlamp(1) stat = UNCONSCIOUS @@ -60,7 +62,9 @@ if(!is_component_functioning("actuator")) Paralyse(3) eye_blind = 0 - stat = 0 + // Please, PLEASE be careful with statements like this - make sure they're not + // dead beforehand, for example -- Crazylemon + stat = CONSCIOUS has_power = 1 else uneq_all() @@ -68,13 +72,6 @@ update_headlamp(1) Paralyse(3) -/mob/living/silicon/robot/updatehealth() - if(status_flags & GODMODE) - health = maxHealth - stat = CONSCIOUS - return - health = maxHealth - (getOxyLoss() + getFireLoss() + getBruteLoss()) - /mob/living/silicon/robot/handle_regular_status_updates() . = ..() diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index 6628841fa40..a8bd77155fa 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -3,9 +3,16 @@ health = maxHealth stat = CONSCIOUS return - health = maxHealth - (getBruteLoss() + getFireLoss()) + health = maxHealth - (getOxyLoss() + getFireLoss() + getBruteLoss()) + if (stat == DEAD && health > 0) + update_revive() + var/mob/dead/observer/ghost = get_ghost() + if(ghost) + ghost << "Your cyborg shell has been repaired, re-enter if you want to continue! (Verbs -> Ghost -> Re-enter corpse)" + ghost << sound('sound/effects/genetics.ogg') return + /mob/living/silicon/robot/getBruteLoss() var/amount = 0 for(var/V in components) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 5acf61d6813..d8c6fabb5fe 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -130,10 +130,12 @@ if(!input) return for(var/mob/M in mob_list) - if(M == summoner || (M in dead_mob_list)) - M << "[src]: [input]" - src << "[src]: [input]" - log_say("[src.real_name]/[src.key] : [input]") + if(M == summoner) + M << "[src]: [input]" + else if (M in dead_mob_list) + M << "Guardian Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]" + src << "[src]: [input]" + log_say("Guardian Communication: [src.real_name]/[src.key] : [input]") /mob/living/simple_animal/hostile/guardian/proc/ToggleMode() src << "You dont have another mode!" @@ -150,11 +152,11 @@ if(istype (M, /mob/living/simple_animal/hostile/guardian)) var/mob/living/simple_animal/hostile/guardian/G = M if(G.summoner == src) - G << "[src]: [input]" + G << "[src]: [input]" else if (M in dead_mob_list) - M << "[src]: [input]" - src << "[src]: [input]" - log_say("[src.real_name]/[src.key] : [text]") + M << "Guardian Communication from [src] ([ghost_follow_link(src, ghost=M)]): [input]" + src << "[src]: [input]" + log_say("Guardian Communication: [src.real_name]/[src.key] : [text]") /mob/living/proc/guardian_recall() set name = "Recall Guardian" @@ -314,6 +316,7 @@ var/turf/simulated/floor/beacon var/beacon_cooldown = 0 var/toggle = FALSE + var/heal_cooldown = 0 /mob/living/simple_animal/hostile/guardian/healer/sealhealer name = "Seal Sprit" @@ -347,11 +350,14 @@ src << "You must be manifested to heal!" return if(iscarbon(target)) - var/mob/living/carbon/C = target - C.adjustBruteLoss(-5) - C.adjustFireLoss(-5) - C.adjustOxyLoss(-5) - C.adjustToxLoss(-5) + src.changeNext_move(CLICK_CD_MELEE) + if(heal_cooldown <= world.time && !stat) + var/mob/living/carbon/C = target + C.adjustBruteLoss(-5) + C.adjustFireLoss(-5) + C.adjustOxyLoss(-5) + C.adjustToxLoss(-5) + heal_cooldown = world.time + 20 /mob/living/simple_animal/hostile/guardian/healer/ToggleMode() if(src.loc == summoner) @@ -452,7 +458,7 @@ melee_damage_upper = 10 damage_transfer = 0.9 projectiletype = /obj/item/projectile/guardian - ranged_cooldown_cap = 0 + ranged_cooldown_cap = 1 projectilesound = 'sound/effects/hit_on_shattered_glass.ogg' ranged = 1 range = 13 diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index c6f9c2814c7..c0d89f12417 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -5,9 +5,9 @@ datum/preferences gender = gender_override else gender = pick(MALE, FEMALE) - underwear = random_underwear(gender, species) - undershirt = random_undershirt(gender, species) - socks = random_socks(gender, species) + underwear = random_underwear(gender) + undershirt = random_undershirt(gender) + socks = random_socks(gender) if(species == "Human") s_tone = random_skin_tone() h_style = random_hair_style(gender, species) @@ -804,7 +804,7 @@ datum/preferences else if(backbag == 3 || backbag == 4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) - if(!current_species.bloodflags & BLOOD_SLIME) + if(!current_species.bodyflags & NO_EYES) preview_icon.Blend(eyes_s, ICON_OVERLAY) if(underwear_s) preview_icon.Blend(underwear_s, ICON_OVERLAY) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 50183e4e506..f543fe28b4a 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -28,11 +28,11 @@ L[D.name] = D switch(D.gender) - if(MALE) male[D.name] = D - if(FEMALE) female[D.name] = D + if(MALE) male += D.name + if(FEMALE) female += D.name else - male[D.name] = D - female[D.name] = D + male += D.name + female += D.name return L /datum/sprite_accessory @@ -1019,7 +1019,7 @@ /datum/sprite_accessory/underwear icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human","Unathi","Vox","Diona","Vulpkanin","Kidan","Grey","Plasmaman","Skellington") + species_allowed = list("Human","Unathi","Vox","Diona","Kidan","Grey","Plasmaman","Skellington") nude name = "Nude" @@ -1092,7 +1092,7 @@ /datum/sprite_accessory/undershirt icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human","Unathi","Vox","Diona","Vulpkanin","Kidan","Grey","Plasmaman","Skellington") + species_allowed = list("Human","Unathi","Vox","Diona","Kidan","Grey","Plasmaman","Skellington") /datum/sprite_accessory/undershirt/nude name = "Nude" @@ -1331,7 +1331,6 @@ /////////////////////// /datum/sprite_accessory/socks icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/nude name = "Nude" @@ -1344,95 +1343,111 @@ name = "Normal White" icon_state = "white_norm" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/black_norm name = "Normal Black" icon_state = "black_norm" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/white_short name = "Short White" icon_state = "white_short" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/black_short name = "Short Black" icon_state = "black_short" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/white_knee name = "Knee-high White" icon_state = "white_knee" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/black_knee name = "Knee-high Black" icon_state = "black_knee" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/thin_knee name = "Knee-high Thin" icon_state = "thin_knee" gender = FEMALE + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/striped_knee name = "Knee-high Striped" icon_state = "striped_knee" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/rainbow_knee name = "Knee-high Rainbow" icon_state = "rainbow_knee" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/white_thigh name = "Thigh-high White" icon_state = "white_thigh" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/black_thigh name = "Thigh-high Black" icon_state = "black_thigh" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/thin_thigh name = "Thigh-high Thin" icon_state = "thin_thigh" gender = FEMALE + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/striped_thigh name = "Thigh-high Striped" icon_state = "striped_thigh" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/rainbow_thigh name = "Thigh-high Rainbow" icon_state = "rainbow_thigh" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/pantyhose name = "Pantyhose" icon_state = "pantyhose" gender = FEMALE + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/black_fishnet name = "Black Fishnet" icon_state = "black_fishnet" gender = NEUTER + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") /datum/sprite_accessory/socks/vox_white name = "Vox White" diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index e65ed5bb870..f3f9c48b614 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -19,14 +19,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 vessel = new/datum/reagents(600) vessel.my_atom = src - if(species && species.flags & NO_BLOOD) //In case of transformation to IPC - if(vessel.has_reagent("water") || vessel.has_reagent("blood")) - var/water = vessel.get_reagent_amount("water") - var/blood = vessel.get_reagent_amount("blood") - vessel.remove_reagent("water",water) - vessel.remove_reagent("blood",blood) - if(species.bloodflags & BLOOD_SLIME) - vessel.add_reagent("water",560) + if(species && species.exotic_blood) + vessel.add_reagent(species.exotic_blood,560) else vessel.add_reagent("blood",560) spawn(1) @@ -46,8 +40,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 if(species && species.flags & NO_BLOOD) return if(stat != DEAD && bodytemperature >= 170) //Dead or cryosleep people do not pump the blood. - if(species.bloodflags &BLOOD_SLIME) - blood_volume = round(vessel.get_reagent_amount("water")) + if(species.exotic_blood) + blood_volume = round(vessel.get_reagent_amount(species.exotic_blood)) if(blood_volume < 560 && blood_volume) var/datum/reagent/water/W = locate() in vessel.reagent_list //Grab some blood if(W) // Make sure there's some blood at all @@ -180,8 +174,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 var/amm = 0.1 * amt var/turf/T = get_turf(src) - if(src.species.bloodflags &BLOOD_SLIME) - vessel.remove_reagent("water",amm) + if(src.species.exotic_blood) + vessel.remove_reagent(species.exotic_blood,amm) vessel.reaction(T, TOUCH, amm) return @@ -227,10 +221,10 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 //For humans, blood does not appear from blue, it comes from vessels. /mob/living/carbon/human/take_blood(obj/item/weapon/reagent_containers/container, var/amount) - if(src.species.bloodflags &BLOOD_SLIME) - if(vessel.get_reagent_amount("water") < amount) + if(src.species.exotic_blood) + if(vessel.get_reagent_amount(src.species.exotic_blood) < amount) return null - var/datum/reagent/W = new /datum/reagent/water + var/datum/reagent/W = new /datum/reagent W.holder = container W.volume += amount var/list/temp_chem = list() @@ -238,7 +232,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 temp_chem += R.id temp_chem[R.id] = R.volume W.data["trace_chem"] = list2params(temp_chem) - vessel.remove_reagent("water",amount) // Removes blood if human + vessel.remove_reagent(src.species.exotic_blood,amount) // Removes blood if human return W if(species && species.flags & NO_BLOOD) return null diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index ca625443893..1c6ca1d176b 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -139,6 +139,9 @@ //robot limbs take reduced damage brute_mod = 0.66 burn_mod = 0.66 + // Robot parts also lack bones + // This is so surgery isn't kaput, let's see how this does + encased = null /**************************************************** DAMAGE PROCS @@ -820,6 +823,9 @@ Note that amputating the affected organ does in fact remove the infection from t H.drop_item() W.loc = owner +/obj/item/organ/external/proc/open_enough_for_surgery() + return (encased ? (open == 3) : (open == 2)) + /obj/item/organ/external/removed(var/mob/living/user, var/ignore_children) if(!owner) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index afde00f4aed..ed4ca6eeeed 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -4,7 +4,7 @@ icon_state = "laser" item_state = "laser" fire_sound = 'sound/weapons/Laser.ogg' - charge_cost = 830 + charge_cost = 760 w_class = 3.0 materials = list(MAT_METAL=2000) origin_tech = "combat=3;magnets=2" diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 47e1546de1a..084883d55f9 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -371,6 +371,9 @@ var/const/INGEST = 2 //Species with PROCESS_DUO are only affected by reagents that affect both organics and synthetics, like acid and hellwater if((R.process_flags & ORGANIC) && (R.process_flags & SYNTHETIC) && (H.species.reagent_tag & PROCESS_DUO)) can_process = 1 + if(H.species && H.species.exotic_blood) + if(R.id == H.species.exotic_blood) + can_process = 0 //We'll assume that non-human mobs lack the ability to process synthetic-oriented reagents (adjust this if we need to change that assumption) else if(R.process_flags != SYNTHETIC) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 7f090a72be6..0e7199645c9 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -378,7 +378,7 @@ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /obj/machinery/chem_master - name = "ChemMaster 3000" + name = "\improper ChemMaster 3000" density = 1 anchored = 1 icon = 'icons/obj/chemical.dmi' @@ -756,12 +756,12 @@ /obj/machinery/chem_master/condimaster - name = "CondiMaster 3000" + name = "\improper CondiMaster 3000" condi = 1 /obj/machinery/reagentgrinder - name = "All-In-One Grinder" + name = "\improper All-In-One Grinder" icon = 'icons/obj/kitchen.dmi' icon_state = "juicer1" layer = 2.9 diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 0097cf45907..1526ebcb695 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -2,7 +2,7 @@ /// Droppers. //////////////////////////////////////////////////////////////////////////////// /obj/item/weapon/reagent_containers/dropper - name = "Dropper" + name = "dropper" desc = "A dropper. Transfers 5 units." icon = 'icons/obj/chemical.dmi' icon_state = "dropper" @@ -121,7 +121,7 @@ //////////////////////////////////////////////////////////////////////////////// /obj/item/weapon/reagent_containers/dropper/precision - name = "Pipette" + name = "pipette" desc = "A high precision pippette. Holds 1 unit." icon = 'icons/obj/chemical.dmi' icon_state = "pipette" diff --git a/code/modules/reagents/reagent_containers/food/condiment.dm b/code/modules/reagents/reagent_containers/food/condiment.dm index 910860e1b2d..5cb063ee86f 100644 --- a/code/modules/reagents/reagent_containers/food/condiment.dm +++ b/code/modules/reagents/reagent_containers/food/condiment.dm @@ -171,7 +171,7 @@ reagents.add_reagent("rice", 30) /obj/item/weapon/reagent_containers/food/condiment/saltshaker //Seperate from above since it's a small shaker rather then - name = "Salt Shaker" // a large one. + name = "salt shaker" // a large one. desc = "Salt. From space oceans, presumably." icon_state = "saltshakersmall" possible_transfer_amounts = list(1,20) //for clown turning the lid off @@ -184,7 +184,7 @@ reagents.add_reagent("sodiumchloride", 20) /obj/item/weapon/reagent_containers/food/condiment/peppermill - name = "Pepper Mill" + name = "pepper mill" desc = "Often used to flavor food or make people sneeze." icon_state = "peppermillsmall" possible_transfer_amounts = list(1,20) //for clown turning the lid off @@ -197,7 +197,7 @@ reagents.add_reagent("blackpepper", 20) /obj/item/weapon/reagent_containers/food/condiment/syndisauce - name = "Chef Excellence's Special Sauce" + name = "\improper Chef Excellence's Special Sauce" desc = "A potent sauce extracted from the potent amanita mushrooms. Death never tasted quite so delicious." amount_per_transfer_from_this = 5 volume = 50 diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index 5d4c986539a..663158d0757 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -191,7 +191,7 @@ // Formatting is the same as food. /obj/item/weapon/reagent_containers/food/drinks/milk - name = "Space Milk" + name = "\improper Space Milk" desc = "It's milk. White and nutritious goodness!" icon_state = "milk" item_state = "carton" @@ -216,7 +216,7 @@ */ /obj/item/weapon/reagent_containers/food/drinks/soymilk - name = "SoyMilk" + name = "\improper SoyMilk" desc = "It's soy milk. White and nutritious goodness!" icon_state = "soymilk" item_state = "carton" @@ -227,7 +227,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/coffee - name = "Robust Coffee" + name = "\improper Robust Coffee" desc = "Careful, the beverage you're about to enjoy is extremely hot." icon_state = "coffee" New() @@ -237,7 +237,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/tea - name = "Duke Purple Tea" + name = "\improper Duke Purple Tea" desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea." icon_state = "teacup" item_state = "coffee" @@ -250,7 +250,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/mugwort - name = "Mugwort Tea" + name = "\improper Mugwort Tea" desc = "A bitter herbal tea." icon_state = "manlydorfglass" item_state = "coffee" @@ -261,7 +261,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/ice - name = "Ice Cup" + name = "\improper Ice Cup" desc = "Careful, cold ice, do not chew." icon_state = "coffee" New() @@ -271,7 +271,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/h_chocolate - name = "Dutch Hot Coco" + name = "\improper Dutch Hot Coco" desc = "Made in Space South America." icon_state = "hot_coco" item_state = "coffee" @@ -282,7 +282,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/chocolate - name = "Hot Chocolate" + name = "\improper Hot Chocolate" desc = "Made in Space Switzerland." icon_state = "hot_coco" item_state = "coffee" @@ -293,7 +293,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/weightloss - name = "Weight-Loss Shake" + name = "\improper Weight-Loss Shake" desc = "A shake designed to cause weight loss. The package proudly proclaims that it is 'tapeworm free.'" icon_state = "coffee" item_state = "coffee" @@ -306,7 +306,7 @@ /obj/item/weapon/reagent_containers/food/drinks/dry_ramen - name = "Cup Ramen" + name = "\improper Cup Ramen" desc = "Just add 10ml water, self heats! A taste that reminds you of your school years." icon_state = "ramen" New() @@ -318,7 +318,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/chicken_soup - name = "Cup Chicken Soup" + name = "\improper Cup Chicken Soup" desc = "A delicious and soothing cup of chicken noodle soup; just like spessmom used to make it." icon_state = "ramen" New() @@ -328,7 +328,7 @@ src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/sillycup - name = "Paper Cup" + name = "paper cup" desc = "A paper water cup." icon_state = "water_cup_e" possible_transfer_amounts = null @@ -349,7 +349,7 @@ // icon states. /obj/item/weapon/reagent_containers/food/drinks/shaker - name = "Shaker" + name = "shaker" desc = "A metal shaker to mix drinks in." icon_state = "shaker" amount_per_transfer_from_this = 10 diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index aa304ca9bdc..17b52aaf5a7 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -120,7 +120,7 @@ //Keeping this here for now, I'll ask if I should keep it here. /obj/item/weapon/broken_bottle - name = "Broken Bottle" + name = "broken bottle" desc = "A bottle with a sharp broken bottom." icon = 'icons/obj/drinks.dmi' icon_state = "broken_bottle" @@ -136,7 +136,7 @@ var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken") /obj/item/weapon/reagent_containers/food/drinks/bottle/gin - name = "Griffeater Gin" + name = "\improper Griffeater Gin" desc = "A bottle of high quality gin, produced in the New London Space Station." icon_state = "ginbottle" New() @@ -144,7 +144,7 @@ reagents.add_reagent("gin", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey - name = "Uncle Git's Special Reserve" + name = "\improper Uncle Git's Special Reserve" desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES." icon_state = "whiskeybottle" New() @@ -152,7 +152,7 @@ reagents.add_reagent("whiskey", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka - name = "Tunguska Triple Distilled" + name = "\improper Tunguska Triple Distilled" desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide." icon_state = "vodkabottle" New() @@ -160,7 +160,7 @@ reagents.add_reagent("vodka", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla - name = "Caccavo Guaranteed Quality Tequilla" + name = "\improper Caccavo Guaranteed Quality Tequilla" desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!" icon_state = "tequillabottle" New() @@ -168,7 +168,7 @@ reagents.add_reagent("tequilla", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing - name = "Bottle of Nothing" + name = "\improper Bottle of Nothing" desc = "A bottle filled with nothing" icon_state = "bottleofnothing" New() @@ -176,7 +176,7 @@ reagents.add_reagent("nothing", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/patron - name = "Wrapp Artiste Patron" + name = "\improper Wrapp Artiste Patron" desc = "Silver laced tequilla, served in space night clubs across the galaxy." icon_state = "patronbottle" New() @@ -184,7 +184,7 @@ reagents.add_reagent("patron", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/rum - name = "Captain Pete's Cuban Spiced Rum" + name = "\improper Captain Pete's Cuban Spiced Rum" desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle." icon_state = "rumbottle" New() @@ -192,7 +192,7 @@ reagents.add_reagent("rum", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater - name = "Flask of Holy Water" + name = "\improper Flask of Holy Water" desc = "A flask of the chaplain's holy water." icon_state = "holyflask" New() @@ -200,7 +200,7 @@ reagents.add_reagent("holywater", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth - name = "Goldeneye Vermouth" + name = "\improper Goldeneye Vermouth" desc = "Sweet, sweet dryness~" icon_state = "vermouthbottle" New() @@ -208,7 +208,7 @@ reagents.add_reagent("vermouth", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua - name = "Robert Robust's Coffee Liqueur" + name = "\improper Robert Robust's Coffee Liqueur" desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK" icon_state = "kahluabottle" New() @@ -216,7 +216,7 @@ reagents.add_reagent("kahlua", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager - name = "College Girl Goldschlager" + name = "\improper College Girl Goldschlager" desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps." icon_state = "goldschlagerbottle" New() @@ -224,7 +224,7 @@ reagents.add_reagent("goldschlager", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/cognac - name = "Chateau De Baton Premium Cognac" + name = "\improper Chateau De Baton Premium Cognac" desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time." icon_state = "cognacbottle" New() @@ -232,7 +232,7 @@ reagents.add_reagent("cognac", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/wine - name = "Doublebeard Bearded Special Wine" + name = "\improper Doublebeard Bearded Special Wine" desc = "A faint aura of unease and asspainery surrounds the bottle." icon_state = "winebottle" New() @@ -240,7 +240,7 @@ reagents.add_reagent("wine", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe - name = "Jailbreaker Verte" + name = "\improper Jailbreaker Verte" desc = "One sip of this and you just know you're gonna have a good time." icon_state = "absinthebottle" New() @@ -250,7 +250,7 @@ //////////////////////////JUICES AND STUFF /////////////////////// /obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice - name = "Orange Juice" + name = "orange juice" desc = "Full of vitamins and deliciousness!" icon_state = "orangejuice" item_state = "carton" @@ -260,7 +260,7 @@ reagents.add_reagent("orangejuice", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/cream - name = "Milk Cream" + name = "milk cream" desc = "It's cream. Made from milk. What else did you think you'd find in there?" icon_state = "cream" item_state = "carton" @@ -270,7 +270,7 @@ reagents.add_reagent("cream", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice - name = "Tomato Juice" + name = "tomato juice" desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness." icon_state = "tomatojuice" item_state = "carton" @@ -280,7 +280,7 @@ reagents.add_reagent("tomatojuice", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice - name = "Lime Juice" + name = "lime juice" desc = "Sweet-sour goodness." icon_state = "limejuice" item_state = "carton" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 101b7a772f9..a033b45682e 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -245,7 +245,8 @@ M.visible_message("[M] [pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where \the [src] was")].","You swallow up the last part of \the [src].") playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1) var/mob/living/simple_animal/pet/corgi/C = M - C.health = min(C.health + 5, C.maxHealth) + C.adjustBruteLoss(-5) + C.adjustFireLoss(-5) qdel(src) else M.visible_message("[M] takes a bite of \the [src].","You take a bite of \the [src].") @@ -257,7 +258,8 @@ if(prob(50)) N.visible_message("[N] nibbles away at [src].", "") //N.emote("nibbles away at the [src]") - N.health = min(N.health + 1, N.maxHealth) + N.adjustBruteLoss(-1) + N.adjustFireLoss(-1) //////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index a9bbdb68de6..ee90720d0bc 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -97,7 +97,7 @@ var/time = 30 //Injecting through a hardsuit takes longer due to needing to find a port. if(istype(target,/mob/living/carbon/human)) var/mob/living/carbon/human/H = T - if((H.species.bloodflags & BLOOD_SLIME) || (H.species.flags & NO_BLOOD)) + if(H.species.flags & NO_BLOOD) usr << "You are unable to locate any blood." return if(H.wear_suit && istype(H.wear_suit,/obj/item/clothing/suit/space)) @@ -118,7 +118,7 @@ var/datum/reagent/B if(istype(T,/mob/living/carbon/human)) var/mob/living/carbon/human/H = T - if(H.species && H.species.flags & NO_BLOOD) + if(H.species && H.species.exotic_blood && H.reagents.total_volume) H.reagents.trans_to(src,amount) else B = T.take_blood(src,amount) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index f0e7a0ddf69..c733e715398 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -32,7 +32,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, */ /obj/machinery/computer/rdconsole - name = "R&D Console" + name = "\improper R&D console" icon_screen = "rdcomp" icon_keyboard = "rd_key" light_color = LIGHT_COLOR_FADEDPURPLE @@ -1117,23 +1117,23 @@ proc/CallMaterialName(ID) return dat /obj/machinery/computer/rdconsole/core - name = "Core R&D Console" + name = "core R&D console" desc = "A console used to interface with R&D tools." id = 1 /obj/machinery/computer/rdconsole/robotics - name = "Robotics R&D Console" + name = "robotics R&D console" desc = "A console used to interface with R&D tools." id = 2 req_access = list(access_robotics) /obj/machinery/computer/rdconsole/experiment - name = "E.X.P.E.R.I-MENTOR R&D Console" + name = "\improper E.X.P.E.R.I-MENTOR R&D console" desc = "A console used to interface with R&D tools." id = 3 /obj/machinery/computer/rdconsole/mechanics - name = "Mechanics R&D Console" + name = "mechanics R&D console" desc = "A console used to interface with R&D tools." id = 4 req_access = list(access_mechanic) diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index a520fe6ec92..c539b0c958f 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -187,7 +187,7 @@ /obj/machinery/computer/rdservercontrol - name = "R&D Server Controller" + name = "\improper R&D server controller" icon_screen = "rdcomp" icon_keyboard = "rd_key" light_color = LIGHT_COLOR_FADEDPURPLE @@ -335,7 +335,7 @@ emagged = 1 user << "\blue You you disable the security protocols" src.updateUsrDialog() - + /obj/machinery/r_n_d/server/core name = "Core R&D Server" id_with_upload_string = "1;3" diff --git a/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm b/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm index dc6bdc70521..53f219f7ca4 100644 --- a/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm +++ b/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm @@ -11,7 +11,7 @@ datum/genesequence #define SCANFOSSIL_RETVAL_SUCCESS 4 /obj/machinery/computer/reconstitutor - name = "Flora reconstitution console" + name = "flora reconstitution console" icon = 'icons/obj/computer.dmi' icon_keyboard = "med_key" icon_screen = "dna" @@ -39,7 +39,7 @@ datum/genesequence ..() /obj/machinery/computer/reconstitutor/animal - name = "Fauna reconstitution console" + name = "fauna reconstitution console" accepted_fossil_types = list(/obj/item/weapon/fossil/bone,/obj/item/weapon/fossil/shell,/obj/item/weapon/fossil/skull) pod1 = null circuit = /obj/item/weapon/circuitboard/reconstitutor/animal diff --git a/code/modules/research/xenoarchaeology/machinery/artifact_analyser.dm b/code/modules/research/xenoarchaeology/machinery/artifact_analyser.dm index cbc755e2c22..130fd8faa05 100644 --- a/code/modules/research/xenoarchaeology/machinery/artifact_analyser.dm +++ b/code/modules/research/xenoarchaeology/machinery/artifact_analyser.dm @@ -1,6 +1,6 @@ /obj/machinery/artifact_analyser - name = "Anomaly Analyser" + name = "anomaly analyser" desc = "Studies the emissions of anomalous materials to discover their uses." icon = 'icons/obj/virology.dmi' icon_state = "isolator" diff --git a/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm b/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm index 1c772d33bf0..ee22edf2fbd 100644 --- a/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm +++ b/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm @@ -1,6 +1,6 @@ /obj/machinery/artifact_harvester - name = "Exotic Particle Harvester" + name = "exotic particle harvester" icon = 'icons/obj/virology.dmi' icon_state = "incubator" //incubator_on anchored = 1 diff --git a/code/modules/research/xenoarchaeology/machinery/artifact_scanner.dm b/code/modules/research/xenoarchaeology/machinery/artifact_scanner.dm index 3d440bf85ab..a93c92a176e 100644 --- a/code/modules/research/xenoarchaeology/machinery/artifact_scanner.dm +++ b/code/modules/research/xenoarchaeology/machinery/artifact_scanner.dm @@ -1,6 +1,6 @@ /obj/machinery/artifact_scanpad - name = "Anomaly Scanner Pad" + name = "anomaly scanner pad" desc = "Place things here for scanning." icon = 'icons/obj/stationobjs.dmi' icon_state = "tele0" diff --git a/code/modules/research/xenoarchaeology/misc.dm b/code/modules/research/xenoarchaeology/misc.dm index df6628c6ae7..06f466ec72a 100644 --- a/code/modules/research/xenoarchaeology/misc.dm +++ b/code/modules/research/xenoarchaeology/misc.dm @@ -36,7 +36,7 @@ P.info = "Do you people think the anomaly suits are cheap to come by? I'm about a hair trigger away from instituting a log book for the damn things. Only wear them if you're going out for a dig, and for god's sake don't go tramping around in them unless you're field testing something, R" P.stamp(stamp) src.contents += P - + qdel(stamp) //---- Bookcase @@ -57,7 +57,7 @@ //---- Lockers and closets /obj/structure/closet/secure_closet/xenoarchaeologist - name = "Xenoarchaeologist Locker" + name = "xenoarchaeologist locker" req_access = list(access_tox_storage) icon_state = "secureres1" icon_closed = "secureres" @@ -79,7 +79,7 @@ return /obj/structure/closet/excavation - name = "Excavation tools" + name = "excavation tools closet" icon_state = "toolcloset" icon_closed = "toolcloset" icon_opened = "toolclosetopen" diff --git a/code/modules/shuttles/antagonist.dm b/code/modules/shuttles/antagonist.dm index 13cccbc900f..da51366b448 100644 --- a/code/modules/shuttles/antagonist.dm +++ b/code/modules/shuttles/antagonist.dm @@ -10,7 +10,7 @@ return 1 /obj/machinery/computer/shuttle_control/multi/syndicate - name = "Syndicate control console" + name = "\improper Syndicate control console" req_access = list(access_syndicate) shuttle_tag = "Syndicate" is_syndicate = 1 @@ -18,13 +18,13 @@ /obj/machinery/computer/shuttle_control/multi/syndicate/attack_ai(user as mob) user << "Access Denied." return 1 - + /obj/machinery/computer/shuttle_control/multi/xenos name = "alien control console" shuttle_tag = "Xenomorph" icon_keyboard = "telesci_key" icon_screen = "telesci" - + /obj/machinery/computer/shuttle_control/multi/xenos/attack_hand(user as mob) user << "You do not know how to operate this machinery." return 1 @@ -32,18 +32,18 @@ /obj/machinery/computer/shuttle_control/multi/xenos/attack_ai(user as mob) user << "Access Denied." return 1 - + /obj/machinery/computer/shuttle_control/multi/xenos/attack_ghost(user as mob) ui_interact(user) /obj/machinery/computer/shuttle_control/multi/xenos/attack_alien(user as mob) ui_interact(user) - + /obj/machinery/computer/shuttle_control/multi/xenos/CanUseTopic(mob/user) if(isalien(user)) return STATUS_INTERACTIVE - + if(ishuman(user)) return STATUS_CLOSE - + return ..() \ No newline at end of file diff --git a/code/modules/shuttles/departmental.dm b/code/modules/shuttles/departmental.dm index e6cfb06c910..9211130ee1d 100644 --- a/code/modules/shuttles/departmental.dm +++ b/code/modules/shuttles/departmental.dm @@ -1,28 +1,28 @@ /obj/machinery/computer/shuttle_control/mining - name = "Mining Shuttle Console" + name = "mining shuttle console" shuttle_tag = "Mining" req_access = list() circuit = /obj/item/weapon/circuitboard/mining_shuttle /obj/machinery/computer/shuttle_control/engineering - name = "Engineering Shuttle Console" + name = "engineering shuttle console" shuttle_tag = "Engineering" req_one_access_txt = "10;24" circuit = /obj/item/weapon/circuitboard/engineering_shuttle /obj/machinery/computer/shuttle_control/research - name = "Research Shuttle Console" + name = "research shuttle console" shuttle_tag = "Research" req_access = list(access_xenoarch) circuit = /obj/item/weapon/circuitboard/research_shuttle /obj/machinery/computer/shuttle_control/labor_camp - name = "Labor Camp Shuttle Console" + name = "labor camp shuttle console" shuttle_tag = "Labor" req_access = list(access_brig) /obj/machinery/computer/shuttle_control/labor_camp/one_way - name = "Prisoner Shuttle Console" + name = "prisoner shuttle console" req_access = list() /obj/machinery/computer/shuttle_control/labor_camp/one_way/launch() diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 6b29f969743..b0b840d138c 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -10,7 +10,7 @@ return 0 var/obj/item/organ/external/affected = target.get_organ(target_zone) - return affected && affected.open == (affected.encased ? 3 : 2) + return affected && affected.open_enough_for_surgery() ////////////////////////////////////////////////////////////////// // Dethrall Shadowling // @@ -29,25 +29,29 @@ if (!hasorgans(target)) return var/obj/item/organ/external/affected = target.get_organ(target_zone) - return ..() && affected && is_thrall(target) && affected.open == 3 && target_zone == "head" + return ..() && affected && is_thrall(target) && affected.open_enough_for_surgery() && target_zone == target.named_organ_parent("brain") begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] begins looking around in [target]'s head.", "You begin looking for foreign influences on [target]'s brain...") + var/braincase = target.named_organ_parent("brain") + user.visible_message("[user] begins looking around in [target]'s [braincase].", "You begin looking for foreign influences on [target]'s brain...") user << "You locate a small, pulsing black tumor on the side of [target]'s brain and begin to remove it." - target << "A small part of your head pulses with agony as the light impacts it." - user.visible_message("[user] begins removing something from [target]'s head.", \ + target << "A small part of your [braincase] pulses with agony as the light impacts it." + user.visible_message("[user] begins removing something from [target]'s [braincase].", \ "You begin carefully extracting the tumor...") ..() end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/braincase = target.named_organ_parent("brain") user.visible_message("[user] carefully extracts the tumor from [target]'s brain!", \ - "You extract the black tumor from [target]'s head. It quickly shrivels and burns away.") + "You extract the black tumor from [target]'s [braincase]. It quickly shrivels and burns away.") ticker.mode.remove_thrall(target.mind,0) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/braincase = target.named_organ_parent("brain") if(prob(50)) - user.visible_message("[user] slips and rips the tumor out from [target]'s head!", \ + user.visible_message("[user] slips and rips the tumor out from [target]'s [braincase]!", \ "You fumble and tear out [target]'s tumor!") + target.adjustBrainLoss(110) // This is so you can't just defib'n go ticker.mode.remove_thrall(target.mind,1) else user.visible_message("[user]'s hand slips and fumbles! Luckily, they didn't damage anything!") @@ -75,7 +79,7 @@ if (!hasorgans(target)) return var/obj/item/organ/external/affected = target.get_organ(target_zone) - return ..() && affected && embryo && affected.open == 3 && target_zone == "chest" + return ..() && affected && embryo && affected.open_enough_for_surgery() && target_zone == "chest" begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/msg = "[user] starts to pull something out from [target]'s ribcage with \the [tool]." @@ -113,7 +117,7 @@ return var/is_organ_damaged = 0 for(var/obj/item/organ/I in affected.internal_organs) - if(I.damage > 0) + if(I.damage > 0 && I.robotic < 2) is_organ_damaged = 1 break return ..() && is_organ_damaged diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index df0e5608221..fa6fd6f215f 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -3,25 +3,34 @@ // COMMON STEPS // ////////////////////////////////////////////////////////////////// -/datum/surgery_step/robotics/ +/datum/surgery_step/robotics can_infect = 0 - can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - if (isslime(target)) - return 0 - if (target_zone == "eyes") //there are specific steps for eye surgery - return 0 - if (!hasorgans(target)) - return 0 - var/obj/item/organ/external/affected = target.get_organ(target_zone) - if (affected == null) - return 0 - if (affected.status & ORGAN_DESTROYED) - return 0 - if (!(affected.status & ORGAN_ROBOT)) - return 0 - return 1 -/datum/surgery_step/robotics/unscrew_hatch +/datum/surgery_step/robotics/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + if (isslime(target)) + return 0 + if (target_zone == "eyes") //there are specific steps for eye surgery + return 0 + if (!hasorgans(target)) + return 0 + var/obj/item/organ/external/affected = target.get_organ(target_zone) + if (affected == null) + return 0 + if (affected.status & ORGAN_DESTROYED) + return 0 + return 1 + +/datum/surgery_step/robotics/external + +/datum/surgery_step/robotics/external/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + if (!..()) + return 0 + var/obj/item/organ/external/affected = target.get_organ(target_zone) + if (!(affected.status & ORGAN_ROBOT)) + return 0 + return 1 + +/datum/surgery_step/robotics/external/unscrew_hatch allowed_tools = list( /obj/item/weapon/screwdriver = 100, /obj/item/weapon/coin = 50, @@ -53,7 +62,7 @@ user.visible_message("\red [user]'s [tool.name] slips, failing to unscrew [target]'s [affected.name].", \ "\red Your [tool] slips, failing to unscrew [target]'s [affected.name].") -/datum/surgery_step/robotics/open_hatch +/datum/surgery_step/robotics/external/open_hatch allowed_tools = list( /obj/item/weapon/retractor = 100, /obj/item/weapon/crowbar = 100, @@ -85,7 +94,7 @@ user.visible_message("\red [user]'s [tool.name] slips, failing to open the hatch on [target]'s [affected.name].", "\red Your [tool] slips, failing to open the hatch on [target]'s [affected.name].") -/datum/surgery_step/robotics/close_hatch +/datum/surgery_step/robotics/external/close_hatch allowed_tools = list( /obj/item/weapon/retractor = 100, /obj/item/weapon/crowbar = 100, @@ -118,7 +127,7 @@ user.visible_message("\red [user]'s [tool.name] slips, failing to close the hatch on [target]'s [affected.name].", "\red Your [tool.name] slips, failing to close the hatch on [target]'s [affected.name].") -/datum/surgery_step/robotics/repair_brute +/datum/surgery_step/robotics/external/repair_brute allowed_tools = list( /obj/item/weapon/weldingtool = 100, /obj/item/weapon/gun/energy/plasmacutter = 50 @@ -154,7 +163,7 @@ "\red Your [tool.name] slips, damaging the internal structure of [target]'s [affected.name].") target.apply_damage(rand(5,10), BURN, affected) -/datum/surgery_step/robotics/repair_burn +/datum/surgery_step/robotics/external/repair_burn allowed_tools = list( /obj/item/stack/cable_coil = 100 ) @@ -215,7 +224,7 @@ if(I.damage > 0 && I.robotic >= 2) is_organ_damaged = 1 break - return affected.open == 2 && is_organ_damaged + return affected.open_enough_for_surgery() && is_organ_damaged begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -276,7 +285,7 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) if(!(affected && (affected.status & ORGAN_ROBOT))) return 0 - if(affected.open != 2) + if(!affected.open_enough_for_surgery()) return 0 target.op_stage.current_organ = null @@ -325,7 +334,7 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) if(!(affected && (affected.status & ORGAN_ROBOT))) return 0 - if(affected.open != 2) + if(!affected.open_enough_for_surgery()) return 0 target.op_stage.current_organ = null @@ -375,7 +384,7 @@ var/obj/item/device/mmi/M = tool var/obj/item/organ/external/affected = target.get_organ(target_zone) - if(!(affected && affected.open == 2)) + if(!(affected && affected.open_enough_for_surgery())) return 0 if(!istype(M)) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index 33e86061f5d..a060b0619d4 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/telescience - name = "\improper Telepad Control Console" + name = "telepad control console" desc = "Used to teleport objects to and from the telescience telepad." icon_keyboard = "telesci_key" icon_screen = "telesci" diff --git a/code/modules/virus2/centrifuge.dm b/code/modules/virus2/centrifuge.dm index 79c7096ec64..30805f8c28a 100644 --- a/code/modules/virus2/centrifuge.dm +++ b/code/modules/virus2/centrifuge.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/centrifuge - name = "Isolation Centrifuge" + name = "isolation centrifuge" desc = "Used to separate things with different weight. Spin 'em round, round, right round." icon = 'icons/obj/virology.dmi' icon_state = "centrifuge" diff --git a/code/modules/virus2/curer.dm b/code/modules/virus2/curer.dm index 1db66e49fa4..f298f8a3379 100644 --- a/code/modules/virus2/curer.dm +++ b/code/modules/virus2/curer.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/curer - name = "Cure Research Machine" + name = "cure research machine" icon = 'icons/obj/computer.dmi' icon_state = "dna" circuit = /obj/item/weapon/circuitboard/curefab diff --git a/code/modules/virus2/diseasesplicer.dm b/code/modules/virus2/diseasesplicer.dm index 7173b063b73..4129e77ecf6 100644 --- a/code/modules/virus2/diseasesplicer.dm +++ b/code/modules/virus2/diseasesplicer.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/diseasesplicer - name = "Disease Splicer" + name = "disease splicer console" icon = 'icons/obj/computer.dmi' icon_screen = "crew" icon_keyboard = "med_key" diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 96b0f22f29f..0866d0b0879 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index ba76739718d..33e1e3dcaa4 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 8c930f53059..111bc8d2061 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/nano/templates/smartfridge.tmpl b/nano/templates/smartfridge.tmpl index cc25d760ce0..f1acf955e84 100644 --- a/nano/templates/smartfridge.tmpl +++ b/nano/templates/smartfridge.tmpl @@ -15,7 +15,7 @@ {{for data.contents}}
{{:value.display_name}} ({{:value.quantity}} available) -
Vend: 
{{:helper.link('x1', 'circle-arrow-s', { "vend" : value.vend, "amount" : 1 }, null, 'statusValue')}} +
Vend: 
{{:helper.link('x1', 'circle-arrow-s', { "vend" : value.vend, "amount" : 1 }, null, 'statusValue')}} {{if value.quantity >= 5}} {{:helper.link('x5', 'circle-arrow-s', { "vend" : value.vend, "amount" : 5 }, null, 'statusValue')}} {{/if}} diff --git a/sound/effects/footstep/carpet_human.ogg b/sound/effects/footstep/carpet_human.ogg new file mode 100644 index 00000000000..8e7d16e6810 Binary files /dev/null and b/sound/effects/footstep/carpet_human.ogg differ diff --git a/sound/effects/footstep/carpet_xeno.ogg b/sound/effects/footstep/carpet_xeno.ogg new file mode 100644 index 00000000000..86569b3f28b Binary files /dev/null and b/sound/effects/footstep/carpet_xeno.ogg differ diff --git a/sound/effects/footstep/plating_human.ogg b/sound/effects/footstep/plating_human.ogg new file mode 100644 index 00000000000..72c04e7fe41 Binary files /dev/null and b/sound/effects/footstep/plating_human.ogg differ diff --git a/sound/effects/footstep/plating_xeno.ogg b/sound/effects/footstep/plating_xeno.ogg new file mode 100644 index 00000000000..f38a1eb5c3f Binary files /dev/null and b/sound/effects/footstep/plating_xeno.ogg differ diff --git a/sound/effects/footstep/wood_all.ogg b/sound/effects/footstep/wood_all.ogg new file mode 100644 index 00000000000..72628a8eaea Binary files /dev/null and b/sound/effects/footstep/wood_all.ogg differ