diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index b41c1b090b..41e8c9a53d 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -55,3 +55,14 @@ force = 10 matter = list(DEFAULT_WALL_MATERIAL = 200000) projectile_type = /obj/item/projectile/energy/bolt/large + +/obj/item/weapon/gun/energy/plasmastun + name = "plasma pulse projector" + desc = "The Mars Military Industries MA21 Selkie is a weapon that uses a laser pulse to ionise the local atmosphere, creating a disorienting pulse of plasma and deafening shockwave as the wave expands." + icon_state = "plasma_stun" + item_state = "plasma_stun" + fire_sound = 'sound/weapons/blaster.ogg' + origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_POWER = 3) + fire_delay = 20 + charge_cost = 600 + projectile_type = /obj/item/projectile/energy/plasmastun \ No newline at end of file diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 0d9d4ef5fa..97b40c07f1 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -133,3 +133,50 @@ light_range = 2 light_power = 0.5 light_color = "#33CC00" + +/obj/item/projectile/energy/plasmastun + name = "plasma pulse" + icon_state = "plasma_stun" + armor_penetration = 10 + kill_count = 4 + damage = 5 + agony = 70 + damage_type = BURN +// vacuum_traversal = 0 //Projectile disappears in empty space, TODO: Implement this + +/obj/item/projectile/energy/plasmastun/proc/bang(var/mob/living/carbon/M) + + to_chat(M, "You hear a loud roar.") + playsound(M.loc, 'sound/effects/bang.ogg', 50, 1) + var/ear_safety = 0 + var/mob/living/carbon/human/H = M + if(iscarbon(M)) + if(ishuman(M)) + if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs)) + ear_safety += 2 + if(HULK in M.mutations) + ear_safety += 1 + if(istype(H.head, /obj/item/clothing/head/helmet)) + ear_safety += 1 + if(ear_safety == 1) + M.Weaken(2) + else if (ear_safety > 1) + M.Weaken(1) + else if (!ear_safety) + M.Stun(10) + M.Weaken(3) + M.ear_damage += rand(1, 10) + M.ear_deaf = max(M.ear_deaf,15) + if (M.ear_damage >= 15) + to_chat(M, "Your ears start to ring badly!") + if (prob(M.ear_damage - 5)) + to_chat(M, "You can't hear anything!") + M.sdisabilities |= DEAF + else + if (M.ear_damage >= 5) + to_chat(M, "Your ears start to ring!") + M.update_icons() + +/obj/item/projectile/energy/plasmastun/on_hit(var/atom/target) + bang(target) + . = ..() \ No newline at end of file diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 996ab9699d..6bf741b8af 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 2e254cc5cb..522d540bdb 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ