diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index 10fa54a7167..fe23d6e5657 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -170,8 +170,8 @@ if(usr in range(1)) usr.pulling = null // usr.client.eye = src - usr.loc = src src.occupant = usr + usr.loc = src src.add_fingerprint(usr) if(usr.client) usr.client.mouse_pointer_icon = file("icons/misc/mecha_mouse.dmi") diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 786fad5f40e..0c1368c5dfb 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -53,13 +53,15 @@ ..() var/mob/M = src.mob if(M && istype(M.loc, /obj/mecha)) + if(!location) return if(M.stat>0) return if(!istype(object,/atom)) return var/obj/mecha/Mech = M.loc Mech.click_action(object) -/obj/mecha/proc/click_action(target) +/obj/mecha/proc/click_action(atom/target) + if(!istype(target,/turf) && !istype(target.loc,/turf)) return if(!src.occupant) return if(state || !cell || cell.charge<=0) return if(src == target) return @@ -406,8 +408,8 @@ if(usr in range(1)) usr.pulling = null // usr.client.eye = src - usr.loc = src src.occupant = usr + usr.loc = src src.add_fingerprint(usr) return @@ -626,4 +628,3 @@ - diff --git a/code/game/mecha/working/tools/tools.dm b/code/game/mecha/working/tools/tools.dm index 3465bf978f7..48b3729506e 100644 --- a/code/game/mecha/working/tools/tools.dm +++ b/code/game/mecha/working/tools/tools.dm @@ -56,15 +56,15 @@ if(!O.anchored) if(chassis.cargo.len < chassis.cargo_capacity) chassis.occupant << "You lift [target] and start to load it into cargo compartment." - chassis.visible_message("[chassis] lifts [target] and start to load it into cargo compartment.") + chassis.visible_message("[chassis] lifts [target] and starts to load it into cargo compartment.") tool_ready = 0 chassis.cell.use(energy_drain) O.anchored = 1 var/T = chassis.loc spawn(tool_cooldown) if(T == chassis.loc && src == chassis.selected_tool) - O.loc = chassis chassis.cargo += O + O.loc = chassis O.anchored = 0 chassis.occupant << "\blue [target] succesfully loaded." else @@ -105,8 +105,8 @@ if(!..()) return tool_ready = 0 chassis.cell.use(energy_drain) - chassis.visible_message("\red [chassis] starts to drill [target]", "You hear the drill.") - chassis.occupant << "\red You start to drill [target]" + chassis.visible_message("[chassis] starts to drill [target]", "You hear the drill.") + chassis.occupant << "You start to drill [target]" var/T = chassis.loc spawn(tool_cooldown) if(T == chassis.loc && src == chassis.selected_tool) diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index fdf3535a070..7d79cca121b 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -11,15 +11,14 @@ internals_req_access = list(access_engine) -/obj/mecha/working/melee_action(atom/target) +/obj/mecha/working/melee_action(atom/target as obj|mob|turf) if(selected_tool) selected_tool.action(target) return -/obj/mecha/working/range_action(atom/target) +/obj/mecha/working/range_action(atom/target as obj|mob|turf) return - /obj/mecha/working/Topic(href, href_list) ..() if(href_list["drop_from_cargo"])