diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index d6cd804fe4f..932d76f958f 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -219,9 +219,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/security/taser name = "Stun Guns Crate" - contains = list(/obj/item/weapon/gun/energy/taser, - /obj/item/weapon/gun/energy/taser, - /obj/item/weapon/gun/energy/taser) + contains = list(/obj/item/weapon/gun/energy/gun/advtaser, + /obj/item/weapon/gun/energy/gun/advtaser, + /obj/item/weapon/gun/energy/gun/advtaser) cost = 15 containername = "stun gun crate" diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index 75a07818aa2..15562b1c13c 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -31,7 +31,7 @@ if(!summon_type) switch (randomizeguns) if("taser") - new /obj/item/weapon/gun/energy/taser(get_turf(H)) + new /obj/item/weapon/gun/energy/gun/advtaser(get_turf(H)) if("egun") new /obj/item/weapon/gun/energy/gun(get_turf(H)) if("laser") diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 2338dee7492..3a1912542cd 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -179,7 +179,7 @@ Security Officer H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) - H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/taser(H), slot_s_store) + H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store) H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store) if(H.backbag == 1) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index b5de2fb95a7..3c83caa461d 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -418,7 +418,7 @@ Auto Patrol[]"}, new /obj/item/device/assembly/prox_sensor(Tsec) if(!lasercolor) - var/obj/item/weapon/gun/energy/taser/G = new /obj/item/weapon/gun/energy/taser(Tsec) + var/obj/item/weapon/gun/energy/gun/advtaser/G = new /obj/item/weapon/gun/energy/gun/advtaser(Tsec) G.power_supply.charge = 0 G.update_icon() else if(lasercolor == "b") @@ -645,7 +645,7 @@ Auto Patrol[]"}, return name = "redtag ED-209 assembly" if("") - if(!istype(W, /obj/item/weapon/gun/energy/taser)) + if(!istype(W, /obj/item/weapon/gun/energy/gun/advtaser)) return name = "taser ED-209 assembly" else diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index e409a1bc686..5c3b993beec 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -119,7 +119,7 @@ if(/obj/item/weapon/gun/energy/lasercannon) iconholder = 1 - if(/obj/item/weapon/gun/energy/taser) + if(/obj/item/weapon/gun/energy/gun/advtaser) eprojectile = /obj/item/projectile/beam eshot_sound = 'sound/weapons/Laser.ogg' diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 62c7846c807..743da789536 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -168,7 +168,7 @@ O:icon_state = "flash" // Engineering // Security - if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg)) + if(istype(O,/obj/item/weapon/gun/energy/gun/advtaser/cyborg)) if(O:power_supply.charge < O:power_supply.maxcharge) var/obj/item/weapon/gun/energy/G = O var/obj/item/ammo_casing/energy/S = G.ammo_type[G.select] diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index a3fb7b85c82..10adc58768c 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -113,7 +113,7 @@ usr << "There's no mounting point for the module!" return 0 - var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in R.module + var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = locate() in R.module if(!T) T = locate() in R.module.contents if(!T) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 51287eaf20b..c1eb8f03c3b 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -38,7 +38,7 @@ /obj/item/robot_parts/r_leg = 1, /obj/item/stack/sheet/metal = 5, /obj/item/stack/cable_coil = 5, - /obj/item/weapon/gun/energy/taser = 1, + /obj/item/weapon/gun/energy/gun/advtaser = 1, /obj/item/weapon/stock_parts/cell = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/robot_parts/r_arm = 1) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 5a0e1b8260c..6ca4a48924e 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -12,46 +12,6 @@ select_fire(user) update_icon() - -/obj/item/weapon/gun/energy/gun/advtaser - name = "advanced taser" - desc = "A hybrid taser designed to fire both short-range high-power electrodes and long-range disabler beams." - icon_state = "advtaser" - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) - -/obj/item/weapon/gun/energy/gun/advtaser/cyborg - name = "advanced taser" - desc = "An integrated advanced taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." - cell_type = "/obj/item/weapon/stock_parts/cell/secborg" - var/charge_tick = 0 - var/recharge_time = 10 - -/obj/item/weapon/gun/energy/gun/advtaser/cyborg/New() - ..() - processing_objects.Add(src) - - -/obj/item/weapon/gun/energy/gun/advtaser/cyborg/Destroy() - processing_objects.Remove(src) - ..() - -/obj/item/weapon/gun/energy/gun/advtaser/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg - charge_tick++ - if(charge_tick < recharge_time) return 0 - charge_tick = 0 - - if(!power_supply) return 0 //sanity - if(isrobot(src.loc)) - var/mob/living/silicon/robot/R = src.loc - if(R && R.cell) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot - if(R.cell.use(shot.e_cost)) //Take power from the borg... - power_supply.give(shot.e_cost) //... to recharge the shot - - update_icon() - return 1 - - /obj/item/weapon/gun/energy/gun/nuclear name = "advanced energy gun" desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index bf1e7176109..432594d9c8a 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -7,7 +7,6 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode) cell_type = "/obj/item/weapon/stock_parts/cell/crap" - /obj/item/weapon/gun/energy/stunrevolver name = "stun revolver" desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder." @@ -16,6 +15,44 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode/gun) cell_type = "/obj/item/weapon/stock_parts/cell" +/obj/item/weapon/gun/energy/gun/advtaser + name = "advanced taser" + desc = "A hybrid taser designed to fire both short-range high-power electrodes and long-range disabler beams." + icon_state = "advtaser" + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) + +/obj/item/weapon/gun/energy/gun/advtaser/cyborg + name = "advanced taser" + desc = "An integrated advanced taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." + cell_type = "/obj/item/weapon/stock_parts/cell/secborg" + var/charge_tick = 0 + var/recharge_time = 10 + +/obj/item/weapon/gun/energy/gun/advtaser/cyborg/New() + ..() + processing_objects.Add(src) + + +/obj/item/weapon/gun/energy/gun/advtaser/cyborg/Destroy() + processing_objects.Remove(src) + ..() + +/obj/item/weapon/gun/energy/gun/advtaser/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg + charge_tick++ + if(charge_tick < recharge_time) return 0 + charge_tick = 0 + + if(!power_supply) return 0 //sanity + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot + if(R.cell.use(shot.e_cost)) //Take power from the borg... + power_supply.give(shot.e_cost) //... to recharge the shot + + update_icon() + return 1 + /obj/item/weapon/gun/energy/crossbow name = "mini energy crossbow" diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 3370bd2dfa7..1383336a635 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ