mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 16:18:01 +01:00
[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:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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..."))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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.
Reference in New Issue
Block a user