mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 16:13:19 +01:00
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:
@@ -23,6 +23,7 @@
|
||||
|
||||
#define BLOCK_GAS_SMOKE_EFFECT 8192 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
|
||||
#define THICKMATERIAL 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. (NOTE: flag shared with BLOCK_GAS_SMOKE_EFFECT)
|
||||
#define AUTOEXTINGUISH 16384 // Suits that have this will automatically extinguish a burning mob when worn.
|
||||
|
||||
//Reagent flags
|
||||
#define REAGENT_NOREACT 1
|
||||
@@ -43,6 +44,7 @@
|
||||
#define ALL_RPARTS 2048
|
||||
#define NOGUNS 4096
|
||||
#define NOTRANSSTING 8192
|
||||
#define PLASMA_BASED 16384
|
||||
|
||||
//Species clothing flags
|
||||
#define HAS_UNDERWEAR 1
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user