mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
252 lines
8.9 KiB
Plaintext
252 lines
8.9 KiB
Plaintext
pl_control/var
|
|
PLASMA_DMG = 3
|
|
PLASMA_DMG_NAME = "Plasma Damage Multiplier"
|
|
PLASMA_DMG_DESC = "Multiplier on how much damage inhaling plasma can do."
|
|
|
|
OXY_TO_PLASMA = 1
|
|
OXY_TO_PLASMA_NAME = "O2/Plasma Ratio"
|
|
OXY_TO_PLASMA_DESC = "Multiplier for the ratio of oxygen to plasma required in fires."
|
|
|
|
CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
|
CLOTH_CONTAMINATION_NAME = "Plasma - Cloth Contamination"
|
|
CLOTH_CONTAMINATION_RANDOM = 60
|
|
CLOTH_CONTAMINATION_METHOD = "Toggle"
|
|
CLOTH_CONTAMINATION_DESC = "If set to nonzero, plasma will contaminate cloth items (uniforms, backpacks, etc.)\
|
|
and cause a small amount of damage over time to anyone carrying or wearing them. Contamination can be detected\
|
|
with a Health Analyzer, and washed off in the washer."
|
|
|
|
ALL_ITEM_CONTAMINATION = 0 //If this is on, any item can be contaminated, so suits and tools must be discarded or
|
|
//decontaminated.
|
|
ALL_ITEM_CONTAMINATION_NAME = "Plasma - Full Contamination"
|
|
ALL_ITEM_CONTAMINATION_RANDOM = 10
|
|
ALL_ITEM_CONTAMINATION_METHOD = "Toggle"
|
|
ALL_ITEM_CONTAMINATION_DESC = "Like Cloth Contamination, but all item types are susceptible."
|
|
|
|
PLASMAGUARD_ONLY = 0
|
|
PLASMAGUARD_ONLY_NAME = "Plasma - Biosuits/Spacesuits Only"
|
|
PLASMAGUARD_ONLY_RANDOM = 20
|
|
PLASMAGUARD_ONLY_METHOD = "Toggle"
|
|
PLASMAGUARD_ONLY_DESC = "If on, any suits that are not biosuits or space suits will not protect against contamination."
|
|
|
|
//CANISTER_CORROSION = 0 //If this is on, plasma must be stored in orange tanks and canisters,
|
|
//CANISTER_CORROSION_RANDOM = 20 //or it will corrode the tank.
|
|
//CANISTER_CORROSION_METHOD = "Toggle"
|
|
|
|
GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 10,000.
|
|
GENETIC_CORRUPTION_NAME = "Plasma - Genetic Corruption"
|
|
GENETIC_CORRUPTION_RANDOM = "PROB10/3d6"
|
|
GENETIC_CORRUPTION_METHOD = "Numeric"
|
|
GENETIC_CORRUPTION_DESC = "When set to a probability in 1000, any humans in plasma will have this chance to develop a random mutation."
|
|
|
|
SKIN_BURNS = 1 //Plasma has an effect similar to mustard gas on the un-suited.
|
|
SKIN_BURNS_NAME = "Plasma - Skin Burns"
|
|
SKIN_BURNS_RANDOM = 10
|
|
SKIN_BURNS_METHOD = "Toggle"
|
|
SKIN_BURNS_DESC = "When toggled, humans with exposed skin will suffer burns (similar to mustard gas) in plasma."
|
|
|
|
//PLASMA_INJECTS_TOXINS = 0 //Plasma damage injects the toxins chemical to do damage over time.
|
|
//PLASMA_INJECTS_TOXINS_RANDOM = 30
|
|
//PLASMA_INJECTS_TOXINS_METHOD = "Toggle"
|
|
|
|
EYE_BURNS = 0 //Plasma burns the eyes of anyone not wearing eye protection.
|
|
EYE_BURNS_NAME = "Plasma - Eye Burns"
|
|
EYE_BURNS_RANDOM = 30
|
|
EYE_BURNS_METHOD = "Toggle"
|
|
EYE_BURNS_DESC = "When toggled, humans without masks that cover the eyes will suffer temporary blurriness and sight loss,\
|
|
and may need glasses to see again if exposed for long durations."
|
|
|
|
//N2O_REACTION = 0 //Plasma can react with N2O, making sparks and starting a fire if levels are high.
|
|
//N2O_REACTION_RANDOM = 5
|
|
|
|
//PLASMA_COLOR = "onturf" //Plasma can change colors yaaaay!
|
|
//PLASMA_COLOR_RANDOM = "PICKonturf,onturf"
|
|
|
|
//PLASMA_DMG_OFFSET = 1
|
|
//PLASMA_DMG_OFFSET_RANDOM = "1d5"
|
|
//PLASMA_DMG_QUOTIENT = 10
|
|
//PLASMA_DMG_QUOTIENT_RANDOM = "1d10+4"
|
|
|
|
CONTAMINATION_LOSS = 0.1
|
|
_NAME = "Plasma - Contamination Damage"
|
|
CONTAMINATION_LOSS_DESC = "A number representing the damage done per life cycle by contaminated items."
|
|
|
|
PLASMA_HALLUCINATION = 1
|
|
PLASMA_HALLUCINATION_NAME = "Plasma - Hallucination"
|
|
PLASMA_HALLUCINATION_METHOD = "Toggle"
|
|
PLASMA_HALLUCINATION_DESC = "If toggled, uses the remnants of the hallucination code to induce visions in those\
|
|
who breathe plasma."
|
|
N2O_HALLUCINATION = 1
|
|
N2O_HALLUCINATION_NAME = "Nitrous Oxide - Hallucination"
|
|
N2O_HALLUCINATION_METHOD = "Toggle"
|
|
N2O_HALLUCINATION_DESC = "If toggled, uses the remnants of the hallucination code to induce visions in those\
|
|
who breathe N2O."
|
|
//CONTAMINATION_LOSS_RANDOM = "5d5"
|
|
//Plasma has a chance to be a different color.
|
|
|
|
obj/var/contaminated = 0
|
|
|
|
obj/item/proc
|
|
can_contaminate()
|
|
if(flags & PLASMAGUARD) return 0
|
|
if((flags & SUITSPACE) && !vsc.plc.PLASMAGUARD_ONLY) return 1
|
|
if(vsc.plc.ALL_ITEM_CONTAMINATION) return 1
|
|
else if(istype(src,/obj/item/clothing)) return 1
|
|
else if(istype(src,/obj/item/weapon/storage/backpack)) return 1
|
|
|
|
/mob/living/carbon/human/proc/contaminate()
|
|
if(!pl_suit_protected())
|
|
suit_contamination()
|
|
else if(vsc.plc.PLASMAGUARD_ONLY)
|
|
if(!wear_suit.flags & PLASMAGUARD) wear_suit.contaminated = 1
|
|
|
|
|
|
|
|
if(!pl_head_protected())
|
|
if(wear_mask) wear_mask.contaminated = 1
|
|
if(prob(1)) suit_contamination() //Plasma can sometimes get through such an open suit.
|
|
else if(vsc.plc.PLASMAGUARD_ONLY)
|
|
if(!head.flags & PLASMAGUARD) head.contaminated = 1
|
|
|
|
if(istype(back,/obj/item/weapon/storage/backpack) || vsc.plc.ALL_ITEM_CONTAMINATION)
|
|
back.contaminated = 1
|
|
|
|
if(l_hand)
|
|
if(l_hand.can_contaminate()) l_hand.contaminated = 1
|
|
if(r_hand)
|
|
if(r_hand.can_contaminate()) r_hand.contaminated = 1
|
|
if(belt)
|
|
if(belt.can_contaminate()) belt.contaminated = 1
|
|
if(wear_id && !pl_suit_protected())
|
|
if(wear_id.can_contaminate()) wear_id.contaminated = 1
|
|
if(l_ear && !pl_head_protected())
|
|
if(l_ear.can_contaminate()) l_ear.contaminated = 1
|
|
if(r_ear && !pl_head_protected())
|
|
if(r_ear.can_contaminate()) r_ear.contaminated = 1
|
|
|
|
/mob/living/carbon/human/proc/pl_effects()
|
|
if(stat >= 2)
|
|
return
|
|
if(vsc.plc.SKIN_BURNS)
|
|
if(!pl_head_protected() || !pl_suit_protected())
|
|
burn_skin(0.75)
|
|
if (coughedtime != 1)
|
|
coughedtime = 1
|
|
emote("gasp")
|
|
spawn (20)
|
|
coughedtime = 0
|
|
updatehealth()
|
|
if(vsc.plc.EYE_BURNS && !pl_head_protected())
|
|
if(!wear_mask)
|
|
if(prob(20)) usr << "\red Your eyes burn!"
|
|
eye_stat += 2.5
|
|
eye_blurry += 1.5
|
|
if (eye_stat >= 20 && !(disabilities & 1))
|
|
src << "\red Your eyes start to burn badly!"
|
|
disabilities |= 1
|
|
if (prob(max(0,eye_stat - 20) + 1))
|
|
src << "\red You are blinded!"
|
|
eye_blind += 20
|
|
eye_stat = max(eye_stat-25,0)
|
|
else
|
|
if(!(wear_mask.flags & MASKCOVERSEYES))
|
|
if(prob(20)) usr << "\red Your eyes burn!"
|
|
eye_stat += 2.5
|
|
eye_blurry = min(eye_blurry+1.5,50)
|
|
if (eye_stat >= 20 && !(disabilities & 1))
|
|
src << "\red Your eyes start to burn badly!"
|
|
disabilities |= 1
|
|
if (prob(max(0,eye_stat - 20) + 1) &&!eye_blind)
|
|
src << "\red You are blinded!"
|
|
eye_blind += 20
|
|
eye_stat = 0
|
|
if(vsc.plc.GENETIC_CORRUPTION)
|
|
if(rand(1,1000) < vsc.plc.GENETIC_CORRUPTION)
|
|
randmutb(src)
|
|
src << "\red High levels of toxins cause you to spontaneously mutate."
|
|
domutcheck(src,null)
|
|
|
|
/mob/living/carbon/human/proc/FireBurn(mx as num)
|
|
//NO! NOT INTO THE PIT! IT BURRRRRNS!
|
|
mx *= vsc.BURN_DMG
|
|
|
|
var
|
|
head_exposure = 1
|
|
chest_exposure = 1
|
|
groin_exposure = 1
|
|
legs_exposure = 1
|
|
feet_exposure = 1
|
|
arms_exposure = 1
|
|
hands_exposure = 1
|
|
for(var/obj/item/clothing/C in src)
|
|
if(l_hand == C || r_hand == C) continue
|
|
if(C.body_parts_covered & HEAD)
|
|
head_exposure *= C.heat_transfer_coefficient
|
|
if(C.body_parts_covered & UPPER_TORSO)
|
|
chest_exposure *= C.heat_transfer_coefficient
|
|
if(C.body_parts_covered & LOWER_TORSO)
|
|
groin_exposure *= C.heat_transfer_coefficient
|
|
if(C.body_parts_covered & LEGS)
|
|
legs_exposure *= C.heat_transfer_coefficient
|
|
if(C.body_parts_covered & FEET)
|
|
feet_exposure *= C.heat_transfer_coefficient
|
|
if(C.body_parts_covered & ARMS)
|
|
arms_exposure *= C.heat_transfer_coefficient
|
|
if(C.body_parts_covered & HANDS)
|
|
arms_exposure *= C.heat_transfer_coefficient
|
|
|
|
mx *= 10
|
|
|
|
apply_damage("head", 0, 2.5*mx*head_exposure)
|
|
apply_damage("chest", 0, 2.5*mx*chest_exposure)
|
|
apply_damage("groin", 0, 2.0*mx*groin_exposure)
|
|
apply_damage("l_leg", 0, 0.6*mx*legs_exposure)
|
|
apply_damage("r_leg", 0, 0.6*mx*legs_exposure)
|
|
apply_damage("l_arm", 0, 0.4*mx*arms_exposure)
|
|
apply_damage("r_arm", 0, 0.4*mx*arms_exposure)
|
|
apply_damage("l_foot", 0, 0.25*mx*feet_exposure)
|
|
apply_damage("r_foot", 0, 0.25*mx*feet_exposure)
|
|
apply_damage("l_hand", 0, 0.25*mx*hands_exposure)
|
|
apply_damage("r_hand", 0, 0.25*mx*hands_exposure)
|
|
|
|
/mob/living/carbon/human/proc/suit_interior()
|
|
. = list()
|
|
if(!pl_suit_protected())
|
|
for(var/obj/item/I in src)
|
|
. += I
|
|
return .
|
|
. += wear_mask
|
|
. += w_uniform
|
|
. += shoes
|
|
. += gloves
|
|
if(!pl_head_protected())
|
|
. += head
|
|
|
|
/mob/living/carbon/human/proc/pl_head_protected()
|
|
if(head)
|
|
if(head.flags & PLASMAGUARD || head.flags & HEADSPACE) return 1
|
|
return 0
|
|
|
|
/mob/living/carbon/human/proc/pl_suit_protected()
|
|
if(wear_suit)
|
|
if(wear_suit.flags & PLASMAGUARD || wear_suit.flags & SUITSPACE) return 1
|
|
return 0
|
|
|
|
/mob/living/carbon/human/proc/suit_contamination()
|
|
if(vsc.plc.ALL_ITEM_CONTAMINATION)
|
|
for(var/obj/item/I in src)
|
|
I.contaminated = 1
|
|
else
|
|
if(wear_suit) wear_suit.contaminated = 1
|
|
if(w_uniform) w_uniform.contaminated = 1
|
|
if(shoes) shoes.contaminated = 1
|
|
if(gloves) gloves.contaminated = 1
|
|
if(wear_mask) wear_mask.contaminated = 1
|
|
|
|
|
|
turf/Entered(obj/item/I)
|
|
. = ..()
|
|
if(istype(I))
|
|
var/datum/gas_mixture/env = return_air(1)
|
|
if(env.toxins > 0.35)
|
|
if(I.can_contaminate())
|
|
I.contaminated = 1 |