diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index ecdd2c5d273..d78ceb9d9eb 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -442,16 +442,16 @@ /obj/vehicle/sealed/mecha/examine(mob/user) . = ..() if(LAZYLEN(flat_equipment)) - . += "It's equipped with:" + . += span_notice("It's equipped with:") for(var/obj/item/mecha_parts/mecha_equipment/ME as anything in flat_equipment) - . += "[icon2html(ME, user)] \A [ME]." + . += span_notice("[icon2html(ME, user)] \A [ME].") if(enclosed) return if(mecha_flags & SILICON_PILOT) - . += "[src] appears to be piloting itself..." + . += span_notice("[src] appears to be piloting itself...") else for(var/occupante in occupants) - . += "You can see [occupante] inside." + . += span_notice("You can see [occupante] inside.") if(ishuman(user)) var/mob/living/carbon/human/H = user for(var/held_item in H.held_items) diff --git a/code/modules/vehicles/mecha/combat/gygax.dm b/code/modules/vehicles/mecha/combat/gygax.dm index 57732016fba..955fe102a30 100644 --- a/code/modules/vehicles/mecha/combat/gygax.dm +++ b/code/modules/vehicles/mecha/combat/gygax.dm @@ -71,6 +71,7 @@ operation_req_access = list(ACCESS_SYNDICATE) internals_req_access = list(ACCESS_SYNDICATE) wreckage = /obj/structure/mecha_wreckage/gygax/dark + mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS | MMI_COMPATIBLE max_equip_by_category = list( MECHA_UTILITY = 2, MECHA_POWER = 1, @@ -98,9 +99,11 @@ . = ..() max_ammo() -/obj/vehicle/sealed/mecha/gygax/dark/add_cell(obj/item/stock_parts/cell/C=null) - if(C) - C.forceMove(src) - cell = C - return +/obj/vehicle/sealed/mecha/gygax/dark/add_cell() cell = new /obj/item/stock_parts/cell/bluespace(src) + +/obj/vehicle/sealed/mecha/gygax/dark/add_scanmod() + scanmod = new /obj/item/stock_parts/scanning_module/triphasic(src) + +/obj/vehicle/sealed/mecha/gygax/dark/add_capacitor() + capacitor = new /obj/item/stock_parts/capacitor/quadratic(src) diff --git a/code/modules/vehicles/mecha/combat/honker.dm b/code/modules/vehicles/mecha/combat/honker.dm index 16213f79b44..dd01492f19d 100644 --- a/code/modules/vehicles/mecha/combat/honker.dm +++ b/code/modules/vehicles/mecha/combat/honker.dm @@ -69,13 +69,15 @@ fire = 100 acid = 100 -/obj/vehicle/sealed/mecha/honker/dark/add_cell(obj/item/stock_parts/cell/C) - if(C) - C.forceMove(src) - cell = C - return +/obj/vehicle/sealed/mecha/honker/dark/add_cell() cell = new /obj/item/stock_parts/cell/hyper(src) +/obj/vehicle/sealed/mecha/honker/dark/add_scanmod() + scanmod = new /obj/item/stock_parts/scanning_module/phasic(src) + +/obj/vehicle/sealed/mecha/honker/dark/add_capacitor() + capacitor = new /obj/item/stock_parts/capacitor/super(src) + /obj/structure/mecha_wreckage/honker/dark name = "\improper Dark H.O.N.K wreckage" icon_state = "darkhonker-broken" diff --git a/code/modules/vehicles/mecha/combat/marauder.dm b/code/modules/vehicles/mecha/combat/marauder.dm index c24c368cdf0..bf0138d2c30 100644 --- a/code/modules/vehicles/mecha/combat/marauder.dm +++ b/code/modules/vehicles/mecha/combat/marauder.dm @@ -137,3 +137,12 @@ MECHA_POWER = list(), MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster), ) + +/obj/vehicle/sealed/mecha/marauder/add_cell() + cell = new /obj/item/stock_parts/cell/bluespace(src) + +/obj/vehicle/sealed/mecha/marauder/add_scanmod() + scanmod = new /obj/item/stock_parts/scanning_module/triphasic(src) + +/obj/vehicle/sealed/mecha/marauder/add_capacitor() + capacitor = new /obj/item/stock_parts/capacitor/quadratic(src) diff --git a/code/modules/vehicles/mecha/combat/reticence.dm b/code/modules/vehicles/mecha/combat/reticence.dm index 1c74a56cb73..17f933b4504 100644 --- a/code/modules/vehicles/mecha/combat/reticence.dm +++ b/code/modules/vehicles/mecha/combat/reticence.dm @@ -39,3 +39,12 @@ MECHA_POWER = list(), MECHA_ARMOR = list(), ) + +/obj/vehicle/sealed/mecha/reticence/add_cell() + cell = new /obj/item/stock_parts/cell/bluespace(src) + +/obj/vehicle/sealed/mecha/reticence/add_scanmod() + scanmod = new /obj/item/stock_parts/scanning_module/triphasic(src) + +/obj/vehicle/sealed/mecha/reticence/add_capacitor() + capacitor = new /obj/item/stock_parts/capacitor/quadratic(src) diff --git a/code/modules/vehicles/mecha/mecha_defense.dm b/code/modules/vehicles/mecha/mecha_defense.dm index fedbefaf7c5..e6f6434b2c9 100644 --- a/code/modules/vehicles/mecha/mecha_defense.dm +++ b/code/modules/vehicles/mecha/mecha_defense.dm @@ -245,7 +245,7 @@ if(istype(W, /obj/item/stock_parts/scanning_module)) if(construction_state == MECHA_OPEN_HATCH) if(!scanmod) - if(!user.transferItemToLoc(W, src)) + if(!user.transferItemToLoc(W, src, silent = FALSE)) return to_chat(user, span_notice("You install the scanning module.")) playsound(src, 'sound/items/screwdriver2.ogg', 50, FALSE) @@ -259,7 +259,7 @@ if(istype(W, /obj/item/stock_parts/capacitor)) if(construction_state == MECHA_OPEN_HATCH) if(!capacitor) - if(!user.transferItemToLoc(W, src)) + if(!user.transferItemToLoc(W, src, silent = FALSE)) return to_chat(user, span_notice("You install the capacitor.")) playsound(src, 'sound/items/screwdriver2.ogg', 50, FALSE) @@ -300,31 +300,46 @@ if(.) try_damage_component(., user.zone_selected) -/obj/vehicle/sealed/mecha/wrench_act(mob/living/user, obj/item/I) +/obj/vehicle/sealed/mecha/examine(mob/user) + .=..() + if(construction_state > MECHA_LOCKED) + switch(construction_state) + if(MECHA_SECURE_BOLTS) + . += span_notice("Use a wrench to adjust bolts securing the cover.") + if(MECHA_LOOSE_BOLTS) + . += span_notice("Use a crowbar to unlock the hatch to the power unit.") + if(MECHA_OPEN_HATCH) + . += span_notice("Use interface to eject stock parts from the mech.") + +/obj/vehicle/sealed/mecha/wrench_act(mob/living/user, obj/item/tool) ..() . = TRUE if(construction_state == MECHA_SECURE_BOLTS) construction_state = MECHA_LOOSE_BOLTS to_chat(user, span_notice("You undo the securing bolts.")) + tool.play_tool_sound(src) return if(construction_state == MECHA_LOOSE_BOLTS) construction_state = MECHA_SECURE_BOLTS to_chat(user, span_notice("You tighten the securing bolts.")) + tool.play_tool_sound(src) -/obj/vehicle/sealed/mecha/crowbar_act(mob/living/user, obj/item/I) +/obj/vehicle/sealed/mecha/crowbar_act(mob/living/user, obj/item/tool) ..() . = TRUE - if(istype(I, /obj/item/crowbar/mechremoval)) - var/obj/item/crowbar/mechremoval/remover = I + if(istype(tool, /obj/item/crowbar/mechremoval)) + var/obj/item/crowbar/mechremoval/remover = tool remover.empty_mech(src, user) return if(construction_state == MECHA_LOOSE_BOLTS) construction_state = MECHA_OPEN_HATCH to_chat(user, span_notice("You open the hatch to the power unit.")) + tool.play_tool_sound(src) return if(construction_state == MECHA_OPEN_HATCH) construction_state = MECHA_LOOSE_BOLTS to_chat(user, span_notice("You close the hatch to the power unit.")) + tool.play_tool_sound(src) /obj/vehicle/sealed/mecha/welder_act(mob/living/user, obj/item/W) if(user.combat_mode) diff --git a/code/modules/vehicles/mecha/mecha_helpers.dm b/code/modules/vehicles/mecha/mecha_helpers.dm index 75c3aee44eb..f949860dc0b 100644 --- a/code/modules/vehicles/mecha/mecha_helpers.dm +++ b/code/modules/vehicles/mecha/mecha_helpers.dm @@ -1,27 +1,27 @@ ///Adds a cell, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this. -/obj/vehicle/sealed/mecha/proc/add_cell(obj/item/stock_parts/cell/C=null) +/obj/vehicle/sealed/mecha/proc/add_cell(obj/item/stock_parts/cell/new_cell) QDEL_NULL(cell) - if(C) - C.forceMove(src) - cell = C + if(new_cell) + new_cell.forceMove(src) + cell = new_cell return cell = new /obj/item/stock_parts/cell/high(src) ///Adds a scanning module, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this. -/obj/vehicle/sealed/mecha/proc/add_scanmod(obj/item/stock_parts/scanning_module/sm=null) +/obj/vehicle/sealed/mecha/proc/add_scanmod(obj/item/stock_parts/scanning_module/new_scanmod) QDEL_NULL(scanmod) - if(sm) - sm.forceMove(src) - scanmod = sm + if(new_scanmod) + new_scanmod.forceMove(src) + scanmod = new_scanmod return scanmod = new /obj/item/stock_parts/scanning_module(src) ///Adds a capacitor, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this. -/obj/vehicle/sealed/mecha/proc/add_capacitor(obj/item/stock_parts/capacitor/cap=null) +/obj/vehicle/sealed/mecha/proc/add_capacitor(obj/item/stock_parts/capacitor/new_capacitor) QDEL_NULL(capacitor) - if(cap) - cap.forceMove(src) - capacitor = cap + if(new_capacitor) + new_capacitor.forceMove(src) + capacitor = new_capacitor else capacitor = new /obj/item/stock_parts/capacitor(src) diff --git a/code/modules/vehicles/mecha/mecha_ui.dm b/code/modules/vehicles/mecha/mecha_ui.dm index 6d225f80dff..c1735a56050 100644 --- a/code/modules/vehicles/mecha/mecha_ui.dm +++ b/code/modules/vehicles/mecha/mecha_ui.dm @@ -195,17 +195,17 @@ if("drop_cell") if(construction_state != MECHA_OPEN_HATCH) return - cell.forceMove(get_turf(src)) + usr.put_in_hands(cell) cell = null if("drop_scanning") - if(construction_state == MECHA_OPEN_HATCH) + if(construction_state != MECHA_OPEN_HATCH) return - scanmod.forceMove(get_turf(src)) + usr.put_in_hands(scanmod) scanmod = null if("drop_capacitor") - if(construction_state == MECHA_OPEN_HATCH) + if(construction_state != MECHA_OPEN_HATCH) return - capacitor.forceMove(get_turf(src)) + usr.put_in_hands(capacitor) capacitor = null if("set_pressure") var/new_pressure = tgui_input_number(usr, "Enter new pressure", "Cabin pressure change", internal_tank_valve)