diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index d23d0905e9..ec742a8dfe 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -113,6 +113,7 @@
if(I.force)
//CIT CHANGES START HERE - combatmode and resting checks
var/totitemdamage = I.force
+ totitemdamage *= I.force_mult //Compression kit uses this
if(iscarbon(user))
var/mob/living/carbon/tempcarb = user
if(!tempcarb.combatmode)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 9ff1b5cf01..0765853b9c 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -109,6 +109,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder!
+ //Compression kit vars
+ var/force_mult = 1
+
/obj/item/Initialize()
materials = typelist("materials", materials)
diff --git a/code/game/objects/items/devices/compressionkit.dm b/code/game/objects/items/devices/compressionkit.dm
index 9d10d2663c..cd26a06dde 100644
--- a/code/game/objects/items/devices/compressionkit.dm
+++ b/code/game/objects/items/devices/compressionkit.dm
@@ -2,16 +2,35 @@
name = "bluespace compression kit"
desc = "An illegally modified BSRPED, capable of reducing the size of most items."
icon = 'icons/obj/tools.dmi'
- icon_state = "compression"
+ icon_state = "compression_c"
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
+ var/damage_multiplier = 0.2 // Changing this effects how much more or less damage a resized item will do
+ var/mode = 0
/obj/item/compressionkit/examine(mob/user)
..()
- to_chat(user, "It has [charges] charges left.")
+ to_chat(user, "It has [charges] charges left. Recharge with bluespace crystals.")
+ to_chat(user, "Use in-hand to swap toggle compress/expand mode (expand mode not yet implemented).")
+
+/obj/item/compressionkit/attack_self(mob/user)
+ if(mode == 0)
+ mode = 1
+ icon_state = "compression_e"
+ to_chat(user, "You switch the compressor to expand mode. This isn't implemented yet, so right now it wont do anything different!")
+ return
+ if(mode == 1)
+ mode = 0
+ icon_state = "compression_c"
+ to_chat(user, "You switch the compressor to compress mode. Usage will now reduce the size of objects.")
+ return
+ else
+ mode = 0
+ icon_state = "compression_c"
+ to_chat(user, "Some coder cocked up or an admin broke your compressor. It's been set back to compress mode..")
/obj/item/compressionkit/proc/sparks()
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
@@ -64,6 +83,7 @@
sparks()
flash_lighting_fx(3, 3, LIGHT_COLOR_CYAN)
O.w_class -= 1
+ O.force_mult -= damage_multiplier
charges -= 1
to_chat(user, "You successfully compress [target]! The compressor now has [charges] charges.")
else
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
index 4f59848392..d3d25adea4 100644
Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ