mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
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:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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]\"";
|
||||
|
||||
@@ -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]\"";
|
||||
|
||||
|
||||
@@ -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]\"";
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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]"
|
||||
|
||||
Reference in New Issue
Block a user