From 613c317b386a589aa90aef58fcfaa141b9c1019e Mon Sep 17 00:00:00 2001 From: Citinited Date: Sun, 6 May 2018 01:16:57 +0100 Subject: [PATCH 01/73] Hopefully fixes all dumb disposals nullspace shit --- .../recycling/disposal-construction.dm | 2 - code/modules/recycling/disposal.dm | 162 ++++++++++-------- 2 files changed, 86 insertions(+), 78 deletions(-) diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index ba193744467..3658846a696 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -250,8 +250,6 @@ var/obj/structure/disposaloutlet/P = new /obj/structure/disposaloutlet(src.loc) src.transfer_fingerprints_to(P) P.dir = dir - var/obj/structure/disposalpipe/trunk/Trunk = CP - Trunk.linked = P else if(ptype==8) // Disposal outlet diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index f36b1765d18..715f02ae217 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -36,19 +36,19 @@ update() /obj/machinery/disposal/proc/trunk_check() - trunk = locate() in src.loc - if(!trunk) + var/obj/structure/disposalpipe/trunk/T = locate() in loc + if(!T) mode = 0 flush = 0 else mode = initial(mode) flush = initial(flush) - trunk.linked = src // link the pipe trunk to self + T.nicely_link_to_other_stuff(src) /obj/machinery/disposal/Destroy() eject() if(trunk) - trunk.linked = null + trunk.remove_trunk_links() return ..() /obj/machinery/disposal/initialize() @@ -1155,24 +1155,39 @@ if(D.trunk == src) D.go_out() D.trunk = null - - linked = null + remove_trunk_links() return ..() /obj/structure/disposalpipe/trunk/proc/getlinked() - linked = null var/obj/machinery/disposal/D = locate() in src.loc if(D) - linked = D - if(!D.trunk) - D.trunk = src - + nicely_link_to_other_stuff(D) + return var/obj/structure/disposaloutlet/O = locate() in src.loc if(O) - linked = O + nicely_link_to_other_stuff(O) - update() - return +/obj/structure/disposalpipe/trunk/proc/remove_trunk_links() //disposals is well-coded + if(!linked) + return + else if(istype(linked, /obj/machinery/disposal)) //jk lol + var/obj/machinery/disposal/D = linked + D.trunk = null + else if(istype(linked, /obj/structure/disposaloutlet)) //God fucking damn it + var/obj/structure/disposaloutlet/D = linked + D.linkedtrunk = null + linked = null + +/obj/structure/disposalpipe/trunk/proc/nicely_link_to_other_stuff(obj/O) + remove_trunk_links() //Breaks the connections between this trunk and the linked machinery so we don't get sent to nullspace or some shit like that + if(istype(O, /obj/machinery/disposal)) + var/obj/machinery/disposal/D = O + linked = D + D.trunk = src + else if(istype(O, /obj/structure/disposaloutlet)) + var/obj/structure/disposaloutlet/D = O + linked = D + D.linkedtrunk = src // Override attackby so we disallow trunkremoval when somethings ontop /obj/structure/disposalpipe/trunk/attackby(var/obj/item/I, var/mob/user, params) @@ -1277,77 +1292,72 @@ var/obj/structure/disposalpipe/trunk/linkedtrunk var/mode = 0 - New() - ..() - - spawn(1) - target = get_ranged_target_turf(src, dir, 10) - - - linkedtrunk = locate() in src.loc - if(linkedtrunk) - linkedtrunk.linked = src +/obj/structure/disposaloutlet/New() + ..() + spawn(1) + target = get_ranged_target_turf(src, dir, 10) + var/obj/structure/disposalpipe/trunk/T = locate() in loc + if(T) + T.nicely_link_to_other_stuff(src) // expel the contents of the holder object, then delete it // called when the holder exits the outlet - proc/expel(var/obj/structure/disposalholder/H, animation = 1) - - if(animation) - flick("outlet-open", src) - playsound(src, 'sound/machines/warning-buzzer.ogg', 50, 0, 0) - sleep(20) //wait until correct animation frame - playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0) - - if(H) - for(var/atom/movable/AM in H) - AM.forceMove(loc) - AM.pipe_eject(dir) - if(!istype(AM,/mob/living/silicon/robot/drone)) //Drones keep smashing windows from being fired out of chutes. Bad for the station. ~Z - spawn(5) - if(AM) - AM.throw_at(target, 3, 1) - H.vent_gas(src.loc) - qdel(H) +/obj/structure/disposaloutlet/proc/expel(var/obj/structure/disposalholder/H, animation = 1) + if(animation) + flick("outlet-open", src) + playsound(src, 'sound/machines/warning-buzzer.ogg', 50, 0, 0) + sleep(20) //wait until correct animation frame + playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0) + if(H) + for(var/atom/movable/AM in H) + AM.forceMove(loc) + AM.pipe_eject(dir) + if(!istype(AM,/mob/living/silicon/robot/drone)) //Drones keep smashing windows from being fired out of chutes. Bad for the station. ~Z + spawn(5) + if(AM) + AM.throw_at(target, 3, 1) + H.vent_gas(src.loc) + qdel(H) - attackby(var/obj/item/I, var/mob/user, params) - if(!I || !user) +/obj/structure/disposaloutlet/attackby(var/obj/item/I, var/mob/user, params) + if(!I || !user) + return + src.add_fingerprint(user) + if(istype(I, /obj/item/screwdriver)) + if(mode==0) + mode=1 + playsound(src.loc, I.usesound, 50, 1) + to_chat(user, "You remove the screws around the power connection.") + return + else if(mode==1) + mode=0 + playsound(src.loc, I.usesound, 50, 1) + to_chat(user, "You attach the screws around the power connection.") + return + else if(istype(I,/obj/item/weldingtool) && mode==1) + var/obj/item/weldingtool/W = I + if(W.remove_fuel(0,user)) + playsound(src.loc, W.usesound, 100, 1) + to_chat(user, "You start slicing the floorweld off the disposal outlet.") + if(do_after(user, 20 * W.toolspeed, target = src)) + if(!src || !W.isOn()) return + to_chat(user, "You sliced the floorweld off the disposal outlet.") + var/obj/structure/disposalconstruct/C = new (src.loc) + src.transfer_fingerprints_to(C) + C.ptype = 7 // 7 = outlet + C.update() + C.anchored = 1 + C.density = 1 + qdel(src) + return + else + to_chat(user, "You need more welding fuel to complete this task.") return - src.add_fingerprint(user) - if(istype(I, /obj/item/screwdriver)) - if(mode==0) - mode=1 - playsound(src.loc, I.usesound, 50, 1) - to_chat(user, "You remove the screws around the power connection.") - return - else if(mode==1) - mode=0 - playsound(src.loc, I.usesound, 50, 1) - to_chat(user, "You attach the screws around the power connection.") - return - else if(istype(I,/obj/item/weldingtool) && mode==1) - var/obj/item/weldingtool/W = I - if(W.remove_fuel(0,user)) - playsound(src.loc, W.usesound, 100, 1) - to_chat(user, "You start slicing the floorweld off the disposal outlet.") - if(do_after(user, 20 * W.toolspeed, target = src)) - if(!src || !W.isOn()) return - to_chat(user, "You sliced the floorweld off the disposal outlet.") - var/obj/structure/disposalconstruct/C = new (src.loc) - src.transfer_fingerprints_to(C) - C.ptype = 7 // 7 = outlet - C.update() - C.anchored = 1 - C.density = 1 - qdel(src) - return - else - to_chat(user, "You need more welding fuel to complete this task.") - return /obj/structure/disposaloutlet/Destroy() if(linkedtrunk) - linkedtrunk.linked = null + linkedtrunk.remove_trunk_links() return ..() // called when movable is expelled from a disposal pipe or outlet From 63e1474dce73a72439a0719ae09359fb64b82139 Mon Sep 17 00:00:00 2001 From: ryansmake Date: Mon, 7 May 2018 14:25:22 +0200 Subject: [PATCH 02/73] Stops Bxil's mental breakdown --- code/game/machinery/doors/poddoor.dm | 29 +++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index b20d99b2613..3f9e4f55a08 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -53,11 +53,38 @@ if(!hasPower()) open() -/obj/machinery/door/poddoor/multi_tile // Whoever wrote the old code for multi-tile spesspod doors needs to burn in hell. + // Whoever wrote the old code for multi-tile spesspod doors needs to burn in hell. - Unknown + // Wise words. - Bxil +/obj/machinery/door/poddoor/multi_tile name = "large pod door" layer = CLOSED_DOOR_LAYER closingLayer = CLOSED_DOOR_LAYER +/obj/machinery/door/poddoor/multi_tile/New() + . = ..() + apply_opacity_to_my_turfs(opacity) + +/obj/machinery/door/poddoor/multi_tile/open() + if(..()) + apply_opacity_to_my_turfs(opacity) + + +/obj/machinery/door/poddoor/multi_tile/close() + if(..()) + apply_opacity_to_my_turfs(opacity) + +/obj/machinery/door/poddoor/multi_tile/Destroy() + apply_opacity_to_my_turfs(0) + return ..() + +//Multi-tile poddoors don't turn invisible automatically, so we change the opacity of the turfs below instead one by one. +/obj/machinery/door/poddoor/multi_tile/proc/apply_opacity_to_my_turfs(var/new_opacity) + for(var/turf/T in locs) + T.opacity = new_opacity + T.has_opaque_atom = new_opacity + T.reconsider_lights() + update_freelook_sight() + /obj/machinery/door/poddoor/multi_tile/four_tile_ver/ icon = 'icons/obj/doors/1x4blast_vert.dmi' width = 4 From 2e870f8038368dd36a601a5c394f999a6efa84fb Mon Sep 17 00:00:00 2001 From: Ansari Date: Thu, 17 May 2018 23:14:29 +0800 Subject: [PATCH 03/73] Remove all instance of bombers. Replace "bomber list" in secrets with "bombs" in investigate. Remove useless clear bomb function. --- code/_globalvars/logging.dm | 3 +-- code/game/machinery/syndicatebomb.dm | 4 ++-- code/game/objects/items/devices/transfer_valve.dm | 4 ++-- code/game/objects/items/weapons/dice.dm | 2 +- code/game/objects/items/weapons/grenades/chem_grenade.dm | 2 +- code/game/objects/items/weapons/grenades/grenade.dm | 2 +- code/modules/admin/secrets.dm | 4 ---- code/modules/admin/topic.dm | 7 ------- code/modules/assembly/bomb.dm | 4 ++-- code/modules/assembly/timer.dm | 2 +- code/modules/hydroponics/grown/citrus.dm | 2 +- 11 files changed, 12 insertions(+), 24 deletions(-) diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm index f96e83cb7a1..c48600ca40c 100644 --- a/code/_globalvars/logging.dm +++ b/code/_globalvars/logging.dm @@ -10,7 +10,6 @@ GLOBAL_VAR(world_href_log) GLOBAL_PROTECT(world_href_log) var/list/jobMax = list() -var/list/bombers = list( ) var/list/admin_log = list ( ) var/list/lastsignalers = list( ) //keeps last 100 signals here in format: "[src] used \ref[src] @ location [src.loc]: [freq]/[code]" var/list/lawchanges = list( ) //Stores who uploaded laws to which silicon-based lifeform, and what the law was @@ -20,4 +19,4 @@ var/list/IClog = list() var/list/OOClog = list() var/list/adminlog = list() -var/list/investigate_log_subjects = list("notes", "watchlist", "hrefs") \ No newline at end of file +var/list/investigate_log_subjects = list("notes", "watchlist", "hrefs") diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index a4c73cc8fac..4e09fb2f7d3 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -556,11 +556,11 @@ var/area/A = get_area(T) detonated-- message_admins("[key_name_admin(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] (JMP).") - bombers += "[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] ([T.x],[T.y],[T.z])" + investigate_log("[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] ([T.x],[T.y],[T.z])", "bombs") log_game("[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] ([T.x],[T.y],[T.z])") detonated = 0 existant = 0 timer = world.time + BUTTON_COOLDOWN #undef BUTTON_COOLDOWN -#undef BUTTON_DELAY \ No newline at end of file +#undef BUTTON_DELAY diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index beed9fb75c3..1786a8e0ad5 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -63,7 +63,7 @@ A.holder = src A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). - bombers += "[key_name(user)] attached a [A] to a transfer valve." + investigate_log("[key_name(user)] attached a [A] to a transfer valve.","bombs") msg_admin_attack("[key_name_admin(user)]attached [A] to a transfer valve.") log_game("[key_name_admin(user)] attached [A] to a transfer valve.") attacher = user @@ -204,7 +204,7 @@ var/mob/mob = get_mob_by_key(src.fingerprintslast) - bombers += "Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]" + investigate_log("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]","bombs") message_admins("Bomb valve opened at [A.name] (JMP) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name_admin(mob)]") log_game("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]") merge_gases() diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 8ccfed1b517..4e070b3dade 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -159,7 +159,7 @@ var/turf/bombturf = get_turf(src) var/area/A = get_area(bombturf) - bombers += "E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]" + investigate_log("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]","bombs") message_admins("E20 detonated at [A.name] (JMP) with a roll of [result]. Triggered by: [key_name_admin(user)]") log_game("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]") diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index de85ec64a58..2074b4b85b0 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -102,7 +102,7 @@ // This used to go before the assembly check, but that has absolutely zero to do with priming the damn thing. You could spam the admins with it. message_admins("[key_name_admin(usr)] has primed a [name] for detonation at [A.name] (JMP) [contained].") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) [contained].") - bombers += "[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])[contained]." + investigate_log("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])[contained].","bombs") to_chat(user, "You prime the [name]! [det_time / 10] second\s!") playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) active = 1 diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index c7ababde601..9f7cc96375c 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -66,7 +66,7 @@ var/area/A = get_area(bombturf) message_admins("[key_name_admin(usr)] has primed a [name] for detonation at [A.name] (JMP)") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])") - bombers += "[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])" + investigate_log ("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])","bombs") if(iscarbon(user)) var/mob/living/carbon/C = user C.throw_mode_on() diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 21731cc8b7a..5039146b1c3 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -25,8 +25,6 @@ Show current traitors and objectives
Set Night Shift Mode
Bombs
- Bombing List   - Remove all bombs currently in existence [check_rights(R_SERVER, 0) ? "  Toggle bomb cap
" : "
"] Lists
Show last [length(lastsignalers)] signalers   @@ -130,5 +128,3 @@ var/datum/browser/popup = new(usr, "secrets", "
Admin Secrets
", 630, 670) popup.set_content(dat) popup.open(0) - - diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 44328429dc0..093cf3d09ef 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2957,13 +2957,6 @@ var/ok = 0 switch(href_list["secretsadmin"]) - if("clear_bombs") - //I do nothing - if("list_bombers") - var/dat = "Bombing List
" - for(var/l in bombers) - dat += text("[l]
") - usr << browse(dat, "window=bombers") if("list_signalers") var/dat = "Showing last [length(lastsignalers)] signalers.
" for(var/sig in lastsignalers) diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index e5f1cb10525..9c3888570ba 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -45,13 +45,13 @@ if((istype(W, /obj/item/weldingtool) && W:welding)) if(!status) status = 1 - bombers += "[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]" + investigate_log("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]","bombs") msg_admin_attack("[key_name_admin(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]") log_game("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature - T0C]") to_chat(user, "A pressure hole has been bored to [bombtank] valve. \The [bombtank] can now be ignited.") else status = 0 - bombers += "[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]" + investigate_log("[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]","bombs") to_chat(user, "The hole has been closed.") add_fingerprint(user) ..() diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 5d8c0ed1e98..3a8a13e68c5 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -114,7 +114,7 @@ timing = !timing if(timing && istype(holder, /obj/item/transfer_valve)) message_admins("[key_name_admin(usr)] activated [src] attachment on [holder].") - bombers += "[key_name(usr)] activated [src] attachment for [loc]" + investigate_log("[key_name(usr)] activated [src] attachment for [loc]", "bomb") log_game("[key_name(usr)] activated [src] attachment for [loc]") update_icon() if(href_list["reset"]) diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 157a2813b8f..7b65fd0f053 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -109,7 +109,7 @@ var/area/A = get_area(user) user.visible_message("[user] primes the [src]!", "You prime the [src]!") var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [A] [ADMIN_COORDJMP(user)]" - bombers += message + investigate_log("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].","bombs") message_admins(message) log_game("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].") if(iscarbon(user)) From a43c353fef8d47e0d93c41110fbe65762daab0d2 Mon Sep 17 00:00:00 2001 From: Tayyyyyyy Date: Thu, 17 May 2018 11:40:04 -0700 Subject: [PATCH 04/73] Fix fallback amber team never working --- code/game/response_team.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 596d59c7b16..a865e4a5ad9 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -203,13 +203,13 @@ var/ert_request_answered = 0 var/cyborg_unlock = 0 /datum/response_team/proc/setSlots(com, sec, med, eng, jan, par, cyb) - command_slots = com - security_slots = sec - medical_slots = med - engineer_slots = eng - janitor_slots = jan - paranormal_slots = par - cyborg_slots = cyb + command_slots = com || command_slots + security_slots = sec || security_slots + medical_slots = med || medical_slots + engineer_slots = eng || engineer_slots + janitor_slots = jan || janitor_slots + paranormal_slots = par || paranormal_slots + cyborg_slots = cyb || cyborg_slots /datum/response_team/proc/reduceCyborgSlots() cyborg_slots-- From 792f3ada27f11ab02128ea8d2e79a176a8d997d4 Mon Sep 17 00:00:00 2001 From: Ansari Date: Fri, 18 May 2018 06:52:56 +0800 Subject: [PATCH 05/73] Fixes spacing --- code/game/objects/items/devices/transfer_valve.dm | 4 ++-- code/game/objects/items/weapons/dice.dm | 2 +- code/game/objects/items/weapons/grenades/chem_grenade.dm | 2 +- code/game/objects/items/weapons/grenades/grenade.dm | 2 +- code/modules/assembly/bomb.dm | 4 ++-- code/modules/hydroponics/grown/citrus.dm | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 1786a8e0ad5..cf27d323e02 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -63,7 +63,7 @@ A.holder = src A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). - investigate_log("[key_name(user)] attached a [A] to a transfer valve.","bombs") + investigate_log("[key_name(user)] attached a [A] to a transfer valve.", "bombs") msg_admin_attack("[key_name_admin(user)]attached [A] to a transfer valve.") log_game("[key_name_admin(user)] attached [A] to a transfer valve.") attacher = user @@ -204,7 +204,7 @@ var/mob/mob = get_mob_by_key(src.fingerprintslast) - investigate_log("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]","bombs") + investigate_log("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]", "bombs") message_admins("Bomb valve opened at [A.name] (JMP) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name_admin(mob)]") log_game("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]") merge_gases() diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 4e070b3dade..0c525bdb21d 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -159,7 +159,7 @@ var/turf/bombturf = get_turf(src) var/area/A = get_area(bombturf) - investigate_log("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]","bombs") + investigate_log("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]", "bombs") message_admins("E20 detonated at [A.name] (JMP) with a roll of [result]. Triggered by: [key_name_admin(user)]") log_game("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]") diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 2074b4b85b0..093261c9195 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -102,7 +102,7 @@ // This used to go before the assembly check, but that has absolutely zero to do with priming the damn thing. You could spam the admins with it. message_admins("[key_name_admin(usr)] has primed a [name] for detonation at [A.name] (JMP) [contained].") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) [contained].") - investigate_log("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])[contained].","bombs") + investigate_log("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])[contained].", "bombs") to_chat(user, "You prime the [name]! [det_time / 10] second\s!") playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) active = 1 diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 9f7cc96375c..cb494be983c 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -66,7 +66,7 @@ var/area/A = get_area(bombturf) message_admins("[key_name_admin(usr)] has primed a [name] for detonation at [A.name] (JMP)") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])") - investigate_log ("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])","bombs") + investigate_log ("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])", "bombs") if(iscarbon(user)) var/mob/living/carbon/C = user C.throw_mode_on() diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 9c3888570ba..bc628192b23 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -45,13 +45,13 @@ if((istype(W, /obj/item/weldingtool) && W:welding)) if(!status) status = 1 - investigate_log("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]","bombs") + investigate_log("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", "bombs") msg_admin_attack("[key_name_admin(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]") log_game("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature - T0C]") to_chat(user, "A pressure hole has been bored to [bombtank] valve. \The [bombtank] can now be ignited.") else status = 0 - investigate_log("[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]","bombs") + investigate_log("[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", "bombs") to_chat(user, "The hole has been closed.") add_fingerprint(user) ..() diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 7b65fd0f053..f8aeae5018a 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -109,7 +109,7 @@ var/area/A = get_area(user) user.visible_message("[user] primes the [src]!", "You prime the [src]!") var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [A] [ADMIN_COORDJMP(user)]" - investigate_log("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].","bombs") + investigate_log("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].", "bombs") message_admins(message) log_game("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].") if(iscarbon(user)) From dd417c006b9a8841732a8e184c46af533bf20436 Mon Sep 17 00:00:00 2001 From: Ansari Date: Fri, 18 May 2018 12:23:08 +0800 Subject: [PATCH 06/73] Uses define instead of "bombs" for styling reason. Fixes IED not logging into investigate due to its special mechanism. --- code/__DEFINES/misc.dm | 2 ++ code/game/objects/items/devices/transfer_valve.dm | 4 ++-- code/game/objects/items/weapons/dice.dm | 2 +- code/game/objects/items/weapons/grenades/chem_grenade.dm | 2 +- code/game/objects/items/weapons/grenades/ghettobomb.dm | 3 ++- code/game/objects/items/weapons/grenades/grenade.dm | 2 +- code/modules/assembly/bomb.dm | 4 ++-- code/modules/assembly/timer.dm | 2 +- code/modules/hydroponics/grown/citrus.dm | 2 +- 9 files changed, 13 insertions(+), 10 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 4f38a183a80..66eedbe5b33 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -344,5 +344,7 @@ //for obj explosion block calculation #define EXPLOSION_BLOCK_PROC -1 +#define INVESTIGATE_BOMB "bombs" + // The SQL version required by this version of the code #define SQL_VERSION 2 diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index cf27d323e02..84bad81c015 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -63,7 +63,7 @@ A.holder = src A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). - investigate_log("[key_name(user)] attached a [A] to a transfer valve.", "bombs") + investigate_log("[key_name(user)] attached a [A] to a transfer valve.", INVESTIGATE_BOMB) msg_admin_attack("[key_name_admin(user)]attached [A] to a transfer valve.") log_game("[key_name_admin(user)] attached [A] to a transfer valve.") attacher = user @@ -204,7 +204,7 @@ var/mob/mob = get_mob_by_key(src.fingerprintslast) - investigate_log("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]", "bombs") + investigate_log("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]", INVESTIGATE_BOMB) message_admins("Bomb valve opened at [A.name] (JMP) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name_admin(mob)]") log_game("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]") merge_gases() diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 0c525bdb21d..d93ebcf3214 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -159,7 +159,7 @@ var/turf/bombturf = get_turf(src) var/area/A = get_area(bombturf) - investigate_log("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]", "bombs") + investigate_log("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]", INVESTIGATE_BOMB) message_admins("E20 detonated at [A.name] (JMP) with a roll of [result]. Triggered by: [key_name_admin(user)]") log_game("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]") diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 093261c9195..9e836fecc87 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -102,7 +102,7 @@ // This used to go before the assembly check, but that has absolutely zero to do with priming the damn thing. You could spam the admins with it. message_admins("[key_name_admin(usr)] has primed a [name] for detonation at [A.name] (JMP) [contained].") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) [contained].") - investigate_log("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])[contained].", "bombs") + investigate_log("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])[contained].", INVESTIGATE_BOMB) to_chat(user, "You prime the [name]! [det_time / 10] second\s!") playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) active = 1 diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm index d0dc2c8fe06..ca6177c04fa 100644 --- a/code/game/objects/items/weapons/grenades/ghettobomb.dm +++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm @@ -49,7 +49,8 @@ var/area/A = get_area(bombturf) message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)].") - log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") + log_game("[key_name(user)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") + investigate_log("[key_name(user)] has primed a [name] for detonation at [A.name] [COORD(bombturf)])", INVESTIGATE_BOMB) if(iscarbon(user)) var/mob/living/carbon/C = user C.throw_mode_on() diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index cb494be983c..09fdfe5a27f 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -66,7 +66,7 @@ var/area/A = get_area(bombturf) message_admins("[key_name_admin(usr)] has primed a [name] for detonation at [A.name] (JMP)") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])") - investigate_log ("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])", "bombs") + investigate_log("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])", INVESTIGATE_BOMB) if(iscarbon(user)) var/mob/living/carbon/C = user C.throw_mode_on() diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index bc628192b23..e92330754f2 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -45,13 +45,13 @@ if((istype(W, /obj/item/weldingtool) && W:welding)) if(!status) status = 1 - investigate_log("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", "bombs") + investigate_log("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", INVESTIGATE_BOMB) msg_admin_attack("[key_name_admin(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]") log_game("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature - T0C]") to_chat(user, "A pressure hole has been bored to [bombtank] valve. \The [bombtank] can now be ignited.") else status = 0 - investigate_log("[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", "bombs") + investigate_log("[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", INVESTIGATE_BOMB) to_chat(user, "The hole has been closed.") add_fingerprint(user) ..() diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 3a8a13e68c5..a585a689f2c 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -114,7 +114,7 @@ timing = !timing if(timing && istype(holder, /obj/item/transfer_valve)) message_admins("[key_name_admin(usr)] activated [src] attachment on [holder].") - investigate_log("[key_name(usr)] activated [src] attachment for [loc]", "bomb") + investigate_log("[key_name(usr)] activated [src] attachment for [loc]", INVESTIGATE_BOMB) log_game("[key_name(usr)] activated [src] attachment for [loc]") update_icon() if(href_list["reset"]) diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index f8aeae5018a..86bc8082661 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -109,7 +109,7 @@ var/area/A = get_area(user) user.visible_message("[user] primes the [src]!", "You prime the [src]!") var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [A] [ADMIN_COORDJMP(user)]" - investigate_log("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].", "bombs") + investigate_log("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].", INVESTIGATE_BOMB) message_admins(message) log_game("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].") if(iscarbon(user)) From 10f38f7a7e4aef169f6f62eb8dfee7863d53cd59 Mon Sep 17 00:00:00 2001 From: Ansari Date: Fri, 18 May 2018 12:33:14 +0800 Subject: [PATCH 07/73] I missed syndicatebomb. Also added investigate to priming it. --- code/game/machinery/syndicatebomb.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 4e09fb2f7d3..c640d5d5554 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -231,7 +231,8 @@ var/area/A = get_area(bombturf) if(payload && !istype(payload, /obj/item/bombcore/training)) msg_admin_attack("[key_name_admin(user)] has primed a [name] ([payload]) for detonation at [A.name] (JMP).") - log_game("[key_name(user)] has primed a [name] ([payload]) for detonation at [A.name] ([bombturf.x], [bombturf.y], [bombturf.z])") + log_game("[key_name(user)] has primed a [name] ([payload]) for detonation at [A.name] [COORD(bombturf)]") + investigate_log("[key_name(user)] has has primed a [name] ([payload]) for detonation at [A.name] [COORD(bombturf)]", INVESTIGATE_BOMB) payload.adminlog = "\The [src] that [key_name(user)] had primed detonated!" /obj/machinery/syndicatebomb/proc/isWireCut(var/index) @@ -556,7 +557,7 @@ var/area/A = get_area(T) detonated-- message_admins("[key_name_admin(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] (JMP).") - investigate_log("[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] ([T.x],[T.y],[T.z])", "bombs") + investigate_log("[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] ([T.x],[T.y],[T.z])", INVESTIGATE_BOMB) log_game("[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] ([T.x],[T.y],[T.z])") detonated = 0 existant = 0 From 3e26a6b5f30b93eb555b2bb392a6d55c7ba160af Mon Sep 17 00:00:00 2001 From: Tayyyyyyy Date: Fri, 18 May 2018 00:25:28 -0700 Subject: [PATCH 08/73] Enable emojis for asay and msay --- code/modules/admin/verbs/adminsay.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index f091e49f60e..2a0f78351e4 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -12,6 +12,7 @@ if(check_rights(R_ADMIN,0)) for(var/client/C in admins) if(R_ADMIN & C.holder.rights) + msg = "[msg]" to_chat(C, "ADMIN: [key_name(usr, 1)] ([admin_jump_link(mob)]): [msg]") feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -38,6 +39,7 @@ display_name = "[holder.fakekey]/([key])" else display_name = holder.fakekey + msg = "[msg]" to_chat(C, "MENTOR: [display_name] ([admin_jump_link(mob)]): [msg]") feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! From ed0c209e938423792304ec576ccae6a4442e4999 Mon Sep 17 00:00:00 2001 From: Ansari Date: Fri, 18 May 2018 16:39:57 +0800 Subject: [PATCH 09/73] Expand fuel tank logging --- code/modules/assembly/igniter.dm | 4 ++-- code/modules/reagents/reagent_dispenser.dm | 24 +++++++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index 08601522c5e..785e4549a47 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -28,7 +28,7 @@ if(istype(src.loc.loc, /obj/structure/reagent_dispensers/fueltank/)) var/obj/structure/reagent_dispensers/fueltank/tank = src.loc.loc if(tank) - tank.boom() + tank.boom(TRUE) if(istype(src.loc.loc, /obj/item/reagent_containers/glass/beaker/)) var/obj/item/reagent_containers/glass/beaker/beakerbomb = src.loc.loc if(beakerbomb) @@ -41,4 +41,4 @@ /obj/item/assembly/igniter/attack_self(mob/user as mob) activate() add_fingerprint(user) - return \ No newline at end of file + return diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index a80c4142d87..7bd02ab26dd 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -9,6 +9,7 @@ var/tank_volume = 1000 //In units, how much the dispenser can hold var/reagent_id = "water" //The ID of the reagent that the dispenser uses + var/lastrigger = "" // The last person to rig this fuel tank - Stored with the object. Only the last person matter for investigation /obj/structure/reagent_dispensers/attackby(obj/item/W, mob/user, params) return @@ -77,11 +78,16 @@ ..() if(!QDELETED(src)) //wasn't deleted by the projectile's effects. if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE))) - message_admins("[key_name_admin(P.firer)] triggered a fueltank explosion.") - log_game("[key_name(P.firer)] triggered a fueltank explosion.") + message_admins("[key_name_admin(P.firer)] triggered a fueltank explosion with [P.name] at [COORD(loc)] ") + log_game("[key_name(P.firer)] triggered a fueltank explosion with [P.name] at [COORD(loc)]") + investigate_log("[key_name(P.firer)] triggered a fueltank explosion with [P.name] at [COORD(loc)]", INVESTIGATE_BOMB) boom() -/obj/structure/reagent_dispensers/fueltank/boom() +/obj/structure/reagent_dispensers/fueltank/boom(var/rigtrigger = FALSE) // Prevent case where someone who rigged the tank is blamed for the explosion when the rig isn't what triggered the explosion + if(rigtrigger == TRUE) // If the explosion is triggered by an assembly holder + message_admins("A fueltank, last rigged by [lastrigger], had exploded at [COORD(loc)]") // Then admin is informed of the last person who rigged the fuel tank + log_game("A fueltank, last rigged by [lastrigger], had exploded at [COORD(loc)]") + investigate_log("A fueltank, last rigged by [lastrigger], had exploded at [COORD(loc)]", INVESTIGATE_BOMB) explosion(loc, 0, 1, 5, 7, 10, flame_range = 5) qdel(src) @@ -111,6 +117,7 @@ usr.visible_message("[usr] detaches [rig] from [src].", "You detach [rig] from [src].") rig.forceMove(get_turf(usr)) rig = null + lastrigger = null overlays.Cut() /obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/user, params) @@ -124,9 +131,11 @@ var/obj/item/assembly_holder/H = I if(istype(H.a_left, /obj/item/assembly/igniter) || istype(H.a_right, /obj/item/assembly/igniter)) - msg_admin_attack("[key_name_admin(user)] rigged a fueltank for explosion (JMP)") - log_game("[key_name(user)] rigged fueltank a fueltank for explosion at [loc.x], [loc.y], [loc.z]") + msg_admin_attack("[key_name_admin(user)] rigged [src.name] with [I.name] for explosion (JMP)") + log_game("[key_name(user)] rigged [src.name] with [I.name] for explosion at [COORD(loc)]") + investigate_log("[key_name(user)] rigged [src.name] with [I.name] for explosion at [COORD(loc)]", INVESTIGATE_BOMB) + lastrigger = "[key_name(user)]" rig = H user.drop_item() H.forceMove(src) @@ -151,8 +160,9 @@ W.update_icon() else user.visible_message("[user] catastrophically fails at refilling \his [W]!", "That was stupid of you.") - message_admins("[key_name_admin(user)] triggered a fueltank explosion.") - log_game("[key_name(user)] triggered a fueltank explosion.") + message_admins("[key_name_admin(user)] triggered a fueltank explosion at [COORD(loc)]") + log_game("[key_name(user)] triggered a fueltank explosion at [COORD(loc)]") + investigate_log("[key_name(user)] triggered a fueltank explosion at [COORD(loc)]", INVESTIGATE_BOMB) boom() else ..() From c4196c2f93953ef7fc7b3f369e1996731adf8b99 Mon Sep 17 00:00:00 2001 From: tigercat2000 Date: Fri, 18 May 2018 16:41:00 -0700 Subject: [PATCH 10/73] Travis Update #1: Test _all_ maps, not just away missions --- .travis.yml | 7 ++- _maps/test_all_maps.dm | 112 ++++++++++++++++++++++++++++++++++++ _maps/test_away_missions.dm | 21 ------- 3 files changed, 118 insertions(+), 22 deletions(-) create mode 100644 _maps/test_all_maps.dm delete mode 100644 _maps/test_away_missions.dm diff --git a/.travis.yml b/.travis.yml index eaa289e5cc7..808c45e5a65 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ env: matrix: - DM_MAPFILE="cyberiad" - DM_MAPFILE="metastation" - - DM_MAPFILE="test_away_missions" + - DM_MAPFILE="test_all_maps" cache: directories: @@ -34,6 +34,11 @@ script: - source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup - bash dm.sh -M${DM_MAPFILE} paradise.dme + +# File checks - Rules: +# - No step_x/step_y in .dmm files +# - html/changelog/example.yml untouched +# - Generate changelogs matrix: include: - env: FILE_CHECKS=1 diff --git a/_maps/test_all_maps.dm b/_maps/test_all_maps.dm new file mode 100644 index 00000000000..5289988bf82 --- /dev/null +++ b/_maps/test_all_maps.dm @@ -0,0 +1,112 @@ +// This is for Travis testing. DO NOT SET THIS AS THE GAME'S MAP NORMALLY! + +#if !defined(USING_MAP_DATUM) + // Away missions + #include "map_files\RandomZLevels\beach.dmm" + #include "map_files\RandomZLevels\moonoutpost19.dmm" + #include "map_files\RandomZLevels\undergroundoutpost45.dmm" + #include "map_files\RandomZLevels\academy.dmm" + #include "map_files\RandomZLevels\blackmarketpackers.dmm" + #include "map_files\RandomZLevels\spacehotel.dmm" + #include "map_files\RandomZLevels\stationCollision.dmm" + #include "map_files\RandomZLevels\wildwest.dmm" + #include "map_files\RandomZLevels\evil_santa.dmm" + + // Space Ruins + #include "map_files\RandomRuins\SpaceRuins\abandonedzoo.dmm" + #include "map_files\RandomRuins\SpaceRuins\asteroid1.dmm" + #include "map_files\RandomRuins\SpaceRuins\asteroid2.dmm" + #include "map_files\RandomRuins\SpaceRuins\asteroid3.dmm" + #include "map_files\RandomRuins\SpaceRuins\asteroid4.dmm" + #include "map_files\RandomRuins\SpaceRuins\asteroid5.dmm" + #include "map_files\RandomRuins\SpaceRuins\deepstorage.dmm" + #include "map_files\RandomRuins\SpaceRuins\derelict1.dmm" + #include "map_files\RandomRuins\SpaceRuins\derelict2.dmm" + #include "map_files\RandomRuins\SpaceRuins\derelict3.dmm" + #include "map_files\RandomRuins\SpaceRuins\derelict4.dmm" + #include "map_files\RandomRuins\SpaceRuins\derelict5.dmm" + #include "map_files\RandomRuins\SpaceRuins\emptyshell.dmm" + #include "map_files\RandomRuins\SpaceRuins\gasthelizards.dmm" + #include "map_files\RandomRuins\SpaceRuins\intactemptyship.dmm" + #include "map_files\RandomRuins\SpaceRuins\listeningpost.dmm" + #include "map_files\RandomRuins\SpaceRuins\mechtransport.dmm" + #include "map_files\RandomRuins\SpaceRuins\onehalf.dmm" + #include "map_files\RandomRuins\SpaceRuins\spacebar.dmm" + #include "map_files\RandomRuins\SpaceRuins\turretedoutpost.dmm" + #include "map_files\RandomRuins\SpaceRuins\way_home.dmm" + + // Shuttle Templates + #include "map_files\shuttles\cargo_base.dmm" + #include "map_files\shuttles\emergency_bar.dmm" + #include "map_files\shuttles\emergency_clown.dmm" + #include "map_files\shuttles\emergency_cramped.dmm" + #include "map_files\shuttles\emergency_cyb.dmm" + #include "map_files\shuttles\emergency_dept.dmm" + #include "map_files\shuttles\emergency_meta.dmm" + #include "map_files\shuttles\emergency_mil.dmm" + #include "map_files\shuttles\emergency_narnar.dmm" + #include "map_files\shuttles\emergency_old.dmm" + #include "map_files\shuttles\ferry_base.dmm" + #include "map_files\shuttles\ferry_meat.dmm" + + // Other templates + #include "map_files\templates\spacehotel\n_01.dmm" + #include "map_files\templates\spacehotel\n_02.dmm" + #include "map_files\templates\spacehotel\n_03.dmm" + #include "map_files\templates\spacehotel\n_04.dmm" + #include "map_files\templates\spacehotel\n_05.dmm" + #include "map_files\templates\spacehotel\n_06.dmm" + #include "map_files\templates\spacehotel\n_07.dmm" + #include "map_files\templates\spacehotel\n_08.dmm" + #include "map_files\templates\spacehotel\n_09.dmm" + #include "map_files\templates\spacehotel\n_10.dmm" + #include "map_files\templates\spacehotel\n_11.dmm" + #include "map_files\templates\spacehotel\n_12.dmm" + #include "map_files\templates\spacehotel\n_13.dmm" + #include "map_files\templates\spacehotel\n_14.dmm" + #include "map_files\templates\spacehotel\n_15.dmm" + #include "map_files\templates\spacehotel\n_16.dmm" + #include "map_files\templates\spacehotel\n_17.dmm" + #include "map_files\templates\spacehotel\n_18.dmm" + #include "map_files\templates\spacehotel\n_19.dmm" + + #include "map_files\templates\spacehotel\s_01.dmm" + #include "map_files\templates\spacehotel\s_02.dmm" + #include "map_files\templates\spacehotel\s_03.dmm" + #include "map_files\templates\spacehotel\s_04.dmm" + #include "map_files\templates\spacehotel\s_05.dmm" + #include "map_files\templates\spacehotel\s_06.dmm" + + #include "map_files\templates\light_floor_1.dmm" + #include "map_files\templates\light_floor_2.dmm" + #include "map_files\templates\light_floor_3.dmm" + #include "map_files\templates\medium_shuttle1.dmm" + #include "map_files\templates\medium_shuttle2.dmm" + #include "map_files\templates\medium_shuttle3.dmm" + #include "map_files\templates\shelter_1.dmm" + #include "map_files\templates\shelter_2.dmm" + #include "map_files\templates\small_asteroid_1.dmm" + #include "map_files\templates\small_shuttle_1.dmm" + + // VR maps + #include "map_files\vr\blood_and_sand.dmm" + #include "map_files\vr\lobby.dmm" + + + // This is pointless, we don't run the server + /*#define MAP_TRANSITION_CONFIG list(AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED, + AWAY_MISSION = UNAFFECTED) + + #define USING_MAP_DATUM /datum/map*/ + +#elif !defined(MAP_OVERRIDE) + #warn a map has already been included. +#endif diff --git a/_maps/test_away_missions.dm b/_maps/test_away_missions.dm deleted file mode 100644 index 42b068412bd..00000000000 --- a/_maps/test_away_missions.dm +++ /dev/null @@ -1,21 +0,0 @@ -// This is for Travis testing. DO NOT SET THIS AS THE GAME'S MAP NORMALLY! - -#if !defined(USING_MAP_DATUM) - #include "map_files\RandomZLevels\beach.dmm" - #include "map_files\RandomZLevels\moonoutpost19.dmm" - #include "map_files\RandomZLevels\undergroundoutpost45.dmm" - #include "map_files\RandomZLevels\academy.dmm" - #include "map_files\RandomZLevels\blackmarketpackers.dmm" - #include "map_files\RandomZLevels\spacehotel.dmm" - #include "map_files\RandomZLevels\stationCollision.dmm" - #include "map_files\RandomZLevels\wildwest.dmm" - - #include "map_files\RandomZLevels\evil_santa.dmm" - - #define MAP_TRANSITION_CONFIG list(AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED, AWAY_MISSION = UNAFFECTED) - - #define USING_MAP_DATUM /datum/map - -#elif !defined(MAP_OVERRIDE) - #warn a map has already been included. -#endif From f619f856554de7686d1271bf0ae044e2d8301625 Mon Sep 17 00:00:00 2001 From: Ansari Date: Sat, 19 May 2018 08:24:01 +0800 Subject: [PATCH 11/73] FixGrammar --- code/modules/reagents/reagent_dispenser.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 7bd02ab26dd..7517993c576 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -85,9 +85,9 @@ /obj/structure/reagent_dispensers/fueltank/boom(var/rigtrigger = FALSE) // Prevent case where someone who rigged the tank is blamed for the explosion when the rig isn't what triggered the explosion if(rigtrigger == TRUE) // If the explosion is triggered by an assembly holder - message_admins("A fueltank, last rigged by [lastrigger], had exploded at [COORD(loc)]") // Then admin is informed of the last person who rigged the fuel tank - log_game("A fueltank, last rigged by [lastrigger], had exploded at [COORD(loc)]") - investigate_log("A fueltank, last rigged by [lastrigger], had exploded at [COORD(loc)]", INVESTIGATE_BOMB) + message_admins("A fueltank, last rigged by [lastrigger], exploded at [COORD(loc)]") // Then admin is informed of the last person who rigged the fuel tank + log_game("A fueltank, last rigged by [lastrigger], exploded at [COORD(loc)]") + investigate_log("A fueltank, last rigged by [lastrigger], exploded at [COORD(loc)]", INVESTIGATE_BOMB) explosion(loc, 0, 1, 5, 7, 10, flame_range = 5) qdel(src) From bb86013a68996fddbe03a911326a11a39b4095f8 Mon Sep 17 00:00:00 2001 From: tigercat2000 Date: Fri, 18 May 2018 18:16:10 -0700 Subject: [PATCH 12/73] Travis Update #2: Build NanoUI --- .travis.yml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 808c45e5a65..a357be1d762 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ env: global: - BYOND_MAJOR="511" - BYOND_MINOR="1385" - - BYOND_MACRO_COUNT=2 + - BYOND_MACRO_COUNT=4 matrix: - DM_MAPFILE="cyberiad" - DM_MAPFILE="metastation" @@ -30,7 +30,7 @@ before_script: - chmod +x ./install-byond.sh - ./install-byond.sh script: - - (num=`grep -E '\\\\(red|blue|green|black|italic|bold|b|i[^mc])' **/*.dm | wc -l`; echo "$num BYOND text macros (expecting ${BYOND_MACRO_COUNT} or fewer)"; [ $num -le ${BYOND_MACRO_COUNT} ]) + - (num=$(grep -Ern '\\(red|blue|green|black|italic|bold|b|i[^mc])' code/ | wc -l); echo "$num BYOND text macros (expecting ${BYOND_MACRO_COUNT} or fewer)"; [ $num -le ${BYOND_MACRO_COUNT} ]) - source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup - bash dm.sh -M${DM_MAPFILE} paradise.dme @@ -38,7 +38,7 @@ script: # File checks - Rules: # - No step_x/step_y in .dmm files # - html/changelog/example.yml untouched -# - Generate changelogs +# - Changelog generation works matrix: include: - env: FILE_CHECKS=1 @@ -52,3 +52,20 @@ matrix: - (! grep 'step_[xy]' _maps/map_files/**/*.dmm) - md5sum -c - <<< "6dc1b6bf583f3bd4176b6df494caa5f1 *html/changelogs/example.yml" - python tools/ss13_genchangelog.py html/changelog.html html/changelogs + +# NodeJS Checks +# - Builds NanoUI + - env: NODEJS_CHECKS=1 + language: node_js + node_js: + - "9" + addons: + before_install: + - npm install -g bower gulp + - cd ./nano/ + install: + - npm install --loglevel=error + - bower install --silent + before_script: + script: + - gulp --min \ No newline at end of file From dca636b3e5b869048c246aebdd1830178b0591e3 Mon Sep 17 00:00:00 2001 From: Ansari Date: Sat, 19 May 2018 11:11:43 +0800 Subject: [PATCH 13/73] Add coordinates to acid / lube spray message for administrative purpose --- code/modules/reagents/reagent_containers/spray.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index e405dbe169c..02d71db8719 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -49,14 +49,14 @@ user.newtonian_move(get_dir(A, user)) if(reagents.has_reagent("sacid")) - msg_admin_attack("[key_name_admin(user)] fired sulphuric acid from \a [src].") - log_game("[key_name(user)] fired sulphuric acid from \a [src].") + msg_admin_attack("[key_name_admin(user)] fired sulphuric acid from \a [src] at [COORD(src)].") + log_game("[key_name(user)] fired sulphuric acid from \a [src] at [COORD(src)].") if(reagents.has_reagent("facid")) - msg_admin_attack("[key_name_admin(user)] fired fluorosulfuric acid from \a [src].") - log_game("[key_name(user)] fired fluorosulfuric Acid from \a [src].") + msg_admin_attack("[key_name_admin(user)] fired fluorosulfuric acid from \a [src] at [COORD(src)].") + log_game("[key_name(user)] fired fluorosulfuric Acid from \a [src] at [COORD(src)].") if(reagents.has_reagent("lube")) - msg_admin_attack("[key_name_admin(user)] fired space lube from \a [src].") - log_game("[key_name(user)] fired space lube from \a [src].") + msg_admin_attack("[key_name_admin(user)] fired space lube from \a [src] at [COORD(src)].") + log_game("[key_name(user)] fired space lube from \a [src] at [COORD(src)].") return From 1bfad9cd52826c0a870ebe50eb7850dedea9e500 Mon Sep 17 00:00:00 2001 From: tigercat2000 Date: Fri, 18 May 2018 19:47:13 -0700 Subject: [PATCH 14/73] Travis #3: Build stages! --- .travis.yml | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index a357be1d762..526ebde75ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,16 +5,6 @@ sudo: false git: depth: 1 -env: - global: - - BYOND_MAJOR="511" - - BYOND_MINOR="1385" - - BYOND_MACRO_COUNT=4 - matrix: - - DM_MAPFILE="cyberiad" - - DM_MAPFILE="metastation" - - DM_MAPFILE="test_all_maps" - cache: directories: - $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR} @@ -26,39 +16,50 @@ addons: - libgcc1:i386 - libstdc++6:i386 +env: + global: + - BYOND_MAJOR="511" + - BYOND_MINOR="1385" + - BYOND_MACRO_COUNT=4 + matrix: + - DM_MAPFILE="cyberiad" + - DM_MAPFILE="metastation" + - DM_MAPFILE="test_all_maps" + +stages: + - File Checks + - test + before_script: - chmod +x ./install-byond.sh - ./install-byond.sh script: - - (num=$(grep -Ern '\\(red|blue|green|black|italic|bold|b|i[^mc])' code/ | wc -l); echo "$num BYOND text macros (expecting ${BYOND_MACRO_COUNT} or fewer)"; [ $num -le ${BYOND_MACRO_COUNT} ]) - source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup - bash dm.sh -M${DM_MAPFILE} paradise.dme - -# File checks - Rules: -# - No step_x/step_y in .dmm files -# - html/changelog/example.yml untouched -# - Changelog generation works -matrix: +jobs: include: - - env: FILE_CHECKS=1 + # Basic styling/functionality checks + - stage: File Checks + env: addons: install: - pip install --user PyYaml -q - pip install --user beautifulsoup4 -q - before_script: + before_script: skip script: - shopt -s globstar - (! grep 'step_[xy]' _maps/map_files/**/*.dmm) + - (num=$(grep -Ern '\\(red|blue|green|black|italic|bold|b|i[^mc])' code/ | wc -l); echo "$num BYOND text macros (expecting ${BYOND_MACRO_COUNT} or fewer)"; [ $num -le ${BYOND_MACRO_COUNT} ]) - md5sum -c - <<< "6dc1b6bf583f3bd4176b6df494caa5f1 *html/changelogs/example.yml" - python tools/ss13_genchangelog.py html/changelog.html html/changelogs -# NodeJS Checks -# - Builds NanoUI - - env: NODEJS_CHECKS=1 + # Compile NanoUI to make sure it works + - stage: NanoUI language: node_js node_js: - "9" + env: addons: before_install: - npm install -g bower gulp @@ -68,4 +69,4 @@ matrix: - bower install --silent before_script: script: - - gulp --min \ No newline at end of file + - gulp --min From a49fcfd53f49b4a57354318249bc3d4b54a4b6f4 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 19 May 2018 03:56:11 +0000 Subject: [PATCH 15/73] Automatic changelog compile, [ci skip] --- html/changelog.html | 14 ++++++++++++++ html/changelogs/.all_changelog.yml | 10 ++++++++++ html/changelogs/AutoChangeLog-pr-9016.yml | 5 ----- html/changelogs/AutoChangeLog-pr-9028.yml | 4 ---- html/changelogs/AutoChangeLog-pr-9029.yml | 6 ------ 5 files changed, 24 insertions(+), 15 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-9016.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-9028.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-9029.yml diff --git a/html/changelog.html b/html/changelog.html index 627bcc3df55..0a6ad665b97 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,20 @@ -->
+

19 May 2018

+

Aurorablade updated:

+
    +
  • Vet Coat Fluff item.
  • +
  • Spacepod mod kit now uses kit blueprints and not KITE blueprints (spelling error).
  • +
+

Fox McCloud updated:

+
    +
  • Adds gloves of the North Star; get them on the uplink for 8 TC
  • +
  • Unarmed attacks now have their own icons, as does disarming.
  • +
  • Various mobs have their own custom icon attacks
  • +
  • Monkies now bite!
  • +
+

18 May 2018

Fox McCloud updated: