diff --git a/code/game/objects/items/devices/uplink_items.dm b/code/game/objects/items/devices/uplink_items.dm index 3c4ecc3e19..f9ec0f32dd 100644 --- a/code/game/objects/items/devices/uplink_items.dm +++ b/code/game/objects/items/devices/uplink_items.dm @@ -155,6 +155,10 @@ datum/uplink_item/dd_SortValue() name = "9mm" path = /obj/item/ammo_magazine/mc9mm +/datum/uplink_item/item/ammo/c45m + name = ".45" + path = /obj/item/ammo_magazine/c45m + /datum/uplink_item/item/ammo/darts name = "Darts" path = /obj/item/ammo_magazine/chemdart @@ -163,6 +167,14 @@ datum/uplink_item/dd_SortValue() name = "14.5mm" path = /obj/item/weapon/storage/box/sniperammo +/datum/uplink_item/item/ammo/a556 + name = "5.56mm" + path = /obj/item/ammo_magazine/a556 + +/datum/uplink_item/item/ammo/a556/ap + name = "5.56mm AP" + path = /obj/item/ammo_magazine/a556/ap + /datum/uplink_item/item/ammo/a10mm name = "10mm" path = /obj/item/ammo_magazine/a10mm @@ -171,6 +183,23 @@ datum/uplink_item/dd_SortValue() name = "7.62mm" path = /obj/item/ammo_magazine/a762 +/datum/uplink_item/item/ammo/a762/ap + name = "7.62mm AP" + path = /obj/item/ammo_magazine/a762/ap + +/datum/uplink_item/item/ammo/g12 + name = "12 gauge" + path = /obj/item/ammo_magazine/g12 + +/datum/uplink_item/item/ammo/g12/beanbag + name = "12 gauge beanbag" + path = /obj/item/ammo_magazine/g12/beanbag + item_cost = 1 // Discount due to it being LTL. + +/datum/uplink_item/item/ammo/g12/pellet + name = "12 gauge pellet" + path = /obj/item/ammo_magazine/g12/pellet + /*************************************** * Highly Visible and Dangerous Weapons * ***************************************/ @@ -192,10 +221,10 @@ datum/uplink_item/dd_SortValue() item_cost = 5 path = /obj/item/weapon/gun/energy/crossbow -/datum/uplink_item/item/visible_weapons/g9mm - name = "Silenced 9mm" +/datum/uplink_item/item/visible_weapons/silenced_45 + name = "Silenced .45" item_cost = 5 - path = /obj/item/weapon/storage/box/syndie_kit/g9mm + path = /obj/item/weapon/gun/projectile/silenced /datum/uplink_item/item/visible_weapons/riggedlaser name = "Exosuit Rigged Laser" @@ -223,6 +252,36 @@ datum/uplink_item/dd_SortValue() item_cost = 7 path = /obj/item/weapon/gun/projectile/automatic/sts35 +/datum/uplink_item/item/visible_weapons/combatshotgun + name = "Combat Shotgun" + item_cost = 7 + path = /obj/item/weapon/gun/projectile/shotgun/pump/combat + +/datum/uplink_item/item/visible_weapons/egun + name = "Energy Gun" + item_cost = 5 + path = /obj/item/weapon/gun/energy/gun + +/datum/uplink_item/item/visible_weapons/lasercannon + name = "Laser Cannon" + item_cost = 6 + path = /obj/item/weapon/gun/energy/lasercannon + +/datum/uplink_item/item/visible_weapons/lasercarbine + name = "Laser Carbine" + item_cost = 7 + path = /obj/item/weapon/gun/energy/laser + +/datum/uplink_item/item/visible_weapons/ionrifle + name = "Ion Rifle" + item_cost = 5 + path = /obj/item/weapon/gun/energy/ionrifle + +/datum/uplink_item/item/visible_weapons/xray + name = "Xray Gun" + item_cost = 7 + path = /obj/item/weapon/gun/energy/xray + /************************************* * Stealthy and Inconspicuous Weapons * *************************************/ diff --git a/code/game/objects/items/devices/uplink_random_lists.dm b/code/game/objects/items/devices/uplink_random_lists.dm index 4359918cee..70cca95105 100644 --- a/code/game/objects/items/devices/uplink_random_lists.dm +++ b/code/game/objects/items/devices/uplink_random_lists.dm @@ -38,7 +38,7 @@ var/datum/uplink_random_selection/default_uplink_selection = new/datum/uplink_ra /datum/uplink_random_selection/default/New() ..() - items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/g9mm) + items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/silenced_45) items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/mc9mm) items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/revolver) items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/a357) diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index fac7b0f9a5..a2b1dd7272 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -142,6 +142,10 @@ name = "magazine (5.56mm practice)" ammo_type = /obj/item/ammo_casing/a556p +/obj/item/ammo_magazine/a556/ap + name = "magazine (5.56mm armor-piercing)" + ammo_type = /obj/item/ammo_casing/a556/ap + /obj/item/ammo_magazine/a50 name = "magazine (.50)" icon_state = "50ae" @@ -179,6 +183,10 @@ max_ammo = 50 multiple_sprites = 1 +/obj/item/ammo_magazine/a762/ap + name = "magazine box (7.62mm armor-piercing)" + ammo_type = /obj/item/ammo_casing/a762/ap + /obj/item/ammo_magazine/a762/empty initial_ammo = 0 @@ -192,6 +200,10 @@ max_ammo = 20 multiple_sprites = 1 +/obj/item/ammo_magazine/c762/ap + name = "magazine (7.62mm armor-piercing)" + ammo_type = /obj/item/ammo_casing/a762/ap + /obj/item/ammo_magazine/caps name = "speed loader (caps)" icon_state = "T38" @@ -201,6 +213,7 @@ matter = list(DEFAULT_WALL_MATERIAL = 600) max_ammo = 7 multiple_sprites = 1 + /obj/item/ammo_magazine/g12 name = "magazine (12 gauge)" icon_state = "g12" diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm index 52c44af1d1..6050fb2c65 100644 --- a/code/modules/projectiles/ammunition/bullets.dm +++ b/code/modules/projectiles/ammunition/bullets.dm @@ -133,6 +133,11 @@ caliber = "a762" projectile_type = /obj/item/projectile/bullet/rifle/a762 +/obj/item/ammo_casing/a762/ap + desc = "A 7.62mm armor-piercing bullet casing." + caliber = "a762" + projectile_type = /obj/item/projectile/bullet/rifle/a762/ap + /obj/item/ammo_casing/a145 name = "shell casing" desc = "A 14.5mm shell." @@ -147,6 +152,11 @@ caliber = "a556" projectile_type = /obj/item/projectile/bullet/rifle/a556 +/obj/item/ammo_casing/a556/ap + desc = "A 5.56mm armor-piercing bullet casing." + caliber = "a556" + projectile_type = /obj/item/projectile/bullet/rifle/a556/ap + /obj/item/ammo_casing/a556p desc = "A 5.56mm practice bullet casing." caliber = "a556" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index de6c67446e..ab052834ec 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -66,6 +66,7 @@ var/mode_name = null var/requires_two_hands var/wielded_icon = "gun_wielded" + var/one_handed_penalty = 0 // Penalty applied if someone fires a two-handed gun with one hand. var/next_fire_time = 0 @@ -182,8 +183,8 @@ var/held_disp_mod = 0 if(requires_two_hands) if(user.item_is_in_hands(src) && user.hands_are_full()) - held_acc_mod = -3 - held_disp_mod = 3 + held_acc_mod = held_acc_mod - one_handed_penalty + held_disp_mod = held_disp_mod - round(one_handed_penalty / 2) //actually attempt to shoot var/turf/targloc = get_turf(target) //cache this in case target gets deleted during shooting, e.g. if it was a securitron that got destroyed. @@ -211,6 +212,12 @@ target = targloc pointblank = 0 + // We do this down here, so we don't get the message if we fire an empty gun. + if(requires_two_hands) + if(user.item_is_in_hands(src) && user.hands_are_full()) + if(one_handed_penalty >= 2) + user << "You struggle to keep \the [src] pointed at the correct position with just one hand!" + admin_attack_log(usr, attacker_message="Fired [src]", admin_message="fired a gun ([src]) (MODE: [src.mode_name]) [reflex ? "by reflex" : "manually"].") //update timing diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 466170e52a..8cd8f72a36 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -1,6 +1,7 @@ /obj/item/weapon/gun/energy/laser name = "laser carbine" - desc = "An Hesphaistos Industries G40E carbine, designed to kill with concentrated energy blasts." + desc = "An Hesphaistos Industries G40E carbine, designed to kill with concentrated energy blasts. This varient has the ability to \ + switch between standard fire and a more efficent but weaker 'suppressive' fire." icon_state = "laser" item_state = "laser" fire_sound = 'sound/weapons/Laser.ogg' @@ -10,16 +11,29 @@ origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) matter = list(DEFAULT_WALL_MATERIAL = 2000) projectile_type = /obj/item/projectile/beam/midlaser +// requires_two_hands = 1 + one_handed_penalty = 2 + + firemodes = list( + list(mode_name="normal", projectile_type=/obj/item/projectile/beam/midlaser, charge_cost = 200), + list(mode_name="suppressive", projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 50), + ) /obj/item/weapon/gun/energy/laser/mounted self_recharge = 1 use_external_power = 1 + requires_two_hands = 0 // Not sure if two-handing gets checked for mounted weapons, but better safe than sorry. /obj/item/weapon/gun/energy/laser/practice name = "practice laser carbine" desc = "A modified version of the HI G40E, this one fires less concentrated energy bolts designed for target practice." projectile_type = /obj/item/projectile/beam/practice + firemodes = list( + list(mode_name="normal", projectile_type=/obj/item/projectile/beam/practice, charge_cost = 200), + list(mode_name="suppressive", projectile_type=/obj/item/projectile/beam/practice, charge_cost = 50), + ) + obj/item/weapon/gun/energy/retro name = "retro laser" icon_state = "retro" @@ -47,7 +61,8 @@ obj/item/weapon/gun/energy/retro /obj/item/weapon/gun/energy/lasercannon name = "laser cannon" - desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" + desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron \ + flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" icon_state = "lasercannon" item_state = null fire_sound = 'sound/weapons/lasercannonfire.ogg' @@ -55,30 +70,36 @@ obj/item/weapon/gun/energy/retro slot_flags = SLOT_BELT|SLOT_BACK projectile_type = /obj/item/projectile/beam/heavylaser charge_cost = 400 - max_shots = 5 + max_shots = 6 fire_delay = 20 +// requires_two_hands = 1 + one_handed_penalty = 6 // The thing's heavy and huge. + accuracy = 2 /obj/item/weapon/gun/energy/lasercannon/mounted name = "mounted laser cannon" self_recharge = 1 use_external_power = 1 recharge_time = 10 + accuracy = 0 // Mounted cannons are just fine the way they are. + requires_two_hands = 0 // Not sure if two-handing gets checked for mounted weapons, but better safe than sorry. /obj/item/weapon/gun/energy/xray name = "xray laser gun" - desc = "A high-power laser gun capable of expelling concentrated xray blasts." + desc = "A high-power laser gun capable of expelling concentrated xray blasts, which are able to penetrate matter easier than \ + standard photonic beams, resulting in an effective 'anti-armor' energy weapon." icon_state = "xray" item_state = "xray" fire_sound = 'sound/weapons/laser3.ogg' - origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) + origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2) projectile_type = /obj/item/projectile/beam/xray charge_cost = 100 - max_shots = 20 - fire_delay = 1 + max_shots = 12 /obj/item/weapon/gun/energy/sniperrifle name = "marksman energy rifle" - desc = "The HI DMR 9E is an older design of Hesphaistos Industries. A designated marksman rifle capable of shooting powerful ionized beams, this is a weapon to kill from a distance." + desc = "The HI DMR 9E is an older design of Hesphaistos Industries. A designated marksman rifle capable of shooting powerful \ + ionized beams, this is a weapon to kill from a distance." icon_state = "sniper" item_state = "laser" fire_sound = 'sound/weapons/marauder.ogg' @@ -92,6 +113,8 @@ obj/item/weapon/gun/energy/retro w_class = 5 // So it can't fit in a backpack. accuracy = -3 //shooting at the hip scoped_accuracy = 0 +// requires_two_hands = 1 + one_handed_penalty = 4 // The weapon itself is heavy, and the long barrel makes it hard to hold steady with just one hand. /obj/item/weapon/gun/energy/sniperrifle/verb/scope() set category = "Object" diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index f106877471..5e1612a50b 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -5,13 +5,14 @@ item_state = null //so the human update icon uses the icon_state instead. fire_sound = 'sound/weapons/Taser.ogg' max_shots = 10 + fire_delay = 10 // Handguns should be inferior to two-handed weapons. projectile_type = /obj/item/projectile/beam/stun origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) modifystate = "energystun" firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="energystun", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="energystun", fire_sound='sound/weapons/Taser.ogg'), list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="energykill", fire_sound='sound/weapons/Laser.ogg'), ) @@ -33,6 +34,9 @@ origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_ILLEGAL = 3) modifystate = "fm-2tstun" +// requires_two_hands = 1 + one_handed_penalty = 2 + firemodes = list( list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="fm-2tstun", fire_sound='sound/weapons/Taser.ogg'), list(mode_name="stun 3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0), projectile_type=/obj/item/projectile/beam/stun, modifystate="fm-2tstun", fire_sound='sound/weapons/Taser.ogg'), @@ -50,6 +54,9 @@ self_recharge = 1 modifystate = null +// requires_two_hands = 1 + one_handed_penalty = 1 // It's rather bulky, so holding it in one hand is a little harder than with two, however it's not 'required'. + firemodes = list( list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg'), diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 72392da29a..156083b94a 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -1,10 +1,10 @@ /obj/item/weapon/gun/energy/taser name = "taser gun" - desc = "The NT Mk30 NL is a small, low capacity gun used for non-lethal takedowns. Produced by NT, it's actually a licensed version of a W-T design." + desc = "The NT Mk30 NL is a small gun used for non-lethal takedowns. Produced by NT, it's actually a licensed version of a W-T design." icon_state = "taser" item_state = null //so the human update icon uses the icon_state instead. fire_sound = 'sound/weapons/Taser.ogg' - max_shots = 5 + max_shots = 10 projectile_type = /obj/item/projectile/beam/stun /obj/item/weapon/gun/energy/taser/mounted @@ -25,7 +25,7 @@ item_state = "stunrevolver" fire_sound = 'sound/weapons/Gunshot.ogg' origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) - projectile_type = /obj/item/projectile/energy/electrode + projectile_type = /obj/item/projectile/energy/electrode/strong max_shots = 8 diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 53f77feed2..975f48ae7b 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -11,6 +11,10 @@ ammo_type = /obj/item/ammo_casing/c9mm multi_aim = 1 burst_delay = 2 + +// requires_two_hands = 1 + one_handed_penalty = 1 + firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)), @@ -44,6 +48,9 @@ auto_eject = 1 auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' +// requires_two_hands = 1 + one_handed_penalty = 2 + /obj/item/weapon/gun/projectile/automatic/c20r/update_icon() ..() if(ammo_magazine) @@ -65,6 +72,8 @@ load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/c762 + one_handed_penalty = 4 + firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=6, burst_accuracy=list(0,-1,-2), dispersion=list(0.0, 0.6, 0.6)), @@ -115,6 +124,8 @@ auto_eject = 1 auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' + one_handed_penalty = 4 + burst_delay = 4 firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, use_launcher=null, burst_accuracy=null, dispersion=null), @@ -149,12 +160,13 @@ else ..() -/obj/item/weapon/gun/projectile/automatic/z8/update_icon() +/obj/item/weapon/gun/projectile/automatic/z8/update_icon(var/ignore_inhands) ..() if(ammo_magazine) icon_state = "carbine-[round(ammo_magazine.stored_ammo.len,2)]" else icon_state = "carbine" + if(!ignore_inhands) update_held_icon() return /obj/item/weapon/gun/projectile/automatic/z8/examine(mob/user) @@ -181,6 +193,8 @@ load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/a762 + one_handed_penalty = 6 + firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)), @@ -240,6 +254,8 @@ load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/g12 + one_handed_penalty = 4 + firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0), list(mode_name="3-round bursts", burst=3, move_delay=6, burst_accuracy = list(0,-1,-1,-2,-2), dispersion = list(0.0, 0.6, 0.6)), diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index a1048ab763..f564b399ad 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -23,6 +23,11 @@ check_armour = "laser" eyeblur = 2 +/obj/item/projectile/beam/weaklaser + name = "weak laser" + icon_state = "laser" + damage = 15 + /obj/item/projectile/beam/midlaser damage = 40 armor_penetration = 10 @@ -37,15 +42,6 @@ tracer_type = /obj/effect/projectile/laser_heavy/tracer impact_type = /obj/effect/projectile/laser_heavy/impact -/obj/item/projectile/beam/weaklaser - name = "weak laser" - icon_state = "laser" - damage = 15 - - muzzle_type = /obj/effect/projectile/laser_heavy/muzzle - tracer_type = /obj/effect/projectile/laser_heavy/tracer - impact_type = /obj/effect/projectile/laser_heavy/impact - /obj/item/projectile/beam/xray name = "xray beam" icon_state = "xray" @@ -160,11 +156,4 @@ /obj/item/projectile/beam/stun/weak name = "weak stun beam" icon_state = "stun" - nodamage = 1 - taser_effect = 1 agony = 25 - damage_type = HALLOSS - - muzzle_type = /obj/effect/projectile/stun/muzzle - tracer_type = /obj/effect/projectile/stun/tracer - impact_type = /obj/effect/projectile/stun/impact diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index a78eca0d51..ca2ab63eef 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -169,15 +169,23 @@ /* "Rifle" rounds */ /obj/item/projectile/bullet/rifle - armor_penetration = 20 + armor_penetration = 15 penetrating = 1 /obj/item/projectile/bullet/rifle/a762 damage = 25 +/obj/item/projectile/bullet/rifle/a762/ap + damage = 20 + armor_penetration = 50 // At 40 or more armor, this will do more damage than standard rounds. + /obj/item/projectile/bullet/rifle/a556 damage = 35 +/obj/item/projectile/bullet/rifle/a556/ap + damage = 30 + armor_penetration = 50 // At 30 or more armor, this will do more damage than standard rounds. + /obj/item/projectile/bullet/rifle/a145 damage = 80 stun = 3 diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 063acf750b..d56c298b6c 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -28,7 +28,7 @@ //snap pop playsound(src, 'sound/effects/snap.ogg', 50, 1) src.visible_message("\The [src] explodes in a bright flash!") - + new /obj/effect/decal/cleanable/ash(src.loc) //always use src.loc so that ash doesn't end up inside windows new /obj/effect/effect/sparks(T) new /obj/effect/effect/smoke/illumination(T, brightness=max(flash_range*2, brightness), lifetime=light_duration) @@ -49,6 +49,9 @@ damage_type = HALLOSS //Damage will be handled on the MOB side, to prevent window shattering. +/obj/item/projectile/energy/electrode/strong + agony = 55 + /obj/item/projectile/energy/electrode/stunshot name = "stunshot" damage = 5