Added in speech bubbles. By default, they are off. You have to go to the character setup window and toggle them on in order to see them.

Made it so the last exclamation mark when a silicon player exclaims something is not filtered out.

Removed xenomicrobes and wizarditis from metroid core reactions. Replaced xenomicrobes with Retrovirus.



git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1967 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
vageyenaman@gmail.com
2011-08-02 20:39:44 +00:00
parent 80d4e405b9
commit 0f3e6df66f
12 changed files with 124 additions and 10 deletions
+9 -5
View File
@@ -572,8 +572,7 @@ datum
var/virus = pick(/datum/disease/flu, /datum/disease/cold, \
/datum/disease/pierrot_throat, /datum/disease/fake_gbs, \
/datum/disease/brainrot, /datum/disease/wizarditis, \
/datum/disease/magnitis)
/datum/disease/brainrot, /datum/disease/magnitis)
var/datum/disease/F = new virus(0)
@@ -607,14 +606,19 @@ datum
result_amount = 2
required_container = /obj/item/metroid_core
required_other = 5
metroidxeno
name = "Metroid Xeno"
metroidretro
name = "Metroid Retro"
id = "m_xeno"
result = "xenomicrobes"
result = null
required_reagents = list("sugar" = 1)
result_amount = 1
required_container = /obj/item/metroid_core
required_other = 5
on_reaction(var/datum/reagents/holder, var/created_volume)
var/datum/disease/F = new /datum/disease/dna_retrovirus(0)
var/list/data = list("viruses"= list(F))
holder.add_reagent("blood", 20, data)
metroidfoam
name = "Metroid Foam"
id = "m_foam"
+74 -1
View File
@@ -305,6 +305,47 @@
for (var/mob/M in heard_a)
M.show_message(rendered, 2)
if(M.client)
spawn()
var/isbot = ""
if(istype(src, /mob/living/silicon))
isbot = "bot"
var/speechtype = "say"
var/ending = copytext(message, length(message))
if (ending == "?")
speechtype = "question"
else if (ending == "!")
speechtype = "exclamation"
if(istype(M, /mob/living))
if(M:ear_deaf && speechtype == "question")
speechtype = "say"
var/obj/speech_bubble/B = new/obj/speech_bubble
B.icon = 'speechbubble.dmi'
B.parent = src
B.mouse_opacity = 0
B.invisibility = invisibility
B.layer = 10
if(!M.client.bubbles || M == src)
var/image/I = image('speechbubble.dmi', B, "override")
I.override = 1
M << I
flick("[isbot][speechtype]", B)
if(istype(loc, /turf))
B.loc = loc
else
B.loc = loc.loc
sleep(11)
del(B)
/*
for(var/obj/O in M) // This is terribly costly for such a unique circumstance, should probably do this a different way in the future -- TLE
if(istype(O, /obj/item/device/aicard))
@@ -329,5 +370,37 @@
for (var/mob/M in heard_b)
M.show_message(rendered, 2)
if(M.client)
spawn()
var/isbot = ""
if(istype(src, /mob/living/silicon))
isbot = "bot"
log_say("[name]/[key] : [message]")
var/obj/speech_bubble/B = new/obj/speech_bubble
B.icon = 'speechbubble.dmi'
B.parent = src
B.mouse_opacity = 0
B.invisibility = invisibility
B.layer = 10
if(!M.client.bubbles || M == src)
var/image/I = image('speechbubble.dmi', B, "override")
I.override = 1
M << I
flick("[isbot]say", B)
if(istype(loc, /turf))
B.loc = loc
else
B.loc = loc.loc
sleep(11)
del(B)
log_say("[name]/[key] : [message]")
/obj/speech_bubble
var/mob/parent
+1 -1
View File
@@ -13,6 +13,6 @@
if (ending == "?")
return "queries, \"[text]\"";
else if (ending == "!")
return "declares, \"[copytext(text, 1, length(text))]\"";
return "declares, \"[text]\"";
return "states, \"[text]\"";
+1 -1
View File
@@ -19,7 +19,7 @@
if (ending == "?")
return "[src.speakQuery], \"[text]\"";
else if (ending == "!")
return "[src.speakExclamation], \"[copytext(text, 1, length(text))]\"";
return "[src.speakExclamation], \"[text]\"";
return "[src.speakStatement], \"[text]\"";
+1 -1
View File
@@ -15,6 +15,6 @@
if (ending == "?")
return "queries, \"[text]\"";
else if (ending == "!")
return "declares, \"[copytext(text, 1, length(text))]\"";
return "declares, \"[text]\"";
return "states, \"[text]\"";
+4
View File
@@ -1926,6 +1926,10 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
step(mob, pick(cardinal))
else
. = ..()
for(var/obj/speech_bubble/S in range(1, mob))
if(S.parent == mob)
S.loc = mob.loc
moving = null
return .
else
@@ -40,6 +40,7 @@ datum/preferences
var/ooccolor = "#b82e00"
var/be_random_name = 0
var/underwear = 1
var/bubbles = 0 // 0 if the player doesn't want bubbles to appear
var/occupation[] = list("No Preference", "No Preference", "No Preference")
var/datum/jobs/wanted_jobs = list()
@@ -391,6 +392,7 @@ datum/preferences
dat += "<br>"
dat += "<b>UI Style:</b> <a href=\"byond://?src=\ref[user];preferences=1;UI=input\"><b>[UI == UI_NEW ? "New" : "Old"]</b></a><br>"
dat += "<b>Play admin midis:</b> <a href=\"byond://?src=\ref[user];preferences=1;midis=input\"><b>[midis == 1 ? "Yes" : "No"]</b></a><br>"
dat += "<b>Show chat bubbles:</b> <a href=\"byond://?src=\ref[user];preferences=1;bubbles=input\"><b>[bubbles == 1 ? "Yes" : "No"]</b></a><br>"
if(user.client.holder)
if(user.client.holder.rank)
@@ -793,6 +795,9 @@ datum/preferences
if (link_tags["midis"])
midis = (midis+1)%2
if (link_tags["bubbles"])
bubbles = !bubbles
if (link_tags["underwear"])
if(!IsGuestKey(user.key))
switch(link_tags["underwear"])
@@ -848,6 +853,7 @@ datum/preferences
b_type = "A+"
UI = UI_OLD
midis = 1
bubbles = 1
ShowChoices(user)
@@ -944,6 +950,7 @@ datum/preferences
spawn(10)
if(character&&character.client)
character.client.midis = midis
character.client.bubbles = bubbles
character.client.ooccolor = ooccolor
character.client.be_alien = be_special&BE_ALIEN
+3 -1
View File
@@ -46,6 +46,7 @@ datum/preferences/proc/savefile_save(mob/user)
//world << "DEBUG: saving UI as [UI]"
//F["be_alien"] << src.be_alien // Urist
F["midis"] << src.midis // Urist
F["bubbles"] << src.bubbles // Doohl
F["ooccolor"] << src.ooccolor // Urist
F["lastchangelog"] << src.lastchangelog // rastaf0
@@ -101,10 +102,11 @@ datum/preferences/proc/savefile_load(mob/user, var/silent = 1)
F["name_is_always_random"] >> src.be_random_name
//F["be_alien"] >> src.be_alien // Urist
F["midis"] >> src.midis // Urist
F["bubbles"] >> src.bubbles // Doohl
F["ooccolor"] >> src.ooccolor // Urist
F["lastchangelog"] >> src.lastchangelog // rastaf0
if (version<=2) // migration from old preferences file format --rastaf0
src.UI = 0 // swithing from storing an image file to storing boolean value --rastaf0
//world << "DEBUG: loading legacy UI as [UI]"