diff --git a/code/datums/ammo/bullet/special_ammo.dm b/code/datums/ammo/bullet/special_ammo.dm index 4f9a945fad..9c72d1ed04 100644 --- a/code/datums/ammo/bullet/special_ammo.dm +++ b/code/datums/ammo/bullet/special_ammo.dm @@ -77,6 +77,16 @@ damage = 35 penetration = ARMOR_PENETRATION_TIER_1 +/datum/ammo/bullet/smartgun/aa //The base smartgun-bullet is kinda a woeful stand-in for AA cannon rounds, this should beef it up a bit more without being too OTT + name = "anti-aircraft bullet" + icon_state = "redbullet" + flags_ammo_behavior = AMMO_BALLISTIC + + max_range = 18 + accuracy = HIT_ACCURACY_TIER_5 + damage = 35 + penetration = ARMOR_PENETRATION_TIER_6 + /datum/ammo/bullet/turret name = "autocannon bullet" icon_state = "redbullet" //Red bullets to indicate friendly fire restriction diff --git a/code/datums/ammo/rocket.dm b/code/datums/ammo/rocket.dm index 45ba091df6..69669bb24b 100644 --- a/code/datums/ammo/rocket.dm +++ b/code/datums/ammo/rocket.dm @@ -147,6 +147,12 @@ /datum/ammo/rocket/ap/tank_towlauncher max_range = 8 +/datum/ammo/rocket/ap/tank_towlauncher/aa + name = "anti-air missile" + damage = 200 + max_range = 16 + shell_speed = AMMO_SPEED_TIER_5 + /datum/ammo/rocket/ltb name = "cannon round" icon_state = "ltb" diff --git a/code/datums/vehicles.dm b/code/datums/vehicles.dm index 6f6182a8d7..4d823fcb25 100644 --- a/code/datums/vehicles.dm +++ b/code/datums/vehicles.dm @@ -30,6 +30,10 @@ name = "Movie APC" interior_id = "apc_movie" +/datum/map_template/interior/apc_aa + name = "Anti-Air APC" + interior_id = "apc_aa" + /datum/map_template/interior/arc name = "ARC" interior_id = "arc" diff --git a/code/game/objects/structures/gun_rack.dm b/code/game/objects/structures/gun_rack.dm index 40e5bfe17f..67a58212f7 100644 --- a/code/game/objects/structures/gun_rack.dm +++ b/code/game/objects/structures/gun_rack.dm @@ -91,6 +91,22 @@ initial_stored = 0 allowed_type = /obj/item/ammo_magazine/hardpoint/boyars_dualcannon +/obj/structure/gun_rack/apc/frontal/aa + name = "vertical-launch-system ammo storage compartment" + icon_state = "boyars" + desc = "A small compartment that stores ammunition for the vehicle's VLS-array." + max_stored = 2 + initial_stored = 0 + allowed_type = /obj/item/ammo_magazine/hardpoint/towlauncher/aa + +/obj/structure/gun_rack/apc/boyars/aa + name = "anti-air cannon ammo storage compartment" + icon_state = "frontal" + desc = "A small compartment that stores ammunition for the vehicle's 'Bleihagel RE-RE965 Aerial-Defence System'." + max_stored = 2 + initial_stored = 0 + allowed_type = /obj/item/ammo_magazine/hardpoint/m56_cupola/quad_cannon + /obj/structure/gun_rack/m41/recon icon_state = "m41arecon" populate_type = /obj/item/weapon/gun/rifle/m41aMK1/forecon diff --git a/code/modules/vehicles/apc/apc_aa.dm b/code/modules/vehicles/apc/apc_aa.dm new file mode 100644 index 0000000000..818b7bd289 --- /dev/null +++ b/code/modules/vehicles/apc/apc_aa.dm @@ -0,0 +1,102 @@ +/obj/vehicle/multitile/apc/movie/aa + name = "M579 Aerial-Defence System Carrier" + desc = "A modification to the venerable M577 Armored Personnel Carrier, equipped with weapons systems tailored to target airborne threats. Comes with limited passenger capacity, entrance on the right." + + interior_map = /datum/map_template/interior/apc_aa + + hardpoints_allowed = list( + /obj/item/hardpoint/primary/aa_quadcannon, + /obj/item/hardpoint/secondary/towlauncher/aa, + /obj/item/hardpoint/support/flare_launcher, + /obj/item/hardpoint/locomotion/apc_wheels, + ) + + passengers_slots = 10 + +/obj/vehicle/multitile/apc/movie/aa/initialize_cameras(change_tag = FALSE) + if(!camera) + camera = new /obj/structure/machinery/camera/vehicle(src) + if(change_tag) + camera.c_tag = "#[rand(1,100)] M579 \"[nickname]\" ADS-C" + if(camera_int) + camera_int.c_tag = camera.c_tag + " interior" + else + camera.c_tag = "#[rand(1,100)] M579 ADS-C" + if(camera_int) + camera_int.c_tag = camera.c_tag + " interior" + +/obj/vehicle/multitile/apc/movie/aa/set_muzzle_offsets(obj/item/hardpoint/HP) + //sets muzzle flash offsets for APC weapons as appropriate for the movie APC, may need adjustment for AA weapons + switch(HP.slot) + if(HDPT_PRIMARY) //quadcannons + HP.muzzle_flash_pos = list( + "1" = list(10, -33), + "2" = list(28, 28), + "4" = list(-10, 26), + "8" = list(37, 9) + ) + if(HDPT_SECONDARY) //frontmissiles + HP.muzzle_flash_pos = list( + "1" = list(34, 70), + "2" = list(-1, -70), + "4" = list(88, -7), + "8" = list(-56, 12) + ) + 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) + ) + +/* +** PRESETS SPAWNERS +*/ +/obj/effect/vehicle_spawner/apc_aa + name = "Anti-Air APC Spawner" + icon = 'icons/obj/vehicles/movieapc.dmi' + icon_state = "apc_base_movie" + pixel_x = -64 + pixel_y = -64 + +/obj/effect/vehicle_spawner/apc_aa/Initialize() + . = ..() + spawn_vehicle() + qdel(src) + +//PRESET: no hardpoints +/obj/effect/vehicle_spawner/apc_aa/spawn_vehicle() + var/obj/vehicle/multitile/apc/movie/aa/APC = new (loc) + + load_misc(APC) + load_hardpoints(APC) + handle_direction(APC) + APC.update_icon() + +//PRESET: only wheels installed +/obj/effect/vehicle_spawner/apc_aa/plain/load_hardpoints(obj/vehicle/multitile/apc/movie/aa/V) + V.add_hardpoint(new /obj/item/hardpoint/locomotion/apc_wheels) + +//PRESET: default hardpoints, destroyed +/obj/effect/vehicle_spawner/apc_aa/decrepit/spawn_vehicle() + var/obj/vehicle/multitile/apc/movie/aa/APC = new (loc) + + load_misc(APC) + load_hardpoints(APC) + handle_direction(APC) + load_damage(APC) + APC.update_icon() + +/obj/effect/vehicle_spawner/apc_aa/decrepit/load_hardpoints(obj/vehicle/multitile/apc/movie/aa/V) + V.add_hardpoint(new /obj/item/hardpoint/primary/aa_quadcannon) + V.add_hardpoint(new /obj/item/hardpoint/secondary/towlauncher/aa) + V.add_hardpoint(new /obj/item/hardpoint/support/flare_launcher) + V.add_hardpoint(new /obj/item/hardpoint/locomotion/apc_wheels) + +//PRESET: default hardpoints +/obj/effect/vehicle_spawner/apc_aa/fixed/load_hardpoints(obj/vehicle/multitile/apc/movie/aa/V) + V.add_hardpoint(new /obj/item/hardpoint/primary/aa_quadcannon) + V.add_hardpoint(new /obj/item/hardpoint/secondary/towlauncher/aa) + V.add_hardpoint(new /obj/item/hardpoint/support/flare_launcher) + V.add_hardpoint(new /obj/item/hardpoint/locomotion/apc_wheels) diff --git a/code/modules/vehicles/hardpoints/hardpoint_ammo/cupola_ammo.dm b/code/modules/vehicles/hardpoints/hardpoint_ammo/cupola_ammo.dm index aa973f601b..8a39bdbd32 100644 --- a/code/modules/vehicles/hardpoints/hardpoint_ammo/cupola_ammo.dm +++ b/code/modules/vehicles/hardpoints/hardpoint_ammo/cupola_ammo.dm @@ -20,3 +20,14 @@ /obj/item/ammo_magazine/hardpoint/m56_cupola/frontal_cannon/update_icon() icon_state = "frontal_[current_rounds <= 0 ? "0" : "1"]" + +/obj/item/ammo_magazine/hardpoint/m56_cupola/quad_cannon + name = "RE-RE965 Aerial-Defence System ammunition box" + desc = "A crate of belted caseless munitions for the ever-hungry RE-RE965 Aerial-Defence System. Comes loaded with a mix of HEI-T and AP rounds for combating aerial threats of all shapes and sizes. Lacks propellants, as it's to be used with the binary hypergolic principle." + default_ammo = /datum/ammo/bullet/smartgun/aa + gun_type = /obj/item/hardpoint/primary/aa_quadcannon + max_rounds = 2000 + icon_state = "quad_1" + +/obj/item/ammo_magazine/hardpoint/m56_cupola/quad_cannon/update_icon() + icon_state = "quad_[current_rounds <= 0 ? "0" : "1"]" diff --git a/code/modules/vehicles/hardpoints/hardpoint_ammo/tow_ammo.dm b/code/modules/vehicles/hardpoints/hardpoint_ammo/tow_ammo.dm index caca68f720..e212a72e5e 100644 --- a/code/modules/vehicles/hardpoints/hardpoint_ammo/tow_ammo.dm +++ b/code/modules/vehicles/hardpoints/hardpoint_ammo/tow_ammo.dm @@ -8,3 +8,14 @@ default_ammo = /datum/ammo/rocket/ap/tank_towlauncher max_rounds = 10 gun_type = /obj/item/hardpoint/secondary/towlauncher + +/obj/item/ammo_magazine/hardpoint/towlauncher/aa + name = "M579 VLS Magazine" + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/event.dmi' + desc = "A magazine of ground-to-ground missiles for the M579 ADS-C frontal launch system." + caliber = "rocket" //correlates to any rocket mags + icon_state = "quad_rocket" + w_class = SIZE_LARGE + default_ammo = /datum/ammo/rocket/ap/tank_towlauncher/aa + max_rounds = 4 + gun_type = /obj/item/hardpoint/secondary/towlauncher/aa diff --git a/code/modules/vehicles/hardpoints/primary/aa_cannon.dm b/code/modules/vehicles/hardpoints/primary/aa_cannon.dm new file mode 100644 index 0000000000..89410ca95d --- /dev/null +++ b/code/modules/vehicles/hardpoints/primary/aa_cannon.dm @@ -0,0 +1,37 @@ +/obj/item/hardpoint/primary/aa_quadcannon + name = "Bleihagel RE-RE965 Aerial-Defence System" + desc = "A compact turret with four 20mm rotary cannons mounted in it. Normally slaved to the vehicles tracking systems, this one seems to be lacking the electronics required for such." + icon = 'icons/obj/vehicles/hardpoints/apc.dmi' + + icon_state = "quad_cannon" + disp_icon = "apc" + disp_icon_state = "quadcannon" + activation_sounds = list('sound/weapons/gun_smartgun1.ogg', 'sound/weapons/gun_smartgun2.ogg', 'sound/weapons/gun_smartgun3.ogg') + + damage_multiplier = 0.15 + + health = 2000 + firing_arc = 300 + + allowed_seat = VEHICLE_GUNNER + + ammo = new /obj/item/ammo_magazine/hardpoint/m56_cupola/quad_cannon + max_clips = 1 + + use_muzzle_flash = TRUE + angle_muzzleflash = FALSE + muzzleflash_icon_state = "muzzle_flash_double" + + muzzle_flash_pos = list( + "1" = list(1, 5), + "2" = list(1, -30), + "4" = list(17, 3), + "8" = list(-17, 3) + ) + + scatter = 2 + gun_firemode = GUN_FIREMODE_AUTOMATIC + gun_firemode_list = list( + GUN_FIREMODE_AUTOMATIC, + ) + fire_delay = 0.02 SECONDS diff --git a/code/modules/vehicles/hardpoints/secondary/aa_launcher.dm b/code/modules/vehicles/hardpoints/secondary/aa_launcher.dm new file mode 100644 index 0000000000..7076541194 --- /dev/null +++ b/code/modules/vehicles/hardpoints/secondary/aa_launcher.dm @@ -0,0 +1,39 @@ +/obj/item/hardpoint/secondary/towlauncher/aa + name = "Vertical-Launch System Array" + desc = "A hull-mounted vertical launch system for the M579 ADS-C, typically loaded with ground-to-air missiles, this one instead is capable of firing ground-to-ground missiles with devestating effect." + + icon_state = "vls_launcher" + disp_icon = "apc" + disp_icon_state = "vlslauncher" + + health = 2000 + firing_arc = 120 + + allowed_seat = VEHICLE_GUNNER + + ammo = new /obj/item/ammo_magazine/hardpoint/towlauncher/aa + max_clips = 1 + + px_offsets = list( + "1" = list(0, 0), + "2" = list(0, 0), + "4" = list(0, 0), + "8" = list(0, 0) + ) + + muzzle_flash_pos = list( + "1" = list(8, -1), + "2" = list(-8, -16), + "4" = list(5, -8), + "8" = list(-5, 10) + ) + + scatter = 1 + fire_delay = 7.0 SECONDS + +/obj/item/hardpoint/secondary/towlauncher/aa/set_bullet_traits() + ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) + )) + diff --git a/code/modules/vehicles/interior/areas.dm b/code/modules/vehicles/interior/areas.dm index 6c7140d1de..232f582518 100644 --- a/code/modules/vehicles/interior/areas.dm +++ b/code/modules/vehicles/interior/areas.dm @@ -26,9 +26,13 @@ icon_state = "apc_cmd" /area/interior/vehicle/apc/movie - name = "\improper M557A3 APC interior" + name = "\improper M577A3 APC interior" icon_state = "apc_movie" +/area/interior/vehicle/apc/movie/aa + name = "\improper M579 ADS-C interior" + icon_state = "apc_aa" + /area/interior/vehicle/van name = "van interior" icon_state = "van" diff --git a/code/modules/vehicles/interior/interactable/viewports.dm b/code/modules/vehicles/interior/interactable/viewports.dm index 54dddac9a7..190673ee41 100644 --- a/code/modules/vehicles/interior/interactable/viewports.dm +++ b/code/modules/vehicles/interior/interactable/viewports.dm @@ -34,3 +34,9 @@ icon = 'icons/obj/vehicles/interiors/van.dmi' icon_state = "windshield_viewport_top" alpha = 80 + +//anti-air APC's interior console +/obj/structure/interior_viewport/terminal + name = "External Cameras Terminal" + desc = "A terminal hooked up to the various sensors of the M579 ADS-C, featuring plenty of flashing buttons and whooping alarms alongside a more rudimentary external-view system." + icon_state = "viewport_terminal" diff --git a/code/modules/vehicles/interior/interior_landmarks.dm b/code/modules/vehicles/interior/interior_landmarks.dm index e0f72193a4..8a7a884ccd 100644 --- a/code/modules/vehicles/interior/interior_landmarks.dm +++ b/code/modules/vehicles/interior/interior_landmarks.dm @@ -339,3 +339,25 @@ V.icon = icon qdel(src) + +//AA APC fancy viewport spawner +/obj/effect/landmark/interior/spawn/interior_viewport/terminal + name = "ADS-C viewport console spawner" + icon = 'icons/obj/vehicles/interiors/general.dmi' + icon_state = "viewport_terminal" + layer = INTERIOR_DOOR_LAYER + color = "#009cb8" + +/obj/effect/landmark/interior/spawn/interior_viewport/terminal/on_load(datum/interior/I) + var/obj/structure/interior_viewport/terminal/V = new(loc) + + V.dir = dir + V.vehicle = I.exterior + V.pixel_x = pixel_x + V.pixel_y = pixel_y + V.layer = layer + V.alpha = alpha + V.layer = layer + V.update_icon() + + qdel(src) diff --git a/colonialmarines.dme b/colonialmarines.dme index 2acf1dec00..d494aa4951 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -2444,6 +2444,7 @@ #include "code\modules\vehicles\vehicle.dm" #include "code\modules\vehicles\vehicle_misc_objects.dm" #include "code\modules\vehicles\apc\apc.dm" +#include "code\modules\vehicles\apc\apc_aa.dm" #include "code\modules\vehicles\apc\apc_command.dm" #include "code\modules\vehicles\apc\apc_medical.dm" #include "code\modules\vehicles\apc\apc_movie.dm" @@ -2476,6 +2477,7 @@ #include "code\modules\vehicles\hardpoints\hardpoint_ammo\tow_ammo.dm" #include "code\modules\vehicles\hardpoints\holder\holder.dm" #include "code\modules\vehicles\hardpoints\holder\tank_turret.dm" +#include "code\modules\vehicles\hardpoints\primary\aa_cannon.dm" #include "code\modules\vehicles\hardpoints\primary\arc_frontal.dm" #include "code\modules\vehicles\hardpoints\primary\arc_sentry.dm" #include "code\modules\vehicles\hardpoints\primary\autocannon.dm" @@ -2484,6 +2486,7 @@ #include "code\modules\vehicles\hardpoints\primary\ltb.dm" #include "code\modules\vehicles\hardpoints\primary\minigun.dm" #include "code\modules\vehicles\hardpoints\primary\primary.dm" +#include "code\modules\vehicles\hardpoints\secondary\aa_launcher.dm" #include "code\modules\vehicles\hardpoints\secondary\cupola.dm" #include "code\modules\vehicles\hardpoints\secondary\flamer.dm" #include "code\modules\vehicles\hardpoints\secondary\frontal_cannon.dm" diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi index 850cd8a495..d21840c42a 100644 Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi differ diff --git a/icons/obj/vehicles/hardpoints/apc.dmi b/icons/obj/vehicles/hardpoints/apc.dmi index 5fc739865a..91b4327b45 100644 Binary files a/icons/obj/vehicles/hardpoints/apc.dmi and b/icons/obj/vehicles/hardpoints/apc.dmi differ diff --git a/icons/obj/vehicles/hardpoints/tank.dmi b/icons/obj/vehicles/hardpoints/tank.dmi index 0bb8987316..c5c24cbb9c 100644 Binary files a/icons/obj/vehicles/hardpoints/tank.dmi and b/icons/obj/vehicles/hardpoints/tank.dmi differ diff --git a/icons/obj/vehicles/interiors/apc.dmi b/icons/obj/vehicles/interiors/apc.dmi index 0d91ca9447..f34d30f03d 100644 Binary files a/icons/obj/vehicles/interiors/apc.dmi and b/icons/obj/vehicles/interiors/apc.dmi differ diff --git a/icons/obj/vehicles/interiors/general.dmi b/icons/obj/vehicles/interiors/general.dmi index b6ed8fe81d..9e13720e20 100644 Binary files a/icons/obj/vehicles/interiors/general.dmi and b/icons/obj/vehicles/interiors/general.dmi differ diff --git a/icons/obj/vehicles/movieapc.dmi b/icons/obj/vehicles/movieapc.dmi index 8c5faee611..0df5d292bf 100644 Binary files a/icons/obj/vehicles/movieapc.dmi and b/icons/obj/vehicles/movieapc.dmi differ diff --git a/icons/turf/areas_interiors.dmi b/icons/turf/areas_interiors.dmi index 832988ff79..3dec287051 100644 Binary files a/icons/turf/areas_interiors.dmi and b/icons/turf/areas_interiors.dmi differ diff --git a/maps/interiors/apc_aa.dmm b/maps/interiors/apc_aa.dmm new file mode 100644 index 0000000000..aeb3455523 --- /dev/null +++ b/maps/interiors/apc_aa.dmm @@ -0,0 +1,483 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/interior_wall/apc{ + icon_state = "rear_6" + }, +/turf/open/void/vehicle, +/area/space) +"b" = ( +/obj/structure/interior_wall/apc{ + icon_state = "wall"; + pixel_y = -12; + opacity = 0 + }, +/obj/structure/interior_wall/apc{ + icon_state = "wheel_front_top_2"; + pixel_x = -4; + pixel_y = -5; + layer = 2.01 + }, +/turf/open/void/vehicle, +/area/space) +"c" = ( +/obj/structure/prop/vehicle/sensor_equipment{ + name = "Sensor Apparatus Nexus"; + desc = "This machinery collects and analyzes data from the M579 ADS-C's sensors cluster and then feeds the results to the onboard gunner station. Better not touch it."; + density = 1 + }, +/obj/structure/vehicle_locker/movie{ + pixel_y = 19; + layer = 2.9 + }, +/turf/open/shuttle/vehicle/floor_3_10_1, +/area/interior/vehicle/apc/movie/aa) +"d" = ( +/obj/structure/bed/chair/vehicle{ + dir = 1; + pixel_x = -8 + }, +/obj/structure/bed/chair/vehicle{ + dir = 1; + pixel_x = 8 + }, +/obj/effect/landmark/interior/spawn/interior_viewport{ + dir = 1; + pixel_x = 2; + pixel_y = -13 + }, +/turf/open/shuttle/vehicle/floor_2, +/area/interior/vehicle/apc/movie/aa) +"e" = ( +/obj/structure/interior_wall/apc{ + icon_state = "wheel_front_top_2"; + pixel_x = 4; + pixel_y = -5; + layer = 2.01 + }, +/turf/open/void/vehicle, +/area/space) +"f" = ( +/obj/structure/interior_wall/apc{ + icon_state = "wheel_front_top_1"; + pixel_x = 1; + pixel_y = -5; + layer = 2.01 + }, +/turf/open/void/vehicle, +/area/space) +"g" = ( +/obj/structure/interior_wall/apc{ + icon_state = "front_1" + }, +/turf/open/void/vehicle, +/area/space) +"h" = ( +/obj/effect/landmark/interior/spawn/weapons_loader{ + pixel_y = -11; + layer = 4 + }, +/turf/open/shuttle/vehicle/floor_2, +/area/interior/vehicle/apc/movie/aa) +"j" = ( +/obj/structure/interior_wall/apc{ + icon_state = "aa_back_1"; + layer = 5.2; + pixel_x = -2 + }, +/turf/open/space/basic, +/area/space) +"l" = ( +/obj/structure/surface/table/reinforced/toc/west{ + pixel_y = -7 + }, +/obj/effect/landmark/interior/spawn/interior_viewport/terminal{ + pixel_y = 12 + }, +/turf/open/shuttle/vehicle/floor_1_4, +/area/interior/vehicle/apc/movie/aa) +"o" = ( +/obj/structure/interior_wall/apc{ + icon_state = "rear_1" + }, +/turf/open/void/vehicle, +/area/space) +"p" = ( +/obj/structure/interior_wall/apc{ + icon_state = "wall_2"; + opacity = 0 + }, +/turf/open/space/basic, +/area/space) +"q" = ( +/obj/structure/interior_wall/apc{ + icon_state = "front_wheel_L_1" + }, +/turf/open/space/basic, +/area/space) +"r" = ( +/obj/structure/interior_wall/apc{ + icon_state = "rear_wheel_R_aa"; + layer = 5.2 + }, +/turf/open/space/basic, +/area/space) +"t" = ( +/obj/structure/interior_wall/apc{ + icon_state = "aa_back_2"; + layer = 5.2; + pixel_x = -12 + }, +/obj/structure/interior_wall/apc{ + icon_state = "aa_back_3"; + layer = 5.2 + }, +/turf/open/space/basic, +/area/space) +"v" = ( +/obj/effect/landmark/interior/spawn/vehicle_gunner_seat/armor{ + can_buckle = 1; + dir = 1; + pixel_x = 4; + pixel_y = 16 + }, +/turf/open/shuttle/vehicle/floor_1_4, +/area/interior/vehicle/apc/movie/aa) +"w" = ( +/obj/effect/landmark/interior/spawn/interior_camera{ + dir = 5; + pixel_x = -18; + pixel_y = 38 + }, +/obj/structure/vehicle_locker/movie{ + pixel_y = 11; + layer = 2.9 + }, +/obj/structure/gun_rack/apc/frontal/aa{ + pixel_y = 1; + pixel_x = 8; + density = 0 + }, +/obj/structure/gun_rack/apc/boyars/aa{ + pixel_x = -8; + pixel_y = 1; + density = 0 + }, +/turf/open/shuttle/vehicle/floor_2, +/area/interior/vehicle/apc/movie/aa) +"x" = ( +/obj/structure/interior_wall/apc{ + icon_state = "wall"; + opacity = 0; + pixel_y = -12 + }, +/obj/structure/interior_wall/apc{ + icon_state = "wheel_front_top_2"; + pixel_x = 10; + pixel_y = -5; + layer = 2.01 + }, +/obj/structure/interior_wall/apc{ + icon_state = "wheel_front_top_2"; + pixel_x = -18; + pixel_y = -5; + layer = 2.01 + }, +/turf/open/void/vehicle, +/area/space) +"y" = ( +/obj/structure/interior_wall/apc{ + icon_state = "front_5" + }, +/turf/open/void/vehicle, +/area/space) +"z" = ( +/obj/effect/landmark/interior/spawn/entrance{ + alpha = 50; + exit_type = /obj/structure/interior_exit/vehicle/apc; + name = "Right APC door"; + tag = "right rear" + }, +/turf/open/shuttle/vehicle/floor_1_3, +/area/interior/vehicle/apc/movie/aa) +"A" = ( +/obj/structure/bed/chair/vehicle{ + dir = 1; + pixel_x = 8 + }, +/obj/structure/bed/chair/vehicle{ + dir = 1; + pixel_x = -8 + }, +/turf/open/shuttle/vehicle/floor_2, +/area/interior/vehicle/apc/movie/aa) +"B" = ( +/turf/open/shuttle/vehicle/floor_1_3, +/area/interior/vehicle/apc/movie/aa) +"C" = ( +/obj/structure/interior_wall/apc{ + icon_state = "door_big_right"; + layer = 5.2; + pixel_y = 32; + alpha = 100 + }, +/turf/open/void/vehicle, +/area/space) +"D" = ( +/obj/structure/interior_wall/apc{ + icon_state = "rear_5" + }, +/turf/open/void/vehicle, +/area/space) +"E" = ( +/turf/open/void/vehicle, +/area/space) +"G" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/vehicle{ + pixel_y = 30; + pixel_x = -6 + }, +/obj/structure/extinguisher_cabinet/lifeboat{ + icon = 'icons/obj/vehicles/interiors/general.dmi'; + pixel_y = 30; + pixel_x = 8 + }, +/turf/open/shuttle/vehicle/floor_2, +/area/interior/vehicle/apc/movie/aa) +"H" = ( +/obj/structure/interior_wall/apc{ + icon_state = "corner_inverse_R"; + opacity = 0 + }, +/turf/open/space/basic, +/area/space) +"I" = ( +/obj/structure/interior_wall/apc{ + icon_state = "front_3" + }, +/obj/structure/interior_wall/apc{ + icon_state = "front_4"; + pixel_y = 12 + }, +/turf/open/void/vehicle, +/area/space) +"J" = ( +/obj/structure/interior_wall/apc{ + icon_state = "wheel_front_top_2"; + pixel_x = 4; + pixel_y = 1; + layer = 2.01; + opacity = 0 + }, +/obj/structure/interior_wall/apc{ + icon_state = "corner_smaller_R"; + opacity = 0; + pixel_y = 12 + }, +/obj/structure/interior_wall/apc{ + icon_state = "corner_smaller_L"; + opacity = 0; + pixel_y = 12 + }, +/obj/structure/interior_wall/apc{ + icon_state = "intersection_2"; + opacity = 0; + pixel_y = -20 + }, +/turf/open/shuttle/vehicle, +/area/space) +"K" = ( +/obj/structure/interior_wall/apc{ + icon_state = "corner_smaller_L"; + opacity = 0 + }, +/obj/structure/interior_wall/apc{ + icon_state = "wheel_back_top_2"; + pixel_x = -4; + pixel_y = -4 + }, +/turf/open/void/vehicle, +/area/space) +"L" = ( +/obj/structure/interior_wall/apc{ + icon_state = "rear_wheel_L" + }, +/turf/open/space/basic, +/area/space) +"M" = ( +/obj/structure/interior_wall/apc{ + icon_state = "rear_3" + }, +/turf/open/void/vehicle, +/area/space) +"N" = ( +/turf/open/shuttle/vehicle/floor_1_4, +/area/interior/vehicle/apc/movie/aa) +"O" = ( +/obj/structure/interior_wall/apc{ + icon_state = "front_2"; + pixel_y = 7 + }, +/obj/structure/interior_wall/apc{ + icon_state = "front_2"; + pixel_y = -2; + layer = 2.01 + }, +/turf/open/void/vehicle, +/area/space) +"Q" = ( +/obj/structure/interior_wall/apc{ + icon_state = "door_big_left"; + pixel_y = 32; + layer = 5.2; + alpha = 100 + }, +/turf/open/void/vehicle, +/area/space) +"R" = ( +/obj/structure/interior_wall/apc{ + icon_state = "wall_wheelside" + }, +/turf/open/space/basic, +/area/space) +"S" = ( +/obj/structure/interior_wall/apc{ + icon_state = "front_6"; + pixel_y = -1 + }, +/turf/open/void/vehicle, +/area/space) +"T" = ( +/obj/effect/landmark/interior/spawn/entrance{ + alpha = 50; + exit_type = /obj/structure/interior_exit/vehicle/apc; + name = "Right APC door"; + tag = "right front" + }, +/turf/open/shuttle/vehicle/floor_1_4, +/area/interior/vehicle/apc/movie/aa) +"U" = ( +/obj/structure/interior_wall/apc{ + icon_state = "front_wheel_R"; + layer = 4.1 + }, +/turf/open/space/basic, +/area/space) +"V" = ( +/obj/structure/interior_wall/apc{ + icon_state = "wheel_back_top_1"; + pixel_x = -4; + pixel_y = -4 + }, +/turf/open/void/vehicle, +/area/space) +"W" = ( +/obj/effect/landmark/interior/spawn/interior_viewport{ + dir = 8; + pixel_x = 5; + pixel_y = 18 + }, +/obj/effect/landmark/interior/spawn/vehicle_driver_seat/armor/movie{ + dir = 4; + buckling_y = 16; + pixel_y = 16 + }, +/turf/open/shuttle/vehicle/floor_2, +/area/interior/vehicle/apc/movie/aa) +"Y" = ( +/obj/structure/interior_wall/apc{ + icon_state = "rear_2" + }, +/turf/open/void/vehicle, +/area/space) +"Z" = ( +/obj/structure/interior_wall/apc{ + icon_state = "corner_smaller_R"; + opacity = 0 + }, +/obj/structure/interior_wall/apc{ + icon_state = "wheel_front_top_2"; + pixel_x = 4; + pixel_y = -5; + layer = 2.01 + }, +/obj/structure/interior_wall/apc{ + icon_state = "wheel_front_top_2"; + pixel_x = 8; + pixel_y = -5; + layer = 2.01 + }, +/turf/open/void/vehicle, +/area/space) + +(1,1,1) = {" +a +D +M +Y +o +E +"} +(2,1,1) = {" +V +j +j +j +L +E +"} +(3,1,1) = {" +K +t +t +t +r +E +"} +(4,1,1) = {" +b +c +B +B +z +Q +"} +(5,1,1) = {" +x +l +v +N +T +C +"} +(6,1,1) = {" +Z +H +G +d +R +E +"} +(7,1,1) = {" +e +J +w +A +q +E +"} +(8,1,1) = {" +f +p +W +h +U +E +"} +(9,1,1) = {" +S +I +O +y +g +E +"}