mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-30 00:30:06 +01:00
Ambiance and Sound Updates
All living mobs will now have a check run every 30 seconds or so to replay the current ambience of the area they're in, if they've not had it played in the last minute. Said check is a 35% chance of playing the ambience. Good for if you're standing around in one area. Computers + turrets got new sounds, turrets have a deploy, retract, and rotate sound. Arcade machines now play sound effects depending on what step you're on and what you're doing. Replaced maintenance ambience with different ambience from Paradise/Aurora, and moved our maintenance to foreboding, and moved old foreboding to it's own folder.
This commit is contained in:
@@ -123,8 +123,7 @@
|
||||
'sound/ambience/maintenance/maintenance2.ogg',\
|
||||
'sound/ambience/maintenance/maintenance3.ogg',\
|
||||
'sound/ambience/maintenance/maintenance4.ogg',\
|
||||
'sound/ambience/maintenance/maintenance5.ogg',\
|
||||
'sound/ambience/maintenance/maintenance6.ogg'\
|
||||
'sound/ambience/maintenance/maintenance5.ogg'\
|
||||
)
|
||||
|
||||
// Life support machinery at work, keeping everyone breathing.
|
||||
@@ -154,7 +153,11 @@
|
||||
// Concerning sounds, for when one discovers something horrible happened in a PoI.
|
||||
#define AMBIENCE_FOREBODING list(\
|
||||
'sound/ambience/foreboding/foreboding1.ogg',\
|
||||
'sound/ambience/foreboding/foreboding2.ogg'\
|
||||
'sound/ambience/foreboding/foreboding2.ogg',\
|
||||
'sound/ambience/foreboding/foreboding3.ogg',\
|
||||
'sound/ambience/foreboding/foreboding4.ogg',\
|
||||
'sound/ambience/foreboding/foreboding5.ogg',\
|
||||
'sound/ambience/foreboding/foreboding6.ogg'\
|
||||
)
|
||||
|
||||
// Ambience heard when aboveground on Sif and not in a Point of Interest.
|
||||
|
||||
@@ -355,6 +355,7 @@ var/list/mob/living/forced_ambiance_list = new
|
||||
L.update_floating( L.Check_Dense_Object() )
|
||||
|
||||
L.lastarea = newarea
|
||||
L.lastareachange = world.time
|
||||
play_ambience(L)
|
||||
|
||||
/area/proc/play_ambience(var/mob/living/L)
|
||||
|
||||
@@ -156,6 +156,7 @@
|
||||
blocked = 1
|
||||
var/attackamt = rand(2,6)
|
||||
temp = "You attack for [attackamt] damage!"
|
||||
playsound(src, 'sound/arcade/hit.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
if(turtle > 0)
|
||||
turtle--
|
||||
|
||||
@@ -168,6 +169,7 @@
|
||||
var/pointamt = rand(1,3)
|
||||
var/healamt = rand(6,8)
|
||||
temp = "You use [pointamt] magic to heal for [healamt] damage!"
|
||||
playsound(src, 'sound/arcade/heal.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
turtle++
|
||||
|
||||
sleep(10)
|
||||
@@ -180,6 +182,7 @@
|
||||
blocked = 1
|
||||
var/chargeamt = rand(4,7)
|
||||
temp = "You regain [chargeamt] points"
|
||||
playsound(src, 'sound/arcade/mana.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
player_mp += chargeamt
|
||||
if(turtle > 0)
|
||||
turtle--
|
||||
@@ -210,6 +213,7 @@
|
||||
if(!gameover)
|
||||
gameover = 1
|
||||
temp = "[enemy_name] has fallen! Rejoice!"
|
||||
playsound(src, 'sound/arcade/win.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
|
||||
if(emagged)
|
||||
feedback_inc("arcade_win_emagged")
|
||||
@@ -230,11 +234,13 @@
|
||||
else if (emagged && (turtle >= 4))
|
||||
var/boomamt = rand(5,10)
|
||||
enemy_action = "[enemy_name] throws a bomb, exploding you for [boomamt] damage!"
|
||||
playsound(src, 'sound/arcade/boom.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
player_hp -= boomamt
|
||||
|
||||
else if ((enemy_mp <= 5) && (prob(70)))
|
||||
var/stealamt = rand(2,3)
|
||||
enemy_action = "[enemy_name] steals [stealamt] of your power!"
|
||||
playsound(src, 'sound/arcade/steal.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
player_mp -= stealamt
|
||||
|
||||
if (player_mp <= 0)
|
||||
@@ -249,17 +255,20 @@
|
||||
|
||||
else if ((enemy_hp <= 10) && (enemy_mp > 4))
|
||||
enemy_action = "[enemy_name] heals for 4 health!"
|
||||
playsound(src, 'sound/arcade/heal.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
enemy_hp += 4
|
||||
enemy_mp -= 4
|
||||
|
||||
else
|
||||
var/attackamt = rand(3,6)
|
||||
enemy_action = "[enemy_name] attacks for [attackamt] damage!"
|
||||
playsound(src, 'sound/arcade/hit.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
player_hp -= attackamt
|
||||
|
||||
if ((player_mp <= 0) || (player_hp <= 0))
|
||||
gameover = 1
|
||||
temp = "You have been crushed! GAME OVER"
|
||||
playsound(src, 'sound/arcade/lose.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
if(emagged)
|
||||
feedback_inc("arcade_loss_hp_emagged")
|
||||
usr.gib()
|
||||
@@ -393,6 +402,7 @@
|
||||
user.set_machine(src)
|
||||
var/dat = ""
|
||||
if(gameStatus == ORION_STATUS_GAMEOVER)
|
||||
playsound(src, 'sound/arcade/Ori_fail.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
dat = "<center><h1>Game Over</h1></center>"
|
||||
dat += "Like many before you, your crew never made it to Orion, lost to space... <br><b>forever</b>."
|
||||
if(settlers.len == 0)
|
||||
@@ -527,6 +537,7 @@
|
||||
|
||||
else if(href_list["newgame"]) //Reset everything
|
||||
if(gameStatus == ORION_STATUS_START)
|
||||
playsound(src, 'sound/arcade/Ori_begin.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
newgame()
|
||||
else if(href_list["menu"]) //back to the main menu
|
||||
if(gameStatus == ORION_STATUS_GAMEOVER)
|
||||
@@ -598,6 +609,7 @@
|
||||
|
||||
else if(href_list["killcrew"]) //shoot a crewmember
|
||||
if(gameStatus == ORION_STATUS_NORMAL || event == ORION_TRAIL_MUTINY)
|
||||
playsound(src, 'sound/arcade/kill_crew.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
var/sheriff = remove_crewmember() //I shot the sheriff
|
||||
var/mob/living/L = usr
|
||||
if(!istype(L))
|
||||
@@ -623,6 +635,7 @@
|
||||
else if(href_list["buycrew"]) //buy a crewmember
|
||||
if(gameStatus == ORION_STATUS_MARKET)
|
||||
if(!spaceport_raided && food >= 10 && fuel >= 10)
|
||||
playsound(src, 'sound/arcade/get_fuel.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
var/bought = add_crewmember()
|
||||
last_spaceport_action = "You hired [bought] as a new crewmember."
|
||||
fuel -= 10
|
||||
@@ -632,6 +645,7 @@
|
||||
else if(href_list["sellcrew"]) //sell a crewmember
|
||||
if(gameStatus == ORION_STATUS_MARKET)
|
||||
if(!spaceport_raided && settlers.len > 1)
|
||||
playsound(src, 'sound/arcade/lose_fuel.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
var/sold = remove_crewmember()
|
||||
last_spaceport_action = "You sold your crewmember, [sold]!"
|
||||
fuel += 7
|
||||
@@ -649,6 +663,7 @@
|
||||
else if(href_list["raid_spaceport"])
|
||||
if(gameStatus == ORION_STATUS_MARKET)
|
||||
if(!spaceport_raided)
|
||||
playsound(src, 'sound/arcade/raid.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
var/success = min(15 * alive,100) //default crew (4) have a 60% chance
|
||||
spaceport_raided = 1
|
||||
|
||||
@@ -687,6 +702,7 @@
|
||||
else if(href_list["buyparts"])
|
||||
if(gameStatus == ORION_STATUS_MARKET)
|
||||
if(!spaceport_raided && fuel > 5)
|
||||
playsound(src, 'sound/arcade/get_fuel.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
switch(text2num(href_list["buyparts"]))
|
||||
if(1) //Engine Parts
|
||||
engine++
|
||||
@@ -703,6 +719,7 @@
|
||||
else if(href_list["trade"])
|
||||
if(gameStatus == ORION_STATUS_MARKET)
|
||||
if(!spaceport_raided)
|
||||
playsound(src, 'sound/arcade/get_fuel.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
switch(text2num(href_list["trade"]))
|
||||
if(1) //Fuel
|
||||
if(fuel > 5)
|
||||
@@ -745,6 +762,7 @@
|
||||
canContinueEvent = 1
|
||||
|
||||
if(ORION_TRAIL_FLUX)
|
||||
playsound(src, 'sound/arcade/explo.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
eventdat += "This region of space is highly turbulent. <br>If we go slowly we may avoid more damage, but if we keep our speed we won't waste supplies."
|
||||
eventdat += "<br>What will you do?"
|
||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];slow=1'>Slow Down</a> <a href='byond://?src=\ref[src];keepspeed=1'>Continue</a></P>"
|
||||
@@ -759,6 +777,7 @@
|
||||
canContinueEvent = 1
|
||||
|
||||
if(ORION_TRAIL_BREAKDOWN)
|
||||
playsound(src, 'sound/arcade/explo.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
eventdat += "Oh no! The engine has broken down!"
|
||||
eventdat += "<br>You can repair it with an engine part, or you can make repairs for 3 days."
|
||||
if(engine >= 1)
|
||||
@@ -777,6 +796,7 @@
|
||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
||||
|
||||
if(ORION_TRAIL_COLLISION)
|
||||
playsound(src, 'sound/arcade/explo.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
eventdat += "Something hit us! Looks like there's some hull damage."
|
||||
if(prob(25))
|
||||
var/sfood = rand(5,15)
|
||||
@@ -992,6 +1012,7 @@
|
||||
/obj/machinery/computer/arcade/orion_trail/proc/win()
|
||||
gameStatus = ORION_STATUS_START
|
||||
src.visible_message("\The [src] plays a triumpant tune, stating 'CONGRATULATIONS, YOU HAVE MADE IT TO ORION.'")
|
||||
playsound(src, 'sound/arcade/Ori_win.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
if(emagged)
|
||||
new /obj/item/weapon/orion_ship(src.loc)
|
||||
message_admins("[key_name_admin(usr)] made it to Orion on an emagged machine and got an explosive toy ship.")
|
||||
|
||||
@@ -70,11 +70,13 @@
|
||||
set_light(0)
|
||||
if(icon_keyboard)
|
||||
add_overlay("[icon_keyboard]_off")
|
||||
playsound(src, 'sound/machines/terminal_off.ogg', 50, 1)
|
||||
// Yes power
|
||||
else
|
||||
if(icon_keyboard)
|
||||
add_overlay(icon_keyboard)
|
||||
set_light(light_range_on, light_power_on)
|
||||
playsound(src, 'sound/machines/terminal_on.ogg', 50, 1)
|
||||
|
||||
// Broken
|
||||
if(stat & BROKEN)
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
var/icon_state_opening = null
|
||||
var/icon_state_closed = null
|
||||
var/icon_state_closing = null
|
||||
var/open_sound = 'sound/machines/blastdooropen.ogg'
|
||||
var/close_sound = 'sound/machines/blastdoorclose.ogg'
|
||||
|
||||
closed_layer = ON_WINDOW_LAYER // Above airlocks when closed
|
||||
var/id = 1.0
|
||||
@@ -72,6 +74,7 @@
|
||||
// Description: Opens the door. No checks are done inside this proc.
|
||||
/obj/machinery/door/blast/proc/force_open()
|
||||
src.operating = 1
|
||||
playsound(src, open_sound, 100, 1)
|
||||
flick(icon_state_opening, src)
|
||||
src.density = 0
|
||||
update_nearby_tiles()
|
||||
@@ -86,6 +89,7 @@
|
||||
// Description: Closes the door. No checks are done inside this proc.
|
||||
/obj/machinery/door/blast/proc/force_close()
|
||||
src.operating = 1
|
||||
playsound(src, close_sound, 100, 1)
|
||||
src.layer = closed_layer
|
||||
flick(icon_state_closing, src)
|
||||
src.density = 1
|
||||
|
||||
@@ -822,6 +822,7 @@
|
||||
var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc)
|
||||
flick_holder.layer = layer + 0.1
|
||||
flick("popup_[turret_type]", flick_holder)
|
||||
playsound(src, 'sound/machines/turrets/turret_deploy.ogg', 100, 1)
|
||||
sleep(10)
|
||||
qdel(flick_holder)
|
||||
|
||||
@@ -843,6 +844,7 @@
|
||||
var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc)
|
||||
flick_holder.layer = layer + 0.1
|
||||
flick("popdown_[turret_type]", flick_holder)
|
||||
playsound(src, 'sound/machines/turrets/turret_retract.ogg', 100, 1)
|
||||
sleep(10)
|
||||
qdel(flick_holder)
|
||||
|
||||
@@ -863,6 +865,7 @@
|
||||
spawn()
|
||||
popUp() //pop the turret up if it's not already up.
|
||||
set_dir(get_dir(src, target)) //even if you can't shoot, follow the target
|
||||
playsound(src, 'sound/machines/turrets/turret_rotate.ogg', 100, 1) // Play rotating sound
|
||||
spawn()
|
||||
shootAt(target)
|
||||
return 1
|
||||
|
||||
@@ -44,7 +44,10 @@
|
||||
|
||||
//Check if we're on fire
|
||||
handle_fire()
|
||||
|
||||
|
||||
// Handle re-running ambience to mobs if they've remained in an area.
|
||||
handle_ambience()
|
||||
|
||||
//stuff in the stomach
|
||||
handle_stomach()
|
||||
|
||||
@@ -88,6 +91,12 @@
|
||||
/mob/living/proc/handle_stomach()
|
||||
return
|
||||
|
||||
/mob/living/proc/handle_ambience() // If you're in an ambient area and have not moved out of it for x time, we're going to play ambience again to you, to help break up the silence.
|
||||
if(world.time >= (lastareachange + 30 SECONDS)) // Every 30 seconds, we're going to run a 35% chance to play ambience.
|
||||
var/area/A = get_area(src)
|
||||
if(A)
|
||||
A.play_ambience(src)
|
||||
|
||||
/mob/living/proc/update_pulling()
|
||||
if(pulling)
|
||||
if(incapacitated())
|
||||
|
||||
@@ -181,6 +181,7 @@
|
||||
var/status_flags = CANSTUN|CANWEAKEN|CANPARALYSE|CANPUSH //bitflags defining which status effects can be inflicted (replaces canweaken, canstun, etc)
|
||||
|
||||
var/area/lastarea = null
|
||||
var/lastareachange = null
|
||||
|
||||
var/digitalcamo = 0 // Can they be tracked by the AI?
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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