From 751219dbfd5f4e6f9fa15c298331b9cb776fd964 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Wed, 18 Dec 2013 02:08:38 +0800 Subject: [PATCH 01/20] 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 4d2c8fa53b..5cea63edae 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 6c28acc72b..b2dcfb5d2c 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 af36a59162..503b853605 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 0b546f4072..f21c83487c 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:

+ +
+

24 November 2013

Yinadele updated:

From e92bb6a02bf934761ef18a1953e99a45f1793c7b Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Wed, 18 Dec 2013 16:56:49 +0800 Subject: [PATCH 02/20] 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 42ac1cdc97..b5b6cf7423 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 fb7262a5f9..efc910b864 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 503b853605..491841ebad 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 5f7c707635..00c3b448ce 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 f4a99e097f..040c1615c5 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 6f067f4b4f37d0ffb0e45541868279c83e6d5347 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Thu, 19 Dec 2013 20:39:10 +0800 Subject: [PATCH 03/20] 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 b5b6cf7423..21ea21b201 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 04/20] 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 b2dcfb5d2c..04c36b230a 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 05/20] 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 1303976b13..4f2f659663 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 4d0488f122..69e9babb0a 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 f1a0fd2e26..5e067d8556 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 06/20] 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 89d7d9c082..b97ace78a1 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 07/20] 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 a3031e5d0d..617351178e 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 08/20] 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 5ce15be96e..fd0b658aa0 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 From e7b797a5ed06fc23f4242457c92e121f9bc59542 Mon Sep 17 00:00:00 2001 From: Miniature Date: Mon, 23 Dec 2013 00:15:59 +1030 Subject: [PATCH 09/20] Fixed tile in sec dormitories being in wrong area might have been related to issue #4043 --- maps/tgstation2.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index b97ace78a1..cc11306650 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -907,7 +907,7 @@ "arw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "arx" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "arrivals_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "ary" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"arz" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/wood,/area/crew_quarters/sleep{name = "Security Wing Dormitories"}) +"arz" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec) "arA" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec) "arB" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec) "arC" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/sec) From fb78caf9a5e5d9cdfa8368807b85bb60c82c33a6 Mon Sep 17 00:00:00 2001 From: Ccomp5950 Date: Sun, 22 Dec 2013 08:38:26 -0600 Subject: [PATCH 10/20] Fixes Power Grid checks killing the AI's SMES. Added the turrent protected check to restore_power() that is already in power_failure() --- code/game/gamemodes/events/power_failure.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm index c8848cd3ee..dbebc649f5 100644 --- a/code/game/gamemodes/events/power_failure.dm +++ b/code/game/gamemodes/events/power_failure.dm @@ -61,7 +61,7 @@ if(C.cell && C.z == 1) C.cell.charge = C.cell.maxcharge for(var/obj/machinery/power/smes/S in world) - if(S.z != 1) + if(istype(get_area(S), /area/turret_protected) || S.z != 1) continue S.charge = S.last_charge S.output = S.last_output From 8e518cb4a9fe29fc23811d91bbf9be3e5c920a2f Mon Sep 17 00:00:00 2001 From: Ccomp5950 Date: Sun, 22 Dec 2013 16:40:11 -0600 Subject: [PATCH 11/20] Vending Machine PIN fix. Removed requirement for PIN on vending machines with an easy way of adding it back in the future or setting machines to not use it or use it depending on what we decide later on. Someone attempted to make it where it would accept any PIN and this is just as annoying as typing in a PIN. So...space communism, swipe your card and it spits out an item. No PIN prompt at all. --- code/game/machinery/vending.dm | 77 ++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 20415b6721..09a4ca8d35 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -52,6 +52,8 @@ var/const/WIRE_SHOCK = 3 var/const/WIRE_SHOOTINV = 4 + var/check_accounts = 0 // 1 = requires PIN and checks accounts. 0 = You slide an ID, it vends, SPACE COMMUNISM! + /obj/machinery/vending/New() ..() spawn(4) @@ -164,46 +166,51 @@ if (istype(I, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/C = I visible_message("[usr] swipes a card through [src].") - if(vendor_account) - var/attempt_pin = input("Enter pin code", "Vendor transaction") as num - var/datum/money_account/D = attempt_account_access(C.associated_account_number, attempt_pin, 2) - if(D) - var/transaction_amount = currently_vending.price - if(transaction_amount <= D.money) + if(check_accounts) + if(vendor_account) + var/attempt_pin = input("Enter pin code", "Vendor transaction") as num + var/datum/money_account/D = attempt_account_access(C.associated_account_number, attempt_pin, 2) + if(D) + var/transaction_amount = currently_vending.price + if(transaction_amount <= D.money) + + //transfer the money + D.money -= transaction_amount + vendor_account.money += transaction_amount - //transfer the money - D.money -= transaction_amount - vendor_account.money += transaction_amount - - //create entries in the two account transaction logs - var/datum/transaction/T = new() - T.target_name = "[vendor_account.owner_name] (via [src.name])" - T.purpose = "Purchase of [currently_vending.product_name]" - if(transaction_amount > 0) - T.amount = "([transaction_amount])" - else + //create entries in the two account transaction logs + var/datum/transaction/T = new() + T.target_name = "[vendor_account.owner_name] (via [src.name])" + T.purpose = "Purchase of [currently_vending.product_name]" + if(transaction_amount > 0) + T.amount = "([transaction_amount])" + else + T.amount = "[transaction_amount]" + T.source_terminal = src.name + T.date = current_date_string + T.time = worldtime2text() + D.transaction_log.Add(T) + // + T = new() + T.target_name = D.owner_name + T.purpose = "Purchase of [currently_vending.product_name]" T.amount = "[transaction_amount]" - T.source_terminal = src.name - T.date = current_date_string - T.time = worldtime2text() - D.transaction_log.Add(T) - // - T = new() - T.target_name = D.owner_name - T.purpose = "Purchase of [currently_vending.product_name]" - T.amount = "[transaction_amount]" - T.source_terminal = src.name - T.date = current_date_string - T.time = worldtime2text() - vendor_account.transaction_log.Add(T) + T.source_terminal = src.name + T.date = current_date_string + T.time = worldtime2text() + vendor_account.transaction_log.Add(T) - // Vend the item - src.vend(src.currently_vending, usr) - currently_vending = null + // Vend the item + src.vend(src.currently_vending, usr) + currently_vending = null + else + usr << "\icon[src]You don't have that much money!" else - usr << "\icon[src]You don't have that much money!" + usr << "\icon[src]Unable to access account. Check security settings and try again." else - usr << "\icon[src]Unable to access account. Check security settings and try again." + //Just Vend it. + src.vend(src.currently_vending, usr) + currently_vending = null else usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call CentComm Support." From 0e6a0b927ec85072ce388e4a283fae9b14edca7a Mon Sep 17 00:00:00 2001 From: Ccomp5950 Date: Sun, 22 Dec 2013 17:58:41 -0600 Subject: [PATCH 12/20] Derp fix. Checked the reattach head surgery dm. --- baystation12.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/baystation12.dme b/baystation12.dme index c20a1002eb..b50088fab1 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1242,6 +1242,7 @@ #include "code\modules\surgery\ribcage.dm" #include "code\modules\surgery\robolimbs.dm" #include "code\modules\surgery\surgery.dm" +#include "code\modules\surgery\headreattach.dm" #include "code\modules\telesci\bscrystal.dm" #include "code\modules\telesci\gps.dm" #include "code\modules\telesci\telepad.dm" From 797e2e011c895708dff19535b3fe6c0769e95975 Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Mon, 23 Dec 2013 15:41:15 -0800 Subject: [PATCH 13/20] Hotfix for accidental placement of a 5000 sheet stack of metal in misc research. (Why aren't these things labeled >_> ) --- maps/tgstation2.dmm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index cc11306650..2a7c1b302b 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -907,7 +907,7 @@ "arw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "arx" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "arrivals_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "ary" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"arz" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec) +"arz" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor/engine,/area/toxins/misc_lab) "arA" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec) "arB" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec) "arC" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/sec) @@ -10342,7 +10342,6 @@ "dQU" = (/obj/machinery/portable_atmospherics/pump,/obj/machinery/camera{c_tag = "Misc Research"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "dQV" = (/obj/structure/table,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/turf/simulated/floor/engine,/area/toxins/misc_lab) "dQW" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/device/multitool,/turf/simulated/floor/engine,/area/toxins/misc_lab) -"dQX" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/stack/sheet/metal{amount = 5000},/turf/simulated/floor/engine,/area/toxins/misc_lab) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10443,7 +10442,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafarwarxarwaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxaryapbapxarEatVatXatWatZatYarbarFarGarHarIarJarKarLarMapEarNarOarParQarRarRarRarRarRarSarRarRarRarTarUarVarWarXarYarZasaasbascasdasealNaafasfasgasgashasgasgasiaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjaskaslaaaasmasnasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapbapxarEarAatXatWassasrarbastarIarIarIarJasuasvaswasxasyalNaszasAasBasBasBasBasCasDasEasFasEasGasHasHasIasHasJasKasLasMasNasOasPasPasPasQasRasRasRasRasRasQasPaaaaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasTasUasTasSasVasWasVasSaafaspasXasYaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxasZataapxapbapxauParAatXatWauOauNarbatearIatfatfarJatgasvapAapEathalNatiatjatkatlatmatnatoatpatqatratsattatuatvatwatxatyatzatAatBatCatDatEatFasPatGasRasRasRasRasRasQasPaafaaaaaaaaaalQaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHasTatIasTatHasVatJasVatHatKatLatMatNatOatOatPatKatKaafaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatQatRatSatTatUbBqavDavCavBauQarzarbauaaubaucaucaudaueasvapAapEarNalNatiatjaufaugatmatnauhauiatqaujaukaulatuaumaunauoasPaupauqaurausautauuauvauwauxasRasRasRasRasRauyasPasPasPaaaaaaalQaaaapvapvapvapvapvaafaoPaafapvapvapvapvapvaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHasTatIasTatHasVatJasVatHatKatLatMatNatOatOatPatKatKaafaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatQatRatSatTatUbBqavDavCavBauQarEarbauaaubaucaucaudaueasvapAapEarNalNatiatjaufaugatmatnauhauiatqaujaukaulatuaumaunauoasPaupauqaurausautauuauvauwauxasRasRasRasRasRauyasPasPasPaaaaaaalQaaaapvapvapvapvapvaafaoPaafapvapvapvapvapvaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHauzauAauBatHauCauDauEatHaqYaqYauFauGauHauIauJauKatKaaaaaaampaaaapwapwapwapwapwaafaoWaafapwapwapwapwapwaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapxauLapaapxauMapxarBarAarDarCasqarEarbauRauSauTauTauUauVauWauXauYauZavaavbavcaufatlatmatnavdauiatqatqaveatqatuatuavfatuasPavgavhaviaviavjavkavlavmavnasRasRasRasRasRavoavpavqavraaaaaaalQaaaaafaaaaafaafaaaaaaaoPaaaaaaaafaaaaaaaafaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHavsavtavuatHavsavtavuatHavvavwavxavxavxavxavyavzarwaaaaaaalPaaaaafaaaaafaafaaaaaaavAaaaaaaaafaaaaaaaafaaaalPaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapxapxapxapxauMapxatcatbatbatbatbatdatbavEavFavFavFavFavGavHavIapEavJalNavKasAavLatlavMavNavdavOavPavQavRavRavSavTavRavUavVavWavXavYavYavYavYavZawaawbasRasRasRasRasRawbawcawdaweaaaaaaalQalQalPaaaaaaaafaaaaaaaoPaaaaafaafaafaafalPalPalPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasSatHawfawgasSatHawfawgasSatKawhatKatKatKatKatKawiaspaaaaaaalPalPalPaaaaaaaafaaaawjawkawjaafaafaafaafalPalPalPaafapxapxapxapxawlawmawmawmawmawmawmawmawnapxapxawoawpawqapxawrawsawtawuawvawwawwawwawwawwawxawwawyawzawAawAawBawBawCawDawEawFaqvawGawHawIawJawKatnavdawLawLawLawMawMawNawOawLawLawPawQawRavYavYavYavYawSawTawUasRasRasRasRasRawUawVawdaweaaaaaaaaaaaaaafaafaaaaafaaaaaaawWaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10508,7 +10507,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbXfbYYbYZbZabYZbZbbZcbZdbZebZfbZgbTBbMCbZhbSFbZibSGbZjbZkbZlbZmbSFbZnbXsbSNbZobZpbTcbZqbTcbZrbZsbZtbTcbZubZvbZwbZxbZybZzbZAbZBbZCbSZbZDbZEbZFbVoaafbVpbZGbZHbZIbTeaafaaaaaaaaaaaaaaaaaaaaabZJbVubZKbZLbZJaafaafaafaafaafaafaaabGKbZMbZNbZObGKaaaaafaaaaaaaafaaaaaaaaaaaabZPbZQcjWcjVcjBcjecmrcjZcjYcjYcpTcnFcnqdPHbIEdQQbHkbYUbZTbZUbZVbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanmanmanmacTbVPbVPbVPbVPbVPbTBbTBbTBbTBbTBbTBbTBbMCbJkbSFbSFbSFbSFbSFbSFbSFbSFbZWbXsbSNbZXbZYbZZcaacabcaccadcaecafcagcahbWkbWlcaicajcakcalcambSZbZDcancaocapbWwbUecaqbYIbYIbTeaafaaaaaaaaaaafaafaafaaabVucarcascatbVubVubVubVubVubVubVuaafbGKbGKbGKbGKbGKaaaaafaaaaaaaafaaaaaaaaaaaacaucavdPIcaxdPYdPXdPJdPWbTqbTqdQadPZbIEbIEbIEdQTbHkbYUcaycazcaAbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDbJkcaFbKTbKTbKTcaGcpUcaGcaGbKTcaHbKTdPFcaJdPEcaJcaJcaKcaJcaJcaLbGDcaMbXsbSNcaNcaOcaPbQGbQGbQGbQGbQGbQGbQGcaQbWkbWlbTVcaRcaScaTcaUbSZbZDbZEcaVbVoaafbTebTebTebTebTeaafaaabVubVubVubVubVubVubVucaWcaXcaYcaZcbacbbcbccbdcbebVuaafaafaafaafaafaafaafcbfaafaafaafaafaafaafaafcbgbXRdPGcbidPTdPSdPSdPWbTqdPPdPVdPUbIEbIEbIEdQSbHkbYUcbjcbkcblbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbmcbncbocbpbJkcbqbJkcbrbJkcbtbJkcbscbxbGDbGDcbucbvcbvcbwbGDdPNcbwcbxcbxcbybJkcbzbGDbZWbXsbSNcbAcbBbSZcbCbQGaaaaaaaaaaaabQNcbDbWkbWlbXAcbEcakbXzcbFcbGcbHcbIcbJbYGbUdbUecbKcbLcbMbTeaafaaabVucbNcbOcbPcbQbVucbRcbScaXcbTcaZbXKcbUbXKcbVbXKbVuaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabXRcbWdPOcbYbHkdQidQdcrCdQUdQedQhdQgbIEdQVdQWdQXbHkcbZccaccbcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbmcbncbocbpbJkcbqbJkcbrbJkcbtbJkcbscbxbGDbGDcbucbvcbvcbwbGDdPNcbwcbxcbxcbybJkcbzbGDbZWbXsbSNcbAcbBbSZcbCbQGaaaaaaaaaaaabQNcbDbWkbWlbXAcbEcakbXzcbFcbGcbHcbIcbJbYGbUdbUecbKcbLcbMbTeaafaaabVucbNcbOcbPcbQbVucbRcbScaXcbTcaZbXKcbUbXKcbVbXKbVuaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabXRcbWdPOcbYbHkdQidQdcrCdQUdQedQhdQgbIEdQVdQWarzbHkcbZccaccbcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbGDccfcbrcbxcbxcbxcbxccgcbxccgcqzckcdQxcqwcrycsmcrkcricbxccpbJkcbzbGDdPLbXsbSNcitcitcrucitcitclbcitclbcitbQGccwccxbWlbXAcbEccybXzcbFcczbZDbZEccAbVoaafbVpccBccCccDbTeaafaaabVuccEccFccGcaZbVuccHcaZccIccJcaZccKccLccMccNccObVuaaaaaaaaaaafaaaaaaaaabXRbXRbXRbXRbXRbXRbXRbXRbXRccPdPMccRbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkaafccSccTccSaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanmanmanmacTcbxccUccgccgccgccgccVccgccgcyVccXdQCcyWdQAcgqcdccyXcdecdecdecdfbGDcwIdQOcwJcitcwKcyfcygcyhcyucygcyvcywbQGcdqcdrbWlbXAcbEcakbXzcdscdtcducdvcdwcapbWwbUecdxcbLcbLbTeaafcdycdzcdAcdBcdBcdCcdDcdEcdFcdGcdHcdIcdJcdKcdLcdMcdNbVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQcdRcdScdTcdUcdVcdWdQPcdYcdZceaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcebceccebaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalQalPalPalQalPalPalPampalPalPalPalQalQaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafcedceecefcegcehceicejcekcelcrDcdbcdbcvudQAcgqcdbcvFcvEcvGcdeceqdQbcesbXsbSNcitcjccjccjccjccjQcjccjccjcbQGcodcmQbWlbXAceycezbSZceAceBbZDceCceDbVoaafbTebTebTebTebTeaafaaabVuceEceFceGceHceGceIceJceKceLceGceMceNceGceIceObVuaafaafaafaafaafaafaafbXRcePceQcePceRceSbZQceTcdVceUdQNceUbXRbXRaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaaceWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 4cb94fbf5007ce15c751fc872ed12a91e63752bf Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 24 Dec 2013 09:33:00 +0300 Subject: [PATCH 14/20] Small pefomance boost for drying blood. Now using colors instead of icon procs. --- code/game/objects/effects/decals/Cleanable/humans.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 4f472f864f..63b6385fef 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -59,9 +59,7 @@ /obj/effect/decal/cleanable/blood/proc/dry() name = "dried [src]" desc = "It's dark red and crusty. Someone is not doing their job." - var/icon/I = icon(icon,icon_state) - I.SetIntensity(0.7) - icon = I + color = "#999999" amount = 0 /obj/effect/decal/cleanable/blood/splatter From e3e569593dc3231940c0287b94e50566cbb6268d Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 24 Dec 2013 18:47:06 +0300 Subject: [PATCH 15/20] Fixed dried blood showin up as 'dried the blood' --- code/game/objects/effects/decals/Cleanable/humans.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 63b6385fef..0187d0a9af 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -57,7 +57,7 @@ amount-- /obj/effect/decal/cleanable/blood/proc/dry() - name = "dried [src]" + name = "dried [src.name]" desc = "It's dark red and crusty. Someone is not doing their job." color = "#999999" amount = 0 From 5071ea57ad684ce31d1dc62eb37d19bc2e44353e Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 25 Dec 2013 14:20:56 +0400 Subject: [PATCH 16/20] Fix for #3583 Hostile mobs now check adjacency before applying damage. --- code/modules/mob/living/simple_animal/hostile/bear.dm | 2 ++ code/modules/mob/living/simple_animal/hostile/hostile.dm | 2 ++ 2 files changed, 4 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 6fd7db5d10..f82ae07c57 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -125,6 +125,8 @@ ..(5) /mob/living/simple_animal/hostile/bear/AttackingTarget() + if(!Adjacent(target_mob)) + return emote( pick( list("slashes at [target_mob]", "bites [target_mob]") ) ) var/damage = rand(20,30) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 403c31b17f..2dcbe0d949 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -87,6 +87,8 @@ return 1 /mob/living/simple_animal/hostile/proc/AttackingTarget() + if(!Adjacent(target_mob)) + return if(isliving(target_mob)) var/mob/living/L = target_mob L.attack_animal(src) From 0c94d2892d65178b46ec855437cdc254efa46798 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 25 Dec 2013 14:44:50 +0400 Subject: [PATCH 17/20] Fixes #4071 Emote needed "me" action first, using custom_emote instead. --- code/modules/mob/living/simple_animal/hostile/bear.dm | 8 ++++---- code/modules/mob/living/simple_animal/hostile/carp.dm | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index f82ae07c57..b375755f54 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -79,7 +79,7 @@ if(stance_step in list(1,4,7)) //every 3 ticks var/action = pick( list( "growls at [target_mob]", "stares angrily at [target_mob]", "prepares to attack [target_mob]", "closely watches [target_mob]" ) ) if(action) - emote(action) + custom_emote(1,action) if(!found_mob) stance_step-- @@ -90,7 +90,7 @@ if(HOSTILE_STANCE_ATTACKING) if(stance_step >= 20) //attacks for 20 ticks, then it gets tired and needs to rest - emote( "is worn out and needs to rest" ) + custom_emote(1, "is worn out and needs to rest" ) stance = HOSTILE_STANCE_TIRED stance_step = 0 walk(src, 0) //This stops the bear's walking @@ -118,7 +118,7 @@ /mob/living/simple_animal/hostile/bear/FindTarget() . = ..() if(.) - emote("stares alertly at [.]") + custom_emote(1,"stares alertly at [.]") stance = HOSTILE_STANCE_ALERT /mob/living/simple_animal/hostile/bear/LoseTarget() @@ -127,7 +127,7 @@ /mob/living/simple_animal/hostile/bear/AttackingTarget() if(!Adjacent(target_mob)) return - emote( pick( list("slashes at [target_mob]", "bites [target_mob]") ) ) + custom_emote(1, pick( list("slashes at [target_mob]", "bites [target_mob]") ) ) var/damage = rand(20,30) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 353ca6156f..f1a5c15c4b 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -44,7 +44,7 @@ /mob/living/simple_animal/hostile/carp/FindTarget() . = ..() if(.) - emote("nashes at [.]") + custom_emote(1,"nashes at [.]") /mob/living/simple_animal/hostile/carp/AttackingTarget() . =..() From 3d6f8ee4b2396778dcf45f3eae0ceb573bd1236e Mon Sep 17 00:00:00 2001 From: Miniature Date: Wed, 25 Dec 2013 22:11:13 +1030 Subject: [PATCH 18/20] Added leaving prints on APCs when using item on them (fix issue #4109) --- code/modules/power/apc.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index bb3bbcdb3d..560590cbad 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -218,6 +218,7 @@ if (istype(user, /mob/living/silicon) && get_dist(src,user)>1) return src.attack_hand(user) + src.add_fingerprint(user) if (istype(W, /obj/item/weapon/crowbar) && opened) if (has_electronics==1) if (terminal) From efdeea5bab7aded824afb60fc631c1e99631186c Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Thu, 26 Dec 2013 13:20:38 -0800 Subject: [PATCH 19/20] Nerf to shield blobs. Now they take 2 hits instead of 3, that way they are a little easier to deal with and hopefully not as much meta will have to occur. --- code/game/gamemodes/blob/blobs/shield.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/blob/blobs/shield.dm b/code/game/gamemodes/blob/blobs/shield.dm index 4c77520846..0e1b6c07eb 100644 --- a/code/game/gamemodes/blob/blobs/shield.dm +++ b/code/game/gamemodes/blob/blobs/shield.dm @@ -6,7 +6,7 @@ density = 1 opacity = 0 anchored = 1 - health = 100 + health = 60 brute_resist = 1 fire_resist = 2 From 30970b7b56884f5f9ad11135954249261b65c89c Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Thu, 26 Dec 2013 21:22:00 -0700 Subject: [PATCH 20/20] Hypothetically adds proximity check to droppers. This code is awful, but it appears "flag" (who names this shit?) acts as a proximity check. --- code/modules/reagents/reagent_containers/dropper.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 96e037a23a..17f8d1ce11 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -12,7 +12,7 @@ var/filled = 0 afterattack(obj/target, mob/user , flag) - if(!target.reagents) return + if(!target.reagents || !flag) return if(filled) @@ -105,4 +105,4 @@ //////////////////////////////////////////////////////////////////////////////// /// Droppers. END -//////////////////////////////////////////////////////////////////////////////// \ No newline at end of file +////////////////////////////////////////////////////////////////////////////////