diff --git a/_maps/map_files/vonneumann/vnmk3.dmm b/_maps/map_files/vonneumann/vnmk3.dmm index e0fdb64c666..8be8b685f3c 100644 --- a/_maps/map_files/vonneumann/vnmk3.dmm +++ b/_maps/map_files/vonneumann/vnmk3.dmm @@ -4989,7 +4989,7 @@ /turf/open/floor/plating, /area/engine/atmos/port_atmos) "exz" = ( -/obj/structure/overmap/small_craft/combat/light, +/obj/structure/overmap/small_craft/combat/solgov, /turf/open/floor/engine, /area/nsv/hanger) "eyp" = ( @@ -10588,6 +10588,9 @@ /obj/structure/sign/poster/official/safety_report{ pixel_y = 32 }, +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/port) "juj" = ( diff --git a/nsv13/code/modules/overmap/fighters/_fighters.dm b/nsv13/code/modules/overmap/fighters/_fighters.dm index 543c4bf5cd7..13b18a22d94 100644 --- a/nsv13/code/modules/overmap/fighters/_fighters.dm +++ b/nsv13/code/modules/overmap/fighters/_fighters.dm @@ -403,6 +403,35 @@ Been a mess since 2018, we'll fix it someday (probably) /obj/item/fighter_component/battery, /obj/item/fighter_component/primary/cannon) +/obj/structure/overmap/small_craft/combat/solgov + name = "Peregrine class attack fighter" + desc = "A Peregrine class attack fighter, solgov's only premiere fighter, mounting minature capital grade phasers and a tiny shield generator." + icon = 'nsv13/icons/overmap/new/solgov/playablefighter.dmi' + armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 30, "bomb" = 30, "bio" = 100, "rad" = 90, "fire" = 90, "acid" = 80, "overmap_light" = 5, "overmap_medium" = 0, "overmap_heavy" = 10) + sprite_size = 32 + damage_states = FALSE //temp + max_integrity = 25 //shields. + max_angular_acceleration = 200 + speed_limit = 10 + pixel_w = -16 + pixel_z = -20 + components = list(/obj/item/fighter_component/fuel_tank, + /obj/item/fighter_component/avionics, + /obj/item/fighter_component/apu, + /obj/item/fighter_component/targeting_sensor, + /obj/item/fighter_component/engine, + /obj/item/fighter_component/countermeasure_dispenser, + /obj/item/fighter_component/oxygenator, + /obj/item/fighter_component/canopy, + /obj/item/fighter_component/docking_computer, + /obj/item/fighter_component/battery, + /obj/item/fighter_component/primary/laser) + +/obj/structure/overmap/small_craft/combat/solgov/Initialize(mapload) + . = ..() + AddComponent(/datum/component/overmap_shields, 125, 125, 15) + + /obj/structure/overmap/small_craft/escapepod name = "Escape Pod" desc = "An escape pod launched from a space faring vessel. It only has very limited thrusters and is thus very slow." @@ -506,6 +535,7 @@ Been a mess since 2018, we'll fix it someday (probably) add_overlay(canopy) update_visuals() + /obj/structure/overmap/small_craft/attackby(obj/item/W, mob/user, params) if(operators && LAZYFIND(operators, user)) to_chat(user, "You can't reach [src]'s exterior from in here.") @@ -1588,6 +1618,53 @@ Utility modules can be either one of these types, just ensure you set its slot t burst_size = 3 fire_delay = 0.5 SECONDS +/obj/item/fighter_component/primary/laser + name = "Stinger Class Phaser Cannon" + icon_state = "lasercannon" + weight = 3 //it's a laser. it's light, but the gun is fuckhueg + accepted_ammo = null + overmap_select_sound = 'nsv13/sound/effects/ship/phaser_adjust.ogg' + overmap_firing_sounds = list('nsv13/sound/effects/ship/burst_phaser.ogg', 'nsv13/sound/effects/ship/burst_phaser2.ogg') + burst_size = 3 + fire_delay = 10 SECONDS + var/projectile = /obj/item/projectile/beam/laser/phaser + var/charge_to_fire = 2000 + +/obj/item/fighter_component/primary/laser/get_ammo() + var/obj/structure/overmap/small_craft/F = loc + if(!istype(F)) + return FALSE + var/obj/item/fighter_component/battery/B = F.loadout.get_slot(HARDPOINT_SLOT_BATTERY) + if(!istype(B)) + return 0 + return B.charge + +/obj/item/fighter_component/primary/laser/get_max_ammo() + var/obj/structure/overmap/small_craft/F = loc + if(!istype(F)) + return FALSE + var/obj/item/fighter_component/battery/B = F.loadout.get_slot(HARDPOINT_SLOT_BATTERY) + if(!istype(B)) + return 0 + return B.maxcharge + +/obj/item/fighter_component/primary/laser/fire(obj/structure/overmap/target) + var/obj/structure/overmap/small_craft/F = loc + if(!istype(F)) + return FALSE + var/obj/item/fighter_component/battery/B = F.loadout.get_slot(HARDPOINT_SLOT_BATTERY) + + if(B.charge < charge_to_fire) + F.relay('sound/weapons/gun_dry_fire.ogg') + return FALSE + + var/datum/ship_weapon/SW = F.weapon_types[fire_mode] + SW.default_projectile_type = projectile + SW.fire_fx_only(target, lateral = TRUE) + B.charge -= charge_to_fire + return TRUE + + /obj/item/fighter_component/secondary name = "Fuck you" slot = HARDPOINT_SLOT_SECONDARY diff --git a/nsv13/icons/obj/fighter_components.dmi b/nsv13/icons/obj/fighter_components.dmi index 14e7fdfe0cb..19ab2d06627 100644 Binary files a/nsv13/icons/obj/fighter_components.dmi and b/nsv13/icons/obj/fighter_components.dmi differ diff --git a/nsv13/icons/overmap/new/solgov/fighter.dmi b/nsv13/icons/overmap/new/solgov/fighter.dmi index 1f9d3d8685e..7bddad47bf3 100644 Binary files a/nsv13/icons/overmap/new/solgov/fighter.dmi and b/nsv13/icons/overmap/new/solgov/fighter.dmi differ diff --git a/nsv13/icons/overmap/new/solgov/playablefighter.dmi b/nsv13/icons/overmap/new/solgov/playablefighter.dmi new file mode 100644 index 00000000000..e2778f38bdf Binary files /dev/null and b/nsv13/icons/overmap/new/solgov/playablefighter.dmi differ