Cargo Vaurca (#9783)

This commit is contained in:
Geeves
2020-08-30 18:11:56 +02:00
committed by GitHub
parent f625c6a39b
commit 9c78a92200
13 changed files with 66 additions and 32 deletions
@@ -122,8 +122,8 @@
)
/datum/outfit/admin/kataphract/klax/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(H?.wear_mask && H.species.has_organ["phoron reserve tank"])
var/obj/item/organ/vaurca/preserve/preserve = H.internal_organs_by_name["phoron reserve tank"]
if(H?.wear_mask && H.species.has_organ[BP_PHORON_RESERVE])
var/obj/item/organ/vaurca/preserve/preserve = H.internal_organs_by_name[BP_PHORON_RESERVE]
H.internal = preserve
H.internals.icon_state = "internal1"
+3 -2
View File
@@ -176,7 +176,8 @@
var/new_name = "[pick(list("Ka'","Za'","Ka'"))]"
new_name += "[pick(list("Akaix'","Viax'"))]"
new_name += "[pick(list("Uyek","Uyit","Avek","Theth","Ztak","Teth","Zir","Yek","Zirk","Ayek","Yir","Kig","Yol","'Zrk","Nazgr","Yet","Nak","Kiihr","Gruz","Guurz","Nagr","Zkk","Zohd","Norc","Agraz","Yizgr","Yinzr","Nuurg","Iii","Lix","Nhagh","Xir","Z'zit","Zhul","Zgr","Na'k","Isk'yet","Aaaa"))]"
new_name += " [pick(list("Zo'ra","Zo'ra","Zo'ra","K'lax"))]"
var/list/hive_names = list("Zo'ra" = 3, "K'lax" = 1, "C'thur" = 1)
new_name += " [pickweight(hive_names)]"
return new_name
/datum/language/bug/broadcast(var/mob/living/speaker,var/message,var/speaker_mask)
@@ -210,7 +211,7 @@
return 0
if(within_jamming_range(other))
return 0
if(M.internal_organs_by_name["neural socket"])
if(M.internal_organs_by_name[BP_NEURAL_SOCKET])
return 1
if(M.internal_organs_by_name["blackkois"])
return 1
@@ -70,6 +70,23 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
. = ..(mapload, SPECIES_VAURCA_WORKER)
src.gender = NEUTER
/mob/living/carbon/human/type_a/cargo/Initialize(mapload)
. = ..()
// Equip mask to allow the drone to breathe
equip_to_slot_or_del(new /obj/item/clothing/mask/breath/vaurca/filter(src), slot_wear_mask)
// Set internals
var/obj/item/organ/vaurca/preserve/P = internal_organs_by_name[BP_PHORON_RESERVE]
internal = P
// Set colour, default is grey, no biggie
var/list/hive = splittext(name, " ")
switch(hive[length(hive)])
if("K'lax")
change_skin_color(33, 63, 33)
if("C'thur")
change_skin_color(10, 35, 55)
if("Zo'ra")
change_skin_color(111, 21, 21)
/mob/living/carbon/human/type_b/Initialize(mapload)
h_style = "Classic Antennae"
. = ..(mapload, SPECIES_VAURCA_WARRIOR)
+1 -1
View File
@@ -629,7 +629,7 @@
var/total_phoronloss = 0
for(var/obj/item/I in src)
if(I.contaminated && !(isvaurca(src) && src.species.has_organ["filtration bit"]))
if(I.contaminated && !(isvaurca(src) && src.species.has_organ[BP_FILTRATION_BIT]))
total_phoronloss += vsc.plc.CONTAMINATION_LOSS
if(!(status_flags & GODMODE)) adjustToxLoss(total_phoronloss)
@@ -93,11 +93,11 @@
stamina_recovery = 2 //slow recovery
has_organ = list(
"neural socket" = /obj/item/organ/vaurca/neuralsocket,
BP_NEURAL_SOCKET = /obj/item/organ/vaurca/neuralsocket,
BP_LUNGS = /obj/item/organ/internal/lungs/vaurca,
"filtration bit" = /obj/item/organ/vaurca/filtrationbit,
BP_FILTRATION_BIT = /obj/item/organ/vaurca/filtrationbit,
BP_HEART = /obj/item/organ/internal/heart/vaurca,
"phoron reserve tank" = /obj/item/organ/vaurca/preserve,
BP_PHORON_RESERVE = /obj/item/organ/vaurca/preserve,
BP_LIVER = /obj/item/organ/internal/liver/vaurca,
BP_KIDNEYS = /obj/item/organ/internal/kidneys/vaurca,
BP_STOMACH = /obj/item/organ/internal/stomach,
@@ -145,16 +145,16 @@
)
has_organ = list(
"neural socket" = /obj/item/organ/vaurca/neuralsocket,
BP_NEURAL_SOCKET = /obj/item/organ/vaurca/neuralsocket,
BP_LUNGS = /obj/item/organ/internal/lungs/vaurca,
BP_HEART = /obj/item/organ/internal/heart/vaurca,
"phoron reservoir" = /obj/item/organ/vaurca/reservoir,
"mechanical liver" = /obj/item/organ/internal/liver/vaurca/robo,
"mechanical kidneys" = /obj/item/organ/internal/kidneys/vaurca/robo,
BP_PHORON_RESERVOIR = /obj/item/organ/vaurca/reservoir,
BP_VAURCA_LIVER = /obj/item/organ/internal/liver/vaurca/robo,
BP_VAURCA_KIDNEYS = /obj/item/organ/internal/kidneys/vaurca/robo,
BP_STOMACH = /obj/item/organ/internal/stomach,
BP_BRAIN = /obj/item/organ/internal/brain/vaurca,
BP_EYES = /obj/item/organ/internal/eyes/vaurca,
"filtration bit" = /obj/item/organ/vaurca/filtrationbit
BP_FILTRATION_BIT = /obj/item/organ/vaurca/filtrationbit
)
default_h_style = "Bald"
+10 -10
View File
@@ -37,14 +37,14 @@
/obj/item/organ/internal/kidneys/vaurca/robo
icon_state = "kidney_vaurca"
organ_tag = "mechanical kidneys"
organ_tag = BP_VAURCA_KIDNEYS
robotic = 2
robotic_name = null
robotic_sprite = null
/obj/item/organ/internal/liver/vaurca/robo
icon_state = "liver_vaurca"
organ_tag = "mechanical liver"
organ_tag = BP_VAURCA_LIVER
robotic = 2
robotic_name = null
robotic_sprite = null
@@ -56,22 +56,22 @@
icon_state = "brain_vaurca"
/obj/item/organ/vaurca/reservoir
name = "phoron reservoir"
organ_tag = "phoron reservoir"
name = BP_PHORON_RESERVOIR
organ_tag = BP_PHORON_RESERVOIR
parent_organ = BP_CHEST
icon_state = "phoron_reservoir"
robotic = 1
/obj/item/organ/vaurca/filtrationbit
name = "filtration bit"
organ_tag = "filtration bit"
name = BP_FILTRATION_BIT
organ_tag = BP_FILTRATION_BIT
parent_organ = BP_HEAD
icon_state = "filter"
robotic = 2
/obj/item/organ/vaurca/neuralsocket
name = "neural socket"
organ_tag = "neural socket"
name = BP_NEURAL_SOCKET
organ_tag = BP_NEURAL_SOCKET
icon_state = "neural_socket"
parent_organ = BP_HEAD
robotic = 2
@@ -100,8 +100,8 @@ obj/item/organ/vaurca/neuralsocket/process()
..()
/obj/item/organ/vaurca/preserve
name = "phoron reserve tank"
organ_tag = "phoron reserve tank"
name = BP_PHORON_RESERVE
organ_tag = BP_PHORON_RESERVE
parent_organ = BP_CHEST
icon_state = "breathing_app"
robotic = 1
@@ -94,15 +94,15 @@
H.adjustToxLoss(-2 * removed)
return
if(alien == IS_VAURCA && H.species.has_organ["filtration bit"])
if(alien == IS_VAURCA && H.species.has_organ[BP_FILTRATION_BIT])
metabolism = REM * 20 //vaurcae metabolise phoron faster than other species - good for them if their filter isn't broken.
var/obj/item/organ/vaurca/filtrationbit/F = H.internal_organs_by_name["filtration bit"]
var/obj/item/organ/vaurca/filtrationbit/F = H.internal_organs_by_name[BP_FILTRATION_BIT]
if(isnull(F))
..()
else if(F.is_broken())
..()
else if(H.species.has_organ["phoron reserve tank"])
var/obj/item/organ/vaurca/preserve/P = H.internal_organs_by_name["phoron reserve tank"]
else if(H.species.has_organ[BP_PHORON_RESERVE])
var/obj/item/organ/vaurca/preserve/P = H.internal_organs_by_name[BP_PHORON_RESERVE]
if(isnull(P))
return
else if(P.is_broken())