mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 19:17:50 +01:00
Merge remote-tracking branch 'upstream/master' into universal-damage
# Conflicts: # code/modules/clothing/suits/labcoat.dm # code/modules/clothing/under/miscellaneous.dm # code/modules/mob/living/carbon/human/species/golem.dm # code/modules/mob/living/simple_animal/bot/ed209bot.dm
This commit is contained in:
@@ -20,22 +20,11 @@
|
||||
/datum/chemical_reaction/proc/on_reaction(datum/reagents/holder, created_volume)
|
||||
return
|
||||
|
||||
var/list/chemical_mob_spawn_meancritters = list() // list of possible hostile mobs
|
||||
var/list/chemical_mob_spawn_nicecritters = list() // and possible friendly mobs
|
||||
/datum/chemical_reaction/proc/chemical_mob_spawn(datum/reagents/holder, amount_to_spawn, reaction_name, mob_faction = "chemicalsummon")
|
||||
/datum/chemical_reaction/proc/chemical_mob_spawn(datum/reagents/holder, amount_to_spawn, reaction_name, mob_class = HOSTILE_SPAWN, mob_faction = "chemicalsummon", random = TRUE)
|
||||
if(holder && holder.my_atom)
|
||||
if(chemical_mob_spawn_meancritters.len <= 0 || chemical_mob_spawn_nicecritters.len <= 0)
|
||||
for(var/T in typesof(/mob/living/simple_animal))
|
||||
var/mob/living/simple_animal/SA = T
|
||||
switch(initial(SA.gold_core_spawnable))
|
||||
if(CHEM_MOB_SPAWN_HOSTILE)
|
||||
chemical_mob_spawn_meancritters += T
|
||||
if(CHEM_MOB_SPAWN_FRIENDLY)
|
||||
chemical_mob_spawn_nicecritters += T
|
||||
var/atom/A = holder.my_atom
|
||||
var/turf/T = get_turf(A)
|
||||
var/area/my_area = get_area(T)
|
||||
var/message = "A [reaction_name] reaction has occured in [my_area.name]. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</A>)"
|
||||
var/message = "A [reaction_name] reaction has occurred in [ADMIN_VERBOSEJMP(T)]"
|
||||
message += " ([ADMIN_VV(A,"VV")])"
|
||||
|
||||
var/mob/M = get(A, /mob)
|
||||
@@ -45,23 +34,23 @@ var/list/chemical_mob_spawn_nicecritters = list() // and possible friendly mobs
|
||||
message += " - Last Fingerprint: [(A.fingerprintslast ? A.fingerprintslast : "N/A")]"
|
||||
|
||||
message_admins(message, 0, 1)
|
||||
log_game("[reaction_name] chemical mob spawn reaction occuring at [AREACOORD(T)] carried by [key_name(M)] with last fingerprint [A.fingerprintslast? A.fingerprintslast : "N/A"]")
|
||||
|
||||
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
for(var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null))
|
||||
C.flash_eyes()
|
||||
for(var/i = 1, i <= amount_to_spawn, i++)
|
||||
var/chosen
|
||||
if(reaction_name == "Friendly Gold Slime")
|
||||
chosen = pick(chemical_mob_spawn_nicecritters)
|
||||
|
||||
for(var/i in 1 to amount_to_spawn)
|
||||
var/mob/living/simple_animal/S
|
||||
if(random)
|
||||
S = create_random_mob(get_turf(holder.my_atom), mob_class)
|
||||
else
|
||||
chosen = pick(chemical_mob_spawn_meancritters)
|
||||
var/mob/living/simple_animal/C = new chosen
|
||||
C.faction |= mob_faction
|
||||
C.forceMove(get_turf(holder.my_atom))
|
||||
S = new mob_class(get_turf(holder.my_atom))//Spawn our specific mob_class
|
||||
S.faction |= mob_faction
|
||||
if(prob(50))
|
||||
for(var/j = 1, j <= rand(1, 3), j++)
|
||||
step(C, pick(NORTH,SOUTH,EAST,WEST))
|
||||
step(S, pick(NORTH,SOUTH,EAST,WEST))
|
||||
|
||||
/proc/goonchem_vortex(turf/T, setting_type, volume)
|
||||
if(setting_type)
|
||||
|
||||
@@ -194,11 +194,19 @@
|
||||
id = "life"
|
||||
result = null
|
||||
required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "blood" = 1)
|
||||
result_amount = 3
|
||||
result_amount = 1
|
||||
min_temp = T0C + 100
|
||||
|
||||
/datum/chemical_reaction/life/on_reaction(datum/reagents/holder, created_volume)
|
||||
chemical_mob_spawn(holder, 1, "Life")
|
||||
chemical_mob_spawn(holder, rand(1, round(created_volume, 1)), "Life (hostile)") //defaults to HOSTILE_SPAWN
|
||||
|
||||
/datum/chemical_reaction/life/friendly
|
||||
name = "Life (Friendly)"
|
||||
id = "life_friendly"
|
||||
required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "sugar" = 1)
|
||||
|
||||
/datum/chemical_reaction/life/friendly/on_reaction(datum/reagents/holder, created_volume)
|
||||
chemical_mob_spawn(holder, rand(1, round(created_volume, 1)), "Life (friendly)", FRIENDLY_SPAWN)
|
||||
|
||||
/datum/chemical_reaction/mannitol
|
||||
name = "Mannitol"
|
||||
|
||||
@@ -87,53 +87,41 @@
|
||||
new /obj/item/stack/sheet/glass (location, 15)
|
||||
|
||||
//Gold
|
||||
/datum/chemical_reaction/slimecrit
|
||||
/datum/chemical_reaction/slimemobspawn
|
||||
name = "Slime Crit"
|
||||
id = "m_tele"
|
||||
result = null
|
||||
required_reagents = list("plasma_dust" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/gold
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slimecrit/on_reaction(datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[type]")
|
||||
/datum/chemical_reaction/slimemobspawn/on_reaction(datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used", "[type]")
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate violently !</span>")
|
||||
spawn(50)
|
||||
chemical_mob_spawn(holder, 5, "Gold Slime")
|
||||
summon_mobs(holder, T)
|
||||
|
||||
/datum/chemical_reaction/slimecritlesser
|
||||
/datum/chemical_reaction/slimemobspawn/proc/summon_mobs(datum/reagents/holder, turf/T)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate violently!</span>")
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 5, "Gold Slime", HOSTILE_SPAWN), 50)
|
||||
|
||||
/datum/chemical_reaction/slimemobspawn/lesser
|
||||
name = "Slime Crit Lesser"
|
||||
id = "m_tele3"
|
||||
result = null
|
||||
required_reagents = list("blood" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/gold
|
||||
required_other = 1
|
||||
|
||||
/datum/chemical_reaction/slimecritlesser/on_reaction(datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[type]")
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate violently !</span>")
|
||||
spawn(50)
|
||||
chemical_mob_spawn(holder, 3, "Lesser Gold Slime", "neutral")
|
||||
/datum/chemical_reaction/slimemobspawn/lesser/summon_mobs(datum/reagents/holder, turf/T)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate violently!</span>")
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral"), 50)
|
||||
|
||||
/datum/chemical_reaction/slimecritfriendly
|
||||
/datum/chemical_reaction/slimemobspawn/friendly
|
||||
name = "Slime Crit Friendly"
|
||||
id = "m_tele5"
|
||||
result = null
|
||||
required_reagents = list("water" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/gold
|
||||
required_other = 1
|
||||
|
||||
/datum/chemical_reaction/slimecritfriendly/on_reaction(datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[type]")
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate adorably !</span>")
|
||||
spawn(50)
|
||||
chemical_mob_spawn(holder, 1, "Friendly Gold Slime", "neutral")
|
||||
/datum/chemical_reaction/slimemobspawn/friendly/summon_mobs(datum/reagents/holder, turf/T)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate adorably!</span>")
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral"), 50)
|
||||
|
||||
//Silver
|
||||
/datum/chemical_reaction/slimebork
|
||||
|
||||
@@ -327,4 +327,19 @@
|
||||
desc = "A syringe recovered from a dread place. It probably isn't wise to use."
|
||||
amount_per_transfer_from_this = 1
|
||||
volume = 1
|
||||
list_reagents = list("gluttonytoxin" = 1)
|
||||
list_reagents = list("gluttonytoxin" = 1)
|
||||
|
||||
/obj/item/reagent_containers/syringe/capulettium_plus
|
||||
name = "capulettium plus syringe"
|
||||
desc = "For silencing targets. Allows for fake deaths."
|
||||
list_reagents = list("capulettium_plus" = 15)
|
||||
|
||||
/obj/item/reagent_containers/syringe/sarin
|
||||
name = "sarin syringe"
|
||||
desc = "A deadly neurotoxin, for killing."
|
||||
list_reagents = list("sarin" = 15)
|
||||
|
||||
/obj/item/reagent_containers/syringe/pancuronium
|
||||
name = "pancuronium syringe"
|
||||
desc = "A powerful paralyzing poison."
|
||||
list_reagents = list("pancuronium" = 15)
|
||||
Reference in New Issue
Block a user