From 7751742d24c579050d3aca0ef2a3aa697fec56f6 Mon Sep 17 00:00:00 2001 From: Mechoid Date: Wed, 21 Feb 2018 18:09:01 -0800 Subject: [PATCH] Adds a few random mob spawners. --- code/game/objects/random/random.dm | 118 ++++++++++++++++++++++++++++- 1 file changed, 117 insertions(+), 1 deletion(-) diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 7fcfcfa4502..a9ce9d1881a 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -1455,4 +1455,120 @@ var/list/multi_point_spawns /obj/item/clothing/mask/luchador/tecnicos, /obj/structure/closet/crate ) - ) \ No newline at end of file + ) + +/* + * Random Mobs + */ + +/obj/random/mob + name = "Random Animal" + desc = "This is a random animal." + icon = 'icons/mob/animal.dmi' + icon_state = "chicken_white" + +/obj/random/mob/item_to_spawn() + return pick(prob(10);/mob/living/simple_animal/lizard, + prob(6);/mob/living/simple_animal/retaliate/diyaab, + prob(10);/mob/living/simple_animal/cat/fluff, + prob(6);/mob/living/simple_animal/cat/kitten, + prob(10);/mob/living/simple_animal/corgi, + prob(6);/mob/living/simple_animal/corgi/puppy, + prob(10);/mob/living/simple_animal/crab, + prob(10);/mob/living/simple_animal/chicken, + prob(6);/mob/living/simple_animal/chick, + prob(10);/mob/living/simple_animal/cow, + prob(6);/mob/living/simple_animal/retaliate/goat, + prob(10);/mob/living/simple_animal/penguin, + prob(10);/mob/living/simple_animal/mouse, + prob(10);/mob/living/simple_animal/yithian, + prob(10);/mob/living/simple_animal/tindalos, + prob(10);/mob/living/simple_animal/corgi/tamaskan, + prob(3);/mob/living/simple_animal/parrot, + prob(1);/mob/living/simple_animal/giant_crab) + +/obj/random/mob/sif + name = "Random Sif Animal" + desc = "This is a random cold weather animal." + icon_state = "penguin" + +/obj/random/mob/sif/item_to_spawn() + return pick(prob(30);/mob/living/simple_animal/retaliate/diyaab, + prob(15);/mob/living/simple_animal/crab, + prob(15);/mob/living/simple_animal/penguin, + prob(15);/mob/living/simple_animal/mouse, + prob(15);/mob/living/simple_animal/corgi/tamaskan, + prob(2);/mob/living/simple_animal/hostile/giant_spider/frost, + prob(1);/mob/living/simple_animal/hostile/goose, + prob(20);/mob/living/simple_animal/giant_crab) + +/obj/random/mob/sif/hostile + name = "Random Hostile Sif Animal" + desc = "This is a random hostile cold weather animal." + icon_state = "frost" + +/obj/random/mob/sif/hostile/item_to_spawn() + return pick(prob(22);/mob/living/simple_animal/hostile/savik, + prob(33);/mob/living/simple_animal/hostile/giant_spider/frost, + prob(45);/mob/living/simple_animal/hostile/shantak) + +/obj/random/mob/spider + name = "Random Spider" + desc = "This is a random boring spider." + icon_state = "guard" + +/obj/random/mob/spider/item_to_spawn() + return pick(prob(22);/mob/living/simple_animal/hostile/giant_spider/nurse, + prob(33);/mob/living/simple_animal/hostile/giant_spider/hunter, + prob(45);/mob/living/simple_animal/hostile/giant_spider) + +/obj/random/mob/spider/mutant + name = "Random Mutant Spider" + desc = "This is a random mutated spider." + icon_state = "phoron" + +/obj/random/mob/spider/mutant/item_to_spawn() + return pick(prob(1);/obj/random/mob/spider, + prob(5);/mob/living/simple_animal/hostile/giant_spider/nurse/medical, + prob(10);/mob/living/simple_animal/hostile/giant_spider/webslinger, + prob(10);/mob/living/simple_animal/hostile/giant_spider/carrier, + prob(33);/mob/living/simple_animal/hostile/giant_spider/lurker, + prob(33);/mob/living/simple_animal/hostile/giant_spider/tunneler, + prob(40);/mob/living/simple_animal/hostile/giant_spider/pepper, + prob(20);/mob/living/simple_animal/hostile/giant_spider/thermic, + prob(40);/mob/living/simple_animal/hostile/giant_spider/electric, + prob(1);/mob/living/simple_animal/hostile/giant_spider/phorogenic, + prob(40);/mob/living/simple_animal/hostile/giant_spider/frost) + +/obj/random/mob/robotic + name = "Random Robot Mob" + desc = "This is a random robot." + icon_state = "drone_dead" + +/obj/random/mob/robotic/item_to_spawn() //Hivebots have a total number of 'lots' equal to the lesser drone, at 60. + return pick(prob(60);/mob/living/simple_animal/hostile/malf_drone/lesser, + prob(50);/mob/living/simple_animal/hostile/malf_drone, + prob(15);/mob/living/simple_animal/hostile/mecha/malf_drone, + prob(10);/mob/living/simple_animal/hostile/hivebot, + prob(15);/mob/living/simple_animal/hostile/hivebot/swarm, + prob(10);/mob/living/simple_animal/hostile/hivebot/range, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/rapid, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/ion, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/laser, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/strong, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/guard) + +/obj/random/mob/robotic/hivebot + name = "Random Hivebot" + desc = "This is a random hivebot." + icon_state = "drone3" + +/obj/random/mob/robotic/hivebot/item_to_spawn() + return pick(prob(10);/mob/living/simple_animal/hostile/hivebot, + prob(15);/mob/living/simple_animal/hostile/hivebot/swarm, + prob(10);/mob/living/simple_animal/hostile/hivebot/range, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/rapid, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/ion, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/laser, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/strong, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/guard)