Merge branch 'master' into corporate-comms

This commit is contained in:
warior4356
2020-10-21 19:14:17 -07:00
164 changed files with 5595 additions and 3783 deletions
+47 -62
View File
@@ -5,20 +5,20 @@
*/
/datum/language
var/name = "an unknown language" // Fluff name of language if any.
var/desc = "A language." // Short description for 'Check Languages'.
var/speech_verb = "says" // 'says', 'hisses', 'farts'.
var/ask_verb = "asks" // Used when sentence ends in a ?
var/exclaim_verb = "exclaims" // Used when sentence ends in a !
var/whisper_verb // Optional. When not specified speech_verb + quietly/softly is used instead.
var/colour = "body" // CSS style to use for strings in this language.
var/key = "x" // Character used to speak in language eg. :o for Unathi.
var/flags = 0 // Various language flags.
var/native // If set, non-native speakers will have trouble speaking.
var/list/syllables // Used when scrambling text for a non-speaker.
var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string.
var/follow = 0 // Applies to HIVEMIND languages - should a follow link be included for dead mobs?
var/english_names = 0 // Do we want English names by default, no matter what?
var/name = "an unknown language" // Fluff name of language if any.
var/desc = "A language." // Short description for 'Check Languages'.
var/speech_verb = "says" // 'says', 'hisses', 'farts'.
var/ask_verb = "asks" // Used when sentence ends in a ?
var/list/exclaim_verbs = list("exclaims") // Used when sentence ends in a !
var/whisper_verb // Optional. When not specified speech_verb + quietly/softly is used instead.
var/colour = "body" // CSS style to use for strings in this language.
var/key = "x" // Character used to speak in language eg. :o for Unathi.
var/flags = 0 // Various language flags.
var/native // If set, non-native speakers will have trouble speaking.
var/list/syllables // Used when scrambling text for a non-speaker.
var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string.
var/follow = 0 // Applies to HIVEMIND languages - should a follow link be included for dead mobs?
var/english_names = 0 // Do we want English names by default, no matter what?
var/list/scramble_cache = list()
/datum/language/proc/get_random_name(gender, name_count=2, syllable_count=4)
@@ -124,7 +124,7 @@
/datum/language/proc/get_spoken_verb(msg_end)
switch(msg_end)
if("!")
return exclaim_verb
return pick(exclaim_verbs)
if("?")
return ask_verb
return speech_verb
@@ -151,7 +151,7 @@
desc = "The common language of Moghes, composed of sibilant hisses and rattles. Spoken natively by Unathi."
speech_verb = "hisses"
ask_verb = "hisses"
exclaim_verb = "roars"
exclaim_verbs = list("roars")
colour = "soghun"
key = "o"
flags = RESTRICTED
@@ -172,7 +172,7 @@
desc = "The traditionally employed tongue of Ahdomai, composed of expressive yowls and chirps. Native to the Tajaran."
speech_verb = "mrowls"
ask_verb = "mrowls"
exclaim_verb = "yowls"
exclaim_verbs = list("yowls")
colour = "tajaran"
key = "j"
flags = RESTRICTED
@@ -194,7 +194,7 @@
desc = "The guttural language spoken and utilized by the inhabitants of Vazzend system, composed of growls, barks, yaps, and heavy utilization of ears and tail movements.Vulpkanin speak this language with ease."
speech_verb = "rawrs"
ask_verb = "rurs"
exclaim_verb = "barks"
exclaim_verbs = list("barks")
colour = "vulpkanin"
key = "7"
flags = RESTRICTED
@@ -208,7 +208,7 @@
desc = "A melodic and complex language spoken by the Skrell of Qerrbalak. Some of the notes are inaudible to humans."
speech_verb = "warbles"
ask_verb = "warbles"
exclaim_verb = "warbles"
exclaim_verbs = list("warbles")
colour = "skrell"
key = "k"
flags = RESTRICTED
@@ -219,21 +219,21 @@
desc = "The common tongue of the various Vox ships making up the Shoal. It sounds like chaotic shrieking to everyone else."
speech_verb = "shrieks"
ask_verb = "creels"
exclaim_verb = "SHRIEKS"
exclaim_verbs = list("loudly skrees")
colour = "vox"
key = "v"
flags = RESTRICTED | WHITELISTED
syllables = list("ti","ti","ti","hi","hi","ki","ki","ki","ki","ya","ta","ha","ka","ya", "yi", "chi","cha","kah", \
syllables = list("ti","ti","ti","hi","hi","ki","ki","ki","ki","ya","ta","ha","ka","ya","yi","chi","cha","kah", \
"SKRE","AHK","EHK","RAWK","KRA","AAA","EEE","KI","II","KRI","KA")
/datum/language/vox/get_random_name()
var/sounds = rand(2, 8)
var/i = 0
var/newname = ""
var/static/list/vox_name_syllables = list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah")
while(i <= sounds)
i++
newname += pick(GLOB.vox_name_syllables)
newname += pick(vox_name_syllables)
return capitalize(newname)
/datum/language/diona
@@ -241,7 +241,7 @@
desc = "A creaking, subvocal language spoken instinctively by the Dionaea. Due to the unique makeup of the average Diona, a phrase of Rootspeak can be a combination of anywhere from one to twelve individual voices and notes."
speech_verb = "creaks and rustles"
ask_verb = "creaks"
exclaim_verb = "rustles"
exclaim_verbs = list("rustles")
colour = "diona"
key = "q"
flags = RESTRICTED
@@ -257,7 +257,7 @@
desc = "A modification of binary to allow fuzzy logic. 0 is no, 1 is maybe, 2 is yes. Credited with giving Machine People the ability to think creatively."
speech_verb = "states"
ask_verb = "queries"
exclaim_verb = "exclaims"
exclaim_verbs = list("exclaims")
colour = "trinary"
key = "5"
flags = RESTRICTED | WHITELISTED
@@ -274,9 +274,9 @@
/datum/language/kidan
name = "Chittin"
desc = "The noise made by rubbing its antennae together is actually a complex form of communication for Kidan."
speech_verb = "rubs its antennae together"
ask_verb = "rubs its antennae together"
exclaim_verb = "rubs its antennae together"
speech_verb = "rubs their antennae together"
ask_verb = "rubs their antennae together"
exclaim_verbs = list("rubs their antennae together")
colour = "kidan"
key = "4"
flags = RESTRICTED | WHITELISTED
@@ -296,7 +296,7 @@
desc = "The language of slimes. It's a mixture of bubbling noises and pops. Very difficult to speak without mechanical aid for humans."
speech_verb = "bubbles and pops"
ask_verb = "bubbles and pops"
exclaim_verb = "bubbles and pops"
exclaim_verbs = list("bubbles and pops")
colour = "slime"
key = "f"
flags = RESTRICTED | WHITELISTED
@@ -307,7 +307,7 @@
desc = "The grey's psionic communication, less potent version of their distant cousin's telepathy. Talk to other greys within a limited radius."
speech_verb = "expresses"
ask_verb = "inquires"
exclaim_verb = "imparts"
exclaim_verbs = list("imparts")
colour = "abductor"
key = "^"
flags = RESTRICTED | HIVEMIND
@@ -341,7 +341,7 @@
desc = "The droning, vibrous language of the Drask. It sounds somewhat like whalesong."
speech_verb = "drones"
ask_verb = "hums"
exclaim_verb = "rumbles"
exclaim_verbs = list("rumbles")
colour = "drask"
key = "%"
flags = RESTRICTED | WHITELISTED
@@ -357,25 +357,18 @@
name = "Galactic Common"
desc = "The common galactic tongue."
speech_verb = "says"
exclaim_verbs = list("exclaims", "shouts", "yells")
whisper_verb = "whispers"
key = "9"
flags = RESTRICTED
syllables = list("blah","blah","blah","bleh","meh","neh","nah","wah")
english_names = 1
//TODO flag certain languages to use the mob-type specific say_quote and then get rid of these.
/datum/language/common/get_spoken_verb(msg_end)
switch(msg_end)
if("!")
return pick("exclaims","shouts","yells") //TODO: make the basic proc handle lists of verbs.
if("?")
return ask_verb
return speech_verb
/datum/language/human
name = "Sol Common"
desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system."
speech_verb = "says"
exclaim_verbs = list("exclaims", "shouts", "yells")
whisper_verb = "whispers"
colour = "solcom"
key = "1"
@@ -383,14 +376,6 @@
syllables = list("tao","shi","tzu","yi","com","be","is","i","op","vi","ed","lec","mo","cle","te","dis","e")
english_names = 1
/datum/language/human/get_spoken_verb(msg_end)
switch(msg_end)
if("!")
return pick("exclaims","shouts","yells") //TODO: make the basic proc handle lists of verbs.
if("?")
return ask_verb
return speech_verb
// Galactic common languages (systemwide accepted standards).
/datum/language/trader
name = "Tradeband"
@@ -413,7 +398,7 @@
desc = "Much like Standard, this crude pidgin tongue descended from numerous languages and serves as Tradeband for criminal elements."
speech_verb = "growls"
ask_verb = "gnarls"
exclaim_verb = "snarls"
exclaim_verbs = list("snarls")
colour = "gutter"
key = "3"
syllables = list ("gra","ba","ba","breh","bra","rah","dur","ra","ro","gro","go","ber","bar","geh","heh","gra")
@@ -423,7 +408,7 @@
desc = "The language of clown planet. Mother tongue of clowns throughout the Galaxy."
speech_verb = "honks"
ask_verb = "honks"
exclaim_verb = "honks"
exclaim_verbs = list("toots", "wubs", "honks")
colour = "clown"
key = "0"
syllables = list ("honk","squeak","bonk","toot","narf","zub","wee","wub","norf")
@@ -433,7 +418,7 @@
desc = "Neo-Russkiya, a bastard mix of Gutter, Sol Common, and old Russian. The official language of the USSP. It has started to see use outside of the fringe in hobby circles and protest groups. The linguistic spirit of Sol-Gov criticisms."
speech_verb = "articulates"
whisper_verb = "mutters"
exclaim_verb = "exaggerates"
exclaim_verbs = list("exaggerates")
colour = "com_srus"
key = "?"
space_chance = 65
@@ -453,7 +438,7 @@
desc = "Wryn have the strange ability to commune over a psychic hivemind."
speech_verb = "chitters"
ask_verb = "chitters"
exclaim_verb = "chitters"
exclaim_verbs = list("buzzes")
colour = "alien"
key = "y"
flags = RESTRICTED | HIVEMIND | NOBABEL
@@ -474,7 +459,7 @@
desc = "The common tongue of the xenomorphs."
speech_verb = "hisses"
ask_verb = "hisses"
exclaim_verb = "hisses"
exclaim_verbs = list("hisses")
key = "6"
flags = RESTRICTED
syllables = list("sss","sSs","SSS")
@@ -484,7 +469,7 @@
desc = "Xenomorphs have the strange ability to commune over a psychic hivemind."
speech_verb = "hisses"
ask_verb = "hisses"
exclaim_verb = "hisses"
exclaim_verbs = list("hisses")
colour = "alien"
key = "a"
flags = RESTRICTED | HIVEMIND | NOBABEL
@@ -495,7 +480,7 @@
desc = "Terror spiders have a limited ability to commune over a psychic hivemind, similar to xenomorphs."
speech_verb = "chitters"
ask_verb = "chitters"
exclaim_verb = "chitters"
exclaim_verbs = list("chitters")
colour = "terrorspider"
key = "ts"
flags = RESTRICTED | HIVEMIND | NOBABEL
@@ -540,7 +525,7 @@
desc = "Abductors are incapable of speech, but have a psychic link attuned to their own team."
speech_verb = "gibbers"
ask_verb = "gibbers"
exclaim_verb = "gibbers"
exclaim_verbs = list("gibbers")
colour = "abductor"
key = "zw" //doesn't matter, this is their default and only language
flags = RESTRICTED | HIVEMIND | NOBABEL
@@ -569,7 +554,7 @@
desc = "Cortical borers possess a strange link between their tiny minds."
speech_verb = "sings"
ask_verb = "sings"
exclaim_verb = "sings"
exclaim_verbs = list("sings")
colour = "alien"
key = "bo"
flags = RESTRICTED | HIVEMIND | NOBABEL
@@ -594,7 +579,7 @@
colour = "say_quote"
speech_verb = "states"
ask_verb = "queries"
exclaim_verb = "declares"
exclaim_verbs = list("declares")
key = "b"
flags = RESTRICTED | HIVEMIND | NOBABEL
follow = TRUE
@@ -642,7 +627,7 @@
desc = "A heavily encoded damage control coordination stream."
speech_verb = "transmits"
ask_verb = "transmits"
exclaim_verb = "transmits"
exclaim_verbs = list("transmits")
colour = "say_quote"
key = "d"
flags = RESTRICTED | HIVEMIND | NOBABEL
@@ -654,7 +639,7 @@
desc = "An encrypted stream of data converted to speech patterns."
speech_verb = "states"
ask_verb = "queries"
exclaim_verb = "declares"
exclaim_verbs = list("declares")
key = "]"
flags = RESTRICTED
follow = TRUE
@@ -665,7 +650,7 @@
desc = "A heavily encoded alien binary pattern."
speech_verb = "tones"
ask_verb = "tones"
exclaim_verb = "tones"
exclaim_verbs = list("tones")
colour = "say_quote"
key = "z"//Zwarmer...Or Zerg!
flags = RESTRICTED | HIVEMIND | NOBABEL
@@ -744,7 +729,7 @@
desc = "Ook ook ook."
speech_verb = "chimpers"
ask_verb = "chimpers"
exclaim_verb = "screeches"
exclaim_verbs = list("screeches")
key = "mo"
/datum/language/skrell/monkey
+5 -3
View File
@@ -92,10 +92,12 @@
/mob/living/carbon/proc/vomit(var/lost_nutrition = 10, var/blood = 0, var/stun = 1, var/distance = 0, var/message = 1)
if(src.is_muzzled())
if(ismachineperson(src)) //IPCs do not vomit particulates
return FALSE
if(is_muzzled())
if(message)
to_chat(src, "<span class='warning'>The muzzle prevents you from vomiting!</span>")
return 0
return FALSE
if(stun)
Stun(4)
if(nutrition < 100 && !blood)
@@ -125,7 +127,7 @@
T = get_step(T, dir)
if(is_blocked_turf(T))
break
return 1
return TRUE
/mob/living/carbon/gib()
. = death(1)
@@ -1,7 +1,7 @@
/mob/living/carbon/human/proc/change_appearance(var/flags = APPEARANCE_ALL_HAIR, var/location = src, var/mob/user = src, var/check_species_whitelist = 1, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/datum/topic_state/state = GLOB.default_state)
var/datum/nano_module/appearance_changer/AC = new(location, src, check_species_whitelist, species_whitelist, species_blacklist)
/mob/living/carbon/human/proc/change_appearance(flags = APPEARANCE_ALL_HAIR, datum/location = src, mob/user = src, check_species_whitelist = TRUE, list/species_whitelist = list(), list/species_blacklist = list())
var/datum/tgui_module/appearance_changer/AC = new(location, src, check_species_whitelist, species_whitelist, species_blacklist)
AC.flags = flags
AC.ui_interact(user, state = state)
AC.tgui_interact(user)
/mob/living/carbon/human/proc/change_gender(var/new_gender, var/update_dna = 1)
var/obj/item/organ/external/head/H = bodyparts_by_name["head"]
@@ -78,7 +78,7 @@ GLOBAL_LIST_INIT(body_accessory_by_species, list("None" = null))
return TRUE
return FALSE
//Tajaran
/datum/body_accessory/tail/wingler_tail // Jay wingler fluff tail
name = "Striped Tail"
icon_state = "winglertail"
@@ -115,3 +115,10 @@ GLOBAL_LIST_INIT(body_accessory_by_species, list("None" = null))
icon_state = "straightbushy"
animated_icon_state = "straightbushy_a"
allowed_species = list("Vulpkanin")
//Wryn
/datum/body_accessory/tail/wryn
name = "Bee Tail"
icon_state = "wryntail"
allowed_species = list("Wryn")
+39 -5
View File
@@ -542,6 +542,41 @@
if(istype(id))
return id
//Gets ID card object from hands only
/mob/living/carbon/human/proc/get_id_from_hands()
var/obj/item/card/id/ID
var/obj/item/pda/PDA
var/obj/item/storage/wallet/W
var/active_hand = get_active_hand()
var/inactive_hand = get_inactive_hand()
//ID
if(istype(active_hand, /obj/item/card/id) || istype(inactive_hand, /obj/item/card/id))
if(istype(active_hand, ID))
ID = active_hand
else
ID = inactive_hand
//PDA
else if(istype(active_hand, /obj/item/pda) || istype(inactive_hand, /obj/item/pda))
if(istype(active_hand, PDA))
PDA = active_hand
else
PDA = inactive_hand
if(PDA.id)
ID = PDA.id
//Wallet
else if(istype(active_hand, /obj/item/storage/wallet) || istype(inactive_hand, /obj/item/storage/wallet))
if(istype(active_hand, W))
W = active_hand
else
W = inactive_hand
if(W.front_id)
ID = W.front_id
return ID
/mob/living/carbon/human/update_sight()
if(!client)
return
@@ -1475,14 +1510,13 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
/mob/living/carbon/human/proc/eyes_shine()
var/obj/item/organ/internal/eyes/eyes = get_int_organ(/obj/item/organ/internal/eyes)
var/obj/item/organ/internal/cyberimp/eyes/eye_implant = get_int_organ(/obj/item/organ/internal/cyberimp/eyes)
if(!(istype(eyes) || istype(eye_implant)))
return FALSE
if(!get_location_accessible(src, "eyes"))
return FALSE
if(!(eyes.shine()) && !istype(eye_implant) && !(XRAY in mutations)) //If their eyes don't shine, they don't have other augs, nor do they have X-RAY vision
return FALSE
// Natural eyeshine, any implants, and XRAY - all give shiny appearance.
if((istype(eyes) && eyes.shine()) || istype(eye_implant) || (XRAY in mutations))
return TRUE
return TRUE
return FALSE
/mob/living/carbon/human/assess_threat(var/mob/living/simple_animal/bot/secbot/judgebot, var/lasercolor)
if(judgebot.emagged == 2)
@@ -49,6 +49,102 @@
//Default styles for created mobs.
default_hair = "Antennae"
var/datum/action/innate/wryn_sting/wryn_sting
/datum/species/wryn/on_species_gain(mob/living/carbon/human/H)
..()
wryn_sting = new
wryn_sting.Grant(H)
/datum/species/wryn/on_species_loss(mob/living/carbon/human/H)
..()
if(wryn_sting)
wryn_sting.Remove(H)
/* Wryn Sting Action Begin */
//Define the Sting Action
/datum/action/innate/wryn_sting
name = "Wryn Sting"
desc = "Readies Wryn Sting for stinging."
button_icon_state = "wryn_sting_off" //Default Button State
check_flags = AB_CHECK_LYING | AB_CHECK_CONSCIOUS | AB_CHECK_STUNNED
var/button_on = FALSE
//What happens when you click the Button?
/datum/action/innate/wryn_sting/Trigger()
if(!..())
return
var/mob/living/carbon/user = owner
if((user.restrained() && user.pulledby) || user.buckled) //Is your Wryn restrained, pulled, or buckled? No stinging!
to_chat(user, "<span class='notice'>You need freedom of movement to sting someone!</span>")
return
if(user.wear_suit) //Is your Wryn wearing a Hardsuit or a Laboat that's blocking their Stinger?
to_chat(user, "<span class='notice'>You must remove your hardsuit, labcoat, or jacket before using your Wryn stinger.</span>")
return
if(user.getStaminaLoss() >= 50) //Does your Wryn have enough Stamina to sting?
to_chat(user, "<span class='notice'>You feel too tired to use your Wryn Stinger at the moment.</span>")
return
else
button_on = TRUE
UpdateButtonIcon()
select_target(user)
//Update the Button Icon
/datum/action/innate/wryn_sting/UpdateButtonIcon()
if(button_on)
button_icon_state = "wryn_sting_on"
name = "Wryn Stinger \[READY\]"
button.name = name
else
button_icon_state = "wryn_sting_off"
name = "Wryn Stinger"
button.name = name
..()
//Select a Target from a List
/datum/action/innate/wryn_sting/proc/select_target(var/mob/living/carbon/human/user)
var/list/names = list()
for(var/mob/living/carbon/human/M in orange(1))
names += M
var/target = input("Select a Target: ", "Sting Target", null) as null|anything in names
if(!target) //No one's around!
to_chat(user, "<span class='warning'>There's no one around to sting so you retract your stinger.</span>")
user.visible_message("<span class='warning'[user] retracts their stinger.</span>")
button_on = FALSE
UpdateButtonIcon()
return
else //Get ready, aim, fire!
user.visible_message("<span class='warning'> [user] prepares to use their Wryn stinger!</span>")
sting_target(user, target)
return
//What does the Wryn Sting do?
/datum/action/innate/wryn_sting/proc/sting_target(mob/living/carbon/human/user, mob/living/carbon/human/target)
button_on = FALSE //For when we Update the Button Icon
if(!(target in orange(1, user))) //Dang, did they get away?
to_chat(user, "<span class='warning'>You are no longer adjacent to [target]. You retract your stinger for now.</span>")
user.visible_message("<span class='warning'[user] retracts their stinger.</span>")
UpdateButtonIcon()
return
else //Nah, that chump is still here! Sting 'em! Sting 'em good!
var/obj/item/organ/external/organ = target.get_organ(pick("l_leg", "r_leg", "l_foot", "r_foot", "groin"))
to_chat(user, "<span class='danger'> You sting [target] in their [organ] with your stinger!</span>")
user.visible_message("<span class='danger'>[user] stings [target] in [organ] with their stinger! </span>")
user.adjustStaminaLoss(20) //You can't sting infinitely, Wryn - take some Stamina loss
var/dam = rand(3, 7)
target.apply_damage(dam, BRUTE, organ)
playsound(user.loc, 'sound/weapons/bladeslice.ogg', 50, 0)
add_attack_logs(user, target, "Stung by Wryn Stinger - [dam] Brute damage to [organ].")
if(target.restrained()) //Apply tiny BURN damage if target is restrained
if(prob(50))
user.apply_damage(2, BURN, target)
to_chat(target, "<span class='danger'>You feel a little burnt! Yowch!</span>")
user.visible_message("<span class='danger'>[user] is looking a little burnt!</span>")
UpdateButtonIcon()
return
/* Wryn Sting Action End */
/datum/species/wryn/handle_death(gibbed, mob/living/carbon/human/H)
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
@@ -1289,6 +1289,9 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
var/husk = (HUSK in mutations)
var/hulk = (HULK in mutations)
var/skeleton = (SKELETON in mutations)
var/g = dna.GetUITriState(DNA_UI_GENDER)
if(g == DNA_GENDER_PLURAL)
g = DNA_GENDER_FEMALE
. = ""
@@ -1317,8 +1320,8 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
if(part)
var/datum/species/S = GLOB.all_species[part.dna.species.name]
. += "[S.race_key]"
. += "[part.dna.GetUIState(DNA_UI_GENDER)]"
. += "[part.dna.GetUIValue(DNA_UI_SKIN_TONE)]"
. += "[g]"
if(part.s_col)
. += "[part.s_col]"
if(part.s_tone)
@@ -24,6 +24,7 @@
/mob/living/silicon/decoy/syndicate
faction = list("syndicate")
bubble_icon = "syndibot"
name = "R.O.D.G.E.R"
desc = "Red Operations, Depot General Emission Regulator"
icon_state = "ai-magma"
@@ -108,6 +108,8 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
var/datum/action/item_action/toggle_research_scanner/scanner = null
var/list/module_actions = list()
var/see_reagents = FALSE // Determines if the cyborg can see reagents
/mob/living/silicon/robot/get_cell()
return cell
@@ -330,6 +332,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
module_sprites["Standard"] = "Standard-Serv"
module_sprites["Noble-SRV"] = "Noble-SRV"
module_sprites["Cricket"] = "Cricket-SERV"
see_reagents = TRUE
if("Miner")
module = new /obj/item/robot_module/miner(src)
@@ -357,6 +360,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
module_sprites["Noble-MED"] = "Noble-MED"
module_sprites["Cricket"] = "Cricket-MEDI"
status_flags &= ~CANPUSH
see_reagents = TRUE
if("Security")
if(!weapons_unlock)
@@ -1418,6 +1422,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
is_emaggable = FALSE
can_lock_cover = TRUE
default_cell_type = /obj/item/stock_parts/cell/bluespace
see_reagents = TRUE
/mob/living/silicon/robot/deathsquad/init(alien = FALSE, connect_to_AI = TRUE, mob/living/silicon/ai/ai_to_sync_to = null)
laws = new /datum/ai_laws/deathsquad
@@ -1448,6 +1453,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
can_lock_cover = TRUE
default_cell_type = /obj/item/stock_parts/cell/super
var/eprefix = "Amber"
see_reagents = TRUE
/mob/living/silicon/robot/ert/init(alien = FALSE, connect_to_AI = TRUE, mob/living/silicon/ai/ai_to_sync_to = null)
@@ -1504,6 +1510,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
damage_protection = 20 // Reduce all incoming damage by this number. Very high in the case of /destroyer borgs, since it is an admin-only borg.
can_lock_cover = TRUE
default_cell_type = /obj/item/stock_parts/cell/bluespace
see_reagents = TRUE
/mob/living/silicon/robot/destroyer/init(alien = FALSE, connect_to_AI = TRUE, mob/living/silicon/ai/ai_to_sync_to = null)
aiCamera = new/obj/item/camera/siliconcam/robot_camera(src)
@@ -1625,3 +1632,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
audible_message("<span class='warning'>[src] sounds an alarm! \"CRITICAL ERROR: All modules OFFLINE.\"</span>")
playsound(loc, 'sound/machines/warning-buzzer.ogg', 75, TRUE)
to_chat(src, "<span class='userdanger'>CRITICAL ERROR: All modules OFFLINE.</span>")
/mob/living/silicon/robot/can_see_reagents()
return see_reagents
@@ -323,6 +323,7 @@
modules += new /obj/item/razor(src)
modules += new /obj/item/instrument/piano_synth(src)
modules += new /obj/item/healthanalyzer/advanced(src)
modules += new /obj/item/reagent_scanner/adv(src)
var/obj/item/rsf/M = new /obj/item/rsf(src)
M.matter = 30
@@ -1,9 +1,8 @@
/mob/living/silicon
var/register_alarms = 1
var/datum/nano_module/alarm_monitor/all/alarm_monitor
var/datum/nano_module/atmos_control/atmos_control
var/register_alarms = TRUE
var/datum/tgui_module/atmos_control/atmos_control
var/datum/tgui_module/crew_monitor/crew_monitor
var/datum/nano_module/law_manager/law_manager
var/datum/tgui_module/law_manager/law_manager
var/datum/tgui_module/power_monitor/digital/power_monitor
/mob/living/silicon
@@ -41,7 +40,7 @@
set category = "Subsystems"
set name = "Atmospherics Control"
atmos_control.ui_interact(usr, state = GLOB.self_state)
atmos_control.tgui_interact(usr, state = GLOB.tgui_self_state)
/********************
* Crew Monitor *
@@ -58,7 +57,7 @@
set name = "Law Manager"
set category = "Subsystems"
law_manager.ui_interact(usr, state = GLOB.conscious_state)
law_manager.tgui_interact(usr, state = GLOB.tgui_conscious_state)
/********************
* Power Monitor *
@@ -67,5 +66,5 @@
set category = "Subsystems"
set name = "Power Monitor"
power_monitor.tgui_interact(usr, state = GLOB.self_state)
power_monitor.tgui_interact(usr, state = GLOB.tgui_self_state)
@@ -101,7 +101,7 @@
if(M)
playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE)
M.adjustBruteLoss(60)
new /obj/effect/gibspawner/generic(get_turf(M), M)
new /obj/effect/gibspawner/generic(get_turf(M), M.dna)
if(M.stat == DEAD)
var/mob/living/simple_animal/hostile/netherworld/blankbody/blank
blank = new(loc)
+4 -4
View File
@@ -113,6 +113,10 @@
return
/mob/new_player/Stat()
statpanel("Status")
..()
statpanel("Lobby")
if(client.statpanel=="Lobby" && SSticker)
if(SSticker.hide_mode)
@@ -141,10 +145,6 @@
if(player.ready)
totalPlayersReady++
..()
statpanel("Status")
/mob/new_player/Topic(href, href_list[])
if(!client)