diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm index 6dfc795193..07d785e852 100644 --- a/code/modules/clothing/glasses/engine_goggles.dm +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -58,12 +58,6 @@ toggle_mode(user, TRUE) /obj/item/clothing/glasses/meson/engine/process() - if(mode == MODE_MESON) - var/turf/T = get_turf(src) - if(T && is_mining_level(T.z)) - toggle_mode(loc) - return - if(!ishuman(loc)) return var/mob/living/carbon/human/user = loc diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index c2fe407442..c73b9fad01 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -36,20 +36,18 @@ del_on_death = TRUE var/mode = MINEDRONE_COLLECT var/light_on = 0 - - var/datum/action/innate/minedrone/toggle_light/toggle_light_action - var/datum/action/innate/minedrone/toggle_mode/toggle_mode_action - var/datum/action/innate/minedrone/dump_ore/dump_ore_action var/obj/item/gun/energy/kinetic_accelerator/minebot/stored_gun /mob/living/simple_animal/hostile/mining_drone/Initialize() . = ..() stored_gun = new(src) - toggle_light_action = new() + var/datum/action/innate/minedrone/toggle_light/toggle_light_action = new() toggle_light_action.Grant(src) - toggle_mode_action = new() + var/datum/action/innate/minedrone/toggle_meson_vision/toggle_meson_vision_action = new() + toggle_meson_vision_action.Grant(src) + var/datum/action/innate/minedrone/toggle_mode/toggle_mode_action = new() toggle_mode_action.Grant(src) - dump_ore_action = new() + var/datum/action/innate/minedrone/dump_ore/dump_ore_action = new() dump_ore_action.Grant(src) var/obj/item/implant/radio/mining/imp = new(src) imp.implant(src) @@ -60,6 +58,11 @@ SetCollectBehavior() +/mob/living/simple_animal/hostile/mining_drone/Destroy() + for (var/datum/action/innate/minedrone/action in actions) + qdel(action) + return ..() + /mob/living/simple_animal/hostile/mining_drone/sentience_act() ..() check_friendly_fire = 0 @@ -193,6 +196,24 @@ SetOffenseBehavior() . = ..() +/datum/action/innate/minedrone/toggle_meson_vision + name = "Toggle Meson Vision" + button_icon_state = "meson" + +/datum/action/innate/minedrone/toggle_meson_vision/Activate() + var/mob/living/simple_animal/hostile/mining_drone/user = owner + if(user.sight & SEE_TURFS) + user.sight &= ~SEE_TURFS + user.lighting_alpha = initial(user.lighting_alpha) + else + user.sight |= SEE_TURFS + user.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + + user.sync_lighting_plane_alpha() + + to_chat(user, "You toggle your meson vision [(user.sight & SEE_TURFS) ? "on" : "off"].") + + /mob/living/simple_animal/hostile/mining_drone/proc/toggle_mode() switch(mode) if(MINEDRONE_ATTACK) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index e654a771f8..86aad0ed39 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -513,6 +513,7 @@ name = "Miner" basic_modules = list( /obj/item/device/assembly/flash/cyborg, + /obj/item/borg/sight/meson, /obj/item/storage/bag/ore/cyborg, /obj/item/pickaxe/drill/cyborg, /obj/item/shovel, diff --git a/icons/mob/actions/actions_mecha.dmi b/icons/mob/actions/actions_mecha.dmi index c064441ed2..81c706b22c 100644 Binary files a/icons/mob/actions/actions_mecha.dmi and b/icons/mob/actions/actions_mecha.dmi differ