diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 063a1eb6f40..12ea157a3bc 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -59,7 +59,7 @@
slime.Discipline = 0
if(power >= 3)
- if(istype(slime, /mob/living/carbon/slime/adult))
+ if(slime.is_adult)
if(prob(5 + round(power/2)))
if(slime.Victim)
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 3c095b71aba..85f8d7d383c 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -153,7 +153,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/slime/adult))
+ if(istype(user, /mob/living/carbon/alien/humanoid) || istype(user, /mob/living/carbon/slime/))
if(src.operating)
return
src.health = max(0, src.health - 25)
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index c3a04fb3315..9eed23ad697 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -59,8 +59,8 @@
healthcheck()
return
-/obj/structure/grille/attack_slime(mob/user as mob)
- if(!istype(user, /mob/living/carbon/slime/adult)) return
+/obj/structure/grille/attack_slime(mob/living/carbon/slime/user as mob)
+ if(!user.is_adult) return
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("[user] smashes against [src].", \
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index 76e17f53146..97e471eabb8 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -89,7 +89,6 @@
/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 a339db1ca01..3dc680175db 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -147,8 +147,8 @@
attack_generic(M, M.melee_damage_upper)
-/obj/structure/window/attack_slime(mob/user as mob)
- if(!isslimeadult(user)) return
+/obj/structure/window/attack_slime(mob/living/carbon/slime/user as mob)
+ if(!user.is_adult) return
attack_generic(user, rand(10, 15))
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 67f9c0fac6d..83d4e62a2c9 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -219,7 +219,6 @@
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("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 )
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index a3dedef0122..f7204a30410 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -165,7 +165,7 @@
var/damage = rand(1, 3)
- if(istype(M, /mob/living/carbon/slime/adult))
+ if(M.is_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 7f88fb56c6b..7707bb5d700 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -181,7 +181,7 @@
var/damage = rand(1, 3)
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(M.is_adult)
damage = rand(20, 40)
else
damage = rand(5, 35)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 41ddbb312f6..51665ffc5f5 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -244,7 +244,7 @@
var/damage = rand(1, 3)
- if(istype(M, /mob/living/carbon/slime/adult))
+ if(M.is_adult)
damage = rand(10, 35)
else
damage = rand(5, 25)
diff --git a/code/modules/mob/living/carbon/metroid/death.dm b/code/modules/mob/living/carbon/metroid/death.dm
index 92ecf85b4ce..630ef977ae6 100644
--- a/code/modules/mob/living/carbon/metroid/death.dm
+++ b/code/modules/mob/living/carbon/metroid/death.dm
@@ -1,23 +1,19 @@
/mob/living/carbon/slime/death(gibbed)
+ if(!gibbed)
+ if(is_adult)
+ var/mob/living/carbon/slime/M = new /mob/living/carbon/slime(loc)
+ M.colour = colour
+ M.rabid = 1
+ is_adult = 0
+ regenerate_icons()
+ health = maxHealth
+ return
+
if(stat == DEAD) return
stat = DEAD
icon_state = "[colour] baby slime dead"
-
- if(!gibbed)
- if(istype(src, /mob/living/carbon/slime/adult))
- ghostize()
- var/mob/living/carbon/slime/M1 = new primarytype(loc)
- M1.rabid = 1
- if(src.mind)
- src.mind.transfer_to(M1)
- else
- M1.key = src.key
- var/mob/living/carbon/slime/M2 = new primarytype(loc)
- M2.rabid = 1
- if(src) del(src)
- else
- for(var/mob/O in viewers(src, null))
- O.show_message("The [name] seizes up and falls limp...", 1) //ded -- Urist
+ for(var/mob/O in viewers(src, null))
+ O.show_message("The [name] seizes up and falls limp...", 1) //ded -- Urist
update_canmove()
if(blind) blind.layer = 0
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index f5cab1a36bc..62bb12487de 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -55,7 +55,7 @@
var/hungry = 0
var/starving = 0
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
switch(nutrition)
if(400 to 1100) hungry = 1
if(0 to 399)
@@ -229,7 +229,7 @@
/mob/living/carbon/slime/proc/handle_regular_status_updates()
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
health = 200 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss())
else
health = 150 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss())
@@ -310,7 +310,7 @@
/mob/living/carbon/slime/proc/handle_nutrition()
if(prob(20))
- if(istype(src, /mob/living/carbon/slime/adult)) nutrition-=rand(4,6)
+ if(is_adult) nutrition-=rand(4,6)
else nutrition-=rand(2,3)
if(nutrition <= 0)
@@ -320,7 +320,7 @@
adjustToxLoss(rand(0,5))
else
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
if(nutrition >= 1000)
if(prob(40)) amount_grown++
@@ -329,36 +329,12 @@
if(prob(40)) amount_grown++
if(amount_grown >= 10 && !Victim && !Target)
- if(istype(src, /mob/living/carbon/slime/adult))
- if(!client)
- for(var/i=1,i<=4,i++)
- var/newslime
- if(prob(70))
- newslime = primarytype
- else
- newslime = slime_mutation[rand(1,4)]
-
- var/mob/living/carbon/slime/M = new newslime(loc)
- M.powerlevel = round(powerlevel/4)
- M.Friends = Friends
- M.tame = tame
- M.rabid = rabid
- M.Discipline = Discipline
- if(i != 1) step_away(M,src)
- feedback_add_details("slime_babies_born","slimebirth_[replacetext(M.colour," ","_")]")
- del(src)
-
- else
- if(!client)
- var/mob/living/carbon/slime/adult/A = new adulttype(src.loc)
- A.nutrition = nutrition
-// A.nutrition += 100
- A.powerlevel = max(0, powerlevel-1)
- A.Friends = Friends
- A.tame = tame
- A.rabid = rabid
- del(src)
+ if(!ckey)
+ if(is_adult)
+ Reproduce()
+ else
+ Evolve()
/mob/living/carbon/slime/proc/handle_targets()
if(Tempstun)
@@ -403,7 +379,7 @@
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
+ if(is_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
@@ -435,7 +411,7 @@
continue
if(issilicon(L))
- if(!istype(src, /mob/living/carbon/slime/adult)) //Non-starving diciplined adult slimes wont eat things
+ if(!is_adult) //Non-starving diciplined adult slimes wont eat things
if(!starving && Discipline > 0)
continue
@@ -452,7 +428,7 @@
if(H.dna.mutantrace == "slime")
continue
- if(!istype(src, /mob/living/carbon/slime/adult)) //Non-starving diciplined adult slimes wont eat things
+ if(!is_adult) //Non-starving diciplined adult slimes wont eat things
if(!starving && Discipline > 0)
continue
@@ -476,7 +452,7 @@
if((hungry || starving) && targets.len > 0)
- if(!istype(src, /mob/living/carbon/slime/adult))
+ if(!is_adult)
if(!starving)
for(var/mob/living/carbon/C in targets)
if(!Discipline && prob(5))
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index af83e79751d..fd8f0109883 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -5,6 +5,7 @@
pass_flags = PASSTABLE
voice_message = "skree!"
say_message = "hums"
+ var/is_adult = 0
layer = 5
@@ -44,40 +45,22 @@
///////////TIME FOR SUBSPECIES
var/colour = "grey"
- var/primarytype = /mob/living/carbon/slime
- var/adulttype = /mob/living/carbon/slime/adult
var/coretype = /obj/item/slime_extract/grey
var/list/slime_mutation[4]
-/mob/living/carbon/slime/adult
- name = "adult slime"
- icon = 'icons/mob/slimes.dmi'
- icon_state = "grey adult slime"
-
- health = 200
- gender = NEUTER
-
- update_icon = 0
- nutrition = 800 // 1200 = max
-
-
/mob/living/carbon/slime/New()
create_reagents(100)
- name = text("[colour] baby slime ([rand(1, 1000)])")
- real_name = name
- spawn (1)
- regenerate_icons()
- src << "\blue Your icons have been generated!"
+ spawn (0)
+ name = "[colour] [is_adult ? "adult" : "baby"] slime ([rand(1, 1000)])"
+ icon_state = "[colour] [is_adult ? "adult" : "baby"] slime"
+ real_name = name
+ slime_mutation = mutation_table(colour)
+ coretype = text2path("/obj/item/slime_extract/[colour]")
..()
-/mob/living/carbon/slime/adult/New()
- //verbs.Remove(/mob/living/carbon/slime/verb/ventcrawl)
+/mob/living/carbon/slime/regenerate_icons()
+ icon_state = "[colour] [is_adult ? "adult" : "baby"] slime"
..()
- name = text("[colour] adult slime ([rand(1,1000)])")
- slime_mutation[1] = /mob/living/carbon/slime/orange
- slime_mutation[2] = /mob/living/carbon/slime/metal
- slime_mutation[3] = /mob/living/carbon/slime/blue
- slime_mutation[4] = /mob/living/carbon/slime/purple
/mob/living/carbon/slime/movement_delay()
var/tally = 0
@@ -123,7 +106,7 @@
if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille))
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
if(nutrition <= 600 && !Atkcool)
AM.attack_slime(src)
spawn()
@@ -142,7 +125,7 @@
if(ismob(AM))
var/mob/tmob = AM
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
if(istype(tmob, /mob/living/carbon/human))
if(prob(90))
now_pushing = 0
@@ -176,14 +159,14 @@
..()
statpanel("Status")
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_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/slime/adult))
+ if(is_adult)
stat(null, "Nutrition: [nutrition]/1200")
if(amount_grown >= 10)
stat(null, "You can reproduce!")
@@ -291,7 +274,7 @@
var/damage = rand(1, 3)
attacked += 5
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
damage = rand(1, 6)
else
damage = rand(1, 3)
@@ -403,7 +386,7 @@
if(prob(80) && !client)
Discipline++
- if(!istype(src, /mob/living/carbon/slime/adult))
+ if(!is_adult)
if(Discipline == 1)
attacked = 0
@@ -712,7 +695,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
if(!istype(M, /mob/living/carbon/slime))//If target is not a slime.
user << "\red The potion only works on baby slimes!"
return ..()
- if(istype(M, /mob/living/carbon/slime/adult)) //Can't tame adults
+ if(M.is_adult) //Can't tame adults
user << "\red Only baby slimes can be tamed!"
return..()
if(M.stat)
@@ -742,9 +725,9 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle19"
- attack(mob/living/carbon/slime/adult/M as mob, mob/user as mob)
- if(!istype(M, /mob/living/carbon/slime/adult))//If target is not a slime.
- user << "\red The potion only works on adult slimes!"
+ attack(mob/living/carbon/slime/M as mob, mob/user as mob)
+ if(!istype(M, /mob/living/carbon/slime/))//If target is not a slime.
+ user << "\red The potion only works on slimes!"
return ..()
if(M.stat)
user << "\red The slime is dead!"
@@ -778,7 +761,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
if(!istype(M, /mob/living/carbon/slime))//If target is not a slime.
user << "\red The steroid only works on baby slimes!"
return ..()
- if(istype(M, /mob/living/carbon/slime/adult)) //Can't tame adults
+ if(M.is_adult) //Can't tame adults
user << "\red Only baby slimes can use the steroid!"
return..()
if(M.stat)
diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm
index c16039c5baf..29982814691 100644
--- a/code/modules/mob/living/carbon/metroid/powers.dm
+++ b/code/modules/mob/living/carbon/metroid/powers.dm
@@ -49,7 +49,7 @@
anchored = 1
var/lastnut = nutrition
//if(M.client) M << "\red You legs become paralyzed!"
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
icon_state = "[colour] adult slime eat"
else
icon_state = "[colour] baby slime eat"
@@ -96,7 +96,7 @@
if(powerlevel > 10)
powerlevel = 10
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
if(nutrition > 1200)
nutrition = 1200
else
@@ -119,11 +119,11 @@
break
if(stat == 2)
- if(!istype(src, /mob/living/carbon/slime/adult))
+ if(!is_adult)
icon_state = "[colour] baby slime dead"
else
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
icon_state = "[colour] adult slime"
else
icon_state = "[colour] baby slime"
@@ -173,19 +173,13 @@
if(stat)
src << "I must be conscious to do this..."
return
- if(!istype(src, /mob/living/carbon/slime/adult))
+ if(!is_adult)
if(amount_grown >= 10)
- var/mob/living/carbon/slime/adult/new_slime = new adulttype(loc)
- new_slime.nutrition = nutrition
- new_slime.powerlevel = max(0, powerlevel-1)
- new_slime.a_intent = "harm"
- if(src.mind)
- src.mind.transfer_to(new_slime)
- else
- new_slime.key = src.key
- new_slime.universal_speak = universal_speak
- new_slime << "You are now an adult slime."
- del(src)
+ is_adult = 1
+ maxHealth = 200
+ amount_grown = 0
+ regenerate_icons()
+ name = text("[colour] [is_adult ? "adult" : "baby"] slime ([rand(1, 1000)])")
else
src << "I am not ready to evolve yet..."
else
@@ -193,15 +187,14 @@
/mob/living/carbon/slime/verb/Reproduce()
set category = "Slime"
- set desc = "This will make you split into four Slimes. NOTE: this will KILL you, but you will be transferred into one of the babies."
+ set desc = "This will make you split into four Slimes."
if(stat)
src << "I must be conscious to do this..."
return
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(is_adult)
if(amount_grown >= 10)
- //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
@@ -210,13 +203,11 @@
var/new_nutrition = round(nutrition * 0.9)
var/new_powerlevel = round(powerlevel / 4)
for(var/i=1,i<=4,i++)
- var/newslime
+ var/mob/living/carbon/slime/M = new /mob/living/carbon/slime/(loc)
if(prob(70))
- newslime = primarytype
+ M.colour = colour
else
- newslime = slime_mutation[rand(1,4)]
-
- var/mob/living/carbon/slime/M = new newslime(loc)
+ M.colour = slime_mutation[rand(1,4)]
M.nutrition = new_nutrition
M.powerlevel = new_powerlevel
if(i != 1) step_away(M,src)
@@ -230,8 +221,6 @@
src.mind.transfer_to(new_slime)
else
new_slime.key = src.key
-
- new_slime << "You are now a slime!"
del(src)
else
src << "I am not ready to reproduce yet..."
diff --git a/code/modules/mob/living/carbon/metroid/subtypes.dm b/code/modules/mob/living/carbon/metroid/subtypes.dm
index 2e6b6de0b1e..07ef76fa6b3 100644
--- a/code/modules/mob/living/carbon/metroid/subtypes.dm
+++ b/code/modules/mob/living/carbon/metroid/subtypes.dm
@@ -1,436 +1,79 @@
-
-////////////////Tier 2
-
-/mob/living/carbon/slime/purple
- colour = "purple"
- icon_state = "purple baby slime"
- primarytype = /mob/living/carbon/slime/purple
- adulttype = /mob/living/carbon/slime/adult/purple
- coretype = /obj/item/slime_extract/purple
-
-
-/mob/living/carbon/slime/adult/purple
- icon_state = "purple adult slime"
- colour = "purple"
- primarytype = /mob/living/carbon/slime/purple
- adulttype = /mob/living/carbon/slime/adult/purple
- coretype = /obj/item/slime_extract/purple
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/darkpurple
- slime_mutation[2] = /mob/living/carbon/slime/darkblue
- slime_mutation[3] = /mob/living/carbon/slime/green
- slime_mutation[4] = /mob/living/carbon/slime/green
-
-/mob/living/carbon/slime/metal
- colour = "metal"
- icon_state = "metal baby slime"
- primarytype = /mob/living/carbon/slime/metal
- adulttype = /mob/living/carbon/slime/adult/metal
- coretype = /obj/item/slime_extract/metal
-
-/mob/living/carbon/slime/adult/metal
- icon_state = "metal adult slime"
- colour = "metal"
- primarytype = /mob/living/carbon/slime/metal
- adulttype = /mob/living/carbon/slime/adult/metal
- coretype = /obj/item/slime_extract/metal
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/silver
- slime_mutation[2] = /mob/living/carbon/slime/yellow
- slime_mutation[3] = /mob/living/carbon/slime/gold
- slime_mutation[4] = /mob/living/carbon/slime/gold
-
-/mob/living/carbon/slime/orange
- colour = "orange"
- icon_state = "orange baby slime"
- primarytype = /mob/living/carbon/slime/orange
- adulttype = /mob/living/carbon/slime/adult/orange
- coretype = /obj/item/slime_extract/orange
-
-/mob/living/carbon/slime/adult/orange
- colour = "orange"
- icon_state = "orange adult slime"
- primarytype = /mob/living/carbon/slime/orange
- adulttype = /mob/living/carbon/slime/adult/orange
- coretype = /obj/item/slime_extract/orange
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/red
- slime_mutation[2] = /mob/living/carbon/slime/red
- slime_mutation[3] = /mob/living/carbon/slime/darkpurple
- slime_mutation[4] = /mob/living/carbon/slime/yellow
-
-/mob/living/carbon/slime/blue
- colour = "blue"
- icon_state = "blue baby slime"
- primarytype = /mob/living/carbon/slime/blue
- adulttype = /mob/living/carbon/slime/adult/blue
- coretype = /obj/item/slime_extract/blue
-
-/mob/living/carbon/slime/adult/blue
- icon_state = "blue adult slime"
- colour = "blue"
- primarytype = /mob/living/carbon/slime/blue
- adulttype = /mob/living/carbon/slime/adult/blue
- coretype = /obj/item/slime_extract/blue
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/darkblue
- slime_mutation[2] = /mob/living/carbon/slime/pink
- slime_mutation[3] = /mob/living/carbon/slime/pink
- slime_mutation[4] = /mob/living/carbon/slime/silver
-
-
-//Tier 3
-
-/mob/living/carbon/slime/darkblue
- colour = "dark blue"
- icon_state = "dark blue baby slime"
- primarytype = /mob/living/carbon/slime/darkblue
- adulttype = /mob/living/carbon/slime/adult/darkblue
- coretype = /obj/item/slime_extract/darkblue
-
-/mob/living/carbon/slime/adult/darkblue
- icon_state = "dark blue adult slime"
- colour = "dark blue"
- primarytype = /mob/living/carbon/slime/darkblue
- adulttype = /mob/living/carbon/slime/adult/darkblue
- coretype = /obj/item/slime_extract/darkblue
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/purple
- slime_mutation[2] = /mob/living/carbon/slime/cerulean
- slime_mutation[3] = /mob/living/carbon/slime/blue
- slime_mutation[4] = /mob/living/carbon/slime/cerulean
-
-/mob/living/carbon/slime/darkpurple
- colour = "dark purple"
- icon_state = "dark purple baby slime"
- primarytype = /mob/living/carbon/slime/darkpurple
- adulttype = /mob/living/carbon/slime/adult/darkpurple
- coretype = /obj/item/slime_extract/darkpurple
-
-/mob/living/carbon/slime/adult/darkpurple
- icon_state = "dark purple adult slime"
- colour = "dark purple"
- primarytype = /mob/living/carbon/slime/darkpurple
- adulttype = /mob/living/carbon/slime/adult/darkpurple
- coretype = /obj/item/slime_extract/darkpurple
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/purple
- slime_mutation[2] = /mob/living/carbon/slime/sepia
- slime_mutation[3] = /mob/living/carbon/slime/orange
- slime_mutation[4] = /mob/living/carbon/slime/sepia
-
-
-/mob/living/carbon/slime/yellow
- icon_state = "yellow baby slime"
- colour = "yellow"
- primarytype = /mob/living/carbon/slime/yellow
- adulttype = /mob/living/carbon/slime/adult/yellow
- coretype = /obj/item/slime_extract/yellow
-
-/mob/living/carbon/slime/adult/yellow
- icon_state = "yellow adult slime"
- colour = "yellow"
- primarytype = /mob/living/carbon/slime/yellow
- adulttype = /mob/living/carbon/slime/adult/yellow
- coretype = /obj/item/slime_extract/yellow
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/metal
- slime_mutation[2] = /mob/living/carbon/slime/bluespace
- slime_mutation[3] = /mob/living/carbon/slime/orange
- slime_mutation[4] = /mob/living/carbon/slime/bluespace
-
-
-/mob/living/carbon/slime/silver
- colour = "silver"
- icon_state = "silver baby slime"
- primarytype = /mob/living/carbon/slime/silver
- adulttype = /mob/living/carbon/slime/adult/silver
- coretype = /obj/item/slime_extract/silver
-
-/mob/living/carbon/slime/adult/silver
- icon_state = "silver adult slime"
- colour = "silver"
- primarytype = /mob/living/carbon/slime/silver
- adulttype = /mob/living/carbon/slime/adult/silver
- coretype = /obj/item/slime_extract/silver
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/metal
- slime_mutation[2] = /mob/living/carbon/slime/pyrite
- slime_mutation[3] = /mob/living/carbon/slime/blue
- slime_mutation[4] = /mob/living/carbon/slime/pyrite
-
-
-/////////////Tier 4
-
-
-/mob/living/carbon/slime/pink
- colour = "pink"
- icon_state = "pink baby slime"
- primarytype = /mob/living/carbon/slime/pink
- adulttype = /mob/living/carbon/slime/adult/pink
- coretype = /obj/item/slime_extract/pink
-
-/mob/living/carbon/slime/adult/pink
- icon_state = "pink adult slime"
- colour = "pink"
- primarytype = /mob/living/carbon/slime/pink
- adulttype = /mob/living/carbon/slime/adult/pink
- coretype = /obj/item/slime_extract/pink
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/pink
- slime_mutation[2] = /mob/living/carbon/slime/pink
- slime_mutation[3] = /mob/living/carbon/slime/lightpink
- slime_mutation[4] = /mob/living/carbon/slime/lightpink
-
-/mob/living/carbon/slime/red
- colour = "red"
- icon_state = "red baby slime"
- primarytype = /mob/living/carbon/slime/red
- adulttype = /mob/living/carbon/slime/adult/red
- coretype = /obj/item/slime_extract/red
-
-/mob/living/carbon/slime/adult/red
- icon_state = "red adult slime"
- colour = "red"
- primarytype = /mob/living/carbon/slime/red
- adulttype = /mob/living/carbon/slime/adult/red
- coretype = /obj/item/slime_extract/red
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/red
- slime_mutation[2] = /mob/living/carbon/slime/red
- slime_mutation[3] = /mob/living/carbon/slime/oil
- slime_mutation[4] = /mob/living/carbon/slime/oil
-
-/mob/living/carbon/slime/gold
- colour = "gold"
- icon_state = "gold baby slime"
- primarytype = /mob/living/carbon/slime/gold
- adulttype = /mob/living/carbon/slime/adult/gold
- coretype = /obj/item/slime_extract/gold
-
-/mob/living/carbon/slime/adult/gold
- icon_state = "gold adult slime"
- colour = "gold"
- primarytype = /mob/living/carbon/slime/gold
- adulttype = /mob/living/carbon/slime/adult/gold
- coretype = /obj/item/slime_extract/gold
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/gold
- slime_mutation[2] = /mob/living/carbon/slime/gold
- slime_mutation[3] = /mob/living/carbon/slime/adamantine
- slime_mutation[4] = /mob/living/carbon/slime/adamantine
-
-/mob/living/carbon/slime/green
- colour = "green"
- icon_state = "green baby slime"
- primarytype = /mob/living/carbon/slime/green
- adulttype = /mob/living/carbon/slime/adult/green
- coretype = /obj/item/slime_extract/green
-
-/mob/living/carbon/slime/adult/green
- icon_state = "green adult slime"
- colour = "green"
- primarytype = /mob/living/carbon/slime/green
- adulttype = /mob/living/carbon/slime/adult/green
- coretype = /obj/item/slime_extract/green
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/green
- slime_mutation[2] = /mob/living/carbon/slime/green
- slime_mutation[3] = /mob/living/carbon/slime/black
- slime_mutation[4] = /mob/living/carbon/slime/black
-
-// Tier 5
-
-/mob/living/carbon/slime/lightpink
- colour = "light pink"
- icon_state = "light pink baby slime"
- primarytype = /mob/living/carbon/slime/lightpink
- adulttype = /mob/living/carbon/slime/adult/lightpink
- coretype = /obj/item/slime_extract/lightpink
-
-/mob/living/carbon/slime/adult/lightpink
- icon_state = "light pink adult slime"
- colour = "light pink"
- primarytype = /mob/living/carbon/slime/lightpink
- adulttype = /mob/living/carbon/slime/adult/lightpink
- coretype = /obj/item/slime_extract/lightpink
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/lightpink
- slime_mutation[2] = /mob/living/carbon/slime/lightpink
- slime_mutation[3] = /mob/living/carbon/slime/lightpink
- slime_mutation[4] = /mob/living/carbon/slime/lightpink
-
-/mob/living/carbon/slime/oil
- icon_state = "oil baby slime"
- colour = "oil"
- primarytype = /mob/living/carbon/slime/oil
- adulttype = /mob/living/carbon/slime/adult/oil
- coretype = /obj/item/slime_extract/oil
-
-/mob/living/carbon/slime/adult/oil
- icon_state = "oil adult slime"
- colour = "oil"
- primarytype = /mob/living/carbon/slime/oil
- adulttype = /mob/living/carbon/slime/adult/oil
- coretype = /obj/item/slime_extract/oil
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/oil
- slime_mutation[2] = /mob/living/carbon/slime/oil
- slime_mutation[3] = /mob/living/carbon/slime/oil
- slime_mutation[4] = /mob/living/carbon/slime/oil
-
-/mob/living/carbon/slime/black
- icon_state = "black baby slime"
- colour = "black"
- primarytype = /mob/living/carbon/slime/black
- adulttype = /mob/living/carbon/slime/adult/black
- coretype = /obj/item/slime_extract/black
-
-/mob/living/carbon/slime/adult/black
- icon_state = "black adult slime"
- colour = "black"
- primarytype = /mob/living/carbon/slime/black
- adulttype = /mob/living/carbon/slime/adult/black
- coretype = /obj/item/slime_extract/black
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/black
- slime_mutation[2] = /mob/living/carbon/slime/black
- slime_mutation[3] = /mob/living/carbon/slime/black
- slime_mutation[4] = /mob/living/carbon/slime/black
-
-/mob/living/carbon/slime/adamantine
- icon_state = "adamantine baby slime"
- colour = "adamantine"
- primarytype = /mob/living/carbon/slime/adamantine
- adulttype = /mob/living/carbon/slime/adult/adamantine
- coretype = /obj/item/slime_extract/adamantine
-
-/mob/living/carbon/slime/adult/adamantine
- icon_state = "adamantine adult slime"
- colour = "adamantine"
- primarytype = /mob/living/carbon/slime/adamantine
- adulttype = /mob/living/carbon/slime/adult/adamantine
- coretype = /obj/item/slime_extract/adamantine
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/adamantine
- slime_mutation[2] = /mob/living/carbon/slime/adamantine
- slime_mutation[3] = /mob/living/carbon/slime/adamantine
- slime_mutation[4] = /mob/living/carbon/slime/adamantine
-
-////////// Even in death I still code Tier //////////////
-
-/mob/living/carbon/slime/bluespace
- icon_state = "bluespace baby slime"
- colour = "bluespace"
- primarytype = /mob/living/carbon/slime/bluespace
- adulttype = /mob/living/carbon/slime/adult/bluespace
- coretype = /obj/item/slime_extract/bluespace
-
-/mob/living/carbon/slime/adult/bluespace
- icon_state = "bluespace adult slime"
- colour = "bluespace"
- primarytype = /mob/living/carbon/slime/bluespace
- adulttype = /mob/living/carbon/slime/adult/bluespace
- coretype = /obj/item/slime_extract/bluespace
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/bluespace
- slime_mutation[2] = /mob/living/carbon/slime/bluespace
- slime_mutation[3] = /mob/living/carbon/slime/bluespace
- slime_mutation[4] = /mob/living/carbon/slime/bluespace
-
-/mob/living/carbon/slime/pyrite
- icon_state = "pyrite baby slime"
- colour = "pyrite"
- primarytype = /mob/living/carbon/slime/pyrite
- adulttype = /mob/living/carbon/slime/adult/pyrite
- coretype = /obj/item/slime_extract/pyrite
-
-/mob/living/carbon/slime/adult/pyrite
- icon_state = "pyrite adult slime"
- colour = "pyrite"
- primarytype = /mob/living/carbon/slime/pyrite
- adulttype = /mob/living/carbon/slime/adult/pyrite
- coretype = /obj/item/slime_extract/pyrite
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/pyrite
- slime_mutation[2] = /mob/living/carbon/slime/pyrite
- slime_mutation[3] = /mob/living/carbon/slime/pyrite
- slime_mutation[4] = /mob/living/carbon/slime/pyrite
-
-/mob/living/carbon/slime/cerulean
- icon_state = "cerulean baby slime"
- colour = "cerulean"
- primarytype = /mob/living/carbon/slime/cerulean
- adulttype = /mob/living/carbon/slime/adult/cerulean
- coretype = /obj/item/slime_extract/cerulean
-
-/mob/living/carbon/slime/adult/cerulean
- icon_state = "cerulean adult slime"
- colour = "cerulean"
- primarytype = /mob/living/carbon/slime/cerulean
- adulttype = /mob/living/carbon/slime/adult/cerulean
- coretype = /obj/item/slime_extract/cerulean
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/cerulean
- slime_mutation[2] = /mob/living/carbon/slime/cerulean
- slime_mutation[3] = /mob/living/carbon/slime/cerulean
- slime_mutation[4] = /mob/living/carbon/slime/cerulean
-
-/mob/living/carbon/slime/sepia
- icon_state = "sepia baby slime"
- colour = "sepia"
- primarytype = /mob/living/carbon/slime/sepia
- adulttype = /mob/living/carbon/slime/adult/sepia
- coretype = /obj/item/slime_extract/sepia
-
-/mob/living/carbon/slime/adult/sepia
- icon_state = "sepia adult slime"
- colour = "sepia"
- primarytype = /mob/living/carbon/slime/sepia
- adulttype = /mob/living/carbon/slime/adult/sepia
- coretype = /obj/item/slime_extract/sepia
-
- New()
- ..()
- slime_mutation[1] = /mob/living/carbon/slime/sepia
- slime_mutation[2] = /mob/living/carbon/slime/sepia
- slime_mutation[3] = /mob/living/carbon/slime/sepia
- slime_mutation[4] = /mob/living/carbon/slime/sepia
\ No newline at end of file
+proc/mutation_table(var/colour)
+ var/list/slime_mutation[4]
+ switch(colour)
+ //Tier 1
+ if("grey")
+ slime_mutation[1] = "orange"
+ slime_mutation[2] = "metal"
+ slime_mutation[3] = "blue"
+ slime_mutation[4] = "purple"
+ //Tier 2
+ if("purple")
+ slime_mutation[1] = "darkpurple"
+ slime_mutation[2] = "darkblue"
+ slime_mutation[3] = "green"
+ slime_mutation[4] = "green"
+ if("metal")
+ slime_mutation[1] = "silver"
+ slime_mutation[2] = "yellow"
+ slime_mutation[3] = "gold"
+ slime_mutation[4] = "gold"
+ if("yellow")
+ slime_mutation[1] = "red"
+ slime_mutation[2] = "red"
+ slime_mutation[3] = "darkpurple"
+ slime_mutation[4] = "yellow"
+ if("blue")
+ slime_mutation[1] = "darkblue"
+ slime_mutation[2] = "pink"
+ slime_mutation[3] = "pink"
+ slime_mutation[4] = "silver"
+ //Tier 3
+ if("darkblue")
+ slime_mutation[1] = "purple"
+ slime_mutation[2] = "cerulean"
+ slime_mutation[3] = "blue"
+ slime_mutation[4] = "cerulean"
+ if("darkpurple")
+ slime_mutation[1] = "purple"
+ slime_mutation[2] = "sepia"
+ slime_mutation[3] = "orange"
+ slime_mutation[4] = "sepia"
+ if("yellow")
+ slime_mutation[1] = "metal"
+ slime_mutation[2] = "bluespace"
+ slime_mutation[3] = "orange"
+ slime_mutation[4] = "bluespace"
+ if("silver")
+ slime_mutation[1] = "metal"
+ slime_mutation[2] = "pyrite"
+ slime_mutation[3] = "blue"
+ slime_mutation[4] = "pyrite"
+ //Tier 4
+ if("pink")
+ slime_mutation[1] = "pink"
+ slime_mutation[2] = "pink"
+ slime_mutation[3] = "lightpink"
+ slime_mutation[4] = "lightpink"
+ if("red")
+ slime_mutation[1] = "red"
+ slime_mutation[2] = "red"
+ slime_mutation[3] = "oil"
+ slime_mutation[4] = "oil"
+ if("gold")
+ slime_mutation[1] = "gold"
+ slime_mutation[2] = "gold"
+ slime_mutation[3] = "adamantine"
+ slime_mutation[4] = "adamantine"
+ if("green")
+ slime_mutation[1] = "green"
+ slime_mutation[2] = "green"
+ slime_mutation[3] = "black"
+ slime_mutation[4] = "black"
+ // Tier 5
+ else
+ slime_mutation[1] = "[colour]"
+ slime_mutation[2] = "[colour]"
+ slime_mutation[3] = "[colour]"
+ slime_mutation[4] = "[colour]"
+ return(slime_mutation)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index 8217f0df4a9..6528981fbff 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -273,7 +273,7 @@
var/damage = rand(1, 3)
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(M.is_adult)
damage = rand(20, 40)
else
damage = rand(5, 35)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 43fc5db7108..ddf854239db 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -651,7 +651,7 @@
var/damage = rand(1, 3)
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(M.is_adult)
damage = rand(20, 40)
else
damage = rand(5, 35)
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 0e1fdd34f30..2501d2e1c26 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -363,7 +363,7 @@
var/damage = rand(1, 3)
- if(istype(src, /mob/living/carbon/slime/adult))
+ if(M.is_adult)
damage = rand(20, 40)
else
damage = rand(5, 35)
@@ -487,7 +487,7 @@
/mob/living/simple_animal/revive()
health = maxHealth
..()
-
+
/mob/living/simple_animal/proc/make_babies() // <3 <3 <3
if(gender != FEMALE || stat || !scan_ready || !childtype || !species)
return
@@ -509,4 +509,4 @@
alone = 0
continue
if(alone && partner && children < 3)
- new childtype(loc)
+ new childtype(loc)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index ecbb91f74b6..63d292b63c4 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -35,11 +35,6 @@
return 1
return 0
-/proc/isslimeadult(A)
- if(istype(A, /mob/living/carbon/slime/adult))
- return 1
- return 0
-
/proc/isrobot(A)
if(istype(A, /mob/living/silicon/robot))
return 1
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 5edc7dcad0c..174980c0813 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -339,7 +339,7 @@
. = new_xeno
del(src)
-/mob/living/carbon/human/proc/slimeize(adult as num, reproduce as num)
+/mob/living/carbon/human/proc/slimeize(reproduce as num)
if (notransform)
return
for(var/obj/item/W in src)
@@ -363,10 +363,7 @@
babies += M
new_slime = pick(babies)
else
- if(adult)
- new_slime = new /mob/living/carbon/slime/adult(loc)
- else
- new_slime = new /mob/living/carbon/slime(loc)
+ new_slime = new /mob/living/carbon/slime(loc)
new_slime.a_intent = "harm"
new_slime.key = key