Adds a cap to Xenobiology Mobs and Allows Sentient Giant Spider prompts to be disabled (#17316)

Co-authored-by: dearmochi <1496804+dearmochi@users.noreply.github.com>
This commit is contained in:
Sirryan2002
2022-01-16 18:54:10 +01:00
committed by GitHub
co-authored by dearmochi
parent 41ac99506d
commit 1da61d4d27
7 changed files with 39 additions and 19 deletions
+3 -1
View File
@@ -21,7 +21,7 @@
return
/datum/chemical_reaction/proc/chemical_mob_spawn(datum/reagents/holder, amount_to_spawn, reaction_name, mob_class = HOSTILE_SPAWN, mob_faction = "chemicalsummon", random = TRUE)
/datum/chemical_reaction/proc/chemical_mob_spawn(datum/reagents/holder, amount_to_spawn, reaction_name, mob_class = HOSTILE_SPAWN, mob_faction = "chemicalsummon", random = TRUE, gold_core_spawn = FALSE)
if(holder && holder.my_atom)
var/atom/A = holder.my_atom
var/turf/T = get_turf(A)
@@ -48,6 +48,8 @@
S = create_random_mob(get_turf(holder.my_atom), mob_class)
else
S = new mob_class(get_turf(holder.my_atom))//Spawn our specific mob_class
if(gold_core_spawn) //For tracking xenobiology mobs
S.xenobiology_spawned = TRUE
S.faction |= mob_faction
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
@@ -102,7 +102,11 @@
/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)
if(SSmobs.xenobiology_mobs < MAX_GOLD_CORE_MOBS)
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 5, "Gold Slime", HOSTILE_SPAWN, "chemicalsummon", TRUE, TRUE), 50)
SSmobs.xenobiology_mobs += 5
else
T.visible_message("<span class='danger'>The slime extract sputters out, there's too many mobs to make any more!</span>")
/datum/chemical_reaction/slimemobspawn/lesser
name = "Slime Crit Lesser"
@@ -111,7 +115,11 @@
/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)
if(SSmobs.xenobiology_mobs < MAX_GOLD_CORE_MOBS)
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral", TRUE, TRUE), 50)
SSmobs.xenobiology_mobs += 3
else
T.visible_message("<span class='danger'>The slime extract sputters out, there's too many mobs to make any more!</span>")
/datum/chemical_reaction/slimemobspawn/friendly
name = "Slime Crit Friendly"
@@ -120,7 +128,11 @@
/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)
if(SSmobs.xenobiology_mobs < MAX_GOLD_CORE_MOBS)
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral", TRUE, TRUE), 50)
SSmobs.xenobiology_mobs += 1
else
T.visible_message("<span class='danger'>The slime extract sputters out, there's too many mobs to make any more!</span>")
//Silver
/datum/chemical_reaction/slimebork