diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm
index 7651766f3f0..77087ed32fc 100644
--- a/code/game/mecha/combat/combat.dm
+++ b/code/game/mecha/combat/combat.dm
@@ -2,7 +2,7 @@
force = 30
var/melee_cooldown = 10
var/melee_can_hit = 1
- var/list/destroyable_obj = list(/obj/mecha, /obj/structure/window, /obj/structure/grille, /turf/simulated/wall)
+ var/list/destroyable_obj = list(/obj/mecha, /obj/structure/window, /obj/structure/grille, /turf/simulated/wall, /obj/structure/girder)
internal_damage_threshold = 50
maint_access = 0
//add_req_access = 0
@@ -95,14 +95,19 @@
if(istype(target, target_type) && hascall(target, "attackby"))
src.occupant_message("You hit [target].")
src.visible_message("[src.name] hits [target]")
- if(!istype(target, /turf/simulated/wall))
+ if(!istype(target, /turf/simulated/wall) && !istype(target, /obj/structure/girder))
target:attackby(src,src.occupant)
else if(prob(5))
target:dismantle_wall(1)
src.occupant_message("You smash through the wall.")
src.visible_message("[src.name] smashes through the wall")
playsound(src, 'sound/weapons/smash.ogg', 50, 1)
+ else if(istype(target, /turf/simulated/wall))
+ target:take_damage(force)
+ else if(istype(target, /obj/structure/girder))
+ target:take_damage(force * 3) //Girders have 200 health by default. Steel, non-reinforced walls take four punches, girders take (with this value-mod) two, girders took five without.
melee_can_hit = 0
+
if(do_after(melee_cooldown))
melee_can_hit = 1
break
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index ce84a6bcf4b..56149a254c2 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -873,10 +873,10 @@
/obj/mecha/proc/mmi_moved_inside(var/obj/item/device/mmi/mmi_as_oc as obj,mob/user as mob)
if(mmi_as_oc && user in range(1))
if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client)
- user << "Consciousness matrix not detected."
+ to_chat(user,"Consciousness matrix not detected.")
return 0
else if(mmi_as_oc.brainmob.stat)
- user << "Beta-rhythm below acceptable level."
+ to_chat(user,"Beta-rhythm below acceptable level.")
return 0
user.drop_from_inventory(mmi_as_oc)
var/mob/brainmob = mmi_as_oc.brainmob
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 14a724e0291..37aeef7fd9f 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -125,6 +125,12 @@
else
return ..()
+/obj/structure/girder/proc/take_damage(var/damage)
+ health -= damage
+
+ if(health <= 0)
+ dismantle()
+
/obj/structure/girder/proc/construct_wall(obj/item/stack/material/S, mob/user)
var/amount_to_use = reinf_material ? 1 : 2
if(S.get_amount() < amount_to_use)