diff --git a/code/modules/research/techweb/nodes/mecha_nodes.dm b/code/modules/research/techweb/nodes/mecha_nodes.dm index 2e77f697da..740faf3832 100644 --- a/code/modules/research/techweb/nodes/mecha_nodes.dm +++ b/code/modules/research/techweb/nodes/mecha_nodes.dm @@ -14,7 +14,7 @@ starting_node = TRUE display_name = "Basic Exosuit Equipment" description = "Various tools fit for basic mech units" - design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") + design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher") /datum/techweb_node/adv_mecha id = "adv_mecha" diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index ff901f2f01..785be3d61f 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -956,6 +956,7 @@ /obj/vehicle/sealed/mecha/generate_actions() + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/climb_out) // I don't see a single problem in generating exit vehicle action. initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_internals, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_cycle_equip, VEHICLE_CONTROL_EQUIPMENT) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_lights, VEHICLE_CONTROL_SETTINGS) @@ -968,9 +969,8 @@ return if(ishuman(H) && !Adjacent(H)) return - add_occupant(H) H.forceMove(src) - H.update_mouse_pointer() + add_occupant(H) add_fingerprint(H) log_message("[H] moved in as pilot.", LOG_MECHA) setDir(dir_in) @@ -1025,8 +1025,6 @@ B.reset_perspective(src) B.remote_control = src B.update_mobility() - B.update_mouse_pointer() - update_icon() setDir(dir_in) log_message("[M] moved in as pilot.", LOG_MECHA) if(!internal_damage) @@ -1100,7 +1098,6 @@ mmi.mecha = null mmi.update_icon() L.mobility_flags = NONE - update_icon() setDir(dir_in) return ..() @@ -1109,22 +1106,29 @@ RegisterSignal(M, COMSIG_MOB_DEATH, .proc/mob_exit) RegisterSignal(M, COMSIG_MOB_CLICKON, .proc/on_mouseclick) RegisterSignal(M, COMSIG_MOB_SAY, .proc/display_speech_bubble) - update_icon() return ..() +/obj/vehicle/sealed/mecha/after_add_occupant(mob/M) + . = ..() + update_icon() + M.update_mouse_pointer() + /obj/vehicle/sealed/mecha/remove_occupant(mob/M) UnregisterSignal(M, COMSIG_MOB_DEATH) UnregisterSignal(M, COMSIG_MOB_CLICKON) UnregisterSignal(M, COMSIG_MOB_SAY) - update_icon() M.clear_alert("charge") M.clear_alert("mech damage") if(M.client) - M.update_mouse_pointer() M.client.view_size.resetToDefault() zoom_mode = 0 return ..() +/obj/vehicle/sealed/mecha/after_remove_occupant(mob/M) + . = ..() + update_icon() + M.update_mouse_pointer() + ///////////////////////// ////// Access stuff ///// ///////////////////////// diff --git a/code/modules/vehicles/mecha/combat/combat.dm b/code/modules/vehicles/mecha/combat/combat.dm index ccfd92ecbc..b5479c6867 100644 --- a/code/modules/vehicles/mecha/combat/combat.dm +++ b/code/modules/vehicles/mecha/combat/combat.dm @@ -11,11 +11,6 @@ mouse_pointer = 'icons/mecha/mecha_mouse.dmi' . = ..() -/obj/vehicle/sealed/mecha/combat/moved_inside(mob/living/carbon/human/H) - ..() - update_icon() - - /obj/vehicle/sealed/mecha/combat/proc/max_ammo() //Max the ammo stored for Nuke Ops mechs, or anyone else that calls this for(var/obj/item/I in equipment) if(istype(I, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/)) diff --git a/code/modules/vehicles/mecha/mecha_actions.dm b/code/modules/vehicles/mecha/mecha_actions.dm index 09ccaad2c2..070a3158b0 100644 --- a/code/modules/vehicles/mecha/mecha_actions.dm +++ b/code/modules/vehicles/mecha/mecha_actions.dm @@ -273,3 +273,7 @@ button_icon_state = "mech_phasing_[chassis.phasing ? "on" : "off"]" to_chat(owner, "[icon2html(chassis, owner)]En":"#f00\">Dis"]abled phasing.") UpdateButtonIcon() + +/datum/action/vehicle/sealed/mecha/climb_out + name = "Eject From Mech" + button_icon_state = "mech_eject" diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm index e8fae6d985..2d6b510c2a 100644 --- a/code/modules/vehicles/mecha/working/ripley.dm +++ b/code/modules/vehicles/mecha/working/ripley.dm @@ -30,10 +30,6 @@ . = ..() update_pressure() -/obj/vehicle/sealed/mecha/working/ripley/moved_inside(mob/living/carbon/human/H) - ..() - update_icon() - /obj/vehicle/sealed/mecha/working/ripley/check_for_internal_damage(list/possible_int_damage, ignore_threshold = FALSE) if (!enclosed) possible_int_damage -= (MECHA_INT_TEMP_CONTROL + MECHA_INT_TANK_BREACH) //if we don't even have an air tank, these two doesn't make a ton of sense. @@ -44,6 +40,7 @@ AddComponent(/datum/component/armor_plate,3,/obj/item/stack/sheet/animalhide/goliath_hide,list(MELEE = 10, BULLET = 5, LASER = 5)) /obj/vehicle/sealed/mecha/working/ripley/generate_actions() + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/climb_out) if(enclosed) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_internals, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_cycle_equip, VEHICLE_CONTROL_EQUIPMENT)