From 059d9b1910bdba11bfccbc43530f9861b79498a2 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Sun, 13 Oct 2019 19:41:50 +0200 Subject: [PATCH 01/66] Fixes centcom supply pod launch messages (#47038) --- code/modules/cargo/centcom_podlauncher.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index c470ab613bf..c7f6cf0406f 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -600,8 +600,8 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm for (var/X in temp_pod.explosionSize) explosionString += "[X]|" - var/msg = "launched [podString][whomString].[delayString][damageString][explosionString]" - message_admins("[key_name_admin(usr)] [msg] in [AREACOORD(specificTarget)].") + var/msg = "launched [podString] towards [whomString] [delayString][damageString][explosionString]" + message_admins("[key_name_admin(usr)] [msg] in [ADMIN_VERBOSEJMP(specificTarget)].") if (!isemptylist(whoDyin)) for (var/mob/living/M in whoDyin) admin_ticket_log(M, "[key_name_admin(usr)] [msg]") From 5cbe594e9d8d59d7d9a654e0f4826d40eee8d666 Mon Sep 17 00:00:00 2001 From: carlarctg <53100513+carlarctg@users.noreply.github.com> Date: Sun, 13 Oct 2019 14:44:37 -0300 Subject: [PATCH 02/66] Update singularityhammer.dm (#47040) --- code/game/objects/items/singularityhammer.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index ea9ce22e1d2..1c84a3a1d65 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -4,6 +4,7 @@ icon_state = "mjollnir0" lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi' + color = "#212121" flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK force = 5 From 2be2e1bb27c5246d51c02141af415b5f1f231084 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 13 Oct 2019 10:44:41 -0700 Subject: [PATCH 03/66] Automatic changelog generation for PR #47040 [ci skip] --- html/changelogs/AutoChangeLog-pr-47040.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-47040.yml diff --git a/html/changelogs/AutoChangeLog-pr-47040.yml b/html/changelogs/AutoChangeLog-pr-47040.yml new file mode 100644 index 00000000000..4716706bf58 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-47040.yml @@ -0,0 +1,4 @@ +author: "carlarctg" +delete-after: True +changes: + - bugfix: "singulo hammer is now black" From f193939b57b0d301a4d4423c4122a3ef7d9df135 Mon Sep 17 00:00:00 2001 From: TheChosenEvilOne <34602646+TheChosenEvilOne@users.noreply.github.com> Date: Sun, 13 Oct 2019 20:45:10 +0300 Subject: [PATCH 04/66] Multi-Z fixes (#47046) * Fixed multi-z throwing and changed isliving in stairs. Signed-off-by: TheChosenEvilOne * Openspace can no longer be deepfried. Signed-off-by: TheChosenEvilOne --- code/__DEFINES/is_helpers.dm | 3 ++- code/controllers/subsystem/throwing.dm | 5 +++++ code/game/objects/structures/stairs.dm | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index d963d563ef3..36307710559 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -17,7 +17,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( /turf/open/space, /turf/open/chasm, /turf/open/lava, - /turf/open/water + /turf/open/water, + /turf/open/openspace ))) #define isgroundlessturf(A) (is_type_in_typecache(A, GLOB.turfs_without_ground)) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 96f359b0690..76a4f332fda 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -147,6 +147,11 @@ SUBSYSTEM_DEF(throwing) if (callback) callback.Invoke() + + if(!thrownthing.zfalling) // I don't think you can zfall while thrown but hey, just in case. + var/turf/T = get_turf(thrownthing) + if(T && thrownthing.has_gravity(T)) + T.zFall(thrownthing) qdel(src) diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm index 7086c7900e0..5be219f4486 100644 --- a/code/game/objects/structures/stairs.dm +++ b/code/game/objects/structures/stairs.dm @@ -41,7 +41,7 @@ /obj/structure/stairs/Uncross(atom/movable/AM, turf/newloc) if(!newloc || !AM) return ..() - if(isliving(AM) && isTerminator() && (get_dir(src, newloc) == dir)) + if(!isobserver(AM) && isTerminator() && (get_dir(src, newloc) == dir)) stair_ascend(AM) return FALSE return ..() From 3d6e760cf69c3d6ab43949062132cf837f547f9a Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 13 Oct 2019 10:45:13 -0700 Subject: [PATCH 05/66] Automatic changelog generation for PR #47046 [ci skip] --- html/changelogs/AutoChangeLog-pr-47046.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-47046.yml diff --git a/html/changelogs/AutoChangeLog-pr-47046.yml b/html/changelogs/AutoChangeLog-pr-47046.yml new file mode 100644 index 00000000000..4e39860e597 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-47046.yml @@ -0,0 +1,6 @@ +author: "TheChosenEvilOne" +delete-after: True +changes: + - bugfix: "Throwing objects to openspace works correctly." + - bugfix: "Non-living objects can now go up stairs." + - bugfix: "You can no longer deepfry openspace." From 31ab3ac8305b7e8c59c9d76cd24a8e45d44a3ad6 Mon Sep 17 00:00:00 2001 From: Fikou Date: Sun, 13 Oct 2019 20:34:52 +0200 Subject: [PATCH 06/66] power tool refactor (#46974) Power tool refactor --- .../map_files/Deltastation/DeltaStation2.dmm | 2 +- _maps/map_files/debug/runtimestation.dmm | 2 +- _maps/map_files/generic/CentCom.dmm | 2 +- code/game/objects/items/tools/crowbar.dm | 42 +++++++++++++++---- code/game/objects/items/tools/screwdriver.dm | 26 ++++++++---- code/game/objects/items/tools/wirecutters.dm | 39 ----------------- code/game/objects/items/tools/wrench.dm | 27 ------------ .../hostile/mining_mobs/hivelord.dm | 2 +- 8 files changed, 58 insertions(+), 84 deletions(-) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 0023c6af9e8..98feaef8d88 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -116791,7 +116791,7 @@ "wEB" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/electrical, -/obj/item/wrench/power, +/obj/item/screwdriver/power, /obj/machinery/status_display/evac{ pixel_y = 32 }, diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 32a23ef3ace..af4fd9c60f9 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -341,7 +341,7 @@ "bo" = ( /obj/structure/table, /obj/item/screwdriver/power, -/obj/item/wirecutters/power, +/obj/item/crowbar/power, /turf/open/floor/plasteel, /area/engine/engineering) "bp" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 46a59e4a9ce..2ce7c67f566 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -8165,7 +8165,7 @@ "sa" = ( /obj/structure/table/wood, /obj/item/lighter, -/obj/item/wirecutters/power, +/obj/item/crowbar/power, /turf/open/floor/plasteel/dark, /area/centcom/supplypod) "sb" = ( diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index 10bdf34cf18..6a048ac4dc5 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -60,7 +60,7 @@ /obj/item/crowbar/power name = "jaws of life" - desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a prying head." + desc = "A set of jaws of life, compressed through the magic of science." icon_state = "jaws_pry" item_state = "jawsoflife" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' @@ -71,17 +71,45 @@ toolspeed = 0.7 force_opens = TRUE +/obj/item/crowbar/power/examine() + . = ..() + . += " It's fitted with a [tool_behaviour == TOOL_CROWBAR ? "prying" : "cutting"] head." + /obj/item/crowbar/power/suicide_act(mob/user) - user.visible_message("[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/items/jaws_pry.ogg', 50, TRUE, -1) + if(tool_behaviour == TOOL_CROWBAR) + user.visible_message("[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/items/jaws_pry.ogg', 50, TRUE, -1) + else + user.visible_message("[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!") + playsound(loc, 'sound/items/jaws_cut.ogg', 50, TRUE, -1) + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart(BODY_ZONE_HEAD) + if(BP) + BP.drop_limb() + playsound(loc, "desceration", 50, TRUE, -1) return (BRUTELOSS) /obj/item/crowbar/power/attack_self(mob/user) playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, TRUE) - var/obj/item/wirecutters/power/cutjaws = new /obj/item/wirecutters/power(drop_location()) - to_chat(user, "You attach the cutting jaws to [src].") - qdel(src) - user.put_in_active_hand(cutjaws) + if(tool_behaviour == TOOL_CROWBAR) + tool_behaviour = TOOL_WIRECUTTER + to_chat(user, "You attach the cutting jaws to [src].") + usesound = 'sound/items/jaws_cut.ogg' + icon_state = "jaws_cutter" + else + tool_behaviour = TOOL_CROWBAR + to_chat(user, "You attach the prying jaws to [src].") + usesound = 'sound/items/jaws_pry.ogg' + icon_state = "jaws_pry" + +/obj/item/crowbar/power/attack(mob/living/carbon/C, mob/user) + if(istype(C) && C.handcuffed && tool_behaviour == TOOL_WIRECUTTER) + user.visible_message("[user] cuts [C]'s restraints with [src]!") + qdel(C.handcuffed) + return + else + ..() /obj/item/crowbar/cyborg name = "hydraulic crowbar" diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index b18bfffef1c..b5f9bd88eb0 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -108,7 +108,7 @@ /obj/item/screwdriver/power name = "hand drill" - desc = "A simple powered hand drill. It's fitted with a screw bit." + desc = "A simple powered hand drill." icon_state = "drill_screw" item_state = "drill" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' @@ -125,16 +125,28 @@ toolspeed = 0.7 random_color = FALSE +/obj/item/screwdriver/power/examine() + . = ..() + . += " It's fitted with a [tool_behaviour == TOOL_SCREWDRIVER ? "screw" : "bolt"] bit." + /obj/item/screwdriver/power/suicide_act(mob/user) - user.visible_message("[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!") + if(tool_behaviour == TOOL_SCREWDRIVER) + user.visible_message("[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!") + else + user.visible_message("[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/items/drill_use.ogg', 50, TRUE, -1) return(BRUTELOSS) /obj/item/screwdriver/power/attack_self(mob/user) - playsound(get_turf(user),'sound/items/change_drill.ogg',50,TRUE) - var/obj/item/wrench/power/b_drill = new /obj/item/wrench/power(drop_location()) - to_chat(user, "You attach the bolt driver bit to [src].") - qdel(src) - user.put_in_active_hand(b_drill) + playsound(get_turf(user), 'sound/items/change_drill.ogg', 50, TRUE) + if(tool_behaviour == TOOL_SCREWDRIVER) + tool_behaviour = TOOL_WRENCH + to_chat(user, "You attach the screw bit to [src].") + icon_state = "drill_bolt" + else + tool_behaviour = TOOL_SCREWDRIVER + to_chat(user, "You attach the bolt bit to [src].") + icon_state = "drill_screw" /obj/item/screwdriver/cyborg name = "automated screwdriver" diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 40f09240cdb..548ba0f55e0 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -82,47 +82,8 @@ icon = 'icons/obj/abductor.dmi' icon_state = "cutters" toolspeed = 0.1 - random_color = FALSE -/obj/item/wirecutters/power - name = "jaws of life" - desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a cutting head." - icon_state = "jaws_cutter" - item_state = "jawsoflife" - - custom_materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25) - usesound = 'sound/items/jaws_cut.ogg' - toolspeed = 0.7 - random_color = FALSE - -/obj/item/wirecutters/power/suicide_act(mob/user) - user.visible_message("[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!") - playsound(loc, 'sound/items/jaws_cut.ogg', 50, TRUE, -1) - if(iscarbon(user)) - var/mob/living/carbon/C = user - var/obj/item/bodypart/BP = C.get_bodypart(BODY_ZONE_HEAD) - if(BP) - BP.drop_limb() - playsound(loc, "desceration", 50, TRUE, -1) - return (BRUTELOSS) - -/obj/item/wirecutters/power/attack_self(mob/user) - playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, TRUE) - var/obj/item/crowbar/power/pryjaws = new /obj/item/crowbar/power(drop_location()) - to_chat(user, "You attach the pry jaws to [src].") - qdel(src) - user.put_in_active_hand(pryjaws) - -/obj/item/wirecutters/power/attack(mob/living/carbon/C, mob/user) - if(istype(C) && C.handcuffed) - user.visible_message("[user] cuts [C]'s restraints with [src]!") - qdel(C.handcuffed) - return - else - ..() - - /obj/item/wirecutters/cyborg name = "powered wirecutters" desc = "Cuts wires with the power of ELECTRICITY. Faster than normal wirecutters." diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 025ecdbe1a6..fd073a3a8c0 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -41,33 +41,6 @@ toolspeed = 0.1 -/obj/item/wrench/power - name = "hand drill" - desc = "A simple powered hand drill. It's fitted with a bolt bit." - icon_state = "drill_bolt" - item_state = "drill" - lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - usesound = 'sound/items/drill_use.ogg' - custom_materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25) - //done for balance reasons, making them high value for research, but harder to get - force = 8 //might or might not be too high, subject to change - w_class = WEIGHT_CLASS_SMALL - throwforce = 8 - attack_verb = list("drilled", "screwed", "jabbed") - toolspeed = 0.7 - -/obj/item/wrench/power/attack_self(mob/user) - playsound(get_turf(user),'sound/items/change_drill.ogg',50,TRUE) - var/obj/item/wirecutters/power/s_drill = new /obj/item/screwdriver/power(drop_location()) - to_chat(user, "You attach the screw driver bit to [src].") - qdel(src) - user.put_in_active_hand(s_drill) - -/obj/item/wrench/power/suicide_act(mob/user) - user.visible_message("[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) - /obj/item/wrench/medical name = "medical wrench" desc = "A medical wrench with common(medical?) uses. Can be found in your hand." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 4e959613c35..640d229993f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -342,7 +342,7 @@ if(prob(50)) neck = /obj/item/bedsheet/rd/royal_cape if(prob(10)) - l_pocket = pick(list(/obj/item/crowbar/power, /obj/item/wrench/power, /obj/item/weldingtool/experimental)) + l_pocket = pick(list(/obj/item/crowbar/power, /obj/item/screwdriver/power, /obj/item/weldingtool/experimental)) if("YeOlde") mob_gender = FEMALE uniform = /obj/item/clothing/under/costume/maid From 1090f4e415f385f0943477f08c3cb6058fc2e674 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 13 Oct 2019 11:34:55 -0700 Subject: [PATCH 07/66] Automatic changelog generation for PR #46974 [ci skip] --- html/changelogs/AutoChangeLog-pr-46974.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-46974.yml diff --git a/html/changelogs/AutoChangeLog-pr-46974.yml b/html/changelogs/AutoChangeLog-pr-46974.yml new file mode 100644 index 00000000000..3fb0314553d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-46974.yml @@ -0,0 +1,4 @@ +author: "Fikou" +delete-after: True +changes: + - refactor: "powertools now change behaviour instead of being completely different items" From f9c2ab6ef82959ce4617b8af85209ae92ad2e2dc Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 13 Oct 2019 19:38:17 +0000 Subject: [PATCH 08/66] Automatic changelog compile, [ci skip] --- html/changelog.html | 11 +++++++++++ html/changelogs/.all_changelog.yml | 8 ++++++++ html/changelogs/AutoChangeLog-pr-46974.yml | 4 ---- html/changelogs/AutoChangeLog-pr-47040.yml | 4 ---- html/changelogs/AutoChangeLog-pr-47046.yml | 6 ------ 5 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-46974.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-47040.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-47046.yml diff --git a/html/changelog.html b/html/changelog.html index 1e58bd1af17..067e8923d20 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -77,6 +77,10 @@
  • blindness spell now only blinds you temporarily
  • drinking carrot juice no longer permanently blinds you
  • +

    Fikou updated:

    +
      +
    • powertools now change behaviour instead of being completely different items
    • +

    Fox McCloud updated:

    • Fixes AI swarmers just sitting in their base doing nothing
    • @@ -99,6 +103,12 @@
    • Random gender will now have a chance of picking "Other".
    • KS13 air tank injector now on and maxed.
    +

    TheChosenEvilOne updated:

    +
      +
    • Throwing objects to openspace works correctly.
    • +
    • Non-living objects can now go up stairs.
    • +
    • You can no longer deepfry openspace.
    • +

    Toxicby updated: