From 75c7670e75f34b3a623afbfc67ac68f1ceec111e Mon Sep 17 00:00:00 2001 From: "vageyenaman@gmail.com" Date: Sat, 10 Dec 2011 19:34:49 +0000 Subject: [PATCH] TG update: Small changes and bugfixes: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ◦ Metroids can now be observed by ghosts. ◦ Saved User Interface preferences ("Old UI" & "New UI") now correctly get transferred to clones. ◦ Captain announcements now require the player to be next to the console. (Issue 220) ◦ Radio headsets no longer sometimes fail to deliver the messages (Issue 221) ◦ Some other insignificant back-end shenanigans. ◦ The pregame lobby now has title music. The gameticker chooses between two .ogg files on game start and plays that for everyone who joins. The music stops when create_character() gets called though. ◦ Gave some critters, namely "creature" and "blob" some attack sounds. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2655 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/procs/helpers.dm | 2 + code/game/gamemodes/gameticker.dm | 4 ++ code/game/machinery/cloning.dm | 10 +++-- .../game/machinery/computer/communications.dm | 2 +- code/game/objects/radio/radio.dm | 7 +++ code/game/verbs/sound.dm | 15 +++++++ code/modules/chemical/Chemistry-Recipes.dm | 43 +++++++++++++++---- code/modules/critters/critters.dm | 2 + code/modules/mob/living/say.dm | 2 + code/modules/mob/new_player/new_player.dm | 21 +++++++++ 10 files changed, 96 insertions(+), 12 deletions(-) diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm index b00ebb24c9..f40494225c 100644 --- a/code/defines/procs/helpers.dm +++ b/code/defines/procs/helpers.dm @@ -818,6 +818,8 @@ Turf and target are seperate in case you want to teleport some distance from a t mob_list.Add(M) for(var/mob/living/carbon/monkey/M in world) mob_list.Add(M) + for(var/mob/living/carbon/metroid/M in world) + mob_list.Add(M) // for(var/mob/living/silicon/hivebot/M in world) // mob_list.Add(M) // for(var/mob/living/silicon/hive_mainframe/M in world) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index f90d2615d6..fb9660d91f 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -15,6 +15,8 @@ var/global/datum/controller/gameticker/ticker var/event_time = null var/event = 0 + var/login_music // music played in pregame lobby + var/list/datum/mind/minds = list()//The people in the game. Used for objective tracking. var/Bible_icon_state // icon_state the chaplain has chosen for his bible @@ -26,7 +28,9 @@ var/global/datum/controller/gameticker/ticker var/pregame_timeleft = 0 + /datum/controller/gameticker/proc/pregame() + login_music = pick('title1.ogg', 'title2.ogg') // choose title music! do pregame_timeleft = 180 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 2d9c63a2c5..100b1434bb 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -447,8 +447,15 @@ src.eject_wait = 0 src.occupant = new /mob/living/carbon/human(src) + + occupant:UI = UI // set interface preference + ghost.client.mob = src.occupant + src.occupant.hud_used = new/obj/hud( src ) + // probably redundant because previous line calls mob/Login() which does this line of code + // but until this is proven useless keep it for safety - Doohl + src.icon_state = "pod_1" //Get the clone body ready src.occupant.rejuv = 10 @@ -503,9 +510,6 @@ // -- End mode specific stuff - occupant:UI = UI - - if(istype(ghost, /mob/dead/observer)) del(ghost) //Don't leave ghosts everywhere!! diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index f3ad8f9acd..2f01c34b02 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -96,7 +96,7 @@ if(src.authenticated==2) if(message_cooldown) return var/input = input(usr, "Please choose a message to announce to the station crew.", "What?", "") - if(!input) + if(!input || !(usr in view(1,src))) return captain_announce(input)//This should really tell who is, IE HoP, CE, HoS, RD, Captain log_say("[key_name(usr)] has made a captain announcement: [input]") diff --git a/code/game/objects/radio/radio.dm b/code/game/objects/radio/radio.dm index 1a0307fd97..b88f743a4f 100644 --- a/code/game/objects/radio/radio.dm +++ b/code/game/objects/radio/radio.dm @@ -367,9 +367,16 @@ return */ /obj/item/device/radio/proc/send_hear(freq) + /* + + I'm removing this because this is apparently a REALLY REALLY bad thing and causes + people's transmissions to get cut off. This also means radios have no delay. A + fair price to pay for reliable radios. -- Doohl + if(last_transmission && world.time < (last_transmission + TRANSMISSION_DELAY)) return last_transmission = world.time + */ if (!(wires & WIRE_RECEIVE)) return if (!freq) //recieved on main frequency diff --git a/code/game/verbs/sound.dm b/code/game/verbs/sound.dm index cced7b67b2..c2ae2911c6 100644 --- a/code/game/verbs/sound.dm +++ b/code/game/verbs/sound.dm @@ -13,4 +13,19 @@ M << sound(null, 0, 0, 777) // breaks the client's sound output on channel 777 M << "You will now [M.client.midis? "start":"stop"] receiving any sounds uploaded by admins[M.client.midis? "":", and any current midis playing have been disabled"]." + return + + + +/mob/verb/toggletitlemusic() + set category = "Special Verbs" + set name = "Toggle Pregame Music" + set desc = "Stops the pregame lobby music from playing." + + if(istype(usr,/mob/new_player)) + var/mob/M = usr + + if(M.client) + M << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // stop the jamsz + return \ No newline at end of file diff --git a/code/modules/chemical/Chemistry-Recipes.dm b/code/modules/chemical/Chemistry-Recipes.dm index 6c56857130..831f349c4f 100644 --- a/code/modules/chemical/Chemistry-Recipes.dm +++ b/code/modules/chemical/Chemistry-Recipes.dm @@ -526,9 +526,33 @@ datum /////////////////////////////////////METROID CORE REACTIONS /////////////////////////////// + metroidpepper + name = "Metroid Condensedcapaicin" + id = "m_condensedcapaicin" + result = "condensedcapsaicin" + required_reagents = list("sugar" = 1) + result_amount = 1 + required_container = /obj/item/metroid_core + required_other = 1 + metroidfrost + name = "Metroid Frost Oil" + id = "m_frostoil" + result = "frostoil" + required_reagents = list("water" = 1) + result_amount = 1 + required_container = /obj/item/metroid_core + required_other = 1 + metroidglycerol + name = "Metroid Glycerol" + id = "m_glycerol" + result = "glycerol" + required_reagents = list("blood" = 1) + result_amount = 1 + required_container = /obj/item/metroid_core + required_other = 1 metroid_explosion - name = "Explosion" + name = "Metroid Explosion" id = "m_explosion" result = null required_reagents = list("blood" = 1) @@ -633,9 +657,10 @@ datum playsound(TO, 'phasein.ogg', 100, 1) var/list/flashers = list() - for(var/mob/living/carbon/M in viewers(TO, null)) - flick("e_flash", M.flash) // flash dose faggots - flashers += M + for(var/mob/living/carbon/human/M in viewers(TO, null)) + if(M:eyecheck() <= 0) + flick("e_flash", M.flash) // flash dose faggots + flashers += M var/y_distance = TO.y - FROM.y var/x_distance = TO.x - FROM.x @@ -677,8 +702,9 @@ datum playsound(get_turf_loc(holder.my_atom), 'phasein.ogg', 100, 1) - for(var/mob/living/carbon/M in viewers(get_turf_loc(holder.my_atom), null)) - flick("e_flash", M.flash) + for(var/mob/living/carbon/human/M in viewers(get_turf_loc(holder.my_atom), null)) + if(M:eyecheck() <= 0) + flick("e_flash", M.flash) for(var/i = 1, i <= created_volume, i++) var/chosen = pick(critters) @@ -702,8 +728,9 @@ datum playsound(get_turf_loc(holder.my_atom), 'phasein.ogg', 100, 1) - for(var/mob/living/carbon/M in viewers(get_turf_loc(holder.my_atom), null)) - flick("e_flash", M.flash) + for(var/mob/living/carbon/human/M in viewers(get_turf_loc(holder.my_atom), null)) + if(M:eyecheck() <= 0) + flick("e_flash", M.flash) for(var/i = 1, i <= created_volume, i++) var/chosen = pick(borks) diff --git a/code/modules/critters/critters.dm b/code/modules/critters/critters.dm index 5163d264ce..d79500fe3f 100644 --- a/code/modules/critters/critters.dm +++ b/code/modules/critters/critters.dm @@ -20,6 +20,7 @@ melee_damage_upper = 50 angertext = "runs" attacktext = "chomps" + attack_sound = 'bite.ogg' /obj/effect/critter/roach @@ -122,6 +123,7 @@ melee_damage_upper = 8 angertext = "charges" attacktext = "hits" + attack_sound = 'genhit1.ogg' Die() ..() diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 72e10af6fa..200e9b6ef1 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -140,6 +140,7 @@ message = dd_replacetext(message, "grief", "grife") message = dd_replacetext(message, "space", "spess") message = dd_replacetext(message, "carp", "crap") + message = dd_replacetext(message, "reason", "raisin") if(prob(50)) message = uppertext(message) message += "[stutter(pick("!", "!!", "!!!"))]" @@ -174,6 +175,7 @@ message_range = 1 italics = 1 + if ("secure headset") if (src:l_ear && istype(src:l_ear,/obj/item/device/radio)) src:l_ear.talk_into(src, message, 1) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 057c76bb0f..0b53cb3e76 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -21,6 +21,8 @@ mind.key = key mind.current = src + spawn() Playmusic() // git some tunes up in heeyaa~ + var/starting_loc = pick(newplayer_start) if(!starting_loc) starting_loc = locate(1,1,1) loc = starting_loc @@ -94,6 +96,7 @@ src << browse_rsc('sos_14.png') //End PDA Resource Initialisation =====================================================> + Logout() ready = 0 ..() @@ -125,6 +128,21 @@ src << browse(output,"window=playersetup;size=250x233;can_close=0") return + proc/Playmusic() + while(!ticker) // wait for ticker to be created + sleep(1) + + var/waits = 0 + var/maxwaits = 100 + while(!ticker.login_music) + sleep(2) + + waits++ // prevents DDoSing the server via badminery + if(waits >= maxwaits) + break + + src << sound(ticker.login_music, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS + Stat() ..() @@ -343,6 +361,9 @@ else preferences.copy_to(new_character) + src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo + + new_character.dna.ready_dna(new_character) if(mind) mind.transfer_to(new_character)