diff --git a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm index 54a12d4a17fa..838ddf70009d 100644 --- a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm +++ b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm @@ -86,6 +86,8 @@ if("ARC") display_list = GLOB.cm_vending_vehicle_crew_arc + if("HUMVEE") + display_list = GLOB.cm_vending_vehicle_crew_humvee if("APC") if(available_categories) @@ -204,6 +206,12 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_arc, list( list("WHEELS", 0, null, null, null), list("Replacement ARC Wheels", 0, /obj/item/hardpoint/locomotion/arc_wheels, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_MANDATORY))) +GLOBAL_LIST_INIT(cm_vending_vehicle_crew_humvee, list( + list("STARTING KIT SELECTION:", 0, null, null, null), + + list("WHEELS", 0, null, null, null), + list("Replacement Humvee Wheels", 0, /obj/item/hardpoint/locomotion/humvee_wheels, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_MANDATORY))) + //------------WEAPONS RACK--------------- /obj/structure/machinery/cm_vending/sorted/cargo_guns/vehicle_crew diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index ede29df1203e..fac2ade2dba7 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -1395,6 +1395,21 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) /datum/vehicle_order/arc/has_vehicle_lock() return +/datum/vehicle_order/humvee + name = "M2420 JTMV-HWC Heavy Weapon Carrier" + ordered_vehicle = /obj/effect/vehicle_spawner/humvee + +/datum/vehicle_order/humvee/medical + name = "M2421 JTMV-Ambulance" + ordered_vehicle = /obj/effect/vehicle_spawner/humvee/medical + +/datum/vehicle_order/humvee/transport + name = "M2422 JTMV-Utility" + ordered_vehicle = /obj/effect/vehicle_spawner/humvee/transport + +/datum/vehicle_order/humvee/has_vehicle_lock() + return + /obj/structure/machinery/computer/supply/asrs/vehicle/Initialize() . = ..() diff --git a/code/modules/cm_tech/techs/marine/tier1/arc.dm b/code/modules/cm_tech/techs/marine/tier1/arc.dm index 5a7b84a9aa0a..21299e0f6889 100644 --- a/code/modules/cm_tech/techs/marine/tier1/arc.dm +++ b/code/modules/cm_tech/techs/marine/tier1/arc.dm @@ -18,7 +18,7 @@ var/obj/structure/machinery/cm_vending/gear/vehicle_crew/gearcomp = GLOB.VehicleGearConsole - if(gearcomp.selected_vehicle == "TANK") + if(gearcomp.selected_vehicle == "TANK" || gearcomp.selected_vehicle == "HUMVEE") to_chat(unlocking_mob, SPAN_WARNING ("A vehicle has already been selected for this operation.")) return FALSE diff --git a/code/modules/cm_tech/techs/marine/tier1/humvee.dm b/code/modules/cm_tech/techs/marine/tier1/humvee.dm new file mode 100644 index 000000000000..dc40c1e821a7 --- /dev/null +++ b/code/modules/cm_tech/techs/marine/tier1/humvee.dm @@ -0,0 +1,55 @@ +/datum/tech/humvee + name = "M24 Series JTMV Vehicle" + desc = "Purchase an M24 Series JTMV, a M2420 JTMV-HWC Heavy Weapon Carrier, M2421 JTMV-Ambulance, or M2422 JTMV-Utility variant may be selected." + icon_state = "upgrade" + + required_points = 5 + + tier = /datum/tier/one + + announce_name = "M24 Series JTMV ACQUIRED" + announce_message = "An M24 Series JTMV has been authorized and will be delivered in the vehicle bay." + + flags = TREE_FLAG_MARINE + + +/datum/tech/humvee/can_unlock(mob/unlocking_mob) + . = ..() + + var/obj/structure/machinery/cm_vending/gear/vehicle_crew/gearcomp = GLOB.VehicleGearConsole + + if(gearcomp.selected_vehicle == "TANK" || gearcomp.selected_vehicle == "ARC") + to_chat(unlocking_mob, SPAN_WARNING ("A vehicle has already been selected for this operation.")) + return FALSE + + return TRUE + + +/datum/tech/humvee/on_unlock() + . = ..() + + var/obj/structure/machinery/computer/supply/asrs/vehicle/comp = GLOB.VehicleElevatorConsole + var/obj/structure/machinery/cm_vending/gear/vehicle_crew/gearcomp = GLOB.VehicleGearConsole + + if(!comp || !gearcomp) + return FALSE + + comp.spent = FALSE + QDEL_NULL_LIST(comp.vehicles) + comp.vehicles = list( + new /datum/vehicle_order/humvee(), + new /datum/vehicle_order/humvee/medical(), + new /datum/vehicle_order/humvee/transport() + ) + comp.allowed_roles = list(JOB_SYNTH, JOB_SEA, JOB_SO, JOB_XO, JOB_CO, JOB_GENERAL) + comp.req_access = list(ACCESS_MARINE_COMMAND) + comp.req_one_access = list() + comp.spent = FALSE + + gearcomp.req_access = list(ACCESS_MARINE_COMMAND) + gearcomp.req_one_access = list() + gearcomp.vendor_role = list() + gearcomp.selected_vehicle = "HUMVEE" + gearcomp.available_categories = VEHICLE_ALL_AVAILABLE + + return TRUE diff --git a/code/modules/vehicles/humvee/humvee.dm b/code/modules/vehicles/humvee/humvee.dm index 0ad08e58091f..69b1a5b8485d 100644 --- a/code/modules/vehicles/humvee/humvee.dm +++ b/code/modules/vehicles/humvee/humvee.dm @@ -92,5 +92,4 @@ humvee.update_icon() /obj/effect/vehicle_spawner/humvee/load_hardpoints(obj/vehicle/multitile/V) - . = ..() V.add_hardpoint(new /obj/item/hardpoint/locomotion/humvee_wheels) diff --git a/code/modules/vehicles/humvee/humvee_medical.dm b/code/modules/vehicles/humvee/humvee_medical.dm index a66ac3a75240..51b3956d32ba 100644 --- a/code/modules/vehicles/humvee/humvee_medical.dm +++ b/code/modules/vehicles/humvee/humvee_medical.dm @@ -92,5 +92,4 @@ humvee.update_icon() /obj/effect/vehicle_spawner/humvee/medical/load_hardpoints(obj/vehicle/multitile/V) - . = ..() V.add_hardpoint(new /obj/item/hardpoint/locomotion/humvee_wheels) diff --git a/colonialmarines.dme b/colonialmarines.dme index 7414bc6c77b8..6d4e23f4020e 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -1844,6 +1844,7 @@ #include "code\modules\cm_tech\techs\abstract\repeatable.dm" #include "code\modules\cm_tech\techs\abstract\transitory.dm" #include "code\modules\cm_tech\techs\marine\tier1\arc.dm" +#include "code\modules\cm_tech\techs\marine\tier1\humvee.dm" #include "code\modules\cm_tech\techs\marine\tier1\points.dm" #include "code\modules\cm_tech\techs\marine\tier2\orbital_ammo.dm" #include "code\modules\cm_tech\techs\marine\tier3\cryo_spec.dm"