TG update: Small changes and bugfixes:

◦ 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
This commit is contained in:
vageyenaman@gmail.com
2011-12-10 19:34:49 +00:00
committed by Albert Iordache
parent fac10fb031
commit 75c7670e75
10 changed files with 96 additions and 12 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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!!

View File

@@ -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]")

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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()
..()

View File

@@ -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)

View File

@@ -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)