mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
DRAGnet; new sprite, new functionality (#90713)
## About The Pull Request  New sprites for the DRAGnet, coming alongside some functionaltiy changes. DRAGnets are now bulky, and do not fit in backpacks. They also cannot be dual-wielded. DRAGnet no longer have the trap snare functionality. You know, the infamous bola bullet. DRAGnets now have two functions; The first function is straight up a scatter disabler blast that does a total of 55 stamina damage point blank (it's like, 5 less than what it did before). The second function is a single bolt that, when it hits a living mob, dealing 30 damage and staggering it briefly slowing it down. It also places down a wide net of transportation fields around the target, much like the net functionality does on live (but that's attached to the scatter function, not the single bolt)  ### Misc Changes DRAGnets now cost more form cargo, at 3600 credits. (This barely matters for departmental orders) ## Why It's Good For The Game The sprite is ancient. Like nearing two decades old ancient. I believe the INTENTION was this thing  It didn't really work out that way.  Either way, the new sprite is cool and more unique in my opinion. Fitting its status as an energy weapon. As for balance changes; I've wanted to do this for a very long time but put it off a lot. I think this is about the most moderate approach I have. It otherwise functions pretty much as expected, maintaining the cool niche functionality while exorcising the problem bits; one-handed energy shotgun bit, and the bola shot bit. I think I've spent at least the last...four or so years hammering on about the horror that is this gun for balance? And even when it was seeing more widespread use from people who recognized how bullshit it really was, I didn't really want to get rid of the bit I actually quite liked, which was the teleportation field. I'm happy with this version. ## Changelog 🆑 NecromancerAnne (Code, Mild Sprite Edits) Michiyamenotehifunana (Sprites) image: Replaces the decrepit DRAGnet sprite with something newer and more interesting. balance: Completely reworks the DRAGnet. They are now bulky energy guns. balance: Snare is now a single shot bolt that deals 30 stamina force, staggers the target and lays out a net of teleportation fields that can transport anyone standing on them for too long to a DRAGnet beacon. balance: Net has been replaced with a scattershot disabler round. /🆑
This commit is contained in:
@@ -50,15 +50,15 @@
|
||||
select_name = "goddamn meteor"
|
||||
newtonian_force = 3
|
||||
|
||||
/obj/item/ammo_casing/energy/net
|
||||
projectile_type = /obj/projectile/energy/net
|
||||
select_name = "netting"
|
||||
pellets = 6
|
||||
variance = 40
|
||||
/obj/item/ammo_casing/energy/scatter
|
||||
projectile_type = /obj/projectile/beam/disabler/scatter
|
||||
select_name = "scatter"
|
||||
pellets = 10
|
||||
variance = 10
|
||||
harmful = FALSE
|
||||
|
||||
/obj/item/ammo_casing/energy/trap
|
||||
projectile_type = /obj/projectile/energy/trap
|
||||
/obj/item/ammo_casing/energy/snare
|
||||
projectile_type = /obj/projectile/energy/snare
|
||||
select_name = "snare"
|
||||
harmful = FALSE
|
||||
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
var/single_shot_type_overlay = TRUE
|
||||
///Should we give an overlay to empty guns?
|
||||
var/display_empty = TRUE
|
||||
///If we have an additional overlay based on our shot type while active
|
||||
var/shot_type_fluff_overlay = FALSE
|
||||
|
||||
///whether the gun's cell drains the cyborg user's cell to recharge
|
||||
var/use_cyborg_cell = FALSE
|
||||
@@ -256,8 +258,9 @@
|
||||
return
|
||||
|
||||
var/overlay_icon_state = "[icon_state]_charge"
|
||||
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
|
||||
|
||||
if(modifystate)
|
||||
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
|
||||
if(single_shot_type_overlay)
|
||||
. += "[icon_state]_[initial(shot.select_name)]"
|
||||
overlay_icon_state += "_[initial(shot.select_name)]"
|
||||
@@ -266,6 +269,10 @@
|
||||
if(ratio == 0 && display_empty)
|
||||
. += "[icon_state]_empty"
|
||||
return
|
||||
|
||||
if(shot_type_fluff_overlay)
|
||||
. += "[icon_state]_[initial(shot.select_name)]_extra"
|
||||
|
||||
if(shaded_charge)
|
||||
. += "[icon_state]_charge[ratio]"
|
||||
return
|
||||
|
||||
@@ -85,16 +85,23 @@
|
||||
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
|
||||
|
||||
/obj/item/gun/energy/e_gun/dragnet
|
||||
name = "\improper DRAGnet"
|
||||
desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology. Can be synced with a DRAGnet beacon to set a teleport destination for snare rounds."
|
||||
name = "\improper DRAGnet translocation shotgun"
|
||||
desc = "The \"Dynamic Rapid-Apprehension of the Guilty Network\" translocation shotgun (or DRAGnet for short) is a revolution in law enforcement technology. \
|
||||
By syncing the weapon to a DRAGnet beacon, the bluespace transportation fields produced by the weapon's 'snare' function can rapidly exfiltrate an entire \
|
||||
security squad, with criminal in tow. Otherwise, the weapon is an entirely nonlethal apprehension tool. Exceptionally useful for nonlethal close-quarters battle."
|
||||
icon_state = "dragnet"
|
||||
inhand_icon_state = "dragnet"
|
||||
worn_icon_state = "dragnet"
|
||||
base_icon_state = "dragnet"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/net, /obj/item/ammo_casing/energy/trap)
|
||||
modifystate = FALSE
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
ammo_x_offset = 1
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/scatter, /obj/item/ammo_casing/energy/snare)
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
weapon_weight = WEAPON_MEDIUM
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
ammo_y_offset = 1
|
||||
ammo_x_offset = 0
|
||||
charge_sections = 3
|
||||
shot_type_fluff_overlay = TRUE
|
||||
///A dragnet beacon set to be the teleport destination for snare teleport rounds.
|
||||
var/obj/item/dragnet_beacon/linked_beacon
|
||||
|
||||
@@ -124,11 +131,6 @@
|
||||
visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!"))
|
||||
linked_beacon = null
|
||||
|
||||
/obj/item/gun/energy/e_gun/dragnet/snare
|
||||
name = "Energy Snare Launcher"
|
||||
desc = "Fires an energy snare that slows the target down."
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/trap)
|
||||
|
||||
/obj/item/gun/energy/e_gun/turret
|
||||
name = "hybrid turret gun"
|
||||
desc = "A heavy hybrid energy cannon with two settings: Stun and kill."
|
||||
|
||||
@@ -202,7 +202,6 @@
|
||||
/obj/projectile/bullet/mime,
|
||||
/obj/projectile/curse_hand,
|
||||
/obj/projectile/energy/electrode,
|
||||
/obj/projectile/energy/net,
|
||||
/obj/projectile/energy/nuclear_particle,
|
||||
/obj/projectile/gravityattract,
|
||||
/obj/projectile/gravitychaos,
|
||||
|
||||
@@ -145,6 +145,17 @@
|
||||
/obj/projectile/beam/disabler/weak
|
||||
damage = 15
|
||||
|
||||
/obj/projectile/beam/disabler/scatter
|
||||
name = "scatter disabler"
|
||||
icon_state = "scatterdisabler"
|
||||
damage = 5.5
|
||||
damage_falloff_tile = -0.5
|
||||
speed = 1.2
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser
|
||||
tracer_type = /obj/effect/projectile/tracer/xray
|
||||
muzzle_type = /obj/effect/projectile/muzzle/xray
|
||||
impact_type = /obj/effect/projectile/impact/xray
|
||||
|
||||
/obj/projectile/beam/disabler/smoothbore
|
||||
name = "unfocused disabler beam"
|
||||
weak_against_armour = TRUE
|
||||
|
||||
@@ -1,28 +1,32 @@
|
||||
/obj/projectile/energy/net
|
||||
name = "energy netting"
|
||||
/obj/projectile/energy/snare
|
||||
name = "energy snare"
|
||||
icon_state = "e_netting"
|
||||
damage = 10
|
||||
damage = 30
|
||||
damage_type = STAMINA
|
||||
hitsound = 'sound/items/weapons/taserhit.ogg'
|
||||
range = 10
|
||||
|
||||
/obj/projectile/energy/net/Initialize(mapload)
|
||||
/obj/projectile/energy/snare/Initialize(mapload)
|
||||
. = ..()
|
||||
SpinAnimation()
|
||||
|
||||
/obj/projectile/energy/net/on_hit(atom/target, blocked = 0, pierce_hit)
|
||||
/obj/projectile/energy/snare/on_hit(atom/target, blocked = 0, pierce_hit)
|
||||
var/obj/item/dragnet_beacon/destination_beacon = null
|
||||
var/obj/item/gun/energy/e_gun/dragnet/our_dragnet = fired_from
|
||||
if(our_dragnet && istype(our_dragnet))
|
||||
destination_beacon = our_dragnet.linked_beacon
|
||||
|
||||
if(isliving(target))
|
||||
var/turf/Tloc = get_turf(target)
|
||||
if(!locate(/obj/effect/nettingportal) in Tloc)
|
||||
new /obj/effect/nettingportal(Tloc, destination_beacon)
|
||||
var/mob/living/living_target = target
|
||||
living_target.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH * 0.5, 5 SECONDS)
|
||||
for(var/turf/trapped_turf in range(1, get_turf(living_target)))
|
||||
if(trapped_turf.density)
|
||||
continue
|
||||
new /obj/effect/nettingportal(trapped_turf, destination_beacon)
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/projectile/energy/net/on_range()
|
||||
/obj/projectile/energy/snare/on_range()
|
||||
do_sparks(1, TRUE, src)
|
||||
. = ..()
|
||||
|
||||
@@ -114,41 +118,3 @@
|
||||
do_sparks(3, TRUE, src)
|
||||
balloon_alert(user, "beacon unlocked")
|
||||
return TRUE
|
||||
|
||||
/obj/projectile/energy/trap
|
||||
name = "energy snare"
|
||||
icon_state = "e_snare"
|
||||
hitsound = 'sound/items/weapons/taserhit.ogg'
|
||||
range = 4
|
||||
|
||||
/obj/projectile/energy/trap/on_hit(atom/target, blocked = 0, pierce_hit)
|
||||
if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - drop a trap
|
||||
new/obj/item/restraints/legcuffs/beartrap/energy(get_turf(loc))
|
||||
else if(iscarbon(target))
|
||||
var/obj/item/restraints/legcuffs/beartrap/B = new /obj/item/restraints/legcuffs/beartrap/energy(get_turf(target))
|
||||
B.spring_trap(target)
|
||||
. = ..()
|
||||
|
||||
/obj/projectile/energy/trap/on_range()
|
||||
new /obj/item/restraints/legcuffs/beartrap/energy(loc)
|
||||
..()
|
||||
|
||||
/obj/projectile/energy/trap/cyborg
|
||||
name = "Energy Bola"
|
||||
icon_state = "e_snare"
|
||||
hitsound = 'sound/items/weapons/taserhit.ogg'
|
||||
range = 10
|
||||
|
||||
/obj/projectile/energy/trap/cyborg/on_hit(atom/target, blocked = 0, pierce_hit)
|
||||
if(!ismob(target) || blocked >= 100)
|
||||
do_sparks(1, TRUE, src)
|
||||
qdel(src)
|
||||
if(iscarbon(target))
|
||||
var/obj/item/restraints/legcuffs/beartrap/B = new /obj/item/restraints/legcuffs/beartrap/energy/cyborg(get_turf(target))
|
||||
B.spring_trap(target)
|
||||
QDEL_IN(src, 10)
|
||||
. = ..()
|
||||
|
||||
/obj/projectile/energy/trap/cyborg/on_range()
|
||||
do_sparks(1, TRUE, src)
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user