Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Commit 0903c6e

Browse files
stuff (#22595)
1 parent ba50f40 commit 0903c6e

File tree

5 files changed

+25
-18
lines changed

5 files changed

+25
-18
lines changed

code/game/mecha/equipment/mecha_equipment.dm

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,9 @@
108108
return FALSE
109109
if(!chassis)
110110
return FALSE
111-
if(chassis.Adjacent(target))
112-
if(!(range & MECHA_MELEE))
113-
chassis.default_melee_attack(target)
114-
return FALSE
115-
else if(!(range & MECHA_RANGED))
111+
if(!(range & MECHA_MELEE) && chassis.default_melee_attack(target))
112+
return FALSE
113+
if(!(range & MECHA_RANGED) && !chassis.Adjacent(target))
116114
return FALSE
117115
if(!equip_ready)
118116
return FALSE

code/game/mecha/equipment/weapons/armor.dm

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,29 @@
1919
/obj/item/mecha_parts/mecha_equipment/armor/attach(obj/mecha/new_chassis)
2020
. = ..()
2121
if(equip_ready)
22-
new_chassis.armor.attachArmor(armor)
22+
new_chassis.armor = new_chassis.armor.attachArmor(armor)
2323

2424
/obj/item/mecha_parts/mecha_equipment/armor/detach(atom/moveto)
2525
if(equip_ready)
26-
chassis.armor.detachArmor(armor)
26+
chassis.armor = chassis.armor.detachArmor(armor)
2727
return ..()
2828

2929
/obj/item/mecha_parts/mecha_equipment/armor/set_ready_state(state)
3030
if(equip_ready != state)
3131
if(state)
32-
chassis.armor.attachArmor(armor)
32+
chassis.armor = chassis.armor.attachArmor(armor)
3333
else
34-
chassis.armor.detachArmor(armor)
34+
chassis.armor = chassis.armor.detachArmor(armor)
3535
return ..()
3636

3737
/obj/item/mecha_parts/mecha_equipment/armor/melee //what is that noise? A BAWWW from TK mutants.
3838
name = "armor booster module (Close Combat Weaponry)"
39-
desc = "Boosts exosuit armor against armed melee attacks. Requires energy to operate."
39+
desc = "Boosts exosuit armor against armed melee attacks."
4040
icon_state = "mecha_abooster_ccw"
4141
armor = list(MELEE = 20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 20, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, ELECTRIC = 0)
4242

4343
/obj/item/mecha_parts/mecha_equipment/armor/ranged
4444
name = "armor booster module (Ranged Weaponry)"
45-
desc = "Boosts exosuit armor against ranged attacks. Completely blocks taser shots. Requires energy to operate."
45+
desc = "Boosts exosuit armor against ranged attacks."
4646
icon_state = "mecha_abooster_proj"
4747
armor = list(MELEE = 0, BULLET = 15, LASER = 15, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, ELECTRIC = 0)

code/game/mecha/equipment/weapons/weapons.dm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@
200200
chassis.default_melee_attack(target)
201201
return TRUE
202202

203+
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma/use(used)
204+
return chassis?.cell?.use(used * energy_drain)
205+
203206
/obj/item/mecha_parts/mecha_equipment/weapon/energy/mecha_kineticgun
204207
equip_cooldown = 10
205208
name = "Exosuit Proto-kinetic Accelerator"

code/game/mecha/mecha.dm

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -589,24 +589,25 @@
589589
if(!W.equip_ready && (W.equip_cooldown < MECHA_MAX_COOLDOWN))
590590
return
591591

592-
if(!selected && Adjacent(target))
592+
if(!selected)
593593
default_melee_attack(target)
594-
return
595-
if(selected.action_checks(target) && selected.action(target, user, params))
594+
else if(selected.action_checks(target) && selected.action(target, user, params))
596595
selected.start_cooldown()
597596

598597
/obj/mecha/proc/default_melee_attack(atom/target)
599598
if(internal_damage & MECHA_INT_CONTROL_LOST)
600599
target = pick(oview(1,src))
601-
if(!melee_can_hit || !istype(target, /atom))
602-
return
600+
if(!melee_can_hit || !isatom(target))
601+
return FALSE
603602
if(equipment_disabled)
604-
return
603+
return FALSE
604+
if(!Adjacent(target))
605+
return FALSE
605606
target.mech_melee_attack(src, force, TRUE)
606607
melee_can_hit = FALSE
607608
adjust_overheat(punch_heat_cost)
608609
addtimer(VARSET_CALLBACK(src, melee_can_hit, TRUE), melee_cooldown)
609-
610+
return TRUE
610611

611612
/obj/mecha/proc/range_action(atom/target)
612613
return

code/game/mecha/mecha_defense.dm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,11 @@
201201
log_message("Exposed to dangerous temperature.", LOG_MECHA, color="red")
202202
take_damage(5, BURN, 0, 1)
203203

204+
/obj/mecha/tool_act(mob/living/user, obj/item/tool, tool_type, params)
205+
if(istype(tool, /obj/item/mecha_parts/mecha_equipment) && !ismecha(tool.loc))
206+
return FALSE
207+
return ..()
208+
204209
/obj/mecha/welder_act(mob/living/user, obj/item/tool, modifiers)
205210
if(user.combat_mode)
206211
return FALSE

0 commit comments

Comments
 (0)