mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 12:37:26 +01:00
Merge branch 'master' into bleeding-edge-freeze
This commit is contained in:
@@ -808,8 +808,6 @@
|
||||
return "Mobile vegetation"
|
||||
if("golem")
|
||||
return "Animated Construct"
|
||||
if("kidan")
|
||||
return "Kidan"
|
||||
else
|
||||
return "Human"
|
||||
|
||||
@@ -822,9 +820,7 @@
|
||||
else if(src.dna.mutantrace == "tajaran")
|
||||
return "Tajaran"
|
||||
else if(src.dna.mutantrace == "vox")
|
||||
return "Vox"
|
||||
else if(src.dna.mutantrace == "kidan")
|
||||
return "Kidan"
|
||||
return "vox"
|
||||
|
||||
/mob/living/carbon/proc/update_mutantrace_languages()
|
||||
if(src.dna)
|
||||
@@ -836,8 +832,6 @@
|
||||
src.tajaran_talk_understand = 1
|
||||
else if(src.dna.mutantrace == "vox")
|
||||
src.vox_talk_understand = 1
|
||||
else if(src.dna.mutantrace == "kidan")
|
||||
src.kidan_talk_understand = 1
|
||||
|
||||
/mob/living/carbon/human/proc/play_xylophone()
|
||||
if(!src.xylophone)
|
||||
|
||||
@@ -440,12 +440,10 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
if("skrell")
|
||||
race_icon = 'icons/mob/human_races/r_skrell.dmi'
|
||||
deform_icon = 'icons/mob/human_races/r_def_skrell.dmi'
|
||||
|
||||
if("vox")
|
||||
race_icon = 'icons/mob/human_races/r_vox.dmi'
|
||||
deform_icon = 'icons/mob/human_races/r_def_vox.dmi'
|
||||
if("kidan")
|
||||
race_icon = 'icons/mob/human_races/r_kidan.dmi'
|
||||
deform_icon = 'icons/mob/human_races/r_def_kidan.dmi'
|
||||
|
||||
else
|
||||
race_icon = 'icons/mob/human_races/r_human.dmi'
|
||||
|
||||
@@ -19,7 +19,6 @@ var/list/department_radio_keys = list(
|
||||
":j" = "tajaran", "#j" = "tajaran", ".j" = "tajaran",
|
||||
":o" = "soghun", "#o" = "soghun", ".o" = "soghun",
|
||||
":v" = "vox", "#v" = "vox", ".v" = "vox",
|
||||
":q" = "kidan", "#q" = "kidan", ".q" = "kidan",
|
||||
|
||||
":R" = "right hand", "#R" = "right hand", ".R" = "right hand",
|
||||
":L" = "left hand", "#L" = "left hand", ".L" = "left hand",
|
||||
@@ -40,7 +39,6 @@ var/list/department_radio_keys = list(
|
||||
":J" = "tajaran", "#J" = "tajaran", ".J" = "tajaran",
|
||||
":O" = "soghun", "#O" = "soghun", ".O" = "soghun",
|
||||
":V" = "vox", "#V" = "vox", ".V" = "vox",
|
||||
":Q" = "kidan", "#Q" = "kidan", ".Q" = "kidan",
|
||||
|
||||
//kinda localization -- rastaf0
|
||||
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
|
||||
@@ -190,7 +188,6 @@ var/list/department_radio_keys = list(
|
||||
var/is_speaking_soghun = 0
|
||||
var/is_speaking_taj = 0
|
||||
var/is_speaking_vox = 0
|
||||
var/is_speaking_kidan = 0
|
||||
var/is_speaking_radio = 0
|
||||
|
||||
switch (message_mode)
|
||||
@@ -293,10 +290,6 @@ var/list/department_radio_keys = list(
|
||||
if(vox_talk_understand || universal_speak)
|
||||
is_speaking_vox = 1
|
||||
|
||||
if ("kidan")
|
||||
if(kidan_talk_understand || universal_speak)
|
||||
is_speaking_kidan = 1
|
||||
|
||||
if("changeling")
|
||||
if(mind && mind.changeling)
|
||||
for(var/mob/Changeling in mob_list)
|
||||
@@ -395,8 +388,6 @@ var/list/department_radio_keys = list(
|
||||
heard_a += M
|
||||
else if(is_speaking_vox && (M:vox_talk_understand || M:universal_speak))
|
||||
heard_a += M
|
||||
else if(is_speaking_kidan && (M:kidan_talk_understand || M:universal_speak))
|
||||
heard_a += M
|
||||
else
|
||||
heard_b += M
|
||||
else
|
||||
@@ -412,7 +403,7 @@ var/list/department_radio_keys = list(
|
||||
|
||||
var/rendered = null
|
||||
if (length(heard_a))
|
||||
var/message_a = say_quote(message,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox,is_speaking_kidan)
|
||||
var/message_a = say_quote(message,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox)
|
||||
|
||||
if (italics)
|
||||
message_a = "<i>[message_a]</i>"
|
||||
@@ -437,7 +428,7 @@ var/list/department_radio_keys = list(
|
||||
message_b = voice_message
|
||||
else
|
||||
message_b = stars(message)
|
||||
message_b = say_quote(message_b,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox,is_speaking_kidan)
|
||||
message_b = say_quote(message_b,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox)
|
||||
|
||||
if (italics)
|
||||
message_b = "<i>[message_b]</i>"
|
||||
|
||||
@@ -63,16 +63,21 @@
|
||||
else
|
||||
powered = 0
|
||||
|
||||
/datum/robot_component/armour
|
||||
name = "armour plating"
|
||||
energy_consumption = 0
|
||||
external_type = /obj/item/robot_parts/robot_component/armour
|
||||
max_damage = 60
|
||||
|
||||
/datum/robot_component/actuator
|
||||
name = "actuator"
|
||||
energy_consumption = 2
|
||||
external_type = /obj/item/robot_parts/robot_component/actuator
|
||||
max_damage = 60
|
||||
max_damage = 50
|
||||
|
||||
/datum/robot_component/cell
|
||||
name = "power cell"
|
||||
max_damage = 60
|
||||
max_damage = 50
|
||||
|
||||
/datum/robot_component/cell/destroy()
|
||||
..()
|
||||
@@ -81,8 +86,8 @@
|
||||
/datum/robot_component/radio
|
||||
name = "radio"
|
||||
external_type = /obj/item/robot_parts/robot_component/radio
|
||||
energy_consumption = 3
|
||||
max_damage = 10
|
||||
energy_consumption = 1
|
||||
max_damage = 40
|
||||
|
||||
/datum/robot_component/binary_communication
|
||||
name = "binary communication device"
|
||||
@@ -93,8 +98,8 @@
|
||||
/datum/robot_component/camera
|
||||
name = "camera"
|
||||
external_type = /obj/item/robot_parts/robot_component/camera
|
||||
energy_consumption = 2
|
||||
max_damage = 20
|
||||
energy_consumption = 1
|
||||
max_damage = 40
|
||||
|
||||
/datum/robot_component/diagnosis_unit
|
||||
name = "self-diagnosis unit"
|
||||
@@ -111,6 +116,7 @@
|
||||
components["diagnosis unit"] = new/datum/robot_component/diagnosis_unit(src)
|
||||
components["camera"] = new/datum/robot_component/camera(src)
|
||||
components["comms"] = new/datum/robot_component/binary_communication(src)
|
||||
components["armour"] = new/datum/robot_component/armour(src)
|
||||
|
||||
/mob/living/silicon/robot/proc/is_component_functioning(module_name)
|
||||
var/datum/robot_component/C = components[module_name]
|
||||
@@ -135,6 +141,9 @@
|
||||
/obj/item/robot_parts/robot_component/actuator
|
||||
name = "actuator"
|
||||
|
||||
/obj/item/robot_parts/robot_component/armour
|
||||
name = "armour plating"
|
||||
|
||||
/obj/item/robot_parts/robot_component/camera
|
||||
name = "camera"
|
||||
|
||||
|
||||
@@ -3,14 +3,15 @@
|
||||
real_name = "Cyborg"
|
||||
icon = 'icons/mob/robots.dmi'
|
||||
icon_state = "robot"
|
||||
maxHealth = 300
|
||||
health = 300
|
||||
maxHealth = 200
|
||||
health = 200
|
||||
universal_speak = 1
|
||||
|
||||
var/sight_mode = 0
|
||||
var/custom_name = ""
|
||||
var/base_icon
|
||||
var/custom_sprite = 0 //Due to all the sprites involved, a var for our custom borgs may be best
|
||||
var/crisis //Admin-settable for combat module use.
|
||||
|
||||
//Hud stuff
|
||||
|
||||
@@ -106,17 +107,17 @@
|
||||
camera.status = 0
|
||||
|
||||
initialize_components()
|
||||
if(!unfinished)
|
||||
// Create all the robot parts.
|
||||
for(var/V in components) if(V != "power cell")
|
||||
var/datum/robot_component/C = components[V]
|
||||
C.installed = 1
|
||||
C.wrapped = new C.external_type
|
||||
//if(!unfinished)
|
||||
// Create all the robot parts.
|
||||
for(var/V in components) if(V != "power cell")
|
||||
var/datum/robot_component/C = components[V]
|
||||
C.installed = 1
|
||||
C.wrapped = new C.external_type
|
||||
|
||||
if(!cell)
|
||||
cell = new /obj/item/weapon/cell(src)
|
||||
cell.maxcharge = 7500
|
||||
cell.charge = 7500
|
||||
if(!cell)
|
||||
cell = new /obj/item/weapon/cell(src)
|
||||
cell.maxcharge = 7500
|
||||
cell.charge = 7500
|
||||
|
||||
..()
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/mob/living/silicon/robot/updatehealth()
|
||||
if(status_flags & GODMODE)
|
||||
health = 100
|
||||
health = 200
|
||||
stat = CONSCIOUS
|
||||
return
|
||||
health = 100 - (getBruteLoss() + getFireLoss())
|
||||
health = 200 - (getBruteLoss() + getFireLoss())
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/getBruteLoss()
|
||||
@@ -47,6 +47,14 @@
|
||||
if(C.installed == 1) rval += C
|
||||
return rval
|
||||
|
||||
/mob/living/silicon/robot/proc/get_armour()
|
||||
|
||||
if(!components.len) return 0
|
||||
var/datum/robot_component/C = components["armour"]
|
||||
if(C && C.installed == 1)
|
||||
return C
|
||||
return 0
|
||||
|
||||
/mob/living/silicon/robot/heal_organ_damage(var/brute, var/burn)
|
||||
var/list/datum/robot_component/parts = get_damaged_components(brute,burn)
|
||||
if(!parts.len) return
|
||||
@@ -75,6 +83,11 @@
|
||||
burn -= absorb_burn
|
||||
src << "\red Your shield absorbs some of the impact!"
|
||||
|
||||
var/datum/robot_component/armour/A = get_armour()
|
||||
if(A)
|
||||
A.take_damage(brute,burn,sharp)
|
||||
return
|
||||
|
||||
var/datum/robot_component/C = pick(components)
|
||||
C.take_damage(brute,burn,sharp)
|
||||
|
||||
@@ -115,6 +128,11 @@
|
||||
burn -= absorb_burn
|
||||
src << "\red Your shield absorbs some of the impact!"
|
||||
|
||||
var/datum/robot_component/armour/A = get_armour()
|
||||
if(A)
|
||||
A.take_damage(brute,burn,sharp)
|
||||
return
|
||||
|
||||
while(parts.len && (brute>0 || burn>0) )
|
||||
var/datum/robot_component/picked = pick(parts)
|
||||
|
||||
|
||||
@@ -208,13 +208,12 @@
|
||||
|
||||
//Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything.
|
||||
var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE
|
||||
var/robot_talk_understand = 0
|
||||
var/alien_talk_understand = 0
|
||||
var/tajaran_talk_understand = 0
|
||||
var/soghun_talk_understand = 0
|
||||
var/skrell_talk_understand = 0
|
||||
var/vox_talk_understand = 0
|
||||
var/kidan_talk_understand = 0
|
||||
var/robot_talk_understand = 0
|
||||
var/alien_talk_understand = 0
|
||||
var/tajaran_talk_understand = 0
|
||||
var/soghun_talk_understand = 0
|
||||
var/skrell_talk_understand = 0
|
||||
var/vox_talk_understand = 0
|
||||
|
||||
var/has_limbs = 1 //Whether this mob have any limbs he can move with
|
||||
var/can_stand = 1 //Whether this mob have ability to stand
|
||||
|
||||
@@ -359,10 +359,10 @@
|
||||
if(is_alien_whitelisted(src, "Skrell") || !config.usealienwhitelist)
|
||||
new_character.dna.mutantrace = "skrell"
|
||||
new_character.skrell_talk_understand = 1
|
||||
if(client.prefs.species == "Kidan")
|
||||
if(is_alien_whitelisted(src, "Kidan") || !config.usealienwhitelist)
|
||||
new_character.dna.mutantrace = "kidan"
|
||||
new_character.kidan_talk_understand = 1
|
||||
if(client.prefs.species == "Vox")
|
||||
if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist))
|
||||
new_character.dna.mutantrace = "vox"
|
||||
new_character.vox_talk_understand = 1
|
||||
|
||||
if(client.prefs.language == "Tajaran")
|
||||
if(is_alien_whitelisted(src, "Language_Tajaran") || !config.usealienwhitelist)
|
||||
@@ -373,9 +373,6 @@
|
||||
if(client.prefs.language == "Skrell")
|
||||
if(is_alien_whitelisted(src, "Language_Skrell") || !config.usealienwhitelist)
|
||||
new_character.skrell_talk_understand = 1
|
||||
if(client.prefs.language == "Kidan")
|
||||
if(is_alien_whitelisted(src, "Language_Kidan") || !config.usealienwhitelist)
|
||||
new_character.kidan_talk_understand = 1
|
||||
|
||||
|
||||
if(ticker.random_players)
|
||||
|
||||
@@ -144,10 +144,9 @@ datum/preferences
|
||||
icobase = 'icons/mob/human_races/r_lizard.dmi'
|
||||
if("Skrell")
|
||||
icobase = 'icons/mob/human_races/r_skrell.dmi'
|
||||
|
||||
if("Vox")
|
||||
icobase = 'icons/mob/human_races/r_vox.dmi'
|
||||
if("Kidan")
|
||||
icobase = 'icons/mob/human_races/r_kidan.dmi'
|
||||
|
||||
else
|
||||
icobase = 'icons/mob/human_races/r_human.dmi'
|
||||
|
||||
@@ -285,6 +285,7 @@
|
||||
icon_state = "hair_e"
|
||||
gender = MALE // turnoff!
|
||||
|
||||
|
||||
bald
|
||||
name = "Bald"
|
||||
icon_state = "bald"
|
||||
@@ -305,7 +306,7 @@
|
||||
name = "Shaved"
|
||||
icon_state = "bald"
|
||||
gender = NEUTER
|
||||
species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox","Kidan")
|
||||
species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox")
|
||||
|
||||
watson
|
||||
name = "Watson Mustache"
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran,var/is_speaking_vox,var/is_speaking_kidan)
|
||||
/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran,var/is_speaking_vox)
|
||||
if(!text)
|
||||
return "says, \"...\""; //not the best solution, but it will stop a large number of runtimes. The cause is somewhere in the Tcomms code
|
||||
//tcomms code is still runtiming somewhere here
|
||||
@@ -81,9 +81,7 @@
|
||||
if (is_speaking_tajaran)
|
||||
return "<span class='say_quote'>mrowls</span>, \"<span class='tajaran'>[text]</span>\"";
|
||||
if (is_speaking_vox)
|
||||
return "<span class='say_quote'>shrieks</span>, \"<span class='vox'>[text]</span>\"";
|
||||
if (is_speaking_kidan)
|
||||
return "<span class='say_quote'>chitters</span>, \"<span class='kidan'>[text]</span>\"";
|
||||
return "<span class='say_quote'>chirps</span>, \"<span class='vox'>[text]</span>\"";
|
||||
//Needs Virus2
|
||||
// if (src.disease_symptoms & DISEASE_HOARSE)
|
||||
// return "rasps, \"[text]\"";
|
||||
|
||||
Reference in New Issue
Block a user