diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index a6a47b5596f..57db0ef075e 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -498,3 +498,26 @@ if(M.equipment.lenERROR, OVER PRESSURE!") // no station terror(yet) + playsound(chassis.occupant, 'sound/weapons/gun_interactions/dry_fire.ogg', 25, TRUE) + return FALSE + return ..() + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/mining_grenade/can_attach(obj/mecha/M) + if(istype(M, /obj/mecha/working)) + if(length(M.equipment) < M.max_equip) + return TRUE + return FALSE diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 2c942dc578b..21c91d24f7f 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -71,6 +71,7 @@ EQUIPMENT("Diamond Pickaxe", /obj/item/pickaxe/diamond, 2000), EQUIPMENT("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), EQUIPMENT("Kinetic Crusher", /obj/item/kinetic_crusher, 750), + EQUIPMENT("Mecha Grenade Launcher", /obj/item/mecha_parts/mecha_equipment/weapon/energy/mining_grenade, 3000), EQUIPMENT("Resonator", /obj/item/resonator, 800), EQUIPMENT("Silver Pickaxe", /obj/item/pickaxe/silver, 1000), EQUIPMENT("Super Resonator", /obj/item/resonator/upgraded, 2500), diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index a990508c6ff..a475f232d7e 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -516,6 +516,10 @@ var/fauna_boost = 4 /// Image overlaid on explosion. var/static/image/explosion_image + /// Radius of explosion + var/power = 1 + /// Drill power of grenade + var/drill_power = 2 /obj/structure/mining_bomb/Initialize(mapload, atom/movable/firer) . = ..() @@ -534,16 +538,24 @@ /obj/structure/mining_bomb/proc/boom(atom/movable/firer) visible_message("[src] explodes!") playsound(src, 'sound/magic/magic_missile.ogg', 200, vary = TRUE) - for(var/turf/T in circleviewturfs(src, 2)) + for(var/turf/T in circleviewturfs(src, drill_power)) if(ismineralturf(T)) var/turf/simulated/mineral/mineral_turf = T mineral_turf.gets_drilled(firer) - for(var/mob/living/mob in range(1, src)) + for(var/mob/living/mob in range(power, src)) mob.apply_damage(damage * (ishostile(mob) ? fauna_boost : 1), BRUTE, spread_damage = TRUE) if(!ishostile(mob) || !firer) continue var/mob/living/simple_animal/hostile/hostile_mob = mob hostile_mob.GiveTarget(firer) - for(var/obj/object in range(1, src)) + for(var/obj/object in range(power, src)) object.take_damage(damage, BRUTE, BOMB) qdel(src) + +/obj/item/projectile/bullet/reusable/mining_bomb/mecha + ammo_type = /obj/structure/mining_bomb/mecha + +/obj/structure/mining_bomb/mecha + damage = 15 + power = 2 + drill_power = 3