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