diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 7e877f5e684..67deeb1ef5f 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -244,7 +244,17 @@ /datum/effect_system/foam_spread/start() var/obj/effect/particle_effect/foam/F = new effect_type(location) var/foamcolor = mix_color_from_reagents(chemholder.reagents.reagent_list) - chemholder.reagents.copy_to(F, chemholder.reagents.total_volume/amount) + // To prevent insane reagent multiplication with 1u foam + // I am capping amount of reagent foam recieves by limiting how low it can go + // Any radius of foam less than 3 makes foam recieve same amount of reagents as foam of radius 3 + // Maximum multiplication of reagents is about 166% (3 times as low as before, it was about 500% with 1u foam) + // + // amount is radius of the foam + // 10u foam has radius of 3 + // 5u foam has radius of 2 + // 1u foam has radius of 1 + var/effective_amount = chemholder.reagents.total_volume / max(amount, 3) + chemholder.reagents.copy_to(F, effective_amount) F.add_atom_colour(foamcolor, FIXED_COLOUR_PRIORITY) F.amount = amount F.metal = metal