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
@@ -56,12 +56,6 @@
for(var/obj/structure/spider/S in range(1, get_turf(src)))
return S
/mob/living/simple_animal/hostile/poison/giant_spider/death(gibbed)
. = ..()
if(!.)
return FALSE
SSmobs.giant_spiders--
//nursemaids - these create webs and eggs
/mob/living/simple_animal/hostile/poison/giant_spider/nurse
desc = "Furry and black, it makes you shudder to look at it. This one has brilliant green eyes."
@@ -263,6 +257,7 @@
var/obj/structure/spider/eggcluster/C = new /obj/structure/spider/eggcluster(src.loc)
C.faction = faction.Copy()
C.master_commander = master_commander
C.xenobiology_spawned = xenobiology_spawned
if(ckey)
C.player_spiders = 1
fed--
@@ -80,6 +80,8 @@
var/max_offspring = DEFAULT_MAX_OFFSPRING
var/buffed = 0 //In the event that you want to have a buffing effect on the mob, but don't want it to stack with other effects, any outside force that applies a buff to a simple mob should at least set this to 1, so we have something to check against
///Was this mob spawned by xenobiology magic? Used for mobcapping.
var/xenobiology_spawned = FALSE
var/gold_core_spawnable = NO_SPAWN //If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood
var/mob/living/carbon/human/master_commander = null //holding var for determining who own/controls a sentient simple animal (for sentience potions).
@@ -374,6 +376,8 @@
visible_message("<span class='danger'>\The [src] [deathmessage]</span>")
else if(!del_on_death)
visible_message("<span class='danger'>\The [src] stops moving...</span>")
if(xenobiology_spawned)
SSmobs.xenobiology_mobs--
if(del_on_death)
//Prevent infinite loops if the mob Destroy() is overridden in such
//a manner as to cause a call to death() again