Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into HereWeGoAgain

This commit is contained in:
Aurorablade
2018-07-23 18:21:04 -04:00
281 changed files with 5473 additions and 4834 deletions
+9 -9
View File
@@ -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"