From 93464b8f24de54194d702b2b43f58a708bc7eec8 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Thu, 30 May 2019 02:46:34 +1200 Subject: [PATCH] Adds bluespace compression kit --- .../objects/items/devices/compressionkit.dm | 62 ++++++++++++++++++ code/modules/uplink/uplink_items.dm | 9 +++ icons/obj/device.dmi | Bin 43527 -> 44214 bytes tgstation.dme | 1 + 4 files changed, 72 insertions(+) create mode 100644 code/game/objects/items/devices/compressionkit.dm diff --git a/code/game/objects/items/devices/compressionkit.dm b/code/game/objects/items/devices/compressionkit.dm new file mode 100644 index 0000000000..387b8a3244 --- /dev/null +++ b/code/game/objects/items/devices/compressionkit.dm @@ -0,0 +1,62 @@ +/obj/item/compressionkit + name = "bluespace compression kit" + desc = "An illegally modified BSRPED, capable of reducing the size of most items." + icon = 'icons/obj/device.dmi' + icon_state = "compression" // aicard-full + item_state = "RPED" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + var/charges = 5 + +/obj/item/compressionkit/suicide_act(mob/living/carbon/M) + M.visible_message("[M] is sticking their head in [src] and turning it on! [M.p_theyre(TRUE)] going to compress their own skull!") + var/obj/item/bodypart/head = M.get_bodypart("head") + if(!head) + return + var/turf/T = get_turf(M) + var/list/organs = M.getorganszone("head") + M.getorganszone("eyes") + M.getorganszone("mouth") + for(var/internal_organ in organs) + var/obj/item/organ/I = internal_organ + I.Remove(M) + I.forceMove(T) + head.drop_limb() + qdel(head) + new M.gib_type(T,1,M.get_static_viruses()) + M.add_splatter_floor(T) + playsound(M, 'sound/weapons/flash.ogg', 100, 1, -6) + playsound(M, 'sound/effects/splat.ogg', 50, 1) + + return OXYLOSS + +/obj/item/compressionkit/afterattack(atom/target, mob/user, proximity) + . = ..() + if(!proximity || !target) + return + if(istype(target, /obj/item)) + var/obj/item/O = target + if(charges == 0) + playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 100, 1, -6) + to_chat(user, "The bluespace compression kit is out of charges! Recharge it with bluespace crystals.") + return + if(O.w_class == 1) + playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 100, 1, -6) + to_chat(user, "[target] cannot be compressed smaller!.") + return + if(O.GetComponent(/datum/component/storage)) + to_chat(user, "You feel like compressing an item that stores other items would be counterproductive.") + return + if(O.w_class > 1) + O.w_class -= 1 + playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6) + to_chat(user, "You successfully compress [target]!") + charges -= 1 + else + to_chat(user, "Anomalous error. Summon a coder.") + +/obj/item/compressionkit/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/ore/bluespace_crystal)) + to_chat(user, "You insert [I] into [src].") + qdel(I) + charges += 2 \ No newline at end of file diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 798b495cfd..8510e0c830 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1247,6 +1247,15 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/codespeak_manual/unlimited cost = 3 +/datum/uplink_item/device_tools/compressionkit + name = "Bluespace Compression Kit" + desc = "A modified version of a BSRPED that can be used to reduce the size of most items while retaining their original functions! \ + Does not work on storage items. \ + Recharge using bluespace crystals. \ + Comes with 5 charges." + item = /obj/item/compressionkit + cost = 5 + // Implants /datum/uplink_item/implants category = "Implants" diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index becb58568ff14b0a8d215f10a556f805b1a920ee..4c15e69afccec8a482f14d9556cb41826c0350e9 100644 GIT binary patch delta 3496 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 delta 2804 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