diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 84071704fef72..0d0eddbaeb74b 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -546,6 +546,31 @@ turret.owner_uid = owner_uid qdel(src) +/obj/item/grenade/turret/mining + name = "\"Prospector\" Turret grenade" + desc = "Inflates into a \"Prospector\" Mining Turret - a robust and secure defensive system." + icon_state = "mining_turret" + origin_tech = "materials=4;magnets=4;engineering=5" + +/obj/item/grenade/turret/mining/emag_act(mob/user) + . = ..() + if(emagged) + return + to_chat(user, SPAN_WARNING("You short out the turret's IFF system.")) + emagged = TRUE + +/obj/item/grenade/turret/mining/prime() + var/turf/T = get_turf(src) + qdel(src) + var/obj/effect/temp_visual/rcd_effect/spawning_effect = new(T) + playsound(T, 'sound/items/rped.ogg', 100, TRUE) + sleep(5 SECONDS) + var/obj/machinery/porta_turret/mining_turret/turret = new(T) + if(emagged) + turret.faction = "hate_everyone" + turret.emagged = TRUE + qdel(spawning_effect) + /obj/structure/barricade/foam name = "foam blockage" desc = "This foam blocks the airlock from being opened." diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 5d81fa432df68..1991817e322a4 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -1325,6 +1325,49 @@ /obj/machinery/porta_turret/inflatable_turret/CanPathfindPass(to_dir, datum/can_pass_info/pass_info) return ((stat & BROKEN) || !pass_info.is_living) +/obj/machinery/porta_turret/mining_turret + name = "\"Prospector\" Pop-Up Turret" + desc = "A deployable turret equipped with a proto-kinetic accelerator, useful for those who need to secure a place in harsh environments." + icon_state = "standard_mining" + base_icon_state = "standard_mining" + projectile = /obj/projectile/kinetic/turret + eprojectile = /obj/projectile/kinetic/turret + shot_sound = 'sound/weapons/kenetic_accel.ogg' + eshot_sound = 'sound/weapons/kenetic_accel.ogg' + health = 150 + installation = null + always_up = TRUE + interact_offline = TRUE + power_state = NO_POWER_USE + has_cover = FALSE + raised = TRUE + shot_delay = 2 SECONDS + scan_range = 3 + + faction = "neutral" + + lethal = TRUE + lethal_is_configurable = FALSE + targetting_is_configurable = FALSE + check_arrest = FALSE + check_records = FALSE + check_access = FALSE + check_synth = TRUE + ailock = TRUE + +/obj/machinery/porta_turret/mining_turret/update_icon_state() + if(stat & BROKEN) + icon_state = "standard_broken" + +/obj/machinery/porta_turret/mining_turret/setup() + return + +/obj/machinery/porta_turret/mining_turret/CanPass(atom/A) + return ((stat & BROKEN) || !isliving(A)) + +/obj/machinery/porta_turret/mining_turret/CanPathfindPass(to_dir, datum/can_pass_info/pass_info) + return ((stat & BROKEN) || !pass_info.is_living) + // Meatpackers' ruin turret /obj/machinery/porta_turret/meatpacker_ship name = "ship defense turret" diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 7eb0105ce22a9..e051d440b69a5 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -1040,7 +1040,8 @@ /obj/item/wormhole_jaunter, /obj/item/storage/bag/plants, /obj/item/stack/marker_beacon, - /obj/item/grenade/plastic/miningcharge) + /obj/item/grenade/plastic/miningcharge, + /obj/item/grenade/turret/mining) /obj/item/storage/belt/mining/vendor/Initialize(mapload) . = ..() diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 9b8b9a4c88646..bc72e49b20b5a 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -47,6 +47,7 @@ EQUIPMENT("Fulton Pack", /obj/item/extraction_pack, 1000), EQUIPMENT("Fulton Beacon", /obj/item/fulton_core, 400), EQUIPMENT("Jaunter", /obj/item/wormhole_jaunter, 750), + EQUIPMENT("\"Prospector\" Turret Grenade", /obj/item/grenade/turret/mining, 1500), EQUIPMENT("Chasm Jaunter Recovery Grenade", /obj/item/grenade/jaunter_grenade, 1500), EQUIPMENT("Lazarus Injector", /obj/item/lazarus_injector, 1000), EQUIPMENT("Mining Charge", /obj/item/grenade/plastic/miningcharge/lesser, 150), @@ -394,6 +395,7 @@ EQUIPMENT("First-Aid Kit", /obj/item/storage/firstaid/regular, 400), EQUIPMENT("Machine Repair Kit", /obj/item/storage/firstaid/machine, 500), EQUIPMENT("Advanced First-Aid Kit", /obj/item/storage/firstaid/adv, 600), + EQUIPMENT("\"Prospector\" Turret Grenade", /obj/item/grenade/turret/mining, 1500), EQUIPMENT("Fulton Pack", /obj/item/extraction_pack, 1000), EQUIPMENT("Fulton Beacon", /obj/item/fulton_core, 400), EQUIPMENT("Stabilizing Serum", /obj/item/hivelordstabilizer, 400), diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 0a7f9c44060f3..56feef220e269 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -322,6 +322,9 @@ /obj/projectile/kinetic/pod range = 4 +/obj/projectile/kinetic/turret + damage = 30 + /obj/projectile/kinetic/pod/regular damage = 50 pressure_decrease = 0.5 diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi index bb4391b4e2bc3..d64444e73cd8e 100644 Binary files a/icons/obj/grenade.dmi and b/icons/obj/grenade.dmi differ diff --git a/icons/obj/turrets.dmi b/icons/obj/turrets.dmi index 1eb74c9dc9556..c4124e0220be4 100644 Binary files a/icons/obj/turrets.dmi and b/icons/obj/turrets.dmi differ