Merge branch 'master' into synthmarking

This commit is contained in:
Verkister
2018-08-14 09:09:14 +03:00
committed by GitHub
152 changed files with 2389 additions and 316328 deletions

View File

@@ -0,0 +1,42 @@
/*
* Voicebox/Vocal Synthesizers
* TL;DR: Assists with speaking languages that a species doesn't normally have,
* such as EAL. Not standard or organic, because at the moment it's undesireable to completely mute characters.
*/
/obj/item/organ/internal/voicebox
name = "larynx"
icon_state = "larynx"
parent_organ = BP_TORSO // We don't have a neck area
organ_tag = O_VOICE
will_assist_languages = list(LANGUAGE_GALCOM)
/obj/item/organ/internal/voicebox/New()
..()
amend_assist_langs()
/obj/item/organ/internal/voicebox/proc/amend_assist_langs() // Adds the list of language datums assisted by the voicebox to the list used in speaking
for(var/L in will_assist_languages)
assists_languages |= all_languages[L]
/obj/item/organ/internal/voicebox/proc/add_assistable_langs(var/language) // Adds a new language (by string/define) to the list of things the voicebox can assist
will_assist_languages |= language
amend_assist_langs() // Can't think of a better place to put this, makes the voicebox actually start to assist with the added language
/////////////////////////////////
// Voicebox Subtypes
/////////////////////////////////
/obj/item/organ/internal/voicebox/assist // In the off chance we get a species that doesn't speak GalCom by default
/obj/item/organ/internal/voicebox/assist/New()
..()
mechassist()
/obj/item/organ/internal/voicebox/robot
name = "vocal synthesizer"
will_assist_languages = list(LANGUAGE_GALCOM, LANGUAGE_EAL) // Synthetics spawn with this by default
/obj/item/organ/internal/voicebox/robot/New()
..()
robotize()

View File

@@ -31,6 +31,10 @@ var/list/organ_cache = list()
var/rejecting // Is this organ already being rejected?
var/preserved = 0 // If this is 1, prevents organ decay.
// Language vars. Putting them here in case we decide to do something crazy with sign-or-other-nonverbal languages.
var/list/will_assist_languages = list()
var/list/datum/language/assists_languages = list()
/obj/item/organ/Destroy()
if(owner) owner = null

View File

@@ -72,6 +72,8 @@
var/open = 0
var/stage = 0
var/cavity = 0
var/burn_stage = 0 //Surgical repair stage for burn.
var/brute_stage = 0 //Surgical repair stage for brute.
// HUD element variable, see organ_icon.dm get_damage_hud_image()
var/image/hud_damage_image
@@ -1345,3 +1347,18 @@ Note that amputating the affected organ does in fact remove the infection from t
if(6 to INFINITY)
flavor_text += "a ton of [wound]\s"
return english_list(flavor_text)
// Returns a list of the clothing (not glasses) that are covering this part
/obj/item/organ/external/proc/get_covering_clothing()
var/list/covering_clothing = list()
if(owner)
var/list/protective_gear = list(owner.head, owner.wear_mask, owner.wear_suit, owner.w_uniform, owner.gloves, owner.shoes)
for(var/obj/item/clothing/gear in protective_gear)
if(gear.body_parts_covered & src.body_part)
covering_clothing |= gear
if(LAZYLEN(gear.accessories))
for(var/obj/item/clothing/accessory/bling in gear.accessories)
if(bling.body_parts_covered & src.body_part)
covering_clothing |= bling
return covering_clothing

View File

@@ -86,6 +86,7 @@
lifelike = 1
unavailable_to_build = 1
includes_tail = 1
skin_tone = 1
suggested_species = "Tajara"
/obj/item/weapon/disk/limb/dsi_tajaran
@@ -99,6 +100,7 @@
lifelike = 1
unavailable_to_build = 1
includes_tail = 1
skin_tone = 1
suggested_species = "Unathi"
/obj/item/weapon/disk/limb/dsi_lizard
@@ -112,6 +114,7 @@
lifelike = 1
unavailable_to_build = 1
includes_tail = 1
skin_tone = 1
suggested_species = "Sergal"
/obj/item/weapon/disk/limb/dsi_sergal
@@ -125,6 +128,7 @@
lifelike = 1
unavailable_to_build = 1
includes_tail = 1
skin_tone = 1
suggested_species = "Nevrean"
/obj/item/weapon/disk/limb/dsi_nevrean
@@ -138,6 +142,7 @@
lifelike = 1
unavailable_to_build = 1
includes_tail = 1
skin_tone = 1
suggested_species = "Vulpkanin"
/obj/item/weapon/disk/limb/dsi_vulpkanin
@@ -151,6 +156,7 @@
lifelike = 1
unavailable_to_build = 1
includes_tail = 1
skin_tone = 1
suggested_species = "Akula"
/obj/item/weapon/disk/limb/dsi_akula
@@ -164,6 +170,7 @@
lifelike = 1
unavailable_to_build = 1
includes_tail = 1
skin_tone = 1
suggested_species = "Vasilissan"
/obj/item/weapon/disk/limb/dsi_spider
@@ -174,6 +181,7 @@
desc = "This limb has a thin synthflesh casing with a few connection ports."
icon = 'icons/mob/human_races/cyberlimbs/DSITeshari/dsi_teshari.dmi'
lifelike = 1
skin_tone = 1
suggested_species = "Teshari"
/datum/robolimb/dsi_teshari/New()

View File

@@ -23,10 +23,11 @@
organ_rel_size = 70
base_miss_chance = 10
/obj/item/organ/external/chest/robotize(var/company, var/skip_prosthetics = 0, var/keep_organs = 0)
/obj/item/organ/external/chest/robotize()
if(..() && robotic != ORGAN_NANOFORM) //VOREStation Edit
// Give them a new cell.
owner.internal_organs_by_name["cell"] = new /obj/item/organ/internal/cell(owner,1)
// Give them fancy new organs.
owner.internal_organs_by_name[O_CELL] = new /obj/item/organ/internal/cell(owner,1)
owner.internal_organs_by_name[O_VOICE] = new /obj/item/organ/internal/voicebox/robot(owner, 1)
/obj/item/organ/external/chest/handle_germ_effects()
. = ..() //Should return an infection level