From 9f9b5285d85f6949b089a464605a6f698fbe30a7 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 18 Dec 2013 00:24:21 +1030 Subject: [PATCH 01/16] Fixes #4058 --- code/modules/reagents/reagent_containers/glass.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index b4a7ecf2095..382eacbf02d 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -66,7 +66,8 @@ update_icon() afterattack(obj/target, mob/user , flag) - if (!is_open_container()) + + if (!is_open_container() || get_dist(get_turf(src),get_turf(target))>1) return for(var/type in src.can_be_placed_into) From 0695774d249de3fa512caa28d1c7c681b77a31c6 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 18 Dec 2013 01:04:52 +1030 Subject: [PATCH 02/16] Fixes #4050 --- code/game/objects/structures/window.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 7d1041aaab3..62556db7bd4 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -9,7 +9,7 @@ flags = ON_BORDER var/health = 14.0 var/ini_dir = null - var/state = 0 + var/state = 2 var/reinf = 0 var/basestate var/shardtype = /obj/item/weapon/shard From 751219dbfd5f4e6f9fa15c298331b9cb776fd964 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Wed, 18 Dec 2013 02:08:38 +0800 Subject: [PATCH 03/16] Added "hide" verb to mousetraps, placing them on the same layer as hidden mice. Triggered mousetraps and dead mice will be moved back to the top layer. Monkeys will no longer move randomly while being pulled. --- code/modules/assembly/mousetrap.dm | 15 ++++++++++++++- code/modules/mob/living/carbon/monkey/life.dm | 12 +++++++++++- .../mob/living/simple_animal/friendly/mouse.dm | 2 ++ html/changelog.html | 9 +++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 4d2c8fa53b9..5cea63edaea 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -45,6 +45,7 @@ visible_message("\red SPLAT!") M.splat() playsound(target.loc, 'sound/effects/snap.ogg', 50, 1) + layer = MOB_LAYER - 0.2 armed = 0 update_icon() pulse(0) @@ -112,4 +113,16 @@ /obj/item/device/assembly/mousetrap/armed icon_state = "mousetraparmed" - armed = 1 \ No newline at end of file + armed = 1 + + +/obj/item/device/assembly/mousetrap/verb/hide_under() + set src in oview(1) + set name = "Hide" + set category = "Object" + + if(usr.stat) + return + + layer = TURF_LAYER+0.2 + usr << "You hide [src]." \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 6c28acc72b5..b2dcfb5d2ca 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -67,8 +67,18 @@ G.process() if(!client && stat == CONSCIOUS) + if(prob(33) && canmove && isturf(loc)) - step(src, pick(cardinal)) + + var/isBeingPulled = 0 + + for(var/mob/M in range(src, 1)) //won't move if being pulled + if(M.pulling == src) + isBeingPulled = 1 + + if(isBeingPulled == 0) + step(src, pick(cardinal)) + if(prob(1)) emote(pick("scratch","jump","roll","tail")) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index af36a591626..503b8536054 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -63,6 +63,7 @@ src.stat = DEAD src.icon_dead = "mouse_[body_color]_splat" src.icon_state = "mouse_[body_color]_splat" + layer = MOB_LAYER if(client) client.time_died_as_mouse = world.time @@ -179,6 +180,7 @@ ..() /mob/living/simple_animal/mouse/Die() + layer = MOB_LAYER if(client) client.time_died_as_mouse = world.time ..() diff --git a/html/changelog.html b/html/changelog.html index 0b546f4072b..f21c83487cd 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,15 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

18 December 2013

+

RavingManiac updated:

+
    +
  • Mousetraps can now be "hidden" through the right-click menu. This makes them go under tables, clutter and the like. The filthy rodents will never see it coming!
  • +
  • Monkeys will no longer move randomly while being pulled.
  • +
+
+

24 November 2013

Yinadele updated:

From 8d76690f444761057442407a03dc050c85f10ec6 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 18 Dec 2013 10:30:59 +1030 Subject: [PATCH 04/16] Fixes #4042 --- .../machinery/computer/HolodeckControl.dm | 6 ++++++ code/game/objects/items/toys.dm | 6 ++++++ .../objects/items/weapons/swords_axes_etc.dm | 20 +++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index f9d765de6a5..bdd313853f3 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -532,6 +532,12 @@ w_class = 2 playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) user << "\blue [src] can now be concealed." + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + add_fingerprint(user) return diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index c4578808cfb..f02824576cb 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -337,6 +337,12 @@ src.icon_state = "sword0" src.item_state = "sword0" src.w_class = 2 + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + src.add_fingerprint(user) return diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 2e40b1fb9af..e6a1a4dff81 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -40,6 +40,7 @@ w_class = 4 playsound(user, 'sound/weapons/saberon.ogg', 50, 1) user << "\blue [src] is now active." + else force = 3 if(istype(src,/obj/item/weapon/melee/energy/sword/pirate)) @@ -49,6 +50,12 @@ w_class = 2 playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) user << "\blue [src] can now be concealed." + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + add_fingerprint(user) return @@ -137,6 +144,12 @@ w_class = 2 force = 3//not so robust now attack_verb = list("hit", "punched") + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + playsound(src.loc, 'sound/weapons/empty.ogg', 50, 1) add_fingerprint(user) @@ -242,11 +255,18 @@ w_class = 4 playsound(user, 'sound/weapons/saberon.ogg', 50, 1) user << "\blue [src] is now active." + else force = 3 icon_state = "eshield[active]" w_class = 1 playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) user << "\blue [src] can now be concealed." + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + add_fingerprint(user) return \ No newline at end of file From e110b51337ffb32a7f0490bd937e8d35b6ae5280 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 18 Dec 2013 11:09:13 +1030 Subject: [PATCH 05/16] Allows gibs to be scanned for DNA. --- code/modules/detectivework/scanner.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index 52568ad005b..d898495697a 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -70,6 +70,7 @@ return if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit. return + if(istype(A,/obj/item/weapon/f_card)) user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" flick("forensic0",src) @@ -77,9 +78,8 @@ add_fingerprint(user) - - //Special case for blood splaters. - if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune)) + //Special case for blood splatters, runes and gibs. + if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable/blood/gibs)) if(!isnull(A.blood_DNA)) for(var/blood in A.blood_DNA) user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" From 6984ba3fecb735cbe6e5e93dc8cc46653612a20c Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 18 Dec 2013 11:10:00 +1030 Subject: [PATCH 06/16] Fixes #4040 --- code/game/objects/structures/grille.dm | 5 +++-- code/game/objects/structures/window.dm | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 04f18fe3b6a..0096d763eab 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -145,9 +145,9 @@ return var/obj/structure/window/WD if(istype(W,/obj/item/stack/sheet/rglass)) - WD = new/obj/structure/window(loc,1) //reinforced window + WD = new/obj/structure/window/reinforced(loc) //reinforced window else - WD = new/obj/structure/window(loc,0) //normal window + WD = new/obj/structure/window/basic(loc) //normal window WD.dir = dir_to_set WD.ini_dir = dir_to_set WD.anchored = 0 @@ -155,6 +155,7 @@ var/obj/item/stack/ST = W ST.use(1) user << "You place the [WD] on [src]." + WD.update_icon() return //window placing end diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 62556db7bd4..482fdea6c09 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -338,6 +338,7 @@ spawn(2) if(!src) return if(!is_fulltile()) + icon_state = "[basestate]" return var/junction = 0 //will be used to determine from which side the window is connected to other windows if(anchored) From 924a7af50a91e180a57a550f87bf40e5de2bf491 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 18 Dec 2013 11:17:17 +1030 Subject: [PATCH 07/16] Fixes #4034 --- code/game/objects/structures/tables_racks.dm | 24 ++++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index e5dc20b3e13..81c017def59 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -46,6 +46,10 @@ density = 0 del(src) +/obj/structure/rack/proc/destroy() + new parts(loc) + density = 0 + del(src) /obj/structure/table/update_icon() spawn(2) //So it properly updates when deleting @@ -572,6 +576,7 @@ flags = FPRINT anchored = 1.0 throwpass = 1 //You can throw objects over this, despite it's density. + var/parts = /obj/item/weapon/rack_parts /obj/structure/rack/ex_act(severity) switch(severity) @@ -634,33 +639,22 @@ if(HULK in user.mutations) visible_message("[user] smashes [src] apart!") user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) - new /obj/item/weapon/rack_parts(loc) - density = 0 - del(src) - + destroy() /obj/structure/rack/attack_paw(mob/user) if(HULK in user.mutations) user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) visible_message("[user] smashes [src] apart!") - new /obj/item/weapon/rack_parts(loc) - density = 0 - del(src) - + destroy() /obj/structure/rack/attack_alien(mob/user) visible_message("[user] slices [src] apart!") - new /obj/item/weapon/rack_parts(loc) - density = 0 - del(src) - + destroy() /obj/structure/rack/attack_animal(mob/living/simple_animal/user) if(user.wall_smash) visible_message("[user] smashes [src] apart!") - new /obj/item/weapon/rack_parts(loc) - density = 0 - del(src) + destroy() /obj/structure/rack/attack_tk() // no telehulk sorry return \ No newline at end of file From b4e11a6ff9b494150ba424960518172e51943781 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 18 Dec 2013 11:51:20 +1030 Subject: [PATCH 08/16] Possible fix for #3712 --- code/game/machinery/cryo.dm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 073c1b8fe40..6c6fc53f61a 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -5,7 +5,7 @@ density = 1 anchored = 1.0 layer = 2.8 - + var/on = 0 var/temperature_archived var/mob/living/carbon/occupant = null @@ -68,7 +68,7 @@ * ui_interact is currently defined for /atom/movable * * @param user /mob The mob who is interacting with this ui - * @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main") + * @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main") * @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui * * @return nothing @@ -79,7 +79,7 @@ return // this is the data which will be sent to the ui - var/data[0] + var/data[0] data["isOperating"] = on data["hasOccupant"] = occupant ? 1 : 0 @@ -115,7 +115,7 @@ else if(air_contents.temperature > 225) data["cellTemperatureStatus"] = "average" - data["isBeakerLoaded"] = beaker ? 1 : 0 + data["isBeakerLoaded"] = beaker ? 1 : 0 /* // Removing beaker contents list from front-end, replacing with a total remaining volume var beakerContents[0] if(beaker && beaker.reagents && beaker.reagents.reagent_list.len) @@ -130,12 +130,12 @@ if (beaker.reagents && beaker.reagents.reagent_list.len) for(var/datum/reagent/R in beaker.reagents.reagent_list) data["beakerVolume"] += R.volume - + if (!ui) // no ui has been passed, so we'll search for one { ui = nanomanager.get_open_ui(user, src, ui_key) - } - if (!ui) + } + if (!ui) // the ui does not exist, so we'll create a new one ui = new(user, src, ui_key, "cryo.tmpl", "Cryo Cell Control System", 520, 410) // When the UI is first opened this is the data it will use @@ -159,7 +159,7 @@ if(href_list["switchOn"]) on = 1 update_icon() - + if(href_list["switchOff"]) on = 0 update_icon() @@ -168,12 +168,12 @@ if(beaker) beaker.loc = get_step(loc, SOUTH) beaker = null - + if(href_list["ejectOccupant"]) if(!occupant || isslime(usr) || ispAI(usr)) return 0 // don't update UIs attached to this object go_out() - + add_fingerprint(usr) return 1 // update UIs attached to this object @@ -268,15 +268,15 @@ occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE occupant.loc = get_step(loc, SOUTH) //this doesn't account for walls or anything, but i don't forsee that being a problem. - if (occupant.bodytemperature < 261 && occupant.bodytemperature > 140) //Patch by Aranclanos to stop people from taking burn damage after being ejected - occupant.bodytemperature = 261 + if (occupant.bodytemperature < 261 && occupant.bodytemperature >= 70) //Patch by Aranclanos to stop people from taking burn damage after being ejected + occupant.bodytemperature = 261 // Changed to 70 from 140 by Zuhayr due to reoccurance of bug. // occupant.metabslow = 0 occupant = null update_icon() return /obj/machinery/atmospherics/unary/cryo_cell/proc/put_mob(mob/living/carbon/M as mob) if (!istype(M)) - usr << "\red The cryo cell cannot handle such liveform!" + usr << "\red The cryo cell cannot handle such a lifeform!" return if (occupant) usr << "\red The cryo cell is already occupied!" From e92bb6a02bf934761ef18a1953e99a45f1793c7b Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Wed, 18 Dec 2013 16:56:49 +0800 Subject: [PATCH 09/16] Two config variables added - disable_player_mice and uneducated_mice. The first, if enabled, prevents players from spawning as mice, and the second, if enabled, prevents mice from understanding human speech (which they now do my default) universal_understand = 1 now allows player-controlled mobs to understand what everybody is saying without necessarily allowing them to talk back intelligibly. Mice have universal_understand = 1 by default. --- code/controllers/configuration.dm | 17 ++++++++++++++++- code/modules/mob/dead/observer/observer.dm | 8 +++++++- .../mob/living/simple_animal/friendly/mouse.dm | 2 ++ code/modules/mob/mob_defines.dm | 1 + code/modules/mob/say.dm | 6 +++--- 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 42ac1cdc97f..b5b6cf74233 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -43,7 +43,8 @@ var/Tickcomp = 0 var/socket_talk = 0 // use socket_talk to communicate with other processes var/list/resource_urls = null - + var/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round. + var/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round. var/list/mode_names = list() var/list/modes = list() // allowed modes var/list/votable_modes = list() // votable modes @@ -61,6 +62,9 @@ var/automute_on = 0 //enables automuting/spam prevention var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. + var/disable_player_mice = 0 + var/uneducated_mice = 0 //Set to 1 to prevent newly-spawned mice from understanding human speech + var/usealienwhitelist = 0 var/limitalienplayers = 0 var/alien_to_human_ratio = 0.5 @@ -385,6 +389,11 @@ if("ticklag") Ticklag = text2num(value) + if("allow_antag_hud") + config.antag_hud_allowed = 1 + if("antag_hud_restricted") + config.antag_hud_restricted = 1 + if("socket_talk") socket_talk = text2num(value) @@ -419,6 +428,12 @@ if("ghost_interaction") config.ghost_interaction = 1 + if("disable_player_mice") + config.disable_player_mice = 1 + + if("uneducated_mice") + config.uneducated_mice = 1 + if("comms_password") config.comms_password = value diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index fb7262a5f9c..efc910b8649 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -293,6 +293,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Become mouse" set category = "Ghost" + if(config.disable_player_mice) + src << "Spawning as a mouse is currently disabled." + return + var/timedifference = world.time - client.time_died_as_mouse if(client.time_died_as_mouse && timedifference <= mouse_respawn_time * 600) var/timedifference_text @@ -302,7 +306,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/response = alert(src, "Are you -sure- you want to become a mouse?","Are you sure you want to squeek?","Squeek!","Nope!") if(response != "Squeek!") return //Hit the wrong key...again. - + //find a viable mouse candidate var/mob/living/simple_animal/mouse/host @@ -318,6 +322,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp src << "Unable to find any unwelded vents to spawn mice at." if(host) + if(config.uneducated_mice) + host.universal_understand = 0 host.ckey = src.ckey host << "You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent." diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 503b8536054..491841ebada 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -27,6 +27,7 @@ minbodytemp = 223 //Below -50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius universal_speak = 0 + universal_understand = 1 /mob/living/simple_animal/mouse/Life() ..() @@ -50,6 +51,7 @@ /mob/living/simple_animal/mouse/New() ..() + name = "[name] ([rand(1, 1000)])" if(!body_color) body_color = pick( list("brown","gray","white") ) icon_state = "mouse_[body_color]" diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 5f7c707635f..00c3b448ce2 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -207,6 +207,7 @@ //Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything. var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE + var/universal_understand = 0 // Set to 1 to enable the mob to understand everyone, not necessarily speak var/robot_talk_understand = 0 var/alien_talk_understand = 0 diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index f4a99e097fd..040c1615c50 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -66,7 +66,7 @@ if(!other) return 1 //Universal speak makes everything understandable, for obvious reasons. - else if(other.universal_speak || src.universal_speak) + else if(other.universal_speak || src.universal_speak || src.universal_understand) return 1 else if (src.stat == 2) return 1 @@ -83,11 +83,11 @@ else return 0 - else if(other.universal_speak || src.universal_speak) + else if(other.universal_speak || src.universal_speak || src.universal_understand) return 1 else if(isAI(src) && ispAI(other)) return 1 - else if (istype(other, src.type) || istype(src, other.type)) + else if (istype(other, src.type) || istype(src, other.type)) return 1 return 0 From c4b847e9c6ea2bdb563360a69fe7adcbcb50c45e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 18 Dec 2013 23:54:11 +1030 Subject: [PATCH 10/16] Amendment to chemistry beaker range fix. --- code/modules/reagents/reagent_containers/glass.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 382eacbf02d..21384ffd59d 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -67,7 +67,7 @@ afterattack(obj/target, mob/user , flag) - if (!is_open_container() || get_dist(get_turf(src),get_turf(target))>1) + if (!is_open_container() || !flag) return for(var/type in src.can_be_placed_into) From 6f067f4b4f37d0ffb0e45541868279c83e6d5347 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Thu, 19 Dec 2013 20:39:10 +0800 Subject: [PATCH 11/16] Removed two variables accidentally copied over from dev --- code/controllers/configuration.dm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index b5b6cf74233..21ea21b2013 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -43,8 +43,6 @@ var/Tickcomp = 0 var/socket_talk = 0 // use socket_talk to communicate with other processes var/list/resource_urls = null - var/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round. - var/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round. var/list/mode_names = list() var/list/modes = list() // allowed modes var/list/votable_modes = list() // votable modes @@ -389,11 +387,6 @@ if("ticklag") Ticklag = text2num(value) - if("allow_antag_hud") - config.antag_hud_allowed = 1 - if("antag_hud_restricted") - config.antag_hud_restricted = 1 - if("socket_talk") socket_talk = text2num(value) From b26492e66d56fca7fddbd92a19e8a0290f8583f6 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Sat, 21 Dec 2013 13:51:06 +0800 Subject: [PATCH 12/16] Simplified the monkey pulling check as per Giacom's suggestion. --- code/modules/mob/living/carbon/monkey/life.dm | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index b2dcfb5d2ca..04c36b230ac 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -68,16 +68,9 @@ if(!client && stat == CONSCIOUS) - if(prob(33) && canmove && isturf(loc)) + if(prob(33) && canmove && isturf(loc) && !pulledby) //won't move if being pulled - var/isBeingPulled = 0 - - for(var/mob/M in range(src, 1)) //won't move if being pulled - if(M.pulling == src) - isBeingPulled = 1 - - if(isBeingPulled == 0) - step(src, pick(cardinal)) + step(src, pick(cardinal)) if(prob(1)) emote(pick("scratch","jump","roll","tail")) From 9d9c7971352fd50772f45e0269c5efc5ff5ab73e Mon Sep 17 00:00:00 2001 From: Ravensdale Date: Sat, 21 Dec 2013 07:31:43 -0800 Subject: [PATCH 13/16] changes pushed to master branch instead of dev --- code/game/jobs/job/medical.dm | 2 +- code/game/jobs/job/security.dm | 6 +++--- code/game/jobs/job/silicon.dm | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 1303976b131..4f2f6596633 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -15,7 +15,7 @@ minimal_access = list(access_medical, access_morgue, access_genetics, access_heads, access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, access_keycard_auth, access_sec_doors, access_psychiatrist) - minimal_player_age = 7 + minimal_player_age = 10 equip(var/mob/living/carbon/human/H) if(!H) return 0 diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 4d0488f1229..69e9babb0ac 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -60,7 +60,7 @@ selection_color = "#ffeeee" access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue) minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels) - minimal_player_age = 7 + minimal_player_age = 5 equip(var/mob/living/carbon/human/H) if(!H) return 0 @@ -100,7 +100,7 @@ access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) alt_titles = list("Forensic Technician") - minimal_player_age = 7 + minimal_player_age = 3 equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) @@ -146,7 +146,7 @@ selection_color = "#ffeeee" access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_morgue) minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels) - minimal_player_age = 7 + minimal_player_age = 3 equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm index f1a0fd2e260..5e067d85560 100644 --- a/code/game/jobs/job/silicon.dm +++ b/code/game/jobs/job/silicon.dm @@ -8,7 +8,7 @@ selection_color = "#ccffcc" supervisors = "your laws" req_admin_notify = 1 - minimal_player_age = 30 + minimal_player_age = 7 equip(var/mob/living/carbon/human/H) if(!H) return 0 @@ -25,7 +25,7 @@ spawn_positions = 2 supervisors = "your laws and the AI" //Nodrak selection_color = "#ddffdd" - minimal_player_age = 21 + minimal_player_age = 1 alt_titles = list("Android", "Robot") equip(var/mob/living/carbon/human/H) From 77f1e9c784e364e326457382897be13857900a37 Mon Sep 17 00:00:00 2001 From: Miniature Date: Sun, 22 Dec 2013 07:50:57 +1030 Subject: [PATCH 14/16] Fixes issue #4062 (Chaplains door to coffins improperly layered) --- maps/tgstation2.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 89d7d9c0820..b97ace78a18 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -1846,7 +1846,7 @@ "aJz" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp{pixel_y = 10},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{pipe_color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aJA" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aJB" = (/obj/structure/table/woodentable,/obj/item/weapon/nullrod,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/item/device/eftpos{eftpos_name = "Chapel EFTPOS scanner"},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) -"aJC" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{dir = 8; name = "Coffin Storage"; req_access_txt = "22"},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "chapel"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) +"aJC" = (/obj/structure/closet/coffin,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "chapel"; name = "Privacy Shutters"; opacity = 0},/obj/machinery/door/window/eastleft{dir = 8; name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aJD" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main) "aJE" = (/obj/structure/table,/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main) "aJF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/chapel/main) From a48100da7496cf2ebc9e7fc74db3652ea76431a0 Mon Sep 17 00:00:00 2001 From: alex-gh Date: Sat, 21 Dec 2013 22:50:13 +0100 Subject: [PATCH 15/16] Reattaching a mindless head no longer results in a runtime error --- code/modules/surgery/headreattach.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/surgery/headreattach.dm b/code/modules/surgery/headreattach.dm index a3031e5d0d3..617351178e7 100644 --- a/code/modules/surgery/headreattach.dm +++ b/code/modules/surgery/headreattach.dm @@ -177,7 +177,8 @@ target.updatehealth() target.UpdateDamageIcon() var/obj/item/weapon/organ/head/B = tool - B.brainmob.mind.transfer_to(target) + if (B.brainmob.mind) + B.brainmob.mind.transfer_to(target) del(B) From a498de8356db88e2d85b57226498b41ab7f090db Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sun, 22 Dec 2013 08:49:42 +0400 Subject: [PATCH 16/16] Fixes #4075 Cannot turn around while unconscious or dead now. --- code/_onclick/click.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 5ce15be96e7..fd0b658aa0b 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -291,7 +291,7 @@ // Simple helper to face what you clicked on, in case it should be needed in more than one place /mob/proc/face_atom(var/atom/A) - if( buckled || !A || !x || !y || !A.x || !A.y ) return + if( stat || buckled || !A || !x || !y || !A.x || !A.y ) return var/dx = A.x - x var/dy = A.y - y if(!dx && !dy) return