Files
GS13NG/code/modules/research/xenobiology/crossbreeding/reproductive.dm
T

133 lines
4.1 KiB
Plaintext

/*
Reproductive extracts:
When fed three monkey cubes, produces between
1 and 4 normal slime extracts of the same colour.
*/
/obj/item/slimecross/reproductive
name = "reproductive extract"
desc = "It pulses with a strange hunger."
icon_state = "reproductive"
effect = "reproductive"
var/extract_type = /obj/item/slime_extract/
var/cubes_eaten = 0
var/last_produce = 0
var/cooldown = 30 // 3 seconds.
/obj/item/slimecross/reproductive/attackby(obj/item/O, mob/user)
if((last_produce + cooldown) > world.time)
to_chat(user, "<span class='warning'>[src] is still digesting!</span>")
return
if(istype(O, /obj/item/storage/bag/bio))
var/list/inserted = list()
SEND_SIGNAL(O, COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/reagent_containers/food/snacks/monkeycube, src, 1, null, null, user, inserted)
if(inserted.len)
var/obj/item/reagent_containers/food/snacks/monkeycube/M = inserted[1]
if(istype(M))
eat_cube(M, user)
else
to_chat(user, "<span class='warning'>There are no monkey cubes in the bio bag!</span>")
if(istype(O,/obj/item/reagent_containers/food/snacks/monkeycube))
eat_cube(O, user)
if(cubes_eaten >= 3)
var/cores = rand(1,4)
visible_message("<span class='notice'>[src] briefly swells to a massive size, and expels [cores] extract[cores > 1 ? "s":""]!</span>")
playsound(src, 'sound/effects/splat.ogg', 40, 1)
last_produce = world.time
for(var/i = 0, i < cores, i++)
new extract_type(get_turf(loc))
cubes_eaten = 0
/obj/item/slimecross/reproductive/proc/eat_cube(obj/item/reagent_containers/food/snacks/monkeycube, mob/user)
qdel(monkeycube)
cubes_eaten++
to_chat(user, "<span class='notice'>You feed [monkeycube] to [src], and it pulses gently.</span>")
playsound(src, 'sound/items/eatfood.ogg', 20, 1)
/obj/item/slimecross/reproductive/grey
extract_type = /obj/item/slime_extract/grey
colour = "grey"
/obj/item/slimecross/reproductive/orange
extract_type = /obj/item/slime_extract/orange
colour = "orange"
/obj/item/slimecross/reproductive/purple
extract_type = /obj/item/slime_extract/purple
colour = "purple"
/obj/item/slimecross/reproductive/blue
extract_type = /obj/item/slime_extract/blue
colour = "blue"
/obj/item/slimecross/reproductive/metal
extract_type = /obj/item/slime_extract/metal
colour = "metal"
/obj/item/slimecross/reproductive/yellow
extract_type = /obj/item/slime_extract/yellow
colour = "yellow"
/obj/item/slimecross/reproductive/darkpurple
extract_type = /obj/item/slime_extract/darkpurple
colour = "dark purple"
/obj/item/slimecross/reproductive/darkblue
extract_type = /obj/item/slime_extract/darkblue
colour = "dark blue"
/obj/item/slimecross/reproductive/silver
extract_type = /obj/item/slime_extract/silver
colour = "silver"
/obj/item/slimecross/reproductive/bluespace
extract_type = /obj/item/slime_extract/bluespace
colour = "bluespace"
/obj/item/slimecross/reproductive/sepia
extract_type = /obj/item/slime_extract/sepia
colour = "sepia"
/obj/item/slimecross/reproductive/cerulean
extract_type = /obj/item/slime_extract/cerulean
colour = "cerulean"
/obj/item/slimecross/reproductive/pyrite
extract_type = /obj/item/slime_extract/pyrite
colour = "pyrite"
/obj/item/slimecross/reproductive/red
extract_type = /obj/item/slime_extract/red
colour = "red"
/obj/item/slimecross/reproductive/green
extract_type = /obj/item/slime_extract/green
colour = "green"
/obj/item/slimecross/reproductive/pink
extract_type = /obj/item/slime_extract/pink
colour = "pink"
/obj/item/slimecross/reproductive/gold
extract_type = /obj/item/slime_extract/gold
colour = "gold"
/obj/item/slimecross/reproductive/oil
extract_type = /obj/item/slime_extract/oil
colour = "oil"
/obj/item/slimecross/reproductive/black
extract_type = /obj/item/slime_extract/black
colour = "black"
/obj/item/slimecross/reproductive/lightpink
extract_type = /obj/item/slime_extract/lightpink
colour = "light pink"
/obj/item/slimecross/reproductive/adamantine
extract_type = /obj/item/slime_extract/adamantine
colour = "adamantine"
/obj/item/slimecross/reproductive/rainbow
extract_type = /obj/item/slime_extract/rainbow
colour = "rainbow"