mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-19 11:05:50 +01:00
Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts: code/game/antagonist/alien/borer.dm code/modules/mob/living/living_defense.dm
This commit is contained in:
@@ -134,7 +134,7 @@
|
||||
|
||||
var/datum/language/new_language = all_languages[language]
|
||||
|
||||
if(!istype(new_language) || new_language in languages)
|
||||
if(!istype(new_language) || (new_language in languages))
|
||||
return 0
|
||||
|
||||
languages.Add(new_language)
|
||||
|
||||
@@ -219,7 +219,7 @@
|
||||
|
||||
/mob/living/proc/handle_fire()
|
||||
if(fire_stacks < 0)
|
||||
fire_stacks = min(0, fire_stacks++) //If we've doused ourselves in water to avoid fire, dry off slowly
|
||||
fire_stacks = min(0, ++fire_stacks) //If we've doused ourselves in water to avoid fire, dry off slowly
|
||||
|
||||
if(!on_fire)
|
||||
return 1
|
||||
|
||||
@@ -34,7 +34,7 @@ var/global/list/robot_modules = list(
|
||||
var/list/obj/item/borg/upgrade/supported_upgrades = list()
|
||||
|
||||
// Bookkeeping
|
||||
var/list/added_languages = list()
|
||||
var/list/original_languages = list()
|
||||
var/list/added_networks = list()
|
||||
|
||||
/obj/item/weapon/robot_module/New(var/mob/living/silicon/robot/R)
|
||||
@@ -63,12 +63,14 @@ var/global/list/robot_modules = list(
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/robot_module/Destroy()
|
||||
qdel(modules)
|
||||
qdel(synths)
|
||||
for(var/obj/O in modules)
|
||||
qdel(O)
|
||||
modules.Cut()
|
||||
for(var/datum/matter_synth/S in synths)
|
||||
qdel(S)
|
||||
synths.Cut()
|
||||
qdel(emag)
|
||||
qdel(jetpack)
|
||||
modules = null
|
||||
synths = null
|
||||
emag = null
|
||||
jetpack = null
|
||||
return ..()
|
||||
@@ -100,14 +102,22 @@ var/global/list/robot_modules = list(
|
||||
modules += O
|
||||
|
||||
/obj/item/weapon/robot_module/proc/add_languages(var/mob/living/silicon/robot/R)
|
||||
// Stores the languages as they were before receiving the module, and whether they could be synthezized.
|
||||
for(var/datum/language/language_datum in R.languages)
|
||||
original_languages[language_datum] = (language_datum in R.speech_synthesizer_langs)
|
||||
|
||||
for(var/language in languages)
|
||||
if(R.add_language(language, languages[language]))
|
||||
added_languages |= language
|
||||
R.add_language(language, languages[language])
|
||||
|
||||
/obj/item/weapon/robot_module/proc/remove_languages(var/mob/living/silicon/robot/R)
|
||||
for(var/language in added_languages)
|
||||
// Clear all added languages, whether or not we originally had them.
|
||||
for(var/language in languages)
|
||||
R.remove_language(language)
|
||||
added_languages.Cut()
|
||||
|
||||
// Then add back all the original languages, and the relevant synthezising ability
|
||||
for(var/original_language in original_languages)
|
||||
R.add_language(original_language, original_languages[original_language])
|
||||
original_languages.Cut()
|
||||
|
||||
/obj/item/weapon/robot_module/proc/add_camera_networks(var/mob/living/silicon/robot/R)
|
||||
if(R.camera && (NETWORK_ROBOTS in R.camera.network))
|
||||
|
||||
@@ -190,16 +190,22 @@
|
||||
return universal_speak || (speaking in src.speech_synthesizer_langs) //need speech synthesizer support to vocalize a language
|
||||
|
||||
/mob/living/silicon/add_language(var/language, var/can_speak=1)
|
||||
if (..(language) && can_speak)
|
||||
speech_synthesizer_langs.Add(all_languages[language])
|
||||
var/var/datum/language/added_language = all_languages[language]
|
||||
if(!added_language)
|
||||
return
|
||||
|
||||
. = ..(language)
|
||||
if (can_speak && (added_language in languages) && !(added_language in speech_synthesizer_langs))
|
||||
speech_synthesizer_langs += added_language
|
||||
return 1
|
||||
|
||||
/mob/living/silicon/remove_language(var/rem_language)
|
||||
..(rem_language)
|
||||
var/var/datum/language/removed_language = all_languages[rem_language]
|
||||
if(!removed_language)
|
||||
return
|
||||
|
||||
for (var/datum/language/L in speech_synthesizer_langs)
|
||||
if (L.name == rem_language)
|
||||
speech_synthesizer_langs -= L
|
||||
..(rem_language)
|
||||
speech_synthesizer_langs -= removed_language
|
||||
|
||||
/mob/living/silicon/check_languages()
|
||||
set name = "Check Known Languages"
|
||||
|
||||
Reference in New Issue
Block a user