From a627418e78b0538d6f39ad9293b921a62699e02d Mon Sep 17 00:00:00 2001 From: ExcessiveUseOfCobblestone <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> Date: Mon, 19 Feb 2018 15:53:34 -0500 Subject: [PATCH 1/2] Change-Projectile cleanup (and now you can be ANY* species) (#35710) cl Cobby experiment: Being hit by a bolt of change now opens up previously-barred races. Hopefully you don't roll plasmaman! /cl If the subtype for the species was added hehe I was going to brag about how there wasn't any balance change but this does allow for more of the "fun" races within humans to come up. Webbit so probably some dumb typo somewhere --- code/modules/projectiles/projectile/magic.dm | 155 +++++++------------ 1 file changed, 52 insertions(+), 103 deletions(-) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 9b4842d644..a28cc61f27 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -131,18 +131,13 @@ switch(randomize) if("monkey") new_mob = new /mob/living/carbon/monkey(M.loc) + if("robot") - var/robot = pick("random_cyborg","syndiborg","drone") - var/path - switch(robot) - if("random_cyborg") - path = pick(typesof(/mob/living/silicon/robot/modules) - typesof(/mob/living/silicon/robot/modules/syndicate)) - new_mob = new path(M.loc) - if("syndiborg") - path = pick(typesof(/mob/living/silicon/robot/modules/syndicate)) - new_mob = new path(M.loc) - if("drone") - new_mob = new /mob/living/simple_animal/drone/polymorphed(M.loc) + var/robot = pick(200;/mob/living/silicon/robot, + /mob/living/silicon/robot/modules/syndicate, + /mob/living/silicon/robot/modules/syndicate/medical, + 200;/mob/living/simple_animal/drone/polymorphed) + new_mob = new robot(M.loc) if(issilicon(new_mob)) new_mob.gender = M.gender new_mob.invisibility = 0 @@ -152,111 +147,65 @@ Robot.clear_inherent_laws(0) Robot.clear_zeroth_law(0, 0) Robot.connected_ai = null + if("slime") new_mob = new /mob/living/simple_animal/slime/random(M.loc) + if("xeno") - if(prob(50)) - if(!M.ckey) //spawn an AI alien if it isn't a player controlled mob. - new_mob = new /mob/living/simple_animal/hostile/alien(M.loc) - else - new_mob = new /mob/living/carbon/alien/humanoid/hunter(M.loc) + var/Xe + if(M.ckey) + Xe = pick(/mob/living/carbon/alien/humanoid/hunter,/mob/living/carbon/alien/humanoid/sentinel) else - if(!M.ckey) - new_mob = new /mob/living/simple_animal/hostile/alien/sentinel(M.loc) - else - new_mob = new /mob/living/carbon/alien/humanoid/sentinel(M.loc) - + Xe = pick(/mob/living/carbon/alien/humanoid/hunter,/mob/living/simple_animal/hostile/alien/sentinel) + new_mob = new Xe(M.loc) + if("animal") - var/path - if(prob(50)) - var/beast = pick("carp","bear","mushroom","statue", "bat", "goat","killertomato", "spiderbase", "spiderhunter", "blobbernaut", "magicarp", "chaosmagicarp", "watcher", "goliath", "headcrab", "morph", "stickman", "stickdog", "lesserdragon", "gorilla") - switch(beast) - if("carp") - path = /mob/living/simple_animal/hostile/carp - if("bear") - path = /mob/living/simple_animal/hostile/bear - if("mushroom") - path = /mob/living/simple_animal/hostile/mushroom - if("statue") - path = /mob/living/simple_animal/hostile/statue - if("bat") - path = /mob/living/simple_animal/hostile/retaliate/bat - if("goat") - path = /mob/living/simple_animal/hostile/retaliate/goat - if("killertomato") - path = /mob/living/simple_animal/hostile/killertomato - if("spiderbase") - path = /mob/living/simple_animal/hostile/poison/giant_spider - if("spiderhunter") - path = /mob/living/simple_animal/hostile/poison/giant_spider/hunter - if("blobbernaut") - path = /mob/living/simple_animal/hostile/blob/blobbernaut/independent - if("magicarp") - path = /mob/living/simple_animal/hostile/carp/ranged - if("chaosmagicarp") - path = /mob/living/simple_animal/hostile/carp/ranged/chaos - if("watcher") - path = /mob/living/simple_animal/hostile/asteroid/basilisk/watcher - if("goliath") - path = /mob/living/simple_animal/hostile/asteroid/goliath/beast - if("headcrab") - path = /mob/living/simple_animal/hostile/headcrab - if("morph") - path = /mob/living/simple_animal/hostile/morph - if("stickman") - path = /mob/living/simple_animal/hostile/stickman - if("stickdog") - path = /mob/living/simple_animal/hostile/stickman/dog - if("lesserdragon") - path = /mob/living/simple_animal/hostile/megafauna/dragon/lesser - if("gorilla") - path = /mob/living/simple_animal/hostile/gorilla - else - var/animal = pick("parrot","corgi","crab","pug","cat","mouse","chicken","cow","lizard","chick","fox","butterfly","cak") - switch(animal) - if("parrot") - path = /mob/living/simple_animal/parrot - if("corgi") - path = /mob/living/simple_animal/pet/dog/corgi - if("crab") - path = /mob/living/simple_animal/crab - if("pug") - path = /mob/living/simple_animal/pet/dog/pug - if("cat") - path = /mob/living/simple_animal/pet/cat - if("mouse") - path = /mob/living/simple_animal/mouse - if("chicken") - path = /mob/living/simple_animal/chicken - if("cow") - path = /mob/living/simple_animal/cow - if("lizard") - path = /mob/living/simple_animal/hostile/lizard - if("fox") - path = /mob/living/simple_animal/pet/fox - if("butterfly") - path = /mob/living/simple_animal/butterfly - if("cak") - path = /mob/living/simple_animal/pet/cat/cak - if("chick") - path = /mob/living/simple_animal/chick - + var/path = pick(/mob/living/simple_animal/hostile/carp, + /mob/living/simple_animal/hostile/bear, + /mob/living/simple_animal/hostile/mushroom, + /mob/living/simple_animal/hostile/statue, + /mob/living/simple_animal/hostile/retaliate/bat, + /mob/living/simple_animal/hostile/retaliate/goat, + /mob/living/simple_animal/hostile/killertomato, + /mob/living/simple_animal/hostile/poison/giant_spider, + /mob/living/simple_animal/hostile/poison/giant_spider/hunter, + /mob/living/simple_animal/hostile/blob/blobbernaut/independent, + /mob/living/simple_animal/hostile/carp/ranged, + /mob/living/simple_animal/hostile/carp/ranged/chaos, + /mob/living/simple_animal/hostile/asteroid/basilisk/watcher, + /mob/living/simple_animal/hostile/asteroid/goliath/beast, + /mob/living/simple_animal/hostile/headcrab, + /mob/living/simple_animal/hostile/morph, + /mob/living/simple_animal/hostile/stickman, + /mob/living/simple_animal/hostile/stickman/dog, + /mob/living/simple_animal/hostile/megafauna/dragon/lesser, + /mob/living/simple_animal/hostile/gorilla, + /mob/living/simple_animal/parrot, + /mob/living/simple_animal/pet/dog/corgi, + /mob/living/simple_animal/crab, + /mob/living/simple_animal/pet/dog/pug, + /mob/living/simple_animal/pet/cat, + /mob/living/simple_animal/mouse, + /mob/living/simple_animal/chicken, + /mob/living/simple_animal/cow, + /mob/living/simple_animal/hostile/lizard, + /mob/living/simple_animal/pet/fox, + /mob/living/simple_animal/butterfly, + /mob/living/simple_animal/pet/cat/cak, + /mob/living/simple_animal/chick) new_mob = new path(M.loc) if("humanoid") - new_mob = new /mob/living/carbon/human(M.loc) + if(prob(50)) + new_mob = new /mob/living/carbon/human(M.loc) + else + var/hooman = pick(subtypesof(/mob/living/carbon/human/species)) + new_mob =new hooman(M.loc) var/datum/preferences/A = new() //Randomize appearance for the human A.copy_to(new_mob, icon_updates=0) var/mob/living/carbon/human/H = new_mob - if(prob(50)) - var/list/all_species = list() - for(var/speciestype in subtypesof(/datum/species)) - var/datum/species/S = new speciestype() - if(!S.dangerous_existence) - all_species += speciestype - H.set_species(pick(all_species), icon_update=0) H.update_body() H.update_hair() H.update_body_parts()