diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index 627f3298ccd4..01f147a1b1d0 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -217,7 +217,7 @@
desc = "Use this to keep prisoners in line."
gender = PLURAL
icon = 'icons/obj/items_and_weapons.dmi'
- icon_state = "handcuff"
+ icon_state = "legcuff"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
flags_1 = CONDUCT_1
@@ -235,6 +235,17 @@
var/armed = 0
var/trap_damage = 20
+/obj/item/restraints/legcuffs/beartrap/goliath
+ name = "tentacle mass"
+ desc = "Ew."
+ icon_state = "goliathtrap"
+ flags_1 = NONE
+ slowdown = 10
+ breakouttime = 5 SECONDS
+ item_flags = DROPDEL
+ armed = 1
+ trap_damage = 0
+
/obj/item/restraints/legcuffs/beartrap/Initialize()
. = ..()
update_appearance()
@@ -294,8 +305,8 @@
snap = FALSE
if(snap)
close_trap()
- L.visible_message("[L] triggers \the [src].", \
- "You trigger \the [src]!")
+ L.visible_message("[L] gets caught by \the [src]!", \
+ "You get caught by \the [src]!")
L.apply_damage(trap_damage, BRUTE, def_zone)
/obj/item/restraints/legcuffs/beartrap/energy
diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm
index 7d06c9e1f827..a7dc41b307c4 100644
--- a/code/modules/mob/living/carbon/carbon_defines.dm
+++ b/code/modules/mob/living/carbon/carbon_defines.dm
@@ -15,7 +15,7 @@
var/silent = 0 ///Can't talk. Value goes down every life proc. NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU.
var/dreaming = 0 ///How many dream images we have left to send
- var/obj/item/handcuffed = null///Whether or not the mob is handcuffed
+ var/obj/item/handcuffed = null ///Whether or not the mob is handcuffed
var/obj/item/legcuffed = null ///Same as handcuffs but for legs. Bear traps use this.
var/disgust = 0
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index d7d6754b0e5d..a0e409c2053d 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -571,7 +571,7 @@ There are several things that need to be remembered:
remove_overlay(LEGCUFF_LAYER)
clear_alert("legcuffed")
if(legcuffed)
- overlays_standing[LEGCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', "legcuff1", -LEGCUFF_LAYER)
+ overlays_standing[LEGCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', legcuffed.icon_state, -LEGCUFF_LAYER)
apply_overlay(LEGCUFF_LAYER)
throw_alert("legcuffed", /atom/movable/screen/alert/restrained/legcuffed, new_master = src.legcuffed)
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
index 1fa691b85de7..c078196749fc 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
@@ -328,7 +328,7 @@
for(var/mob/living/L in loc)
if((!QDELETED(spawner) && spawner.faction_check_mob(L)) || L.stat == DEAD)
continue
- visible_message("[src] grabs hold of [L]!")
+ visible_message("[src] wraps a mass of tentacles around [L]!")
on_hit(L)
latched = TRUE
if(!latched)
@@ -337,10 +337,11 @@
deltimer(timerid)
timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE)
-/obj/effect/temp_visual/goliath_tentacle/proc/on_hit(mob/living/L)
- L.Stun(100)
- L.adjustBruteLoss(rand(10,15))
-
+/obj/effect/temp_visual/goliath_tentacle/proc/on_hit(mob/living/target)
+ target.apply_damage(rand(20,30), BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
+ if(iscarbon(target))
+ var/obj/item/restraints/legcuffs/beartrap/goliath/B = new /obj/item/restraints/legcuffs/beartrap/goliath(get_turf(target))
+ B.on_entered(src, target)
/obj/effect/temp_visual/goliath_tentacle/proc/retract()
icon_state = "marker"
diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi
index 64d0cc4ef8ce..142386586679 100644
Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ
diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi
index 5748d2dec958..7a20a687e055 100644
Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ