diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index 36c9af1c48c..5a61a3b7725 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -254,7 +254,7 @@ /mob/living/carbon/slime, /mob/living/carbon/alien/larva, /mob/living/simple_animal/slime, - /mob/living/simple_animal/adultslime, + /mob/living/simple_animal/slime/adult, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken, /mob/living/simple_animal/lizard, diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/friendly/slime.dm index bebe9be7628..a831c830459 100644 --- a/code/modules/mob/living/simple_animal/friendly/slime.dm +++ b/code/modules/mob/living/simple_animal/friendly/slime.dm @@ -15,67 +15,13 @@ var/colour = "grey" pass_flags = PASSTABLE -/mob/living/simple_animal/slime/Bump(atom/movable/AM as mob|obj, yes) - - spawn( 0 ) - if((!( yes ) || now_pushing)) - return - now_pushing = 1 - if(ismob(AM)) - var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) - if(prob(70)) - to_chat(src, "You fail to push [tmob]'s fat ass out of the way.") - now_pushing = 0 - return - if(!(tmob.status_flags & CANPUSH)) - now_pushing = 0 - return - - tmob.LAssailant = src - now_pushing = 0 - ..() - if(!( istype(AM, /atom/movable) )) - return - if(!( now_pushing )) - now_pushing = 1 - if(!( AM.anchored )) - var/t = get_dir(src, AM) - if(istype(AM, /obj/structure/window/full)) - for(var/obj/structure/window/win in get_step(AM,t)) - now_pushing = 0 - return - step(AM, t) - now_pushing = null - return - return - -/mob/living/simple_animal/adultslime - name = "pet slime" - desc = "A lovable, domesticated slime." - icon = 'icons/mob/slimes.dmi' +/mob/living/simple_animal/slime/adult health = 200 maxHealth = 200 icon_state = "grey adult slime" icon_living = "grey adult slime" icon_dead = "grey baby slime dead" - response_help = "pets" - response_disarm = "shoos" - response_harm = "stomps on" - emote_see = list("jiggles", "bounces in place") - var/colour = "grey" - del_on_death = 1 -/mob/living/simple_animal/adultslime/New() +/mob/living/simple_animal/slime/New() ..() overlays += "aslime-:33" - - -/mob/living/simple_animal/slime/adult/death(gibbed) - for(var/i in 1 to 2) - var/mob/living/simple_animal/slime/S = new /mob/living/simple_animal/slime (src.loc) - S.icon_state = "[colour] baby slime" - S.icon_living = "[colour] baby slime" - S.icon_dead = "[colour] baby slime dead" - S.colour = "[colour]" - ..() \ No newline at end of file diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 03e0ae2645d..ab57eeefadb 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -134,45 +134,42 @@ desc = "A potent chemical mix that nullifies a slime's hunger, causing it to become docile and tame." icon = 'icons/obj/chemical.dmi' icon_state = "bottle19" + var/being_used = 0 /obj/item/slimepotion/docility/attack(mob/living/carbon/slime/M, mob/user) if(!isslime(M)) to_chat(user, " The potion only works on slimes!") - return ..() + return if(M.stat) to_chat(user, " The slime is dead!") - return..() + return if(M.mind) to_chat(user, " The slime resists!") - return ..() + return + if(being_used) + to_chat(user, " You're already using this on another slime!") + return + + var/mob/living/simple_animal/slime/pet if(M.is_adult) - var/mob/living/simple_animal/adultslime/pet = new /mob/living/simple_animal/adultslime(M.loc) + pet = new /mob/living/simple_animal/slime/adult(M.loc) pet.icon_state = "[M.colour] adult slime" pet.icon_living = "[M.colour] adult slime" - pet.icon_dead = "[M.colour] baby slime dead" - pet.colour = "[M.colour]" - qdel(M) - var/newname = sanitize(copytext(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text,1,MAX_NAME_LEN)) - - if(!newname) - newname = "pet slime" - pet.name = newname - pet.real_name = newname - qdel(src) else - var/mob/living/simple_animal/slime/pet = new /mob/living/simple_animal/slime(M.loc) + pet = new /mob/living/simple_animal/slime(M.loc) pet.icon_state = "[M.colour] baby slime" pet.icon_living = "[M.colour] baby slime" - pet.icon_dead = "[M.colour] baby slime dead" - pet.colour = "[M.colour]" - qdel(M) - var/newname = sanitize(copytext(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text,1,MAX_NAME_LEN)) + pet.icon_dead = "[M.colour] baby slime dead" + pet.colour = "[M.colour]" + qdel(M) + being_used = 1 + var/newname = sanitize(copytext(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text,1,MAX_NAME_LEN)) - if(!newname) - newname = "pet slime" - pet.name = newname - pet.real_name = newname - qdel(src) + if(!newname) + newname = "pet slime" + pet.name = newname + pet.real_name = newname + qdel(src) to_chat(user, "You feed the slime the potion, removing it's powers and calming it.") /obj/item/slimepotion/sentience