[MIRROR] Portals now make sounds (#27701)

* Portals now make sounds (#83166)

## About The Pull Request
### New sounds:

https://drive.google.com/drive/folders/1vLoyxY93Qfe_GtCnetkEHLrkGYZ8S7nD?usp=sharing

Demo:

https://github.com/tgstation/tgstation/assets/96586172/2c468ab8-deea-4151-8d66-167b63fdda39

Changes teleporter,gulag teleporter, hand tele, bluespace teleport gun,
cultist teleport, experimental syndicate teleporter teleport sounds.
## Why It's Good For The Game
I think sounds are an integral part of immersion and having no cool
sci-fi noises for portals really spoils it.
## Changelog
🆑 grungussuss and Virgilcore
sound: portals now have a unique sound to them
/🆑

* Portals now make sounds

---------

Co-authored-by: Sadboysuss <96586172+Sadboysuss@users.noreply.github.com>
This commit is contained in:
SkyratBot
2024-05-15 22:28:47 -04:00
committed by GitHub
co-authored by Sadboysuss
parent 0678cfbff9
commit 1cfd96c899
16 changed files with 30 additions and 18 deletions
@@ -149,7 +149,7 @@
prisoner.Paralyze(40) // small travel dizziness
to_chat(prisoner, span_warning("The teleportation makes you a little dizzy."))
new /obj/effect/particle_effect/sparks(get_turf(prisoner))
playsound(src, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(src, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
if(teleporter.locked)
teleporter.locked = FALSE
teleporter.toggle_open()
+1
View File
@@ -50,6 +50,7 @@
to_chat(AM, span_warning("You can't use this here!"))
return
if(is_ready())
playsound(loc, "sound/effects/portal_travel.ogg", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
teleport(AM)
/obj/machinery/teleport/hub/attackby(obj/item/W, mob/user, params)
+7 -1
View File
@@ -42,7 +42,7 @@
/// Does this portal bypass teleport restrictions? like TRAIT_NO_TELEPORT and NOTELEPORT flags.
var/force_teleport = FALSE
/// Does this portal create spark effect when teleporting?
var/sparkless = FALSE
var/sparkless = TRUE
/// If FALSE, the wibble filter will not be applied to this portal (only a visual effect).
var/wibbles = TRUE
@@ -69,6 +69,7 @@
/obj/effect/portal/attackby(obj/item/W, mob/user, params)
if(user && Adjacent(user))
playsound(loc, "sound/effects/portal_travel.ogg" , 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
teleport(user)
return TRUE
@@ -78,6 +79,7 @@
return TRUE
/obj/effect/portal/Bumped(atom/movable/bumper)
playsound(loc, "sound/effects/portal_travel.ogg" , 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
teleport(bumper)
/obj/effect/portal/attack_hand(mob/user, list/modifiers)
@@ -85,10 +87,13 @@
if(.)
return
if(Adjacent(user))
playsound(loc, "sound/effects/portal_travel.ogg" , 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
teleport(user)
/obj/effect/portal/attack_robot(mob/living/user)
if(Adjacent(user))
playsound(loc, "sound/effects/portal_travel.ogg" , 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
teleport(user)
/obj/effect/portal/Initialize(mapload, _lifespan = 0, obj/effect/portal/_linked, automatic_link = FALSE, turf/hard_target_override)
@@ -121,6 +126,7 @@
QDEL_NULL(linked)
else
linked = null
playsound(loc, "sound/effects/portal_close.ogg" , 50, FALSE, SHORT_RANGE_SOUND_EXTRARANGE)
return ..()
/obj/effect/portal/attack_ghost(mob/dead/observer/O)
+2 -2
View File
@@ -33,7 +33,7 @@
/obj/item/stack/ore/bluespace_crystal/attack_self(mob/user)
user.visible_message(span_warning("[user] crushes [src]!"), span_danger("You crush [src]!"))
new /obj/effect/particle_effect/sparks(loc)
playsound(loc, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(loc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
blink_mob(user)
use(1)
@@ -45,7 +45,7 @@
visible_message(span_notice("[src] fizzles and disappears upon impact!"))
var/turf/T = get_turf(hit_atom)
new /obj/effect/particle_effect/sparks(T)
playsound(loc, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(loc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
if(isliving(hit_atom))
blink_mob(hit_atom)
use(1)
+9 -7
View File
@@ -143,6 +143,7 @@
if(is_parent_of_portal(target))
qdel(target)
to_chat(user, span_notice("You dispel [target] with \the [src]!"))
playsound(loc, "sound/effects/portal_close.ogg", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
return TRUE
return FALSE
@@ -163,6 +164,7 @@
try_create_portal_to(user, portal_location)
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
/obj/item/hand_tele/attack_self(mob/user)
@@ -257,7 +259,7 @@
var/list/obj/effect/portal/created = create_portal_pair(get_turf(user), get_teleport_turf(get_turf(teleport_target)), 300, 1, null)
if(LAZYLEN(created) != 2)
return
playsound(loc, pick("sound/effects/portal_open_1.ogg", "sound/effects/portal_open_2.ogg", "sound/effects/portal_open_3.ogg" ), 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
var/obj/effect/portal/portal1 = created[1]
var/obj/effect/portal/portal2 = created[2]
@@ -431,9 +433,9 @@
new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(current_location)
new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(destination)
make_bloods(current_location, destination, user)
playsound(current_location, SFX_SPARKS, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(current_location, 'sound/effects/portal_travel.ogg', 50, 1, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, 'sound/effects/phasein.ogg', 25, 1, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, SFX_SPARKS, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, 'sound/effects/portal_travel.ogg', 50, 1, SHORT_RANGE_SOUND_EXTRARANGE)
/obj/item/syndicate_teleporter/proc/malfunctioning(mob/guy_teleporting, turf/current_location)
var/area/current_area = get_area(current_location)
@@ -468,9 +470,9 @@
balloon_alert(user, "emergency teleport triggered!")
if (!HAS_TRAIT(user, TRAIT_NOBLOOD))
make_bloods(mobloc, emergency_destination, user)
playsound(mobloc, SFX_SPARKS, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(mobloc, 'sound/effects/portal_travel.ogg', 50, 1, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(emergency_destination, 'sound/effects/phasein.ogg', 25, 1, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(emergency_destination, SFX_SPARKS, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(emergency_destination, 'sound/effects/portal_travel.ogg', 50, 1, SHORT_RANGE_SOUND_EXTRARANGE)
else //We tried to save. We failed. Death time.
get_fragged(user, destination)
@@ -480,8 +482,8 @@
victim.forceMove(destination)
new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(mobloc)
new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(destination)
playsound(mobloc, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(mobloc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, "sound/magic/disintegrate.ogg", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
if(!not_holding_tele)
to_chat(victim, span_userdanger("You teleport into [destination], [src] tries to save you, but..."))
+3 -3
View File
@@ -236,13 +236,13 @@
switch(i)
if(1)
new /obj/effect/temp_visual/cult/sparks(mobloc, B.current.dir)
playsound(mobloc, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(mobloc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
if(2)
new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, B.current.dir)
playsound(mobloc, SFX_SPARKS, 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(mobloc, 'sound/effects/portal_travel.ogg', 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
if(3)
new /obj/effect/temp_visual/dir_setting/cult/phase(mobloc, B.current.dir)
playsound(mobloc, SFX_SPARKS, 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(mobloc, 'sound/effects/portal_travel.ogg', 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
if(4)
playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, TRUE)
if(B.current != owner)
+2 -2
View File
@@ -620,9 +620,9 @@ Striking a noncultist, however, will tear their flesh."}
new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, user_cultist.dir)
new /obj/effect/temp_visual/dir_setting/cult/phase(destination, user_cultist.dir)
playsound(mobloc, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(mobloc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, 'sound/effects/phasein.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
playsound(destination, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
/obj/item/flashlight/flare/culttorch
name = "void torch"
+1 -1
View File
@@ -545,7 +545,7 @@ structure_check() searches for nearby cultist structures required for the invoca
/obj/effect/rune/teleport/proc/handle_portal(portal_type, turf/origin)
var/turf/T = get_turf(src)
close_portal() // To avoid stacking descriptions/animations
playsound(T, pick('sound/effects/sparks1.ogg', 'sound/effects/sparks2.ogg', 'sound/effects/sparks3.ogg', 'sound/effects/sparks4.ogg'), 100, TRUE, 14)
playsound(T, 'sound/effects/portal_travel.ogg', 100, TRUE, 14)
inner_portal = new /obj/effect/temp_visual/cult/portal(T)
if(portal_type == "space")
set_light_color(color)
@@ -61,7 +61,7 @@
else if(adjacent)
try_move_adjacent(tunnel)
playsound(src,'sound/effects/sparks4.ogg',50,TRUE)
playsound(src, "sound/effects/portal_travel.ogg",50,TRUE)
qdel(src)
return FALSE // used for chasm code
@@ -29,4 +29,5 @@
return BULLET_ACT_BLOCK
. = ..()
playsound(loc, pick("sound/effects/portal_open1.ogg" , "sound/effects/portal_open2.ogg" , "sound/effects/portal_open3.ogg"), 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
projector.create_portal(src, get_turf(src))
+2
View File
@@ -171,3 +171,5 @@ lizard_laugh1.ogg: https://youtu.be/I7CX0AS8RNI , License: CC-BY-3.0
moth_laugh1.ogg: https://github.com/BeeStation/BeeStation-Hornet/blob/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d/sound/emotes/ , license: CC-BY-SA-3.0
whistle1.ogg: https://freesound.org/people/taure/sounds/411638/ , license: CC0 1.0 DEED
portal_close, portal_open_1 , portal_open_2 , portal_open_3 , portal_travel made by @virgilcore (discord IGN)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.