diff --git a/code/game/gamemodes/changeling/changeling_items.dm b/code/game/gamemodes/changeling/changeling_items.dm index b0601683b41..164a98d6ea0 100644 --- a/code/game/gamemodes/changeling/changeling_items.dm +++ b/code/game/gamemodes/changeling/changeling_items.dm @@ -47,6 +47,14 @@ host.drop_from_inventory(src) QDEL_IN(src, 1) +/obj/item/weapon/melee/arm_blade/iscrowbar() + return TRUE + +/obj/item/weapon/melee/arm_blade/resolve_attackby(atom/A, mob/living/user, var/click_parameters) + if(istype(A,/turf/simulated/floor) && user.a_intent != I_HELP) + return + else + ..() /obj/item/weapon/shield/riot/changeling name = "shield-like mass" desc = "A mass of tough, boney tissue. You can still see the fingers as a twisted pattern in the shield." diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index f2a796c7a4a..e1d6da9fa1e 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -419,6 +419,11 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E to_chat(src, "We cannot perform this ability in this form!") return + if(H.handcuffed) + var/cuffs = H.handcuffed + H.u_equip(H.handcuffed) + qdel(cuffs) + changeling.chem_charges-- H.visible_message("[H] transforms!") changeling.geneticdamage = 30 @@ -972,11 +977,25 @@ var/list/datum/absorbed_dna/hivemind_bank = list() if(!changeling) return 0 src.mind.changeling.chem_charges -= 20 - var/mob/living/M = src + var/mob/living/carbon/M = src if(M.l_hand && M.r_hand) to_chat(M, "Your hands are full.") return + + if(M.handcuffed) + var/cuffs = M.handcuffed + M.u_equip(M.handcuffed) + qdel(cuffs) + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(istype(H.wear_suit, /obj/item/clothing/suit/straight_jacket)) + src.visible_message("[H] tears through the [H.wear_suit] with their grotesque arm blades!", + "We tear through the [H.wear_suit] with our arm blades!", + "You hear cloth ripping and tearing!") + QDEL_IN(H.wear_suit, 0) + H.unEquip(H.wear_suit, force = TRUE) var/obj/item/weapon/melee/arm_blade/blade = new(M) blade.creator = M @@ -995,12 +1014,26 @@ var/list/datum/absorbed_dna/hivemind_bank = list() if(!changeling) return 0 src.mind.changeling.chem_charges -= 20 - var/mob/living/M = src + var/mob/living/carbon/M = src if(M.l_hand && M.r_hand) to_chat(M, "Your hands are full.") return + if(M.handcuffed) + var/cuffs = M.handcuffed + M.u_equip(M.handcuffed) + qdel(cuffs) + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(istype(H.wear_suit, /obj/item/clothing/suit/straight_jacket)) + src.visible_message("[H] tears through the [H.wear_suit] with their grotesque shield!", + "We tear through the [H.wear_suit] with our newly formed shield!", + "You hear cloth ripping and tearing!") + QDEL_IN(H.wear_suit, 0) + H.unEquip(H.wear_suit, force = TRUE) + var/obj/item/weapon/shield/riot/changeling/shield = new(M) shield.creator = M M.put_in_hands(shield) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 1e95c265aed..3c648b0ee65 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -973,6 +973,11 @@ About the new airlock wires panel: var/obj/item/weapon/pai_cable/cable = C cable.plugin(src, user) else if(!repairing && C.iscrowbar()) + if(istype(C, /obj/item/weapon/melee/arm_blade)) + if(!arePowerSystemsOn()) //if this check isn't done and empty, the armblade will never be used to hit the airlock + else if(!(stat & BROKEN)) + ..() + return if(src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN)))) ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.") diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index a3ccb5d1364..0d7ee9d1b58 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -111,6 +111,14 @@ to_chat(user, "You drill through the girder!") dismantle() + else if(istype(W, /obj/item/weapon/melee/arm_blade/)) + to_chat(user, "Now slicing apart the girder...") + if(do_after(user,150)) + if(!src) + return + to_chat(user, "You slice apart the girder!") + dismantle() + else if(W.isscrewdriver()) if(state == 2) playsound(src.loc, W.usesound, 100, 1) @@ -329,4 +337,4 @@ else if(mover.checkpass(PASSTABLE)) //Animals can run under them, lots of empty space return 1 - return ..() \ No newline at end of file + return ..() diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index a6b965eee76..c91f17133b9 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -218,6 +218,10 @@ dismantle_verb = P.drill_verb dismantle_sound = P.drill_sound cut_delay -= P.digspeed + else if(istype(W,/obj/item/weapon/melee/arm_blade/)) + dismantle_sound = "pickaxe" + dismantle_verb = "slicing and stabbing" + cut_delay *= 1.5 if(dismantle_verb) diff --git a/html/changelogs/geeves-REWORKNOTREMOVE.yml b/html/changelogs/geeves-REWORKNOTREMOVE.yml new file mode 100644 index 00000000000..3520ef97b3e --- /dev/null +++ b/html/changelogs/geeves-REWORKNOTREMOVE.yml @@ -0,0 +1,44 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Geeves + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Forming armblades and flesh riot shields as ling now break cuffs and straitjackets." + - rscadd: "Changing into a lesser form now uncuffs you." + - rscadd: "You can use an armblade is a crowbar, to do crowbar based activities." + - rscadd: "The armblade can be used to slice and dice through non-reinforced walls and girders."