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

Commit b187f79

Browse files
guh (#22566)
1 parent 926aaba commit b187f79

File tree

9 files changed

+28
-44
lines changed

9 files changed

+28
-44
lines changed

code/game/mecha/equipment/mecha_equipment.dm

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,18 +99,17 @@
9999

100100
return txt
101101

102-
/obj/item/mecha_parts/mecha_equipment/proc/is_ranged()//add a distance restricted equipment. Why not?
103-
return range & MECHA_RANGED
104-
105-
/obj/item/mecha_parts/mecha_equipment/proc/is_melee()
106-
return range & MECHA_MELEE
107-
108-
109102
/obj/item/mecha_parts/mecha_equipment/proc/action_checks(atom/target)
110103
if(!target)
111104
return FALSE
112105
if(!chassis)
113106
return FALSE
107+
if(chassis.Adjacent(target))
108+
if(!(range & MECHA_MELEE))
109+
chassis.default_melee_attack(target)
110+
return FALSE
111+
else if(!(range & MECHA_RANGED))
112+
return FALSE
114113
if(!equip_ready)
115114
return FALSE
116115
if(energy_drain && !chassis.has_charge(energy_drain))

code/game/mecha/equipment/tools/medical_tools.dm

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@
4949
return 0
5050

5151
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/action(mob/living/carbon/target)
52-
if(!action_checks(target))
53-
return
5452
if(!istype(target))
5553
return
5654
if(!patient_insertion_check(target))
@@ -288,8 +286,6 @@
288286
return
289287

290288
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/action(atom/movable/target)
291-
if(!action_checks(target))
292-
return
293289
if(istype(target, /obj/item/reagent_containers/syringe))
294290
return load_syringe(target)
295291
if(istype(target, /obj/item/storage))//Loads syringes from boxes

code/game/mecha/equipment/tools/mining_tools.dm

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@
2222
. = ..()
2323
AddComponent(/datum/component/butchering, 50, 100)
2424

25-
/obj/item/mecha_parts/mecha_equipment/drill/action(atom/target)
26-
if(!action_checks(target))
27-
return
25+
/obj/item/mecha_parts/mecha_equipment/drill/action_checks(atom/target)
2826
if(isspaceturf(target))
29-
return
27+
return FALSE
28+
return ..()
29+
30+
/obj/item/mecha_parts/mecha_equipment/drill/action(atom/target)
3031
if(isobj(target))
3132
var/obj/target_obj = target
3233
if(target_obj.resistance_flags & UNACIDABLE)

code/game/mecha/equipment/tools/other_tools.dm

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,14 @@
1212
energy_drain = 1000
1313
range = MECHA_RANGED
1414

15+
/obj/item/mecha_parts/mecha_equipment/teleporter/action_checks(atom/target)
16+
var/area/start_area = get_area(chassis)
17+
var/area/end_area = get_area(target)
18+
if((start_area.area_flags|end_area.area_flags) & NOTELEPORT)
19+
return FALSE
20+
return ..()
21+
1522
/obj/item/mecha_parts/mecha_equipment/teleporter/action(atom/target)
16-
if(!action_checks(target) || is_centcom_level(loc.z))
17-
return
1823
var/turf/T = get_turf(target)
1924
if(T)
2025
do_teleport(chassis, T, 4, channel = TELEPORT_CHANNEL_BLUESPACE)
@@ -32,10 +37,14 @@
3237
energy_drain = 300
3338
range = MECHA_RANGED
3439

40+
/obj/item/mecha_parts/mecha_equipment/wormhole_generator/action_checks(atom/target)
41+
var/area/start_area = get_area(chassis)
42+
var/area/end_area = get_area(target)
43+
if((start_area.area_flags|end_area.area_flags) & NOTELEPORT)
44+
return FALSE
45+
return ..()
3546

3647
/obj/item/mecha_parts/mecha_equipment/wormhole_generator/action(atom/target)
37-
if(!action_checks(target) || is_centcom_level(loc.z))
38-
return
3948
var/list/theareas = get_areas_in_range(100, chassis)
4049
if(!theareas.len)
4150
return
@@ -82,8 +91,6 @@
8291
return ..()
8392

8493
/obj/item/mecha_parts/mecha_equipment/gravcatapult/action(atom/movable/target, mob/living/user, params)
85-
if(!action_checks(target))
86-
return
8794
var/list/modifiers = params2list(params)
8895
if(modifiers[RIGHT_CLICK])
8996
if(locked)

code/game/mecha/equipment/tools/work_tools.dm

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@
5151
tool_behaviour = 0
5252

5353
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/action(atom/target, mob/living/user, params)
54-
if(!action_checks(target))
55-
return
5654
if(!cargo_holder)
5755
return
5856

@@ -133,8 +131,6 @@
133131
real_clamp = TRUE
134132

135133
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill/action(atom/target, mob/living/user, params)
136-
if(!action_checks(target))
137-
return
138134
if(!cargo_holder)
139135
return
140136
if(isobj(target))
@@ -220,9 +216,6 @@
220216
reagents.add_reagent(/datum/reagent/firefighting_foam, 1000)
221217

222218
/obj/item/mecha_parts/mecha_equipment/extinguisher/action(atom/target) //copypasted from extinguisher. TODO: Rewrite from scratch.
223-
if(!action_checks(target))
224-
return
225-
226219
if(istype(target, /obj/structure/reagent_dispensers/foamtank) && get_dist(chassis,target) <= 1)
227220
var/obj/structure/reagent_dispensers/WT = target
228221
WT.reagents.trans_to(src, 1000)
@@ -494,8 +487,6 @@
494487
return ..()
495488

496489
/obj/item/mecha_parts/mecha_equipment/cable_layer/action(obj/item/stack/cable_coil/target)
497-
if(!action_checks(target))
498-
return
499490
if(istype(target) && target.amount)
500491
var/cur_amount = cable? cable.amount : 0
501492
var/to_load = max(max_cable - cur_amount,0)

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,6 @@
7272

7373
//Melee weapon attacks are a little different in that they'll override the standard melee attack
7474
/obj/item/mecha_parts/mecha_equipment/melee_weapon/action(atom/target, mob/living/user, params)
75-
if(!action_checks(target))
76-
return 0
77-
7875
var/turf/curloc = get_turf(chassis)
7976
var/turf/targloc = get_turf(target)
8077
if (!targloc || !istype(targloc) || !curloc)

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

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@
3333
return projectiles_per_shot
3434

3535
/obj/item/mecha_parts/mecha_equipment/weapon/action(atom/target, mob/living/user, params)
36-
if(!action_checks(target))
37-
return 0
38-
3936
var/turf/curloc = get_turf(chassis)
4037
var/turf/targloc = get_turf(target)
4138
if (!targloc || !istype(targloc) || !curloc)
@@ -240,8 +237,6 @@
240237
return 0
241238

242239
/obj/item/mecha_parts/mecha_equipment/weapon/honker/action(target, params)
243-
if(!action_checks(target))
244-
return
245240
playsound(chassis, 'sound/items/airhorn.ogg', 100, 1)
246241
chassis.occupant_message("<font color='red' size='5'>HONK</font>")
247242
for(var/mob/living/carbon/M in ohearers(6, chassis))
@@ -452,8 +447,6 @@
452447
var/diags_first = FALSE
453448

454449
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/action(target)
455-
if(!action_checks(target))
456-
return
457450
var/obj/O = new projectile(chassis.loc)
458451
playsound(chassis, fire_sound, 50, 1)
459452
log_message("Launched a [O.name] from [name], targeting [target].", LOG_MECHA)

code/game/mecha/mecha.dm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -547,11 +547,11 @@
547547
for(var/obj/item/mecha_parts/mecha_equipment/weapon/W in equipment)
548548
if(!W.equip_ready && (W.equip_cooldown < MECHA_MAX_COOLDOWN))
549549
return
550-
551-
if(Adjacent(target) && !selected?.is_melee())
550+
551+
if(!selected && Adjacent(target))
552552
default_melee_attack(target)
553553
return
554-
if(selected?.action(target, user, params))
554+
if(selected.action_checks(target) && selected.action(target, user, params))
555555
selected.start_cooldown()
556556

557557
/obj/mecha/proc/default_melee_attack(atom/target)

code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@
163163
var/list/possible_weapons = get_mecha_equip_by_flag(MECHA_RANGED)
164164
if(possible_weapons.len)
165165
var/obj/item/mecha_parts/mecha_equipment/ME = pick(possible_weapons) //so we don't favor mecha.equipment[1] forever
166-
if(ME.action(A))
166+
if(ME.action_checks(A) && ME.action(A))
167167
ME.start_cooldown()
168168
return
169169

0 commit comments

Comments
 (0)