Oxygen is Toxic to the Vox, Plasma Heals Plasmamen, Plasmaman Suit Autoextinguishes, Oxygen Burns Plasmamen

Oxygen is toxic to the Vox (as toxic as plasma).
Plasma healing plasmaman from swindly @
https://github.com/tgstation/tgstation/pull/24209
Plasmaman suit auto-extinguishing actually does something now.
Oxygen burns Plasmamen.
This commit is contained in:
KasparoVy
2017-02-21 07:18:04 -05:00
parent fb1cef8029
commit 829dcf4229
7 changed files with 40 additions and 8 deletions
+5
View File
@@ -497,6 +497,11 @@ BLIND // can't see anything
else
to_chat(user, "<span class='notice'>You attempt to button up the velcro on \the [src], before promptly realising how retarded you are.</span>")
/obj/item/clothing/suit/proc/auto_extinguish(var/mob/living/carbon/human/user)
if(istype(user))
to_chat(user, "<span class='warning'>You hear a soft click and a hiss from your suit as it automatically extinguishes the fire.</span>")
user.ExtinguishMob()
/obj/item/clothing/suit/equipped(var/mob/living/carbon/human/user, var/slot) //Handle tail-hiding on a by-species basis.
..()
if(ishuman(user) && hide_tail_by_species && slot == slot_wear_suit)
@@ -11,7 +11,7 @@
flags_inv = HIDEGLOVES|HIDESHOES
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
species_restricted = list("Plasmaman")
flags = STOPSPRESSUREDMAGE
flags = STOPSPRESSUREDMAGE | AUTOEXTINGUISH
icon_state = "plasmaman_suit"
item_state = "plasmaman_suit"
@@ -24,16 +24,14 @@
..(user)
to_chat(user, "<span class='info'>There are [extinguishes_left] extinguisher canisters left in this suit.</span>")
/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(var/mob/user)
var/mob/living/carbon/human/H=user
if(extinguishes_left)
/obj/item/clothing/suit/space/eva/plasmaman/auto_extinguish(var/mob/living/carbon/human/H)
if(istype(H) && extinguishes_left)
if(next_extinguish > world.time)
return
next_extinguish = world.time + extinguish_cooldown
extinguishes_left--
to_chat(H, "<span class='warning'>Your suit automatically extinguishes the fire.</span>")
H.ExtinguishMob()
..()
/obj/item/clothing/head/helmet/space/eva/plasmaman
name = "plasmaman helmet"
@@ -485,6 +485,8 @@
if(on_fire)
var/thermal_protection = get_thermal_protection()
if(wear_suit && wear_suit.flags & AUTOEXTINGUISH)
wear_suit.auto_extinguish(src)
if(thermal_protection >= FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT)
return
if(thermal_protection >= FIRE_SUIT_MAX_TEMP_PROTECT)
@@ -6,7 +6,7 @@
//language = "Clatter"
unarmed_type = /datum/unarmed_attack/punch
flags = IS_WHITELISTED | NO_BLOOD | NOTRANSSTING
flags = IS_WHITELISTED | NO_BLOOD | NOTRANSSTING | PLASMA_BASED
dietflags = DIET_OMNI
reagent_tag = PROCESS_ORG
@@ -15,6 +15,7 @@
butt_sprite = "plasma"
breath_type = "plasma"
poison_type = null
heat_level_1 = 350 // Heat damage level 1 above this point.
heat_level_2 = 400 // Heat damage level 2 above this point.
@@ -39,6 +39,25 @@
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
/datum/reagent/oxygen/on_mob_life(var/mob/living/carbon/human/H)
if(istype(H) && H.species && H.species.poison_type && H.species.poison_type == id)
H.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER) //Same as plasma.
if(istype(H) && H.species && H.species.flags & PLASMA_BASED) //Oxygen lights up plasma-based lifeforms.
if(prob(60))
H.adjust_fire_stacks(0.25)
if(prob(40))
H.IgniteMob() //Light them up.
..()
/datum/reagent/oxygen/reaction_mob(var/mob/living/carbon/human/H, method=TOUCH, volume)
if(istype(H) && H.species && H.species.flags & PLASMA_BASED) //Oxygen lights up plasma-based lifeforms.
if(method == INGEST)
to_chat(H, "<span class='warning'>You feel a horrible burning from within as your body bursts into flame!</span>")
if(method == TOUCH)
to_chat(H, "<span class='warning'>Your body bursts into flames as it comes into contact with the substance!</span>")
H.adjust_fire_stacks(1) //Same as phlogiston, guaranteed one-time firestack delivery and ignition.
H.IgniteMob()
..()
/datum/reagent/nitrogen
name = "Nitrogen"
@@ -22,7 +22,12 @@
color = "#7A2B94"
/datum/reagent/plasma/on_mob_life(mob/living/M)
M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
var/mob/living/carbon/human/H = M
if(istype(H) && H.species && H.species.flags & PLASMA_BASED) //Plasma shouldn't poison plasmamen.
if(prob(20))
H.heal_organ_damage(1, 1)
else
M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
if(holder.has_reagent("epinephrine"))
holder.remove_reagent("epinephrine", 2)
if(iscarbon(M))