Files
Bubberstation/code/modules/projectiles/projectile/energy/net_snare.dm
grungussuss 58501dce77 Reorganizes the sound folder (#86726)
## About The Pull Request

<details>

- renamed ai folder to announcer

-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer

- separated the ambience folder into ambience and instrumental
-- ambience --

- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it

-- instrumental --

- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)

-- items --

- moved secdeath to hailer
- moved surgery to handling

-- effects --

- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects

-- vehicles --

- moved mecha into vehicles


created mobs folder

-- mobs --

- moved creatures folder into mobs
- moved voice into mobs

renamed creatures to non-humanoids
renamed voice to humanoids

-- non-humanoids--

created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg

-- humanoids --




-- misc --

moved ghostwhisper to misc
moved insane_low_laugh to misc

I give up trying to document this.

</details>

- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc 
- [X] mobs
- [X] runtime
- [X] vehicles

- [ ] attributions

## Why It's Good For The Game

This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.

## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
2024-09-23 22:24:50 -07:00

155 lines
4.8 KiB
Plaintext

/obj/projectile/energy/net
name = "energy netting"
icon_state = "e_netting"
damage = 10
damage_type = STAMINA
hitsound = 'sound/items/weapons/taserhit.ogg'
range = 10
/obj/projectile/energy/net/Initialize(mapload)
. = ..()
SpinAnimation()
/obj/projectile/energy/net/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)
. = ..()
/obj/projectile/energy/net/on_range()
do_sparks(1, TRUE, src)
. = ..()
/obj/effect/nettingportal
name = "DRAGnet teleportation field"
desc = "A field of bluespace energy, locking on to teleport a target."
icon = 'icons/effects/effects.dmi'
icon_state = "dragnetfield"
light_range = 3
anchored = TRUE
/obj/effect/nettingportal/Initialize(mapload, destination_beacon)
. = ..()
var/obj/item/dragnet_beacon/teletarget = destination_beacon
addtimer(CALLBACK(src, PROC_REF(pop), teletarget), 3 SECONDS)
/obj/effect/nettingportal/proc/pop(teletarget)
if(teletarget)
for(var/mob/living/living_mob in get_turf(src))
do_teleport(living_mob, get_turf(teletarget), 1, channel = TELEPORT_CHANNEL_BLUESPACE) //Teleport what's in the tile to the beacon
else
for(var/mob/living/living_mob in get_turf(src))
do_teleport(living_mob, get_turf(living_mob), 15, channel = TELEPORT_CHANNEL_BLUESPACE) //Otherwise it just warps you off somewhere.
qdel(src)
/obj/effect/nettingportal/singularity_act()
return
/obj/effect/nettingportal/singularity_pull()
return
/obj/item/dragnet_beacon
name = "\improper DRAGnet beacon"
desc = "Can be synced with a DRAGnet to set it as a designated teleporting point."
icon = 'icons/obj/devices/tracker.dmi'
icon_state = "dragnet_beacon"
inhand_icon_state = "beacon"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
///Has a security ID been used to lock this in place?
var/locked = FALSE
/obj/item/dragnet_beacon/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
if(istype(tool, /obj/item/gun/energy/e_gun/dragnet))
var/obj/item/gun/energy/e_gun/dragnet/dragnet_to_link = tool
dragnet_to_link.link_beacon(user, src)
return
if(isidcard(tool))
if(!anchored)
balloon_alert(user, "wrench the beacon first!")
return
if(obj_flags & EMAGGED)
balloon_alert(user, "the access control is fried!")
return
var/obj/item/card/id/id_card = tool
if((ACCESS_SECURITY in id_card.GetAccess()))
locked = !locked
balloon_alert(user, "beacon [locked ? "locked" : "unlocked"]")
else
balloon_alert(user, "no access!")
/obj/item/dragnet_beacon/wrench_act(mob/living/user, obj/item/tool)
if(user.is_holding(src))
balloon_alert(user, "put it down first!")
return ITEM_INTERACT_BLOCKING
if(anchored && locked)
balloon_alert(user, "must be unlocked first!")
return ITEM_INTERACT_BLOCKING
if(isinspace() && !anchored)
balloon_alert(user, "nothing to anchor to!")
return ITEM_INTERACT_BLOCKING
set_anchored(!anchored)
tool.play_tool_sound(src, 75)
user.balloon_alert_to_viewers("[anchored ? "anchored" : "unanchored"]")
/obj/item/dragnet_beacon/emag_act(mob/user, obj/item/card/emag/emag_card)
if(obj_flags & EMAGGED)
return FALSE
obj_flags |= EMAGGED
locked = FALSE
set_anchored(FALSE)
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)