From 878041f5874581e3610af3eddf9ea83a67ac1cd0 Mon Sep 17 00:00:00 2001 From: Krysonism <49783092+Krysonism@users.noreply.github.com> Date: Sat, 17 May 2025 18:36:04 +0200 Subject: [PATCH] Clown Abomination Rebalance! #Cytology2025 (#91000) ## About The Pull Request This PR includes a number of fixes, buffs and improvements to the clown mobs to make them more playable and worthwhile. ### Atmos tolerance buffs This PR removes the insane unsuitable atmos and temperature damage clown mobs used to take and bring it in line with other mobs. In addition, clownanas can tolerate lower oxygen levels and are immune to carbon dioxide due to their half plant biology. ### Movement speed changes A lot of these mobs were previously unviable due to their slow speed, one of the most important stats. This problem will only get worse for basic mobs if the proposed basic mob stamina changes get implemented. Most of them are still slower than humans but now have some chance to corner a human in some circumstances. (I plan to add more ways to modify basic mob run speed in the future to help with this.) The flesh clown and honkling are now fast again, I remember the original speed nerf of fleshclown upset the very few fleshclown enjoyers once i PR'd in the initial balance pass years back. ### Glutton buffs The banana glutton is now given a mechanical incentive to eat lots of foods to nudge them into good RP. They heal for every item and gain max health every 5 items eaten! The banana glutton can now smash doors. They can now prank the crew with ink sacs should they find them. ### Biotype update Clownana has gained the plant biotype. Living lube has gained the slime biotype. ### cell lines & samples clownana and longface; the two other clown cell lines now have samples associated with them and can be biopsied to create pure samples of each cell line. The clownana banana bunch can also be swabbed for the pure clownana cell line! ### death drop changes The death drop element now spreads the items out slightly instead of stacking lots of drops in the center of the tile. Clown mobs now drop less soap and more peels, with some of the rarer ones dropping mimana, bluespace or gros michel peels. The clownana now has a chance to drop full bananas or even a full banana bunch. The banana glutton has a chance to drop a heart of freedom. The flesh clown now drops a meatclown instead of soap, and a piece of human skin instead of a bloated human suit. ### other stat changes living lube is now highly resistant to brute damage longface can now acutally fight a little bit, still kinda terrible though. ## Why It's Good For The Game These mobs are quite beloved but their level of playability is low due to poor balance. The main problem is atmos. Even a whiff of bad atmos would gib these mobs before they could get to safety. Many of them had their speed set way too high or way too low when they were first added, even after i adjusted their speeds years ago I was being too conservative. Their loot tables were too similar, this helps with that a little bit. A couple of them might even be worthwhile farming for their drops in certain niche situations! The banana glutton has such a cool sprite but has been neglected mechanically, this helps make him a little more worthwhile and the extra obj damage helps him not be in that sucky place where he is too large to vent crawl and not powerful enough to break down doors. Ideally in the future we should probably be more restrictive with allowing mobs to smash airlocks and give them another way of opening doors via armblade -like prying or ID implants. ## Changelog :cl: add: banana gluttons gain max health and heal by eating foods! And they can smash doors. balance: clown mobs no longer get nuked by bad atmos. balance: blown mobs have new death drops. balance: most clown more are now faster! balance: clownanas are now plants and are immune to carbon dioxide. balance: living lube is now a slime and highly brute resistant. balance: longfaces now hit decently hard. fix: clownanas and longfaces can now be biopsied. /:cl: --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/research.dm | 2 + code/_globalvars/lists/xenobiology.dm | 2 + code/datums/elements/death_drops.dm | 11 ++- .../effects/spawners/random/death_drops.dm | 26 ++++++ code/modules/hydroponics/grown/banana.dm | 1 + code/modules/mob/living/basic/clown/clown.dm | 79 +++++++++++------- .../vatgrowing/samples/cell_lines/common.dm | 2 +- icons/effects/random_spawners.dmi | Bin 96564 -> 97467 bytes tgstation.dme | 1 + 9 files changed, 88 insertions(+), 36 deletions(-) create mode 100644 code/game/objects/effects/spawners/random/death_drops.dm diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index 8a68a036ff5..25103127059 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -47,6 +47,8 @@ #define CELL_LINE_TABLE_VATBEAST "cell_line_vatbeast_table" #define CELL_LINE_TABLE_NETHER "cell_line_nether_table" #define CELL_LINE_TABLE_GLUTTON "cell_line_glutton_table" +#define CELL_LINE_TABLE_CLOWNANA "cell_line_clownana_table" +#define CELL_LINE_TABLE_LONGFACE "cell_line_longface_table" #define CELL_LINE_TABLE_FROG "cell_line_frog_table" #define CELL_LINE_TABLE_AXOLOTL "cell_line_axolotl_table" #define CELL_LINE_TABLE_WALKING_MUSHROOM "cell_line_walking_mushroom_table" diff --git a/code/_globalvars/lists/xenobiology.dm b/code/_globalvars/lists/xenobiology.dm index f641e9d5ecc..37bb0daaeed 100644 --- a/code/_globalvars/lists/xenobiology.dm +++ b/code/_globalvars/lists/xenobiology.dm @@ -68,6 +68,8 @@ GLOBAL_LIST_INIT_TYPED(cell_line_tables, /list, list( ), CELL_LINE_TABLE_GLUTTON = list(/datum/micro_organism/cell_line/clown/glutton = 1), + CELL_LINE_TABLE_CLOWNANA = list(/datum/micro_organism/cell_line/clown/bananaclown = 1), + CELL_LINE_TABLE_LONGFACE = list(/datum/micro_organism/cell_line/clown/longclown = 1), CELL_LINE_TABLE_FROG = list(/datum/micro_organism/cell_line/frog = 1), CELL_LINE_TABLE_AXOLOTL = list(/datum/micro_organism/cell_line/axolotl = 1), CELL_LINE_TABLE_WALKING_MUSHROOM = list(/datum/micro_organism/cell_line/walking_mushroom = 1), diff --git a/code/datums/elements/death_drops.dm b/code/datums/elements/death_drops.dm index 02629daaf8d..cc6af9ab4d5 100644 --- a/code/datums/elements/death_drops.dm +++ b/code/datums/elements/death_drops.dm @@ -28,15 +28,20 @@ var/atom/loot_loc = target.drop_location() for(var/thing_to_spawn in loot) for(var/i in 1 to (loot[thing_to_spawn] || 1)) - create_loot(thing_to_spawn, loot_loc, target, gibbed) + create_loot(thing_to_spawn, loot_loc, target, gibbed, spread_px = loot.len * 3) /// Handles creating the loots -/datum/element/death_drops/proc/create_loot(typepath, atom/loot_loc, mob/living/dead, gibbed) +/datum/element/death_drops/proc/create_loot(typepath, atom/loot_loc, mob/living/dead, gibbed, spread_px = 4) if(ispath(typepath, /obj/effect/mob_spawn/corpse)) handle_corpse(typepath, loot_loc, dead, gibbed) return - new typepath(loot_loc) + var/drop = new typepath(loot_loc) + if(isitem(drop) && spread_px) + var/obj/item/dropped_item = drop + var/clamped_px = clamp(spread_px, 0, 16) + dropped_item.pixel_x = rand(-clamped_px, clamped_px) + dropped_item.pixel_y = rand(-clamped_px, clamped_px) /// Handles snowflake case of mob corpses /datum/element/death_drops/proc/handle_corpse(typepath, atom/loot_loc, mob/living/dead, gibbed) diff --git a/code/game/objects/effects/spawners/random/death_drops.dm b/code/game/objects/effects/spawners/random/death_drops.dm new file mode 100644 index 00000000000..e5ce97c1858 --- /dev/null +++ b/code/game/objects/effects/spawners/random/death_drops.dm @@ -0,0 +1,26 @@ +/obj/effect/spawner/random/peel_or_nana + name = "peel or banana spawner" + icon_state = "peel" + spawn_random_offset = TRUE + loot = list( + /obj/item/grown/bananapeel = 3, + /obj/item/food/grown/banana = 2, + ) + +/obj/effect/spawner/random/bananas_or_nothing + name = "bananas or nothing spawner" + icon_state = "bunch" + spawn_random_offset = TRUE + spawn_loot_chance = 66 + loot = list( + /obj/item/food/grown/banana/bunch = 6, + /obj/item/food/grown/banana = 4, + ) + +/obj/effect/spawner/random/chance_for_freedom + name = "freedom heart or nothing spawner" + icon_state = "cap" + spawn_loot_chance = 40 + loot = list( + /obj/item/organ/heart/freedom = 1, + ) diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 11b57f913dd..e3216311efa 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -171,6 +171,7 @@ reagents.clear_reagents() reagents.add_reagent(/datum/reagent/consumable/monkey_energy, 10) reagents.add_reagent(/datum/reagent/consumable/banana, 10) + AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWNANA, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) /obj/item/food/grown/banana/bunch/proc/start_ripening() if(is_ripening) diff --git a/code/modules/mob/living/basic/clown/clown.dm b/code/modules/mob/living/basic/clown/clown.dm index db0cf2bbba4..98ebc8f8df7 100644 --- a/code/modules/mob/living/basic/clown/clown.dm +++ b/code/modules/mob/living/basic/clown/clown.dm @@ -23,13 +23,10 @@ basic_mob_flags = DEL_ON_DEATH initial_language_holder = /datum/language_holder/clown habitable_atmos = list("min_oxy" = 5, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - minimum_survivable_temperature = T0C + minimum_survivable_temperature = (T0C - 10) maximum_survivable_temperature = (T0C + 100) - unsuitable_atmos_damage = 10 - unsuitable_heat_damage = 15 faction = list(FACTION_CLOWN) ai_controller = /datum/ai_controller/basic_controller/clown - speed = 1.4 //roughly close to simpleanimal clowns ///list of stuff we drop on death var/list/loot = list(/obj/effect/mob_spawn/corpse/human/clown) ///blackboard emote list @@ -72,10 +69,14 @@ desc = "A puddle of lube brought to life by the honkmother." icon_state = "lube" icon_living = "lube" + maxHealth = 50 + health = 50 response_help_continuous = "dips a finger into" response_help_simple = "dip a finger into" response_disarm_continuous = "gently scoops and pours aside" response_disarm_simple = "gently scoop and pour aside" + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_SLIME + damage_coeff = list(BRUTE = 0.25, BURN = 1, TOX = 1, STAMINA = 1, OXY = 1) emotes = list( BB_EMOTE_SAY = list("HONK", "Honk!", "Welcome to clown planet!"), BB_EMOTE_HEAR = list("bubbles", "oozes"), @@ -95,16 +96,16 @@ desc = "A divine being sent by the Honkmother to spread joy. It's not dangerous, but it's a bit of a nuisance." icon_state = "honkling" icon_living = "honkling" - speed = 1.1 + speed = -0.5 melee_damage_lower = 1 melee_damage_upper = 1 attack_verb_continuous = "cheers up" attack_verb_simple = "cheer up" + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID loot = list( /obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, - /obj/item/soap, - /obj/item/seeds/banana/bluespace, + /obj/item/grown/bananapeel/bluespace, ) /mob/living/basic/clown/honkling/Initialize(mapload) @@ -132,7 +133,7 @@ response_harm_simple = "cleanse the world of" maxHealth = 140 health = 140 - speed = 1 + speed = -0.5 melee_damage_upper = 15 attack_verb_continuous = "limply slaps" attack_verb_simple = "limply slap" @@ -140,8 +141,8 @@ loot = list( /obj/effect/gibspawner/human, /obj/item/clothing/mask/gas/clown_hat, - /obj/item/soap, - /obj/item/clothing/suit/hooded/bloated_human, + /obj/item/food/meatclown, + /obj/item/stack/sheet/animalhide/human, ) emotes = list( BB_EMOTE_SAY = list( @@ -178,13 +179,13 @@ health = 150 pixel_x = -16 base_pixel_x = -16 - speed = 3 - melee_damage_lower = 5 + speed = 1.5 + melee_damage_upper = 20 attack_verb_continuous = "YA-HONKs" attack_verb_simple = "YA-HONK" loot = list( /obj/effect/gibspawner/human, - /obj/item/soap, + /obj/item/grown/bananapeel, /obj/item/clothing/mask/gas/clown_hat, ) emotes = list( @@ -193,6 +194,10 @@ BB_SPEAK_CHANCE = 60, ) +/mob/living/basic/clown/longface/Initialize(mapload) + . = ..() + AddElement(/datum/element/swabable, CELL_LINE_TABLE_LONGFACE, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) + /mob/living/basic/clown/clownhulk name = "Honk Hulk" desc = "A cruel and fearsome clown. Don't make him angry." @@ -210,7 +215,7 @@ health = 400 pixel_x = -16 base_pixel_x = -16 - speed = 2 + speed = 1.5 melee_damage_lower = 15 melee_damage_upper = 20 attack_verb_continuous = "pummels" @@ -243,7 +248,6 @@ response_harm_simple = "make a weak beta attack at" maxHealth = 500 health = 500 - speed = -2 //ridicilously fast but i dont even know what this is used for armour_penetration = 20 attack_verb_continuous = "steals the girlfriend of" attack_verb_simple = "steal the girlfriend of" @@ -251,7 +255,7 @@ loot = list( /obj/effect/gibspawner/human, /obj/effect/spawner/foam_starter/small, - /obj/item/soap, + /obj/item/grown/bananapeel, /obj/item/clothing/mask/gas/clown_hat, ) emotes = list( @@ -271,16 +275,14 @@ response_disarm_simple = "push the unwieldy frame of" maxHealth = 200 health = 200 - speed = 1 - melee_damage_lower = 5 - melee_damage_upper = 10 + melee_damage_upper = 15 attack_verb_continuous = "ferociously mauls" attack_verb_simple = "ferociously maul" environment_smash = ENVIRONMENT_SMASH_NONE loot = list( /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/spawner/foam_starter/small, - /obj/item/soap, + /obj/item/grown/bananapeel/mimanapeel, /obj/item/clothing/mask/gas/clown_hat, ) emotes = list( @@ -309,7 +311,7 @@ response_harm_continuous = "bounces off of" maxHealth = 400 health = 400 - speed = 5 + speed = 1.5 melee_damage_lower = 20 melee_damage_upper = 40 armour_penetration = 30 @@ -321,7 +323,7 @@ loot = list( /obj/effect/gibspawner/human, /obj/effect/spawner/foam_starter/small, - /obj/item/soap, + /obj/item/grown/bananapeel, /obj/item/clothing/mask/gas/clown_hat, ) emotes = list( @@ -347,7 +349,7 @@ health = 130 pixel_x = -16 base_pixel_x = -16 - speed = -5 + speed = 1.5 melee_damage_lower = 10 melee_damage_upper = 20 attack_verb_continuous = "awkwardly flails at" @@ -358,7 +360,7 @@ /obj/effect/gibspawner/human, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/xeno/bodypartless, - /obj/item/soap, + /obj/item/grown/bananapeel/gros_michel, /obj/item/clothing/mask/gas/clown_hat, ) emotes = list( @@ -367,8 +369,6 @@ BB_SPEAK_CHANCE = 10, ) -/mob/living/basic/clown/mutant/slow - speed = 20 /mob/living/basic/clown/mutant/glutton name = "banana glutton" @@ -380,14 +380,19 @@ speed = 1 melee_damage_lower = 10 melee_damage_upper = 15 + obj_damage = 50 damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, STAMINA = 1, OXY = 1) attack_verb_continuous = "slams" attack_verb_simple = "slam" + ///Tracks how many total foods we have eaten, used for calculating when we should gain max health. + var/foods_eaten = 0 + loot = list( /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/xeno/bodypartless, + /obj/effect/spawner/random/chance_for_freedom, ) emotes = list( BB_EMOTE_SAY = list("hey, buddy", "HONK!!!", "H-h-h-H-HOOOOONK!!!!", "HONKHONKHONK!!!", "HEY, BUCKO, GET BACK HERE!!!", "HOOOOOOOONK!!!"), @@ -401,7 +406,6 @@ /mob/living/basic/clown/mutant/glutton/Initialize(mapload) . = ..() GRANT_ACTION(/datum/action/cooldown/regurgitate) - AddElement(/datum/element/swabable, CELL_LINE_TABLE_GLUTTON, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) var/static/list/food_types = list( /obj/item/food/cheesiehonkers, @@ -447,6 +451,7 @@ /obj/item/food/pie/cream, /obj/item/food/grown/tomato, /obj/item/food/meatclown, + /obj/item/food/ink_sac, ) visible_message(span_warning("[src] eats [eaten_atom]!"), span_notice("You eat [eaten_atom].")) @@ -455,11 +460,18 @@ prank_pouch += eaten_atom else + //Encourage gluttony RP by giving a litle bonus for each obj eaten. + foods_eaten++ + if(!(foods_eaten % 5) && foods_eaten <= 100) + balloon_alert(src, "weight gained!") + maxHealth += 10 + health += 10 if(istype(eaten_atom, /obj/item/food/grown/banana)) var/obj/item/food/grown/banana/banana_morsel = eaten_atom - adjustBruteLoss(-banana_morsel.seed.potency * 0.25) + adjustBruteLoss(-(banana_morsel.seed.potency / 100 ) * maxHealth * 0.2) prank_pouch += banana_morsel.generate_trash(src) - + else + adjustBruteLoss(-maxHealth * 0.1) qdel(eaten_atom) playsound(loc,'sound/items/eatfood.ogg', rand(30,50), TRUE) @@ -534,6 +546,7 @@ desc = "A fusion of clown and banana DNA birthed from a botany experiment gone wrong." icon_state = "banana tree" icon_living = "banana tree" + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_PLANT response_disarm_continuous = "peels" response_disarm_simple = "peel" response_harm_continuous = "peels" @@ -541,11 +554,12 @@ maxHealth = 120 health = 120 speed = -1 + habitable_atmos = list("min_oxy" = 1, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 1, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) loot = list( /obj/effect/gibspawner/human, - /obj/item/seeds/banana, - /obj/item/soap, /obj/item/clothing/mask/gas/clown_hat, + /obj/effect/spawner/random/bananas_or_nothing, + /obj/effect/spawner/random/peel_or_nana, ) emotes = list( BB_EMOTE_SAY = list("HONK", "Honk!", "YA-HONK!!!"), @@ -555,13 +569,14 @@ /mob/living/basic/clown/banana/Initialize(mapload) . = ..() - + AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWNANA, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) var/static/list/innate_actions = list( /datum/action/cooldown/exquisite_bunch, /datum/action/cooldown/rustle, ) grant_actions_by_list(innate_actions) + ///drops peels around the mob when activated /datum/action/cooldown/rustle name = "Rustle" 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 65581357957..a2ecc4f99d7 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm @@ -483,7 +483,7 @@ /datum/micro_organism/cell_line/clown/fuck_up_growing(obj/machinery/vatgrower/vat) vat.visible_message(span_warning("The biological sample in [vat] seems to have created something horrific!")) - var/mob/selected_mob = pick(list(/mob/living/basic/clown/mutant/slow, /mob/living/basic/clown/fleshclown)) + var/mob/selected_mob = pick(list(/mob/living/basic/clown/mutant, /mob/living/basic/clown/fleshclown)) new selected_mob(get_turf(vat)) diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi index 3008377f509dd183f3630b0b89bc7f861e1d6395..e75aa4aaa767197f0dbb2c189ec069397f169d83 100644 GIT binary patch delta 7595 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 JRf;yD{{swH{lx$P delta 6685 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