diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index bc2d2296693..2e30d6967dc 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -62,8 +62,18 @@ M.desc = "It's toast." qdel(src) else + SSmobs.cheeserats -= src // remove play controlled mouse also ..(gibbed) +/mob/living/simple_animal/mouse/revive(full_heal = FALSE, admin_revive = FALSE) + var/cap = CONFIG_GET(number/ratcap) + if(!admin_revive && !ckey && LAZYLEN(SSmobs.cheeserats) >= cap) + visible_message("[src] twitched but does not continue moving due to the overwhelming rodent population on the station!") + return FALSE + . = ..() + if(.) + SSmobs.cheeserats += src + /mob/living/simple_animal/mouse/Crossed(AM as mob|obj) if( ishuman(AM) ) if(!stat) diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm index 8ea1881d903..6512ccd9b51 100644 --- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm +++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm @@ -198,6 +198,19 @@ SSmobs.cheeserats -= src return ..() +/mob/living/simple_animal/hostile/rat/death(gibbed) + SSmobs.cheeserats -= src // remove rats on death + return ..() + +/mob/living/simple_animal/hostile/rat/revive(full_heal = FALSE, admin_revive = FALSE) + var/cap = CONFIG_GET(number/ratcap) + if(!admin_revive && !ckey && LAZYLEN(SSmobs.cheeserats) >= cap) + visible_message("[src] twitched but does not continue moving due to the overwhelming rodent population on the station!") + return FALSE + . = ..() + if(.) + SSmobs.cheeserats += src + /mob/living/simple_animal/hostile/rat/examine(mob/user) . = ..() if(istype(user,/mob/living/simple_animal/hostile/rat))