Add phoron and nitrogen breather traits, and water breather trait

This commit is contained in:
Chompstation Bot
2021-06-23 16:36:10 +00:00
parent 968067d0e7
commit a424fbaf12
5 changed files with 59 additions and 17 deletions

View File

@@ -59,7 +59,8 @@
//Called when face-down in the water or otherwise over their head.
// Return: TRUE for able to breathe fine in water.
/datum/species/custom/can_breathe_water()
return ..()
return /datum/trait/positive/water_breather in traits
//Called during handle_environment in Life() ticks.
// Return: Not used.
@@ -67,19 +68,18 @@
return ..()
//Called when spawning to equip them with special things.
/datum/species/custom/equip_survival_gear(var/mob/living/carbon/human/H)
/* Example, from Vox:
H.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(H), slot_wear_mask)
if(H.backbag == 1)
H.equip_to_slot_or_del(new /obj/item/weapon/tank/vox(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/vox(H), slot_r_hand)
H.internal = H.back
else
H.equip_to_slot_or_del(new /obj/item/weapon/tank/vox(H), slot_r_hand)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/vox(H.back), slot_in_backpack)
H.internal = H.r_hand
H.internal = locate(/obj/item/weapon/tank) in H.contents
if(istype(H.internal,/obj/item/weapon/tank) && H.internals)
H.internals.icon_state = "internal1"
*/
return ..()
/datum/species/custom/equip_survival_gear(var/mob/living/carbon/human/H, var/extendedtank = 0, var/comprehensive = 0)
. = ..()
if(breath_type != "oxygen")
H.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(H), slot_wear_mask)
var/obj/item/weapon/tank/tankpath
if(breath_type == "phoron")
tankpath = /obj/item/weapon/tank/vox
else
tankpath = text2path("/obj/item/weapon/tank/" + breath_type)
if(tankpath)
H.equip_to_slot_or_del(new tankpath(H), slot_r_hand)
H.internal = H.r_hand
if(istype(H.internal,/obj/item/weapon/tank) && H.internals)
H.internals.icon_state = "internal1"

View File

@@ -151,6 +151,7 @@
desc = "Your light weight and poor balance make you very susceptible to unhelpful bumping. Think of it like a bowling ball versus a pin. (STOP TAKING THIS AS SECURITY! We're MRP, so expect to lose your junk immediately, especially in events. - Love, Admins)" //CHOMP Edit btw
cost = -2
var_changes = list("lightweight" = 1)
<<<<<<< HEAD
// YW Addition
/datum/trait/negative/light_sensitivity
@@ -176,9 +177,28 @@
H.add_modifier(/datum/modifier/trait/haemophilia)
// YW Addition End
||||||| parent of d9d6ef92c3... Merge pull request #10270 from Little-119/breather-traits
=======
>>>>>>> d9d6ef92c3... Merge pull request #10270 from Little-119/breather-traits
/datum/trait/negative/neural_hypersensitivity
name = "Neural Hypersensitivity"
desc = "Your nerves are particularly sensitive to physical changes, leading to experiencing twice the intensity of pain and pleasure alike. Doubles traumatic shock."
cost = -1
var_changes = list("trauma_mod" = 2)
can_take = ORGANICS
/datum/trait/negative/breathes
cost = -2
can_take = ORGANICS
/datum/trait/negative/breathes/phoron
name = "Phoron Breather"
desc = "You breathe phoron instead of oxygen (which is poisonous to you), much like a Vox."
var_changes = list("breath_type" = "phoron", "poison_type" = "oxygen")
/datum/trait/negative/breathes/nitrogen
name = "Nitrogen Breather"
desc = "You breathe nitrogen instead of oxygen (which is poisonous to you). Incidentally, phoron isn't poisonous to breathe to you."
var_changes = list("breath_type" = "nitrogen", "poison_type" = "oxygen")

View File

@@ -207,3 +207,8 @@
H.verbs |= /mob/living/carbon/human/proc/weave_structure
H.verbs |= /mob/living/carbon/human/proc/weave_item
H.verbs |= /mob/living/carbon/human/proc/set_silk_color
/datum/trait/positive/water_breather
name = "Water Breather"
desc = "You can breathe under water."
cost = 1

View File

@@ -84,6 +84,7 @@
var/sizemult
var/weight
var/aflags
var/breath_type = "oxygen"
/datum/transhuman/body_record/New(var/copyfrom, var/add_to_db = 0, var/ckeylock = 0)
..()
@@ -120,6 +121,7 @@
sizemult = M.size_multiplier
weight = M.weight
aflags = M.appearance_flags
breath_type = M.species.breath_type
//Probably should
M.dna.check_integrity()

View File

@@ -69,6 +69,21 @@
else if(status == 3) //Digital organ
I.digitize()
//Give breathing equipment if needed
if(current_project.breath_type != "oxygen")
H.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(H), slot_wear_mask)
var/obj/item/weapon/tank/tankpath
if(current_project.breath_type == "phoron")
tankpath = /obj/item/weapon/tank/vox
else
tankpath = text2path("/obj/item/weapon/tank/" + current_project.breath_type)
if(tankpath)
H.equip_to_slot_or_del(new tankpath(H), slot_back)
H.internal = H.back
if(istype(H.internal,/obj/item/weapon/tank) && H.internals)
H.internals.icon_state = "internal1"
occupant = H
//Set the name or generate one