diff --git a/_maps/shuttles/emergency_scrapheap.dmm b/_maps/shuttles/emergency_scrapheap.dmm new file mode 100644 index 00000000000..d709b5281e4 --- /dev/null +++ b/_maps/shuttles/emergency_scrapheap.dmm @@ -0,0 +1,424 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"ad" = ( +/turf/open/space, +/area/shuttle/escape) +"ae" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"af" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ag" = ( +/obj/structure/chair/comfy/brown{ + tag = "icon-comfychair (NORTH)"; + icon_state = "comfychair"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ah" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ai" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aj" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ak" = ( +/obj/structure/chair/comfy/brown{ + tag = "icon-comfychair (WEST)"; + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"al" = ( +/turf/open/floor/carpet, +/area/shuttle/escape) +"am" = ( +/obj/structure/chair/comfy/brown{ + tag = "icon-comfychair (EAST)"; + icon_state = "comfychair"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/carpet, +/area/shuttle/escape) +"an" = ( +/obj/machinery/computer/crew, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ao" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -29 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ap" = ( +/obj/machinery/button/flasher{ + id = "cockpit_flasher"; + pixel_x = 6; + pixel_y = -24 + }, +/obj/structure/table/wood/poker, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aq" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ar" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"as" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"at" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"au" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"av" = ( +/obj/machinery/flasher{ + id = "cockpit_flasher"; + pixel_x = 6; + pixel_y = 24 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aw" = ( +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"ax" = ( +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"ay" = ( +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"az" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aA" = ( +/obj/structure/grille, +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aB" = ( +/obj/structure/grille/broken, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"aC" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"aD" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aE" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/obj/structure/table, +/obj/item/weapon/extinguisher, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aF" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aG" = ( +/obj/item/weapon/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aH" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aI" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aJ" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aK" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"aL" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + timid = 1; + name = "Box emergency shuttle" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aM" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aN" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aO" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/cas/black, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aP" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aQ" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/cas, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"aR" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"aS" = ( +/obj/structure/table_frame, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aT" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aU" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aV" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aW" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aX" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aY" = ( +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"aZ" = ( +/obj/structure/chair/wood{ + tag = "icon-wooden_chair (NORTH)"; + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"ba" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"bb" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bc" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bd" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"be" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bf" = ( +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bg" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bh" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bi" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bj" = ( +/obj/machinery/door/airlock{ + name = "Unit B" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bk" = ( +/obj/structure/toilet{ + tag = "icon-toilet00 (EAST)"; + icon_state = "toilet00"; + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bl" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bm" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bn" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bo" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) + +( +1, +1, +1) = {" +aaaaabacacacacacadaaaa +aaabaeafagahagaiadadaa +aaabajakalalalamadadaa +aaabanalaoapaqadadadaa +abacaracababasacatacad +abacauacacavawacaxacad +abayazazaAaBacaCaxaCab +aDaEaFaFacaGaHaHaxaIaJ +ababababaeaxaxaxaxaxaK +aLaMaMaMaMaxaMaMaMaMaN +abaBacacacaxacacacacaN +acaHaOaPaHaxaHaHaHaHaN +acaxaQaRaxaxaxaxaxaxaK +acaSaTaPaMaMaMaUaVaWaX +abaYaZaZacacacabababab +baawbbawawawbcadadadad +ababababbdbeaeadadadad +babfbfbgbfbfabadadadad +abbhabbiabbjabadadadad +abbkabbkabblabadadadad +ababbmbmbmbmbnadadadad +aaabboboboboboadadadaa +"} diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 68a7ea6b7d8..8fd1cae3eb7 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -114,6 +114,8 @@ #define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable +#define isorgan(A) (istype(A, /obj/item/organ)) + //Assemblies #define isassembly(O) (istype(O, /obj/item/device/assembly)) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 25cdc5a1569..03f43f1b993 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /* * A large number of misc global procs. diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 19b8ce2ebd4..93b31526596 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -91,6 +91,9 @@ leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it current = new_character //associate ourself with our new body new_character.mind = src //and associate our new body with ourself + if(iscarbon(new_character)) + var/mob/living/carbon/C = new_character + C.last_mind = src transfer_antag_huds(hud_to_transfer) //inherit the antag HUD transfer_actions(new_character) @@ -1533,6 +1536,10 @@ mind.name = real_name mind.current = src +/mob/living/carbon/mind_initialize() + ..() + last_mind = mind + //HUMAN /mob/living/carbon/human/mind_initialize() ..() diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 2b2aae668f1..d40d7dbbc8f 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -118,6 +118,13 @@ credit_cost = 1000 description = "Despite it's namesake, this shuttle is actually only slightly smaller than standard, and still complete with a brig and medbay." +/datum/map_template/shuttle/emergency/fuck + suffix = "scrapheap" + name = "Standby Evacuation Vessel \"Scrapheap Challenge\"" + credit_cost = -1000 + description = "Due to a lack of functional emergency shuttles, we bought this second hand from a scrapyard and pressed it into service. Please do not lean to heavily on the exterior windows, they are fragile." + admin_notes = "An abomination with no functional medbay, sections missing, and some very fragile windows. Surprisingly airtight." + /datum/map_template/shuttle/emergency/narnar suffix = "narnar" name = "Shuttle 667" diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index 1c4d8460291..1d107f8e43f 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + //Few global vars to track the blob var/list/blobs = list() //complete list of all blobs made. diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index 750e18a087c..627837effc3 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /datum/game_mode/blob/send_intercept(report = 0) var/intercepttext = "" diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 04db5e732c1..08bfa607691 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /datum/game_mode var/list/datum/mind/cult = list() diff --git a/code/game/gamemodes/devil/true_devil/inventory.dm b/code/game/gamemodes/devil/true_devil/inventory.dm index 52feb42e289..89a37d30b9f 100644 --- a/code/game/gamemodes/devil/true_devil/inventory.dm +++ b/code/game/gamemodes/devil/true_devil/inventory.dm @@ -33,8 +33,10 @@ if(!l_state) l_state = l_hand.icon_state - var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.righthand_file, isinhands = TRUE) + var/reflect = matrix(-1, 0, 0, 0, 1, 0) + l_hand_image.transform = reflect hands_overlays += l_hand_image if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 54c13990026..df99077665a 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /* * GAMEMODES (by Rastaf0) diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm index 2929547829d..a1d296f715c 100644 --- a/code/game/gamemodes/nuclear/nuclear_challenge.dm +++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm @@ -10,15 +10,15 @@ desc = "Use to send a declaration of hostilities to the target, delaying your shuttle departure for 20 minutes while they prepare for your assault. \ Such a brazen move will attract the attention of powerful benefactors within the Syndicate, who will supply your team with a massive amount of bonus telecrystals. \ Must be used within five minutes, or your benefactors will lose interest." - var/declaring_war = 0 + var/declaring_war = FALSE /obj/item/device/nuclear_challenge/attack_self(mob/living/user) if(!check_allowed(user)) return - declaring_war = 1 - var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [round((world.time-round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No") - declaring_war = 0 + declaring_war = TRUE + var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [-round((world.time-round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No") + declaring_war = FALSE if(!check_allowed(user)) return @@ -28,17 +28,20 @@ return var/war_declaration = "[user.real_name] has declared his intent to utterly destroy [station_name()] with a nuclear device, and dares the crew to try and stop them." - var/custom_threat = alert(user, "Do you want to customize your declaration?", "Customize?", "Yes", "No") - if(custom_threat == "No") - return + declaring_war = TRUE + var/custom_threat = alert(user, "Do you want to customize your declaration?", "Customize?", "Yes", "No") + declaring_war = FALSE if(!check_allowed(user)) return - war_declaration = stripped_input(user, "Insert your custom declaration", "Declaration") + if(custom_threat == "Yes") + declaring_war = TRUE + war_declaration = stripped_input(user, "Insert your custom declaration", "Declaration") + declaring_war = FALSE - if(!check_allowed(user) && !war_declaration) + if(!check_allowed(user) || !war_declaration) return priority_announce(war_declaration, title = "Declaration of War", sound = 'sound/machines/Alarm.ogg') @@ -78,4 +81,4 @@ #undef CHALLENGE_TELECRYSTALS #undef CHALLENGE_MIN_PLAYERS -#undef CHALLENGE_SHUTTLE_DELAY \ No newline at end of file +#undef CHALLENGE_SHUTTLE_DELAY diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index aae7317c5f4..49f6f7f30f8 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + var/hsboxspawn = 1 diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 3b7d8e3b66b..aa59d7a53a6 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + //Keeps track of the time for the ID console. Having it as a global variable prevents people from dismantling/reassembling it to //increase the slots of many jobs. diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index b10e174b014..4f6a3eec635 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + var/const/CALL_SHUTTLE_REASON_LENGTH = 12 diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 26237a9eeab..1e58a07298e 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /obj/machinery/computer/upload var/mob/living/silicon/current = null //The target of future law uploads diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index bba897a6765..a658237466d 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -1,4 +1,4 @@ -//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 console" diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 3da164c0c4d..8d4fb3962ac 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /obj/machinery/computer/robotics diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 6a4e3d9f664..051302dd1a9 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -1,4 +1,4 @@ -//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 console" diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index cf3b596ca11..4dfcfa24fd5 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -8,7 +8,7 @@ #define PRESET_MEDIUM 3000 #define PRESET_LONG 6000 -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /////////////////////////////////////////////////////////////////////////////////////////////// // Brig Door control displays. diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm index b5af371a275..c18e11c3985 100644 --- a/code/game/machinery/telecomms/computers/logbrowser.dm +++ b/code/game/machinery/telecomms/computers/logbrowser.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /obj/machinery/computer/telecomms/server name = "telecommunications server monitoring console" diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 8bd88fc4e13..c3fa31137d7 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -100,10 +100,10 @@ return if(!check_hub_connection()) - say("Error: Unable to detect hub.") + say("Error: Unable to detect hub.") return if(calibrating) - say("Error: Calibration in progress. Stand by.") + say("Error: Calibration in progress. Stand by.") return if(href_list["regimeset"]) @@ -123,21 +123,21 @@ target = get_turf(locked.locked_location) if(href_list["calibrate"]) if(!target) - say("Error: No target set to calibrate to.") + say("Error: No target set to calibrate to.") return if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3) - say("Hub is already calibrated!") + say("Hub is already calibrated!") return - say("Processing hub calibration to target...") + say("Processing hub calibration to target...") calibrating = 1 spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration calibrating = 0 if(check_hub_connection()) power_station.teleporter_hub.calibrated = 1 - say("Calibration complete.") + say("Calibration complete.") else - say("Error: Unable to detect hub.") + say("Error: Unable to detect hub.") updateDialog() updateDialog() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 48b5b3a107f..89e3cbecafa 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -4,7 +4,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s name = "item" icon = 'icons/obj/items.dmi' var/item_state = null - var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' //Dimensions of the icon file used when this item is worn, eg: hats.dmi diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 2c6f0be7fe9..7af4de841c6 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -89,8 +89,18 @@ else user << "You need one sheet of glass to replace lights!" + if(istype(W, /obj/item/weapon/shard)) + if(uses >= max_uses) + user << "[src.name] is full." + return + if(!user.unEquip(W)) + return + AddUses(round(increment*0.75)) + user << "You insert a shard of glass into the [src.name]. You have [uses] light\s remaining." + qdel(W) + return + if(istype(W, /obj/item/weapon/light)) - var/new_bulbs = 0 var/obj/item/weapon/light/L = W if(L.status == 0) // LIGHT OKAY if(uses < max_uses) @@ -101,11 +111,9 @@ else if(!user.unEquip(W)) return - new_bulbs += AddShards(1) + user << "You insert the [L.name] into the [src.name]" + AddShards(1, user) qdel(L) - if(new_bulbs != 0) - playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) - user << "You insert the [L.name] into the [src.name]. " + status_string() + "" return if(istype(W, /obj/item/weapon/storage)) @@ -126,7 +134,7 @@ else if(L.status == LIGHT_BROKEN || L.status == LIGHT_BURNED) replaced_something = TRUE - AddShards(1) + AddShards(1, user) qdel(L) if(!found_lightbulbs) @@ -146,7 +154,6 @@ /obj/item/device/lightreplacer/attack_self(mob/user) user << status_string() - /obj/item/device/lightreplacer/update_icon() icon_state = "lightreplacer[emagged]" @@ -154,7 +161,6 @@ return "It has [uses] light\s remaining (plus [bulb_shards] fragment\s)." /obj/item/device/lightreplacer/proc/Use(mob/user) - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) AddUses(-1) return 1 @@ -163,12 +169,15 @@ /obj/item/device/lightreplacer/proc/AddUses(amount = 1) uses = Clamp(uses + amount, 0, max_uses) -/obj/item/device/lightreplacer/proc/AddShards(amount = 1) +/obj/item/device/lightreplacer/proc/AddShards(amount = 1, user) bulb_shards += amount var/new_bulbs = round(bulb_shards / shards_required) if(new_bulbs > 0) AddUses(new_bulbs) bulb_shards = bulb_shards % shards_required + if(new_bulbs != 0) + user << "\The [src] has fabricated a new bulb from the broken glass it has stored. It now has [uses] uses." + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) return new_bulbs /obj/item/device/lightreplacer/proc/Charge(var/mob/user) @@ -185,11 +194,7 @@ U << "You replace the [target.fitting] with \the [src]." if(target.status != LIGHT_EMPTY) - var/new_bulbs = AddShards(1) - if(new_bulbs != 0) - U << "\The [src] has fabricated a new bulb from the broken bulbs it has stored. It now has [uses] uses." - playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) - + AddShards(1, U) target.status = LIGHT_EMPTY target.update() @@ -223,11 +228,8 @@ name = initial(name) update_icon() -//Can you use it? - /obj/item/device/lightreplacer/proc/CanUse(mob/living/user) src.add_fingerprint(user) - //Not sure what else to check for. Maybe if clumsy? if(uses > 0) return 1 else diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index c7b5b8a7e3d..cc8b97031ac 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -330,7 +330,9 @@ /obj/item/weapon/shard/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/weldingtool)) + if(istype(I, /obj/item/device/lightreplacer)) + I.attackby(src, user) + else if(istype(I, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = I if(WT.remove_fuel(0, user)) var/obj/item/stack/sheet/glass/NG = new (user.loc) @@ -367,4 +369,4 @@ H.visible_message("[H] slides on the broken glass!", \ "You slide on the broken glass!") - cooldown = world.time \ No newline at end of file + cooldown = world.time diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 9f0d5a25638..013cfcbc604 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -135,7 +135,6 @@ icon = 'icons/obj/guns/projectile.dmi' icon_state = "revolver" item_state = "gun" - lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/guns_righthand.dmi' flags = CONDUCT slot_flags = SLOT_BELT diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 0c9aaf5e161..050ea6bd920 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /* CONTAINS: diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index 9224bc115d9..e7f3d1d3b8d 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /* CONTAINS: diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index f1952affa8e..b901cd457ee 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /obj/machinery/implantchair name = "mindshield implanter" diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index a8701e24cb8..9f1f72797b3 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -7,7 +7,6 @@ icon = 'icons/obj/pneumaticCannon.dmi' icon_state = "pneumaticCannon" item_state = "bulldog" - lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/guns_righthand.dmi' armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50) var/maxWeightClass = 20 //The max weight of items that can fit into the cannon diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index b70bc4e9cf7..1671a4e66d6 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /obj/item/weapon/storage/lockbox name = "lockbox" diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index b81f8afb35e..a94cac87fb3 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -367,10 +367,10 @@ W.plane = initial(W.plane) W.loc = new_location - if(usr) - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) + for(var/mob/M in can_see_contents()) + orient2hud(M) + show_to(M) + if(W.maptext) W.maptext = "" W.on_exit_storage(src) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 38dc8553b1c..69846f7ac1d 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /* Tools! * Note: Multitools are /obj/item/device diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 07eb74b3411..9f5a5fca8a8 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -1,44 +1,5 @@ /obj/item/weapon - var/unique_rename = 0 //allows renaming with a pen - -/obj/item/weapon/examine(mob/user) - ..() - if(unique_rename) - user << "Use a pen on it to rename it or change its description." - -/obj/item/weapon/attackby(obj/item/I, mob/user, params) - if(unique_rename) - if(istype(I, /obj/item/weapon/pen)) - var/penchoice = alert("What would you like to edit?", "Rename or change description?", "Rename", "Change description", "Cancel") - if(!qdeleted(src) && user.canUseTopic(src, BE_CLOSE)) - if(penchoice == "Rename") - rename_weapon(user) - if(penchoice == "Change description") - redesc_weapon(user) - ..() - -/obj/item/weapon/proc/rename_weapon(mob/M) - var/oldname = name - var/input = stripped_input(M,"What do you want to name /the [name]?", ,"", MAX_NAME_LEN) - - if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "") - name = input - M << "/The [oldname] has successfully been renamed to /the [input]." - return - else - return - -/obj/item/weapon/proc/redesc_weapon(mob/M) - var/input = stripped_input(M,"Describe your object here", ,"", 100) - - if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "") - desc = input - M << "You have successfully changed /the [name]'s description." - return - else - return - /obj/item/weapon/banhammer desc = "A banhammer" name = "banhammer" diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 05ddecfda1d..05f579f80e8 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -25,6 +25,7 @@ var/persistence_replacement = null //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset. var/is_frozen = FALSE + var/unique_rename = 0 // can you customize the description/name of the thing? /obj/New() @@ -187,3 +188,44 @@ /obj/vv_get_dropdown() . = ..() .["Delete all of type"] = "?_src_=vars;delall=\ref[src]" + +/obj/examine(mob/user) + ..() + if(unique_rename) + user << "Use a pen on it to rename it or change its description." + +/obj/attackby(obj/item/I, mob/user, params) + if(unique_rename) + if(istype(I, /obj/item/weapon/pen)) + var/penchoice = alert("What would you like to edit?", "Rename or change description?", "Rename", "Change description", "Cancel") + if(!qdeleted(src) && user.canUseTopic(src, BE_CLOSE)) + if(penchoice == "Rename") + rename_obj(user) + if(penchoice == "Change description") + redesc_obj(user) + ..() + +/obj/proc/rename_obj(mob/M) + var/input = stripped_input(M,"What do you want to name \the [name]?", ,"", MAX_NAME_LEN) + var/oldname = name + + if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "") + if(oldname == input) + M << "You changed \the [name] to... well... \the [name]." + return + else + name = input + M << "\The [oldname] has been successfully been renamed to \the [input]." + return + else + return + +/obj/proc/redesc_obj(mob/M) + var/input = stripped_input(M,"Describe \the [name] here", ,"", 100) + + if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "") + desc = input + M << "You have successfully changed \the [name]'s description." + return + else + return \ No newline at end of file diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index 65789563cd3..3826c5397a9 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /datum/song var/name = "Untitled" diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 4cf9bdf390d..ecd94524229 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -121,7 +121,7 @@ return 1 /turf/open/handle_slip(mob/living/carbon/C, s_amount, w_amount, obj/O, lube) - if(C.movement_type & FLYING) + if((C.movement_type & FLYING) || C.slipping) return 0 if(has_gravity(src)) var/obj/buckled_obj @@ -144,25 +144,29 @@ C.accident(I) var/olddir = C.dir - if(!(lube&SLIDE_ICE)) + if(!(lube & SLIDE_ICE)) C.Stun(s_amount) C.Weaken(w_amount) C.stop_pulling() else C.Stun(1) + if(buckled_obj) buckled_obj.unbuckle_mob(C) step(buckled_obj, olddir) else if(lube&SLIDE) + C.slipping = TRUE for(var/i=1, i<5, i++) spawn (i) + if(i == 4) + C.slipping = FALSE step(C, olddir) C.spin(1,1) else if(lube&SLIDE_ICE) C.slipping = TRUE spawn(1) - step(C, olddir) C.slipping = FALSE + step(C, olddir) return 1 /turf/open/proc/MakeSlippery(wet_setting = TURF_WET_WATER, min_wet_time = 0, wet_time_to_add = 0) // 1 = Water, 2 = Lube, 3 = Ice, 4 = Permafrost, 5 = Slide diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index e30a01e0e47..a369c41c177 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -30,11 +30,11 @@ user << "The support rods have been sliced through, and the outer sheath is connected loosely to the girder." /turf/closed/wall/r_wall/break_wall() - new sheet_type(loc) + new sheet_type(src) return (new /obj/structure/girder/reinforced(src)) /turf/closed/wall/r_wall/devastate_wall() - new sheet_type(loc) + new sheet_type(src) new /obj/item/stack/sheet/metal(src, 2) /turf/closed/wall/r_wall/attack_animal(mob/living/simple_animal/M) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 783a91a083e..b6f817a41f7 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -43,12 +43,12 @@ ChangeTurf(/turf/open/floor/plating) /turf/closed/wall/proc/break_wall() - var/obj/item/stack/sheet/builtin_sheet = new sheet_type(loc) + var/obj/item/stack/sheet/builtin_sheet = new sheet_type(src) builtin_sheet.amount = 2 return (new /obj/structure/girder(src)) /turf/closed/wall/proc/devastate_wall() - var/obj/item/stack/sheet/builtin_sheet = new sheet_type(loc) + var/obj/item/stack/sheet/builtin_sheet = new sheet_type(src) builtin_sheet.amount = 2 new /obj/item/stack/sheet/metal(src) diff --git a/code/modules/admin/verbs/BrokenInhands.dm b/code/modules/admin/verbs/BrokenInhands.dm index e9122e9516a..8b54874a9ab 100644 --- a/code/modules/admin/verbs/BrokenInhands.dm +++ b/code/modules/admin/verbs/BrokenInhands.dm @@ -3,20 +3,13 @@ for(var/A in typesof(/obj/item)) var/obj/item/O = new A( locate(1,1,1) ) if(!O) continue - var/icon/IL = new(O.lefthand_file) - var/list/Lstates = IL.IconStates() var/icon/IR = new(O.righthand_file) var/list/Rstates = IR.IconStates() var/icon/J = new(O.icon) var/list/istates = J.IconStates() - if(!Lstates.Find(O.icon_state) && !Lstates.Find(O.item_state)) - if(O.icon_state) - text += "[O.type] WANTS IN LEFT HAND CALLED\n\"[O.icon_state]\".\n" if(!Rstates.Find(O.icon_state) && !Rstates.Find(O.item_state)) if(O.icon_state) text += "[O.type] WANTS IN RIGHT HAND CALLED\n\"[O.icon_state]\".\n" - - if(O.icon_state) if(!istates.Find(O.icon_state)) text += "[O.type] MISSING NORMAL ICON CALLED\n\"[O.icon_state]\" IN \"[O.icon]\"\n" diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 7469ef5b0de..4b9a81f73ce 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -220,3 +220,62 @@ /obj/item/device/assembly/flash/armimplant/proc/cooldown() overheat = FALSE + +/obj/item/device/assembly/flash/shield + name = "strobe shield" + desc = "A shield with a built in, high intensity light capable of blinding and disorienting suspects. Takes regular handheld flashes as bulbs." + icon = 'icons/obj/weapons.dmi' + icon_state = "flashshield" + item_state = "flashshield" + slot_flags = SLOT_BACK + force = 10 + throwforce = 5 + throw_speed = 2 + throw_range = 3 + w_class = WEIGHT_CLASS_BULKY + materials = list(MAT_GLASS=7500, MAT_METAL=1000) + origin_tech = "materials=3;combat=4" + attack_verb = list("shoved", "bashed") + block_chance = 50 + armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 80, acid = 70) + +/obj/item/device/assembly/flash/shield/flash_recharge(interval=10) + if(times_used >= 4) + burn_out() + return 0 + return 1 + +/obj/item/device/assembly/flash/shield/attackby(obj/item/weapon/W, mob/user) + if(istype(W, /obj/item/device/assembly/flash/handheld)) + var/obj/item/device/assembly/flash/handheld/flash = W + if(flash.crit_fail) + user << "No sense replacing it with a broken bulb." + return + else + user << "You begin to replace the bulb." + if(do_after(user, 20, target = src)) + if(flash.crit_fail || !flash || qdeleted(flash)) + return + crit_fail = FALSE + times_used = 0 + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + update_icon() + flash.crit_fail = TRUE + flash.update_icon() + return + ..() + +/obj/item/device/assembly/flash/shield/update_icon(flash = 0) + item_state = "flashshield" + item_state = "flashshield" + + if(crit_fail) + icon_state = "riot" + item_state = "riot" + else if(flash) + item_state = "flashshield_flash" + item_state = "flashshield_flash" + addtimer(src, "update_icon", 5) + + if(holder) + holder.update_icon() \ No newline at end of file diff --git a/code/modules/awaymissions/maploader/swapmaps.dm b/code/modules/awaymissions/maploader/swapmaps.dm index f247687a422..06f19423290 100644 --- a/code/modules/awaymissions/maploader/swapmaps.dm +++ b/code/modules/awaymissions/maploader/swapmaps.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /* SwapMaps library by Lummox JR diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index c65946ed804..87c2b99366f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + var/list/preferences_datums = list() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index c5c2f56f33a..463ec6d13b7 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -11,7 +11,6 @@ var/visor_flags = 0 // flags that are added/removed when an item is adjusted up/down var/visor_flags_inv = 0 // same as visor_flags, but for flags_inv var/visor_flags_cover = 0 // same as above, but for flags_cover - lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing_righthand.dmi' var/alt_desc = null var/toggle_message = null diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 84f94fcba65..e70a7fac264 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -39,6 +39,15 @@ time = 15 category = CAT_WEAPON +/datum/crafting_recipe/strobeshield + name = "strobe shield" + result = /obj/item/device/assembly/flash/shield + reqs = list(/obj/item/wallframe/flasher = 1, + /obj/item/device/assembly/flash/handheld = 1, + /obj/item/weapon/shield/riot = 1) + time = 40 + category = CAT_WEAPON + /datum/crafting_recipe/molotov name = "Molotov" result = /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm new file mode 100644 index 00000000000..2049edbb7fc --- /dev/null +++ b/code/modules/events/sentience.dm @@ -0,0 +1,42 @@ +/datum/round_event_control/sentience + name = "Random Human-level Intelligence" + typepath = /datum/round_event/ghost_role/sentience + weight = 5 + +/datum/round_event/ghost_role/sentience + minimum_required = 1 + role_name = "random animal" + +/datum/round_event/ghost_role/sentience/spawn_role() + var/list/mob/dead/observer/candidates + candidates = get_candidates(ROLE_ALIEN, null, ROLE_ALIEN) + + // find our chosen mob to breathe life into + // Mobs have to be simple animals, mindless and on station + var/list/potential = list() + for(var/mob/living/simple_animal/L in living_mob_list) + var/turf/T = get_turf(L) + if(T.z != ZLEVEL_STATION) + continue + if(!(L in player_list) && !L.mind) + potential += L + + var/mob/living/simple_animal/SA = pick(potential) + var/mob/dead/observer/SG = pick(candidates) + + if(!SA || !SG) + return FALSE + + SA.key = SG.key + SA.languages_spoken |= HUMAN + SA.languages_understood |= HUMAN + SA.sentience_act() + + SA.maxHealth = max(SA.maxHealth, 200) + SA.health = SA.maxHealth + SA.del_on_death = FALSE + + SA << "Hello world!" + SA << "Due to freak radiation and/or chemicals \ + and/or lucky chance, you have gained human level intelligence \ + and the ability to speak and understand human language!" diff --git a/code/modules/flufftext/TextFilters.dm b/code/modules/flufftext/TextFilters.dm index b529aec9059..d499423bfff 100644 --- a/code/modules/flufftext/TextFilters.dm +++ b/code/modules/flufftext/TextFilters.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + //is this shit even used at all /proc/NewStutter(phrase,stunned) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index ab4f18a1a97..cad5fdbcc28 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -181,10 +181,6 @@ examine_line = "It has a lot of liquid contents inside." origin_tech = list("biotech" = 5) -/datum/plant_gene/trait/squash/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) - G.squash(target) - - /datum/plant_gene/trait/slip // Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery. // Applies other trait effects (teleporting, etc) to the target by on_slip. @@ -321,7 +317,7 @@ G.reagents.maximum_volume *= rate /datum/plant_gene/trait/repeated_harvest - name = "perennial growth" + name = "Perennial Growth" /datum/plant_gene/trait/repeated_harvest/can_add(obj/item/seeds/S) if(!..()) @@ -331,7 +327,7 @@ return TRUE /datum/plant_gene/trait/battery - name = "capacitive cellular production" + name = "Capacitive Cell Production" /datum/plant_gene/trait/battery/on_attackby(obj/item/weapon/reagent_containers/food/snacks/grown/G, obj/item/I, mob/user) if(istype(I, /obj/item/stack/cable_coil)) @@ -359,7 +355,7 @@ /datum/plant_gene/trait/stinging - name = "hypodermic prickles" + name = "Hypodermic Prickles" /datum/plant_gene/trait/stinging/on_throw_impact(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) if(isliving(target) && G.reagents && G.reagents.total_volume) @@ -376,10 +372,10 @@ trait_id = "plant_type" /datum/plant_gene/trait/plant_type/weed_hardy - name = "Robust Species" + name = "Weed Adaptation" /datum/plant_gene/trait/plant_type/fungal_metabolism name = "Fungal Vitality" /datum/plant_gene/trait/plant_type/alien_properties - name ="?????" \ No newline at end of file + name ="?????" diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index fb9072b91e6..ac5a7902a2b 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + /var/const/access_security = 1 // Security equipment /var/const/access_brig = 2 // Brig timers and permabrig diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index b0547c9f0d6..73ae98b59db 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -162,8 +162,13 @@ blood_data["trace_chem"] = list2params(temp_chem) if(mind) blood_data["mind"] = mind + else if(last_mind) + blood_data["mind"] = last_mind if(ckey) blood_data["ckey"] = ckey + else if(last_mind) + blood_data["ckey"] = ckey(last_mind.key) + if(!suiciding) blood_data["cloneable"] = 1 blood_data["blood_type"] = copytext(dna.blood_type,1,0) diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 85f321b1cfc..d709473cce3 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /obj/item/device/mmi name = "Man-Machine Interface" diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index e90b4a72972..0b0fa0ccc91 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /mob/living/brain languages_spoken = HUMAN diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 017facc71b1..38267336841 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /mob/living/carbon/alien/humanoid/proc/adjust_body_temperature(current, loc_temp, boost) var/temperature = current diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 0ff617d7532..f59afdf990a 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /mob/living/carbon/alien/larva/Life() set invisibility = 0 diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 34fd9a14e13..b4e0105b3f9 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + //TODO: Make these simple_animals diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 3269e7c5fb9..5162f056d50 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -768,5 +768,5 @@ . = ..() . += "---" .["Make AI"] = "?_src_=vars;makeai=\ref[src]" - .["Modify bodypart"] = "" + .["Modify bodypart"] = "?_src_=vars;editbodypart=\ref[src]" .["Modify organs"] = "?_src_=vars;editorgans=\ref[src]" diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index e163cb6dc35..1c1a00fd45c 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -25,6 +25,7 @@ var/obj/item/ears = null //only used by humans. var/datum/dna/dna = null//Carbon + var/datum/mind/last_mind = null //last mind to control this mob, for blood-based cloning var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks. diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index c81b1e6d6f4..e1fffbeef6f 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + //NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick! diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 87ae05d6e86..a55cf64dde7 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + /mob/living/carbon/monkey diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 9feb1c1c2aa..0a6a95f747b 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -75,11 +75,12 @@ if(!t_state) t_state = I.icon_state - var/icon_file = I.lefthand_file - if(get_held_index_of_item(I) % 2 == 0) - icon_file = I.righthand_file + var/image/standing = I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = I.righthand_file, isinhands = TRUE) + + if(get_held_index_of_item(I) % 2 == 1) + var/reflect = matrix(-1, 0, 0, 0, 1, 0) + standing.transform = reflect - var/image/standing = I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE) hands += standing overlays_standing[HANDS_LAYER] = hands diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 6b5bf1e48b9..f6cd93dede2 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + // Mulebot - carries crates around for Quartermaster // Navigates via floor navbeacons diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index 1142f0ddafc..b2304913ea6 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -1,5 +1,3 @@ - - /mob/living/simple_animal/cockroach name = "cockroach" desc = "This station is just crawling with bugs." @@ -16,11 +14,15 @@ response_help = "pokes" response_disarm = "shoos" response_harm = "splats" + speak_emote = list("chitters") density = 0 ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = 2 + verb_say = "chitters" + verb_ask = "chitters inquisitively" + verb_exclaim = "chitters loudly" + verb_yell = "chitters loudly" var/squish_chance = 50 - loot = list(/obj/effect/decal/cleanable/deadcockroach) del_on_death = 1 /mob/living/simple_animal/cockroach/death(gibbed) @@ -28,6 +30,10 @@ return ..() +/mob/living/simple_animal/cockroach/proc/squish() + adjustBruteLoss(1) // kills a normal cockroach + new /obj/effect/decal/cleanable/deadcockroach(get_turf(src)) + /mob/living/simple_animal/cockroach/Crossed(var/atom/movable/AM) if(ismob(AM)) if(isliving(AM)) @@ -35,14 +41,14 @@ if(A.mob_size > MOB_SIZE_SMALL) if(prob(squish_chance)) A.visible_message("\The [A] squashed \the [name].", "You squashed \the [name].") - death() + squish() else visible_message("\The [name] avoids getting crushed.") else if(isobj(AM)) if(istype(AM,/obj/structure)) visible_message("As \the [AM] moved over \the [name], it was crushed.") - death() + squish() /mob/living/simple_animal/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach. return diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index 95c18b53f40..ae280cd96aa 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -51,10 +51,13 @@ if(!l_state) l_state = l_hand.icon_state - var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DRONE_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DRONE_HANDS_LAYER, default_icon_file = l_hand.righthand_file, isinhands = TRUE) if(y_shift) l_hand_image.pixel_y += y_shift + var/reflect = matrix(-1, 0, 0, 0, 1, 0) + l_hand_image.transform = reflect + hands_overlays += l_hand_image if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 0adbf952a7b..e5af5744748 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -293,8 +293,10 @@ var/global/list/parasites = list() //all currently existing/living guardians if(!l_state) l_state = l_hand.icon_state - var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.righthand_file, isinhands = TRUE) + var/reflect = matrix(-1, 0, 0, 0, 1, 0) + l_hand_image.transform = reflect hands_overlays += l_hand_image if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index 6d15a0c24fd..9417ed48764 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -171,7 +171,7 @@ Difficulty: Medium var/range = 10 var/turf/previousturf = get_turf(src) for(var/turf/J in getline(src,E)) - if(!range || !previousturf.atmos_adjacent_turfs || !previousturf.atmos_adjacent_turfs[J]) + if(!range || (J != previousturf && (!previousturf.atmos_adjacent_turfs || !previousturf.atmos_adjacent_turfs[J]))) break range-- PoolOrNew(/obj/effect/hotspot,J) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 2f1f1319a16..1ce88513f4f 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -129,6 +129,8 @@ return 0 if(isliving(mob)) var/mob/living/L = mob + if(L.slipping) + return 0 if(L.incorporeal_move) //Move though walls Process_Incorpmove(direct) return 0 diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 962bd465dd2..dcec1b95502 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /mob/new_player var/ready = 0 diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm index d1092124e52..3d61ae7c687 100644 --- a/code/modules/paperwork/paper_cutter.dm +++ b/code/modules/paperwork/paper_cutter.dm @@ -2,7 +2,7 @@ name = "paper cutter" desc = "Standard office equipment. Precisely cuts paper using a large blade." icon = 'icons/obj/bureaucracy.dmi' - icon_state = "papercutter-cutter" + icon_state = "papercutter" force = 5 throwforce = 5 w_class = WEIGHT_CLASS_NORMAL @@ -15,6 +15,7 @@ /obj/item/weapon/papercutter/New() ..() storedcutter = new /obj/item/weapon/hatchet/cutterblade(src) + update_icon() /obj/item/weapon/papercutter/suicide_act(mob/user) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 4d05e59f7eb..366c9a9df2c 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /* new portable generator - work in progress diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 2bd3627f3e8..2e3bec5e47a 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + var/global/list/rad_collectors = list() /obj/machinery/power/rad_collector diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 4d1bad4e2b9..739d9fcea72 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /obj/machinery/field/containment name = "containment field" diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 4e61b9aae37..2f84aa2784c 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /obj/machinery/power/emitter name = "Emitter" diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index bd046a586a6..ae66949a54d 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /* diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index fb9af570189..29ce8dc79d7 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /obj/singularity name = "gravitational singularity" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 63ef4d91839..181053033e3 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -38,7 +38,6 @@ var/current_skin = null //the skin choice if we had a reskin var/list/options = list() - lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/guns_righthand.dmi' var/obj/item/device/firing_pin/pin = /obj/item/device/firing_pin //standard firing pin for most guns diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 58e7553de55..3da1e030a80 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -70,7 +70,6 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "pen" item_state = "pen" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 12e1517083e..1390310106a 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -19,7 +19,6 @@ trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses magic instead pin = /obj/item/device/firing_pin/magic - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' //not really a gun and some toys use these inhands righthand_file = 'icons/mob/inhands/items_righthand.dmi' /obj/item/weapon/gun/magic/afterattack(atom/target, mob/living/user, flag) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 8f5e3156dd9..b508fb85957 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -225,7 +225,7 @@ pixel_x = pixel_x_offset pixel_y = pixel_y_offset else - animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = max(1, (delay <= 3 ? delay - 1 : delay))) + animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = max(1, (delay <= 3 ? delay - 1 : delay)), flags = ANIMATION_END_NOW) if(original && (original.layer>=2.75) || ismob(original)) if(loc == get_turf(original)) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 4343bcbf9dc..6bdcb96751f 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + var/const/TOUCH = 1 //splashing var/const/INGEST = 2 //ingestion diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 40a4bcc6340..d0544411c21 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -116,12 +116,17 @@ // attack with item, place item on conveyor /obj/machinery/conveyor/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/crowbar)) - if(!(stat & BROKEN)) - var/obj/item/conveyor_construct/C = new/obj/item/conveyor_construct(src.loc) - C.id = id - transfer_fingerprints_to(C) - user << "You remove the conveyor belt." - qdel(src) + user.visible_message("[user] struggles to pry up \the [src] with \the [I].", \ + "You struggle to pry up \the [src] with \the [I].") + if(do_after(user, 40*I.toolspeed, target = src)) + if(qdeleted(src)) + return //prevent multiple decontructs + if(!(stat & BROKEN)) + var/obj/item/conveyor_construct/C = new/obj/item/conveyor_construct(src.loc) + C.id = id + transfer_fingerprints_to(C) + user << "You remove the conveyor belt." + qdel(src) else if(istype(I, /obj/item/weapon/wrench)) if(!(stat & BROKEN)) diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 26766f8957b..fb68663b36e 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + /* Destructive Analyzer diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 156de6e3c46..45a90a6d1b0 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + //All devices that link into the R&D console fall into thise type for easy identification and some shared procs. diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm index 5e9e315e77c..67eaa351337 100644 --- a/code/modules/surgery/organs/helpers.dm +++ b/code/modules/surgery/organs/helpers.dm @@ -28,7 +28,3 @@ /mob/living/carbon/getorganslot(slot) return internal_organs_slot[slot] - - -/proc/isorgan(atom/A) - return istype(A, /obj/item/organ) \ No newline at end of file diff --git a/code/orphaned_procs/dbcore.dm b/code/orphaned_procs/dbcore.dm index ecb073b6a29..83f7d50db3f 100644 --- a/code/orphaned_procs/dbcore.dm +++ b/code/orphaned_procs/dbcore.dm @@ -1,4 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + //cursors #define Default_Cursor 0 diff --git a/html/changelog.html b/html/changelog.html index bae71002598..a788283d175 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -66,10 +66,18 @@

Joan updated:

+

Mervill updated:

+

MrStonedOne updated:

PKPenguin321 updated: