From 389890bb2dc6db13d2534b4930994478f1766731 Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 21 Feb 2017 13:26:18 +0100 Subject: [PATCH 01/83] Additional admin interaction additions --- .../structures/crates_lockers/closets.dm | 118 +++++++++--------- .../closets/secure/secure_closets.dm | 54 ++++---- .../structures/crates_lockers/crates.dm | 12 +- code/game/objects/structures/false_walls.dm | 7 ++ .../game/objects/structures/tank_dispenser.dm | 25 ++-- code/modules/mining/equipment_locker.dm | 45 ++++--- 6 files changed, 141 insertions(+), 120 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index e213c555c43..7f02a93bd38 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -22,7 +22,7 @@ ..() spawn(1) if(!opened) // if closed, any item at the crate's loc is put in the contents - for(var/obj/item/I in src.loc) + for(var/obj/item/I in loc) if(I.density || I.anchored || I == src) continue I.forceMove(src) @@ -39,7 +39,7 @@ return (!density) /obj/structure/closet/proc/can_open() - if(src.welded) + if(welded) return 0 return 1 @@ -59,46 +59,46 @@ throwing = 0 /obj/structure/closet/proc/open() - if(src.opened) + if(opened) return 0 - if(!src.can_open()) + if(!can_open()) return 0 - src.dump_contents() + dump_contents() - src.icon_state = src.icon_opened - src.opened = 1 + icon_state = icon_opened + opened = 1 if(sound) - playsound(src.loc, src.sound, 15, 1, -3) + playsound(loc, sound, 15, 1, -3) else - playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3) + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) density = 0 return 1 /obj/structure/closet/proc/close() - if(!src.opened) + if(!opened) return 0 - if(!src.can_close()) + if(!can_close()) return 0 var/itemcount = 0 //Cham Projector Exception - for(var/obj/effect/dummy/chameleon/AD in src.loc) + for(var/obj/effect/dummy/chameleon/AD in loc) if(itemcount >= storage_capacity) break AD.forceMove(src) itemcount++ - for(var/obj/item/I in src.loc) + for(var/obj/item/I in loc) if(itemcount >= storage_capacity) break if(!I.anchored) I.forceMove(src) itemcount++ - for(var/mob/M in src.loc) + for(var/mob/M in loc) if(itemcount >= storage_capacity) break if(istype (M, /mob/dead/observer)) @@ -109,37 +109,37 @@ M.forceMove(src) itemcount++ - src.icon_state = src.icon_closed - src.opened = 0 + icon_state = icon_closed + opened = 0 if(sound) - playsound(src.loc, src.sound, 15, 1, -3) + playsound(loc, sound, 15, 1, -3) else - playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3) + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) density = 1 return 1 -/obj/structure/closet/proc/toggle(mob/user as mob) - if(!(src.opened ? src.close() : src.open())) +/obj/structure/closet/proc/toggle(mob/user) + if(!(opened ? close() : open())) to_chat(user, "It won't budge!") // this should probably use dump_contents() /obj/structure/closet/ex_act(severity) switch(severity) if(1) - for(var/atom/movable/A as mob|obj in src)//pulls everything out of the locker and hits it with an explosion - A.forceMove(src.loc) + for(var/atom/movable/A in src)//pulls everything out of the locker and hits it with an explosion + A.forceMove(loc) A.ex_act(severity++) qdel(src) if(2) if(prob(50)) - for(var/atom/movable/A as mob|obj in src) + for(var/atom/movable/A in src) A.forceMove(loc) A.ex_act(severity++) new /obj/item/stack/sheet/metal(loc) qdel(src) if(3) if(prob(5)) - for(var/atom/movable/A as mob|obj in src) + for(var/atom/movable/A in src) A.forceMove(loc) A.ex_act(severity++) new /obj/item/stack/sheet/metal(loc) @@ -150,32 +150,32 @@ if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) health -= Proj.damage if(health <= 0) - for(var/atom/movable/A as mob|obj in src) + for(var/atom/movable/A in src) A.forceMove(loc) qdel(src) -/obj/structure/closet/attack_animal(mob/living/simple_animal/user as mob) +/obj/structure/closet/attack_animal(mob/living/simple_animal/user) if(user.environment_smash) user.do_attack_animation(src) visible_message("\red [user] destroys the [src]. ") - for(var/atom/movable/A as mob|obj in src) + for(var/atom/movable/A in src) A.forceMove(loc) qdel(src) // this should probably use dump_contents() /obj/structure/closet/blob_act() if(prob(75)) - for(var/atom/movable/A as mob|obj in src) + for(var/atom/movable/A in src) A.forceMove(loc) qdel(src) -/obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if(istype(W, /obj/item/weapon/rcs) && !src.opened) +/obj/structure/closet/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/rcs) && !opened) if(user in contents) //to prevent self-teleporting. return var/obj/item/weapon/rcs/E = W if(E.rcell && (E.rcell.charge >= E.chargecost)) - if(!is_level_reachable(src.z)) + if(!is_level_reachable(z)) to_chat(user, "The rapid-crate-sender can't locate any telepads!") return if(E.mode == 0) @@ -194,7 +194,7 @@ var/desc = input("Please select a telepad.", "RCS") in L E.pad = L[desc] playsound(E.loc, 'sound/machines/click.ogg', 50, 1) - to_chat(user, "\blue Teleporting [src.name]...") + to_chat(user, "\blue Teleporting [name]...") E.teleporting = 1 if(!do_after(user, 50, target = src)) E.teleporting = 0 @@ -216,7 +216,7 @@ E.rand_y = rand(50,200) var/L = locate(E.rand_x, E.rand_y, 6) playsound(E.loc, 'sound/machines/click.ogg', 50, 1) - to_chat(user, "\blue Teleporting [src.name]...") + to_chat(user, "\blue Teleporting [name]...") E.teleporting = 1 if(!do_after(user, 50, target = src)) E.teleporting = 0 @@ -237,9 +237,9 @@ to_chat(user, "Out of charges.") return - if(src.opened) + if(opened) if(istype(W, /obj/item/weapon/grab)) - src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet + MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet if(istype(W,/obj/item/tk_grab)) return 0 if(istype(W, cutting_tool)) @@ -276,14 +276,14 @@ if(!WT.remove_fuel(0,user)) to_chat(user, "You need more welding fuel to complete this task.") return - src.welded = !src.welded - src.update_icon() + welded = !welded + update_icon() for(var/mob/M in viewers(src)) M.show_message("[src] has been [welded?"welded shut":"unwelded"] by [user.name].", 3, "You hear welding.", 2) else - src.attack_hand(user) + attack_hand(user) -/obj/structure/closet/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob) +/obj/structure/closet/MouseDrop_T(atom/movable/O, mob/user) ..() if(istype(O, /obj/screen)) //fix for HUD elements making their way into the world -Pete return @@ -297,24 +297,24 @@ return if(!istype(user.loc, /turf)) // are you in a container/closet/pod/etc? return - if(!src.opened) + if(!opened) return if(istype(O, /obj/structure/closet)) return - step_towards(O, src.loc) + step_towards(O, loc) if(user != O) user.visible_message("[user] stuffs [O] into [src]!", "You stuff [O] into [src]!") - src.add_fingerprint(user) + add_fingerprint(user) /obj/structure/closet/attack_ai(mob/user) - if(istype(user, /mob/living/silicon/robot) && Adjacent(user)) //Robots can open/close it, but not the AI + if(isrobot(user) && Adjacent(user)) //Robots can open/close it, but not the AI attack_hand(user) -/obj/structure/closet/relaymove(mob/user as mob) - if(user.stat || !isturf(src.loc)) +/obj/structure/closet/relaymove(mob/user) + if(user.stat || !isturf(loc)) return - if(!src.open()) + if(!open()) to_chat(user, "It won't budge!") if(!lastbang) lastbang = 1 @@ -323,14 +323,18 @@ spawn(30) lastbang = 0 -/obj/structure/closet/attack_hand(mob/user as mob) - src.add_fingerprint(user) - src.toggle(user) +/obj/structure/closet/attack_hand(mob/user) + add_fingerprint(user) + toggle(user) + +/obj/structure/closet/attack_ghost(mob/user) + if(user.can_advanced_admin_interact()) + toggle(user) // tk grab then use on self -/obj/structure/closet/attack_self_tk(mob/user as mob) - src.add_fingerprint(user) - if(!src.toggle()) +/obj/structure/closet/attack_self_tk(mob/user) + add_fingerprint(user) + if(!toggle()) to_chat(usr, "It won't budge!") /obj/structure/closet/verb/verb_toggleopen() @@ -338,12 +342,12 @@ set category = null set name = "Toggle Open" - if(!usr.canmove || usr.stat || usr.restrained()) + if(usr.incapacitated()) return if(ishuman(usr)) - src.add_fingerprint(usr) - src.toggle(usr) + add_fingerprint(usr) + toggle(usr) else to_chat(usr, "This mob type can't use this verb.") @@ -399,8 +403,8 @@ to_chat(usr, "You successfully break out!") for(var/mob/O in viewers(L.loc)) O.show_message("\the [usr] successfully broke out of \the [src]!", 1) - if(istype(src.loc, /obj/structure/bigDelivery)) //nullspace ect.. read the comment above - var/obj/structure/bigDelivery/BD = src.loc + if(istype(loc, /obj/structure/bigDelivery)) //nullspace ect.. read the comment above + var/obj/structure/bigDelivery/BD = loc BD.attack_hand(usr) open() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index db589c027e6..6b8227d69f6 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -19,14 +19,14 @@ /obj/structure/closet/secure_closet/can_open() if(!..()) return 0 - if(src.locked) + if(locked) return 0 return ..() /obj/structure/closet/secure_closet/close() if(..()) if(broken) - icon_state = src.icon_off + icon_state = icon_off return 1 else return 0 @@ -36,29 +36,29 @@ O.emp_act(severity) if(!broken) if(prob(50/severity)) - src.locked = !src.locked - src.update_icon() + locked = !locked + update_icon() if(prob(20/severity) && !opened) if(!locked) open() else - src.req_access = list() - src.req_access += pick(get_all_accesses()) + req_access = list() + req_access += pick(get_all_accesses()) ..() -/obj/structure/closet/secure_closet/proc/togglelock(mob/user as mob) - if(src.opened) +/obj/structure/closet/secure_closet/proc/togglelock(mob/user) + if(opened) to_chat(user, "Close the locker first.") return - if(src.broken) + if(broken) to_chat(user, "The locker appears to be broken.") return if(user.loc == src) to_chat(user, "You can't reach the lock from inside.") return - if(src.allowed(user)) - src.locked = !src.locked - playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3) + if(allowed(user)) + locked = !locked + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) for(var/mob/O in viewers(user, 3)) if((O.client && !( O.blinded ))) to_chat(O, "The locker has been [locked ? null : "un"]locked by [user].") @@ -66,14 +66,14 @@ else to_chat(user, "Access Denied") -/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob, params) +/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user, params) if(istype(W, /obj/item/weapon/rcs)) return ..() - if(src.opened) + if(opened) if(istype(W, /obj/item/weapon/grab)) - if(src.large) - src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet + if(large) + MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet else to_chat(user, "The locker is too small to stuff [W:affecting] into!") if(isrobot(user)) @@ -88,7 +88,7 @@ else togglelock(user) -/obj/structure/closet/secure_closet/emag_act(user as mob) +/obj/structure/closet/secure_closet/emag_act(mob/user) if(!broken) broken = 1 locked = 0 @@ -97,24 +97,24 @@ flick(icon_broken, src) to_chat(user, "You unlock \the [src].") -/obj/structure/closet/secure_closet/attack_hand(mob/user as mob) - src.add_fingerprint(user) - if(src.locked) - src.togglelock(user) +/obj/structure/closet/secure_closet/attack_hand(mob/user) + add_fingerprint(user) + if(locked) + togglelock(user) else - src.toggle(user) + toggle(user) /obj/structure/closet/secure_closet/verb/verb_togglelock() set src in oview(1) // One square distance set category = "Object" set name = "Toggle Lock" - if(!usr.canmove || usr.stat || usr.restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain + if(usr.incapacitated()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain return if(ishuman(usr)) - src.add_fingerprint(usr) - src.togglelock(usr) + add_fingerprint(usr) + togglelock(usr) else to_chat(usr, "This mob type can't use this verb.") @@ -170,7 +170,7 @@ to_chat(usr, "\red You successfully break out!") for(var/mob/O in viewers(L.loc)) O.show_message("\the [usr] successfully broke out of \the [src]!", 1) - if(istype(src.loc, /obj/structure/bigDelivery)) //Do this to prevent contents from being opened into nullspace (read: bluespace) - var/obj/structure/bigDelivery/BD = src.loc + if(istype(loc, /obj/structure/bigDelivery)) //Do this to prevent contents from being opened into nullspace (read: bluespace) + var/obj/structure/bigDelivery/BD = loc BD.attack_hand(usr) open() diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 23f5330e48a..8c2cdd1c09d 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -80,7 +80,7 @@ src.opened = 0 return 1 -/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob, params) +/obj/structure/closet/crate/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/rcs) && !src.opened) var/obj/item/weapon/rcs/E = W if(E.rcell && (E.rcell.charge >= E.chargecost)) @@ -191,7 +191,7 @@ else return -/obj/structure/closet/crate/attack_hand(mob/user as mob) +/obj/structure/closet/crate/attack_hand(mob/user) if(manifest) to_chat(user, "You tear the manifest off of the crate.") playsound(src.loc, 'sound/items/poster_ripped.ogg', 75, 1) @@ -250,7 +250,7 @@ /obj/structure/closet/crate/secure/can_open() return !locked -/obj/structure/closet/crate/secure/proc/togglelock(mob/user as mob) +/obj/structure/closet/crate/secure/proc/togglelock(mob/user) if(src.opened) to_chat(user, "Close the crate first.") return @@ -280,7 +280,7 @@ else to_chat(usr, "This mob type can't use this verb.") -/obj/structure/closet/crate/secure/attack_hand(mob/user as mob) +/obj/structure/closet/crate/secure/attack_hand(mob/user) if(manifest) to_chat(user, "You tear the manifest off of the crate.") playsound(src.loc, 'sound/items/poster_ripped.ogg', 75, 1) @@ -296,7 +296,7 @@ src.toggle(user) -/obj/structure/closet/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob, params) +/obj/structure/closet/crate/secure/attackby(obj/item/weapon/W, mob/user, params) if(is_type_in_list(W, list(/obj/item/stack/packageWrap, /obj/item/stack/cable_coil, /obj/item/device/radio/electropack, /obj/item/weapon/wirecutters,/obj/item/weapon/rcs))) return ..() if((istype(W, /obj/item/weapon/card/emag) || istype(W, /obj/item/weapon/melee/energy/blade))) @@ -307,7 +307,7 @@ return return ..() -/obj/structure/closet/crate/secure/emag_act(user as mob) +/obj/structure/closet/crate/secure/emag_act(user) if(locked) overlays += sparks spawn(6) overlays -= sparks //Tried lots of stuff but nothing works right. so i have to use this *sadface* diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index a10d5add7fb..57909ebc6d7 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -38,7 +38,14 @@ /obj/structure/falsewall/CanAtmosPass(turf/T) return !density +/obj/structure/falsewall/attack_ghost(mob/user) + if(user.can_advanced_admin_interact()) + toggle(user) + /obj/structure/falsewall/attack_hand(mob/user) + toggle(user) + +/obj/structure/falsewall/proc/toggle(mob/user) if(opening) return diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 8d0962857f5..29e730d12e5 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -17,11 +17,9 @@ /obj/structure/dispenser/plasma oxygentanks = 0 - /obj/structure/dispenser/New() update_icon() - /obj/structure/dispenser/update_icon() overlays.Cut() switch(oxygentanks) @@ -31,18 +29,23 @@ if(1 to 4) overlays += "plasma-[plasmatanks]" if(5 to INFINITY) overlays += "plasma-5" - -/obj/structure/dispenser/attack_hand(mob/user as mob) +/obj/structure/dispenser/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/structure/dispenser/attack_ghost(mob/user) + interact(user) + +/obj/structure/dispenser/interact(mob/user) user.set_machine(src) var/dat = "[src]

" dat += "Oxygen tanks: [oxygentanks] - [oxygentanks ? "Dispense" : "empty"]
" dat += "Plasma tanks: [plasmatanks] - [plasmatanks ? "Dispense" : "empty"]" user << browse(dat, "window=dispenser") onclose(user, "dispenser") - return - -/obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob, params) +/obj/structure/dispenser/attackby(obj/item/I as obj, mob/user, params) if(istype(I, /obj/item/weapon/tank/oxygen) || istype(I, /obj/item/weapon/tank/air) || istype(I, /obj/item/weapon/tank/anesthetic)) if(oxygentanks < 10) user.drop_item() @@ -75,8 +78,9 @@ return /obj/structure/dispenser/Topic(href, href_list) - if(usr.stat || usr.restrained()) - return + if(..()) + return 1 + if(Adjacent(usr)) usr.set_machine(src) if(href_list["oxygen"]) @@ -107,5 +111,4 @@ updateUsrDialog() else usr << browse(null, "window=dispenser") - return - return \ No newline at end of file + return \ No newline at end of file diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 54ecf32cf74..95a5e44104a 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -139,10 +139,13 @@ qdel(O)//No refined type? Purge it. return -/obj/machinery/mineral/ore_redemption/attack_hand(user as mob) +/obj/machinery/mineral/ore_redemption/attack_hand(mob/user) if(..()) return interact(user) + +/obj/machinery/mineral/ore_redemption/attack_ghost(mob/user) + interact(user) /obj/machinery/mineral/ore_redemption/interact(mob/user) user.set_machine(src) @@ -194,7 +197,8 @@ /obj/machinery/mineral/ore_redemption/Topic(href, href_list) if(..()) - return + return 1 + if(href_list["choice"]) if(istype(inserted_id)) if(href_list["choice"] == "eject") @@ -211,11 +215,12 @@ var/obj/item/weapon/card/id/I = usr.get_active_hand() if(istype(I)) if(!usr.drop_item()) - return + return 1 I.loc = src inserted_id = I else to_chat(usr, "No valid ID.") + if(href_list["release"]) if(check_access(inserted_id) || allowed(usr)) //Check the ID inside, otherwise check the user. if(!(text2path(href_list["release"]) in stack_list)) return @@ -230,6 +235,7 @@ stack_list -= text2path(href_list["release"]) else to_chat(usr, "Required access not found.") + if(href_list["plasteel"]) if(check_access(inserted_id) || allowed(usr)) if(!(/obj/item/stack/sheet/metal in stack_list)) return @@ -246,6 +252,7 @@ unload_mineral(plasteelout) else to_chat(usr, "Required access not found.") + if(href_list["plasglass"]) if(check_access(inserted_id) || allowed(usr)) if(!(/obj/item/stack/sheet/glass in stack_list)) return @@ -263,7 +270,6 @@ else to_chat(usr, "Required access not found.") updateUsrDialog() - return /obj/machinery/mineral/ore_redemption/ex_act(severity, target) var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread @@ -383,12 +389,14 @@ icon_state = initial(icon_state) else icon_state = "[initial(icon_state)]-off" - return -/obj/machinery/mineral/equipment_vendor/attack_hand(user as mob) +/obj/machinery/mineral/equipment_vendor/attack_hand(mob/user) if(..()) return interact(user) + +/obj/machinery/mineral/equipment_vendor/attack_ghost(mob/user) + interact(user) /obj/machinery/mineral/equipment_vendor/interact(mob/user) user.set_machine(src) @@ -407,11 +415,11 @@ var/datum/browser/popup = new(user, "miningvendor", "Mining Equipment Vendor", 400, 350) popup.set_content(dat) popup.open() - return /obj/machinery/mineral/equipment_vendor/Topic(href, href_list) if(..()) - return + return 1 + if(href_list["choice"]) if(istype(inserted_id)) if(href_list["choice"] == "eject") @@ -427,19 +435,18 @@ inserted_id = I else to_chat(usr, "No valid ID.") + if(href_list["purchase"]) if(istype(inserted_id)) var/datum/data/mining_equipment/prize = locate(href_list["purchase"]) - if(!prize || !(prize in prize_list)) + if(!prize || !(prize in prize_list) || prize.cost > inserted_id.mining_points) return - if(prize.cost > inserted_id.mining_points) - else - inserted_id.mining_points -= prize.cost - new prize.equipment_path(src.loc) - updateUsrDialog() - return -/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I as obj, mob/user as mob, params) + inserted_id.mining_points -= prize.cost + new prize.equipment_path(src.loc) + updateUsrDialog() + +/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I, mob/user, params) if(default_deconstruction_screwdriver(user, "mining-open", "mining", I)) updateUsrDialog() return @@ -510,7 +517,7 @@ icon_state = "data" var/points = 500 -/obj/item/weapon/card/mining_point_card/attackby(obj/item/I as obj, mob/user as mob, params) +/obj/item/weapon/card/mining_point_card/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/card/id)) if(points) var/obj/item/weapon/card/id/C = I @@ -539,7 +546,7 @@ throw_range = 5 origin_tech = "bluespace=2" -/obj/item/device/wormhole_jaunter/attack_self(mob/user as mob) +/obj/item/device/wormhole_jaunter/attack_self(mob/user) var/turf/device_turf = get_turf(user) if(!device_turf||is_teleport_allowed(device_turf.z)) to_chat(user, "You're having difficulties getting the [src.name] to work.") @@ -620,7 +627,7 @@ spawn(burst_time) fieldsactive-- -/obj/item/weapon/resonator/attack_self(mob/user as mob) +/obj/item/weapon/resonator/attack_self(mob/user) if(burst_time == 50) burst_time = 30 to_chat(user, "You set the resonator's fields to detonate after 3 seconds.") From 3b9786488d8ff85772109d021d10d75d6055b410 Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 21 Feb 2017 13:33:31 +0100 Subject: [PATCH 02/83] Interaction with laptop vendor, make sure observers are considered incapacitated --- code/modules/computer3/lapvend.dm | 16 +++++++++++++--- code/modules/mob/dead/observer/observer.dm | 3 +++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/code/modules/computer3/lapvend.dm b/code/modules/computer3/lapvend.dm index 0eb665f70b2..e77298dc35e 100644 --- a/code/modules/computer3/lapvend.dm +++ b/code/modules/computer3/lapvend.dm @@ -61,7 +61,15 @@ ..() -/obj/machinery/lapvend/attack_hand(mob/user as mob) +/obj/machinery/lapvend/attack_hand(mob/user) + if(..()) + return 1 + interact(user) + +/obj/machinery/lapvend/attack_ghost(mob/user) + interact(user) + +/obj/machinery/lapvend/interact(mob/user) user.set_machine(src) var/vendorname = (src.name) //import the machine's name var/dat = "
[vendorname]


" //display the name, and added a horizontal rule @@ -133,8 +141,10 @@ /obj/machinery/lapvend/Topic(href, href_list) - if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) - usr.set_machine(src) + if(..()) + return 1 + + usr.set_machine(src) switch(href_list["choice"]) if("single_add") cardreader = 1 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index d84e434456d..03f39868bbc 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -657,6 +657,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return TRUE return FALSE + +/mob/dead/observer/incapacitated() + return TRUE //this is a mob verb instead of atom for performance reasons //see /mob/verb/examinate() in mob.dm for more info From 58a422c585f8b4d6e5c2b88f955f57db50a8364e Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 21 Feb 2017 13:38:59 +0100 Subject: [PATCH 03/83] PDA painter sanity checks --- code/game/machinery/PDApainter.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 24b233a4b41..485bbd58b0e 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -61,7 +61,8 @@ /obj/machinery/pdapainter/attack_hand(mob/user as mob) - ..() + if(..()) + return 1 src.add_fingerprint(user) @@ -84,6 +85,9 @@ set name = "Eject PDA" set category = "Object" set src in oview(1) + + if(usr.incapacitated()) + return if(storedpda) storedpda.loc = get_turf(src.loc) From a23493af865e746a8b8d6de240d8a53b32b6fe25 Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 21 Feb 2017 13:43:37 +0100 Subject: [PATCH 04/83] Remove as obj --- .../structures/crates_lockers/closets/secure/secure_closets.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index 6b8227d69f6..cf7c2eec052 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -66,7 +66,7 @@ else to_chat(user, "Access Denied") -/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user, params) +/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/rcs)) return ..() From 481083dfcab2ea077ce585f040ef58bb9b557bf2 Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 21 Feb 2017 13:49:00 +0100 Subject: [PATCH 05/83] Variable fix --- code/game/objects/structures/crates_lockers/crates.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 8c2cdd1c09d..7368c98c60f 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -307,7 +307,7 @@ return return ..() -/obj/structure/closet/crate/secure/emag_act(user) +/obj/structure/closet/crate/secure/emag_act(mob/user) if(locked) overlays += sparks spawn(6) overlays -= sparks //Tried lots of stuff but nothing works right. so i have to use this *sadface* From bbaef077db7c9019c61d1d3175e48eaa9359132d Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 21 Feb 2017 18:21:50 +0100 Subject: [PATCH 06/83] Conveyor switch interaction --- code/modules/recycling/conveyor2.dm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 3d57f950995..2430ed122dd 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -253,9 +253,20 @@ // attack with hand, switch position /obj/machinery/conveyor_switch/attack_hand(mob/user) - if(!allowed(user)) //this is in Para but not TG. I don't think there's any which are set anyway. + if(..()) + return 1 + + toggle(user) + +/obj/machinery/conveyor_switch/attack_ghost(mob/user) + if(user.can_advanced_admin_interact()) + toggle(user) + +/obj/machinery/conveyor_switch/proc/toggle(mob/user) + if(!allowed(user) && !user.can_advanced_admin_interact()) //this is in Para but not TG. I don't think there's any which are set anyway. to_chat(user, "Access denied.") return + add_fingerprint(user) if(position == 0) if(convdir) //is it a oneway switch @@ -280,8 +291,7 @@ S.position = position S.update() CHECK_TICK - - + /obj/machinery/conveyor_switch/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/crowbar)) var/obj/item/conveyor_switch_construct/C = new/obj/item/conveyor_switch_construct(src.loc) From 0e10df68a170ee759b7222314a92c2bd186ebfc3 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Sat, 25 Feb 2017 00:41:18 -0800 Subject: [PATCH 07/83] Replaces the APC attack_hand code with a power cord organ De-snowflaking IPCs one bit at a time --- .../living/carbon/human/species/station.dm | 3 +- code/modules/power/apc.dm | 33 +----- .../surgery/organs/augments_internal.dm | 100 +++++++++++++++++- code/modules/surgery/organs/organ_internal.dm | 5 +- code/modules/surgery/robotics.dm | 14 ++- 5 files changed, 113 insertions(+), 42 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index fcdd8ac40ea..34a9a3e0b4c 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -899,7 +899,8 @@ has_organ = list( "brain" = /obj/item/organ/internal/brain/mmi_holder/posibrain, "cell" = /obj/item/organ/internal/cell, - "optics" = /obj/item/organ/internal/eyes/optical_sensor //Default darksight of 2. + "optics" = /obj/item/organ/internal/eyes/optical_sensor, //Default darksight of 2. + "charger" = /obj/item/organ/internal/cyberimp/chest/arm_mod/power_cord ) vision_organ = /obj/item/organ/internal/eyes/optical_sensor diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 56da9cf9b07..0c6965c0e06 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -640,6 +640,9 @@ (istype(W, /obj/item/device/multitool) || \ istype(W, /obj/item/weapon/wirecutters) || istype(W, /obj/item/device/assembly/signaler))) return src.attack_hand(user) + if(W.flags & NOBLUDGEON) + return + user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src) user.visible_message("The [src.name] has been hit with the [W.name] by [user.name]!", \ "You hit the [src.name] with your [W.name]!", \ @@ -667,36 +670,6 @@ if(!user) return src.add_fingerprint(user) - //Synthetic human mob goes here. - if(istype(user,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - if(H.get_int_organ(/obj/item/organ/internal/cell) && H.a_intent == I_GRAB) - if(emagged || stat & BROKEN) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - to_chat(H, "The APC power currents surge erratically, damaging your chassis!") - H.adjustFireLoss(10,0) - else if(src.cell && src.cell.charge > 0) - if(H.nutrition < NUTRITION_LEVEL_WELL_FED) - if(src.cell.charge >= 500) - H.nutrition += 50 - src.cell.charge -= 500 - else - H.nutrition += src.cell.charge/10 - src.cell.charge = 0 - - to_chat(user, "You slot your fingers into the APC interface and siphon off some of the stored charge for your own use.") - if(src.cell.charge < 0) - src.cell.charge = 0 - if(H.nutrition > NUTRITION_LEVEL_WELL_FED + 50) - H.nutrition = NUTRITION_LEVEL_WELL_FED + 50 - src.charging = 1 - else - to_chat(user, "You are already fully charged.") - else - to_chat(user, "There is no charge to draw from that APC.") - return if(usr == user && opened && (!issilicon(user))) if(cell) diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 153f169efca..ffd0b4f0b1e 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -8,17 +8,17 @@ var/implant_overlay tough = 1 //not easyly broken by combat damage sterile = 1 //not very germy + robotic = 2 // these are cybernetic after all /obj/item/organ/internal/cyberimp/New(var/mob/M = null) - if(iscarbon(M)) - src.insert(M) + . = ..() if(implant_overlay) var/image/overlay = new /image(icon, implant_overlay) overlay.color = implant_color overlays |= overlay - return ..() - +/obj/item/organ/internal/cyberimp/emp_act() + return // These shouldn't be hurt by EMPs in the standard way //[[[[BRAIN]]]] @@ -270,9 +270,15 @@ var/lasthand = null /obj/item/organ/internal/cyberimp/chest/arm_mod/ui_action_click() + toggle_item() + +/obj/item/organ/internal/cyberimp/chest/arm_mod/proc/toggle_item() if(overloaded)//ensure the implant isn't broken to_chat(owner, "The implant doesn't respond. It seems to be broken...") return + owner.changeNext_move(CLICK_CD_MELEE) + if(owner.next_move < world.time) + return // No spam if(out)//check if the owner has the item out already owner.unEquip(holder, 1)//if he does, take it away. then, holder.loc = null//stash it in nullspace @@ -297,6 +303,9 @@ holder.loc = null out = 0 owner.visible_message("[holder] forcibly retracts into [owner]'s arm.") + overload() // Make sure this doesn't happen again + +/obj/item/organ/internal/cyberimp/chest/arm_mod/proc/overload() owner.visible_message("A loud bang comes from [owner]...") playsound(get_turf(owner), 'sound/effects/bang.ogg', 100, 1) to_chat(owner, "You feel an explosion erupt inside you as your chest implant breaks. Is it hot in here?") @@ -312,7 +321,7 @@ limb.droplimb(0, DROPLIMB_EDGE) owner.say("I HAVE BEEN DISARMED!!!") owner.adjustFireLoss(25)//severely injure him! - overloaded = 1//then make sure this can't happen again by breaking the implant. + overloaded = TRUE /obj/item/organ/internal/cyberimp/chest/arm_mod/tase//mounted, self-charging taser! name = "Arm-cannon taser implant" @@ -322,6 +331,7 @@ actions_types = list(/datum/action/item_action/organ_action/toggle) /obj/item/organ/internal/cyberimp/chest/arm_mod/tase/New()//when the implant is created... + ..() holder = new /obj/item/weapon/gun/energy/gun/advtaser/mounted(src)//assign a brand new item to it. (in this case, a gun) /obj/item/organ/internal/cyberimp/chest/arm_mod/lase//mounted, self-charging laser! @@ -332,8 +342,88 @@ actions_types = list(/datum/action/item_action/organ_action/toggle) /obj/item/organ/internal/cyberimp/chest/arm_mod/lase/New() + ..() holder = new /obj/item/weapon/gun/energy/laser/mounted(src) +// lets make IPCs even *more* vulnerable to EMPs! +/obj/item/organ/internal/cyberimp/chest/arm_mod/power_cord + name = "APC-compatible power adapter implant" + desc = "An implant commonly installed inside IPCs in order to allow them to easily collect energy from their environment" + origin_tech = "materials=3;biotech=2;powerstorage=3" + slot = "shoulders2" + actions_types = list(/datum/action/item_action/organ_action/toggle) + + +/obj/item/organ/internal/cyberimp/chest/arm_mod/power_cord/New() + ..() + holder = new /obj/item/apc_powercord(src) + +/obj/item/organ/internal/cyberimp/chest/arm_mod/power_cord/overload() + // To allow repair via nanopaste/screwdriver + // also so IPCs don't also catch on fire and fall even more apart upon EMP + damage = 1 + overloaded = TRUE + +/obj/item/organ/internal/cyberimp/chest/arm_mod/power_cord/surgeryize() + if(overloaded && owner) + to_chat(owner, "Your [src] feels functional again.") + overloaded = FALSE + + +/obj/item/apc_powercord + name = "power cable" + desc = "Insert into a nearby APC to draw power from it." + icon = 'icons/obj/power.dmi' + icon_state = "wire1" + flags = NODROP | NOBLUDGEON + +/obj/item/apc_powercord/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + if(!istype(target, /obj/machinery/power/apc) || !ishuman(user) || !proximity_flag) + return ..() + user.changeNext_move(CLICK_CD_MELEE) + var/obj/machinery/power/apc/A = target + var/mob/living/carbon/human/H = user + if(H.get_int_organ(/obj/item/organ/internal/cell)) + if(A.emagged || A.stat & BROKEN) + var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + s.set_up(3, 1, A) + s.start() + to_chat(H, "The APC power currents surge erratically, damaging your chassis!") + H.adjustFireLoss(10,0) + else if(A.cell && A.cell.charge > 0) + if(H.nutrition >= NUTRITION_LEVEL_WELL_FED) + to_chat(user, "You are already fully charged!") + else + addtimer(src, "powerdraw_loop", 0, TRUE, A, H) + else + to_chat(user, "There is no charge to draw from that APC.") + else + to_chat(user, "You lack a cell in which to store charge!") + +/obj/item/apc_powercord/proc/powerdraw_loop(obj/machinery/power/apc/A, mob/living/carbon/human/H) + H.visible_message("[H] inserts a power connector into \the [A].", "You begin to draw power from \the [A].") + while(do_after(H, 10, target = A)) + if(loc != H) + to_chat(H, "You must keep your connector out while charging!") + break + if(A.cell.charge == 0) + to_chat(H, "\The [A] has no more charge.") + break + A.charging = 1 + if(A.cell.charge >= 500) + H.nutrition += 50 + A.cell.charge -= 500 + to_chat(H, "You siphon off some of the stored charge for your own use.") + else + H.nutrition += A.cell.charge/10 + A.cell.charge = 0 + to_chat(H, "You siphon off the last of \the [A]'s charge.") + break + if(H.nutrition > NUTRITION_LEVEL_WELL_FED) + to_chat(H, "You are now fully charged.") + break + H.visible_message("[H] unplugs from \the [A].", "You unplug from \the [A].") + //BOX O' IMPLANTS /obj/item/weapon/storage/box/cyber_implants diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 8de7cccd2d6..0906b3c63c5 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -11,9 +11,9 @@ var/non_primary = 0 /obj/item/organ/internal/New(var/mob/living/carbon/holder) + ..() if(istype(holder)) insert(holder) - ..() /obj/item/organ/internal/Destroy() if(owner) @@ -412,7 +412,8 @@ colourmatrix = null dark_view = 2 ..() //Make sure the organ's got the robotic status indicators before updating the client colour. - owner.update_client_colour(0) //Since both mechassisted and mechanical eyes give dark_view of 2 and full colour vision atm, just having this here is fine as mechassist() will call it anyway. + if(owner) + owner.update_client_colour(0) //Since both mechassisted and mechanical eyes give dark_view of 2 and full colour vision atm, just having this here is fine as mechassist() will call it anyway. /obj/item/organ/internal/mechassist() ..() //Go back, call robotize(), adjust the robotic status indicators and the organ damage parameters. diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index d3d5345cb0b..e1dc252412d 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -398,11 +398,16 @@ return var/obj/item/organ/external/affected = target.get_organ(target_zone) + var/found_damaged_organ = FALSE for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0) - if(I.robotic >= 2) - user.visible_message("[user] starts mending the damage to [target]'s [I.name]'s mechanisms.", \ - "You start mending the damage to [target]'s [I.name]'s mechanisms." ) + if(I && I.damage > 0 && I.robotic >= 2) + user.visible_message("[user] starts mending the damage to [target]'s [I.name]'s mechanisms.", \ + "You start mending the damage to [target]'s [I.name]'s mechanisms.") + found_damaged_organ = TRUE + + if(!found_damaged_organ) + to_chat(user, "There are no damaged components in [affected].") + return -1 target.custom_pain("The pain in your [affected.name] is living hell!",1) @@ -425,6 +430,7 @@ user.visible_message(" [user] repairs [target]'s [I.name] with [tool].", \ " You repair [target]'s [I.name] with [tool]." ) I.damage = 0 + I.surgeryize() else if(current_type == "insert") var/obj/item/organ/internal/I = tool From a3a177569612437e1deef8aef185e86253db2e3d Mon Sep 17 00:00:00 2001 From: davipatury Date: Sat, 25 Feb 2017 21:51:28 -0300 Subject: [PATCH 08/83] Wires nano-ui. --- code/datums/wires/airlock.dm | 28 +-- code/datums/wires/alarm.dm | 14 +- code/datums/wires/apc.dm | 14 +- code/datums/wires/autolathe.dm | 9 +- code/datums/wires/camera.dm | 18 +- code/datums/wires/explosive.dm | 8 +- code/datums/wires/mulebot.dm | 10 +- code/datums/wires/nuclearbomb.dm | 16 +- code/datums/wires/particle_accelerator.dm | 6 +- code/datums/wires/radio.dm | 6 +- code/datums/wires/robot.dm | 17 +- code/datums/wires/smartfridge.dm | 18 +- code/datums/wires/syndicatebomb.dm | 6 +- code/datums/wires/vending.dm | 18 +- code/datums/wires/wires.dm | 159 +++++++++--------- .../game/objects/items/devices/radio/radio.dm | 5 - .../mob/living/simple_animal/bot/mulebot.dm | 2 +- nano/templates/wires.tmpl | 24 +++ 18 files changed, 192 insertions(+), 186 deletions(-) create mode 100644 nano/templates/wires.tmpl diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 8fb989a8a4f..a464f71d86b 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -21,9 +21,9 @@ var/const/AIRLOCK_WIRE_SAFETY = 512 var/const/AIRLOCK_WIRE_SPEED = 1024 var/const/AIRLOCK_WIRE_LIGHT = 2048 -/datum/wires/airlock/CanUse(var/mob/living/L) +/datum/wires/airlock/CanUse(mob/living/L) var/obj/machinery/door/airlock/A = holder - if(!istype(L, /mob/living/silicon)) + if(!issilicon(L)) if(A.isElectrified()) if(A.shock(L, 100)) return 0 @@ -31,20 +31,20 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 return 1 return 0 -/datum/wires/airlock/GetInteractWindow() +/datum/wires/airlock/get_status() + . = ..() var/obj/machinery/door/airlock/A = holder var/haspower = A.arePowerSystemsOn() - . += ..() - . += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", - (A.locked ? "The door bolts have fallen!" : "The door bolts look up."), - ((A.lights && haspower) ? "The door bolt lights are on." : "The door bolt lights are off!"), - ((haspower) ? "The test light is on." : "The test light is off!"), - ((A.aiControlDisabled==0 && !A.emagged && haspower) ? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), - ((A.safe==0 && haspower) ? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), - ((A.normalspeed==0 && haspower) ? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off."), - ((A.emergency && haspower) ? "The emergency lights are on." : "The emergency lights are off.")) -/datum/wires/airlock/UpdateCut(var/index, var/mended) + . += "The door bolts [A.locked ? "have fallen!" : "look up."]" + . += "The door bolt lights are [(A.lights && haspower) ? "on." : "off!"]" + . += "The test light is [haspower ? "on." : "off!"]" + . += "The 'AI control allowed' light is [(A.aiControlDisabled == 0 && !A.emagged && haspower) ? "on" : "off"]." + . += "The 'Check Wiring' light is [(A.safe == 0 && haspower) ? "on" : "off"]." + . += "The 'Check Timing Mechanism' light is [(A.normalspeed == 0 && haspower) ? "on" : "off"]." + . += "The emergency lights are [(A.emergency && haspower) ? "on" : "off"]." + +/datum/wires/airlock/UpdateCut(index, mended) var/obj/machinery/door/airlock/A = holder switch(index) @@ -114,7 +114,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 A.lights = mended A.update_icon() -/datum/wires/airlock/UpdatePulsed(var/index) +/datum/wires/airlock/UpdatePulsed(index) var/obj/machinery/door/airlock/A = holder switch(index) diff --git a/code/datums/wires/alarm.dm b/code/datums/wires/alarm.dm index a31d075ecc7..e087fcc9578 100644 --- a/code/datums/wires/alarm.dm +++ b/code/datums/wires/alarm.dm @@ -10,18 +10,20 @@ var/const/AALARM_WIRE_AI_CONTROL = 8 var/const/AALARM_WIRE_AALARM = 16 -/datum/wires/alarm/CanUse(var/mob/living/L) +/datum/wires/alarm/CanUse(mob/living/L) var/obj/machinery/alarm/A = holder if(A.wiresexposed) return 1 return 0 -/datum/wires/alarm/GetInteractWindow() +/datum/wires/alarm/get_status() + . = ..() var/obj/machinery/alarm/A = holder - . += ..() - . += text("
\n[(A.locked ? "The Air Alarm is locked." : "The Air Alarm is unlocked.")]
\n[((A.shorted || (A.stat & (NOPOWER|BROKEN))) ? "The Air Alarm is offline." : "The Air Alarm is working properly!")]
\n[(A.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]") + . += "The Air Alarm is [A.locked ? "" : "un"]locked." + . += "The Air Alarm is [(A.shorted || (A.stat & (NOPOWER|BROKEN))) ? "offline." : "working properly!"]" + . += "The 'AI control allowed' light is [A.aidisabled ? "off" : "on"]." -/datum/wires/alarm/UpdateCut(var/index, var/mended) +/datum/wires/alarm/UpdateCut(index, mended) var/obj/machinery/alarm/A = holder switch(index) if(AALARM_WIRE_IDSCAN) @@ -51,7 +53,7 @@ var/const/AALARM_WIRE_AALARM = 16 A.post_alert(2) A.update_icon() -/datum/wires/alarm/UpdatePulsed(var/index) +/datum/wires/alarm/UpdatePulsed(index) var/obj/machinery/alarm/A = holder switch(index) if(AALARM_WIRE_IDSCAN) diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm index ff566bb7e6d..5f8d423557d 100644 --- a/code/datums/wires/apc.dm +++ b/code/datums/wires/apc.dm @@ -7,19 +7,21 @@ var/const/APC_WIRE_MAIN_POWER1 = 2 var/const/APC_WIRE_MAIN_POWER2 = 4 var/const/APC_WIRE_AI_CONTROL = 8 -/datum/wires/apc/GetInteractWindow() +/datum/wires/apc/get_status() + . = ..() var/obj/machinery/power/apc/A = holder - . += ..() - . += text("
\n[(A.locked ? "The APC is locked." : "The APC is unlocked.")]
\n[(A.shorted ? "The APCs power has been shorted." : "The APC is working properly!")]
\n[(A.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]") + . += "The APC is [A.locked ? "" : "un"]locked." + . += A.shorted ? "The APCs power has been shorted." : "The APC is working properly!" + . += "The 'AI control allowed' light is [A.aidisabled ? "off" : "on"]." -/datum/wires/apc/CanUse(var/mob/living/L) +/datum/wires/apc/CanUse(mob/living/L) var/obj/machinery/power/apc/A = holder if(A.wiresexposed) return 1 return 0 -/datum/wires/apc/UpdatePulsed(var/index) +/datum/wires/apc/UpdatePulsed(index) var/obj/machinery/power/apc/A = holder @@ -53,7 +55,7 @@ var/const/APC_WIRE_AI_CONTROL = 8 A.updateDialog() -/datum/wires/apc/UpdateCut(var/index, var/mended) +/datum/wires/apc/UpdateCut(index, mended) var/obj/machinery/power/apc/A = holder switch(index) diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index 011c2f9dc90..204082cb12c 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -1,5 +1,4 @@ /datum/wires/autolathe - holder_type = /obj/machinery/autolathe wire_count = 10 @@ -7,10 +6,12 @@ var/const/AUTOLATHE_HACK_WIRE = 1 var/const/AUTOLATHE_SHOCK_WIRE = 2 var/const/AUTOLATHE_DISABLE_WIRE = 4 -/datum/wires/autolathe/GetInteractWindow() +/datum/wires/autolathe/get_status() + . = ..() var/obj/machinery/autolathe/A = holder - . += ..() - . += text("
The red light is [A.disabled ? "off" : "on"].
The green light is [A.shocked ? "off" : "on"].
The blue light is [A.hacked ? "off" : "on"].
") + . += "The red light is [A.disabled ? "off" : "on"]." + . += "The green light is [A.shocked ? "off" : "on"]." + . += "The blue light is [A.hacked ? "off" : "on"]." /datum/wires/autolathe/CanUse() var/obj/machinery/autolathe/A = holder diff --git a/code/datums/wires/camera.dm b/code/datums/wires/camera.dm index f6ffd2ed427..a90c2aeaf79 100644 --- a/code/datums/wires/camera.dm +++ b/code/datums/wires/camera.dm @@ -5,17 +5,15 @@ holder_type = /obj/machinery/camera wire_count = 6 -/datum/wires/camera/GetInteractWindow() - +/datum/wires/camera/get_status() . = ..() var/obj/machinery/camera/C = holder - . += "
\n[(C.view_range == initial(C.view_range) ? "The focus light is on." : "The focus light is off.")]" - . += "
\n[(C.can_use() ? "The power link light is on." : "The power link light is off.")]" - . += "
\n[(C.light_disabled ? "The camera light is off." : "The camera light is on.")]" - . += "
\n[(C.alarm_on ? "The alarm light is on." : "The alarm light is off.")]" - return . + . += "The focus light is [(C.view_range == initial(C.view_range)) ? "on" : "off"]." + . += "The power link light is [C.can_use() ? "on" : "off"]." + . += "The camera light is [C.light_disabled ? "off" : "on"]." + . += "The alarm light is [C.alarm_on ? "on" : "off"]." -/datum/wires/camera/CanUse(var/mob/living/L) +/datum/wires/camera/CanUse(mob/living/L) var/obj/machinery/camera/C = holder if(!C.panel_open) return 0 @@ -28,7 +26,7 @@ var/const/CAMERA_WIRE_ALARM = 8 var/const/CAMERA_WIRE_NOTHING1 = 16 var/const/CAMERA_WIRE_NOTHING2 = 32 -/datum/wires/camera/UpdateCut(var/index, var/mended) +/datum/wires/camera/UpdateCut(index, mended) var/obj/machinery/camera/C = holder switch(index) @@ -50,7 +48,7 @@ var/const/CAMERA_WIRE_NOTHING2 = 32 C.cancelCameraAlarm() return -/datum/wires/camera/UpdatePulsed(var/index) +/datum/wires/camera/UpdatePulsed(index) var/obj/machinery/camera/C = holder if(IsIndexCut(index)) return diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index d653729dfd3..16e418a3625 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -6,12 +6,12 @@ var/const/WIRE_EXPLODE = 1 /datum/wires/explosive/proc/explode() return -/datum/wires/explosive/UpdatePulsed(var/index) +/datum/wires/explosive/UpdatePulsed(index) switch(index) if(WIRE_EXPLODE) explode() -/datum/wires/explosive/UpdateCut(var/index, var/mended) +/datum/wires/explosive/UpdateCut(index, mended) switch(index) if(WIRE_EXPLODE) if(!mended) @@ -20,10 +20,10 @@ var/const/WIRE_EXPLODE = 1 /datum/wires/explosive/gibtonite holder_type = /obj/item/weapon/twohanded/required/gibtonite -/datum/wires/explosive/gibtonite/CanUse(var/mob/living/L) +/datum/wires/explosive/gibtonite/CanUse(mob/living/L) return 1 -/datum/wires/explosive/gibtonite/UpdateCut(var/index, var/mended) +/datum/wires/explosive/gibtonite/UpdateCut(index, mended) return /datum/wires/explosive/gibtonite/explode() diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm index 7b59479720d..d8b70f436d7 100644 --- a/code/datums/wires/mulebot.dm +++ b/code/datums/wires/mulebot.dm @@ -13,19 +13,13 @@ var/const/WIRE_REMOTE_RX = 64 // remote recv functions var/const/WIRE_REMOTE_TX = 128 // remote trans status var/const/WIRE_BEACON_RX = 256 // beacon ping recv -/datum/wires/mulebot/CanUse(var/mob/living/L) +/datum/wires/mulebot/CanUse(mob/living/L) var/mob/living/simple_animal/bot/mulebot/M = holder if(M.open) return 1 return 0 -// So the wires do not open a new window, handle the interaction ourselves. -/datum/wires/mulebot/Interact(var/mob/living/user) - if(CanUse(user)) - var/mob/living/simple_animal/bot/mulebot/M = holder - M.interact(user) - -/datum/wires/mulebot/UpdatePulsed(var/index) +/datum/wires/mulebot/UpdatePulsed(index) switch(index) if(WIRE_POWER1, WIRE_POWER2) holder.visible_message("\blue [bicon(holder)] The charge light flickers.") diff --git a/code/datums/wires/nuclearbomb.dm b/code/datums/wires/nuclearbomb.dm index 0297bea8508..f8bad15f11b 100644 --- a/code/datums/wires/nuclearbomb.dm +++ b/code/datums/wires/nuclearbomb.dm @@ -7,20 +7,20 @@ var/const/NUCLEARBOMB_WIRE_LIGHT = 1 var/const/NUCLEARBOMB_WIRE_TIMING = 2 var/const/NUCLEARBOMB_WIRE_SAFETY = 4 -/datum/wires/nuclearbomb/CanUse(var/mob/living/L) +/datum/wires/nuclearbomb/CanUse(mob/living/L) var/obj/machinery/nuclearbomb/N = holder if(N.panel_open) return 1 return 0 -/datum/wires/nuclearbomb/GetInteractWindow() +/datum/wires/nuclearbomb/get_status() + . = ..() var/obj/machinery/nuclearbomb/N = holder - . += ..() - . += "
The device is [N.timing ? "shaking!" : "still."]
" - . += "The device is is [N.safety ? "quiet" : "whirring"].
" - . += "The lights are [N.lighthack ? "static" : "functional"].
" + . += "The device is [N.timing ? "shaking!" : "still."]" + . += "The device is is [N.safety ? "quiet" : "whirring"]." + . += "The lights are [N.lighthack ? "static" : "functional"]." -/datum/wires/nuclearbomb/UpdatePulsed(var/index) +/datum/wires/nuclearbomb/UpdatePulsed(index) var/obj/machinery/nuclearbomb/N = holder switch(index) if(NUCLEARBOMB_WIRE_LIGHT) @@ -45,7 +45,7 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4 N.icon_state = "nuclearbomb1" else N.visible_message("\blue The [N] emits a quiet whirling noise!") - + /datum/wires/nuclearbomb/UpdateCut(var/index, var/mended) var/obj/machinery/nuclearbomb/N = holder switch(index) diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm index 53a166a79e7..f7bf79976dd 100644 --- a/code/datums/wires/particle_accelerator.dm +++ b/code/datums/wires/particle_accelerator.dm @@ -8,13 +8,13 @@ var/const/PARTICLE_INTERFACE_WIRE = 4 // Determines the interface showing up. var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be. //var/const/PARTICLE_NOTHING_WIRE = 16 // Blank wire -/datum/wires/particle_acc/control_box/CanUse(var/mob/living/L) +/datum/wires/particle_acc/control_box/CanUse(mob/living/L) var/obj/machinery/particle_accelerator/control_box/C = holder if(C.construction_state == 2) return 1 return 0 -/datum/wires/particle_acc/control_box/UpdatePulsed(var/index) +/datum/wires/particle_acc/control_box/UpdatePulsed(index) var/obj/machinery/particle_accelerator/control_box/C = holder switch(index) @@ -30,7 +30,7 @@ var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be. if(PARTICLE_LIMIT_POWER_WIRE) C.visible_message("[bicon(C)][C] makes a large whirring noise.") -/datum/wires/particle_acc/control_box/UpdateCut(var/index, var/mended) +/datum/wires/particle_acc/control_box/UpdateCut(index, mended) var/obj/machinery/particle_accelerator/control_box/C = holder switch(index) diff --git a/code/datums/wires/radio.dm b/code/datums/wires/radio.dm index 6c2fb9713da..b1580d7f103 100644 --- a/code/datums/wires/radio.dm +++ b/code/datums/wires/radio.dm @@ -6,13 +6,13 @@ var/const/WIRE_SIGNAL = 1 var/const/WIRE_RECEIVE = 2 var/const/WIRE_TRANSMIT = 4 -/datum/wires/radio/CanUse(var/mob/living/L) +/datum/wires/radio/CanUse(mob/living/L) var/obj/item/device/radio/R = holder if(R.b_stat) return 1 return 0 -/datum/wires/radio/UpdatePulsed(var/index) +/datum/wires/radio/UpdatePulsed(index) var/obj/item/device/radio/R = holder switch(index) if(WIRE_SIGNAL) @@ -25,7 +25,7 @@ var/const/WIRE_TRANSMIT = 4 if(WIRE_TRANSMIT) R.broadcasting = !R.broadcasting && !IsIndexCut(WIRE_SIGNAL) -/datum/wires/radio/UpdateCut(var/index, var/mended) +/datum/wires/radio/UpdateCut(index, mended) var/obj/item/device/radio/R = holder switch(index) if(WIRE_SIGNAL) diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm index 082cdd9d6d6..e361805caef 100644 --- a/code/datums/wires/robot.dm +++ b/code/datums/wires/robot.dm @@ -19,16 +19,15 @@ var/const/BORG_WIRE_CAMERA = 4 var/const/BORG_WIRE_AI_CONTROL = 8 // Not used on MoMMIs var/const/BORG_WIRE_LAWCHECK = 16 // Not used on MoMMIs -/datum/wires/robot/GetInteractWindow() - +/datum/wires/robot/get_status() . = ..() var/mob/living/silicon/robot/R = holder - . += text("
\n[(R.lawupdate ? "The LawSync light is on." : "The LawSync light is off.")]
\n[(R.connected_ai ? "The AI link light is on." : "The AI link light is off.")]") - . += text("
\n[((!isnull(R.camera) && R.camera.status == 1) ? "The Camera light is on." : "The Camera light is off.")]
\n") - . += text("
\n[(R.lockcharge ? "The lockdown light is on." : "The lockdown light is off.")]") - return . + . += "The LawSync light is [R.lawupdate ? "on" : "off"]." + . += "The AI link light is [R.connected_ai ? "on" : "off"]." + . += "The Camera light is [(R.camera && R.camera.status == 1) ? "on" : "off"]." + . += "The lockdown light is [R.lockcharge ? "on" : "off"]." -/datum/wires/robot/UpdateCut(var/index, var/mended) +/datum/wires/robot/UpdateCut(index, mended) var/mob/living/silicon/robot/R = holder switch(index) @@ -59,7 +58,7 @@ var/const/BORG_WIRE_LAWCHECK = 16 // Not used on MoMMIs R.SetLockdown(!mended) -/datum/wires/robot/UpdatePulsed(var/index) +/datum/wires/robot/UpdatePulsed(index) var/mob/living/silicon/robot/R = holder switch(index) @@ -77,7 +76,7 @@ var/const/BORG_WIRE_LAWCHECK = 16 // Not used on MoMMIs if(BORG_WIRE_LOCKED_DOWN) R.SetLockdown(!R.lockcharge) // Toggle -/datum/wires/robot/CanUse(var/mob/living/L) +/datum/wires/robot/CanUse(mob/living/L) var/mob/living/silicon/robot/R = holder if(R.wiresexposed) return 1 diff --git a/code/datums/wires/smartfridge.dm b/code/datums/wires/smartfridge.dm index b611497e796..4c6a7c68637 100644 --- a/code/datums/wires/smartfridge.dm +++ b/code/datums/wires/smartfridge.dm @@ -10,9 +10,9 @@ var/const/SMARTFRIDGE_WIRE_ELECTRIFY = 1 var/const/SMARTFRIDGE_WIRE_THROW = 2 var/const/SMARTFRIDGE_WIRE_IDSCAN = 4 -/datum/wires/smartfridge/CanUse(var/mob/living/L) +/datum/wires/smartfridge/CanUse(mob/living/L) var/obj/machinery/smartfridge/S = holder - if(!istype(L, /mob/living/silicon)) + if(!issilicon(L)) if(S.seconds_electrified) if(S.shock(L, 100)) return 0 @@ -20,14 +20,14 @@ var/const/SMARTFRIDGE_WIRE_IDSCAN = 4 return 1 return 0 -/datum/wires/smartfridge/GetInteractWindow() +/datum/wires/smartfridge/get_status() + . = ..() var/obj/machinery/smartfridge/S = holder - . += ..() - . += "
The orange light is [S.seconds_electrified ? "off" : "on"].
" - . += "The red light is [S.shoot_inventory ? "off" : "blinking"].
" - . += "A [S.scan_id ? "purple" : "yellow"] light is on.
" + . += "The orange light is [S.seconds_electrified ? "off" : "on"]." + . += "The red light is [S.shoot_inventory ? "off" : "blinking"]." + . += "A [S.scan_id ? "purple" : "yellow"] light is on." -/datum/wires/smartfridge/UpdatePulsed(var/index) +/datum/wires/smartfridge/UpdatePulsed(index) var/obj/machinery/smartfridge/S = holder switch(index) if(SMARTFRIDGE_WIRE_THROW) @@ -37,7 +37,7 @@ var/const/SMARTFRIDGE_WIRE_IDSCAN = 4 if(SMARTFRIDGE_WIRE_IDSCAN) S.scan_id = !S.scan_id -/datum/wires/smartfridge/UpdateCut(var/index, var/mended) +/datum/wires/smartfridge/UpdateCut(index, mended) var/obj/machinery/smartfridge/S = holder switch(index) if(SMARTFRIDGE_WIRE_THROW) diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm index 3fa81883fce..b0a7b172727 100644 --- a/code/datums/wires/syndicatebomb.dm +++ b/code/datums/wires/syndicatebomb.dm @@ -10,13 +10,13 @@ var/const/WIRE_PROCEED = 8 // Lowers the timer, explodes if cut while the bomb var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if pulsed while already active, will stop a timer a bomb on cut -/datum/wires/syndicatebomb/CanUse(var/mob/living/L) +/datum/wires/syndicatebomb/CanUse(mob/living/L) var/obj/machinery/syndicatebomb/P = holder if(P.open_panel) return 1 return 0 -/datum/wires/syndicatebomb/UpdatePulsed(var/index) +/datum/wires/syndicatebomb/UpdatePulsed(index) var/obj/machinery/syndicatebomb/P = holder switch(index) if(WIRE_BOOM) @@ -48,7 +48,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if P.loc.visible_message("[bicon(holder)] The bomb seems to hesitate for a moment.") P.timer += 5 -/datum/wires/syndicatebomb/UpdateCut(var/index, var/mended) +/datum/wires/syndicatebomb/UpdateCut(index, mended) var/obj/machinery/syndicatebomb/P = holder switch(index) if(WIRE_EXPLODE) diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 574c7961e09..119c81272c6 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -9,7 +9,7 @@ var/const/VENDING_WIRE_CONTRABAND = 2 var/const/VENDING_WIRE_ELECTRIFY = 4 var/const/VENDING_WIRE_IDSCAN = 8 -/datum/wires/vending/CanUse(var/mob/living/L) +/datum/wires/vending/CanUse(mob/living/L) var/obj/machinery/vending/V = holder if(!istype(L, /mob/living/silicon)) if(V.seconds_electrified) @@ -19,15 +19,15 @@ var/const/VENDING_WIRE_IDSCAN = 8 return 1 return 0 -/datum/wires/vending/GetInteractWindow() +/datum/wires/vending/get_status() + . = ..() var/obj/machinery/vending/V = holder - . += ..() - . += "
The orange light is [V.seconds_electrified ? "on" : "off"].
" - . += "The red light is [V.shoot_inventory ? "off" : "blinking"].
" - . += "The green light is [(V.categories & CAT_HIDDEN) ? "on" : "off"].
" - . += "A [V.scan_id ? "purple" : "yellow"] light is on.
" + . += "The orange light is [V.seconds_electrified ? "on" : "off"]." + . += "The red light is [V.shoot_inventory ? "off" : "blinking"]." + . += "The green light is [(V.categories & CAT_HIDDEN) ? "on" : "off"]." + . += "A [V.scan_id ? "purple" : "yellow"] light is on." -/datum/wires/vending/UpdatePulsed(var/index) +/datum/wires/vending/UpdatePulsed(index) var/obj/machinery/vending/V = holder switch(index) if(VENDING_WIRE_THROW) @@ -39,7 +39,7 @@ var/const/VENDING_WIRE_IDSCAN = 8 if(VENDING_WIRE_IDSCAN) V.scan_id = !V.scan_id -/datum/wires/vending/UpdateCut(var/index, var/mended) +/datum/wires/vending/UpdateCut(index, mended) var/obj/machinery/vending/V = holder switch(index) if(VENDING_WIRE_THROW) diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index 6d8866640e4..afafc1737f4 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -26,7 +26,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown", var/window_x = 370 var/window_y = 470 -/datum/wires/New(var/atom/holder) +/datum/wires/New(atom/holder) ..() src.holder = holder if(!istype(holder, holder_type)) @@ -68,106 +68,97 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown", src.wires[colour] = index //wires = shuffle(wires) +/datum/wires/proc/get_status() + return list() -/datum/wires/proc/Interact(var/mob/living/user) +/datum/wires/proc/Interact(mob/living/user) + if(user && istype(user) && holder && CanUse(user)) + ui_interact(user) - var/html = null - if(holder && CanUse(user)) - html = GetInteractWindow() - if(html) - user.set_machine(holder) - else - user.unset_machine() - // No content means no window. - user << browse(null, "window=wires") - return - var/datum/browser/popup = new(user, "wires", holder.name, window_x, window_y) - popup.set_content(html) - popup.set_title_image(user.browse_rsc_icon(holder.icon, holder.icon_state)) - popup.open() +/datum/wires/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "wires.tmpl", holder.name, window_x, window_y) + ui.open() -/datum/wires/proc/GetInteractWindow() - var/html = "
" - html += "

Exposed Wires

" - html += "" +/datum/wires/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state) + var/data[0] + var/list/W[0] for(var/colour in wires) - html += "" - html += "[capitalize(colour)]" - html += "" - html += "[IsColourCut(colour) ? "Mend" : "Cut"]" - html += " Pulse" - html += " [IsAttached(colour) ? "Detach" : "Attach"] Signaller" - html += "" - html += "
" + W[++W.len] = list("colour" = capitalize(colour), "cut" = IsColourCut(colour), "attached" = IsAttached(colour)) - return html + if(W.len > 0) + data["wires"] = W + + var/list/status = get_status() + data["status_len"] = status.len + data["status"] = status + + return data + +/datum/wires/nano_host() + return holder /datum/wires/Topic(href, href_list) - ..() + if(..()) + return 1 + if(in_range(holder, usr) && isliving(usr)) var/mob/living/L = usr if(CanUse(L) && href_list["action"]) var/obj/item/I = L.get_active_hand() + var/colour = lowertext(href_list["wire"]) holder.add_hiddenprint(L) - if(href_list["cut"]) // Toggles the cut/mend status - if(istype(I, /obj/item/weapon/wirecutters)) - playsound(holder, 'sound/items/Wirecutter.ogg', 20, 1) - var/colour = href_list["cut"] - CutWireColour(colour) - else - to_chat(L, "You need wirecutters!") - - else if(href_list["pulse"]) - if(istype(I, /obj/item/device/multitool)) - playsound(holder, 'sound/weapons/empty.ogg', 20, 1) - var/colour = href_list["pulse"] - PulseColour(colour) - else - to_chat(L, "You need a multitool!") - - else if(href_list["attach"]) - var/colour = href_list["attach"] - // Detach - if(IsAttached(colour)) - var/obj/item/O = Detach(colour) - if(O) - L.put_in_hands(O) - - // Attach - else - if(istype(I, /obj/item/device/assembly/signaler)) - L.drop_item() - Attach(colour, I) + switch(href_list["action"]) + if("cut") // Toggles the cut/mend status + if(istype(I, /obj/item/weapon/wirecutters)) + playsound(holder, 'sound/items/Wirecutter.ogg', 20, 1) + CutWireColour(colour) else - to_chat(L, "You need a remote signaller!") + to_chat(L, "You need wirecutters!") + if("pulse") + if(istype(I, /obj/item/device/multitool)) + playsound(holder, 'sound/weapons/empty.ogg', 20, 1) + PulseColour(colour) + else + to_chat(L, "You need a multitool!") + if("attach") + if(IsAttached(colour)) + var/obj/item/O = Detach(colour) + if(O) + L.put_in_hands(O) + else + if(istype(I, /obj/item/device/assembly/signaler)) + L.drop_item() + Attach(colour, I) + else + to_chat(L, "You need a remote signaller!") - - - - // Update Window - Interact(usr) - - if(href_list["close"]) - usr << browse(null, "window=wires") - usr.unset_machine(holder) + nanomanager.update_uis(src) + return 1 // // Overridable Procs // // Called when wires cut/mended. -/datum/wires/proc/UpdateCut(var/index, var/mended) +/datum/wires/proc/UpdateCut(index, mended) return // Called when wire pulsed. Add code here. -/datum/wires/proc/UpdatePulsed(var/index) +/datum/wires/proc/UpdatePulsed(index) return -/datum/wires/proc/CanUse(var/mob/living/L) +/datum/wires/proc/CanUse(mob/living/L) return 1 +/datum/wires/CanUseTopic(mob/user, datum/topic_state/state) + if(!CanUse(user)) + return STATUS_CLOSE + return ..() + // Example of use: /* @@ -194,15 +185,15 @@ var/const/POWER = 8 // Helper Procs // -/datum/wires/proc/PulseColour(var/colour) +/datum/wires/proc/PulseColour(colour) PulseIndex(GetIndex(colour)) -/datum/wires/proc/PulseIndex(var/index) +/datum/wires/proc/PulseIndex(index) if(IsIndexCut(index)) return UpdatePulsed(index) -/datum/wires/proc/GetIndex(var/colour) +/datum/wires/proc/GetIndex(colour) if(wires[colour]) var/index = wires[colour] return index @@ -213,28 +204,28 @@ var/const/POWER = 8 // Is Index/Colour Cut procs // -/datum/wires/proc/IsColourCut(var/colour) +/datum/wires/proc/IsColourCut(colour) var/index = GetIndex(colour) return IsIndexCut(index) -/datum/wires/proc/IsIndexCut(var/index) +/datum/wires/proc/IsIndexCut(index) return (index & wires_status) // // Signaller Procs // -/datum/wires/proc/IsAttached(var/colour) +/datum/wires/proc/IsAttached(colour) if(signallers[colour]) return 1 return 0 -/datum/wires/proc/GetAttached(var/colour) +/datum/wires/proc/GetAttached(colour) if(signallers[colour]) return signallers[colour] return null -/datum/wires/proc/Attach(var/colour, var/obj/item/device/assembly/signaler/S) +/datum/wires/proc/Attach(colour, obj/item/device/assembly/signaler/S) if(colour && S) if(!IsAttached(colour)) signallers[colour] = S @@ -242,7 +233,7 @@ var/const/POWER = 8 S.connected = src return S -/datum/wires/proc/Detach(var/colour) +/datum/wires/proc/Detach(colour) if(colour) var/obj/item/device/assembly/signaler/S = GetAttached(colour) if(S) @@ -252,7 +243,7 @@ var/const/POWER = 8 return S -/datum/wires/proc/Pulse(var/obj/item/device/assembly/signaler/S) +/datum/wires/proc/Pulse(obj/item/device/assembly/signaler/S) for(var/colour in signallers) if(S == signallers[colour]) @@ -264,11 +255,11 @@ var/const/POWER = 8 // Cut Wire Colour/Index procs // -/datum/wires/proc/CutWireColour(var/colour) +/datum/wires/proc/CutWireColour(colour) var/index = GetIndex(colour) CutWireIndex(index) -/datum/wires/proc/CutWireIndex(var/index) +/datum/wires/proc/CutWireIndex(index) if(IsIndexCut(index)) wires_status &= ~index UpdateCut(index, 1) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 419ba6cc5bc..ff1389067bd 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -180,11 +180,6 @@ var/global/list/default_medbay_channels = list( /mob/dead/observer/has_internal_radio_channel_access(var/mob/user, var/list/req_one_accesses) return can_admin_interact() -/obj/item/device/radio/proc/text_wires() - if(b_stat) - return wires.GetInteractWindow() - return - /obj/item/device/radio/proc/ToggleBroadcast() broadcasting = !broadcasting && !(wires.IsIndexCut(WIRE_TRANSMIT) || wires.IsIndexCut(WIRE_SIGNAL)) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 14f7030243e..ef0be0f4568 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -311,7 +311,7 @@ else dat += "Removed
" - dat += wires.GetInteractWindow() + wires.ui_interact(user) else dat += "
The bot is in maintenance mode and cannot be controlled.

" diff --git a/nano/templates/wires.tmpl b/nano/templates/wires.tmpl new file mode 100644 index 00000000000..cce49b84f95 --- /dev/null +++ b/nano/templates/wires.tmpl @@ -0,0 +1,24 @@ +
+ + {{for data.wires}} + + + + {{/for}} +
{{:value.colour}} + + {{:helper.link(value.cut ? 'Mend' : 'Cut', null, {'action' : 'cut', 'wire' : value.colour})}} + {{:helper.link('Pulse', null, {'action' : 'pulse', 'wire' : value.colour})}} + {{:helper.link(value.attached ? 'Detach' : 'Attach', null, {'action' : 'attach', 'wire' : value.colour})}} +
+
+{{if data.status_len}} +
+
+
+ {{for data.status}} +
{{:value}}
+ {{/for}} +
+
+{{/if}} From 26bfc2c1b7d7d56b92956db11bfc934a60f30705 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Sat, 25 Feb 2017 22:16:12 -0800 Subject: [PATCH 09/83] Removes IPC gender --- code/game/dna/dna2.dm | 7 +- code/game/dna/dna2_helpers.dm | 10 ++- code/modules/client/preference/preferences.dm | 83 ++++++++++--------- .../client/preference/preferences_mysql.dm | 3 +- .../mob/living/carbon/human/examine.dm | 10 ++- .../living/carbon/human/species/species.dm | 1 + .../living/carbon/human/species/station.dm | 1 + 7 files changed, 70 insertions(+), 45 deletions(-) diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 82f7ffb2e93..4ed84d9924e 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -135,6 +135,7 @@ var/global/list/bad_blocks[0] // FIXME: Species-specific defaults pls var/obj/item/organ/external/head/H = character.get_organ("head") var/obj/item/organ/internal/eyes/eyes_organ = character.get_int_organ(/obj/item/organ/internal/eyes) + var/datum/species/S = character.species /*// Body Accessory if(!character.body_accessory) @@ -170,7 +171,11 @@ var/global/list/bad_blocks[0] SetUIValueRange(DNA_UI_SKIN_TONE, 35-character.s_tone, 220, 1) // Value can be negative. - SetUIState(DNA_UI_GENDER, character.gender!=MALE, 1) + if(S.has_gender) + SetUIState(DNA_UI_GENDER, character.gender!=MALE, 1) + else + SetUIState(DNA_UI_GENDER, pick(0,1), 1) + /*SetUIValueRange(DNA_UI_BACC_STYLE, bodyacc, facial_hair_styles_list.len, 1)*/ SetUIValueRange(DNA_UI_HEAD_MARK_STYLE, head_marks, marking_styles_list.len, 1) SetUIValueRange(DNA_UI_BODY_MARK_STYLE, body_marks, marking_styles_list.len, 1) diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index c92b75cafc0..743a8ebbe5c 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -132,6 +132,7 @@ dna.check_integrity() var/mob/living/carbon/human/H = src var/obj/item/organ/external/head/head_organ = H.get_organ("head") + var/datum/species/S = H.species dna.write_head_attributes(head_organ) H.r_skin = dna.GetUIValueRange(DNA_UI_SKIN_R, 255) @@ -144,10 +145,11 @@ H.s_tone = 35 - dna.GetUIValueRange(DNA_UI_SKIN_TONE, 220) // Value can be negative. - if(dna.GetUIState(DNA_UI_GENDER)) - H.change_gender(FEMALE, 0) - else - H.change_gender(MALE, 0) + if(S.has_gender) + if(dna.GetUIState(DNA_UI_GENDER)) + H.change_gender(FEMALE, 0) + else + H.change_gender(MALE, 0) //Head Markings var/head_marks = dna.GetUIValueRange(DNA_UI_HEAD_MARK_STYLE, marking_styles_list.len) diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 15af19c19e4..73d099c7cdc 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -246,6 +246,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(!user || !user.client) return update_preview_icon() + var/datum/species/S = all_species[species] user << browse_rsc(preview_icon_front, "previewicon.png") user << browse_rsc(preview_icon_side, "previewicon2.png") @@ -279,7 +280,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "You are banned from using custom names and appearances. \ You can continue to adjust your characters, but you will be randomised once you join the game.\
" - dat += "Gender: [gender == MALE ? "Male" : "Female"]
" + if(S.has_gender) + dat += "Gender: [gender == MALE ? "Male" : "Female"]" + dat += "
" dat += "Age: [age]
" dat += "Body: (®)
" dat += "Species: [species]
" @@ -1031,6 +1034,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts /datum/preferences/proc/process_link(mob/user, list/href_list) if(!user) return + var/datum/species/S = all_species[species] if(href_list["preference"] == "job") switch(href_list["task"]) if("close") @@ -1266,9 +1270,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts // var/whitelisted = 0 if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it! - for(var/S in whitelisted_species) - if(is_alien_whitelisted(user,S)) - new_species += S + for(var/Spec in whitelisted_species) + if(is_alien_whitelisted(user,Spec)) + new_species += Spec // whitelisted = 1 // if(!whitelisted) // alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.") @@ -1276,8 +1280,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts new_species += whitelisted_species species = input("Please select a species", "Character Generation", null) in new_species - + var/datum/species/NS = all_species[species] if(prev_species != species) + if(S.has_gender != NS.has_gender) + gender = (NS.has_gender ? pick(MALE,FEMALE) : PLURAL) var/datum/robolimb/robohead if(species == "Machine") var/head_model = "[!rlimb_data["head"] ? "Morpheus Cyberkinetics" : rlimb_data["head"]]" @@ -1315,16 +1321,16 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts m_colours["tail"] = "#000000" // Don't wear another species' underwear! - var/datum/sprite_accessory/S = underwear_list[underwear] - if(!S || !(species in S.species_allowed)) + var/datum/sprite_accessory/SA = underwear_list[underwear] + if(!SA || !(species in SA.species_allowed)) underwear = random_underwear(gender, species) - S = undershirt_list[undershirt] - if(!S || !(species in S.species_allowed)) + SA = undershirt_list[undershirt] + if(!SA || !(species in SA.species_allowed)) undershirt = random_undershirt(gender, species) - S = socks_list[socks] - if(!S || !(species in S.species_allowed)) + SA = socks_list[socks] + if(!SA || !(species in SA.species_allowed)) socks = random_socks(gender, species) //reset skin tone and colour @@ -1402,7 +1408,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("h_style") var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) - var/datum/sprite_accessory/S = hair_styles_list[hairstyle] + var/datum/sprite_accessory/SA = hair_styles_list[hairstyle] if(hairstyle == "Bald") //Just in case. valid_hairstyles += hairstyle @@ -1414,14 +1420,14 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts else head_model = rlimb_data["head"] var/datum/robolimb/robohead = all_robolimbs[head_model] - if((species in S.species_allowed) && robohead.is_monitor && ((S.models_allowed && (robohead.company in S.models_allowed)) || !S.models_allowed)) //If this is a hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. + if((species in SA.species_allowed) && robohead.is_monitor && ((SA.models_allowed && (robohead.company in SA.models_allowed)) || !SA.models_allowed)) //If this is a hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. valid_hairstyles += hairstyle //Give them their hairstyles if they do. else - if(!robohead.is_monitor && ("Human" in S.species_allowed)) /*If the hairstyle is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it. + if(!robohead.is_monitor && ("Human" in SA.species_allowed)) /*If the hairstyle is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it. But if the user has a robotic humanoid head and the hairstyle can fit humans, let them use it as a wig. */ valid_hairstyles += hairstyle else //If the user is not a species who can have robotic heads, use the default handling. - if(species in S.species_allowed) //If the user's head is of a species the hairstyle allows, add it to the list. + if(species in SA.species_allowed) //If the user's head is of a species the hairstyle allows, add it to the list. valid_hairstyles += hairstyle var/new_h_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in valid_hairstyles @@ -1609,14 +1615,14 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("f_style") var/list/valid_facial_hairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) - var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] + var/datum/sprite_accessory/SA = facial_hair_styles_list[facialhairstyle] if(facialhairstyle == "Shaved") //Just in case. valid_facial_hairstyles += facialhairstyle continue - if(gender == MALE && S.gender == FEMALE) + if(gender == MALE && SA.gender == FEMALE) continue - if(gender == FEMALE && S.gender == MALE) + if(gender == FEMALE && SA.gender == MALE) continue if(species == "Machine") //Species that can use prosthetic heads. var/head_model @@ -1625,14 +1631,14 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts else head_model = rlimb_data["head"] var/datum/robolimb/robohead = all_robolimbs[head_model] - if((species in S.species_allowed) && robohead.is_monitor && ((S.models_allowed && (robohead.company in S.models_allowed)) || !S.models_allowed)) //If this is a facial hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. + if((species in SA.species_allowed) && robohead.is_monitor && ((SA.models_allowed && (robohead.company in SA.models_allowed)) || !SA.models_allowed)) //If this is a facial hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. valid_facial_hairstyles += facialhairstyle //Give them their facial hairstyles if they do. else - if(!robohead.is_monitor && ("Human" in S.species_allowed)) /*If the facial hairstyle is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it. + if(!robohead.is_monitor && ("Human" in SA.species_allowed)) /*If the facial hairstyle is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it. But if the user has a robotic humanoid head and the facial hairstyle can fit humans, let them use it as a wig. */ valid_facial_hairstyles += facialhairstyle else //If the user is not a species who can have robotic heads, use the default handling. - if(species in S.species_allowed) //If the user's head is of a species the facial hair style allows, add it to the list. + if(species in SA.species_allowed) //If the user's head is of a species the facial hair style allows, add it to the list. valid_facial_hairstyles += facialhairstyle var/new_f_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in valid_facial_hairstyles @@ -1642,12 +1648,12 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("underwear") var/list/valid_underwear = list() for(var/underwear in underwear_list) - var/datum/sprite_accessory/S = underwear_list[underwear] - if(gender == MALE && S.gender == FEMALE) + var/datum/sprite_accessory/SA = underwear_list[underwear] + if(gender == MALE && SA.gender == FEMALE) continue - if(gender == FEMALE && S.gender == MALE) + if(gender == FEMALE && SA.gender == MALE) continue - if(!(species in S.species_allowed)) + if(!(species in SA.species_allowed)) continue valid_underwear[underwear] = underwear_list[underwear] var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in valid_underwear @@ -1657,12 +1663,12 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("undershirt") var/list/valid_undershirts = list() for(var/undershirt in undershirt_list) - var/datum/sprite_accessory/S = undershirt_list[undershirt] - if(gender == MALE && S.gender == FEMALE) + var/datum/sprite_accessory/SA = undershirt_list[undershirt] + if(gender == MALE && SA.gender == FEMALE) continue - if(gender == FEMALE && S.gender == MALE) + if(gender == FEMALE && SA.gender == MALE) continue - if(!(species in S.species_allowed)) + if(!(species in SA.species_allowed)) continue valid_undershirts[undershirt] = undershirt_list[undershirt] var/new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in valid_undershirts @@ -1673,12 +1679,12 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("socks") var/list/valid_sockstyles = list() for(var/sockstyle in socks_list) - var/datum/sprite_accessory/S = socks_list[sockstyle] - if(gender == MALE && S.gender == FEMALE) + var/datum/sprite_accessory/SA = socks_list[sockstyle] + if(gender == MALE && SA.gender == FEMALE) continue - if(gender == FEMALE && S.gender == MALE) + if(gender == FEMALE && SA.gender == MALE) continue - if(!(species in S.species_allowed)) + if(!(species in SA.species_allowed)) continue valid_sockstyles[sockstyle] = socks_list[sockstyle] var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in valid_sockstyles @@ -1909,10 +1915,13 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts toggles ^= DONATOR_PUBLIC if("gender") - if(gender == MALE) - gender = FEMALE + if(!S.has_gender) + gender = PLURAL else - gender = MALE + if(gender == MALE) + gender = FEMALE + else + gender = MALE underwear = random_underwear(gender) if("hear_adminhelps") @@ -2155,7 +2164,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts character.backbag = backbag //Debugging report to track down a bug, which randomly assigned the plural gender to people. - if(character.gender in list(PLURAL, NEUTER)) + if(S.has_gender && (character.gender in list(PLURAL, NEUTER))) if(isliving(src)) //Ghosts get neuter by default message_admins("[key_name_admin(character)] has spawned with their gender as plural or neuter. Please notify coders.") character.change_gender(MALE) diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm index a945af5ba2f..8521323fa28 100644 --- a/code/modules/client/preference/preferences_mysql.dm +++ b/code/modules/client/preference/preferences_mysql.dm @@ -270,6 +270,7 @@ gear = params2list(query.item[65]) //Sanitize + var/datum/species/SP = all_species[species] metadata = sanitize_text(metadata, initial(metadata)) real_name = reject_bad_name(real_name, 1) if(isnull(species)) species = "Human" @@ -278,7 +279,7 @@ if(isnull(speciesprefs)) speciesprefs = initial(speciesprefs) if(!real_name) real_name = random_name(gender,species) be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name)) - gender = sanitize_gender(gender) + gender = sanitize_gender(gender, FALSE, !SP.has_gender) age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) r_hair = sanitize_integer(r_hair, 0, 255, initial(r_hair)) g_hair = sanitize_integer(g_hair, 0, 255, initial(g_hair)) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index ffd759b3295..93d9a49d6df 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -33,7 +33,7 @@ var/msg = "*---------*\nThis is " - if(skipjumpsuit && skipface) //big suits/masks/helmets make it hard to tell their gender + if((skipjumpsuit && skipface)) //big suits/masks/helmets make it hard to tell their gender t_He = "They" t_his = "their" t_him = "them" @@ -51,6 +51,12 @@ t_He = "She" t_his = "her" t_him = "her" + if(PLURAL) + t_He = "They" + t_his = "their" + t_him = "them" + t_has = "have" + t_is = "are" msg += "[name]" @@ -494,7 +500,7 @@ msg += "Medical records: \[View\] \[Add comment\]\n" - if(print_flavor_text() && !skipface) + if(print_flavor_text() && !skipface) msg += "[print_flavor_text()]\n" msg += "*---------*" diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 54f68f2b101..1ff322b8cc3 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -110,6 +110,7 @@ var/show_ssd = 1 var/virus_immune var/can_revive_by_healing // Determines whether or not this species can be revived by simply healing them + var/has_gender = TRUE //Death vars. var/death_message = "seizes up and falls limp, their eyes dead and lifeless..." diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 34a9a3e0b4c..5fae18cb390 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -887,6 +887,7 @@ default_hair = "Blue IPC Screen" virus_immune = 1 can_revive_by_healing = 1 + has_gender = FALSE reagent_tag = PROCESS_SYN male_scream_sound = 'sound/goonstation/voice/robot_scream.ogg' female_scream_sound = 'sound/goonstation/voice/robot_scream.ogg' From bf45dd3cad535f60195b688e5ee95221cbc0d9f8 Mon Sep 17 00:00:00 2001 From: davipatury Date: Sun, 26 Feb 2017 15:23:56 -0300 Subject: [PATCH 10/83] Updates holder ui when pulsed/cut. --- code/datums/wires/airlock.dm | 5 ++++- code/datums/wires/alarm.dm | 2 ++ code/datums/wires/apc.dm | 4 ++-- code/datums/wires/autolathe.dm | 15 ++++++++++++--- code/datums/wires/camera.dm | 4 ++-- code/datums/wires/explosive.dm | 2 ++ code/datums/wires/mulebot.dm | 1 + code/datums/wires/nuclearbomb.dm | 21 ++++++++++++++------- code/datums/wires/particle_accelerator.dm | 4 +++- code/datums/wires/radio.dm | 2 ++ code/datums/wires/robot.dm | 2 ++ code/datums/wires/smartfridge.dm | 2 ++ code/datums/wires/syndicatebomb.dm | 6 ++++-- code/datums/wires/vending.dm | 4 +++- code/datums/wires/wires.dm | 6 ++++-- 15 files changed, 59 insertions(+), 21 deletions(-) diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index a464f71d86b..51369836e2f 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -113,6 +113,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 if(AIRLOCK_WIRE_LIGHT) A.lights = mended A.update_icon() + ..() /datum/wires/airlock/UpdatePulsed(index) @@ -176,4 +177,6 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 if(AIRLOCK_WIRE_LIGHT) A.lights = !A.lights - A.update_icon() \ No newline at end of file + A.update_icon() + + ..() \ No newline at end of file diff --git a/code/datums/wires/alarm.dm b/code/datums/wires/alarm.dm index e087fcc9578..46f7c6cc885 100644 --- a/code/datums/wires/alarm.dm +++ b/code/datums/wires/alarm.dm @@ -52,6 +52,7 @@ var/const/AALARM_WIRE_AALARM = 16 if(A.alarm_area.atmosalert(2, A)) A.post_alert(2) A.update_icon() + ..() /datum/wires/alarm/UpdatePulsed(index) var/obj/machinery/alarm/A = holder @@ -94,3 +95,4 @@ var/const/AALARM_WIRE_AALARM = 16 if(A.alarm_area.atmosalert(0, A)) A.post_alert(0) A.update_icon() + ..() diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm index 5f8d423557d..26f8dd61f59 100644 --- a/code/datums/wires/apc.dm +++ b/code/datums/wires/apc.dm @@ -53,7 +53,7 @@ var/const/APC_WIRE_AI_CONTROL = 8 A.aidisabled = 0 A.updateDialog() - A.updateDialog() + ..() /datum/wires/apc/UpdateCut(index, mended) var/obj/machinery/power/apc/A = holder @@ -77,4 +77,4 @@ var/const/APC_WIRE_AI_CONTROL = 8 else if(A.aidisabled == 1) A.aidisabled = 0 - A.updateDialog() \ No newline at end of file + ..() \ No newline at end of file diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index 204082cb12c..29013f73e5e 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -28,6 +28,7 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4 A.shocked = !mended if(AUTOLATHE_DISABLE_WIRE) A.disabled = !mended + ..() /datum/wires/autolathe/UpdatePulsed(index) if(IsIndexCut(index)) @@ -36,19 +37,27 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4 switch(index) if(AUTOLATHE_HACK_WIRE) A.adjust_hacked(!A.hacked) + updateUIs() spawn(50) if(A && !IsIndexCut(index)) A.adjust_hacked(0) - Interact(usr) + updateUIs() if(AUTOLATHE_SHOCK_WIRE) A.shocked = !A.shocked + updateUIs() spawn(50) if(A && !IsIndexCut(index)) A.shocked = 0 - Interact(usr) + updateUIs() if(AUTOLATHE_DISABLE_WIRE) A.disabled = !A.disabled + updateUIs() spawn(50) if(A && !IsIndexCut(index)) A.disabled = 0 - Interact(usr) + updateUIs() + +/datum/wires/autolathe/proc/updateUIs() + nanomanager.update_uis(src) + if(holder) + nanomanager.update_uis(holder) \ No newline at end of file diff --git a/code/datums/wires/camera.dm b/code/datums/wires/camera.dm index a90c2aeaf79..0eb7e7ec577 100644 --- a/code/datums/wires/camera.dm +++ b/code/datums/wires/camera.dm @@ -46,7 +46,7 @@ var/const/CAMERA_WIRE_NOTHING2 = 32 C.triggerCameraAlarm() else C.cancelCameraAlarm() - return + ..() /datum/wires/camera/UpdatePulsed(index) var/obj/machinery/camera/C = holder @@ -65,7 +65,7 @@ var/const/CAMERA_WIRE_NOTHING2 = 32 if(CAMERA_WIRE_ALARM) C.visible_message("[bicon(C)] *beep*", "[bicon(C)] *beep*") - return + ..() /datum/wires/camera/proc/CanDeconstruct() if(IsIndexCut(CAMERA_WIRE_POWER) && IsIndexCut(CAMERA_WIRE_FOCUS) && IsIndexCut(CAMERA_WIRE_LIGHT) && IsIndexCut(CAMERA_WIRE_NOTHING1) && IsIndexCut(CAMERA_WIRE_NOTHING2)) diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index 16e418a3625..f6cce8e223a 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -10,12 +10,14 @@ var/const/WIRE_EXPLODE = 1 switch(index) if(WIRE_EXPLODE) explode() + ..() /datum/wires/explosive/UpdateCut(index, mended) switch(index) if(WIRE_EXPLODE) if(!mended) explode() + ..() /datum/wires/explosive/gibtonite holder_type = /obj/item/weapon/twohanded/required/gibtonite diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm index d8b70f436d7..777a3ca05dc 100644 --- a/code/datums/wires/mulebot.dm +++ b/code/datums/wires/mulebot.dm @@ -31,6 +31,7 @@ var/const/WIRE_BEACON_RX = 256 // beacon ping recv holder.visible_message("\blue [bicon(holder)] The drive motor whines briefly.") else holder.visible_message("\blue [bicon(holder)] You hear a radio crackle.") + ..() // HELPER PROCS diff --git a/code/datums/wires/nuclearbomb.dm b/code/datums/wires/nuclearbomb.dm index f8bad15f11b..fcf28b96130 100644 --- a/code/datums/wires/nuclearbomb.dm +++ b/code/datums/wires/nuclearbomb.dm @@ -25,15 +25,17 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4 switch(index) if(NUCLEARBOMB_WIRE_LIGHT) N.lighthack = !N.lighthack + updateUIs() spawn(100) N.lighthack = !N.lighthack + updateUIs() if(NUCLEARBOMB_WIRE_TIMING) if(N.timing) - spawn - message_admins("[key_name_admin(usr)] pulsed a nuclear bomb's detonation wire, causing it to explode (JMP)") - N.explode() + message_admins("[key_name_admin(usr)] pulsed a nuclear bomb's detonation wire, causing it to explode (JMP)") + N.explode() if(NUCLEARBOMB_WIRE_SAFETY) N.safety = !N.safety + updateUIs() spawn(100) N.safety = !N.safety if(N.safety == 1) @@ -45,15 +47,15 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4 N.icon_state = "nuclearbomb1" else N.visible_message("\blue The [N] emits a quiet whirling noise!") + updateUIs() -/datum/wires/nuclearbomb/UpdateCut(var/index, var/mended) +/datum/wires/nuclearbomb/UpdateCut(index, mended) var/obj/machinery/nuclearbomb/N = holder switch(index) if(NUCLEARBOMB_WIRE_SAFETY) if(N.timing) - spawn - message_admins("[key_name_admin(usr)] cut a nuclear bomb's timing wire, causing it to explode (JMP)") - N.explode() + message_admins("[key_name_admin(usr)] cut a nuclear bomb's timing wire, causing it to explode (JMP)") + N.explode() if(NUCLEARBOMB_WIRE_TIMING) if(!N.lighthack) if(N.icon_state == "nuclearbomb2") @@ -62,3 +64,8 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4 bomb_set = 0 if(NUCLEARBOMB_WIRE_LIGHT) N.lighthack = !N.lighthack + +/datum/wires/nuclearbomb/proc/updateUIs() + nanomanager.update_uis(src) + if(holder) + nanomanager.update_uis(holder) \ No newline at end of file diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm index f7bf79976dd..463f6883c4a 100644 --- a/code/datums/wires/particle_accelerator.dm +++ b/code/datums/wires/particle_accelerator.dm @@ -29,6 +29,7 @@ var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be. if(PARTICLE_LIMIT_POWER_WIRE) C.visible_message("[bicon(C)][C] makes a large whirring noise.") + ..() /datum/wires/particle_acc/control_box/UpdateCut(index, mended) var/obj/machinery/particle_accelerator/control_box/C = holder @@ -49,4 +50,5 @@ var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be. if(PARTICLE_LIMIT_POWER_WIRE) C.strength_upper_limit = (mended ? 2 : 3) if(C.strength_upper_limit < C.strength) - C.remove_strength() \ No newline at end of file + C.remove_strength() + ..() \ No newline at end of file diff --git a/code/datums/wires/radio.dm b/code/datums/wires/radio.dm index b1580d7f103..f947a9d84cc 100644 --- a/code/datums/wires/radio.dm +++ b/code/datums/wires/radio.dm @@ -24,6 +24,7 @@ var/const/WIRE_TRANSMIT = 4 if(WIRE_TRANSMIT) R.broadcasting = !R.broadcasting && !IsIndexCut(WIRE_SIGNAL) + ..() /datum/wires/radio/UpdateCut(index, mended) var/obj/item/device/radio/R = holder @@ -37,3 +38,4 @@ var/const/WIRE_TRANSMIT = 4 if(WIRE_TRANSMIT) R.broadcasting = mended && !IsIndexCut(WIRE_SIGNAL) + ..() diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm index e361805caef..468589dce93 100644 --- a/code/datums/wires/robot.dm +++ b/code/datums/wires/robot.dm @@ -56,6 +56,7 @@ var/const/BORG_WIRE_LAWCHECK = 16 // Not used on MoMMIs if(BORG_WIRE_LOCKED_DOWN) R.SetLockdown(!mended) + ..() /datum/wires/robot/UpdatePulsed(index) @@ -75,6 +76,7 @@ var/const/BORG_WIRE_LAWCHECK = 16 // Not used on MoMMIs if(BORG_WIRE_LOCKED_DOWN) R.SetLockdown(!R.lockcharge) // Toggle + ..() /datum/wires/robot/CanUse(mob/living/L) var/mob/living/silicon/robot/R = holder diff --git a/code/datums/wires/smartfridge.dm b/code/datums/wires/smartfridge.dm index 4c6a7c68637..51ae8e95bf8 100644 --- a/code/datums/wires/smartfridge.dm +++ b/code/datums/wires/smartfridge.dm @@ -36,6 +36,7 @@ var/const/SMARTFRIDGE_WIRE_IDSCAN = 4 S.seconds_electrified = 30 if(SMARTFRIDGE_WIRE_IDSCAN) S.scan_id = !S.scan_id + ..() /datum/wires/smartfridge/UpdateCut(index, mended) var/obj/machinery/smartfridge/S = holder @@ -49,3 +50,4 @@ var/const/SMARTFRIDGE_WIRE_IDSCAN = 4 S.seconds_electrified = -1 if(SMARTFRIDGE_WIRE_IDSCAN) S.scan_id = 1 + ..() diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm index b0a7b172727..51f460ff29e 100644 --- a/code/datums/wires/syndicatebomb.dm +++ b/code/datums/wires/syndicatebomb.dm @@ -47,6 +47,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if else P.loc.visible_message("[bicon(holder)] The bomb seems to hesitate for a moment.") P.timer += 5 + ..() /datum/wires/syndicatebomb/UpdateCut(index, mended) var/obj/machinery/syndicatebomb/P = holder @@ -58,7 +59,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if P.timer = 0 else P.defused = 1 - if(mended) + else P.defused = 0 //cutting and mending all the wires of an inactive bomb will thus cure any sabotage if(WIRE_UNBOLT) if(!mended && P.anchored) @@ -74,4 +75,5 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if P.loc.visible_message("[bicon(holder)] The timer stops! The bomb has been defused!") P.icon_state = "[initial(P.icon_state)]-inactive[P.open_panel ? "-wires" : ""]" P.active = 0 - P.defused = 1 \ No newline at end of file + P.defused = 1 + ..() \ No newline at end of file diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 119c81272c6..98efe4136e2 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -38,6 +38,7 @@ var/const/VENDING_WIRE_IDSCAN = 8 V.seconds_electrified = 30 if(VENDING_WIRE_IDSCAN) V.scan_id = !V.scan_id + ..() /datum/wires/vending/UpdateCut(index, mended) var/obj/machinery/vending/V = holder @@ -52,4 +53,5 @@ var/const/VENDING_WIRE_IDSCAN = 8 else V.seconds_electrified = -1 if(VENDING_WIRE_IDSCAN) - V.scan_id = 1 \ No newline at end of file + V.scan_id = 1 + ..() \ No newline at end of file diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index afafc1737f4..9558ea56e1b 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -145,11 +145,13 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown", // Called when wires cut/mended. /datum/wires/proc/UpdateCut(index, mended) - return + if(holder) + nanomanager.update_uis(holder) // Called when wire pulsed. Add code here. /datum/wires/proc/UpdatePulsed(index) - return + if(holder) + nanomanager.update_uis(holder) /datum/wires/proc/CanUse(mob/living/L) return 1 From 6ec6c90aad230aabc2b53f387f5de967ed0576e7 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Sun, 26 Feb 2017 05:30:36 -0800 Subject: [PATCH 11/83] Allows IPCs to express themselves as a gender again --- code/modules/client/preference/preferences.dm | 17 +++++++++++------ .../mob/living/carbon/human/appearance.dm | 4 ++-- code/modules/mob/living/carbon/human/human.dm | 3 +++ code/modules/nano/modules/human_appearance.dm | 1 + nano/templates/appearance_changer.tmpl | 3 +++ 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 73d099c7cdc..19bf5d26966 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -246,7 +246,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(!user || !user.client) return update_preview_icon() - var/datum/species/S = all_species[species] user << browse_rsc(preview_icon_front, "previewicon.png") user << browse_rsc(preview_icon_side, "previewicon2.png") @@ -280,8 +279,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "You are banned from using custom names and appearances. \ You can continue to adjust your characters, but you will be randomised once you join the game.\
" - if(S.has_gender) - dat += "Gender: [gender == MALE ? "Male" : "Female"]" + dat += "Gender: [gender == MALE ? "Male" : (gender == FEMALE ? "Female" : "Genderless")]" dat += "
" dat += "Age: [age]
" dat += "Body: (®)
" @@ -1282,8 +1280,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts species = input("Please select a species", "Character Generation", null) in new_species var/datum/species/NS = all_species[species] if(prev_species != species) - if(S.has_gender != NS.has_gender) - gender = (NS.has_gender ? pick(MALE,FEMALE) : PLURAL) + if(NS.has_gender && gender == PLURAL) + gender = pick(MALE,FEMALE) var/datum/robolimb/robohead if(species == "Machine") var/head_model = "[!rlimb_data["head"] ? "Morpheus Cyberkinetics" : rlimb_data["head"]]" @@ -1916,7 +1914,14 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("gender") if(!S.has_gender) - gender = PLURAL + var/newgender = input(user, "Choose Gender:") as null|anything in list("Male", "Female", "Genderless") + switch(newgender) + if("Male") + gender = MALE + if("Female") + gender = FEMALE + if("Genderless") + gender = PLURAL else if(gender == MALE) gender = FEMALE diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index ad1ab28c435..3cedf2d1f3f 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -16,7 +16,7 @@ /mob/living/carbon/human/proc/change_gender(var/new_gender, var/update_dna = 1) var/obj/item/organ/external/head/H = organs_by_name["head"] - if(gender == new_gender) + if(gender == new_gender || (gender == PLURAL && species.has_gender)) return gender = new_gender @@ -488,4 +488,4 @@ valid_alt_heads += alternate_head - return valid_alt_heads \ No newline at end of file + return valid_alt_heads diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c3cec37da1a..2b19dcb7780 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1483,6 +1483,7 @@ /mob/living/carbon/human/proc/set_species(var/new_species, var/default_colour, var/delay_icon_update = 0) var/datum/species/oldspecies = species + var/datum/species/NS = all_species[new_species] if(!dna) if(!new_species) new_species = "Human" @@ -1502,6 +1503,8 @@ if(species.default_language) remove_language(species.default_language) + if(gender == PLURAL && NS.has_gender) + change_gender(pick(MALE,FEMALE)) species.handle_pre_change(src) species = all_species[new_species] diff --git a/code/modules/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm index 21636465d4a..95738cd6354 100644 --- a/code/modules/nano/modules/human_appearance.dm +++ b/code/modules/nano/modules/human_appearance.dm @@ -223,6 +223,7 @@ data["specimen"] = owner.species.name data["gender"] = owner.gender + data["has_gender"] = owner.species.has_gender data["change_race"] = can_change(APPEARANCE_RACE) if(data["change_race"]) var/species[0] diff --git a/nano/templates/appearance_changer.tmpl b/nano/templates/appearance_changer.tmpl index 47a3ce113e2..5e705b2fe46 100644 --- a/nano/templates/appearance_changer.tmpl +++ b/nano/templates/appearance_changer.tmpl @@ -19,6 +19,9 @@
{{:helper.link('Male', null, { 'gender' : 'male'}, null, data.gender == 'male' ? 'selected' : null)}} {{:helper.link('Female', null, { 'gender' : 'female'}, null, data.gender == 'female' ? 'selected' : null)}} + {{if !data.has_gender}} + {{:helper.link('Genderless', null, { 'gender' : 'plural'}, null, data.gender == 'plural' ? 'selected' : null)}} + {{/if}}
{{/if}} From 77bf04ea3d6acc7a5c51f0d2bad195ce163e2c14 Mon Sep 17 00:00:00 2001 From: davipatury Date: Mon, 27 Feb 2017 17:29:15 -0300 Subject: [PATCH 12/83] Newscaster nano-ui. --- code/game/machinery/newscaster.dm | 828 ++++++++++++------------------ nano/templates/newscaster.tmpl | 301 +++++++++++ 2 files changed, 621 insertions(+), 508 deletions(-) create mode 100644 nano/templates/newscaster.tmpl diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 4c14df16ec3..dfde3ee64b8 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -3,28 +3,25 @@ //###-Agouri################################### /datum/feed_message - var/author ="" - var/body ="" - var/message_type ="Story" - //var/parent_channel - var/backup_body ="" - var/backup_author ="" + var/author = "" + var/body = "" + var/message_type = "Story" + var/backup_body = "" + var/backup_author = "" var/is_admin_message = 0 var/icon/img = null var/icon/backup_img var/view_count = 0 /datum/feed_channel - var/channel_name="" + var/channel_name = "" var/list/datum/feed_message/messages = list() - //var/message_count = 0 - var/locked=0 - var/author="" - var/backup_author="" - var/censored=0 - var/is_admin_channel=0 + var/locked = 0 + var/author = "" + var/backup_author = "" + var/censored = 0 + var/is_admin_channel = 0 var/total_view_count = 0 - //var/page = null //For newspapers /datum/feed_message/proc/clear() author = "" @@ -59,468 +56,280 @@ var/datum/feed_network/news_network = new /datum/feed_network //The global n var/list/obj/machinery/newscaster/allCasters = list() //Global list that will contain reference to all newscasters in existence. +#define NEWSCASTER_MAIN 0 // Main menu +#define NEWSCASTER_FC_LIST 1 // Feed channel list +#define NEWSCASTER_CREATE_FC 2 // Create feed channel +#define NEWSCASTER_CREATE_FM 3 // Create feed message +#define NEWSCASTER_PRINT 4 // Print newspaper +#define NEWSCASTER_VIEW_FC 5 // Read feed channel +#define NEWSCASTER_NT_CENSOR 6 // Nanotrasen Feed Censorship Tool +#define NEWSCASTER_D_NOTICE 7 // Nanotrasen D-Notice Handler +#define NEWSCASTER_CENSOR_FC 8 // Censor feed channel +#define NEWSCASTER_D_NOTICE_FC 9 // D-Notice feed channel +#define NEWSCASTER_W_ISSUE_H 10 // Wanted Issue handler +#define NEWSCASTER_W_ISSUE 11 // STATIONWIDE WANTED ISSUE + /obj/machinery/newscaster name = "newscaster" desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" icon = 'icons/obj/terminals.dmi' icon_state = "newscaster_normal" - var/isbroken = 0 //1 if someone banged it with something heavy - var/ispowered = 1 //starts powered, changes with power_change() - //var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored. - //OBSOLETE: We're now using a global news network - var/screen = 0 //Or maybe I'll make it into a list within a list afterwards... whichever I prefer, go fuck yourselves :3 - // 0 = welcome screen - main menu - // 1 = view feed channels - // 2 = create feed channel - // 3 = create feed story - // 4 = feed story submited sucessfully - // 5 = feed channel created successfully - // 6 = ERROR: Cannot create feed story - // 7 = ERROR: Cannot create feed channel - // 8 = print newspaper - // 9 = viewing channel feeds - // 10 = censor feed story - // 11 = censor feed channel - //Holy shit this is outdated, made this when I was still starting newscasters :3 - var/paper_remaining = 0 + var/screen = NEWSCASTER_MAIN + var/paper_remaining = 15 var/securityCaster = 0 // 0 = Caster cannot be used to issue wanted posters // 1 = the opposite var/unit_no = 0 //Each newscaster has a unit number - //var/datum/feed_message/wanted //We're gonna use a feed_message to store data of the wanted person because fields are similar - //var/wanted_issue = 0 //OBSOLETE - // 0 = there's no WANTED issued, we don't need a special icon_state - // 1 = Guess what. var/alert_delay = 500 var/alert = 0 // 0 = there hasn't been a news/wanted update in the last alert_delay // 1 = there has var/scanned_user = "Unknown" //Will contain the name of the person who currently uses the newscaster - var/msg = ""; //Feed message + var/msg = "" //Feed message var/obj/item/weapon/photo/photo = null - var/channel_name = ""; //the feed channel which will be receiving the feed, or being created - var/c_locked=0; //Will our new channel be locked to public submissions? - var/hitstaken = 0 //Death at 3 hits from an item with force>=15 + var/channel_name = "" //the feed channel which will be receiving the feed, or being created + var/c_locked = 0 //Will our new channel be locked to public submissions? + var/hitstaken = 0 //Death at 3 hits from an item with force>=15 var/datum/feed_channel/viewing_channel = null var/silence = 0 + var/temp = null + var/temp_back_screen = NEWSCASTER_MAIN + + var/static/REDACTED = "\[REDACTED\]" light_range = 0 anchored = 1 -/obj/machinery/newscaster/security_unit //Security unit +/obj/machinery/newscaster/security_unit name = "Security Newscaster" securityCaster = 1 -/obj/machinery/newscaster/New() //Constructor, ho~ +/obj/machinery/newscaster/New() allCasters += src - paper_remaining = 15 // Will probably change this to something better - for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) // Let's give it an appropriate unit number - unit_no++ + unit_no = allCasters.len update_icon() //for any custom ones on the map... - ..() //I just realised the newscasters weren't in the global machines list. The superconstructor call will tend to that + ..() /obj/machinery/newscaster/Destroy() allCasters -= src viewing_channel = null - photo = null + if(photo) + qdel(photo) + photo = null return ..() /obj/machinery/newscaster/update_icon() - if(!ispowered || isbroken) + overlays.Cut() + if(inoperable()) icon_state = "newscaster_off" - if(isbroken) //If the thing is smashed, add crack overlay on top of the unpowered sprite. - overlays.Cut() + if(stat & BROKEN) //If the thing is smashed, add crack overlay on top of the unpowered sprite. overlays += image(icon, "crack3") - return + else + if(!news_network.wanted_issue) //wanted icon state, there can be no overlays on it as it's a priority message + icon_state = "newscaster_normal" + if(alert) //new message alert overlay + overlays += "newscaster_alert" + else + icon_state = "newscaster_wanted" - overlays.Cut() //reset overlays - - if(news_network.wanted_issue) //wanted icon state, there can be no overlays on it as it's a priority message - icon_state = "newscaster_wanted" - return - - if(alert) //new message alert overlay - overlays += "newscaster_alert" - - if(hitstaken > 0) //Cosmetic damage overlay - overlays += image(icon, "crack[hitstaken]") - - icon_state = "newscaster_normal" - return + if(hitstaken > 0) //Cosmetic damage overlay + overlays += image(icon, "crack[hitstaken]") /obj/machinery/newscaster/power_change() - if(isbroken) //Broken shit can't be powered. - return - if( powered() ) - ispowered = 1 - stat &= ~NOPOWER - update_icon() - else - spawn(rand(0, 15)) - ispowered = 0 - stat |= NOPOWER - update_icon() - + ..() + update_icon() /obj/machinery/newscaster/ex_act(severity) switch(severity) - if(1.0) + if(1) qdel(src) return - if(2.0) - isbroken=1 + if(2) + stat |= BROKEN if(prob(50)) qdel(src) else update_icon() //can't place it above the return and outside the if-else. or we might get runtimes of null.update_icon() if(prob(50)) goes in. - return else if(prob(50)) - isbroken=1 + stat |= BROKEN update_icon() - return - return -/obj/machinery/newscaster/attack_ai(mob/user) - return attack_hand(user) - /obj/machinery/newscaster/attack_ghost(mob/user) return attack_hand(user) -/obj/machinery/newscaster/attack_hand(mob/user) //########### THE MAIN BEEF IS HERE! And in the proc below this...############ - interact(user) - -/obj/machinery/newscaster/interact(mob/user) - if(!ispowered || isbroken) +/obj/machinery/newscaster/attack_hand(mob/user) + if(..()) return + ui_interact(user) - if(ishuman(user) || issilicon(user) || isobserver(user)) - var/dat - dat = text("Newscaster

Newscaster Unit #[unit_no]

") +/obj/machinery/newscaster/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + user.set_machine(src) + if(can_scan(user)) + scan_user(user) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "newscaster.tmpl", name, 400, 600) + ui.open() - if(can_scan(user)) - scan_user(user) //Newscaster scans you +/obj/machinery/newscaster/ui_data(user) + var/list/data = list() - switch(screen) - if(0) - dat += {"Welcome to Newscasting Unit #[unit_no].
Interface & News networks Operational. -
Property of Nanotrasen"} - if(news_network.wanted_issue) - dat+= "
Read Wanted Issue" - dat+= {"

Create Feed Channel -
View Feed Channels -
Submit new Feed story -
Print newspaper"} - if(!silence) - dat+= "
Silence unit" + data["unit_no"] = unit_no + data["temp"] = temp + data["temp_back_screen"] = temp_back_screen + data["screen"] = screen + + switch(screen) + if(0) + data["wanted_issue"] = news_network.wanted_issue ? 1 : 0 + data["silence"] = silence + data["securityCaster"] = securityCaster + if(securityCaster) + data["scanned_user"] = scanned_user + if(1, 6, 7) + var/list/channels = list() + data["channels"] = channels + for(var/datum/feed_channel/C in news_network.network_channels) + channels[++channels.len] = list("name" = C.channel_name, "ref" = "\ref[C]", "censored" = C.censored, "admin" = C.is_admin_channel) + if(2) + data["scanned_user"] = scanned_user + data["channel_name"] = channel_name + data["c_locked"] = c_locked + if(3) + data["scanned_user"] = scanned_user + data["channel_name"] = channel_name + data["msg"] = msg + data["photo"] = photo ? 1 : 0 + if(4) + var/total_num = length(news_network.network_channels) + var/active_num = total_num + var/message_num=0 + for(var/datum/feed_channel/FC in news_network.network_channels) + if(!FC.censored) + message_num += length(FC.messages) else - dat+= "
Unsilence unit" - dat+= {"
Re-scan User -

Exit"} - if(securityCaster) - var/wanted_already = 0 - if(news_network.wanted_issue) - wanted_already = 1 - - dat += {"
Feed Security functions:
-
[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue -
Censor Feed Stories -
Mark Feed Channel with Nanotrasen D-Notice -

The newscaster recognises you as: [scanned_user]"} - if(1) - dat+= "Station Feed Channels
" - if( isemptylist(news_network.network_channels) ) - dat+="No active channels found..." - else - for(var/datum/feed_channel/CHANNEL in news_network.network_channels) - if(CHANNEL.is_admin_channel) - dat+="[CHANNEL.channel_name]
" - else - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
" - /*for(var/datum/feed_channel/CHANNEL in channel_list) - dat+="[CHANNEL.channel_name]:
\[created by: [CHANNEL.author]\]

" - if( isemptylist(CHANNEL.messages) ) - dat+="No feed messages found in channel...

" - else - for(var/datum/feed_message/MESSAGE in CHANNEL.messages) - dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
"*/ - - dat+="

Refresh" - dat+="
Back" - if(2) - dat+={"Creating new Feed Channel... -
Channel Name: [channel_name]
- Channel Author: [scanned_user]
- Will Accept Public Feeds: [(c_locked) ? ("NO") : ("YES")]

-
Submit

Cancel
"} - if(3) - dat+={"Creating new Feed Message... -
Receiving Channel: [channel_name]
- Message Author: [scanned_user]
- Message Body: [msg]
- Attach Photo: [(photo ? "Photo Attached" : "No Photo")]
-
Submit

Cancel
"} - if(4) - dat+="Feed story successfully submitted to [channel_name].

" - dat+="
Return
" - if(5) - dat+="Feed Channel [channel_name] created successfully.

" - dat+="
Return
" - if(6) - dat+="ERROR: Could not submit Feed story to Network.

" - if(channel_name=="") - dat+="Invalid receiving channel name.
" - if(scanned_user=="Unknown") - dat+="Channel author unverified.
" - if(msg == "" || msg == "\[REDACTED\]") - dat+="Invalid message body.
" - - dat+="
Return
" - if(7) - dat+="ERROR: Could not submit Feed Channel to Network.

" - //var/list/existing_channels = list() //Let's get dem existing channels - OBSOLETE - var/list/existing_authors = list() - for(var/datum/feed_channel/FC in news_network.network_channels) - //existing_channels += FC.channel_name //OBSOLETE - if(FC.author == "\[REDACTED\]") - existing_authors += FC.backup_author - else - existing_authors += FC.author - if(scanned_user in existing_authors) - dat+="There already exists a Feed channel under your name.
" - if(channel_name=="" || channel_name == "\[REDACTED\]") - dat+="Invalid channel name.
" - var/check = 0 - for(var/datum/feed_channel/FC in news_network.network_channels) - if(FC.channel_name == channel_name) - check = 1 - break - if(check) - dat+="Channel name already in use.
" - if(scanned_user=="Unknown") - dat+="Channel author unverified.
" - dat+="
Return
" - if(8) - var/total_num=length(news_network.network_channels) - var/active_num=total_num - var/message_num=0 - for(var/datum/feed_channel/FC in news_network.network_channels) - if(!FC.censored) - message_num += length(FC.messages) //Dont forget, datum/feed_channel's var messages is a list of datum/feed_message - else - active_num-- - dat+="Network currently serves a total of [total_num] Feed channels, [active_num] of which are active, and a total of [message_num] Feed Stories." //TODO: CONTINUE - dat+="

Liquid Paper remaining: [(paper_remaining) *100 ] cm^3" - dat+="

Print Paper" - dat+="
Cancel" - if(9) - dat+="[viewing_channel.channel_name]: \[created by: [viewing_channel.author]\]
" - dat+="Feed view count: [viewing_channel.total_view_count]
" - viewing_channel.total_view_count++ - if(viewing_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
" - dat+="No further feed story additions are allowed while the D-Notice is in effect.

" - else - if( isemptylist(viewing_channel.messages) ) - dat+="No feed messages found in channel...
" - else - var/i = 0 - for(var/datum/feed_message/MESSAGE in viewing_channel.messages) - i++ - dat+="-[MESSAGE.body]
" - if(MESSAGE.img) - usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png") - dat+="

" - dat+="\[[MESSAGE.message_type] by [MESSAGE.author]\]
" - dat+="Message view count: [MESSAGE.view_count]
" - MESSAGE.view_count++ - dat+="

Refresh" - dat+="
Back" - if(10) - dat+="Nanotrasen Feed Censorship Tool
" - dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
" - dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
" - dat+="
Select Feed channel to get Stories from:
" - if(isemptylist(news_network.network_channels)) - dat+="No feed channels found active...
" - else - for(var/datum/feed_channel/CHANNEL in news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
" - dat+="
Cancel" - if(11) - dat+="Nanotrasen D-Notice Handler
" - dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's" - dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed" - dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
" - if(isemptylist(news_network.network_channels)) - dat+="No feed channels found active...
" - else - for(var/datum/feed_channel/CHANNEL in news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
" - - dat+="
Back" - if(12) - dat+="[viewing_channel.channel_name]: \[ created by: [viewing_channel.author] \]
" - dat+="[(viewing_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]
" - - - if( isemptylist(viewing_channel.messages) ) - dat+="No feed messages found in channel...
" - else - for(var/datum/feed_message/MESSAGE in viewing_channel.messages) - dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
" - dat+="[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]
" - dat+="
Back" - if(13) - dat+="[viewing_channel.channel_name]: \[ created by: [viewing_channel.author] \]
" - dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel.
" - if(viewing_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
" - dat+="No further feed story additions are allowed while the D-Notice is in effect.

" - else - if( isemptylist(viewing_channel.messages) ) - dat+="No feed messages found in channel...
" - else - for(var/datum/feed_message/MESSAGE in viewing_channel.messages) - dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
" - - dat+="
Back" - if(14) - dat+="Wanted Issue Handler:" - var/wanted_already = 0 - var/end_param = 1 - if(news_network.wanted_issue) - wanted_already = 1 - end_param = 2 - - if(wanted_already) - dat+="
A wanted issue is already in Feed Circulation. You can edit or cancel it below.
" - dat+="
" - dat+="Criminal Name: [channel_name]
" - dat+="Description: [msg]
" - dat+="Attach Photo: [(photo ? "Photo Attached" : "No Photo")]
" - if(wanted_already) - dat+="Wanted Issue created by: [news_network.wanted_issue.backup_author]
" - else - dat+="Wanted Issue will be created under prosecutor: [scanned_user]
" - dat+="
[(wanted_already) ? ("Edit Issue") : ("Submit")]" - if(wanted_already) - dat+="
Take down Issue" - dat+="
Cancel" - if(15) - dat+="Wanted issue for [channel_name] is now in Network Circulation.

" - dat+="
Return
" - if(16) - dat+="ERROR: Wanted Issue rejected by Network.

" - if(channel_name=="" || channel_name == "\[REDACTED\]") - dat+="Invalid name for person wanted.
" - if(scanned_user=="Unknown") - dat+="Issue author unverified.
" - if(msg == "" || msg == "\[REDACTED\]") - dat+="Invalid description.
" - dat+="
Return
" - if(17) - dat+="Wanted Issue successfully deleted from Circulation
" - dat+="
Return
" - if(18) - dat+="-- STATIONWIDE WANTED ISSUE --
\[Submitted by: [news_network.wanted_issue.backup_author]\]
" - dat+="Criminal: [news_network.wanted_issue.author]
" - dat+="Description: [news_network.wanted_issue.body]
" - dat+="Photo:: " - if(news_network.wanted_issue.img) - usr << browse_rsc(news_network.wanted_issue.img, "tmp_photow.png") - dat+="
" - else - dat+="None" - dat+="

Back
" - if(19) - dat+="Wanted issue for [channel_name] successfully edited.

" - dat+="
Return
" - if(20) - dat+="Printing successfull. Please receive your newspaper from the bottom of the machine.

" - dat+="Return" - if(21) - dat+="Unable to print newspaper. Insufficient paper. Please notify maintenance personnell to refill machine storage.

" - dat+="Return" + active_num-- + data["total_num"] = total_num + data["active_num"] = active_num + data["message_num"] = message_num + data["paper_remaining"] = paper_remaining * 100 + if(5) + data["channel_name"] = viewing_channel.channel_name + data["author"] = viewing_channel.author + data["total_view_count"] = viewing_channel.total_view_count + data["censored"] = viewing_channel.censored + var/list/messages = list() + data["messages"] = messages + for(var/datum/feed_message/M in viewing_channel.messages) + messages[++messages.len] = list("body" = M.body, "img" = M.img ? icon2base64(M.img) : null, "message_type" = M.message_type, "author" = M.author, "view_count" = M.view_count) + if(8, 9) + data["channel_name"] = viewing_channel.channel_name + data["ref"] = "\ref[viewing_channel]" + data["author"] = viewing_channel.author + data["author_redacted"] = viewing_channel.author == REDACTED ? 1 : 0 + data["total_view_count"] = viewing_channel.total_view_count + data["censored"] = viewing_channel.censored + var/list/messages = list() + data["messages"] = messages + for(var/datum/feed_message/M in viewing_channel.messages) + messages[++messages.len] = list("body" = M.body, "body_redacted" = (M.body == REDACTED ? 1 : 0) , "message_type" = M.message_type, "author" = M.author, "author_redacted" = (M.author == REDACTED ? 1 : 0), "ref" = "\ref[M]", "view_count" = M.view_count) + if(10) + var/wanted_already = 0 + var/end_param = 1 + if(news_network.wanted_issue) + wanted_already = 1 + end_param = 2 + data["wanted_already"] = wanted_already + data["end_param"] = end_param + data["channel_name"] = channel_name + data["msg"] = msg + data["photo"] = photo ? 1 : 0 + if(wanted_already) + data["author"] = news_network.wanted_issue.backup_author else - dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com" + data["scanned_user"] = scanned_user + if(11) + data["author"] = news_network.wanted_issue.backup_author + data["criminal"] = news_network.wanted_issue.author + data["description"] = news_network.wanted_issue.body + data["photo"] = news_network.wanted_issue.img ? icon2base64(news_network.wanted_issue.img) : 0 + return data - - var/datum/browser/popup = new(user, "newscaster_main", name, 400, 600) - popup.set_content(dat) - popup.open(0) - onclose(user, "newscaster_main") - /obj/machinery/newscaster/Topic(href, href_list) if(..()) return 1 - usr.set_machine(src) if(href_list["set_channel_name"]) channel_name = sanitizeSQL(strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", ""))) while(findtext(channel_name," ") == 1) - channel_name = copytext(channel_name,2,lentext(channel_name)+1) - updateUsrDialog() - //update_icon() + channel_name = copytext(channel_name, 2, lentext(channel_name) + 1) else if(href_list["set_channel_lock"]) c_locked = !c_locked - updateUsrDialog() - //update_icon() else if(href_list["submit_new_channel"]) - //var/list/existing_channels = list() //OBSOLETE var/list/existing_authors = list() for(var/datum/feed_channel/FC in news_network.network_channels) - //existing_channels += FC.channel_name - if(FC.author == "\[REDACTED\]") + if(FC.author == REDACTED) existing_authors += FC.backup_author else - existing_authors +=FC.author + existing_authors += FC.author var/check = 0 for(var/datum/feed_channel/FC in news_network.network_channels) if(FC.channel_name == channel_name) check = 1 break - if(channel_name == "" || channel_name == "\[REDACTED\]" || scanned_user == "Unknown" || check || (scanned_user in existing_authors) ) - screen=7 + if(channel_name == "" || channel_name == REDACTED || scanned_user == "Unknown" || check || (scanned_user in existing_authors)) + temp = "ERROR: Could not submit feed channel to Network.
    " + if(scanned_user in existing_authors) + temp += "
  • There already exists a feed channel under your name.
  • " + if(channel_name == "" || channel_name == REDACTED) + temp += "
  • Invalid channel name.
  • " + if(check) + temp += "
  • Channel name already in use.
  • " + if(scanned_user == "Unknown") + temp += "
  • Channel author unverified.
  • " + temp += "
" + temp_back_screen = NEWSCASTER_CREATE_FC else - var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel") - if(choice=="Confirm") + var/choice = alert("Please confirm feed channel creation", "Network Channel Handler", "Confirm", "Cancel") + if(choice == "Confirm") var/datum/feed_channel/newChannel = new /datum/feed_channel newChannel.channel_name = channel_name newChannel.author = scanned_user newChannel.locked = c_locked - feedback_inc("newscaster_channels",1) - /*for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) //Let's add the new channel in all casters. - NEWSCASTER.channel_list += newChannel*/ //Now that it is sane, get it into the list. -OBSOLETE - news_network.network_channels += newChannel //Adding channel to the global network - screen=5 - updateUsrDialog() - //update_icon() + feedback_inc("newscaster_channels", 1) + news_network.network_channels += newChannel //Adding channel to the global network + temp = "Feed channel '[channel_name]' created successfully." + temp_back_screen = NEWSCASTER_MAIN else if(href_list["set_channel_receiving"]) - //var/list/datum/feed_channel/available_channels = list() var/list/available_channels = list() for(var/datum/feed_channel/F in news_network.network_channels) - if( (!F.locked || F.author == scanned_user) && !F.censored) + if((!F.locked || F.author == scanned_user) && !F.censored) available_channels += F.channel_name - channel_name = strip_html_simple(input(usr, "Choose receiving Feed Channel", "Network Channel Handler") in available_channels ) - updateUsrDialog() + channel_name = strip_html_simple(input(usr, "Choose receiving Feed Channel", "Network Channel Handler") in available_channels) else if(href_list["set_new_message"]) msg = strip_html(input(usr, "Write your feed story", "Network Channel Handler", "")) - while(findtext(msg," ") == 1) - msg = copytext(msg,2,lentext(msg)+1) - updateUsrDialog() + while(findtext(msg, " ") == 1) + msg = copytext(msg, 2, lentext(msg) + 1) else if(href_list["set_attachment"]) AttachPhoto(usr) - updateUsrDialog() else if(href_list["submit_new_message"]) - if(msg =="" || msg=="\[REDACTED\]" || scanned_user == "Unknown" || channel_name == "" ) - screen=6 + if(msg == "" || msg == REDACTED || scanned_user == "Unknown" || channel_name == "" ) + temp = "ERROR: Could not submit feed story to Network.
    " + if(channel_name == "") + temp += "
  • Invalid receiving channel name.
  • " + if(scanned_user == "Unknown") + temp += "
  • Channel author unverified.
  • " + if(msg == "" || msg == REDACTED) + temp += "
  • Invalid message body.
  • " + temp += "
" + temp_back_screen = NEWSCASTER_CREATE_FM else var/datum/feed_message/newMsg = new /datum/feed_message newMsg.author = scanned_user @@ -534,46 +343,37 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co FC.messages += newMsg //Adding message to the network's appropriate feed_channel announcement = FC.announce_news() break - screen=4 - for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) - NEWSCASTER.newsAlert(announcement) - - updateUsrDialog() + temp = "Feed story successfully submitted to [channel_name]." + temp_back_screen = NEWSCASTER_MAIN + for(var/obj/machinery/newscaster/NC in allCasters) + NC.newsAlert(announcement) else if(href_list["create_channel"]) - screen=2 - updateUsrDialog() + screen = NEWSCASTER_CREATE_FC else if(href_list["create_feed_story"]) - screen=3 - updateUsrDialog() + screen = NEWSCASTER_CREATE_FM else if(href_list["menu_paper"]) - screen=8 - updateUsrDialog() + screen = NEWSCASTER_PRINT + else if(href_list["print_paper"]) if(!paper_remaining) - screen=21 + temp = "Unable to print newspaper. Insufficient paper. Please notify maintenance personnell to refill machine storage." + temp_back_screen = NEWSCASTER_MAIN else print_paper() - screen = 20 - updateUsrDialog() + temp = "Printing successful. Please receive your newspaper from the bottom of the machine." + temp_back_screen = NEWSCASTER_MAIN else if(href_list["silence_unit"]) - silence=1 - updateUsrDialog() - - else if(href_list["unsilence_unit"]) - silence=0 - updateUsrDialog() + silence = !silence else if(href_list["menu_censor_story"]) - screen=10 - updateUsrDialog() + screen = NEWSCASTER_NT_CENSOR else if(href_list["menu_censor_channel"]) - screen=11 - updateUsrDialog() + screen = NEWSCASTER_D_NOTICE else if(href_list["menu_wanted"]) var/already_wanted = 0 @@ -583,40 +383,46 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co if(already_wanted) channel_name = news_network.wanted_issue.author msg = news_network.wanted_issue.body - screen = 14 - updateUsrDialog() + screen = NEWSCASTER_W_ISSUE_H else if(href_list["set_wanted_name"]) - channel_name = strip_html(input(usr, "Provide the name of the Wanted person", "Network Security Handler", "")) - while(findtext(channel_name," ") == 1) - channel_name = copytext(channel_name,2,lentext(channel_name)+1) - updateUsrDialog() + channel_name = strip_html(input(usr, "Provide the name of the wanted person", "Network Security Handler", "")) + while(findtext(channel_name, " ") == 1) + channel_name = copytext(channel_name, 2, lentext(channel_name) + 1) else if(href_list["set_wanted_desc"]) - msg = strip_html(input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", "")) - while(findtext(msg," ") == 1) - msg = copytext(msg,2,lentext(msg)+1) - updateUsrDialog() + msg = strip_html(input(usr, "Provide the a description of the wanted person and any other details you deem important", "Network Security Handler", "")) + while(findtext(msg, " ") == 1) + msg = copytext(msg, 2, lentext(msg) + 1) else if(href_list["submit_wanted"]) var/input_param = text2num(href_list["submit_wanted"]) if(msg == "" || channel_name == "" || scanned_user == "Unknown") - screen = 16 + temp = "ERROR: Wanted issue rejected by Network.
    " + if(channel_name == "" || channel_name == REDACTED) + temp += "
  • Invalid name for person wanted.
  • " + if(scanned_user == "Unknown") + temp += "
  • Channel author unverified.
  • " + if(msg == "" || msg == REDACTED) + temp += "
  • Invalid description.
  • " + temp += "
" + temp_back_screen = NEWSCASTER_MAIN else - var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel") - if(choice=="Confirm") - if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below - var/datum/feed_message/WANTED = new /datum/feed_message - WANTED.author = channel_name - WANTED.body = msg - WANTED.backup_author = scanned_user //I know, a bit wacky + var/choice = alert("Please confirm wanted issue [input_param == 1 ? "creation." : "edit."]", "Network Security Handler", "Confirm", "Cancel") + if(choice == "Confirm") + if(input_param == 1) //input_param == 1: new wanted issue, input_param == 2: editing an existing one + var/datum/feed_message/W = new /datum/feed_message + W.author = channel_name + W.body = msg + W.backup_author = scanned_user //I know, a bit wacky if(photo) - WANTED.img = photo.img - news_network.wanted_issue = WANTED - for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) - NEWSCASTER.newsAlert() - NEWSCASTER.update_icon() - screen = 15 + W.img = photo.img + news_network.wanted_issue = W + for(var/obj/machinery/newscaster/NS in allCasters) + NS.newsAlert() + NS.update_icon() + temp = "Wanted issue for [channel_name] is now in Network Circulation." + temp_back_screen = NEWSCASTER_MAIN else if(news_network.wanted_issue.is_admin_message) alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot edit it.","Ok") @@ -626,110 +432,115 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co news_network.wanted_issue.backup_author = scanned_user if(photo) news_network.wanted_issue.img = photo.img - screen = 19 - - updateUsrDialog() + temp = "Wanted issue for [channel_name] successfully edited." + temp_back_screen = NEWSCASTER_MAIN else if(href_list["cancel_wanted"]) if(news_network.wanted_issue.is_admin_message) - alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot take it down.","Ok") + alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot take it down.", "Ok") return - var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel") - if(choice=="Confirm") + var/choice = alert("Please confirm wanted issue removal", "Network Security Handler", "Confirm", "Cancel") + if(choice == "Confirm") news_network.wanted_issue = null - for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) - NEWSCASTER.update_icon() - screen=17 - updateUsrDialog() + for(var/obj/machinery/newscaster/NC in allCasters) + NC.update_icon() + temp = "Wanted Issue successfully deleted from Circulation" + temp_back_screen = NEWSCASTER_MAIN else if(href_list["view_wanted"]) - screen=18 - updateUsrDialog() + screen = NEWSCASTER_W_ISSUE else if(href_list["censor_channel_author"]) var/datum/feed_channel/FC = locate(href_list["censor_channel_author"]) - if(FC.is_admin_channel) - alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") - return - if(FC.author != "\[REDACTED\]") - FC.backup_author = FC.author - FC.author = "\[REDACTED\]" - else - FC.author = FC.backup_author - updateUsrDialog() + if(FC) + if(FC.is_admin_channel) + alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") + return + if(FC.author != REDACTED) + FC.backup_author = FC.author + FC.author = REDACTED + else + FC.author = FC.backup_author else if(href_list["censor_channel_story_author"]) - var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"]) - if(MSG.is_admin_message) - alert("This message was created by a Nanotrasen Officer. You cannot censor its author.","Ok") - return - if(MSG.author != "\[REDACTED\]") - MSG.backup_author = MSG.author - MSG.author = "\[REDACTED\]" - else - MSG.author = MSG.backup_author - updateUsrDialog() + var/datum/feed_message/M = locate(href_list["censor_channel_story_author"]) + if(M) + if(M.is_admin_message) + alert("This message was created by a Nanotrasen Officer. You cannot censor its author.","Ok") + return + if(M.author != REDACTED) + M.backup_author = M.author + M.author = REDACTED + else + M.author = M.backup_author else if(href_list["censor_channel_story_body"]) - var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"]) - if(MSG.is_admin_message) - alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") - return - if(MSG.img != null) - MSG.backup_img = MSG.img - MSG.img = null - else - MSG.img = MSG.backup_img - if(MSG.body != "\[REDACTED\]") - MSG.backup_body = MSG.body - MSG.body = "\[REDACTED\]" - else - MSG.body = MSG.backup_body - updateUsrDialog() + var/datum/feed_message/M = locate(href_list["censor_channel_story_body"]) + if(M) + if(M.is_admin_message) + alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") + return + if(M.img != null) + M.backup_img = M.img + M.img = null + else + M.img = M.backup_img + if(M.body != REDACTED) + M.backup_body = M.body + M.body = REDACTED + else + M.body = M.backup_body else if(href_list["pick_d_notice"]) var/datum/feed_channel/FC = locate(href_list["pick_d_notice"]) - viewing_channel = FC - screen=13 - updateUsrDialog() + if(FC) + viewing_channel = FC + screen = NEWSCASTER_D_NOTICE_FC else if(href_list["toggle_d_notice"]) var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"]) - if(FC.is_admin_channel) - alert("This channel was created by a Nanotrasen Officer. You cannot place a D-Notice upon it.","Ok") - return - FC.censored = !FC.censored - updateUsrDialog() + if(FC) + if(FC.is_admin_channel) + alert("This channel was created by a Nanotrasen Officer. You cannot place a D-Notice upon it.", "Ok") + return + FC.censored = !FC.censored else if(href_list["view"]) - screen=1 - updateUsrDialog() + screen = NEWSCASTER_FC_LIST else if(href_list["setScreen"]) //Brings us to the main menu and resets all fields~ screen = text2num(href_list["setScreen"]) - if(screen == 0) - scanned_user = "Unknown"; - msg = ""; - c_locked=0; - channel_name=""; + if(screen == NEWSCASTER_MAIN) + scanned_user = "Unknown" + msg = "" + c_locked = 0 + channel_name = "" viewing_channel = null - updateUsrDialog() + temp = null + temp_back_screen = NEWSCASTER_MAIN else if(href_list["show_channel"]) var/datum/feed_channel/FC = locate(href_list["show_channel"]) - viewing_channel = FC - screen = 9 - updateUsrDialog() + if(FC) + viewing_channel = FC + viewing_channel.total_view_count++ + for(var/datum/feed_message/M in viewing_channel.messages) + M.view_count++ + screen = NEWSCASTER_VIEW_FC else if(href_list["pick_censor_channel"]) var/datum/feed_channel/FC = locate(href_list["pick_censor_channel"]) - viewing_channel = FC - screen = 12 - updateUsrDialog() + if(FC) + viewing_channel = FC + screen = NEWSCASTER_CENSOR_FC else if(href_list["refresh"]) - updateUsrDialog() + if(can_scan(usr)) + scan_user(usr) //Newscaster scans you -/obj/machinery/newscaster/attackby(obj/item/I as obj, mob/living/user as mob, params) + nanomanager.update_uis(src) + return 1 + +/obj/machinery/newscaster/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/weapon/wrench)) to_chat(user, "Now [anchored ? "un" : ""]securing [name]") playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) @@ -739,41 +550,42 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co qdel(src) return - if(isbroken) + if(stat & BROKEN) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, 1) - visible_message("[user.name] further abuses the shattered [name].", null, 5 ) + visible_message("[user.name] further abuses the shattered [name].", null, 5) else if(istype(I, /obj/item/weapon) ) var/obj/item/weapon/W = I if(W.damtype == STAMINA) return - if(W.force <15) - visible_message("[user.name] hits the [name] with the [W.name] with no visible effect.", null , 5 ) + if(W.force < 15) + visible_message("[user.name] hits the [name] with the [W.name] with no visible effect.", null , 5) playsound(loc, 'sound/effects/Glasshit.ogg', 100, 1) else hitstaken++ - if(hitstaken==3) - visible_message("[user.name] smashes the [name]!", null, 5 ) - isbroken=1 + if(hitstaken == 3) + visible_message("[user.name] smashes the [name]!", null, 5) + stat |= BROKEN playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) else - visible_message("[user.name] forcefully slams the [name] with the [I.name]!", null, 5 ) + visible_message("[user.name] forcefully slams the [name] with the [I.name]!", null, 5) playsound(loc, 'sound/effects/Glasshit.ogg', 100, 1) else - to_chat(user, "This does nothing.") + to_chat(user, "This does nothing.") update_icon() + ..() -/obj/machinery/newscaster/proc/AttachPhoto(mob/user as mob) +/obj/machinery/newscaster/proc/AttachPhoto(mob/user) if(photo) if(!issilicon(user)) - photo.loc = loc + photo.forceMove(get_turf(src)) user.put_in_inactive_hand(photo) photo = null if(istype(user.get_active_hand(), /obj/item/weapon/photo)) photo = user.get_active_hand() user.drop_item() - photo.loc = src - else if(istype(user,/mob/living/silicon)) + photo.forceMove(src) + else if(issilicon(user)) var/mob/living/silicon/tempAI = user var/obj/item/device/camera/siliconcam/camera = tempAI.aiCamera @@ -960,7 +772,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co scanned_user = "[ai_user.name] ([ai_user.job])" else scanned_user = "Unknown" - + /obj/machinery/newscaster/proc/can_scan(mob/user) if(ishuman(user) || issilicon(user)) return TRUE diff --git a/nano/templates/newscaster.tmpl b/nano/templates/newscaster.tmpl new file mode 100644 index 00000000000..af4edb702ad --- /dev/null +++ b/nano/templates/newscaster.tmpl @@ -0,0 +1,301 @@ + + + + +

Welcome to Newscasting Unit #{{:data.unit_no}}.

+Interface & News networks Operational.
+Property of Nanotrasen

+
+{{if data.temp}} +
{{:data.temp}}
+
{{:helper.link('Return', 'arrow-left', {'setScreen' : data.temp_back_screen})}}
+{{else}} + {{if data.screen == 0}} +
+ {{if data.wanted_issue}} +
{{:helper.link('Read Wanted issue', 'exclamation-triangle', {'view_wanted' : 1})}}
+ {{/if}} +
{{:helper.link('Create feed channel', 'plus', {'create_channel' : 1})}}
+
{{:helper.link('View feed channels', 'arrow-right', {'view' : 1})}}
+
{{:helper.link('Submit new feed story', 'share', {'create_feed_story' : 1})}}
+
{{:helper.link('Print newspaper', 'print', {'menu_paper' : 1})}}
+
{{:helper.link(data.silence ? 'Unsilence unit' : 'Silence unit', data.silence ? 'volume-up' : 'volume-off', {'silence_unit' : 1})}}
+
{{:helper.link('Re-scan user', 'refresh', {'refresh' : 1})}}
+ {{if data.securityCaster}} +
Feed Security functions:
+
{{:helper.link(data.wanted_issue ? 'Manage wanted issue' : 'Publish wanted issue', data.wanted_issue ? 'pencil' : 'share', {'menu_wanted' : 1})}}
+
{{:helper.link('Censor feed stories', 'ban', {'menu_censor_story' : 1})}}
+
{{:helper.link('Mark feed channel with Nanotrasen D-Notice', 'thumb-tack', {'menu_censor_channel' : 1})}}
+
The newscaster recognises you as: {{:data.scanned_user}}
+ {{/if}} +
+ {{else data.screen == 1}} +

Station Feed Channels

+
+ {{for data.channels}} +
+ {{if value.admin}} + {{:helper.link('' + value.name + '', 'arrow-right', {'show_channel' : value.ref})}} + {{else}} + {{:helper.link(value.name, 'arrow-right', {'show_channel' : value.ref}, null, value.censored ? 'link linkDanger' : null)}} + {{/if}} +
+ {{empty}} + No active channels found... + {{/for}} +
+
+
+
{{:helper.link('Refresh', 'refresh', {'refresh' : 1})}}
+
{{:helper.link('Back', 'arrow-left', {'setScreen' : 0})}}
+
+ {{else data.screen == 2}} +

Creating new feed channel...

+
+
Channel name:
+
+ {{:data.channel_name}} + {{:helper.link('Edit', 'pencil', {'set_channel_name' : 1})}} +
+
+
+
Channel author:
+
{{:data.scanned_user}}
+
+
+
Accept public feeds:
+
{{:helper.link(data.c_locked ? 'NO' : 'YES', data.c_locked ? 'times' : 'check', {'set_channel_lock' : 1})}}
+
+
+ {{:helper.link('Submit', 'share', {'submit_new_channel' : 1})}} + {{:helper.link('Cancel', 'arrow-left', {'setScreen' : 0})}} +
+ {{else data.screen == 3}} + Creating new feed message... +
+
Receiving channel:
+
+ {{:data.channel_name}} + {{:helper.link('Edit', 'pencil', {'set_channel_receiving' : 1})}} +
+
+
+
Message body:
+
+ {{:data.msg}} + {{:helper.link('Edit', 'pencil', {'set_new_message' : 1})}} +
+
+
+
Attached photo:
+
{{:helper.link(data.photo ? 'Dettach photo' : 'Attach photo', data.photo ? 'times' : 'paperclip', {'set_attachment' : 1})}}
+
+
+ {{:helper.link('Submit', 'share', {'submit_new_message' : 1})}} + {{:helper.link('Cancel', 'arrow-left', {'setScreen' : 0})}} +
+ {{else data.screen == 4}} + Network currently serves a total of {{:data.total_num}} feed channels, {{:data.active_num}} of which are active, and a total of {{:data.message_num}} feed stories. +
+
Liquid paper remaining:
+
{{:data.paper_remaining}} cm3
+
+
+ {{:helper.link('Print paper', 'print', {'print_paper' : 0})}} + {{:helper.link('Cancel', 'arrow-left', {'setScreen' : 0})}} +
+ {{else data.screen == 5}} + {{:data.channel_name}} [created by: {{:data.author}}]
+ Feed view count: {{:data.total_view_count}}
+ {{if data.censored}} +
+ ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
+ No further feed story additions are allowed while the D-Notice is in effect. +
+ {{else}} + {{for data.messages}} +
+ - {{:value.body}}
+ {{if value.img}} +
+ {{/if}} + [{{:value.message_type}} by {{:value.author}}]
+ Message view count: {{:value.view_count}} +
+ {{empty}} + No feed messages found in channel... + {{/for}} + {{/if}} +
+
+
{{:helper.link('Refresh', 'refresh', {'refresh' : 0})}}
+
{{:helper.link('Back', 'arrow-left', {'setScreen' : 1})}}
+
+ {{else data.screen == 6}} + Nanotrasen Feed Censorship Tool
+ NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible. + Keep in mind that users attempting to view a censored feed will instead see the [REDACTED] tag above it. +
+ Select feed channel to get stories from: +
+ {{for data.channels}} +
+ {{if value.admin}} + {{:helper.link('' + value.name + '', 'arrow-right', {'pick_censor_channel' : value.ref})}} + {{else}} + {{:helper.link(value.name, 'arrow-right', {'pick_censor_channel' : value.ref}, null, value.censored ? 'link linkDanger' : null)}} + {{/if}} +
+ {{empty}} + No feed channels found active... + {{/for}} +
+
+
{{:helper.link('Back', 'arrow-left', {'setScreen' : 0})}}
+
+ {{else data.screen == 7}} + Nanotrasen D-Notice Handler
+ A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station<>s morale, integrity or disciplinary behaviour. + A D-Notice will render a channel unable to be updated by anyone, without deleting any feedstories it might contain at the time. + You can lift a D-Notice if you have the required access at any time. +
+
+ {{for data.channels}} +
+ {{if value.admin}} + {{:helper.link('' + value.name + '', 'arrow-right', {'pick_d_notice' : value.ref})}} + {{else}} + {{:helper.link(value.name, 'arrow-right', {'pick_d_notice' : value.ref}, null, value.censored ? 'link linkDanger' : null)}} + {{/if}} +
+ {{empty}} + No feed channels found active... + {{/for}} +
+
+
+
{{:helper.link('Back', 'arrow-left', {'setScreen' : 0})}}
+
+ {{else data.screen == 8}} + {{:data.channel_name}} [created by: {{:data.author}}]
+ {{:helper.link(data.author_redacted ? 'Undo author censorship' : 'Censor channel author', null, {'censor_channel_author' : data.ref})}}

+ {{for data.messages}} +
+ - {{:value.body}}
+ {{if value.img}} +
+ {{/if}} + [{{:value.message_type}} by {{:value.author}}]
+ + {{:helper.link(value.body_redacted ? 'Undo story censorship' : 'Censor story', null, {'censor_channel_story_body' : value.ref})}} + {{:helper.link(value.author_redacted ? 'Undo author censorship' : 'Censor message author', null, {'censor_channel_story_author' : value.ref})}} + +
+ {{empty}} + No feed messages found in channel... + {{/for}} +
+
+
{{:helper.link('Back', 'arrow-left', {'setScreen' : 6})}}
+
+ {{else data.screen == 9}} + {{:data.channel_name}} [created by: {{:data.author}}]
+ Channel messages listed below. If you deem them dangerous to the station, you can
{{:helper.link('Bestow a D-Notice upon the channel', null, {'toggle_d_notice' : data.ref})}}


+ {{if data.censored}} +
+ ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice. + No further feed story additions are allowed while the D-Notice is in effect. +
+ {{else}} + {{for data.messages}} +
+ - {{:value.body}}
+ {{if value.img}} +
+ {{/if}} + [{{:value.message_type}} by {{:value.author}}] +
+ {{empty}} + No feed messages found in channel... + {{/for}} + {{/if}} +
+
{{:helper.link('Back', 'arrow-left', {'setScreen' : 7})}}
+
+ {{else data.screen == 10}} + Wanted Issue handler:
+ {{if data.wanted_already}} + A wanted issue is already in Feed Circulation. You can edit or cancel it below.
+ {{/if}} +
+
Criminal name:
+
+ {{:data.channel_name}} + {{:helper.link('Edit', 'pencil', {'set_wanted_name' : 1})}} +
+
+
+
Description:
+
+ {{:data.msg}} + {{:helper.link('Edit', 'pencil', {'set_wanted_desc' : 1})}} +
+
+
+
Attached photo:
+
{{:helper.link(data.photo ? 'Dettach photo' : 'Attach photo', data.photo ? 'times' : 'paperclip', {'set_attachment' : 1})}}
+
+
+
Author:
+
{{:data.wanted_already ? data.author : data.scanned_user}}
+
+
+
+ {{:helper.link(data.wanted_already ? 'Edit issue' : 'Submit', data.wanted_already ? 'pencil' : 'share', {'submit_wanted' : data.end_param})}} + {{if data.wanted_already}} + {{:helper.link('Take down issue', 'times', {'cancel_wanted' : 1})}} + {{/if}} + {{:helper.link('Back', 'arrow-left', {'setScreen' : 0})}} +
+ {{else data.screen == 11}} +

STATIONWIDE WANTED ISSUE

+ [Submitted by: {{:data.author}}]

+
+
Criminal:
+
{{:data.criminal}}
+
+
+
Description:
+
{{:data.description}}
+
+
+
Photo:
+
+ {{if data.photo}} + + {{else}} + None + {{/if}} +
+
+
+
{{:helper.link('Back', 'arrow-left', {'setScreen' : 0})}}
+
+ {{/if}} +{{/if}} \ No newline at end of file From d78d800d8a6a755e9749b2d48f9ddc87756e0c72 Mon Sep 17 00:00:00 2001 From: davipatury Date: Mon, 27 Feb 2017 19:14:20 -0300 Subject: [PATCH 13/83] Tank dispenser nano-ui. --- .../game/objects/structures/tank_dispenser.dm | 105 +++++++++--------- nano/templates/tank_dispenser.tmpl | 7 ++ 2 files changed, 60 insertions(+), 52 deletions(-) create mode 100644 nano/templates/tank_dispenser.tmpl diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 8d0962857f5..2f2c4e3e6f5 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -10,18 +10,16 @@ var/list/oxytanks = list() //sorry for the similar var names var/list/platanks = list() - /obj/structure/dispenser/oxygen plasmatanks = 0 /obj/structure/dispenser/plasma oxygentanks = 0 - /obj/structure/dispenser/New() + ..() update_icon() - /obj/structure/dispenser/update_icon() overlays.Cut() switch(oxygentanks) @@ -31,40 +29,48 @@ if(1 to 4) overlays += "plasma-[plasmatanks]" if(5 to INFINITY) overlays += "plasma-5" +/obj/structure/dispenser/attack_hand(mob/user) + if(..()) + return 1 + add_fingerprint(user) + ui_interact(user) -/obj/structure/dispenser/attack_hand(mob/user as mob) +/obj/structure/dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) user.set_machine(src) - var/dat = "[src]

" - dat += "Oxygen tanks: [oxygentanks] - [oxygentanks ? "Dispense" : "empty"]
" - dat += "Plasma tanks: [plasmatanks] - [plasmatanks ? "Dispense" : "empty"]" - user << browse(dat, "window=dispenser") - onclose(user, "dispenser") - return + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "tank_dispenser.tmpl", name, 275, 100, state = state) + ui.open() +/obj/structure/dispenser/ui_data(user) + var/list/data = list() + data["o_tanks"] = oxygentanks + data["p_tanks"] = plasmatanks + return data -/obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob, params) +/obj/structure/dispenser/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/tank/oxygen) || istype(I, /obj/item/weapon/tank/air) || istype(I, /obj/item/weapon/tank/anesthetic)) if(oxygentanks < 10) user.drop_item() - I.loc = src + I.forceMove(src) oxytanks.Add(I) oxygentanks++ + update_icon() to_chat(user, "You put [I] in [src].") else to_chat(user, "[src] is full.") - updateUsrDialog() - return + nanomanager.update_uis(src) if(istype(I, /obj/item/weapon/tank/plasma)) if(plasmatanks < 10) user.drop_item() - I.loc = src + I.forceMove(src) platanks.Add(I) plasmatanks++ + update_icon() to_chat(user, "You put [I] in [src].") else to_chat(user, "[src] is full.") - updateUsrDialog() - return + nanomanager.update_uis(src) if(istype(I, /obj/item/weapon/wrench)) if(anchored) to_chat(user, "You lean down and unwrench [src].") @@ -72,40 +78,35 @@ else to_chat(user, "You wrench [src] into place.") anchored = 1 - return /obj/structure/dispenser/Topic(href, href_list) - if(usr.stat || usr.restrained()) - return - if(Adjacent(usr)) - usr.set_machine(src) - if(href_list["oxygen"]) - if(oxygentanks > 0) - var/obj/item/weapon/tank/oxygen/O - if(oxytanks.len == oxygentanks) - O = oxytanks[1] - oxytanks.Remove(O) - else - O = new /obj/item/weapon/tank/oxygen(loc) - O.loc = loc - to_chat(usr, "You take [O] out of [src].") - oxygentanks-- - update_icon() - if(href_list["plasma"]) - if(plasmatanks > 0) - var/obj/item/weapon/tank/plasma/P - if(platanks.len == plasmatanks) - P = platanks[1] - platanks.Remove(P) - else - P = new /obj/item/weapon/tank/plasma(loc) - P.loc = loc - to_chat(usr, "You take [P] out of [src].") - plasmatanks-- - update_icon() - add_fingerprint(usr) - updateUsrDialog() - else - usr << browse(null, "window=dispenser") - return - return \ No newline at end of file + if(..()) + return 1 + + if(href_list["oxygen"]) + if(oxygentanks > 0) + var/obj/item/weapon/tank/oxygen/O + if(oxytanks.len == oxygentanks) + O = oxytanks[1] + oxytanks.Remove(O) + else + O = new /obj/item/weapon/tank/oxygen(loc) + O.forceMove(get_turf(src)) + to_chat(usr, "You take [O] out of [src].") + oxygentanks-- + update_icon() + if(href_list["plasma"]) + if(plasmatanks > 0) + var/obj/item/weapon/tank/plasma/P + if(platanks.len == plasmatanks) + P = platanks[1] + platanks.Remove(P) + else + P = new /obj/item/weapon/tank/plasma(loc) + P.forceMove(get_turf(src)) + to_chat(usr, "You take [P] out of [src].") + plasmatanks-- + update_icon() + + nanomanager.update_uis(src) + return 1 \ No newline at end of file diff --git a/nano/templates/tank_dispenser.tmpl b/nano/templates/tank_dispenser.tmpl new file mode 100644 index 00000000000..a634a2dde8e --- /dev/null +++ b/nano/templates/tank_dispenser.tmpl @@ -0,0 +1,7 @@ +
+
Dispense:
+
+ {{:helper.link('Plasma (' + helper.smoothRound(data.p_tanks) + ')', data.p_tanks ? 'square' : 'square-o', {'plasma' : 1}, data.p_tanks ? null : 'disabled')}} + {{:helper.link('Oxygen (' + helper.smoothRound(data.o_tanks) + ')', data.o_tanks ? 'square' : 'square-o', {'oxygen' : 1}, data.o_tanks ? null : 'disabled')}} +
+
\ No newline at end of file From 54713561ed21dfe52e9de13d272b9c81cb7f9c06 Mon Sep 17 00:00:00 2001 From: davipatury Date: Tue, 28 Feb 2017 12:41:41 -0300 Subject: [PATCH 14/83] Passive gate, pump, volume pump, filter and mixer nano-uis. --- .../components/binary_devices/passive_gate.dm | 67 ++++++++----- .../components/binary_devices/pump.dm | 62 +++++++----- .../components/binary_devices/volume_pump.dm | 63 +++++++----- .../components/trinary_devices/filter.dm | 99 ++++++++----------- .../components/trinary_devices/mixer.dm | 91 +++++++++-------- nano/templates/atmos_filter.tmpl | 24 +++++ nano/templates/atmos_mixer.tmpl | 32 ++++++ nano/templates/atmos_pump.tmpl | 24 +++++ 8 files changed, 289 insertions(+), 173 deletions(-) create mode 100644 nano/templates/atmos_filter.tmpl create mode 100644 nano/templates/atmos_mixer.tmpl create mode 100644 nano/templates/atmos_pump.tmpl diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 993ba4d802f..a9071e5ba13 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -88,20 +88,6 @@ return 1 -/obj/machinery/atmospherics/binary/passive_gate/interact(mob/user) - user.set_machine(src) - add_fingerprint(user) - - var/dat = {"Power: [on?"On":"Off"]
- Desirable output pressure: - [round(target_pressure,0.1)]kPa | Change - "} - - var/datum/browser/popup = new(user, "atmo_pump", name, 400, 400) - popup.set_content(dat) - popup.open(0) - onclose(user, "atmo_pump") - /obj/machinery/atmospherics/binary/passive_gate/receive_signal(datum/signal/signal) if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) return 0 @@ -142,27 +128,54 @@ to_chat(user, "Access denied.") return - interact(user) - + add_fingerprint(user) + ui_interact(user) + /obj/machinery/atmospherics/binary/passive_gate/attack_ghost(mob/user) - interact(user) + ui_interact(user) + +/obj/machinery/atmospherics/binary/passive_gate/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) + user.set_machine(src) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_pump.tmpl", name, 385, 115, state = state) + ui.open() + +/obj/machinery/atmospherics/binary/passive_gate/ui_data(mob/user) + var/list/data = list() + data["on"] = on + data["pressure"] = round(target_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + return data /obj/machinery/atmospherics/binary/passive_gate/Topic(href,href_list) - if(..()) + if(..()) return 1 + if(href_list["power"]) on = !on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") - if(href_list["set_press"]) - var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",target_pressure) as num - target_pressure = max(0, min(4500, new_pressure)) - investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") - usr.set_machine(src) - update_icon() - updateUsrDialog() - return + . = TRUE + if(href_list["pressure"]) + var/pressure = href_list["pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, target_pressure) as num|null + if(!isnull(pressure)) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") -/obj/machinery/atmospherics/binary/passive_gate/attackby(var/obj/item/weapon/W, var/mob/user, params) + update_icon() + nanomanager.update_uis(src) + +/obj/machinery/atmospherics/binary/passive_gate/attackby(obj/item/weapon/W, mob/user, params) if(!istype(W, /obj/item/weapon/wrench)) return ..() if(on) diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 824d3b1c5f0..908a5318dda 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -103,20 +103,6 @@ Thus, the two variables affect pump operation are set in New(): radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) return 1 -/obj/machinery/atmospherics/binary/pump/interact(mob/user) - user.set_machine(src) - add_fingerprint(user) - - var/dat = {"Power: [on?"On":"Off"]
- Desirable output pressure: - [round(target_pressure,0.1)]kPa | Change - "} - - var/datum/browser/popup = new(user, "atmo_pump", name, 400, 400) - popup.set_content(dat) - popup.open(0) - onclose(user, "atmo_pump") - /obj/machinery/atmospherics/binary/pump/initialize() ..() if(frequency) @@ -162,24 +148,52 @@ Thus, the two variables affect pump operation are set in New(): to_chat(user, "Access denied.") return - interact(user) - + add_fingerprint(user) + ui_interact(user) + /obj/machinery/atmospherics/binary/pump/attack_ghost(mob/user) - interact(user) + ui_interact(user) + +/obj/machinery/atmospherics/binary/pump/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) + user.set_machine(src) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_pump.tmpl", name, 385, 115, state = state) + ui.open() + +/obj/machinery/atmospherics/binary/pump/ui_data(mob/user) + var/list/data = list() + data["on"] = on + data["pressure"] = round(target_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + return data /obj/machinery/atmospherics/binary/pump/Topic(href,href_list) if(..()) return 1 + if(href_list["power"]) on = !on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") - if(href_list["set_press"]) - var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",target_pressure) as num - target_pressure = max(0, min(4500, new_pressure)) - investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") - usr.set_machine(src) + . = TRUE + if(href_list["pressure"]) + var/pressure = href_list["pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, target_pressure) as num|null + if(!isnull(pressure)) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") + update_icon() - updateUsrDialog() + nanomanager.update_uis(src) /obj/machinery/atmospherics/binary/pump/power_change() var/old_stat = stat @@ -187,7 +201,7 @@ Thus, the two variables affect pump operation are set in New(): if(old_stat != stat) update_icon() -/obj/machinery/atmospherics/binary/pump/attackby(var/obj/item/weapon/W, var/mob/user, params) +/obj/machinery/atmospherics/binary/pump/attackby(obj/item/weapon/W, mob/user, params) if(!istype(W, /obj/item/weapon/wrench)) return ..() if(!(stat & NOPOWER) && on) diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm index 99465e15d88..0ec613cb049 100644 --- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm @@ -99,21 +99,6 @@ Thus, the two variables affect pump operation are set in New(): return 1 -/obj/machinery/atmospherics/binary/volume_pump/interact(mob/user) - user.set_machine(src) - add_fingerprint(user) - - var/dat = {"Power: [on?"On":"Off"]
- Desirable output flow: - [round(transfer_rate,1)]l/s | Change - "} - - var/datum/browser/popup = new(user, "atmo_pump", name, 400, 400) - popup.set_content(dat) - popup.open(0) - onclose(user, "atmo_pump") - - /obj/machinery/atmospherics/binary/volume_pump/receive_signal(datum/signal/signal) if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) return 0 @@ -153,24 +138,52 @@ Thus, the two variables affect pump operation are set in New(): to_chat(user, "Access denied.") return - interact(user) - + add_fingerprint(user) + ui_interact(user) + /obj/machinery/atmospherics/binary/volume_pump/attack_ghost(mob/user) - interact(user) + ui_interact(user) + +/obj/machinery/atmospherics/binary/volume_pump/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) + user.set_machine(src) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_pump.tmpl", name, 310, 115, state = state) + ui.open() + +/obj/machinery/atmospherics/binary/volume_pump/ui_data(mob/user) + var/list/data = list() + data["on"] = on + data["rate"] = round(transfer_rate) + data["max_rate"] = round(MAX_TRANSFER_RATE) + return data /obj/machinery/atmospherics/binary/volume_pump/Topic(href,href_list) if(..()) return 1 + if(href_list["power"]) on = !on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") - if(href_list["set_transfer_rate"]) - var/new_transfer_rate = input(usr,"Enter new output volume (0-200l/s)","Flow control",transfer_rate) as num - transfer_rate = max(0, min(200, new_transfer_rate)) - investigate_log("was set to [transfer_rate] L/s by [key_name(usr)]", "atmos") - usr.set_machine(src) + . = TRUE + if(href_list["rate"]) + var/rate = href_list["rate"] + if(rate == "max") + rate = MAX_TRANSFER_RATE + . = TRUE + else if(rate == "input") + rate = input("New transfer rate (0-[MAX_TRANSFER_RATE] L/s):", name, transfer_rate) as num|null + if(!isnull(rate)) + . = TRUE + else if(text2num(rate) != null) + rate = text2num(rate) + . = TRUE + if(.) + transfer_rate = Clamp(rate, 0, MAX_TRANSFER_RATE) + investigate_log("was set to [transfer_rate] L/s by [key_name(usr)]", "atmos") + update_icon() - updateUsrDialog() + nanomanager.update_uis(src) /obj/machinery/atmospherics/binary/volume_pump/power_change() var/old_stat = stat @@ -178,7 +191,7 @@ Thus, the two variables affect pump operation are set in New(): if(old_stat != stat) update_icon() -/obj/machinery/atmospherics/binary/volume_pump/attackby(var/obj/item/weapon/W, var/mob/user, params) +/obj/machinery/atmospherics/binary/volume_pump/attackby(obj/item/weapon/W, mob/user, params) if(!istype(W, /obj/item/weapon/wrench)) return ..() if(!(stat & NOPOWER) && on) diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index b8ecae86b85..109c3a2fa04 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -6,8 +6,6 @@ name = "gas filter" - var/temp = null // -- TLE - var/target_pressure = ONE_ATMOSPHERE var/filter_type = 0 @@ -146,9 +144,9 @@ Filter types: /obj/machinery/atmospherics/trinary/filter/initialize() set_frequency(frequency) ..() - -/obj/machinery/atmospherics/trinary/filter/attack_ghost(mob/user) - interact(user) + +/obj/machinery/atmospherics/trinary/filter/attack_ghost(mob/user) + ui_interact(user) /obj/machinery/atmospherics/trinary/filter/attack_hand(mob/user) if(..()) @@ -157,63 +155,52 @@ Filter types: if(!allowed(user)) to_chat(user, "Access denied.") return - - interact(user) - -/obj/machinery/atmospherics/trinary/filter/interact(mob/user) - user.set_machine(src) + add_fingerprint(user) - - var/dat - var/current_filter_type - switch(filter_type) - if(0) - current_filter_type = "Toxins" - if(1) - current_filter_type = "Oxygen" - if(2) - current_filter_type = "Nitrogen" - if(3) - current_filter_type = "Carbon Dioxide" - if(4) - current_filter_type = "Nitrous Oxide" - if(-1) - current_filter_type = "Nothing" - else - current_filter_type = "ERROR - Report this bug to the admin, please!" + ui_interact(user) - dat += {" - Power: [on?"On":"Off"]
- Filtering: [current_filter_type]

-

Set Filter Type:

- Toxins
- Oxygen
- Nitrogen
- Carbon Dioxide
- Nitrous Oxide
- Nothing
-
Desirable output pressure: - [target_pressure]kPa | Change - "} +/obj/machinery/atmospherics/trinary/filter/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) + user.set_machine(src) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_filter.tmpl", name, 475, 155, state = state) + ui.open() - var/datum/browser/popup = new(user, "atmo_filter", name, 400, 400) - popup.set_content(dat) - popup.open(0) - onclose(user, "atmo_filter") +/obj/machinery/atmospherics/trinary/filter/ui_data(mob/user) + var/list/data = list() + data["on"] = on + data["pressure"] = round(target_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + data["filter_type"] = filter_type + return data /obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE if(..()) return 1 - usr.set_machine(src) - add_fingerprint(usr) - if(href_list["filterset"]) - filter_type = text2num(href_list["filterset"]) - if(href_list["temp"]) - temp = null - if(href_list["set_press"]) - var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",target_pressure) as num - target_pressure = max(0, min(4500, new_pressure)) + if(href_list["power"]) - on=!on + on = !on + investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + . = TRUE + if(href_list["pressure"]) + var/pressure = href_list["pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, target_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") + if(href_list["filter"]) + filter_type = text2num(href_list["filter"]) + investigate_log("was set to filter [filter_type] by [key_name(usr)]", "atmos") + . = TRUE + update_icon() - updateUsrDialog() \ No newline at end of file + nanomanager.update_uis(src) \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index f859175cdb2..0657f8d9f5f 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -16,7 +16,7 @@ icon_state = "mmap" flipped = 1 -/obj/machinery/atmospherics/trinary/mixer/update_icon(var/safety = 0) +/obj/machinery/atmospherics/trinary/mixer/update_icon(safety = 0) if(flipped) icon_state = "m" else @@ -107,9 +107,9 @@ parent3.update = 1 return 1 - -/obj/machinery/atmospherics/trinary/mixer/attack_ghost(mob/user) - interact(user) + +/obj/machinery/atmospherics/trinary/mixer/attack_ghost(mob/user) + ui_interact(user) /obj/machinery/atmospherics/trinary/mixer/attack_hand(mob/user) if(..()) @@ -118,52 +118,61 @@ if(!allowed(user)) to_chat(user, "Access denied.") return - - interact(user) - -/obj/machinery/atmospherics/trinary/mixer/interact(mob/user) - user.set_machine(src) - add_fingerprint(user) - var/dat = {"Power: [on?"On":"Off"]
- Desirable output pressure: - [target_pressure]kPa | Change -
- Node 1 Concentration: - - - - - [node1_concentration]([node1_concentration*100]%) - + - + -
- Node 2 Concentration: - - - - - [node2_concentration]([node2_concentration*100]%) - + - + - "} - var/datum/browser/popup = new(user, "atmo_mixer", name, 400, 400) - popup.set_content(dat) - popup.open(0) - onclose(user, "atmo_mixer") + add_fingerprint(user) + ui_interact(user) + +/obj/machinery/atmospherics/trinary/mixer/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) + user.set_machine(src) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_mixer.tmpl", name, 370, 165, state = state) + ui.open() + +/obj/machinery/atmospherics/trinary/mixer/ui_data(mob/user) + var/list/data = list() + data["on"] = on + data["pressure"] = round(target_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + data["node1_concentration"] = round(node1_concentration*100) + data["node2_concentration"] = round(node2_concentration*100) + return data /obj/machinery/atmospherics/trinary/mixer/Topic(href,href_list) if(..()) return 1 + if(href_list["power"]) on = !on - if(href_list["set_press"]) - var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",target_pressure) as num - target_pressure = max(0, min(4500, new_pressure)) - if(href_list["node1_c"]) - var/value = text2num(href_list["node1_c"]) + investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + . = TRUE + if(href_list["pressure"]) + var/pressure = href_list["pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, target_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") + if(href_list["node1"]) + var/value = text2num(href_list["node1"]) node1_concentration = max(0, min(1, node1_concentration + value)) node2_concentration = max(0, min(1, node2_concentration - value)) - if(href_list["node2_c"]) - var/value = text2num(href_list["node2_c"]) + investigate_log("was set to [node1_concentration] % on node 1 by [key_name(usr)]", "atmos") + . = TRUE + if(href_list["node2"]) + var/value = text2num(href_list["node2"]) node2_concentration = max(0, min(1, node2_concentration + value)) node1_concentration = max(0, min(1, node1_concentration - value)) + investigate_log("was set to [node2_concentration] % on node 2 by [key_name(usr)]", "atmos") + . = TRUE + update_icon() - updateUsrDialog() - return + nanomanager.update_uis(src) \ No newline at end of file diff --git a/nano/templates/atmos_filter.tmpl b/nano/templates/atmos_filter.tmpl new file mode 100644 index 00000000000..e0715e243c5 --- /dev/null +++ b/nano/templates/atmos_filter.tmpl @@ -0,0 +1,24 @@ +
+
Power:
+
{{:helper.link(data.on ? 'On' : 'Off', data.on ? 'power-off' : 'times', {'power' : 1}, null, data.on ? 'selected' : null)}}
+
+
+
Output Pressure:
+
+ {{:helper.link('Set', 'pencil', {'pressure' : 'input'})}} + {{:helper.link('Max', 'plus', {'pressure' : 'max'}, data.pressure == data.max_pressure ? 'disabled' : null)}} + {{:helper.smoothRound(data.pressure)}} kPa +
+
+
+
Filter:
+
+ {{:helper.link('Nothing', null, {'filter' : -1}, data.filter_type == -1 ? 'selected' : null)}} + {{:helper.link('Plasma', null, {'filter' : 0}, data.filter_type == 0 ? 'selected' : null)}} + {{:helper.link('O2', null, {'filter' : 1}, data.filter_type == 1 ? 'selected' : null)}} + {{:helper.link('N2', null, {'filter' : 2}, data.filter_type == 2 ? 'selected' : null)}} + {{:helper.link('CO2', null, {'filter' : 3}, data.filter_type == 3 ? 'selected' : null)}} + {{:helper.link('N2O', null, {'filter' : 4}, data.filter_type == 4 ? 'selected' : null)}} +
+
+ diff --git a/nano/templates/atmos_mixer.tmpl b/nano/templates/atmos_mixer.tmpl new file mode 100644 index 00000000000..3bae7f993bd --- /dev/null +++ b/nano/templates/atmos_mixer.tmpl @@ -0,0 +1,32 @@ +
+
Power:
+
{{:helper.link(data.on ? 'On' : 'Off', data.on ? 'power-off' : 'times', {'power' : 1}, null, data.on ? 'selected' : null)}}
+
+
+
Output Pressure:
+
+ {{:helper.link('Set', 'pencil', {'pressure' : 'input'})}} + {{:helper.link('Max', 'plus', {'pressure' : 'max'}, data.pressure == data.max_pressure ? 'disabled' : null)}} + {{:helper.smoothRound(data.pressure)}} kPa +
+
+
+
Node 1:
+
+ {{:helper.link('', null, {'node1' : -0.1}, data.node1_concentration == 0 ? 'disabled' : null)}} + {{:helper.link('', null, {'node1' : -0.01}, data.node1_concentration == 0 ? 'disabled' : null)}} + {{:helper.link('', null, {'node1' : 0.01}, data.node1_concentration == 100 ? 'disabled' : null)}} + {{:helper.link('', null, {'node1' : 0.1}, data.node1_concentration == 100 ? 'disabled' : null)}} + {{:helper.smoothRound(data.node1_concentration)}}% +
+
+
+
Node 2:
+
+ {{:helper.link('', null, {'node2' : -0.1}, data.node2_concentration == 0 ? 'disabled' : null)}} + {{:helper.link('', null, {'node2' : -0.01}, data.node2_concentration == 0 ? 'disabled' : null)}} + {{:helper.link('', null, {'node2' : 0.01}, data.node2_concentration == 100 ? 'disabled' : null)}} + {{:helper.link('', null, {'node2' : 0.1}, data.node2_concentration == 100 ? 'disabled' : null)}} + {{:helper.smoothRound(data.node2_concentration)}}% +
+
\ No newline at end of file diff --git a/nano/templates/atmos_pump.tmpl b/nano/templates/atmos_pump.tmpl new file mode 100644 index 00000000000..a27e5b710dd --- /dev/null +++ b/nano/templates/atmos_pump.tmpl @@ -0,0 +1,24 @@ +
+
Power:
+
{{:helper.link(data.on ? 'On' : 'Off', data.on ? 'power-off' : 'times', {'power' : 1}, null, data.on ? 'selected' : null)}}
+
+{{if data.max_rate}} +
+
Transfer Rate:
+
+ {{:helper.link('Set', 'pencil', {'rate' : 'input'})}} + {{:helper.link('Max', 'plus', {'rate' : 'max'}, data.rate == data.max_rate ? 'disabled' : null)}} + {{:helper.smoothRound(data.rate)}} L/s +
+
+{{else}} +
+
Output Pressure:
+
+ {{:helper.link('Set', 'pencil', {'pressure' : 'input'})}} + {{:helper.link('Max', 'plus', {'pressure' : 'max'}, data.pressure == data.max_pressure ? 'disabled' : null)}} + {{:helper.smoothRound(data.pressure)}} kPa +
+
+{{/if}} + From 9613496ffe0d3a00c04411f4f57b8e8dc11549a1 Mon Sep 17 00:00:00 2001 From: Kyep Date: Tue, 28 Feb 2017 23:01:38 -0800 Subject: [PATCH 15/83] Rebalances event chances, pass 1 Major Events: - Enables trader event to happen randomly. - Increases chances of carp migration and meteor wave events. - Halves the chances of Xenomorph events. Medium Events: - Reduces chances of rogue drones (that don't do much currently) - Increases chances of radiation storms (that make people enter maint) - Increases chances of most kinds of anomaly (flux, bluespace, pyro, etc) - Increases chances of meteor shower - Decreases chances of meaty ores (they do very little) --- code/modules/events/event_container.dm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 89ae637b84b..481b6b9b60b 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -146,17 +146,17 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MODERATE, "Nothing", /datum/event/nothing, 1230), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 10), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 200, list(ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_SECURITY = 20), 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 40, list(ASSIGNMENT_SECURITY = 20)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 0, list(ASSIGNMENT_SECURITY = 20)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Vines", /datum/event/spacevine, 250, list(ASSIGNMENT_ENGINEER = 10)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_wave, 0, list(ASSIGNMENT_ENGINEER = 20)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meaty Ores", /datum/event/dust/meaty, 0, list(ASSIGNMENT_ENGINEER = 30)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_wave, 0, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meaty Ores", /datum/event/dust/meaty, 0, list(ASSIGNMENT_ENGINEER = 20)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(ASSIGNMENT_AI = 150, ASSIGNMENT_SECURITY = 120)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Prison Break", /datum/event/prison_break, 0, list(ASSIGNMENT_SECURITY = 100)), //new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 100)), //new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENCE = 100)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 200, list(ASSIGNMENT_ENGINEER = 60)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Electrical Storm", /datum/event/electrical_storm, 250, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_JANITOR = 150)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 0, list(ASSIGNMENT_MEDICAL = 50), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 50, list(ASSIGNMENT_MEDICAL = 50), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ion_storm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Borer Infestation", /datum/event/borer_infestation, 40, list(ASSIGNMENT_SECURITY = 30), 1), @@ -170,9 +170,9 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vent Clog", /datum/event/vent_clog, 250), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Wormholes", /datum/event/wormholes, 150), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Pyro Anomaly", /datum/event/anomaly/anomaly_pyro, 100, list(ASSIGNMENT_ENGINEER = 60)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vortex Anomaly", /datum/event/anomaly/anomaly_vortex, 50, list(ASSIGNMENT_ENGINEER = 25)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Bluespace Anomaly", /datum/event/anomaly/anomaly_bluespace, 50, list(ASSIGNMENT_ENGINEER = 25)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Flux Anomaly", /datum/event/anomaly/anomaly_flux, 50, list(ASSIGNMENT_ENGINEER = 50)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vortex Anomaly", /datum/event/anomaly/anomaly_vortex, 100, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Bluespace Anomaly", /datum/event/anomaly/anomaly_bluespace, 100, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Flux Anomaly", /datum/event/anomaly/anomaly_flux, 100, list(ASSIGNMENT_ENGINEER = 50)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravitational Anomaly", /datum/event/anomaly/anomaly_grav, 200), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Revenant", /datum/event/revenant, 150), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Swarmer Spawn", /datum/event/spawn_swarmer, 150, is_one_shot = 1), @@ -184,13 +184,13 @@ var/list/event_last_fired = list() severity = EVENT_LEVEL_MAJOR available_events = list( new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 1320), - new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 3), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 5), 1), //new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station, 0, list(ASSIGNMENT_ANY = 5)), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 0, list(ASSIGNMENT_ENGINEER = 30), 1), - new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 0, list(ASSIGNMENT_ENGINEER = 3), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 0, list(ASSIGNMENT_ENGINEER = 5), 1), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Abductor Visit", /datum/event/abductor, 80, is_one_shot = 1), - new /datum/event_meta/alien(EVENT_LEVEL_MAJOR, "Alien Infestation", /datum/event/alien_infestation, 0, list(ASSIGNMENT_SECURITY = 30), 1), - new /datum/event_meta(EVENT_LEVEL_MAJOR, "Traders", /datum/event/traders, 0, is_one_shot = 1), + new /datum/event_meta/alien(EVENT_LEVEL_MAJOR, "Alien Infestation", /datum/event/alien_infestation, 0, list(ASSIGNMENT_SECURITY = 15), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Traders", /datum/event/traders, 80, is_one_shot = 1), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Terror Spiders", /datum/event/spider_terror, 0, list(ASSIGNMENT_SECURITY = 20), is_one_shot = 1), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Slaughter Demon", /datum/event/spawn_slaughter, 15, is_one_shot = 1) ) From a6406479ba79e49a132bac6819f981e0147611b0 Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 1 Mar 2017 00:55:22 -0800 Subject: [PATCH 16/83] Reverts change to carp migration event chance --- code/modules/events/event_container.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 481b6b9b60b..0478e52a04e 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -184,7 +184,7 @@ var/list/event_last_fired = list() severity = EVENT_LEVEL_MAJOR available_events = list( new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 1320), - new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 5), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 3), 1), //new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station, 0, list(ASSIGNMENT_ANY = 5)), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 0, list(ASSIGNMENT_ENGINEER = 30), 1), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 0, list(ASSIGNMENT_ENGINEER = 5), 1), From 77fe7cfcc3c960f51ed74d920681575600b5f66d Mon Sep 17 00:00:00 2001 From: FlattestGuitar Date: Wed, 1 Mar 2017 13:16:26 +0100 Subject: [PATCH 17/83] Coflicts --- code/game/jobs/job/supervisor.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm index 4394147cb37..af91e7788bd 100644 --- a/code/game/jobs/job/supervisor.dm +++ b/code/game/jobs/job/supervisor.dm @@ -210,7 +210,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 0) access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_magistrate) - minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_lawyer, access_magistrate) + minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_lawyer, access_magistrate, access_heads) outfit = /datum/outfit/job/judge @@ -220,6 +220,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 0) uniform = /obj/item/clothing/under/suit_jacket/really_black suit = /obj/item/clothing/suit/judgerobe + gloves = /obj/item/clothing/gloves/color/white shoes = /obj/item/clothing/shoes/centcom head = /obj/item/clothing/head/powdered_wig l_ear = /obj/item/device/radio/headset/heads/magistrate/alt From 5455815b14298f6bcdf1f3d83ae55e0f7aad7b42 Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 1 Mar 2017 23:09:23 -0800 Subject: [PATCH 18/83] Halved increases for rad storm and anomalies --- code/modules/events/event_container.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 0453a1b59ae..7fd67c60afa 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -156,7 +156,7 @@ var/list/event_last_fired = list() //new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENCE = 100)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 200, list(ASSIGNMENT_ENGINEER = 60)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Electrical Storm", /datum/event/electrical_storm, 250, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_JANITOR = 150)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 50, list(ASSIGNMENT_MEDICAL = 50), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 25, list(ASSIGNMENT_MEDICAL = 50), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ion_storm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Borer Infestation", /datum/event/borer_infestation, 40, list(ASSIGNMENT_SECURITY = 30), 1), @@ -169,10 +169,10 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MODERATE, "Dimensional Tear", /datum/event/tear, 0, list(ASSIGNMENT_SECURITY = 35)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vent Clog", /datum/event/vent_clog, 250), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Wormholes", /datum/event/wormholes, 150), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Pyro Anomaly", /datum/event/anomaly/anomaly_pyro, 100, list(ASSIGNMENT_ENGINEER = 60)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vortex Anomaly", /datum/event/anomaly/anomaly_vortex, 100, list(ASSIGNMENT_ENGINEER = 25)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Bluespace Anomaly", /datum/event/anomaly/anomaly_bluespace, 100, list(ASSIGNMENT_ENGINEER = 25)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Flux Anomaly", /datum/event/anomaly/anomaly_flux, 100, list(ASSIGNMENT_ENGINEER = 50)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Pyro Anomaly", /datum/event/anomaly/anomaly_pyro, 75, list(ASSIGNMENT_ENGINEER = 60)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vortex Anomaly", /datum/event/anomaly/anomaly_vortex, 75, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Bluespace Anomaly", /datum/event/anomaly/anomaly_bluespace, 75, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Flux Anomaly", /datum/event/anomaly/anomaly_flux, 75, list(ASSIGNMENT_ENGINEER = 50)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravitational Anomaly", /datum/event/anomaly/anomaly_grav, 200), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Revenant", /datum/event/revenant, 150), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Swarmer Spawn", /datum/event/spawn_swarmer, 150, is_one_shot = 1), From 04543d1466d3bd55dffcd417092711e3e1ed4b68 Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 1 Mar 2017 23:44:31 -0800 Subject: [PATCH 19/83] Initial version, from TG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ports Poison Pen from TG: https://github.com/tgstation/tgstation/pull/23778 Adds a HoP/Cargotech/QM-only traitor pen that can be used on paper to poison it. Picking up poisoned paper without gloves transfers the poison through your skin, into your bloodstream. Subsequent people to pick it up are not affected. The poison is 15 units of the nerve agent, sarin. This is enough to kill you in a couple of minutes. It is quite obvious. The pen looks like a normal pen, costs 5 TC, and has 3 uses. It cannot be used as a direct weapon. It has to be applied to paper to be effective. 🆑 Kyep rscadd: Added Poison Pen, a stealthy way of applying a contact-based poison to paper. Available to Syndicate HoPs, QMs, and Cargo Techs. /🆑 --- code/datums/uplink_item.dm | 11 +++++++++++ code/modules/paperwork/paper.dm | 13 +++++++++++++ code/modules/paperwork/pen.dm | 18 ++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index d54311921fd..050e01dcf61 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -347,6 +347,17 @@ var/list/uplink_items = list() cost = 2 job = list("Research Director","Chief Medical Officer","Medical Doctor","Psychiatrist","Paramedic","Virologist","Bartender") +// Paper contact poison pen + +/datum/uplink_item/stealthy_weapons/poison_pen + name = "Poison Pen" + desc = "Cutting edge of deadly writing implements technology, this gadget will infuse any piece of paper with delayed contact poison." + item = /obj/item/weapon/pen/poison + cost = 5 + excludefrom = list(/datum/game_mode/nuclear) + job = list("Head of Personnel", "Quartermaster", "Cargo Technician") + + // DANGEROUS WEAPONS /datum/uplink_item/dangerous diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index a5f04461551..7a2ae8b8e96 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -31,6 +31,8 @@ var/offset_y[0] //usage by the photocopier var/rigged = 0 var/spam_flag = 0 + var/contact_poison // Reagent ID to transfer on contact + var/contact_poison_volume = 0 var/const/deffont = "Verdana" var/const/signfont = "Times New Roman" @@ -278,6 +280,8 @@ info += t // Oh, he wants to edit to the end of the file, let him. updateinfolinks() + i.on_write(src,usr) + show_content(usr, forceshow = 1, infolinks = 1) update_icon() @@ -653,3 +657,12 @@ /obj/item/weapon/paper/evilfax/proc/evilpaper_selfdestruct() visible_message("[src] spontaneously catches fire, and burns up!") qdel(src) + +/obj/item/weapon/paper/pickup(user) + if(contact_poison && ishuman(user)) + var/mob/living/carbon/human/H = user + var/obj/item/clothing/gloves/G = H.gloves + if(!istype(G) || G.transfer_prints) + H.reagents.add_reagent(contact_poison, contact_poison_volume) + contact_poison = null + ..() \ No newline at end of file diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index d7f86727d87..72fd065af3b 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -182,3 +182,21 @@ else icon_state = initial(icon_state) //looks like a normal pen when off. item_state = initial(item_state) + +/obj/item/proc/on_write(obj/item/weapon/paper/P, mob/user) + return + +/obj/item/weapon/pen/poison + var/uses_left = 3 + +/obj/item/weapon/pen/poison/on_write(obj/item/weapon/paper/P, mob/user) + if(P.contact_poison_volume) + to_chat(user, "[P] is already coated.") + else if(uses_left) + uses_left-- + P.contact_poison = "sarin" + P.contact_poison_volume = 15 + add_logs(user, P, "used poison pen on") + to_chat(user, "You apply the poison to [P].") + else + to_chat(user, "[src] clicks. It seems to be depleted.") \ No newline at end of file From 5ca4d306db575a23c77896ca370d2457220d5a5c Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 1 Mar 2017 23:54:28 -0800 Subject: [PATCH 20/83] More logging --- code/modules/paperwork/paper.dm | 2 ++ code/modules/paperwork/pen.dm | 1 + 2 files changed, 3 insertions(+) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 7a2ae8b8e96..b9915369f46 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -33,6 +33,7 @@ var/spam_flag = 0 var/contact_poison // Reagent ID to transfer on contact var/contact_poison_volume = 0 + var/contact_poison_poisoner = null var/const/deffont = "Verdana" var/const/signfont = "Times New Roman" @@ -665,4 +666,5 @@ if(!istype(G) || G.transfer_prints) H.reagents.add_reagent(contact_poison, contact_poison_volume) contact_poison = null + add_logs(user, src, "picked up [src], the paper poisoned by [contact_poison_poisoner]") ..() \ No newline at end of file diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 72fd065af3b..8794de26b88 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -196,6 +196,7 @@ uses_left-- P.contact_poison = "sarin" P.contact_poison_volume = 15 + P.contact_poison_poisoner = user.name add_logs(user, P, "used poison pen on") to_chat(user, "You apply the poison to [P].") else From 4d80e4ac360477d32e0013c5b68f98a59d634613 Mon Sep 17 00:00:00 2001 From: uraniummeltdown Date: Thu, 2 Mar 2017 20:45:42 +0400 Subject: [PATCH 21/83] allow monkeys to use guns --- code/modules/mob/living/living.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6f4ad8840c7..31fed13fdc5 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -847,7 +847,7 @@ return tally /mob/living/proc/can_use_guns(var/obj/item/weapon/gun/G) - if(G.trigger_guard != TRIGGER_GUARD_ALLOW_ALL && !IsAdvancedToolUser()) + if(G.trigger_guard != TRIGGER_GUARD_ALLOW_ALL && !IsAdvancedToolUser() && !issmall(src)) to_chat(src, "You don't have the dexterity to do this!") return 0 return 1 From f2bd748a11a95ab63b008212a659fc95327ec136 Mon Sep 17 00:00:00 2001 From: Kyep Date: Thu, 2 Mar 2017 22:48:46 -0800 Subject: [PATCH 22/83] Adds alarm sound to objective changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🆑 tweak: Antags whose objectives are manually announced by an admin, or altered automatically as a result of their target cryoing, will now hear a warning sound. The sound is the same as the 'crew transfer vote called' sound. Additionally, the text notice for changed objectives is more obvious. /🆑 --- code/datums/mind.dm | 3 ++- code/game/machinery/cryopod.dm | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 27947b9e608..e6a43aae6b9 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1204,10 +1204,11 @@ else if(href_list["obj_announce"]) var/obj_count = 1 - to_chat(current, "\blue Your current objectives:") + to_chat(current, "
Your current objectives:") for(var/datum/objective/objective in objectives) to_chat(current, "Objective #[obj_count]: [objective.explanation_text]") obj_count++ + current << 'sound/ambience/alarm4.ogg' log_admin("[key_name(usr)] has announced [key_name(current)]'s objectives") message_admins("[key_name_admin(usr)] has announced [key_name_admin(current)]'s objectives") diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 807d3caf261..50489a93a2d 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -333,7 +333,8 @@ else if(O.target && istype(O.target,/datum/mind)) if(O.target == occupant.mind) if(O.owner && O.owner.current) - to_chat(O.owner.current, "You get the feeling your target is no longer within reach. Time for Plan [pick("A","B","C","D","X","Y","Z")]. Objectives updated!") + to_chat(O.owner.current, "
You get the feeling your target is no longer within reach. Time for Plan [pick("A","B","C","D","X","Y","Z")]. Objectives updated!") + O.owner.current << 'sound/ambience/alarm4.ogg' O.target = null spawn(1) //This should ideally fire after the occupant is deleted. if(!O) return From 21d225c22e369064f057bd349252312be490477a Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Fri, 3 Mar 2017 19:59:33 -0500 Subject: [PATCH 23/83] Adds Light-on Sprites for Vox Engi, Atmos, CE hardsuits, New Sprite for Mining hardsuit Replaces the old Vox mining hardsuit sprite (which was really the Science Vox space-suit from /vg/station) with the Mining Vox space-suit sprite (also from /vg/). Adds helmet-light ON sprites for Vox CE, Engineer, Atmospheric Technician and Miner hardsuits. --- icons/mob/species/vox/helmet.dmi | Bin 49116 -> 52027 bytes icons/mob/species/vox/suit.dmi | Bin 206874 -> 206134 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/species/vox/helmet.dmi b/icons/mob/species/vox/helmet.dmi index 3510b731987e6ad4cf7cd1880cfc010571d6ec73..29ee38f8169bf5ce935b242eae99c09abf7e4bc5 100644 GIT binary patch literal 52027 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ξU<8vQncbacz*_;tHvmVnB2M>Fx1eO!2&#d6d1lsUS7eb|oG-lu~5mXI#^A2g0QjfLoVY_@WM0@4>Grc0#NaZ4$CZ>2+q7#N~Xe7vNfLTwq zoe5ML6$=BtE6ppAo%A2wnu4+8TvO-zW=OYO)zZ3S^jTOT@$gXC%1FA6~*IA}YS zj?>>&1kf0ka{^u3%o`|#(+NhgYJym^Ty8XK15oQKxGoa>WG>Htx83&S&!1_*BuL+^o=eQ&w`mM7>sEc%5%Td??!kB@Je>8}S&2$`%BchZ?- zQMBnkV+*T{j~D1s&q+go?Twj-hv=HR6O0D+0z6N@@fSE`=vH0H$q)scZ1$6mi|zWX zAL(r|#7B(%Z62*|9AfeGJE%sY+1(y4@SMUdg^FMfj5A1AUEzsh?%4y{t8hj=dmmnx zqG}orPZ1U*3lx;RysG=(ba^Z1Z?v79Ks)Y^8DDx?0Z{N8l~;`|NHjtJo0m7LI)OLd z)yT4Pn9Dc}=(w*@Q8-Q2tC*I1X;@yY=u9#Y@sDo+-aGvBo&t2wk$r)Yoyyrg#B|w! zwOnAJq!!10=!JWn?>2v1lkbVVS0fz=mA^jQlQT180zFs5(C}TVgWu8~dU=~Eub@#m zgZH;_0kpYP*hD=G;$cJ`QBw#wp9N$CmX~JdK|h4;5*+sW3NzP_};$wen#U1 zMk(#+&hN6-XAx}xc-bf%DYK7mYZ@1AOnTbAO@JA@Ms>1W&m}tCxW~~uc-@SS!Z+ve z;XI?;1~8^QQq^ zw|V?XqcK1^qN1XLpR+caA5s*dH6*R~B@0Y;%P}V~^70b%r{W*HM`7?Bq@krgpC~%t zch7ueS~Y$6tUEpB$Fg0^vK>_i-SrP6;01Q=<)0{4q9*Ob)x4J(_R;285-CGlHc8!l z^s_Z-Gk?Ieo#}%$&)g$7ls3#q{g%FPILK9@E0=ZzbvUx=p!iGak1C%P!SHm7TbVhV zRMCUG9KT+fppP$#Ul27@d1F*;K#tpgU9AY$1@aESIgOiA(3W_xfrkB*oQxi4`Pec$Ob0JUpEKhSGFJitZmOdGUo#+^YgCO8vI}U|}$_ xn&`hKvTYB;u%CmOZt>}4|8rB@{uASigo;4njjvyX*+alTWd$|)GFj7*{{_l2Hz)uA literal 49116 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 &E;(WS2A+R0KiX#fCdz1Ll`aB0BzWdHx+ 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

CA&_F*7s{I$$ot3o`$ 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 delta 187159 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ξ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 YP7*$a#+=nu_rSoVqNJf%BySe*Kgil>S^xk5 From 36255fffad147396057e16f2a4f0a457b2a97e23 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Fri, 3 Mar 2017 17:15:59 -0800 Subject: [PATCH 24/83] Ports Monster's finishing of the space allocator --- .../space_management/heap_space_level.dm | 63 ++++++++++++++--- code/modules/space_management/space_chunk.dm | 69 ++++++++++++++++++- .../space_management/zlevel_manager.dm | 22 +++++- 3 files changed, 143 insertions(+), 11 deletions(-) diff --git a/code/modules/space_management/heap_space_level.dm b/code/modules/space_management/heap_space_level.dm index 8d5a3971ba1..640080095a3 100644 --- a/code/modules/space_management/heap_space_level.dm +++ b/code/modules/space_management/heap_space_level.dm @@ -1,15 +1,62 @@ // This represents a level we can carve up as we please, and hand out // chunks of to whatever requests it /datum/space_level/heap - var/datum/space_chunk/top - linkage = UNAFFECTED + name = "Heap level #ERROR" + var/datum/space_chunk/top + linkage = UNAFFECTED -/datum/space_level/heap/New() - ..() - top = new +/datum/space_level/heap/New(z, name, transition_type, traits) + ..(z, "Heap level #[z]", UNAFFECTED, traits) + top = new(1, 1, zpos, world.maxx, world.maxy) + flags = traits /datum/space_level/heap/proc/request(width, height) - return 1 // All are welcome! At least until I add code for this + return top.can_fit_space(width, height) -/datum/zlevel/heap/proc/allocate(width, height) - return +// Returns a space chunk datum for some nerd to work with - tells them what's safe to write into, and such +/datum/space_level/heap/proc/allocate(width, height) + if(!request(width, height)) + return null + + var/datum/space_chunk/C = top.get_optimal_chunk(width, height) + if(!C) + return null + C.children.Cut() + + if(C.width == width && C.height == height && C.is_empty) + C.set_occupied(TRUE) + return C + + // Split the chunk into 4 pieces + var/datum/space_chunk/return_chunk = new(C.x, C.y, C.zpos, width, height) + C.children += return_chunk + C.children += new /datum/space_chunk(C.x+width, C.y, C.zpos, C.width-width, height) + C.children += new /datum/space_chunk(C.x, C.y+height, C.zpos, width, C.height-height) + C.children += new /datum/space_chunk(C.x+width, C.y+height, C.zpos, C.width-width, C.height-height) + + for(var/datum/space_chunk/C2 in C.children) + C2.parent = C + return_chunk.set_occupied(TRUE) + return return_chunk + +/datum/space_level/heap/proc/free(datum/space_chunk/C) + if(!istype(C)) + return + if(C.zpos != zpos) + return + C.set_occupied(FALSE) + for(var/turf/T in block(locate(C.x, C.y, C.zpos), locate(C.x+C.width-1, C.y+C.height-1, C.zpos))) + for(var/atom/movable/M in T) + if(istype(M, /mob/dead/observer)) + continue + M.loc = null + qdel(M, TRUE) + T.ChangeTurf(/turf/space) + var/datum/space_chunk/last_empty_parent = C + while(last_empty_parent.parent && last_empty_parent.parent.is_empty) + last_empty_parent = last_empty_parent.parent + // Prevent a self-qdel from killing this proc + src = null + for(var/datum/space_chunk/child in last_empty_parent.children) + qdel(child) + last_empty_parent.children.Cut() diff --git a/code/modules/space_management/space_chunk.dm b/code/modules/space_management/space_chunk.dm index a150d25d2f3..8b6e5b6974e 100644 --- a/code/modules/space_management/space_chunk.dm +++ b/code/modules/space_management/space_chunk.dm @@ -10,14 +10,81 @@ var/width var/height var/zpos + // Whether dedicated for use or not + var/occupied = FALSE + // Whether the chunk contains used children or not + var/is_empty = TRUE + var/list/children = list() + var/datum/space_chunk/parent = null -/datum/space_chunk/New(w, h, z, new_x, new_y) +/datum/space_chunk/New(new_x, new_y, z, w, h) x = new_x y = new_y zpos = z width = w height = h +/datum/space_chunk/Destroy() + set_occupied(FALSE) + if(parent) + parent.children -= src + for(var/datum/space_chunk/child in children) + qdel(child) + children.Cut() + parent = null + . = ..() + +/datum/space_chunk/proc/can_fit_space(w, h) + if(w > width || h > height) + return FALSE + if(occupied) + return FALSE + if(is_empty) + return TRUE + for(var/datum/space_chunk/C in children) + if(C.can_fit_space(w, h)) + return TRUE + return FALSE + +// Recursively drops down the tree and finds the most efficient chunk to use +/datum/space_chunk/proc/get_optimal_chunk(w, h) + if(w > width || h > height) + return null + if(occupied) + return null + if(is_empty) + return src + var/datum/space_chunk/optimal_chunk + var/optimal_chunk_optimalness = 99999 + for(var/datum/space_chunk/C in children) + var/datum/space_chunk/C2 = C.get_optimal_chunk(w, h) + if(!C2) + continue + var/optimalness = C2.width + C2.height-w-h + if(optimalness < optimal_chunk_optimalness) + optimal_chunk_optimalness = optimalness + optimal_chunk = C2 + return optimal_chunk + +/datum/space_chunk/proc/set_occupied(new_occupied) + var/datum/space_chunk/C = parent + if(new_occupied) + occupied = TRUE + while(C) + C.is_empty = FALSE + C = C.parent + else + occupied = FALSE + while(C) + var/is_children_empty = TRUE + for(var/datum/space_chunk/C2 in C.children) + if(!C2.is_empty || C2.occupied) + is_children_empty = FALSE + if(!is_children_empty) + break + C.is_empty = TRUE + C = C.parent + /datum/space_chunk/proc/check_sanity() var/i_am_sane = 1 i_am_sane |= (x > 0) diff --git a/code/modules/space_management/zlevel_manager.dm b/code/modules/space_management/zlevel_manager.dm index d0bb9455eb8..087a70657ed 100644 --- a/code/modules/space_management/zlevel_manager.dm +++ b/code/modules/space_management/zlevel_manager.dm @@ -134,18 +134,36 @@ var/global/datum/zlev_manager/space_manager = new /datum/zlev_manager/proc/add_new_heap() world.maxz++ var/our_z = world.maxz - var/datum/space_level/yup = new /datum/space_level/heap(our_z) + var/datum/space_level/yup = new /datum/space_level/heap(our_z, traits = list(BLOCK_TELEPORT, ADMIN_LEVEL)) z_list["[our_z]"] = yup return yup // This is what you can call to allocate a section of space // Later, I'll add an argument to let you define the flags on the region /datum/zlev_manager/proc/allocate_space(width, height) + if(width > world.maxx || height > world.maxy) + throw EXCEPTION("Too much space requested! \[[width],[height]\]") if(!heaps.len) heaps.len++ heaps[heaps.len] = add_new_heap() var/datum/space_level/heap/our_heap + var/weve_got_vacancy = 0 for(our_heap in heaps) - var/weve_got_vacancy = our_heap.request(width, height) + weve_got_vacancy = our_heap.request(width, height) if(weve_got_vacancy) break // We're sticking with the present value of `our_heap` - it's got room + // This loop will also run out if no vacancies are found + + if(!weve_got_vacancy) + heaps.len++ + our_heap = add_new_heap() + heaps[heaps.len] = our_heap + return our_heap.allocate(width, height) + +/datum/zlev_manager/proc/free_space(datum/space_chunk/C) + if(!istype(C)) + return + var/datum/space_level/heap/heap = z_list["[C.zpos]"] + if(!istype(heap)) + throw EXCEPTION("Attempted to free chunk at invalid z-level ([C.x],[C.y],[C.zpos]) [C.width]x[C.height]") + heap.free(C) From 89964c1e827f698ac70e5d29c97680d5fabe56b9 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 4 Mar 2017 00:11:16 -0500 Subject: [PATCH 25/83] Automatic changelog generation for PR #6632 [ci skip] --- html/changelogs/AutoChangeLog-pr-6632.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6632.yml diff --git a/html/changelogs/AutoChangeLog-pr-6632.yml b/html/changelogs/AutoChangeLog-pr-6632.yml new file mode 100644 index 00000000000..463b8865603 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6632.yml @@ -0,0 +1,6 @@ +author: "davipatury" +delete-after: True +changes: + - rscadd: "Tank dispenser now uses Nano-UI." + - rscadd: "Passive gate, pump and volume pump now uses Nano-UI." + - rscadd: "Atmospherics filter and mixer now uses Nano-UI." From f57bf1f831a6becea02c89116560df4996761a9c Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 4 Mar 2017 00:20:54 -0500 Subject: [PATCH 26/83] Automatic changelog generation for PR #6630 [ci skip] --- html/changelogs/AutoChangeLog-pr-6630.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6630.yml diff --git a/html/changelogs/AutoChangeLog-pr-6630.yml b/html/changelogs/AutoChangeLog-pr-6630.yml new file mode 100644 index 00000000000..8ed81bc6d4b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6630.yml @@ -0,0 +1,4 @@ +author: "davipatury" +delete-after: True +changes: + - rscadd: "Newscaster now uses Nano-UI." From feaa52704265a467e69188ee397f1a90ea196862 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 4 Mar 2017 00:21:44 -0500 Subject: [PATCH 27/83] Automatic changelog compile, [ci skip] --- html/changelog.html | 9 +++++++++ html/changelogs/.all_changelog.yml | 6 ++++++ html/changelogs/AutoChangeLog-pr-6630.yml | 4 ---- html/changelogs/AutoChangeLog-pr-6632.yml | 6 ------ 4 files changed, 15 insertions(+), 10 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-6630.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-6632.yml diff --git a/html/changelog.html b/html/changelog.html index 40498438f45..9f7dd06b6da 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,15 @@ -->

+

04 March 2017

+

davipatury updated:

+
    +
  • Newscaster now uses Nano-UI.
  • +
  • Tank dispenser now uses Nano-UI.
  • +
  • Passive gate, pump and volume pump now uses Nano-UI.
  • +
  • Atmospherics filter and mixer now uses Nano-UI.
  • +
+

03 March 2017

FlauntestGuitar updated: