diff --git a/code/modules/projectiles/guns/energy/special_vr.dm b/code/modules/projectiles/guns/energy/special_vr.dm index 73e878eed6b..f131971de78 100644 --- a/code/modules/projectiles/guns/energy/special_vr.dm +++ b/code/modules/projectiles/guns/energy/special_vr.dm @@ -1,27 +1,98 @@ -/obj/item/weapon/gun/energy/ionrifle/pistol - projectile_type = /obj/item/projectile/ion/pistol // still packs a punch but no AoE - -/obj/item/weapon/gun/energy/ionrifle/weak - projectile_type = /obj/item/projectile/ion/small - -/obj/item/weapon/gun/energy/medigun //Adminspawn/ERT etc - name = "directed restoration system" - desc = "The BL-3 'Phoenix' is an adaptation on the ML-3 'Medbeam' design that channels the power of the beam into a single healing laser. It is highly energy-inefficient, but its medical power cannot be denied." - force = 5 - icon_state = "medbeam" - item_state = "medbeam" - icon = 'icons/obj/gun_vr.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi', - ) - slot_flags = SLOT_BELT - accuracy = 100 - fire_delay = 12 - fire_sound = 'sound/weapons/eluger.ogg' - - projectile_type = /obj/item/projectile/beam/medigun - - accept_cell_type = /obj/item/weapon/cell - cell_type = /obj/item/weapon/cell/high - charge_cost = 2500 \ No newline at end of file +/obj/item/weapon/gun/energy/ionrifle/pistol + projectile_type = /obj/item/projectile/ion/pistol // still packs a punch but no AoE + +/obj/item/weapon/gun/energy/ionrifle/weak + projectile_type = /obj/item/projectile/ion/small + +/obj/item/weapon/gun/energy/medigun //Adminspawn/ERT etc + name = "directed restoration system" + desc = "The BL-3 'Phoenix' is an adaptation on the ML-3 'Medbeam' design that channels the power of the beam into a single healing laser. It is highly energy-inefficient, but its medical power cannot be denied." + force = 5 + icon_state = "medbeam" + item_state = "medbeam" + icon = 'icons/obj/gun_vr.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi', + ) + slot_flags = SLOT_BELT + accuracy = 100 + fire_delay = 12 + fire_sound = 'sound/weapons/eluger.ogg' + + projectile_type = /obj/item/projectile/beam/medigun + + accept_cell_type = /obj/item/weapon/cell + cell_type = /obj/item/weapon/cell/high + charge_cost = 2500 + +/obj/item/weapon/gun/energy/bfgtaser + name = "9000-series Ball Lightning Taser" + desc = "The brainchild of Hephaestus Industries Civil Pacification Division, the BLT-9000 was intended for riot control but despite enthusiastic interest from law-enforcement agencies across the Commonwealth and beyond, its indiscriminate nature led to it being banned from civilian use in virtually all jurisdictions. As a result, most pieces are found in the hands of collectors." + icon = 'icons/obj/gun_vr.dmi' + icon_state = "BFG" + item_state = null + fire_sound = 'sound/effects/phasein.ogg' + wielded_item_state = "mhdhowitzer-wielded" //Placeholder + slot_flags = SLOT_BELT|SLOT_BACK + projectile_type = /obj/item/projectile/bullet/BFGtaser + fire_delay = 20 + w_class = ITEMSIZE_LARGE + one_handed_penalty = 90 // The thing's heavy and huge. + accuracy = 45 + charge_cost = 2400 //yes, this bad boy empties an entire weapon cell in one shot. What of it? + var/spinning_up = FALSE + +/obj/item/weapon/gun/energy/bfgtaser/Fire(atom/target, mob/living/user, clickparams, pointblank=0, reflex=0) + if(spinning_up) + return + if(!power_supply || !power_supply.check_charge(charge_cost)) + handle_click_empty(user) + return + + playsound(src, 'sound/weapons/saberon.ogg', 100, 1) + spinning_up = TRUE + update_icon() + user.visible_message("[user] starts charging the [src]!", \ + "You start charging the [src]!") + if(do_after(user, 8, src)) + spinning_up = FALSE + ..() + else + spinning_up = FALSE + + + + +/obj/item/projectile/bullet/BFGtaser + name = "lightning ball" + icon = 'icons/obj/projectiles_vr.dmi' + icon_state = "minitesla" + speed=5 + damage = 100 + damage_type = AGONY + check_armour = "energy" + embed_chance = 0 + var/zaptype = /obj/item/projectile/beam/stun/weak + +/obj/item/projectile/bullet/BFGtaser/process() + var/list/victims = list() + for(var/mob/living/M in living_mobs(world.view)) + if(M != firer) + victims += M + if(LAZYLEN(victims)) + var/target = pick(victims) + var/obj/item/projectile/P = new zaptype(src.loc) + P.launch_projectile_from_turf(target = target, target_zone = null, user = firer, params = null, angle_override = null, forced_spread = 0) + ..() + +/obj/item/projectile/bullet/BFGtaser/on_hit() + var/list/victims = list() + for(var/mob/living/M in living_mobs(world.view)) + if(M != firer) + victims += M + if(LAZYLEN(victims)) + for(var/target in victims) + var/obj/item/projectile/P = new zaptype(src.loc) + P.launch_projectile_from_turf(target = target, target_zone = null, user = firer, params = null, angle_override = null, forced_spread = 0) + ..() \ No newline at end of file diff --git a/icons/obj/gun_vr.dmi b/icons/obj/gun_vr.dmi index e0788a56e9a..538ff61b764 100644 Binary files a/icons/obj/gun_vr.dmi and b/icons/obj/gun_vr.dmi differ diff --git a/icons/obj/projectiles_vr.dmi b/icons/obj/projectiles_vr.dmi index 7cdadb1a0e7..a274d3edc20 100644 Binary files a/icons/obj/projectiles_vr.dmi and b/icons/obj/projectiles_vr.dmi differ