diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index 785be3d61f..6b8642764e 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -962,6 +962,8 @@ initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_lights, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_view_stats, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/strafe, VEHICLE_CONTROL_DRIVE) + if(max_occupants > 1) + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/swap_seat) /obj/vehicle/sealed/mecha/proc/moved_inside(mob/living/H) . = FALSE diff --git a/code/modules/vehicles/mecha/combat/neovgre.dm b/code/modules/vehicles/mecha/combat/neovgre.dm index 512885b66d..8085200246 100644 --- a/code/modules/vehicles/mecha/combat/neovgre.dm +++ b/code/modules/vehicles/mecha/combat/neovgre.dm @@ -16,10 +16,16 @@ wreckage = /obj/structure/mecha_wreckage/durand/neovgre stepsound = 'sound/mecha/neostep2.ogg' turnsound = 'sound/mecha/powerloader_step.ogg' + max_occupants = 2 +//override this proc if you need to split up mecha control between multiple people (see savannah_ivanov.dm) +/obj/vehicle/sealed/mecha/combat/neovgre/auto_assign_occupant_flags(mob/M) + if(driver_amount() < max_drivers) + add_control_flags(M, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_SETTINGS) + else + add_control_flags(M, VEHICLE_CONTROL_MELEE|VEHICLE_CONTROL_EQUIPMENT) - -/obj/vehicle/sealed/mecha/neovgre/mob_exit(mob/M, silent, forced) +/obj/vehicle/sealed/mecha/combat/neovgre/mob_exit(mob/M, silent, forced) if(forced) ..() @@ -76,6 +82,8 @@ GLOB.neovgre_exists ++ var/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/N = new N.attach(src) + var/obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla/shocking = new + shocking.attach(src) /obj/structure/mecha_wreckage/durand/neovgre name = "\improper Neovgre wreckage?" diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm index 2d6b510c2a..0d083d4bde 100644 --- a/code/modules/vehicles/mecha/working/ripley.dm +++ b/code/modules/vehicles/mecha/working/ripley.dm @@ -47,6 +47,8 @@ initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_lights, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_view_stats, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/strafe, VEHICLE_CONTROL_DRIVE) + if(max_occupants > 1) + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/swap_seat) /obj/vehicle/sealed/mecha/working/ripley/Destroy() for(var/atom/movable/A in cargo)