From 0c4f441cb56106782e6271cfd6f0d05e31d42e15 Mon Sep 17 00:00:00 2001 From: "Kortgstation@gmail.com" Date: Thu, 29 Nov 2012 04:12:22 +0000 Subject: [PATCH] Added Cheridan's slime sprites to replace roros. Replaced all mentions of roro/metroid with slime. Once Cheri has the rest of the sprites/Phol gets mutant race sprites I'll start work on redoing metroid/slime code with Giacom and adding breeding. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5223 316c924e-a436-60f5-8080-3fe189b3f50e --- code/__HELPERS/names.dm | 2 +- code/__HELPERS/unsorted.dm | 2 +- code/controllers/configuration.dm | 6 +- code/datums/datumvars.dm | 10 +- code/datums/mind.dm | 6 +- code/datums/supplypacks.dm | 2 +- code/game/atoms.dm | 40 ++--- code/game/machinery/Sleeper.dm | 6 +- code/game/machinery/computer/arcade.dm | 2 +- code/game/machinery/cryo.dm | 6 +- code/game/machinery/doors/windowdoor.dm | 2 +- code/game/machinery/kitchen/processor.dm | 6 +- code/game/machinery/telecomms/logbrowser.dm | 4 +- .../mecha/equipment/tools/medical_tools.dm | 4 +- code/game/mecha/mecha.dm | 2 +- code/game/objects/items.dm | 82 ++++----- .../items/weapons/implants/implantchair.dm | 4 +- .../objects/items/weapons/surgery_tools.dm | 40 ++--- code/game/objects/structures/grille.dm | 4 +- code/game/objects/structures/kitchen_spike.dm | 2 +- code/game/objects/structures/mirror.dm | 4 +- code/game/objects/structures/window.dm | 6 +- code/game/supplyshuttle.dm | 2 +- code/game/turfs/simulated.dm | 4 +- code/game/verbs/suicide.dm | 2 +- code/modules/admin/admin.dm | 6 +- code/modules/admin/player_panel.dm | 4 +- code/modules/admin/topic.dm | 10 +- code/modules/admin/verbs/debug.dm | 12 +- code/modules/clothing/head/collectable.dm | 6 +- code/modules/food/recipes_microwave.dm | 40 ++--- .../living/carbon/alien/humanoid/humanoid.dm | 6 +- .../mob/living/carbon/alien/larva/larva.dm | 6 +- code/modules/mob/living/carbon/brain/brain.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 12 +- code/modules/mob/living/carbon/human/life.dm | 2 +- code/modules/mob/living/carbon/human/say.dm | 4 +- .../mob/living/carbon/human/update_icons.dm | 4 +- .../mob/living/carbon/metroid/death.dm | 6 +- .../mob/living/carbon/metroid/emote.dm | 21 +-- .../mob/living/carbon/metroid/examine.dm | 2 +- code/modules/mob/living/carbon/metroid/hud.dm | 2 +- .../modules/mob/living/carbon/metroid/life.dm | 108 ++++++------ .../mob/living/carbon/metroid/login.dm | 2 +- .../mob/living/carbon/metroid/metroid.dm | 164 +++++++++--------- .../mob/living/carbon/metroid/powers.dm | 103 ++++++----- code/modules/mob/living/carbon/metroid/say.dm | 8 +- .../mob/living/carbon/monkey/monkey.dm | 6 +- code/modules/mob/living/living_defines.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 4 +- code/modules/mob/mob_defines.dm | 2 +- code/modules/mob/mob_grab.dm | 2 +- code/modules/mob/mob_helpers.dm | 8 +- code/modules/mob/transform_procs.dm | 18 +- code/modules/paperwork/paperbin.dm | 2 +- .../projectiles/guns/projectile/automatic.dm | 1 - code/modules/projectiles/projectile/change.dm | 10 +- code/modules/reagents/Chemistry-Holder.dm | 12 +- code/modules/reagents/Chemistry-Reagents.dm | 28 +-- code/modules/reagents/Chemistry-Recipes.dm | 96 +++++----- .../reagent_containers/food/drinks/jar.dm | 10 +- .../reagent_containers/food/snacks.dm | 48 ++--- .../reagents/reagent_containers/glass.dm | 4 +- .../reagents/reagent_containers/syringes.dm | 10 +- code/unused/Agouri_stuff.dm | 4 +- html/changelog.html | 8 + icons/effects/genetics.dmi | Bin 57310 -> 57309 bytes icons/mob/mob.dmi | Bin 178925 -> 181831 bytes maps/tgstation.2.0.9.dmm | 4 +- 69 files changed, 539 insertions(+), 520 deletions(-) diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index 17488a3d79..7dd535a2fe 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -265,7 +265,7 @@ var/syndicate_code_response//Code response for traitors. if(4) syndicate_code_phrase += pick("I wish I was","My dad was","His mom was","Where do I find","The hero this station needs is","I'd fuck","I wouldn't trust","Someone caught","HoS caught","Someone found","I'd wrestle","I wanna kill") syndicate_code_phrase += " [pick("a","the")] " - syndicate_code_phrase += pick("wizard","ninja","xeno","lizard","metroid","monkey","syndicate","cyborg","clown","space carp","singularity","singulo","mime") + syndicate_code_phrase += pick("wizard","ninja","xeno","lizard","slime","monkey","syndicate","cyborg","clown","space carp","singularity","singulo","mime") syndicate_code_phrase += "." if(5) syndicate_code_phrase += pick("Do we have","Is there","Where is","Where's","Who's") diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index b307bc1694..b7c205698f 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -446,7 +446,7 @@ Turf and target are seperate in case you want to teleport some distance from a t moblist.Add(M) for(var/mob/living/carbon/monkey/M in sortmob) moblist.Add(M) - for(var/mob/living/carbon/metroid/M in sortmob) + for(var/mob/living/carbon/slime/M in sortmob) moblist.Add(M) for(var/mob/living/simple_animal/M in sortmob) moblist.Add(M) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 3b8e71a8b6..629157eded 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -87,7 +87,7 @@ var/robot_delay = 0 var/monkey_delay = 0 var/alien_delay = 0 - var/metroid_delay = 0 + var/slime_delay = 0 var/animal_delay = 0 var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt @@ -376,8 +376,8 @@ config.monkey_delay = value if("alien_delay") config.alien_delay = value - if("metroid_delay") - config.metroid_delay = value + if("slime_delay") + config.slime_delay = value if("animal_delay") config.animal_delay = value else diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 5befc86649..96d7fe1f9f 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -260,7 +260,7 @@ client body += "" body += "" body += "" - body += "" + body += "" body += "" body += "" if(isobj(D)) @@ -691,10 +691,10 @@ client return holder.Topic(href, list("makealien"=href_list["makealien"])) - else if(href_list["makemetroid"]) + else if(href_list["makeslime"]) if(!check_rights(0)) return - var/mob/living/carbon/human/H = locate(href_list["makemetroid"]) + var/mob/living/carbon/human/H = locate(href_list["makeslime"]) if(!istype(H)) usr << "This can only be done to instances of type /mob/living/carbon/human" return @@ -703,7 +703,7 @@ client if(!H) usr << "Mob doesn't exist anymore" return - holder.Topic(href, list("makemetroid"=href_list["makemetroid"])) + holder.Topic(href, list("makeslime"=href_list["makeslime"])) else if(href_list["makeai"]) if(!check_rights(0)) return @@ -727,7 +727,7 @@ client usr << "This can only be done to instances of type /mob/living/carbon/human" return - var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","metroid","plant","shadow") + var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","slime","plant","shadow") switch(new_mutantrace) if(null) return if("NONE") new_mutantrace = "" diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2119367924..40977cb981 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1101,10 +1101,10 @@ datum/mind /mob/living/carbon/monkey/mind_initialize() ..() -//METROID -/mob/living/carbon/metroid/mind_initialize() +//slime +/mob/living/carbon/slime/mind_initialize() ..() - mind.assigned_role = "Metroid" + mind.assigned_role = "slime" //XENO /mob/living/carbon/alien/mind_initialize() diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 3d2a0d77eb..18b83717c0 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -592,7 +592,7 @@ /obj/item/clothing/head/collectable/HoS, /obj/item/clothing/head/collectable/thunderdome, /obj/item/clothing/head/collectable/swat, - /obj/item/clothing/head/collectable/metroid, + /obj/item/clothing/head/collectable/slime, /obj/item/clothing/head/collectable/police, /obj/item/clothing/head/collectable/slime, /obj/item/clothing/head/collectable/xenom, diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 57e67472c6..3f14640c1d 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -267,8 +267,8 @@ its easier to just keep the beam vertical. /atom/proc/attack_larva(mob/user as mob) return -// for metroids -/atom/proc/attack_metroid(mob/user as mob) +// for slimes +/atom/proc/attack_slime(mob/user as mob) return /atom/proc/hand_h(mob/user as mob) //human (hand) - restrained @@ -288,7 +288,7 @@ its easier to just keep the beam vertical. src.hand_p(user) return -/atom/proc/hand_m(mob/user as mob) //metroid - restrained +/atom/proc/hand_m(mob/user as mob) //slime - restrained return @@ -589,8 +589,8 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl src.attack_paw(usr) else if(isalienadult(usr)) src.attack_alien(usr) - else if(ismetroid(usr)) - src.attack_metroid(usr) + else if(isslime(usr)) + src.attack_slime(usr) else if(isanimal(usr)) src.attack_animal(usr) else @@ -608,7 +608,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl src.hand_p(usr, usr.hand) else if(isalienadult(usr)) src.hand_al(usr, usr.hand) - else if(ismetroid(usr)) + else if(isslime(usr)) return else if(isanimal(usr)) return @@ -819,28 +819,28 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl if ( !alien.restrained() ) attack_larva(alien) - else if(ismetroid(usr)) - var/mob/living/carbon/metroid/metroid = usr - //-metroid stuff- + else if(isslime(usr)) + var/mob/living/carbon/slime/slime = usr + //-slime stuff- - if(metroid.stat) + if(slime.stat) return - var/in_range = in_range(src, metroid) || src.loc == metroid + var/in_range = in_range(src, slime) || src.loc == slime if (in_range) - if ( !metroid.restrained() ) + if ( !slime.restrained() ) if (W) - attackby(W,metroid) + attackby(W,slime) if (W) - W.afterattack(src, metroid) + W.afterattack(src, slime) else - attack_metroid(metroid) + attack_slime(slime) else - hand_m(metroid, metroid.hand) + hand_m(slime, slime.hand) else - if ( (W) && !metroid.restrained() ) - W.afterattack(src, metroid) + if ( (W) && !slime.restrained() ) + W.afterattack(src, slime) else if(isanimal(usr)) @@ -1152,8 +1152,8 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl src.attack_larva(usr) else if (istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot)) src.attack_ai(usr, usr.hand) - else if(istype(usr, /mob/living/carbon/metroid)) - src.attack_metroid(usr) + else if(istype(usr, /mob/living/carbon/slime)) + src.attack_slime(usr) else if(istype(usr, /mob/living/simple_animal)) src.attack_animal(usr) else diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 9994d29a78..ca6f63b3d2 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -175,9 +175,9 @@ user << "\blue The sleeper is already occupied!" return - for(var/mob/living/carbon/metroid/M in range(1,G.affecting)) + for(var/mob/living/carbon/slime/M in range(1,G.affecting)) if(M.Victim == G.affecting) - usr << "[G.affecting.name] will not fit into the sleeper because they have a Metroid latched onto their head." + usr << "[G.affecting.name] will not fit into the sleeper because they have a slime latched onto their head." return visible_message("[user] starts putting [G.affecting.name] into the sleeper.", 3) @@ -367,7 +367,7 @@ usr << "\blue The sleeper is already occupied!" return - for(var/mob/living/carbon/metroid/M in range(1,usr)) + for(var/mob/living/carbon/slime/M in range(1,usr)) if(M.Victim == usr) usr << "You're too busy getting your life sucked out of you." return diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index b800b5125a..8fbfee0e9e 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -46,7 +46,7 @@ name_action = pick("Defeat ", "Annihilate ", "Save ", "Strike ", "Stop ", "Destroy ", "Robust ", "Romance ", "Pwn ", "Own ") name_part1 = pick("the Automatic ", "Farmer ", "Lord ", "Professor ", "the Cuban ", "the Evil ", "the Dread King ", "the Space ", "Lord ", "the Great ", "Duke ", "General ") - name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid", "Metroid", "Griefer", "ERPer", "Lizard Man", "Unicorn") + name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid", "slime", "Griefer", "ERPer", "Lizard Man", "Unicorn") src.enemy_name = replacetext((name_part1 + name_part2), "the ", "") src.name = (name_action + name_part1 + name_part2) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index c9f64e9f58..f1c769646a 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -120,9 +120,9 @@ else if(istype(G, /obj/item/weapon/grab)) if(!ismob(G:affecting)) return - for(var/mob/living/carbon/metroid/M in range(1,G:affecting)) + for(var/mob/living/carbon/slime/M in range(1,G:affecting)) if(M.Victim == G:affecting) - usr << "[G:affecting:name] will not fit into the cryo because they have a Metroid latched onto their head." + usr << "[G:affecting:name] will not fit into the cryo because they have a slime latched onto their head." return var/mob/M = G:affecting if(put_mob(M)) @@ -251,7 +251,7 @@ set name = "Move Inside" set category = "Object" set src in oview(1) - for(var/mob/living/carbon/metroid/M in range(1,usr)) + for(var/mob/living/carbon/slime/M in range(1,usr)) if(M.Victim == usr) usr << "You're too busy getting your life sucked out of you." return diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 7a9cca9024..cef55b69c9 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -169,7 +169,7 @@ return src.attack_hand(user) /obj/machinery/door/window/attack_paw(mob/user as mob) - if(istype(user, /mob/living/carbon/alien/humanoid) || istype(user, /mob/living/carbon/metroid/adult)) + if(istype(user, /mob/living/carbon/alien/humanoid) || istype(user, /mob/living/carbon/slime/adult)) if(src.operating) return src.health = max(0, src.health - 25) diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm index b0e2d2ad4c..98bf53dd94 100644 --- a/code/game/machinery/kitchen/processor.dm +++ b/code/game/machinery/kitchen/processor.dm @@ -60,9 +60,9 @@ ..() - metroid - input = /mob/living/carbon/metroid - output = /obj/item/weapon/reagent_containers/glass/beaker/roro + slime + input = /mob/living/carbon/slime + output = /obj/item/weapon/reagent_containers/glass/beaker/slime monkey process(loc, what) diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index 144fd77f88..608f74b7eb 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -82,8 +82,8 @@ else if(issilicon(M) || C.parameters["job"] == "AI") // sometimes M gets deleted prematurely for AIs... just check the job race = "Artificial Life" - else if(ismetroid(M)) // NT knows a lot about metroids, but not aliens. Can identify metroids - race = "Metroid" + else if(isslime(M)) // NT knows a lot about slimes, but not aliens. Can identify slimes + race = "slime" language = race else if(isanimal(M)) diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index c68ca2d5af..28ccd5eccd 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -48,9 +48,9 @@ if(occupant) occupant_message("The sleeper is already occupied") return - for(var/mob/living/carbon/metroid/M in range(1,target)) + for(var/mob/living/carbon/slime/M in range(1,target)) if(M.Victim == target) - occupant_message("[target] will not fit into the sleeper because they have a Metroid latched onto their head.") + occupant_message("[target] will not fit into the sleeper because they have a slime latched onto their head.") return occupant_message("You start putting [target] into [src].") chassis.visible_message("[chassis] starts putting [target] into the [src].") diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 1bcf177cf4..42b26b4efc 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -964,7 +964,7 @@ usr << "\red Access denied" src.log_append_to_last("Permission denied.") return - for(var/mob/living/carbon/metroid/M in range(1,usr)) + for(var/mob/living/carbon/slime/M in range(1,usr)) if(M.Victim == usr) usr << "You're too busy getting your life sucked out of you." return diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index d0ee91bd43..457a0f4400 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -202,75 +202,75 @@ power *= 2 if(!istype(M, /mob/living/carbon/human)) - if(istype(M, /mob/living/carbon/metroid)) - var/mob/living/carbon/metroid/Metroid = M + if(istype(M, /mob/living/carbon/slime)) + var/mob/living/carbon/slime/slime = M if(prob(25)) user << "\red [src] passes right through [M]!" return if(power > 0) - Metroid.attacked += 10 + slime.attacked += 10 - if(Metroid.Discipline && prob(50)) // wow, buddy, why am I getting attacked?? - Metroid.Discipline = 0 + if(slime.Discipline && prob(50)) // wow, buddy, why am I getting attacked?? + slime.Discipline = 0 if(power >= 3) - if(istype(Metroid, /mob/living/carbon/metroid/adult)) + if(istype(slime, /mob/living/carbon/slime/adult)) if(prob(5 + round(power/2))) - if(Metroid.Victim) - if(prob(80) && !Metroid.client) - Metroid.Discipline++ - Metroid.Victim = null - Metroid.anchored = 0 + if(slime.Victim) + if(prob(80) && !slime.client) + slime.Discipline++ + slime.Victim = null + slime.anchored = 0 spawn() - if(Metroid) - Metroid.SStun = 1 + if(slime) + slime.SStun = 1 sleep(rand(5,20)) - if(Metroid) - Metroid.SStun = 0 + if(slime) + slime.SStun = 0 spawn(0) - if(Metroid) - Metroid.canmove = 0 - step_away(Metroid, user) + if(slime) + slime.canmove = 0 + step_away(slime, user) if(prob(25 + power)) sleep(2) - if(Metroid && user) - step_away(Metroid, user) - Metroid.canmove = 1 + if(slime && user) + step_away(slime, user) + slime.canmove = 1 else if(prob(10 + power*2)) - if(Metroid) - if(Metroid.Victim) - if(prob(80) && !Metroid.client) - Metroid.Discipline++ + if(slime) + if(slime.Victim) + if(prob(80) && !slime.client) + slime.Discipline++ - if(Metroid.Discipline == 1) - Metroid.attacked = 0 + if(slime.Discipline == 1) + slime.attacked = 0 spawn() - if(Metroid) - Metroid.SStun = 1 + if(slime) + slime.SStun = 1 sleep(rand(5,20)) - if(Metroid) - Metroid.SStun = 0 + if(slime) + slime.SStun = 0 - Metroid.Victim = null - Metroid.anchored = 0 + slime.Victim = null + slime.anchored = 0 spawn(0) - if(Metroid && user) - step_away(Metroid, user) - Metroid.canmove = 0 + if(slime && user) + step_away(slime, user) + slime.canmove = 0 if(prob(25 + power*4)) sleep(2) - if(Metroid && user) - step_away(Metroid, user) - Metroid.canmove = 1 + if(slime && user) + step_away(slime, user) + slime.canmove = 1 var/showname = "." @@ -296,7 +296,7 @@ else switch(src.damtype) if("brute") - if(istype(src, /mob/living/carbon/metroid)) + if(istype(src, /mob/living/carbon/slime)) M.adjustBrainLoss(power) else @@ -596,7 +596,7 @@ user << "\red You're going to need to remove that mask/helmet/glasses first." return - if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/metroid))//Aliens don't have eyes./N Metroids also don't have eyes! + if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime))//Aliens don't have eyes./N slimes also don't have eyes! user << "\red You cannot locate any eyes on this creature!" return diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 1c391fe81d..0edd1a8736 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -78,9 +78,9 @@ if(istype(G, /obj/item/weapon/grab)) if(!ismob(G:affecting)) return - for(var/mob/living/carbon/metroid/M in range(1,G:affecting)) + for(var/mob/living/carbon/slime/M in range(1,G:affecting)) if(M.Victim == G:affecting) - usr << "[G:affecting:name] will not fit into the [src.name] because they have a Metroid latched onto their head." + usr << "[G:affecting:name] will not fit into the [src.name] because they have a slime latched onto their head." return var/mob/M = G:affecting if(put_mob(M)) diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 109a7af65e..3138a78bde 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -48,7 +48,7 @@ user << "\red You're going to need to remove that mask/helmet/glasses first." return - if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/metroid))//Aliens don't have eyes./N + if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime))//Aliens don't have eyes./N user << "\red You cannot locate any eyes on this creature!" return @@ -286,7 +286,7 @@ M:appendix_op_stage = 4.0 return - if(user.zone_sel.selecting == "head" || istype(M, /mob/living/carbon/metroid)) + if(user.zone_sel.selecting == "head" || istype(M, /mob/living/carbon/slime)) var/mob/living/carbon/human/H = M if(istype(H) && ( \ @@ -306,7 +306,7 @@ switch(M:brain_op_stage) if(0.0) - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) if(M.stat == 2) for(var/mob/O in (viewers(M) - user - M)) O.show_message("\red [M.name] is beginning to have its flesh cut open with [src] by [user].", 1) @@ -346,7 +346,7 @@ M:brain_op_stage = 1.0 if(1) - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) if(M.stat == 2) for(var/mob/O in (viewers(M) - user - M)) O.show_message("\red [M.name] is having its silky inndards cut apart with [src] by [user].", 1) @@ -355,11 +355,11 @@ M:brain_op_stage = 2.0 return if(2.0) - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) if(M.stat == 2) - var/mob/living/carbon/metroid/Metroid = M - if(Metroid.cores > 0) - if(istype(M, /mob/living/carbon/metroid)) + var/mob/living/carbon/slime/slime = M + if(slime.cores > 0) + if(istype(M, /mob/living/carbon/slime)) user << "\red You attempt to remove [M]'s core, but [src] is ineffective!" return @@ -413,7 +413,7 @@ user << "\red You're going to need to remove that mask/helmet/glasses first." return - if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/metroid))//Aliens don't have eyes./N + if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime))//Aliens don't have eyes./N user << "\red You cannot locate any eyes on this creature!" return @@ -467,7 +467,7 @@ src.add_fingerprint(user) - if(user.zone_sel.selecting == "head" || istype(M, /mob/living/carbon/metroid)) + if(user.zone_sel.selecting == "head" || istype(M, /mob/living/carbon/slime)) var/mob/living/carbon/human/H = M if(istype(H) && ( \ @@ -487,7 +487,7 @@ switch(M:brain_op_stage) if(1.0) - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) return if(M != user) for(var/mob/O in (viewers(M) - user - M)) @@ -519,21 +519,21 @@ M:brain_op_stage = 2.0 if(2.0) - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) if(M.stat == 2) - var/mob/living/carbon/metroid/Metroid = M - if(Metroid.cores > 0) + var/mob/living/carbon/slime/slime = M + if(slime.cores > 0) for(var/mob/O in (viewers(M) - user - M)) O.show_message("\red [M.name] is having one of its cores sawed out with [src] by [user].", 1) - Metroid.cores-- - M << "\red [user] begins to remove one of your cores with [src]! ([Metroid.cores] cores remaining)" - user << "\red You cut one of [M]'s cores out with [src]! ([Metroid.cores] cores remaining)" + slime.cores-- + M << "\red [user] begins to remove one of your cores with [src]! ([slime.cores] cores remaining)" + user << "\red You cut one of [M]'s cores out with [src]! ([slime.cores] cores remaining)" - new/obj/item/metroid_core(M.loc) + new/obj/item/slime_core(M.loc) - if(Metroid.cores <= 0) - M.icon_state = "baby roro dead-nocore" + if(slime.cores <= 0) + M.icon_state = "baby slime dead-nocore" return diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 995e1917d3..cfeb540166 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -57,8 +57,8 @@ healthcheck() return -/obj/structure/grille/attack_metroid(mob/user as mob) - if(!istype(user, /mob/living/carbon/metroid/adult)) return +/obj/structure/grille/attack_slime(mob/user as mob) + if(!istype(user, /mob/living/carbon/slime/adult)) return playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) user.visible_message("[user] smashes against [src].", \ diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 308103ab7c..f0060dfe93 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -49,7 +49,7 @@ // MouseDrop_T(var/atom/movable/C, mob/user) // if(istype(C, /obj/mob/carbon/monkey) -// else if(istype(C, /obj/mob/carbon/alien) && !istype(C, /mob/living/carbon/alien/larva/metroid)) +// else if(istype(C, /obj/mob/carbon/alien) && !istype(C, /mob/living/carbon/alien/larva/slime)) // else if(istype(C, /obj/livestock/spesscarp attack_hand(mob/user as mob) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 77ca568d26..c6a448be97 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -86,8 +86,8 @@ shatter() -/obj/structure/mirror/attack_metroid(mob/user as mob) - if(!ismetroidadult(user)) return +/obj/structure/mirror/attack_slime(mob/user as mob) + if(!isslimeadult(user)) return if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 82e9cbad9d..fdaf22aa41 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -113,7 +113,7 @@ return attack_hand(user) -/obj/structure/window/proc/attack_generic(mob/user as mob, damage = 0) //used by attack_alien, attack_animal, and attack_metroid +/obj/structure/window/proc/attack_generic(mob/user as mob, damage = 0) //used by attack_alien, attack_animal, and attack_slime health -= damage if(health <= 0) user.visible_message("[user] smashes through [src]!") @@ -136,8 +136,8 @@ attack_generic(M, M.melee_damage_upper) -/obj/structure/window/attack_metroid(mob/user as mob) - if(!ismetroidadult(user)) return +/obj/structure/window/attack_slime(mob/user as mob) + if(!isslimeadult(user)) return attack_generic(user, rand(10, 15)) diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 75aab97c0e..85763ef6c8 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -56,7 +56,7 @@ var/list/mechtoys = list( else if(istype(A, /mob/living)) // You Shall Not Pass! var/mob/living/M = A - if(!M.lying && !istype(M, /mob/living/carbon/monkey) && !istype(M, /mob/living/carbon/metroid)) //If your not laying down, or a small creature, no pass. + if(!M.lying && !istype(M, /mob/living/carbon/monkey) && !istype(M, /mob/living/carbon/slime)) //If your not laying down, or a small creature, no pass. return 0 return ..() diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 0c332d46a7..2c8f505ae5 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -43,7 +43,7 @@ else M.inertia_dir = 0 return - else if(!istype(M, /mob/living/carbon/metroid)) + else if(!istype(M, /mob/living/carbon/slime)) if (M.m_intent == "run") M.stop_pulling() step(M, M.dir) @@ -56,7 +56,7 @@ return if(2) //lube //can cause infinite loops - needs work - if(!istype(M, /mob/living/carbon/metroid)) + if(!istype(M, /mob/living/carbon/slime)) M.stop_pulling() step(M, M.dir) spawn(1) step(M, M.dir) diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index 4d7dede92f..f207785180 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -154,7 +154,7 @@ updatehealth() -/mob/living/carbon/metroid/verb/suicide() +/mob/living/carbon/slime/verb/suicide() set hidden = 1 if (stat == 2) src << "You're already dead!" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 82cc09d21e..52fed493fe 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -97,7 +97,7 @@ var/global/floorIsLava = 0 body += "Make AI | " body += "Make Robot | " body += "Make Alien | " - body += "Make Metroid " + body += "Make slime " //Simple Animals if(isanimal(M)) @@ -114,8 +114,8 @@ var/global/floorIsLava = 0 body += "Sentinel, " body += "Larva \] " body += "Human " - body += "\[ Metroid: Baby, " - body += "Adult \] " + body += "\[ slime: Baby, " + body += "Adult \] " body += "Monkey | " body += "Cyborg | " body += "Cat | " diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index ce9138e3a2..cc389291a3 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -228,8 +228,8 @@ if(iscarbon(M)) //Carbon stuff if(ishuman(M)) M_job = M.job - else if(ismetroid(M)) - M_job = "Metroid" + else if(isslime(M)) + M_job = "slime" else if(ismonkey(M)) M_job = "Monkey" else if(isalien(M)) //aliens diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index cd32c78eb0..afb3a77e40 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -262,8 +262,8 @@ if("sentinel") M.change_mob_type( /mob/living/carbon/alien/humanoid/sentinel , null, null, delmob ) if("larva") M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob ) if("human") M.change_mob_type( /mob/living/carbon/human , null, null, delmob ) - if("metroid") M.change_mob_type( /mob/living/carbon/metroid , null, null, delmob ) - if("adultmetroid") M.change_mob_type( /mob/living/carbon/metroid/adult , null, null, delmob ) + if("slime") M.change_mob_type( /mob/living/carbon/slime , null, null, delmob ) + if("adultslime") M.change_mob_type( /mob/living/carbon/slime/adult , null, null, delmob ) if("monkey") M.change_mob_type( /mob/living/carbon/monkey , null, null, delmob ) if("robot") M.change_mob_type( /mob/living/silicon/robot , null, null, delmob ) if("cat") M.change_mob_type( /mob/living/simple_animal/cat , null, null, delmob ) @@ -1137,15 +1137,15 @@ usr.client.cmd_admin_alienize(H) - else if(href_list["makemetroid"]) + else if(href_list["makeslime"]) if(!check_rights(R_SPAWN)) return - var/mob/living/carbon/human/H = locate(href_list["makemetroid"]) + var/mob/living/carbon/human/H = locate(href_list["makeslime"]) if(!istype(H)) usr << "This can only be used on instances of type /mob/living/carbon/human" return - usr.client.cmd_admin_metroidize(H) + usr.client.cmd_admin_slimeize(H) else if(href_list["makerobot"]) if(!check_rights(R_SPAWN)) return diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 9eb1a301e2..b0420a3708 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -230,20 +230,20 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that else alert("Invalid mob") -/client/proc/cmd_admin_metroidize(var/mob/M in mob_list) +/client/proc/cmd_admin_slimeize(var/mob/M in mob_list) set category = "Fun" - set name = "Make Metroid" + set name = "Make slime" if(!ticker) alert("Wait until the game starts") return if(ishuman(M)) - log_admin("[key_name(src)] has metroidized [M.key].") + log_admin("[key_name(src)] has slimeized [M.key].") spawn(10) - M:Metroidize() + M:slimeize() feedback_add_details("admin_verb","MKMET") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - log_admin("[key_name(usr)] made [key_name(M)] into a metroid.") - message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into a metroid.", 1) + log_admin("[key_name(usr)] made [key_name(M)] into a slime.") + message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into a slime.", 1) else alert("Invalid mob") diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 41341fb9fb..50e1215d27 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -10,10 +10,10 @@ desc = "It smells faintly of plasma" icon_state = "petehat" -/obj/item/clothing/head/collectable/metroid - name = "collectable metroid cap!" +/obj/item/clothing/head/collectable/slime + name = "collectable slime cap!" desc = "It just latches right in place!" - icon_state = "metroid" + icon_state = "slime" /obj/item/clothing/head/collectable/xenom name = "collectable xenomorph helmet!" diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index 105f6a9f7b..82a9e9c9c7 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -50,9 +50,9 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly -/datum/recipe/jellydonut/roro - reagents = list("rorojelly" = 5, "flour" = 5) - result = /obj/item/weapon/reagent_containers/food/snacks/donut/rorojelly +/datum/recipe/jellydonut/slime + reagents = list("slimejelly" = 5, "flour" = 5) + result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly /datum/recipe/jellydonut/cherry reagents = list("cherryjelly" = 5, "flour" = 5) @@ -775,12 +775,12 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/stew -/datum/recipe/rorotoast - reagents = list("rorojelly" = 5) +/datum/recipe/slimetoast + reagents = list("slimejelly" = 5) items = list( /obj/item/weapon/reagent_containers/food/snacks/breadslice, ) - result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/roro + result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime /datum/recipe/jelliedtoast reagents = list("cherryjelly" = 5) @@ -902,10 +902,10 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake -/datum/recipe/roroburger - reagents = list("rorojelly" = 5, "flour" = 15) +/datum/recipe/slimeburger + reagents = list("slimejelly" = 5, "flour" = 15) items = list() - result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/roro + result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime /datum/recipe/jellyburger reagents = list("cherryjelly" = 5, "flour" = 15) @@ -920,13 +920,13 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/twobread -/datum/recipe/rorosandwich - reagents = list("rorojelly" = 5) +/datum/recipe/slimesandwich + reagents = list("slimejelly" = 5) items = list( /obj/item/weapon/reagent_containers/food/snacks/breadslice, /obj/item/weapon/reagent_containers/food/snacks/breadslice, ) - result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/roro + result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime /datum/recipe/cherrysandwich reagents = list("cherryjelly" = 5) @@ -989,11 +989,11 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/bloodsoup -/datum/recipe/rorosoup - reagents = list("water" = 10, "rorojelly" = 5) +/datum/recipe/slimesoup + reagents = list("water" = 10, "slimejelly" = 5) items = list( ) - result = /obj/item/weapon/reagent_containers/food/snacks/rorosoup + result = /obj/item/weapon/reagent_containers/food/snacks/slimesoup /datum/recipe/clownstears reagents = list("water" = 10) @@ -1002,14 +1002,14 @@ I said no! /obj/item/weapon/ore/clown, ) result = /obj/item/weapon/reagent_containers/food/snacks/clownstears - -/datum/recipe/boiledrorocore +/* +/datum/recipe/boiledslimeextract reagents = list("water" = 5) items = list( - /obj/item/metroid_core, + /obj/item/slime_core, ) - result = /obj/item/weapon/reagent_containers/food/snacks/boiledrorocore - + result = /obj/item/weapon/reagent_containers/food/snacks/boiledslimecore +*/ /datum/recipe/braincake reagents = list("milk" = 5, "flour" = 15) items = list( diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 25f14e434a..37dc1b20fe 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -213,7 +213,7 @@ if ((s_active && !( s_active in contents ) )) s_active.close(src) - for(var/mob/living/carbon/metroid/M in view(1,src)) + for(var/mob/living/carbon/slime/M in view(1,src)) M.UpdateFeed(src) return @@ -265,7 +265,7 @@ return -/mob/living/carbon/alien/humanoid/attack_metroid(mob/living/carbon/metroid/M as mob) +/mob/living/carbon/alien/humanoid/attack_slime(mob/living/carbon/slime/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -280,7 +280,7 @@ var/damage = rand(1, 3) - if(istype(M, /mob/living/carbon/metroid/adult)) + if(istype(M, /mob/living/carbon/slime/adult)) damage = rand(10, 40) else damage = rand(5, 35) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 38542f946e..396ab532e7 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -208,7 +208,7 @@ if ((s_active && !( s_active in contents ) )) s_active.close(src) - for(var/mob/living/carbon/metroid/M in view(1,src)) + for(var/mob/living/carbon/slime/M in view(1,src)) M.UpdateFeed(src) return @@ -279,7 +279,7 @@ return -/mob/living/carbon/alien/larva/attack_metroid(mob/living/carbon/metroid/M as mob) +/mob/living/carbon/alien/larva/attack_slime(mob/living/carbon/slime/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -294,7 +294,7 @@ var/damage = rand(1, 3) - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) damage = rand(20, 40) else damage = rand(5, 35) diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 0a917a0158..0de81585a3 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -42,7 +42,7 @@ return 1 if (istype(other, /mob/living/carbon/human)) return 1 - if (istype(other, /mob/living/carbon/metroid)) + if (istype(other, /mob/living/carbon/slime)) return 1 return ..() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2205a70b30..b21b040ad1 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -64,9 +64,9 @@ loc = tmob.loc tmob.loc = oldloc now_pushing = 0 - for(var/mob/living/carbon/metroid/Metroid in view(1,tmob)) - if(Metroid.Victim == tmob) - Metroid.UpdateFeed() + for(var/mob/living/carbon/slime/slime in view(1,tmob)) + if(slime.Victim == tmob) + slime.UpdateFeed() return if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) @@ -317,7 +317,7 @@ if ((s_active && !( s_active in contents ) )) s_active.close(src) - for(var/mob/living/carbon/metroid/M in view(1,src)) + for(var/mob/living/carbon/slime/M in view(1,src)) M.UpdateFeed(src) return @@ -357,7 +357,7 @@ if(armor >= 2) return -/mob/living/carbon/human/attack_metroid(mob/living/carbon/metroid/M as mob) +/mob/living/carbon/human/attack_slime(mob/living/carbon/slime/M as mob) if(M.Victim) return // can't attack while eating! if (health > -100) @@ -368,7 +368,7 @@ var/damage = rand(1, 3) - if(istype(M, /mob/living/carbon/metroid/adult)) + if(istype(M, /mob/living/carbon/slime/adult)) damage = rand(10, 35) else damage = rand(5, 25) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index a1668c31d9..c227342adc 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1034,7 +1034,7 @@ sight &= ~(SEE_TURFS|SEE_MOBS|SEE_OBJS) if(dna) switch(dna.mutantrace) - if("lizard","metroid") + if("lizard","slime") see_in_dark = 3 see_invisible = SEE_INVISIBLE_LEVEL_ONE if("shadow") diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index ce1e55bdd5..7471d05338 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -23,7 +23,7 @@ if(copytext(message, 1, 2) != "*") message = replacetext(message, "s", stutter("ss")) - if(src.dna.mutantrace == "metroid" && prob(5)) + if(src.dna.mutantrace == "slime" && prob(5)) if(copytext(message, 1, 2) != "*") if(copytext(message, 1, 2) == ";") message = ";" @@ -134,7 +134,7 @@ return 1 if (istype(other, /mob/living/carbon/brain)) return 1 - if (istype(other, /mob/living/carbon/metroid)) + if (istype(other, /mob/living/carbon/slime)) return 1 return ..() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 81af8049cd..0f00d20805 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -54,7 +54,7 @@ There are several things that need to be remembered: All of these are named after the variable they update from. They are defined at the mob/ level like update_clothing was, so you won't cause undefined proc runtimes with usr.update_inv_wear_id() if the usr is a - metroid etc. Instead, it'll just return without doing any work. So no harm in calling it for metroids and such. + slime etc. Instead, it'll just return without doing any work. So no harm in calling it for slimes and such. > There are also these special cases: @@ -323,7 +323,7 @@ Please contact me on #coderbus IRC. ~Carn x if(dna) switch(dna.mutantrace) - if("lizard","golem","metroid","shadow") + if("lizard","golem","slime","shadow") overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_l") overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_s") if("plant") diff --git a/code/modules/mob/living/carbon/metroid/death.dm b/code/modules/mob/living/carbon/metroid/death.dm index 1f477a8359..934c00395d 100644 --- a/code/modules/mob/living/carbon/metroid/death.dm +++ b/code/modules/mob/living/carbon/metroid/death.dm @@ -1,10 +1,10 @@ -/mob/living/carbon/metroid/death(gibbed) +/mob/living/carbon/slime/death(gibbed) if(stat == DEAD) return stat = DEAD - icon_state = "baby roro dead" + icon_state = "baby slime dead" if(!gibbed) - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) ghostize() explosion(loc, -1,-1,3,12) if(src) del(src) diff --git a/code/modules/mob/living/carbon/metroid/emote.dm b/code/modules/mob/living/carbon/metroid/emote.dm index 6765f6f31f..2ee388f7d0 100644 --- a/code/modules/mob/living/carbon/metroid/emote.dm +++ b/code/modules/mob/living/carbon/metroid/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/metroid/emote(var/act) +/mob/living/carbon/slime/emote(var/act) if (findtext(act, "-", 1, null)) @@ -16,11 +16,6 @@ if("moan") message = "The [src.name] moans." m_type = 2 -// if("roar") -// if (!muzzled) -// message = "The [src.name] roars." Commenting out since larva shouldn't roar /N -// m_type = 2 - if("shiver") message = "The [src.name] shivers." m_type = 2 @@ -36,17 +31,11 @@ if("light") message = "The [src.name] lights up for a bit, then stops." m_type = 1 - if("click") - message = "The [src.name] makes a clicking noise!" + if("jiggle") + message = "The [src.name] jiggles!" m_type = 1 - if("chatter") - message = "The [src.name] makes a noisy chattering sound!" - m_type = 1 - if("growl") - message = "The [src.name] growls!" - m_type = 1 - if("shriek") - message = "The [src.name] makes a high-pitched shriek!" + if("bounce") + message = "The [src.name] bounces in place." m_type = 1 else src << text("Invalid Emote: []", act) diff --git a/code/modules/mob/living/carbon/metroid/examine.dm b/code/modules/mob/living/carbon/metroid/examine.dm index ec25848ccc..f8fc23ad2e 100644 --- a/code/modules/mob/living/carbon/metroid/examine.dm +++ b/code/modules/mob/living/carbon/metroid/examine.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/metroid/examine() +/mob/living/carbon/slime/examine() set src in oview() if(!usr || !src) return diff --git a/code/modules/mob/living/carbon/metroid/hud.dm b/code/modules/mob/living/carbon/metroid/hud.dm index 908703c12b..c770083906 100644 --- a/code/modules/mob/living/carbon/metroid/hud.dm +++ b/code/modules/mob/living/carbon/metroid/hud.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/metroid/proc/regular_hud_updates() +/mob/living/carbon/slime/proc/regular_hud_updates() return diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm index 416129e54b..ff564c8450 100644 --- a/code/modules/mob/living/carbon/metroid/life.dm +++ b/code/modules/mob/living/carbon/metroid/life.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/metroid/Life() +/mob/living/carbon/slime/Life() set invisibility = 0 set background = 1 @@ -41,21 +41,21 @@ -/mob/living/carbon/metroid +/mob/living/carbon/slime var/AIproc = 0 // determines if the AI loop is activated var/Atkcool = 0 // attack cooldown var/Tempstun = 0 // temporary temperature stuns - var/Discipline = 0 // if a metroid has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while + var/Discipline = 0 // if a slime has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while var/SStun = 0 // stun variable -/mob/living/carbon/metroid/proc/AIprocess() // the master AI process +/mob/living/carbon/slime/proc/AIprocess() // the master AI process //world << "AI proc started." if(AIproc || stat == DEAD || client) return var/hungry = 0 var/starving = 0 - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) switch(nutrition) if(400 to 1100) hungry = 1 if(0 to 399) @@ -84,7 +84,7 @@ if(Target) //world << "[Target] Target Found" - for(var/mob/living/carbon/metroid/M in view(1,Target)) + for(var/mob/living/carbon/slime/M in view(1,Target)) if(M.Victim == Target) Target = null AIproc = 0 @@ -104,7 +104,7 @@ Atkcool = 0 if(get_obstacle_ok(Target)) - Target.attack_metroid(src) + Target.attack_slime(src) //world << "retrun 1" return if(!Target.lying && prob(80)) @@ -117,7 +117,7 @@ Atkcool = 0 if(get_obstacle_ok(Target)) - Target.attack_metroid(src) + Target.attack_slime(src) if(prob(30)) @@ -145,12 +145,12 @@ var/sleeptime = movement_delay() if(sleeptime <= 0) sleeptime = 1 - sleep(sleeptime + 2) // this is about as fast as a player Metroid can go + sleep(sleeptime + 2) // this is about as fast as a player slime can go AIproc = 0 //world << "AI proc ended." -/mob/living/carbon/metroid/proc/handle_environment(datum/gas_mixture/environment) +/mob/living/carbon/slime/proc/handle_environment(datum/gas_mixture/environment) if(!environment) adjustToxLoss(rand(10,20)) return @@ -208,7 +208,7 @@ return //TODO: DEFERRED -/mob/living/carbon/metroid/proc/adjust_body_temperature(current, loc_temp, boost) +/mob/living/carbon/slime/proc/adjust_body_temperature(current, loc_temp, boost) var/temperature = current var/difference = abs(current-loc_temp) //get difference var/increments// = difference/10 //find how many increments apart they are @@ -225,7 +225,7 @@ temp_change = (temperature - current) return temp_change -/mob/living/carbon/metroid/proc/handle_chemicals_in_body() +/mob/living/carbon/slime/proc/handle_chemicals_in_body() if(reagents) reagents.metabolize(src) @@ -235,9 +235,9 @@ return //TODO: DEFERRED -/mob/living/carbon/metroid/proc/handle_regular_status_updates() +/mob/living/carbon/slime/proc/handle_regular_status_updates() - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) health = 200 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) else health = 150 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) @@ -315,10 +315,10 @@ return 1 -/mob/living/carbon/metroid/proc/handle_nutrition() +/mob/living/carbon/slime/proc/handle_nutrition() if(prob(20)) - if(istype(src, /mob/living/carbon/metroid/adult)) nutrition-=rand(4,6) + if(istype(src, /mob/living/carbon/slime/adult)) nutrition-=rand(4,6) else nutrition-=rand(2,3) if(nutrition <= 0) @@ -327,38 +327,44 @@ adjustToxLoss(rand(0,5)) - else - if(istype(src, /mob/living/carbon/metroid/adult)) - if(nutrition >= 1000) - if(prob(40)) amount_grown++ - else - if(nutrition >= 800) - if(prob(40)) amount_grown++ + if(istype(src, /mob/living/carbon/slime/adult)) + if(nutrition >= 1000) + if(prob(40)) amount_grown++ + + else + if(nutrition >= 800) + if(prob(40)) amount_grown++ - //lay eggs or grow if(amount_grown >= 10 && !Victim && !Target) - if(istype(src, /mob/living/carbon/metroid/adult)) - if(!client && nutrition >= 1000) - var/number = pick(1,1,1,1,1,1,2,2,2,3) //number of eggs laid - var/obj/item/weapon/reagent_containers/food/snacks/egg/roro/E - for(var/i=1,i<=number,i++) - E = new(loc) - src.nutrition -= 200 - step_away(E,src) + if(istype(src, /mob/living/carbon/slime/adult)) + if(!client) + var/number = pick(2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4) + for(var/i=1,i<=number,i++) // reproduce (has a small chance of producing 3 or 4 offspring) + var/mob/living/carbon/slime/M = new/mob/living/carbon/slime(loc) +// M.nutrition = round(nutrition * 0.9) + M.powerlevel = round(powerlevel/number) + M.Friends = Friends + M.tame = tame + M.rabid = rabid + M.Discipline = Discipline + if(i != 1) step_away(M,src) + + del(src) else if(!client) - var/mob/living/carbon/metroid/adult/A = new/mob/living/carbon/metroid/adult(src.loc) + var/mob/living/carbon/slime/adult/A = new/mob/living/carbon/slime/adult(src.loc) A.nutrition = nutrition - A.nutrition += 100 +// A.nutrition += 100 A.powerlevel = max(0, powerlevel-1) A.Friends = Friends A.tame = tame A.rabid = rabid del(src) -/mob/living/carbon/metroid/proc/handle_targets() + +/mob/living/carbon/slime/proc/handle_targets() if(Tempstun) if(!Victim) // not while they're eating! canmove = 0 @@ -394,14 +400,14 @@ if(prob(5)) - emote(pick("click","chatter","sway","light","vibrate","chatter","shriek")) + emote(pick("bounce","sway","light","vibrate","jiggle")) if(AIproc && SStun) return - var/hungry = 0 // determines if the metroid is hungry - var/starving = 0 // determines if the metroid is starving-hungry - if(istype(src, /mob/living/carbon/metroid/adult)) // 1200 max nutrition + var/hungry = 0 // determines if the slime is hungry + var/starving = 0 // determines if the slime is starving-hungry + if(istype(src, /mob/living/carbon/slime/adult)) // 1200 max nutrition switch(nutrition) if(601 to 900) if(prob(25)) hungry = 1//Ensures they continue eating, but aren't as aggressive at the same time @@ -417,7 +423,7 @@ if(0 to 200) starving = 1 - if(starving && !client) // if a metroid is starving, it starts losing its friends + if(starving && !client) // if a slime is starving, it starts losing its friends if(Friends.len > 0 && prob(1)) var/mob/nofriend = pick(Friends) Friends -= nofriend @@ -428,42 +434,42 @@ if(hungry || starving) //Only add to the list if we need to for(var/mob/living/L in view(7,src)) - //Ignore other metroids, dead mobs and simple_animals - if(ismetroid(L) || L.stat != CONSCIOUS || isanimal(L)) + //Ignore other slimes, dead mobs and simple_animals + if(isslime(L) || L.stat != CONSCIOUS || isanimal(L)) continue if(issilicon(L)) - if(!istype(src, /mob/living/carbon/metroid/adult)) //Non-starving diciplined adult metroids wont eat things + if(!istype(src, /mob/living/carbon/slime/adult)) //Non-starving diciplined adult slimes wont eat things if(!starving && Discipline > 0) continue - if(tame) //Tame metroids ignore electronic life + if(tame) //Tame slimes ignore electronic life continue targets += L //Possible target found! else if(iscarbon(L)) - if(istype(L, /mob/living/carbon/human)) //Ignore metroid(wo)men + if(istype(L, /mob/living/carbon/human)) //Ignore slime(wo)men var/mob/living/carbon/human/H = L if(H.dna) - if(H.dna.mutantrace == "metroid") + if(H.dna.mutantrace == "slime") continue - if(!istype(src, /mob/living/carbon/metroid/adult)) //Non-starving diciplined adult metroids wont eat things + if(!istype(src, /mob/living/carbon/slime/adult)) //Non-starving diciplined adult slimes wont eat things if(!starving && Discipline > 0) continue if(L in Friends) //No eating friends! continue - if(tame && ishuman(L)) //Tame metroids dont eat people. + if(tame && ishuman(L)) //Tame slimes dont eat people. continue - if(!L.canmove) //Only one metroid can latch on at a time. + if(!L.canmove) //Only one slime can latch on at a time. var/notarget = 0 - for(var/mob/living/carbon/metroid/M in view(1,L)) + for(var/mob/living/carbon/slime/M in view(1,L)) if(M.Victim == L) notarget = 1 if(notarget) @@ -474,7 +480,7 @@ if((hungry || starving) && targets.len > 0) - if(!istype(src, /mob/living/carbon/metroid/adult)) + if(!istype(src, /mob/living/carbon/slime/adult)) if(!starving) for(var/mob/living/carbon/C in targets) if(!Discipline && prob(5)) diff --git a/code/modules/mob/living/carbon/metroid/login.dm b/code/modules/mob/living/carbon/metroid/login.dm index 7e996f15c6..8ca29bf481 100644 --- a/code/modules/mob/living/carbon/metroid/login.dm +++ b/code/modules/mob/living/carbon/metroid/login.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/metroid/Login() +/mob/living/carbon/slime/Login() ..() update_hud() return diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index c78cfeacf3..a8b5c1195a 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -1,7 +1,7 @@ -/mob/living/carbon/metroid - name = "baby roro" +/mob/living/carbon/slime + name = "baby slime" icon = 'icons/mob/mob.dmi' - icon_state = "baby roro" + icon_state = "baby slime" pass_flags = PASSTABLE voice_message = "skree!" say_message = "hums" @@ -17,33 +17,33 @@ see_in_dark = 8 - // canstun and canweaken don't affect metroids because they ignore stun and weakened variables + // canstun and canweaken don't affect slimes because they ignore stun and weakened variables // for the sake of cleanliness, though, here they are. status_flags = CANPARALYSE|CANPUSH - var/cores = 3 // the number of /obj/item/metroid_core's the metroid has left inside + var/cores = 3 // the number of /obj/item/slime_core's the slime has left inside var/powerlevel = 0 // 1-10 controls how much electricity they are generating - var/amount_grown = 0 // controls how long the metroid has been overfed, if 10, grows into an adult + var/amount_grown = 0 // controls how long the slime has been overfed, if 10, grows into an adult // if adult: if 10: reproduces - var/mob/living/Victim = null // the person the metroid is currently feeding on - var/mob/living/Target = null // AI variable - tells the Metroid to hunt this down + var/mob/living/Victim = null // the person the slime is currently feeding on + var/mob/living/Target = null // AI variable - tells the slime to hunt this down var/attacked = 0 // determines if it's been attacked recently. Can be any number, is a cooloff-ish variable - var/tame = 0 // if set to 1, the Metroid will not eat humans ever, or attack them - var/rabid = 0 // if set to 1, the Metroid will attack and eat anything it comes in contact with + var/tame = 0 // if set to 1, the slime will not eat humans ever, or attack them + var/rabid = 0 // if set to 1, the slime will attack and eat anything it comes in contact with var/list/Friends = list() // A list of potential friends - var/list/FriendsWeight = list() // A list containing values respective to Friends. This determines how many times a Metroid "likes" something. If the Metroid likes it more than 2 times, it becomes a friend + var/list/FriendsWeight = list() // A list containing values respective to Friends. This determines how many times a slime "likes" something. If the slime likes it more than 2 times, it becomes a friend - // Metroids pass on genetic data, so all their offspring have the same "Friends", + // slimes pass on genetic data, so all their offspring have the same "Friends", -/mob/living/carbon/metroid/adult - name = "adult roro" +/mob/living/carbon/slime/adult + name = "adult slime" icon = 'icons/mob/mob.dmi' - icon_state = "adult roro" + icon_state = "adult slime" health = 200 gender = NEUTER @@ -52,25 +52,25 @@ nutrition = 800 // 1200 = max -/mob/living/carbon/metroid/New() +/mob/living/carbon/slime/New() var/datum/reagents/R = new/datum/reagents(100) reagents = R R.my_atom = src - if(name == "baby roro") - name = text("baby roro ([rand(1, 1000)])") + if(name == "baby slime") + name = text("baby slime ([rand(1, 1000)])") else - name = text("adult roro ([rand(1,1000)])") + name = text("adult slime ([rand(1,1000)])") real_name = name spawn (1) regenerate_icons() src << "\blue Your icons have been generated!" ..() -/mob/living/carbon/metroid/adult/New() - verbs.Remove(/mob/living/carbon/metroid/verb/ventcrawl) +/mob/living/carbon/slime/adult/New() + verbs.Remove(/mob/living/carbon/slime/verb/ventcrawl) ..() -/mob/living/carbon/metroid/movement_delay() +/mob/living/carbon/slime/movement_delay() var/tally = 0 var/health_deficiency = (100 - health) @@ -80,22 +80,22 @@ tally += (283.222 - bodytemperature) / 10 * 1.75 if(reagents) - if(reagents.has_reagent("hyperzine")) // hyperzine slows Metroids down + if(reagents.has_reagent("hyperzine")) // hyperzine slows slimes down tally *= 2 // moves twice as slow if(reagents.has_reagent("frostoil")) // frostoil also makes them move VEEERRYYYYY slow tally *= 5 - if(health <= 0) // if damaged, the metroid moves twice as slow + if(health <= 0) // if damaged, the slime moves twice as slow tally *= 2 if (bodytemperature >= 330.23) // 135 F - return -1 // Metroids become supercharged at high temperatures + return -1 // slimes become supercharged at high temperatures - return tally+config.metroid_delay + return tally+config.slime_delay -/mob/living/carbon/metroid/Bump(atom/movable/AM as mob|obj, yes) +/mob/living/carbon/slime/Bump(atom/movable/AM as mob|obj, yes) spawn( 0 ) if ((!( yes ) || now_pushing)) return @@ -115,9 +115,9 @@ if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille)) - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) if(nutrition <= 600 && !Atkcool) - AM.attack_metroid(src) + AM.attack_slime(src) spawn() Atkcool = 1 sleep(15) @@ -125,7 +125,7 @@ else if(nutrition <= 500 && !Atkcool) if(prob(5)) - AM.attack_metroid(src) + AM.attack_slime(src) spawn() Atkcool = 1 sleep(15) @@ -134,7 +134,7 @@ if(ismob(AM)) var/mob/tmob = AM - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) if(istype(tmob, /mob/living/carbon/human)) if(prob(90)) now_pushing = 0 @@ -162,22 +162,22 @@ return return -/mob/living/carbon/metroid/Process_Spacemove() +/mob/living/carbon/slime/Process_Spacemove() return 2 -/mob/living/carbon/metroid/Stat() +/mob/living/carbon/slime/Stat() ..() statpanel("Status") - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) stat(null, "Health: [round((health / 200) * 100)]%") else stat(null, "Health: [round((health / 150) * 100)]%") if (client.statpanel == "Status") - if(istype(src,/mob/living/carbon/metroid/adult)) + if(istype(src,/mob/living/carbon/slime/adult)) stat(null, "Nutrition: [nutrition]/1200") if(amount_grown >= 10) stat(null, "You can reproduce!") @@ -189,21 +189,21 @@ stat(null,"Power Level: [powerlevel]") -/mob/living/carbon/metroid/adjustFireLoss(amount) +/mob/living/carbon/slime/adjustFireLoss(amount) ..(-abs(amount)) // Heals them return -/mob/living/carbon/metroid/bullet_act(var/obj/item/projectile/Proj) +/mob/living/carbon/slime/bullet_act(var/obj/item/projectile/Proj) attacked += 10 ..(Proj) return 0 -/mob/living/carbon/metroid/emp_act(severity) +/mob/living/carbon/slime/emp_act(severity) powerlevel = 0 // oh no, the power! ..() -/mob/living/carbon/metroid/ex_act(severity) +/mob/living/carbon/slime/ex_act(severity) if (stat == 2 && client) return @@ -234,7 +234,7 @@ updatehealth() -/mob/living/carbon/metroid/blob_act() +/mob/living/carbon/slime/blob_act() if (stat == 2) return var/shielded = 0 @@ -256,14 +256,14 @@ return -/mob/living/carbon/metroid/u_equip(obj/item/W as obj) +/mob/living/carbon/slime/u_equip(obj/item/W as obj) return -/mob/living/carbon/metroid/attack_ui(slot) +/mob/living/carbon/slime/attack_ui(slot) return -/mob/living/carbon/metroid/meteorhit(O as obj) +/mob/living/carbon/slime/meteorhit(O as obj) for(var/mob/M in viewers(src, null)) if ((M.client && !( M.blinded ))) M.show_message(text("\red [] has been hit by []", src, O), 1) @@ -275,7 +275,7 @@ return -/mob/living/carbon/metroid/Move(a, b, flag) +/mob/living/carbon/slime/Move(a, b, flag) var/t7 = 1 if (restrained()) @@ -337,7 +337,7 @@ return -/mob/living/carbon/metroid/attack_metroid(mob/living/carbon/metroid/M as mob) +/mob/living/carbon/slime/attack_slime(mob/living/carbon/slime/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -353,7 +353,7 @@ var/damage = rand(1, 3) attacked += 5 - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) damage = rand(1, 6) else damage = rand(1, 3) @@ -366,7 +366,7 @@ return -/mob/living/carbon/metroid/attack_animal(mob/living/simple_animal/M as mob) +/mob/living/carbon/slime/attack_animal(mob/living/simple_animal/M as mob) if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else @@ -380,7 +380,7 @@ adjustBruteLoss(damage) updatehealth() -/mob/living/carbon/metroid/attack_paw(mob/living/carbon/monkey/M as mob) +/mob/living/carbon/slime/attack_paw(mob/living/carbon/monkey/M as mob) if(!(istype(M, /mob/living/carbon/monkey))) return//Fix for aliens receiving double messages when attacking other aliens. if (!ticker) @@ -401,16 +401,16 @@ return if (health > 0) attacked += 10 - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) + //playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) - O.show_message(text("\red [M.name] has bit [src]!"), 1) + O.show_message(text("\red [M.name] has attacked [src]!"), 1) adjustBruteLoss(rand(1, 3)) updatehealth() return -/mob/living/carbon/metroid/attack_hand(mob/living/carbon/human/M as mob) +/mob/living/carbon/slime/attack_hand(mob/living/carbon/human/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -466,7 +466,7 @@ if(prob(80) && !client) Discipline++ - if(!istype(src, /mob/living/carbon/metroid/adult)) + if(!istype(src, /mob/living/carbon/slime/adult)) if(Discipline == 1) attacked = 0 @@ -566,7 +566,7 @@ -/mob/living/carbon/metroid/attack_alien(mob/living/carbon/alien/humanoid/M as mob) +/mob/living/carbon/slime/attack_alien(mob/living/carbon/alien/humanoid/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -591,7 +591,7 @@ damage = rand(20, 40) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has slashed [name]!", M), 1) + O.show_message(text("\red [] has attacked [name]!", M), 1) else for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) @@ -635,7 +635,7 @@ anchored = 0 if(prob(80) && !client) Discipline++ - if(!istype(src, /mob/living/carbon/metroid)) + if(!istype(src, /mob/living/carbon/slime)) if(Discipline == 1) attacked = 0 @@ -660,15 +660,15 @@ return -/mob/living/carbon/metroid/restrained() +/mob/living/carbon/slime/restrained() return 0 -mob/living/carbon/metroid/var/co2overloadtime = null -mob/living/carbon/metroid/var/temperature_resistance = T0C+75 +mob/living/carbon/slime/var/co2overloadtime = null +mob/living/carbon/slime/var/temperature_resistance = T0C+75 -/mob/living/carbon/metroid/show_inv(mob/user as mob) +/mob/living/carbon/slime/show_inv(mob/user as mob) user.set_machine(src) var/dat = {" @@ -680,22 +680,22 @@ mob/living/carbon/metroid/var/temperature_resistance = T0C+75 onclose(user, "mob[name]") return -/mob/living/carbon/metroid/updatehealth() +/mob/living/carbon/slime/updatehealth() if(status_flags & GODMODE) - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) health = 200 else health = 150 stat = CONSCIOUS else - // metroids can't suffocate unless they suicide. They are also not harmed by fire - if(istype(src, /mob/living/carbon/metroid/adult)) + // slimes can't suffocate unless they suicide. They are also not harmed by fire + if(istype(src, /mob/living/carbon/slime/adult)) health = 200 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) else health = 150 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) -/mob/living/carbon/metroid/proc/get_obstacle_ok(atom/A) +/mob/living/carbon/slime/proc/get_obstacle_ok(atom/A) var/direct = get_dir(src, A) var/obj/item/weapon/dummy/D = new /obj/item/weapon/dummy( src.loc ) var/ok = 0 @@ -777,12 +777,12 @@ mob/living/carbon/metroid/var/temperature_resistance = T0C+75 return 1 -// Basically this Metroid Core catalyzes reactions that normally wouldn't happen anywhere -/obj/item/metroid_core - name = "roro core" - desc = "A very slimy and tender part of a Rorobeast. Legends claim these to have \"magical powers\"." - icon = 'icons/obj/surgery.dmi' - icon_state = "roro core" +// Basically this slime Core catalyzes reactions that normally wouldn't happen anywhere +/obj/item/slime_core + name = "slime extract" + desc = "Goo extracted from a slime. Legends claim these to have \"magical powers\"." + icon = 'icons/mob/mob.dmi' + icon_state = "slime extract" flags = TABLEPASS force = 1.0 w_class = 1.0 @@ -794,7 +794,7 @@ mob/living/carbon/metroid/var/temperature_resistance = T0C+75 var/Flush = 30 var/Uses = 5 // uses before it goes inert -/obj/item/metroid_core/New() +/obj/item/slime_core/New() ..() var/datum/reagents/R = new/datum/reagents(100) reagents = R @@ -815,45 +815,45 @@ mob/living/carbon/metroid/var/temperature_resistance = T0C+75 Flush = 30 */ -/obj/item/weapon/reagent_containers/food/snacks/egg/roro - name = "roro egg" +/obj/item/weapon/reagent_containers/food/snacks/egg/slime + name = "slime egg" desc = "A small, gelatinous egg." icon = 'icons/mob/mob.dmi' - icon_state = "roro egg-growing" + icon_state = "slime egg-growing" bitesize = 12 origin_tech = "biotech=4" var/grown = 0 -/obj/item/weapon/reagent_containers/food/snacks/egg/roro/New() +/obj/item/weapon/reagent_containers/food/snacks/egg/slime/New() ..() reagents.add_reagent("nutriment", 4) - reagents.add_reagent("rorojelly", 1) + reagents.add_reagent("slimejelly", 1) spawn(rand(1200,1500))//the egg takes a while to "ripen" Grow() -/obj/item/weapon/reagent_containers/food/snacks/egg/roro/proc/Grow() +/obj/item/weapon/reagent_containers/food/snacks/egg/slime/proc/Grow() grown = 1 - icon_state = "roro egg-grown" + icon_state = "slime egg-grown" processing_objects.Add(src) return -/obj/item/weapon/reagent_containers/food/snacks/egg/roro/proc/Hatch() +/obj/item/weapon/reagent_containers/food/snacks/egg/slime/proc/Hatch() processing_objects.Remove(src) var/turf/T = get_turf(src) src.visible_message("\blue The [name] pulsates and quivers!") spawn(rand(50,100)) src.visible_message("\blue The [name] bursts open!") - new/mob/living/carbon/metroid(T) + new/mob/living/carbon/slime(T) del(src) -/obj/item/weapon/reagent_containers/food/snacks/egg/roro/process() +/obj/item/weapon/reagent_containers/food/snacks/egg/slime/process() var/turf/location = get_turf(src) var/datum/gas_mixture/environment = location.return_air() if (environment.toxins > MOLES_PLASMA_VISIBLE)//plasma exposure causes the egg to hatch src.Hatch() -/obj/item/weapon/reagent_containers/food/snacks/egg/roro/attackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/item/weapon/reagent_containers/food/snacks/egg/slime/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype( W, /obj/item/toy/crayon )) return else diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm index 9c5be4af98..590a456ac0 100644 --- a/code/modules/mob/living/carbon/metroid/powers.dm +++ b/code/modules/mob/living/carbon/metroid/powers.dm @@ -1,5 +1,5 @@ -/mob/living/carbon/metroid/verb/Feed() - set category = "Roro" +/mob/living/carbon/slime/verb/Feed() + set category = "Slime" set desc = "This will let you feed on any valid creature in the surrounding area. This should also be used to halt the feeding process." if(Victim) Feedstop() @@ -11,7 +11,7 @@ var/list/choices = list() for(var/mob/living/C in view(1,src)) - if(C!=src && !istype(C,/mob/living/carbon/metroid)) + if(C!=src && !istype(C,/mob/living/carbon/slime)) choices += C var/mob/living/carbon/M = input(src,"Who do you wish to feed on?") in null|choices @@ -19,11 +19,11 @@ if(M in view(1, src)) if(!istype(src, /mob/living/carbon/brain)) - if(!istype(M, /mob/living/carbon/metroid)) + if(!istype(M, /mob/living/carbon/slime)) if(stat != 2) if(health > -70) - for(var/mob/living/carbon/metroid/met in view()) + for(var/mob/living/carbon/slime/met in view()) if(met.Victim == M && met != src) src << "The [met.name] is already feeding on this subject..." return @@ -42,17 +42,17 @@ -/mob/living/carbon/metroid/proc/Feedon(var/mob/living/carbon/M) +/mob/living/carbon/slime/proc/Feedon(var/mob/living/carbon/M) Victim = M src.loc = M.loc canmove = 0 anchored = 1 var/lastnut = nutrition //if(M.client) M << "\red You legs become paralyzed!" - if(istype(src, /mob/living/carbon/metroid/adult)) - icon_state = "adult roro eat" + if(istype(src, /mob/living/carbon/slime/adult)) + icon_state = "adult slime eat" else - icon_state = "baby roro eat" + icon_state = "baby slime eat" while(Victim && M.health > -70 && stat != 2) // M.canmove = 0 @@ -84,9 +84,9 @@ adjustCloneLoss(-10) if(Victim) - for(var/mob/living/carbon/metroid/Metroid in view(1,M)) - if(Metroid.Victim == M && Metroid != src) - Metroid.Feedstop() + for(var/mob/living/carbon/slime/slime in view(1,M)) + if(slime.Victim == M && slime != src) + slime.Feedstop() nutrition += rand(10,25) if(nutrition >= lastnut + 50) @@ -96,7 +96,7 @@ if(powerlevel > 10) powerlevel = 10 - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) if(nutrition > 1200) nutrition = 1200 else @@ -119,14 +119,14 @@ break if(stat == 2) - if(!istype(src, /mob/living/carbon/metroid/adult)) - icon_state = "baby roro dead" + if(!istype(src, /mob/living/carbon/slime/adult)) + icon_state = "baby slime dead" else - if(istype(src, /mob/living/carbon/metroid/adult)) - icon_state = "adult roro" + if(istype(src, /mob/living/carbon/slime/adult)) + icon_state = "adult slime" else - icon_state = "baby roro" + icon_state = "baby slime" canmove = 1 anchored = 0 @@ -152,64 +152,81 @@ Victim = null -/mob/living/carbon/metroid/proc/Feedstop() +/mob/living/carbon/slime/proc/Feedstop() if(Victim) if(Victim.client) Victim << "[src] has let go of your head!" Victim = null -/mob/living/carbon/metroid/proc/UpdateFeed(var/mob/M) +/mob/living/carbon/slime/proc/UpdateFeed(var/mob/M) if(Victim) if(Victim == M) loc = M.loc // simple "attach to head" effect! -/mob/living/carbon/metroid/verb/Evolve() - set category = "Roro" - set desc = "This will let you evolve from baby to adult metroid." +/mob/living/carbon/slime/verb/Evolve() + set category = "slime" + set desc = "This will let you evolve from baby to adult slime." if(stat) src << "I must be conscious to do this..." return - if(!istype(src, /mob/living/carbon/metroid/adult)) + if(!istype(src, /mob/living/carbon/slime/adult)) if(amount_grown >= 10) - var/mob/living/carbon/metroid/adult/new_metroid = new /mob/living/carbon/metroid/adult(loc) - new_metroid.nutrition = nutrition - new_metroid.powerlevel = max(0, powerlevel-1) - new_metroid.a_intent = "hurt" - new_metroid.key = key + var/mob/living/carbon/slime/adult/new_slime = new /mob/living/carbon/slime/adult(loc) + new_slime.nutrition = nutrition + new_slime.powerlevel = max(0, powerlevel-1) + new_slime.a_intent = "hurt" + new_slime.key = key - new_metroid << "You are now an adult Metroid." + new_slime << "You are now an adult slime." del(src) else src << "I am not ready to evolve yet..." else src << "I have already evolved..." -/mob/living/carbon/metroid/verb/Reproduce() - set category = "Roro" - set desc = "This will make you lay an egg. NOTE: This decreases your nutrition." +/mob/living/carbon/slime/verb/Reproduce() + set category = "Slime" + set desc = "This will make you split into a random number of Slimes (usually 2). NOTE: this will KILL you, but you will be transferred into one of the babies." if(stat) src << "I must be conscious to do this..." return - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) if(amount_grown >= 10) - if(src.nutrition >= 300) - new/obj/item/weapon/reagent_containers/food/snacks/egg/roro(loc) - src.nutrition -= 200 - else - src << "I have not fed enough..." + if(input("Are you absolutely sure you want to reproduce? Your current body will cease to be, but your consciousness will be transferred into a produced slime.") in list("Yes","No")=="Yes") + if(stat) + src << "I must be conscious to do this..." + return + + var/list/babies = list() + var/number = pick(14;2,3,4) + var/new_nutrition = round(nutrition * 0.9) + var/new_powerlevel = round(powerlevel / number) + for(var/i=1,i<=number,i++) // reproduce (has a small chance of producing 3 or 4 offspring) + var/mob/living/carbon/slime/M = new/mob/living/carbon/slime(loc) + M.nutrition = new_nutrition + M.powerlevel = new_powerlevel + if(i != 1) step_away(M,src) + babies += M + + var/mob/living/carbon/slime/new_slime = pick(babies) + new_slime.a_intent = "hurt" + new_slime.key = key + + new_slime << "You are now a slime!" + del(src) else src << "I am not ready to reproduce yet..." else - src << "I am not old enough to lay eggs yet..." + src << "I am not old enough to reproduce yet..." -/mob/living/carbon/metroid/verb/ventcrawl() +/mob/living/carbon/slime/verb/ventcrawl() set name = "Crawl through Vent" set desc = "Enter an air vent and crawl through the pipe system." - set category = "Roro" + set category = "Slime" if(Victim) return - handle_ventcrawl() + handle_ventcrawl() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/metroid/say.dm b/code/modules/mob/living/carbon/metroid/say.dm index 32fb67c785..48bcde1705 100644 --- a/code/modules/mob/living/carbon/metroid/say.dm +++ b/code/modules/mob/living/carbon/metroid/say.dm @@ -1,10 +1,10 @@ -/mob/living/carbon/metroid/say(var/message) +/mob/living/carbon/slime/say(var/message) if (silent) return else return ..() -/mob/living/carbon/metroid/say_quote(var/text) +/mob/living/carbon/slime/say_quote(var/text) var/ending = copytext(text, length(text)) if (ending == "?") @@ -14,8 +14,8 @@ return "telepathically chirps, \"[text]\""; -/mob/living/carbon/metroid/say_understands(var/other) - if (istype(other, /mob/living/carbon/metroid)) +/mob/living/carbon/slime/say_understands(var/other) + if (istype(other, /mob/living/carbon/slime)) return 1 return ..() diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 4dc27b065d..d242df45b7 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -337,7 +337,7 @@ updatehealth() -/mob/living/carbon/monkey/attack_metroid(mob/living/carbon/metroid/M as mob) +/mob/living/carbon/monkey/attack_slime(mob/living/carbon/slime/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -352,7 +352,7 @@ var/damage = rand(1, 3) - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) damage = rand(20, 40) else damage = rand(5, 35) @@ -457,7 +457,7 @@ if ((s_active && !( contents.Find(s_active) ))) s_active.close(src) - for(var/mob/living/carbon/metroid/M in view(1,src)) + for(var/mob/living/carbon/slime/M in view(1,src)) M.UpdateFeed(src) return diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index bf495a52e5..68e88517fb 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -10,7 +10,7 @@ var/oxyloss = 0.0 //Oxygen depravation damage (no air in lungs) var/toxloss = 0.0 //Toxic damage caused by being poisoned or radiated var/fireloss = 0.0 //Burn damage caused by being way too hot, too cold or burnt. - var/cloneloss = 0 //Damage caused by being cloned or ejected from the cloner early. Metroids also deal cloneloss damage to victims + var/cloneloss = 0 //Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims var/brainloss = 0 //'Retardation' damage caused by someone hitting you in the head with a bible or being infected with brainrot. var/halloss = 0 //Hallucination damage. 'Fake' damage obtained through hallucinating or the holodeck. Sleeping should cause it to wear off. diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 0c2c9ffc06..f59c2b57fd 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -638,7 +638,7 @@ -/mob/living/silicon/robot/attack_metroid(mob/living/carbon/metroid/M as mob) +/mob/living/silicon/robot/attack_slime(mob/living/carbon/slime/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -653,7 +653,7 @@ var/damage = rand(1, 3) - if(istype(src, /mob/living/carbon/metroid/adult)) + if(istype(src, /mob/living/carbon/slime/adult)) damage = rand(20, 40) else damage = rand(5, 35) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index c92e9c17d0..b0433ea660 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -163,7 +163,7 @@ statpanel("[P.panel]","",P) */ -//The last mob/living/carbon to push/drag/grab this mob (mostly used by Metroids friend recognition) +//The last mob/living/carbon to push/drag/grab this mob (mostly used by slimes friend recognition) var/mob/living/carbon/LAssailant = null //Wizard mode, but can be used in other modes thanks to the brand new "Give Spell" badmin button diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 7f35f93704..e9b4b6e357 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -194,7 +194,7 @@ return */ - if(istype(affecting, /mob/living/carbon/metroid)) + if(istype(affecting, /mob/living/carbon/slime)) assailant << "\blue You squeeze [affecting], but nothing interesting happens." return diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index d10a75ebfb..51774edf53 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -30,13 +30,13 @@ return 1 return 0 -/proc/ismetroid(A) - if(istype(A, /mob/living/carbon/metroid)) +/proc/isslime(A) + if(istype(A, /mob/living/carbon/slime)) return 1 return 0 -/proc/ismetroidadult(A) - if(istype(A, /mob/living/carbon/metroid/adult)) +/proc/isslimeadult(A) + if(istype(A, /mob/living/carbon/slime/adult)) return 1 return 0 diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index b99b4c1774..8f996a3791 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -207,7 +207,7 @@ del(src) return -/mob/living/carbon/human/proc/Metroidize(adult as num, reproduce as num) +/mob/living/carbon/human/proc/slimeize(adult as num, reproduce as num) if (monkeyizing) return for(var/obj/item/W in src) @@ -220,25 +220,25 @@ for(var/t in organs) del(t) - var/mob/living/carbon/metroid/new_metroid + var/mob/living/carbon/slime/new_slime if(reproduce) var/number = pick(14;2,3,4) //reproduce (has a small chance of producing 3 or 4 offspring) var/list/babies = list() for(var/i=1,i<=number,i++) - var/mob/living/carbon/metroid/M = new/mob/living/carbon/metroid(loc) + var/mob/living/carbon/slime/M = new/mob/living/carbon/slime(loc) M.nutrition = round(nutrition/number) step_away(M,src) babies += M - new_metroid = pick(babies) + new_slime = pick(babies) else if(adult) - new_metroid = new /mob/living/carbon/metroid/adult(loc) + new_slime = new /mob/living/carbon/slime/adult(loc) else - new_metroid = new /mob/living/carbon/metroid(loc) - new_metroid.a_intent = "hurt" - new_metroid.key = key + new_slime = new /mob/living/carbon/slime(loc) + new_slime.a_intent = "hurt" + new_slime.key = key - new_metroid << "You are now a Metroid. Skreee!" + new_slime << "You are now a slime. Skreee!" spawn(0)//To prevent the proc from returning null. del(src) return diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index aa7349a6b3..6fd9351b2f 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -14,7 +14,7 @@ /obj/item/weapon/paper_bin/MouseDrop(mob/user as mob) if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr)))))) - if(!istype(usr, /mob/living/carbon/metroid) && !istype(usr, /mob/living/simple_animal)) + if(!istype(usr, /mob/living/carbon/slime) && !istype(usr, /mob/living/simple_animal)) if( !usr.get_active_hand() ) //if active hand is empty attack_hand(usr, 1, 1) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index e99db66af2..a80b29b65f 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -76,7 +76,6 @@ ammo_type = "/obj/item/ammo_casing/a762" fire_sound = 'sound/weapons/Gunshot_smg.ogg' load_method = 2 - recoil = 1 var/cover_open = 0 var/mag_inserted = 1 diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 28817cbedf..f4a10d663f 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -33,7 +33,7 @@ var/mob/living/new_mob - var/randomize = pick("monkey","robot","metroid","xeno","human") + var/randomize = pick("monkey","robot","slime","xeno","human") switch(randomize) if("monkey") new_mob = new /mob/living/carbon/monkey(M.loc) @@ -46,9 +46,9 @@ var/mob/living/silicon/robot/Robot = new_mob Robot.mmi = new /obj/item/device/mmi(new_mob) Robot.mmi.transfer_identity(M) //Does not transfer key/client. - if("metroid") - if(prob(50)) new_mob = new /mob/living/carbon/metroid/adult(M.loc) - else new_mob = new /mob/living/carbon/metroid(M.loc) + if("slime") + if(prob(50)) new_mob = new /mob/living/carbon/slime/adult(M.loc) + else new_mob = new /mob/living/carbon/slime(M.loc) new_mob.universal_speak = 1 if("xeno") var/alien_caste = pick("Hunter","Sentinel","Drone","Larva") @@ -74,7 +74,7 @@ var/mob/living/carbon/human/H = new_mob if(H.dna) - H.dna.mutantrace = pick("lizard","golem","metroid","plant",4;"") + H.dna.mutantrace = pick("lizard","golem","slime","plant",4;"") else return diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 165df5dd88..85e01ab83c 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -226,10 +226,10 @@ datum matching_other = 1 else - if(istype(my_atom, /obj/item/metroid_core)) - var/obj/item/metroid_core/M = my_atom + if(istype(my_atom, /obj/item/slime_core)) + var/obj/item/slime_core/M = my_atom - if(M.POWERFLAG == C.required_other && M.Uses > 0) // added a limit to metroid cores -- Muskets requested this + if(M.POWERFLAG == C.required_other && M.Uses > 0) // added a limit to slime cores -- Muskets requested this matching_other = 1 @@ -249,10 +249,10 @@ datum for(var/mob/M in viewers(4, get_turf(my_atom)) ) M << "\blue \icon[my_atom] The solution begins to bubble." - if(istype(my_atom, /obj/item/metroid_core)) - var/obj/item/metroid_core/ME = my_atom + if(istype(my_atom, /obj/item/slime_core)) + var/obj/item/slime_core/ME = my_atom ME.Uses-- - if(ME.Uses <= 0) // give the notification that the metroid core is dead + if(ME.Uses <= 0) // give the notification that the slime core is dead for(var/mob/M in viewers(4, get_turf(my_atom)) ) M << "\blue \icon[my_atom] The innards begin to boil!" diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index b6b1a098f1..9a9be4fc9f 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -73,9 +73,9 @@ datum on_update(var/atom/A) return - rorojelly - name = "Roro Jelly" - id = "rorojelly" + slimejelly + name = "slime Jelly" + id = "slimejelly" description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL." reagent_state = LIQUID color = "#801E28" // rgb: 128, 30, 40 @@ -210,7 +210,7 @@ datum T.overlays -= T.wet_overlay T.wet_overlay = null - for(var/mob/living/carbon/metroid/M in T) + for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(15,20)) var/hotspot = (locate(/obj/effect/hotspot) in T) @@ -1022,7 +1022,7 @@ datum for(var/obj/effect/decal/cleanable/C in src) del(C) - for(var/mob/living/carbon/metroid/M in T) + for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(5,10)) reaction_mob(var/mob/M, var/method=TOUCH, var/volume) @@ -1104,8 +1104,8 @@ datum return reaction_obj(var/obj/O, var/volume) src = null - if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg/roro)) - var/obj/item/weapon/reagent_containers/food/snacks/egg/roro/egg = O + if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg/slime)) + var/obj/item/weapon/reagent_containers/food/snacks/egg/slime/egg = O if (egg.grown) egg.Hatch() if((!O) || (!volume)) return 0 @@ -1792,15 +1792,15 @@ datum M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT if(holder.has_reagent("frostoil")) holder.remove_reagent("frostoil", 5) - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) M.bodytemperature += rand(5,20) if(15 to 25) M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) M.bodytemperature += rand(10,20) if(25 to INFINITY) M.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) M.bodytemperature += rand(15,20) data++ ..() @@ -1878,23 +1878,23 @@ datum M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT if(holder.has_reagent("capsaicin")) holder.remove_reagent("capsaicin", 5) - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) M.bodytemperature -= rand(5,20) if(15 to 25) M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) M.bodytemperature -= rand(10,20) if(25 to INFINITY) M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT if(prob(1)) M.emote("shiver") - if(istype(M, /mob/living/carbon/metroid)) + if(istype(M, /mob/living/carbon/slime)) M.bodytemperature -= rand(15,20) data++ ..() return reaction_turf(var/turf/simulated/T, var/volume) - for(var/mob/living/carbon/metroid/M in T) + for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(15,30)) sodiumchloride diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index bc7969b6e0..61e818527d 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -7,7 +7,7 @@ datum var/list/required_reagents = new/list() var/list/required_catalysts = new/list() - // Both of these variables are mostly going to be used with Metroid cores - but if you want to, you can use them for other things + // Both of these variables are mostly going to be used with slime cores - but if you want to, you can use them for other things var/atom/required_container = null // the container required for the reaction to happen var/required_other = 0 // an integer required for the reaction to happen @@ -616,40 +616,40 @@ datum result_amount = 5 -/////////////////////////////////////METROID CORE REACTIONS /////////////////////////////// +/////////////////////////////////////slime CORE REACTIONS /////////////////////////////// - metroidpepper - name = "Metroid Condensedcapaicin" + slimepepper + name = "Slime Condensedcapaicin" id = "m_condensedcapaicin" result = "condensedcapsaicin" required_reagents = list("sugar" = 1) result_amount = 1 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 1 - metroidfrost - name = "Metroid Frost Oil" + slimefrost + name = "Slime Frost Oil" id = "m_frostoil" result = "frostoil" required_reagents = list("water" = 1) result_amount = 1 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 1 - metroidglycerol - name = "Metroid Glycerol" + slimeglycerol + name = "Slime Glycerol" id = "m_glycerol" result = "glycerol" required_reagents = list("blood" = 1) result_amount = 1 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 1 - metroid_explosion - name = "Metroid Explosion" + slime_explosion + name = "Slime Explosion" id = "m_explosion" result = null required_reagents = list("blood" = 1) result_amount = 2 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 2 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) @@ -659,50 +659,50 @@ datum holder.clear_reagents() return - metroidjam - name = "Metroid Jam" + slimejam + name = "Slime Jam" id = "m_jam" - result = "metroid" + result = "slime" required_reagents = list("water" = 1) result_amount = 1 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 2 - metroidsynthi - name = "Metroid Synthetic Flesh" + slimesynthi + name = "Slime Synthetic Flesh" id = "m_flesh" result = null required_reagents = list("sugar" = 1) result_amount = 1 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 2 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location) return - metroidenzyme - name = "Metroid Enzyme" + slimeenzyme + name = "Slime Enzyme" id = "m_enzyme" result = "enzyme" required_reagents = list("blood" = 1, "water" = 1) result_amount = 2 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 3 - metroidplasma - name = "Metroid Plasma" + slimeplasma + name = "Slime Plasma" id = "m_plasma" result = "plasma" required_reagents = list("sugar" = 1, "blood" = 2) result_amount = 2 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 3 - metroidvirus - name = "Metroid Virus" + slimevirus + name = "Slime Virus" id = "m_virus" result = null required_reagents = list("sugar" = 1, "sacid" = 1) result_amount = 2 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 3 on_reaction(var/datum/reagents/holder, var/created_volume) holder.clear_reagents() @@ -720,14 +720,14 @@ datum return - metroidteleport - name = "Metroid Teleport" + slimeteleport + name = "Slime Teleport" id = "m_tele" result = null required_reagents = list("pacid" = 2, "mutagen" = 2) required_catalysts = list("plasma" = 1) result_amount = 1 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 4 on_reaction(var/datum/reagents/holder, var/created_volume) @@ -779,14 +779,14 @@ datum sleep(20) M.client.screen -= blueeffect del(blueeffect) - metroidcrit - name = "Metroid Crit" + slimecrit + name = "Slime Crit" id = "m_tele" result = null required_reagents = list("sacid" = 1, "blood" = 1) required_catalysts = list("plasma" = 1) result_amount = 1 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 4 on_reaction(var/datum/reagents/holder, var/created_volume) @@ -805,13 +805,13 @@ datum if(prob(50)) for(var/j = 1, j <= rand(1, 3), j++) step(C, pick(NORTH,SOUTH,EAST,WEST)) - metroidbork - name = "Metroid Bork" + slimebork + name = "Slime Bork" id = "m_tele" result = null required_reagents = list("sugar" = 1, "water" = 1) result_amount = 2 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 4 on_reaction(var/datum/reagents/holder, var/created_volume) @@ -835,33 +835,33 @@ datum - metroidchloral - name = "Metroid Chloral" + slimechloral + name = "Slime Chloral" id = "m_bunch" result = "chloralhydrate" required_reagents = list("blood" = 1, "water" = 2) result_amount = 2 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 5 - metroidretro - name = "Metroid Retro" + slimeretro + name = "Slime Retro" id = "m_xeno" result = null required_reagents = list("sugar" = 1) result_amount = 1 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 5 on_reaction(var/datum/reagents/holder, var/created_volume) var/datum/disease/F = new /datum/disease/dna_retrovirus(0) var/list/data = list("viruses"= list(F)) holder.add_reagent("blood", 20, data) - metroidfoam - name = "Metroid Foam" + slimefoam + name = "Slime Foam" id = "m_foam" result = null required_reagents = list("sacid" = 1) result_amount = 2 - required_container = /obj/item/metroid_core + required_container = /obj/item/slime_core required_other = 5 on_reaction(var/datum/reagents/holder, var/created_volume) diff --git a/code/modules/reagents/reagent_containers/food/drinks/jar.dm b/code/modules/reagents/reagent_containers/food/drinks/jar.dm index d97165a409..6a75c65852 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/jar.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/jar.dm @@ -9,15 +9,15 @@ item_state = "beaker" New() ..() - reagents.add_reagent("metroid", 50) + reagents.add_reagent("slime", 50) on_reagent_change() if (reagents.reagent_list.len > 0) switch(reagents.get_master_reagent_id()) - if("metroid") - icon_state = "jar_metroid" - name = "metroid jam" - desc = "A jar of metroid jam. Delicious!" + if("slime") + icon_state = "jar_slime" + name = "slime jam" + desc = "A jar of slime jam. Delicious!" else icon_state ="jar_what" name = "jar of something" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index f1be8d1903..4332b4cb49 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -50,7 +50,7 @@ M << "\red You cannot force any more of [src] to go down your throat." return 0 else - if(!istype(M, /mob/living/carbon/metroid)) //If you're feeding it to someone else. + if(!istype(M, /mob/living/carbon/slime)) //If you're feeding it to someone else. var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25) if (fullness <= (550 * (1 + M.overeatduration / 1000))) for(var/mob/O in viewers(world.view, user)) @@ -354,7 +354,7 @@ if(6) reagents.add_reagent("coco", 3) if(7) - reagents.add_reagent("rorojelly", 3) + reagents.add_reagent("slimejelly", 3) if(8) reagents.add_reagent("banana", 3) if(9) @@ -382,7 +382,7 @@ src.name = "Frosted Jelly Donut" reagents.add_reagent("sprinkles", 2) -/obj/item/weapon/reagent_containers/food/snacks/donut/rorojelly +/obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly name = "Jelly Donut" desc = "You jelly?" icon_state = "jdonut1" @@ -390,7 +390,7 @@ ..() reagents.add_reagent("nutriment", 3) reagents.add_reagent("sprinkles", 1) - reagents.add_reagent("rorojelly", 5) + reagents.add_reagent("slimejelly", 5) bitesize = 5 if(prob(30)) src.icon_state = "jdonut2" @@ -1149,13 +1149,13 @@ reagents.add_reagent("water", 5) bitesize = 5 -/obj/item/weapon/reagent_containers/food/snacks/rorosoup - name = "Roro soup" +/obj/item/weapon/reagent_containers/food/snacks/slimesoup + name = "slime soup" desc = "If no water is available, you may substitute tears." - icon_state = "rorosoup" + icon_state = "slimesoup" New() ..() - reagents.add_reagent("rorojelly", 5) + reagents.add_reagent("slimejelly", 5) reagents.add_reagent("water", 10) bitesize = 5 @@ -1235,7 +1235,7 @@ reagents.add_reagent("nutriment", 6) reagents.add_reagent("blood", 10) if(7) - reagents.add_reagent("rorojelly", 10) + reagents.add_reagent("slimejelly", 10) reagents.add_reagent("water", 10) if(8) reagents.add_reagent("carbon", 10) @@ -1476,7 +1476,7 @@ /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast name = "Jellied Toast" desc = "A slice of bread covered with delicious jam." - icon_state = "rorotoast" + icon_state = "slimetoast" trash = /obj/item/trash/plate New() ..() @@ -1488,24 +1488,24 @@ ..() reagents.add_reagent("cherryjelly", 5) -/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/roro +/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime New() ..() - reagents.add_reagent("rorojelly", 5) + reagents.add_reagent("slimejelly", 5) /obj/item/weapon/reagent_containers/food/snacks/jellyburger name = "Jelly Burger" desc = "Culinary delight..?" - icon_state = "roroburger" + icon_state = "slimeburger" New() ..() reagents.add_reagent("nutriment", 5) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/jellyburger/roro +/obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime New() ..() - reagents.add_reagent("rorojelly", 5) + reagents.add_reagent("slimejelly", 5) /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry New() @@ -1642,32 +1642,32 @@ /obj/item/weapon/reagent_containers/food/snacks/jellysandwich name = "Jelly Sandwich" desc = "You wish you had some peanut butter to go with this..." - icon_state = "rorosandwich" + icon_state = "slimesandwich" trash = /obj/item/trash/plate New() ..() reagents.add_reagent("nutriment", 2) bitesize = 3 -/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/roro +/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime New() ..() - reagents.add_reagent("rorojelly", 5) + reagents.add_reagent("slimejelly", 5) /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry New() ..() reagents.add_reagent("cherryjelly", 5) - -/obj/item/weapon/reagent_containers/food/snacks/boiledrorocore - name = "Boiled Roro Core" +/* +/obj/item/weapon/reagent_containers/food/snacks/boiledslimecore + name = "Boiled slime Core" desc = "A boiled red thing." - icon_state = "boiledrorocore" + icon_state = "boiledslimecore" New() ..() - reagents.add_reagent("rorojelly", 5) + reagents.add_reagent("slimejelly", 5) bitesize = 3 - +*/ /obj/item/weapon/reagent_containers/food/snacks/mint name = "mint" desc = "it is only wafer thin." diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 1b3aa37af9..d1bf39a2d6 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -146,10 +146,10 @@ reagents.add_reagent("cryoxadone", 30) update_icon() -/obj/item/weapon/reagent_containers/glass/beaker/roro +/obj/item/weapon/reagent_containers/glass/beaker/slime New() ..() - reagents.add_reagent("rorojelly", 50) + reagents.add_reagent("slimejelly", 50) update_icon() /obj/item/weapon/reagent_containers/glass/bucket diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 703585eaa1..384d2dd90e 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -59,7 +59,7 @@ return if(ismob(target))//Blood! - if(istype(target, /mob/living/carbon/metroid)) + if(istype(target, /mob/living/carbon/slime)) user << "\red You are unable to locate any blood." return if(src.reagents.has_reagent("blood")) @@ -119,7 +119,7 @@ user << "\red [target] is empty." return - if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers) && !istype(target,/obj/item/metroid_core)) + if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers) && !istype(target,/obj/item/slime_core)) user << "\red You cannot directly remove reagents from this object." return @@ -137,15 +137,15 @@ if(istype(target, /obj/item/weapon/implantcase/chem)) return - if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/metroid_core) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/cigpacket)) + if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_core) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/cigpacket)) user << "\red You cannot directly fill this object." return if(target.reagents.total_volume >= target.reagents.maximum_volume) user << "\red [target] is full." return - if(istype(target, /obj/item/metroid_core)) - var/obj/item/metroid_core/core = target + if(istype(target, /obj/item/slime_core)) + var/obj/item/slime_core/core = target core.Flush = 30 // reset flush counter if(ismob(target) && target != user) diff --git a/code/unused/Agouri_stuff.dm b/code/unused/Agouri_stuff.dm index 13013af809..ae172fc1a0 100644 --- a/code/unused/Agouri_stuff.dm +++ b/code/unused/Agouri_stuff.dm @@ -219,7 +219,7 @@ else M.inertia_dir = 0 return - else if(!istype(M, /mob/living/carbon/metroid)) + else if(!istype(M, /mob/living/carbon/slime)) if (M.m_intent == "run") M.stop_pulling() step(M, M.dir) @@ -232,7 +232,7 @@ return if(2) //lube - if(!istype(M, /mob/living/carbon/metroid)) + if(!istype(M, /mob/living/carbon/slime)) M.stop_pulling() step(M, M.dir) spawn(1) step(M, M.dir) diff --git a/html/changelog.html b/html/changelog.html index ffa2f686ee..c0dd6320a8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -48,6 +48,14 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> +
+

28 November 2012

+

Kor updated:

+ +
+

25 November 2012

Giacom updated:

diff --git a/icons/effects/genetics.dmi b/icons/effects/genetics.dmi index 6f65426171242a5fb29116d1ae49f94ca19f9054..2e93b306a7b73711aebaa40688306f71352261c7 100644 GIT binary patch delta 461 zcmV;;0W$vHzXRRB1CS(tvwBombVOxyV{&P5bZKvH004NLt(3uT!Y~Ym&&^XG$W~e_YSuWAnM)!+N(B-{`#VS}0-l z_AauER-u6smW9X~)Q2YAKYWk@p@f-7eLFj}vaS3~WJ)^^C9Fh$Ry%3YLkUZfDKzp5 zCFF~Ik&DdXMYjq{$VWNm#mU*6=4_6YO?mk(Of(w`YbvoO6J;PXWgt*%?U3*WMLN4$ zJ0zrEEQ&=jP6%l5s9W^fHz-xgP7yt2Y+#TJ-^0H^27~;;OU*JuNJN_=80pdB6@7Y7 zM!mo4l1npMhgURz(xaQ+N~3Smsme-|+_;2#dW|3I8hP}Gp31Lf;Mso`a5^xD=#@-& z@kU#u&d?K6$z<=5oJeQHAL|)>-T z-18c+p6+C1OOEF*Cc8Nq*#<`XPd%>#^|2!NL^)#@hVH39hSa3)*4ZyjiQ^$89EC=z z?oypP7bICtJs&+anN2@Vk)F!u+}F5((}6hzWmo2~*{@-}+ln9Fy2Q3V;JS3P;Q{^K D!HnVp delta 462 zcmV;<0WtpFzXRUC1CS(tw0cxnbVOxyV{&P5bZKvH004NLtyDp7!Y~j#$FEqyHL9Ax zHJ1uhaeyyGuDl@@c7kkE1h4M_1jLP-U8%=Nvoo_Z>&)R}{khq}YP%8N=)CSbs9^c_ zF0!*$p@j+-rN~;;`!?J@e2@X5f|*BsJvp?ptNl!5N;?k~EJfCTIBC&C1q+cWH1Yx! z6nT*sB6E1woq`IAQ6BT;DcC&i$sB5%^70#)5Q~8gm9Zf+%0T9nfxy~mhlCEwbast) zNJziT%e)+C2x#!2JM`MOC{@Z%IjC}IAj*aB;a^CiMgHJR?J~lUh&IJwq(_Gr^yxbp z_5Peo9?j?+UeHK?k8b)ZjlN2!YAa3h;u7fTGrpr6hK}${H1w3tR-y5`yh=+J0KRw$4 zoZ+4)z^d+OWJiwY1}3{X8rcO#`VTx$fm+tUJrT~hh1fkn)sULRU3>ebDRJC^)5^Y; zsz2Aq-UUfU6FYfDlex)_5Ajrf#t}vX90leQlv|m@dbfhrb|ZcOd@aj{ui$$!v)}>! E-5Pu2v;Y7A diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 09e29051f074b665924477561a838266b8ba4618..1d43996232c23a6dffe7aafa717a9c1ccbc2c33a 100644 GIT binary patch delta 10448 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 diff --git a/maps/tgstation.2.0.9.dmm b/maps/tgstation.2.0.9.dmm index cc9eb59d7c..3ce16fc1db 100644 --- a/maps/tgstation.2.0.9.dmm +++ b/maps/tgstation.2.0.9.dmm @@ -5014,10 +5014,10 @@ "bSv" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bSw" = (/obj/machinery/portable_atmospherics/pump,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bSx" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"bSy" = (/mob/living/carbon/metroid,/turf/simulated/floor/engine,/area/toxins/xenobiology) +"bSy" = (/mob/living/carbon/slime,/turf/simulated/floor/engine,/area/toxins/xenobiology) "bSz" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "bSA" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; name = "Acid-Proof Air Injector"; on = 1; unacidable = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"bSB" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/mob/living/carbon/metroid,/turf/simulated/floor/engine,/area/toxins/xenobiology) +"bSB" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/mob/living/carbon/slime,/turf/simulated/floor/engine,/area/toxins/xenobiology) "bSC" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "bSD" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bSE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2)