diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index 46cbccc8fee..c385e467e8c 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -94,6 +94,7 @@ #define CELL_LINE_TABLE_MOLD "cell_line_mold_table" #define CELL_LINE_TABLE_MOIST "cell_line_moist_table" #define CELL_LINE_TABLE_BLOB "cell_line_blob_table" +#define CELL_LINE_TABLE_CLOWN "cell_line_clown_table" ///Biopsy cell line types #define CELL_LINE_TABLE_BEAR "cell_line_bear_table" diff --git a/code/_globalvars/lists/xenobiology.dm b/code/_globalvars/lists/xenobiology.dm index 36bf999f32c..496107dc5ed 100644 --- a/code/_globalvars/lists/xenobiology.dm +++ b/code/_globalvars/lists/xenobiology.dm @@ -23,7 +23,8 @@ GLOBAL_LIST_INIT_TYPED(cell_line_tables, /list, list( CELL_LINE_TABLE_PUG = list(/datum/micro_organism/cell_line/pug = 1), CELL_LINE_TABLE_SLIME = list(/datum/micro_organism/cell_line/slime = 1), CELL_LINE_TABLE_SNAKE = list(/datum/micro_organism/cell_line/snake = 1), - CELL_LINE_TABLE_VATBEAST = list(/datum/micro_organism/cell_line/vat_beast = 1) + CELL_LINE_TABLE_VATBEAST = list(/datum/micro_organism/cell_line/vat_beast = 1), + CELL_LINE_TABLE_CLOWN = list(/datum/micro_organism/cell_line/clown/bananaclown = 1, /datum/micro_organism/cell_line/clown/fleshclown = 1, /datum/micro_organism/cell_line/clown/longclown = 1) )) ///Assoc list of cell virus define | assoc list of datum | cell_virus diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index c2f6506809f..2c9522b6613 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -94,6 +94,7 @@ "The Madman" = image(icon = src.icon, icon_state = "joker"), "The Rainbow Color" = image(icon = src.icon, icon_state = "rainbow") ) + AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0) /obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user) if(!istype(user) || user.incapacitated()) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 4da9c709f50..23527a7fc52 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -101,6 +101,7 @@ /obj/item/clothing/shoes/clown_shoes/Initialize() . = ..() AddComponent(/datum/component/squeak, list('sound/effects/clownstep1.ogg'=1,'sound/effects/clownstep2.ogg'=1), 50) + AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0) /obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot) . = ..() diff --git a/code/modules/clothing/under/jobs/civilian/clown_mime.dm b/code/modules/clothing/under/jobs/civilian/clown_mime.dm index 47ffa8b918e..efb31b79b84 100644 --- a/code/modules/clothing/under/jobs/civilian/clown_mime.dm +++ b/code/modules/clothing/under/jobs/civilian/clown_mime.dm @@ -28,6 +28,9 @@ desc = "'HONK!'" icon_state = "clown" inhand_icon_state = "clown" +/obj/item/clothing/under/rank/civilian/clown/Initialize() + . = ..() + AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0) /obj/item/clothing/under/rank/civilian/clown/blue name = "blue clown suit" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index 7ff44434782..b4cf8bcf90d 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -292,6 +292,10 @@ attack_verb_simple = "awkwardly flail at" loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human) +/mob/living/simple_animal/hostile/retaliate/clown/mutant/slow + speed = 20 + move_to_delay = 60 + /mob/living/simple_animal/hostile/retaliate/clown/mutant/blob name = "Something that was once a clown" desc = "A grotesque bulging figure far mutated from it's original state." @@ -306,3 +310,7 @@ attack_verb_simple = "bounce off of" loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human) attack_reagent = /datum/reagent/toxin/mindbreaker + +/mob/living/simple_animal/hostile/retaliate/clown/mutant/blob/slow + speed = 50 + move_to_delay = 120 diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm index 592cd03c244..7a4e2f8bd14 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm @@ -374,4 +374,36 @@ . = ..() qdel(vat) +/datum/micro_organism/cell_line/clown/fuck_up_growing(var/obj/machinery/plumbing/growing_vat/vat) + vat.visible_message("The biological sample in [vat] seems to have created something horrific!") + QDEL_NULL(vat.biological_sample) //Kill off the sample, we're done + + var/mob/selected_mob = pick(list(/mob/living/simple_animal/hostile/retaliate/clown/mutant/slow, /mob/living/simple_animal/hostile/retaliate/clown/mutant/blob/slow)) + + new selected_mob(get_turf(vat)) + +/datum/micro_organism/cell_line/clown/bananaclown + desc = "Clown bits with banana chunks" + + required_reagents = list(/datum/reagent/consumable/banana) + supplementary_reagents = list(/datum/reagent/consumable/banana_peel = 4) + + resulting_atoms = list(/mob/living/simple_animal/hostile/retaliate/clown/banana = 1) + +/datum/micro_organism/cell_line/clown/fleshclown + desc = "Overly fleshy clown bits" + + required_reagents = list(/datum/reagent/consumable/banana) + supplementary_reagents = list(/datum/reagent/consumable/nutriment/protein = 4) + + resulting_atoms = list(/mob/living/simple_animal/hostile/retaliate/clown/fleshclown = 1) + +/datum/micro_organism/cell_line/clown/longclown + desc = "long clown bits" + + required_reagents = list(/datum/reagent/consumable/banana) + supplementary_reagents = list(/datum/reagent/consumable/laughter = 4) + + resulting_atoms = list(/mob/living/simple_animal/hostile/retaliate/clown/longface = 1) + #undef VAT_GROWTH_RATE