diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index 482d6999b28c1..74ac142692c6f 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -653,9 +653,9 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "gH" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 4 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/crew) @@ -1138,9 +1138,9 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/fore) "mb" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/hallway/port) @@ -1734,9 +1734,9 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/office) "sT" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium, /area/ship/crew) @@ -2068,9 +2068,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) "vJ" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/port) @@ -2442,9 +2442,9 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "Bi" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 9; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 9 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/crew/office) @@ -3320,8 +3320,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/security/armory) "Ll" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5 +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 4 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/bridge) @@ -3557,7 +3558,8 @@ /turf/open/floor/plasteel/patterned, /area/ship/cargo) "Oa" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; dir = 6 }, /turf/closed/wall/mineral/plastitanium, @@ -3630,9 +3632,9 @@ /turf/open/floor/engine/hull/reinforced, /area/ship/maintenance/starboard) "OI" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 6 }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/starboard) @@ -3790,9 +3792,9 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "Qw" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 10; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 10 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/security/armory) @@ -3944,9 +3946,9 @@ /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "RZ" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 6 }, /turf/closed/wall/mineral/plastitanium, /area/ship/security) diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 6b05aa78caaaa..2ab9a94055071 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -103,7 +103,7 @@ /turf/open/floor/circuit/telecomms/mainframe, /area/ship/engineering/communications) "aC" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -849,7 +849,7 @@ /turf/open/floor/plating/airless, /area/ship/storage/port) "fs" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -2689,14 +2689,14 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/crew/cryo) "qt" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/starboard) "qz" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -4556,9 +4556,9 @@ /turf/open/floor/plasteel/grimy, /area/ship/crew) "Cr" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 9; - id = "talos_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 9 }, /turf/closed/wall/mineral/plastitanium, /area/ship/engineering/communications) @@ -4821,7 +4821,7 @@ autolinkers = list("hub","processor4","bus"); network = "irmg_commnet" }, -/turf/open/floor/circuit/telecomms/mainframe, +/turf/closed/wall/mineral/plastitanium, /area/ship/engineering/communications) "Ep" = ( /obj/item/trash/can, @@ -4853,9 +4853,9 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "ED" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 10; - id = "talos_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 10 }, /turf/closed/wall/mineral/plastitanium, /area/ship/storage) @@ -6624,7 +6624,7 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Rf" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, @@ -7491,7 +7491,7 @@ /turf/open/floor/plating, /area/ship/engineering/engine) "WN" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm index 336bf57922086..92e024ba7bf6e 100644 --- a/_maps/shuttles/inteq/inteq_vaquero.dmm +++ b/_maps/shuttles/inteq/inteq_vaquero.dmm @@ -1933,7 +1933,7 @@ /turf/open/floor/plasteel/dark, /area/ship/security) "DT" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "vaquero_grid" }, @@ -2027,7 +2027,7 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/office) "Fm" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "vaquero_grid" }, @@ -2523,7 +2523,7 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "NO" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "vaquero_grid" }, @@ -2957,7 +2957,7 @@ port_direction = 8; preferred_direction = 4 }, -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "vaquero_grid" }, diff --git a/_maps/shuttles/subshuttles/inteq_anvil.dmm b/_maps/shuttles/subshuttles/inteq_anvil.dmm index 002ddfe6d0d3b..61d7946fb7943 100644 --- a/_maps/shuttles/subshuttles/inteq_anvil.dmm +++ b/_maps/shuttles/subshuttles/inteq_anvil.dmm @@ -191,14 +191,6 @@ "w" = ( /turf/template_noop, /area/template_noop) -"x" = ( -/obj/machinery/porta_turret/ship/weak{ - faction = list("playerInteq","turret"); - dir = 9; - id = "anvil_grid" - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) "y" = ( /obj/machinery/power/terminal, /obj/structure/cable{ @@ -387,9 +379,8 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "T" = ( -/obj/machinery/porta_turret/ship/weak{ - faction = list("playerInteq","turret"); - dir = 10; +/obj/machinery/porta_turret/ship/inteq/light{ + dir = 8; id = "anvil_grid" }, /turf/closed/wall/mineral/plastitanium/nodiagonal, @@ -436,7 +427,7 @@ (1,1,1) = {" w -x +T X u Q diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 3e50954df0c7c..663df697f01c2 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -77,8 +77,6 @@ DEFINE_BITFIELD(turret_flags, list( var/has_cover = TRUE /// The cover that is covering this turret var/obj/machinery/porta_turret_cover/cover = null - /// World.time the turret last fired - var/last_fired = 0 /// Ticks until next shot (1.5 ?) var/shot_delay = 15 /// Turret flags about who is turret allowed to shoot @@ -101,6 +99,8 @@ DEFINE_BITFIELD(turret_flags, list( var/datum/action/turret_toggle/toggle_action /// Mob that is remotely controlling the turret var/mob/remote_controller + //our cooldowns + COOLDOWN_DECLARE(fire_cooldown) /// For connecting to additional turrets var/id = "" @@ -599,9 +599,9 @@ DEFINE_BITFIELD(turret_flags, list( return if(!(obj_flags & EMAGGED)) //if it hasn't been emagged, cooldown before shooting again - if(last_fired + shot_delay > world.time) + if(!COOLDOWN_FINISHED(src, fire_cooldown)) return - last_fired = world.time + COOLDOWN_START(src, fire_cooldown, shot_delay) var/turf/T = get_turf(src) var/turf/U = get_turf(target) @@ -866,6 +866,40 @@ DEFINE_BITFIELD(turret_flags, list( lethal_projectile = /obj/projectile/beam/laser/heavylaser lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' +/* Inteq Turrets */ + +/obj/machinery/porta_turret/ship/inteq + name = "Vanguard Turret" + desc = "A turret designed by IRMG engineers for defending ships from hostile flora, fauna, and people (and Elzousa, which count as flora and people)." + stun_projectile = /obj/projectile/bullet/a762_40/rubber + stun_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg' + lethal_projectile = /obj/projectile/bullet/a762_40 + lethal_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg' + scan_range = 8 + shot_delay = 20 + faction = list(FACTION_PLAYER_INTEQ, "turret") + +/obj/machinery/porta_turret/ship/inteq/light + name = "Close-In Vanguard Turret" + desc = "A light turret designed by IRMG engineers for the the task of defending from close-in encounters. Low power, high speed." + stun_projectile = /obj/projectile/bullet/c10mm/rubber + stun_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg' + lethal_projectile = /obj/projectile/bullet/c10mm + lethal_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg' + subsystem_type = /datum/controller/subsystem/processing/fastprocess //turns out if you have a shot delay below what SSmachines fires at you need to use a different subsystem + scan_range = 4 + shot_delay = 5 + +/obj/machinery/porta_turret/ship/inteq/heavy + name = "Vanguard Overwatch Turret" + desc = "A turret designed by IRMG engineers to provide long range defensive fire on their installations. Has a habit of leaving big holes." + stun_projectile = /obj/projectile/bullet/a308/rubber + stun_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg' + lethal_projectile = /obj/projectile/bullet/a308 + lethal_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg' + scan_range = 12 + shot_delay = 20 + /* Solcon Turrets */ /obj/machinery/porta_turret/ship/solgov diff --git a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm index f32a2f11a508f..a244b188863a8 100644 --- a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm +++ b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm @@ -223,7 +223,6 @@ EMPTY_GUN_HELPER(automatic/smg/cm5) righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' - fire_sound = 'sound/weapons/gun/rifle/shot.ogg' icon_state = "f4" item_state = "f4" show_magazine_on_sprite = TRUE diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index 690f02d6b5c5e..1d5d48c9b8268 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -49,6 +49,13 @@ damage = 30 armour_penetration = 20 +/obj/projectile/bullet/a762_40/rubber //"rubber" + name = "7.62x40mm CLIP Rubber" + damage = 15 + stamina = 40 + armour_penetration = 20 + + //.308 WIN (M514 & GAL DMRs) /obj/projectile/bullet/a308 @@ -57,6 +64,13 @@ damage = 30 armour_penetration = 40 +/obj/projectile/bullet/a308/rubber //"rubber" + name = ".308 Rubber" + speed = 0.3 + damage = 25 + stamina = 50 + armour_penetration = 40 + // 8x58mm caseless (SG-669) /obj/projectile/bullet/a858