From 05f9411910902c34aeedab35ce1fc7d7a6335fc7 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 27 Mar 2015 03:06:29 +0000 Subject: [PATCH 1/7] Fixes webbings utilising bluespace storage for infinite storage (again) --- code/modules/clothing/under/accessories/storage.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/under/accessories/storage.dm index 7bc9f88af36..a542b54fb6e 100644 --- a/code/modules/clothing/under/accessories/storage.dm +++ b/code/modules/clothing/under/accessories/storage.dm @@ -6,6 +6,7 @@ slot = "utility" var/slots = 3 var/obj/item/weapon/storage/internal/hold + w_class = 3.0 /obj/item/clothing/accessory/storage/New() ..() @@ -48,7 +49,7 @@ /obj/item/clothing/accessory/storage/webbing name = "webbing" - desc = "Strudy mess of synthcotton belts and buckles, ready to share your burden." + desc = "Sturdy mess of synthcotton belts and buckles, ready to share your burden." icon_state = "webbing" item_color = "webbing" @@ -83,4 +84,4 @@ /obj/item/weapon/kitchenknife/ritual) new /obj/item/weapon/hatchet/unathiknife(hold) - new /obj/item/weapon/hatchet/unathiknife(hold) \ No newline at end of file + new /obj/item/weapon/hatchet/unathiknife(hold) From 872e0a0e848460fec594ccef15741abc0fe009ee Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 27 Mar 2015 01:36:36 -0400 Subject: [PATCH 2/7] Fixes holocarp not being transparent. --- code/modules/holodeck/HolodeckObjects.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index 460f4422fbe..7a7526b1507 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -392,10 +392,15 @@ icon_state = "holo4" icon_living = "holo4" icon_dead = "holo4" + alpha = 127 icon_gib = null meat_amount = 0 meat_type = null +/mob/living/simple_animal/hostile/carp/holodeck/New() + ..() + SetLuminosity(2) //hologram lighting + /mob/living/simple_animal/hostile/carp/holodeck/proc/set_safety(var/safe) if (safe) faction = "neutral" From 633db48082972fcd0b0d8b473ca07d545a7b45e6 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Fri, 27 Mar 2015 09:06:28 +0100 Subject: [PATCH 3/7] Wizard mind transfer attack log. Adds an attack log for the wizard mind transfer. --- code/datums/spells/mind_transfer.dm | 2 ++ code/defines/procs/admin.dm | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/code/datums/spells/mind_transfer.dm b/code/datums/spells/mind_transfer.dm index c8952cc8a91..61c6f980fdc 100644 --- a/code/datums/spells/mind_transfer.dm +++ b/code/datums/spells/mind_transfer.dm @@ -57,6 +57,8 @@ Also, you never added distance checking after target is selected. I've went ahea var/mob/caster = user//The wizard/whomever doing the body transferring. //SPELL LOSS BEGIN + admin_attack_log(caster, victim, "Used mind transfer on", "Had mind transfer used on him by", "used mind transfer on") + //NOTE: The caster must ALWAYS keep mind transfer, even when other spells are lost. var/obj/effect/proc_holder/spell/targeted/mind_transfer/m_transfer = locate() in user.spell_list//Find mind transfer directly. var/list/checked_spells = user.spell_list diff --git a/code/defines/procs/admin.dm b/code/defines/procs/admin.dm index abf4c97dd3b..2bfb8b94364 100644 --- a/code/defines/procs/admin.dm +++ b/code/defines/procs/admin.dm @@ -1,7 +1,13 @@ proc/log_and_message_admins(var/message as text) - log_admin(usr ? "[usr]([usr.ckey]) [message]" : "EVENT [message]") - message_admins(usr ? "[usr]([usr.ckey]) [message]" : "EVENT [message]") + log_admin(usr ? "[key_name(usr)] [message]" : "EVENT [message]") + message_admins(usr ? "[key_name(usr)] [message]" : "EVENT [message]") proc/admin_log_and_message_admins(var/message as text) - log_admin(usr ? "[key_name(usr)] [message]" : "EVENT [message]") - message_admins(usr ? "[key_name(usr)] [message]" : "EVENT [message]", 1) + log_admin(usr ? "[key_name_admin(usr)] [message]" : "EVENT [message]") + message_admins(usr ? "[key_name_admin(usr)] [message]" : "EVENT [message]", 1) + +proc/admin_attack_log(var/mob/attacker, var/mob/victim, var/attacker_message, var/victim_message, var/admin_message) + victim.attack_log += text("\[[time_stamp()]\] [victim_message] [key_name(attacker)]") + attacker.attack_log += text("\[[time_stamp()]\] [attacker_message] [key_name(victim)]") + + msg_admin_attack("[key_name(attacker)] [admin_message] [key_name(victim)] (INTENT: [uppertext(attacker.a_intent)]) (JMP)") From fb53dd7402612ef47381aa3c3fba47409c1a5f1a Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 27 Mar 2015 02:00:17 -0400 Subject: [PATCH 4/7] Fixes holopad not checking other holograms being projected from the same projector, if the first one was in range. Simplifies holopad power usage. --- code/game/machinery/hologram.dm | 37 +++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 71894c29834..a286b530ca1 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -37,6 +37,10 @@ var/const/HOLOPAD_MODE = RANGE_BASED icon_state = "holopad0" layer = TURF_LAYER+0.1 //Preventing mice and drones from sneaking under them. + + var/power_per_hologram = 500 //per usage per hologram + idle_power_usage = 5 + use_power = 1 var/list/mob/living/silicon/ai/masters = new() //List of AIs that use the holopad var/last_request = 0 //to prevent request spam. ~Carn @@ -122,7 +126,6 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ SetLuminosity(2) //pad lighting icon_state = "holopad1" A.holo = src - use_power += HOLOGRAM_POWER_USAGE return 1 /obj/machinery/hologram/holopad/proc/clear_holo(mob/living/silicon/ai/user) @@ -130,29 +133,31 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ user.holo = null del(masters[user])//Get rid of user's hologram //qdel masters -= user //Discard AI from the list of those who use holopad - use_power = max(HOLOPAD_PASSIVE_POWER_USAGE, use_power - HOLOGRAM_POWER_USAGE)//Reduce power usage if (!masters.len)//If no users left SetLuminosity(0) //pad lighting (hologram lighting will be handled automatically since its owner was deleted) icon_state = "holopad0" - use_power = HOLOPAD_PASSIVE_POWER_USAGE return 1 /obj/machinery/hologram/holopad/process() for (var/mob/living/silicon/ai/master in masters) - if(master && !master.stat && master.client && master.eyeobj)//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector. - if(!(stat & NOPOWER))//If the machine has power. - if((HOLOPAD_MODE == RANGE_BASED && (get_dist(master.eyeobj, src) <= holo_range))) - return 1 + var/active_ai = (master && !master.stat && master.client && master.eyeobj)//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector. + if((stat & NOPOWER) || !active_ai) + clear_holo(master) + continue + + if((HOLOPAD_MODE == RANGE_BASED && (get_dist(master.eyeobj, src) > holo_range))) + clear_holo(master) + continue + + if(HOLOPAD_MODE == AREA_BASED) + var/area/holo_area = get_area(src) + var/area/eye_area = get_area(master.eyeobj) + + if(!(eye_area in holo_area.master.related)) + clear_holo(master) + continue - else if (HOLOPAD_MODE == AREA_BASED) - - var/area/holo_area = get_area(src) - var/area/eye_area = get_area(master.eyeobj) - - if(eye_area in holo_area.master.related) - return 1 - - clear_holo(master)//If not, we want to get rid of the hologram. + use_power(power_per_hologram) return 1 /obj/machinery/hologram/holopad/proc/move_hologram(mob/living/silicon/ai/user) From 486940c9e0508f5b51ea5b4bb9d3e2b5ab52a80b Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 27 Mar 2015 02:41:19 -0400 Subject: [PATCH 5/7] Makes holo objs slightly transparent --- code/modules/holodeck/HolodeckControl.dm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm index fdc882eee66..8ae14ea2db9 100644 --- a/code/modules/holodeck/HolodeckControl.dm +++ b/code/modules/holodeck/HolodeckControl.dm @@ -28,7 +28,7 @@ var/global/list/holodeck_programs = list( var/area/linkedholodeck = null var/area/target = null var/active = 0 - var/list/holographic_items = list() + var/list/holographic_objs = list() var/list/holographic_mobs = list() var/damaged = 0 var/safety_disabled = 0 @@ -208,7 +208,7 @@ var/global/list/holodeck_programs = list( emergencyShutdown() /obj/machinery/computer/HolodeckControl/process() - for(var/item in holographic_items) // do this first, to make sure people don't take items out when power is down. + for(var/item in holographic_objs) // do this first, to make sure people don't take items out when power is down. if(!(get_turf(item) in linkedholodeck)) derez(item, 0) @@ -221,7 +221,7 @@ var/global/list/holodeck_programs = list( if(!..()) return if(active) - use_power(item_power_usage * (holographic_items.len + holographic_mobs.len)) + use_power(item_power_usage * (holographic_objs.len + holographic_mobs.len)) if(!checkInteg(linkedholodeck)) damaged = 1 @@ -243,7 +243,7 @@ var/global/list/holodeck_programs = list( T.hotspot_expose(1000,500,1) /obj/machinery/computer/HolodeckControl/proc/derez(var/obj/obj , var/silent = 1) - holographic_items.Remove(obj) + holographic_objs.Remove(obj) if(obj == null) return @@ -271,7 +271,7 @@ var/global/list/holodeck_programs = list( if(toggleOn) var/area/targetsource = locate(/area/holodeck/source_emptycourt) - holographic_items = targetsource.copy_contents_to(linkedholodeck) + holographic_objs = targetsource.copy_contents_to(linkedholodeck) spawn(30) for(var/obj/effect/landmark/L in linkedholodeck) @@ -288,7 +288,7 @@ var/global/list/holodeck_programs = list( active = 1 use_power = 2 else - for(var/item in holographic_items) + for(var/item in holographic_objs) derez(item) if(!linkedholodeck.has_gravity) linkedholodeck.gravitychange(1,linkedholodeck) @@ -313,7 +313,7 @@ var/global/list/holodeck_programs = list( active = 1 use_power = 2 - for(var/item in holographic_items) + for(var/item in holographic_objs) derez(item) for(var/mob/living/simple_animal/hostile/carp/holodeck/C in holographic_mobs) @@ -323,7 +323,9 @@ var/global/list/holodeck_programs = list( for(var/obj/effect/decal/cleanable/blood/B in linkedholodeck) del(B) - holographic_items = A.copy_contents_to(linkedholodeck , 1) + holographic_objs = A.copy_contents_to(linkedholodeck , 1) + for(var/obj/holo_obj in holographic_objs) + holo_obj.alpha *= 0.8 //give holodeck objs a slight transparency spawn(30) for(var/obj/effect/landmark/L in linkedholodeck) @@ -366,7 +368,7 @@ var/global/list/holodeck_programs = list( /obj/machinery/computer/HolodeckControl/proc/emergencyShutdown() //Get rid of any items - for(var/item in holographic_items) + for(var/item in holographic_objs) derez(item) for(var/mob/living/simple_animal/hostile/carp/holodeck/C in holographic_mobs) holographic_mobs -= C From 09fea22231829f3f1482c9ec90b84cd976f6fd51 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 27 Mar 2015 23:35:38 -0400 Subject: [PATCH 6/7] Fixes camera wires Seems like pulsing was mistakenly set to deactivate the camera during the wire datum update. --- code/datums/wires/camera.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/wires/camera.dm b/code/datums/wires/camera.dm index d03da5fa171..35bb07cbc51 100644 --- a/code/datums/wires/camera.dm +++ b/code/datums/wires/camera.dm @@ -58,7 +58,7 @@ var/const/CAMERA_WIRE_NOTHING2 = 32 C.setViewRange(new_range) if(CAMERA_WIRE_POWER) - C.deactivate(null) // Deactivate the camera + C.kick_viewers() // Kicks anyone watching the camera if(CAMERA_WIRE_LIGHT) C.light_disabled = !C.light_disabled From e7b4370772d40026c4d801aed2c82fde4440edb4 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sat, 28 Mar 2015 22:01:02 +0000 Subject: [PATCH 7/7] Fixes #8650 --- code/modules/reagents/reagent_containers/pill.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 804b0347be7..cbae0f8f402 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -196,7 +196,7 @@ icon_state = "pill8" New() ..() - reagents.add_reagent("dexalin", 15) + reagents.add_reagent("dexalinp", 15) /obj/item/weapon/reagent_containers/pill/dermaline name = "Dermaline pill"