mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 13:37:58 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into HereWeGoAgain
This commit is contained in:
@@ -209,17 +209,17 @@ var/const/INGEST = 2
|
||||
//Check if this mob's species is set and can process this type of reagent
|
||||
var/can_process = 0
|
||||
//If we somehow avoided getting a species or reagent_tag set, we'll assume we aren't meant to process ANY reagents (CODERS: SET YOUR SPECIES AND TAG!)
|
||||
if(H.species && H.species.reagent_tag)
|
||||
if((R.process_flags & SYNTHETIC) && (H.species.reagent_tag & PROCESS_SYN)) //SYNTHETIC-oriented reagents require PROCESS_SYN
|
||||
if(H.dna.species && H.dna.species.reagent_tag)
|
||||
if((R.process_flags & SYNTHETIC) && (H.dna.species.reagent_tag & PROCESS_SYN)) //SYNTHETIC-oriented reagents require PROCESS_SYN
|
||||
can_process = 1
|
||||
if((R.process_flags & ORGANIC) && (H.species.reagent_tag & PROCESS_ORG)) //ORGANIC-oriented reagents require PROCESS_ORG
|
||||
if((R.process_flags & ORGANIC) && (H.dna.species.reagent_tag & PROCESS_ORG)) //ORGANIC-oriented reagents require PROCESS_ORG
|
||||
can_process = 1
|
||||
//Species with PROCESS_DUO are only affected by reagents that affect both organics and synthetics, like acid and hellwater
|
||||
if((R.process_flags & ORGANIC) && (R.process_flags & SYNTHETIC) && (H.species.reagent_tag & PROCESS_DUO))
|
||||
if((R.process_flags & ORGANIC) && (R.process_flags & SYNTHETIC) && (H.dna.species.reagent_tag & PROCESS_DUO))
|
||||
can_process = 1
|
||||
|
||||
//If handle_reagents returns 0, it's doing the reagent removal on its own
|
||||
var/species_handled = !(H.species.handle_reagents(H, R))
|
||||
var/species_handled = !(H.dna.species.handle_reagents(H, R))
|
||||
can_process = can_process && !species_handled
|
||||
//If the mob can't process it, remove the reagent at it's normal rate without doing any addictions, overdoses, or on_mob_life() for the reagent
|
||||
if(can_process == 0)
|
||||
@@ -481,13 +481,13 @@ var/const/INGEST = 2
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
//Check if this mob's species is set and can process this type of reagent
|
||||
if(H.species && H.species.reagent_tag)
|
||||
if((R.process_flags & SYNTHETIC) && (H.species.reagent_tag & PROCESS_SYN)) //SYNTHETIC-oriented reagents require PROCESS_SYN
|
||||
if(H.dna.species && H.dna.species.reagent_tag)
|
||||
if((R.process_flags & SYNTHETIC) && (H.dna.species.reagent_tag & PROCESS_SYN)) //SYNTHETIC-oriented reagents require PROCESS_SYN
|
||||
can_process = 1
|
||||
if((R.process_flags & ORGANIC) && (H.species.reagent_tag & PROCESS_ORG)) //ORGANIC-oriented reagents require PROCESS_ORG
|
||||
if((R.process_flags & ORGANIC) && (H.dna.species.reagent_tag & PROCESS_ORG)) //ORGANIC-oriented reagents require PROCESS_ORG
|
||||
can_process = 1
|
||||
//Species with PROCESS_DUO are only affected by reagents that affect both organics and synthetics, like acid and hellwater
|
||||
if((R.process_flags & ORGANIC) && (R.process_flags & SYNTHETIC) && (H.species.reagent_tag & PROCESS_DUO))
|
||||
if((R.process_flags & ORGANIC) && (R.process_flags & SYNTHETIC) && (H.dna.species.reagent_tag & PROCESS_DUO))
|
||||
can_process = 1
|
||||
//We'll assume that non-human mobs lack the ability to process synthetic-oriented reagents (adjust this if we need to change that assumption)
|
||||
else
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
if(H.can_eat(diet_flags)) //Make sure the species has it's dietflag set, otherwise it can't digest any nutrients
|
||||
if(prob(50))
|
||||
M.adjustBruteLoss(-1)
|
||||
if(!(NO_BLOOD in H.species.species_traits))//do not restore blood on things with no blood by nature.
|
||||
if(!(NO_BLOOD in H.dna.species.species_traits))//do not restore blood on things with no blood by nature.
|
||||
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
H.blood_volume += 0.4
|
||||
..()
|
||||
@@ -66,7 +66,7 @@
|
||||
M.satiety += 30
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!(NO_BLOOD in H.species.species_traits))//do not restore blood on things with no blood by nature.
|
||||
if(!(NO_BLOOD in H.dna.species.species_traits))//do not restore blood on things with no blood by nature.
|
||||
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
H.blood_volume += 0.5
|
||||
..()
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
|
||||
if(ishuman(M) && prob(33))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!(NO_BLOOD in H.species.species_traits))//do not restore blood on things with no blood by nature.
|
||||
if(!(NO_BLOOD in H.dna.species.species_traits))//do not restore blood on things with no blood by nature.
|
||||
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
H.blood_volume += 1
|
||||
..()
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
/datum/reagent/iron/on_mob_life(mob/living/M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.species.exotic_blood && !(NO_BLOOD in H.species.species_traits))
|
||||
if(!H.dna.species.exotic_blood && !(NO_BLOOD in H.dna.species.species_traits))
|
||||
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
H.blood_volume += 0.8
|
||||
..()
|
||||
@@ -318,8 +318,8 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
|
||||
head_organ.h_style = random_hair_style(H.gender, head_organ.species.name)
|
||||
head_organ.f_style = random_facial_hair_style(H.gender, head_organ.species.name)
|
||||
head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name)
|
||||
head_organ.f_style = random_facial_hair_style(H.gender, head_organ.dna.species.name)
|
||||
H.update_hair()
|
||||
H.update_fhair()
|
||||
..()
|
||||
@@ -340,14 +340,14 @@
|
||||
var/datum/sprite_accessory/tmp_hair_style = hair_styles_full_list["Very Long Hair"]
|
||||
var/datum/sprite_accessory/tmp_facial_hair_style = facial_hair_styles_list["Very Long Beard"]
|
||||
|
||||
if(head_organ.species.name in tmp_hair_style.species_allowed) //If 'Very Long Hair' is a style the person's species can have, give it to them.
|
||||
if(head_organ.dna.species.name in tmp_hair_style.species_allowed) //If 'Very Long Hair' is a style the person's species can have, give it to them.
|
||||
head_organ.h_style = "Very Long Hair"
|
||||
else //Otherwise, give them a random hair style.
|
||||
head_organ.h_style = random_hair_style(H.gender, head_organ.species.name)
|
||||
if(head_organ.species.name in tmp_facial_hair_style.species_allowed) //If 'Very Long Beard' is a style the person's species can have, give it to them.
|
||||
head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name)
|
||||
if(head_organ.dna.species.name in tmp_facial_hair_style.species_allowed) //If 'Very Long Beard' is a style the person's species can have, give it to them.
|
||||
head_organ.f_style = "Very Long Beard"
|
||||
else //Otherwise, give them a random facial hair style.
|
||||
head_organ.f_style = random_facial_hair_style(H.gender, head_organ.species.name)
|
||||
head_organ.f_style = random_facial_hair_style(H.gender, head_organ.dna.species.name)
|
||||
H.update_hair()
|
||||
H.update_fhair()
|
||||
if(!H.wear_mask || H.wear_mask && !istype(H.wear_mask, /obj/item/clothing/mask/fakemoustache))
|
||||
|
||||
@@ -61,12 +61,12 @@
|
||||
/datum/reagent/slimetoxin/on_mob_life(mob/living/M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/human = M
|
||||
if(human.species.name != "Shadow")
|
||||
if(!isshadowperson(human))
|
||||
to_chat(M, "<span class='danger'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(M, "<span class='danger'>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</span>")
|
||||
to_chat(M, "<span class='danger'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
to_chat(M, "<span class='danger'>Aside from your new traits, you are mentally unchanged and retain your prior obligations.</span>")
|
||||
human.set_species("Shadow")
|
||||
human.set_species(/datum/species/shadow)
|
||||
..()
|
||||
|
||||
/datum/reagent/aslimetoxin
|
||||
@@ -217,7 +217,7 @@
|
||||
if(method == TOUCH)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.get_species() == "Grey")
|
||||
if(isgrey(H))
|
||||
return
|
||||
|
||||
if(volume > 25)
|
||||
@@ -246,7 +246,7 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(H.get_species() == "Grey")
|
||||
if(isgrey(H))
|
||||
return
|
||||
|
||||
if(volume >=10 && volume <=25)
|
||||
@@ -961,7 +961,7 @@
|
||||
C.adjustToxLoss(lethality)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(IS_PLANT in H.species.species_traits) //plantmen take a LOT of damage
|
||||
if(IS_PLANT in H.dna.species.species_traits) //plantmen take a LOT of damage
|
||||
H.adjustToxLoss(50)
|
||||
..()
|
||||
else if(istype(M, /mob/living/simple_animal/diona)) //plantmen monkeys (diona) take EVEN MORE damage
|
||||
@@ -995,7 +995,7 @@
|
||||
C.adjustToxLoss(2)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.get_species() == "Kidan") //RIP
|
||||
if(iskidan(H)) //RIP
|
||||
H.adjustToxLoss(20)
|
||||
|
||||
/datum/reagent/capulettium
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(H.get_species() != "Grey") //God this is so gross I hate it.
|
||||
if(!isgrey(H)) //God this is so gross I hate it.
|
||||
return
|
||||
|
||||
if(volume > 25)
|
||||
@@ -58,7 +58,7 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(H.get_species() != "Grey")
|
||||
if(!isgrey(H))
|
||||
return
|
||||
|
||||
if(volume < 10)
|
||||
|
||||
@@ -26,6 +26,33 @@
|
||||
empulse(location, round(created_volume / 24), round(created_volume / 14), 1)
|
||||
holder.clear_reagents()
|
||||
|
||||
/datum/chemical_reaction/beesplosion
|
||||
name = "Bee Explosion"
|
||||
id = "beesplosion"
|
||||
result = null
|
||||
required_reagents = list("honey" = 1, "strange_reagent" = 1, "radium" = 1)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/beesplosion/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
if(created_volume < 5)
|
||||
playsound(location,'sound/effects/sparks1.ogg', 100, 1)
|
||||
else
|
||||
playsound(location,'sound/creatures/bee.ogg', 100, 1)
|
||||
var/list/beeagents = list()
|
||||
for(var/X in holder.reagent_list)
|
||||
var/datum/reagent/R = X
|
||||
if(R.id in required_reagents)
|
||||
continue
|
||||
if(!R.can_synth)
|
||||
continue
|
||||
beeagents += R
|
||||
var/bee_amount = round(created_volume * 0.2)
|
||||
for(var/i in 1 to bee_amount)
|
||||
var/mob/living/simple_animal/hostile/poison/bees/new_bee = new(location)
|
||||
if(LAZYLEN(beeagents))
|
||||
new_bee.assign_reagent(pick(beeagents))
|
||||
|
||||
/datum/chemical_reaction/nitroglycerin
|
||||
name = "Nitroglycerin"
|
||||
id = "nitroglycerin"
|
||||
|
||||
Reference in New Issue
Block a user