diff --git a/code/controllers/subsystem/minor_mapping.dm b/code/controllers/subsystem/minor_mapping.dm
index 2c50afeb811f..d9e137bf2299 100644
--- a/code/controllers/subsystem/minor_mapping.dm
+++ b/code/controllers/subsystem/minor_mapping.dm
@@ -1,4 +1,4 @@
-#define REGAL_RAT_CHANCE 0
+#define REGAL_RAT_CHANCE 2
#define PLAGUE_RAT_CHANCE 0
SUBSYSTEM_DEF(minor_mapping)
name = "Minor Mapping"
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index f396f9672bd4..78fd1669310d 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -97,9 +97,9 @@ GLOBAL_VAR_INIT(mouse_killed, 0)
if(!stat)
var/mob/M = AM
to_chat(M, span_notice("[icon2html(src, M)] Squeak!"))
- //if(istype(AM, /obj/item/reagent_containers/food/snacks/royalcheese))
- // evolve()
- // qdel(AM)
+ if(istype(AM, /obj/item/reagent_containers/food/snacks/royalcheese))
+ evolve()
+ qdel(AM)
..()
/mob/living/simple_animal/mouse/handle_automated_action()
@@ -121,10 +121,10 @@ GLOBAL_VAR_INIT(mouse_killed, 0)
be_fruitful()
qdel(cheese)
return
- //for(var/obj/item/reagent_containers/food/snacks/royalcheese/bigcheese in range(1, src))
- // qdel(bigcheese)
- // evolve()
- // return
+ for(var/obj/item/reagent_containers/food/snacks/royalcheese/bigcheese in range(1, src))
+ qdel(bigcheese)
+ evolve()
+ return
/**
@@ -267,9 +267,9 @@ GLOBAL_VAR_INIT(mouse_killed, 0)
var/list/cheeses = list(/obj/item/reagent_containers/food/snacks/cheesewedge, /obj/item/reagent_containers/food/snacks/cheesewheel,
/obj/item/reagent_containers/food/snacks/store/cheesewheel, /obj/item/reagent_containers/food/snacks/customizable/cheesewheel,
/obj/item/reagent_containers/food/snacks/cheesiehonkers) //all cheeses - royal
- //if(istype(F, /obj/item/reagent_containers/food/snacks/royalcheese))
- // evolve()
- // return
+ if(istype(F, /obj/item/reagent_containers/food/snacks/royalcheese))
+ evolve()
+ return
if(istype(F, /obj/item/grown/bananapeel/bluespace))
var/obj/item/grown/bananapeel/bluespace/B
var/teleport_radius = max(round(B.seed.potency / 10), 1)
diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm
index a716f142d1b0..b1c868cffe29 100644
--- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm
@@ -47,7 +47,6 @@
var/title = pick("King","Lord","Prince","Emperor","Supreme","Overlord","Master","Shogun","Bojar","Tsar","Hetman")
name = "[kingdom] [title]"
language_holder += new /datum/language_holder/mouse(src)
- qdel(src)
/mob/living/simple_animal/hostile/regalrat/handle_automated_action()
if(prob(20))
@@ -77,7 +76,7 @@
. += "This is your king. Long live his majesty!"
else
. += "This is a false king! Strike him down!"
- else if(istype(user,/mob/living/simple_animal/hostile/regalrat))
+ else if(istype(user,/mob/living/simple_animal/hostile/regalrat) && (user != src))
. += "Who is this foolish false king? This will not stand!"
/mob/living/simple_animal/hostile/regalrat/handle_environment(datum/gas_mixture/environment)
@@ -103,8 +102,9 @@
. = ..()
if(!.)
return
- var/turf/T = get_turf(owner)
- if(!T)
+ var/turf/T = owner.loc
+ if(!istype(T))
+ to_chat(owner, "There is no cheese in here!")
return
var/loot = rand(1,100)
switch(loot)
@@ -188,15 +188,16 @@
name = "Rat King's Domain"
desc = "Corrupts this area to be more suitable for your rat army."
check_flags = AB_CHECK_CONSCIOUS
- cooldown_time = 6 SECONDS
+ cooldown_time = 10 SECONDS
icon_icon = 'icons/mob/actions/actions_spells.dmi'
background_icon_state = "bg_clock"
button_icon_state = "smoke"
-/datum/action/cooldown/domain/proc/domain()
- var/turf/T = get_turf(owner)
- if(!T)
- return
+/datum/action/cooldown/domain/Trigger()
+ var/turf/T = owner.loc
+ if(!istype(T))
+ to_chat(owner, "Building our domain here is for cowards!")
+ return FALSE
T.atmos_spawn_air("miasma=4;TEMP=[T20C]")
switch (rand(1,10))
if (8)
@@ -209,11 +210,6 @@
new /obj/effect/decal/cleanable/dirt(T)
StartCooldown()
-/datum/action/cooldown/domain/Trigger()
- StartCooldown(10 SECONDS)
- domain()
- StartCooldown()
-
#define REGALRAT_INTERACTION "regalrat"
/mob/living/simple_animal/hostile/regalrat/AttackingTarget()
if (DOING_INTERACTION(src, REGALRAT_INTERACTION))
@@ -230,7 +226,7 @@
target.reagents.add_reagent(/datum/reagent/rat_spit, rand(1,3), no_react = TRUE)
to_chat(src, span_notice("You finish licking [target]."))
else if(istype(target, /obj/item/reagent_containers/food/snacks/cheesewedge))
- to_chat(src, span_green("You eat [src], restoring some health."))
+ to_chat(src, span_green("You eat [target], restoring some health."))
heal_bodypart_damage(30)
qdel(target)
diff --git a/config/game_options.txt b/config/game_options.txt
index c241ad8e0086..050db497b542 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -664,6 +664,9 @@ DISABLE_HUMAN_MOOD
## A cap on how many monkeys may be created via monkey cubes
#MONKEYCAP 64
+## Cap on how many regal rat minions there can be
+#RATCAP 64
+
## Enable the capitalist agenda on your server.
ECONOMY