Some thrown liquid logic improvement (#22453)

* Makes liquids spill on the tile adjacent to a wall when thrown, lets them ricochet off other objects as well

* Just adds some documentation

This file could use it

* Thrown reagents should always expose the tile they hit, even if the liquid lands elsewhere
This commit is contained in:
Bloop
2023-07-15 14:50:48 -07:00
committed by GitHub
parent 6f69ccfe20
commit 65882f0b9a
2 changed files with 74 additions and 6 deletions
+4 -4
View File
@@ -225,16 +225,16 @@
log_combat(thrown_by, M, "splashed", R)
reagents.expose(target, TOUCH, splash_multiplier)
reagents.expose(target_turf, TOUCH, (1 - splash_multiplier)) // 1 - splash_multiplier because it's what didn't hit the target
target_turf.add_liquid_from_reagents(reagents, reagent_multiplier = (1 - splash_multiplier)) // skyrat edit: liquid spills (molotov buff) (huge)
target_turf.add_liquid_from_reagents(reagents, reagent_multiplier = (1 - splash_multiplier)) // SKYRAT EDIT ADDITION - liquid spills (molotov buff) (huge)
else if(bartender_check(target) && thrown)
visible_message(span_notice("[src] lands onto the [target.name] without spilling a single drop."))
return
else
if(isturf(target)) //SKYRAT EDIT CHANGE
var/turf/T = target
T.add_liquid_from_reagents(reagents)
//SKYRAT EDIT CHANGE START - liquid spills on non-mobs
if(target.can_liquid_spill_on_hit())
target.add_liquid_from_reagents(reagents, thrown_from = src, thrown_to = target)
if(reagents.reagent_list.len && thrown_by)
log_combat(thrown_by, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]")
log_game("[key_name(thrown_by)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].")