diff --git a/code/modules/vehicles/apc/arc.dm b/code/modules/vehicles/apc/arc.dm index da6fc67a2c..eaddf2081c 100644 --- a/code/modules/vehicles/apc/arc.dm +++ b/code/modules/vehicles/apc/arc.dm @@ -1,7 +1,7 @@ /obj/vehicle/multitile/apc/arc name = "M540 Armored Recon Carrier" - desc = "An M540 Armored Recon Carrier, also known as an ARC. This is a much lighter and more nimble version of the M557A3 APC, often preferred by recon forces for that very reason. Entrance on the right." + desc = "An M540 Armored Recon Carrier, also known as an ARC. This is a much lighter and more nimble alternative to the M557A3 APC, often preferred by recon forces for that very reason. Entrance on the right." icon = 'icons/obj/vehicles/arc.dmi' icon_state = "arc_base" @@ -14,7 +14,7 @@ interior_map = /datum/map_template/interior/arc - passengers_slots = 10 + passengers_slots = 9 entrances = list( "right" = list(-2, 0), @@ -100,10 +100,10 @@ switch(HP.slot) if(HDPT_SUPPORT) //flare HP.muzzle_flash_pos = list( - "1" = list(22, -20), - "2" = list(11, 32), - "4" = list(-5, 10), - "8" = list(37, 24) + "1" = list(-4, -40), + "2" = list(5, 5), + "4" = list(-25, 6), + "8" = list(25, -4) ) return ..() diff --git a/code/modules/vehicles/apc/arc_weaponless.dm b/code/modules/vehicles/apc/arc_weaponless.dm new file mode 100644 index 0000000000..372c798b14 --- /dev/null +++ b/code/modules/vehicles/apc/arc_weaponless.dm @@ -0,0 +1,147 @@ + +/obj/vehicle/multitile/apc/arc/weaponless + name = "M540-S Armored Recon Carrier" + desc = "An M540-S Armored Recon Carrier, also known as an ARC. This is a much lighter and more nimble version to the M557A3 APC, often preferred by recon forces for that very reason. This variant has had it's weapons removed to lighten it's weight and improve it's stealth capabilities. Entrance on the right." + + icon_state = "arc_weaponless" + + interior_map = /datum/map_template/interior/arc + + passengers_slots = 9 + + entrances = list( + "right" = list(-2, 0), + ) + + seats = list( + VEHICLE_DRIVER = null, + VEHICLE_GUNNER = null, + ) + + active_hp = list( + VEHICLE_DRIVER = null, + VEHICLE_GUNNER = null, + ) + + hardpoints_allowed = list( + /obj/item/hardpoint/support/flare_launcher, + /obj/item/hardpoint/locomotion/apc_wheels/arc, + ) + +/obj/vehicle/multitile/apc/arc/weaponless/add_seated_verbs(mob/living/M, seat) + if(!M.client) + return + add_verb(M.client, list( + /obj/vehicle/multitile/proc/get_status_info, + /obj/vehicle/multitile/proc/open_controls_guide, + /obj/vehicle/multitile/proc/name_vehicle, + )) + if(seat == VEHICLE_DRIVER) + add_verb(M.client, list( + /obj/vehicle/multitile/proc/toggle_door_lock, + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, + /obj/vehicle/multitile/proc/toggle_shift_click, + /obj/vehicle/multitile/proc/activate_horn, + )) + else if(seat == VEHICLE_GUNNER) + add_verb(M.client, list( + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, + /obj/vehicle/multitile/proc/toggle_shift_click, + )) + +/obj/vehicle/multitile/apc/arc/weaponless/remove_seated_verbs(mob/living/M, seat) + if(!M.client) + return + remove_verb(M.client, list( + /obj/vehicle/multitile/proc/get_status_info, + /obj/vehicle/multitile/proc/open_controls_guide, + /obj/vehicle/multitile/proc/name_vehicle, + )) + SStgui.close_user_uis(M, src) + if(seat == VEHICLE_DRIVER) + remove_verb(M.client, list( + /obj/vehicle/multitile/proc/toggle_door_lock, + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, + /obj/vehicle/multitile/proc/toggle_shift_click, + /obj/vehicle/multitile/proc/activate_horn, + )) + else if(seat == VEHICLE_GUNNER) + remove_verb(M.client, list( + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, + /obj/vehicle/multitile/proc/toggle_shift_click, + )) + +/obj/vehicle/multitile/apc/arc/weaponless/initialize_cameras(change_tag = FALSE) + if(!camera) + camera = new /obj/structure/machinery/camera/vehicle(src) + if(change_tag) + camera.c_tag = "#[rand(1,100)] M540-S \"[nickname]\" ARC" + if(camera_int) + camera_int.c_tag = camera.c_tag + " interior" + else + camera.c_tag = "#[rand(1,100)] M540-S ARC" + if(camera_int) + camera_int.c_tag = camera.c_tag + " interior" + +/obj/vehicle/multitile/apc/arc/weaponless/set_muzzle_offsets(obj/item/hardpoint/HP) + //sets muzzle flash offsets for APC weapons + switch(HP.slot) + if(HDPT_SUPPORT) //flare + HP.muzzle_flash_pos = list( + "1" = list(-4, -40), + "2" = list(5, 5), + "4" = list(-25, 6), + "8" = list(25, -4) + ) + return ..() + +/* +** PRESETS SPAWNERS +*/ +/obj/effect/vehicle_spawner/arc/weaponless + name = "Weaponless ARC Spawner" + icon = 'icons/obj/vehicles/arc.dmi' + icon_state = "arc_weaponless" + pixel_x = -48 + pixel_y = -48 + +/obj/effect/vehicle_spawner/arc/weaponless/Initialize() + . = ..() + spawn_vehicle() + qdel(src) + +//PRESET: no hardpoints +/obj/effect/vehicle_spawner/arc/weaponless/spawn_vehicle() + var/obj/vehicle/multitile/apc/arc/weaponless/APC = new (loc) + + load_misc(APC) + load_hardpoints(APC) + handle_direction(APC) + APC.update_icon() + +//PRESET: only wheels installed +/obj/effect/vehicle_spawner/arc/weaponless/plain/load_hardpoints(obj/vehicle/multitile/apc/arc/weaponless/V) + V.add_hardpoint(new /obj/item/hardpoint/locomotion/apc_wheels/arc) + +//PRESET: default hardpoints, destroyed +/obj/effect/vehicle_spawner/arc/weaponless/decrepit/spawn_vehicle() + var/obj/vehicle/multitile/apc/arc/weaponless/APC = new (loc) + + load_misc(APC) + load_hardpoints(APC) + handle_direction(APC) + load_damage(APC) + APC.update_icon() + +/obj/effect/vehicle_spawner/arc/weaponless/decrepit/load_hardpoints(obj/vehicle/multitile/apc/arc/weaponless/V) + V.add_hardpoint(new /obj/item/hardpoint/support/flare_launcher) + V.add_hardpoint(new /obj/item/hardpoint/locomotion/apc_wheels/arc) + +//PRESET: default hardpoints +/obj/effect/vehicle_spawner/arc/weaponless/fixed/load_hardpoints(obj/vehicle/multitile/apc/arc/weaponless/V) + V.add_hardpoint(new /obj/item/hardpoint/support/flare_launcher) + V.add_hardpoint(new /obj/item/hardpoint/locomotion/apc_wheels/arc) diff --git a/colonialmarines.dme b/colonialmarines.dme index ae11ae56a4..4e16283d5c 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -2393,6 +2393,7 @@ #include "code\modules\vehicles\apc\apc_medical.dm" #include "code\modules\vehicles\apc\apc_movie.dm" #include "code\modules\vehicles\apc\arc.dm" +#include "code\modules\vehicles\apc\arc_weaponless.dm" #include "code\modules\vehicles\apc\interior.dm" #include "code\modules\vehicles\hardpoints\hardpoint.dm" #include "code\modules\vehicles\hardpoints\armor\armor.dm" diff --git a/icons/obj/vehicles/arc.dmi b/icons/obj/vehicles/arc.dmi index b266506148..c7299ee22c 100644 Binary files a/icons/obj/vehicles/arc.dmi and b/icons/obj/vehicles/arc.dmi differ