diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm index a9f08c05312..078e948d978 100644 --- a/code/game/turfs/open/lava.dm +++ b/code/game/turfs/open/lava.dm @@ -1,4 +1,8 @@ -///LAVA +/* + * LAVA + * PLASMA LAVA + * MAFIA PLASMA LAVA + */ /turf/open/lava name = "lava" @@ -260,3 +264,77 @@ /turf/open/lava/smooth/airless initial_gas_mix = AIRLESS_ATMOS + +/turf/open/lava/plasma + name = "liquid plasma" + desc = "A flowing stream of chilled liquid plasma. You probably shouldn't get in." + icon_state = "liquidplasma" + initial_gas_mix = "n2=82;plasma=24;TEMP=120" + baseturfs = /turf/open/lava/plasma + + light_range = 3 + light_power = 0.75 + light_color = LIGHT_COLOR_PURPLE + immunity_trait = TRAIT_SNOWSTORM_IMMUNE + immunity_resistance_flags = FREEZE_PROOF + lava_temperature = 100 + +/turf/open/lava/plasma/examine(mob/user) + . = ..() + . += span_info("Some liquid plasma could probably be scooped up with a container.") + +/turf/open/lava/plasma/attackby(obj/item/I, mob/user, params) + if(!I.is_open_container()) + return ..() + if(!I.reagents.add_reagent(/datum/reagent/toxin/plasma, rand(5, 10))) + to_chat(user, span_warning("[I] is full.")) + return + user.visible_message(span_notice("[user] scoops some plasma from the [src] with [I]."), span_notice("You scoop out some plasma from the [src] using [I].")) + +/turf/open/lava/plasma/do_burn(atom/movable/burn_target, delta_time = 1) + . = TRUE + if(isobj(burn_target)) + return FALSE // Does nothing against objects. Old code. + + var/mob/living/burn_living = burn_target + burn_living.adjustFireLoss(2) + if(QDELETED(burn_living)) + return + burn_living.adjust_fire_stacks(20) //dipping into a stream of plasma would probably make you more flammable than usual + burn_living.adjust_bodytemperature(-rand(50,65)) //its cold, man + if(!ishuman(burn_living) || DT_PROB(65, delta_time)) + return + var/mob/living/carbon/human/burn_human = burn_living + var/datum/species/burn_species = burn_human.dna.species + if(istype(burn_species, /datum/species/plasmaman) || istype(burn_species, /datum/species/android)) //ignore plasmamen/robotic species + return + + var/list/plasma_parts = list()//a list of the organic parts to be turned into plasma limbs + var/list/robo_parts = list()//keep a reference of robotic parts so we know if we can turn them into a plasmaman + for(var/obj/item/bodypart/burn_limb as anything in burn_human.bodyparts) + if(IS_ORGANIC_LIMB(burn_limb) && burn_limb.limb_id != SPECIES_PLASMAMAN) //getting every organic, non-plasmaman limb (augments/androids are immune to this) + plasma_parts += burn_limb + if(!IS_ORGANIC_LIMB(burn_limb)) + robo_parts += burn_limb + + burn_human.adjustToxLoss(15) + burn_human.adjustFireLoss(25) + if(plasma_parts.len) + var/obj/item/bodypart/burn_limb = pick(plasma_parts) //using the above-mentioned list to get a choice of limbs + burn_human.emote("scream") + ADD_TRAIT(burn_limb, TRAIT_PLASMABURNT, name) + burn_human.update_body_parts() + burn_human.emote("scream") + burn_human.visible_message(span_warning("[burn_human]'s [burn_limb.plaintext_zone] melts down to the bone!"), \ + span_userdanger("You scream out in pain as your [burn_limb.plaintext_zone] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!")) + if(!plasma_parts.len && !robo_parts.len) //a person with no potential organic limbs left AND no robotic limbs, time to turn them into a plasmaman + burn_human.ignite_mob() + burn_human.set_species(/datum/species/plasmaman) + burn_human.visible_message(span_warning("[burn_human] bursts into a brilliant purple flame as [burn_human.p_their()] entire body is that of a skeleton!"), \ + span_userdanger("Your senses numb as all of your remaining flesh is turned into a purple slurry, sloshing off your body and leaving only your bones to show in a vibrant purple!")) + +//mafia specific tame happy plasma (normal atmos, no slowdown) +/turf/open/lava/plasma/mafia + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + baseturfs = /turf/open/lava/plasma/mafia + slowdown = 0 diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index b7613fa7447..6a492e9e2da 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -153,91 +153,13 @@ shuttleId = "snowdin_mining" possible_destinations = "snowdin_mining_top;snowdin_mining_down" - -//liquid plasma!!!!!!// - /turf/open/floor/iron/dark/snowdin initial_gas_mix = FROZEN_ATMOS planetary_atmos = 1 temperature = 180 -/turf/open/lava/plasma - name = "liquid plasma" - desc = "A flowing stream of chilled liquid plasma. You probably shouldn't get in." - icon_state = "liquidplasma" - initial_gas_mix = "n2=82;plasma=24;TEMP=120" - baseturfs = /turf/open/lava/plasma - - light_range = 3 - light_power = 0.75 - light_color = LIGHT_COLOR_PURPLE - immunity_trait = TRAIT_SNOWSTORM_IMMUNE - immunity_resistance_flags = FREEZE_PROOF - lava_temperature = 100 - -/turf/open/lava/plasma/examine(mob/user) - . = ..() - . += span_info("Some liquid plasma could probably be scooped up with a container.") - -/turf/open/lava/plasma/attackby(obj/item/I, mob/user, params) - if(!I.is_open_container()) - return ..() - if(!I.reagents.add_reagent(/datum/reagent/toxin/plasma, rand(5, 10))) - to_chat(user, span_warning("[I] is full.")) - return - user.visible_message(span_notice("[user] scoops some plasma from the [src] with [I]."), span_notice("You scoop out some plasma from the [src] using [I].")) - -/turf/open/lava/plasma/do_burn(atom/movable/burn_target, delta_time = 1) - . = TRUE - if(isobj(burn_target)) - return FALSE // Does nothing against objects. Old code. - - var/mob/living/burn_living = burn_target - burn_living.adjustFireLoss(2) - if(QDELETED(burn_living)) - return - burn_living.adjust_fire_stacks(20) //dipping into a stream of plasma would probably make you more flammable than usual - burn_living.adjust_bodytemperature(-rand(50,65)) //its cold, man - if(!ishuman(burn_living) || DT_PROB(65, delta_time)) - return - var/mob/living/carbon/human/burn_human = burn_living - var/datum/species/burn_species = burn_human.dna.species - if(istype(burn_species, /datum/species/plasmaman) || istype(burn_species, /datum/species/android)) //ignore plasmamen/robotic species - return - - var/list/plasma_parts = list()//a list of the organic parts to be turned into plasma limbs - var/list/robo_parts = list()//keep a reference of robotic parts so we know if we can turn them into a plasmaman - for(var/obj/item/bodypart/burn_limb as anything in burn_human.bodyparts) - if(IS_ORGANIC_LIMB(burn_limb) && burn_limb.limb_id != SPECIES_PLASMAMAN) //getting every organic, non-plasmaman limb (augments/androids are immune to this) - plasma_parts += burn_limb - if(!IS_ORGANIC_LIMB(burn_limb)) - robo_parts += burn_limb - - burn_human.adjustToxLoss(15) - burn_human.adjustFireLoss(25) - if(plasma_parts.len) - var/obj/item/bodypart/burn_limb = pick(plasma_parts) //using the above-mentioned list to get a choice of limbs - burn_human.emote("scream") - ADD_TRAIT(burn_limb, TRAIT_PLASMABURNT, name) - burn_human.update_body_parts() - burn_human.emote("scream") - burn_human.visible_message(span_warning("[burn_human]'s [burn_limb.plaintext_zone] melts down to the bone!"), \ - span_userdanger("You scream out in pain as your [burn_limb.plaintext_zone] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!")) - if(!plasma_parts.len && !robo_parts.len) //a person with no potential organic limbs left AND no robotic limbs, time to turn them into a plasmaman - burn_human.ignite_mob() - burn_human.set_species(/datum/species/plasmaman) - burn_human.visible_message(span_warning("[burn_human] bursts into a brilliant purple flame as [burn_human.p_their()] entire body is that of a skeleton!"), \ - span_userdanger("Your senses numb as all of your remaining flesh is turned into a purple slurry, sloshing off your body and leaving only your bones to show in a vibrant purple!")) - -//mafia specific tame happy plasma (normal atmos, no slowdown) -/turf/open/lava/plasma/mafia - initial_gas_mix = OPENTURF_DEFAULT_ATMOS - baseturfs = /turf/open/lava/plasma/mafia - slowdown = 0 - /////////// papers - /obj/item/paper/crumpled/ruins/snowdin/foreshadowing name = "scribbled note" default_raw_text = {"Something's gone VERY wrong here. Jouslen has been mumbling about some weird shit in his cabin during the night and he seems always tired when we're working. I tried to confront him about it and he blew up on me,