From 0f01c4610232e28da9d977c8a34f78309fd01384 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sun, 27 Aug 2023 19:46:25 +0200 Subject: [PATCH] [MIRROR] Damage resistance is now applied properly when synchronous mesh blobs deals damage to itself on hit [MDB IGNORE] (#23368) * Damage resistance is now applied properly when synchronous mesh blobs deals damage to itself on hit (#77831) ## About The Pull Request The synchronous mesh blobstrain bypasses damage resistance when dealing collateral damage to nearby blob... things? Structures? Meshes? Anyways, this is now fixed with this PR well as getting rid of an unnecessary double `orange()` call. ## Why It's Good For The Game This is actually a weird consistency error, and I don't know why it exists. Why we have a bypass for damage resistance is really byond me, and I hope this puts a bit more balance into place of--- guys don't listen to her she's doing this to remove clone damage from the game do not listen to her lies about game balance ## Changelog :cl: distributivgesetz balance: Damaging synchronous mesh blobs now incorporates damage resistance of other blob structures when dealing shared damage to those nearby. /:cl: * Damage resistance is now applied properly when synchronous mesh blobs deals damage to itself on hit --------- Co-authored-by: distributivgesetz --- .../antagonists/blob/blobstrains/synchronous_mesh.dm | 7 ++++--- code/modules/antagonists/blob/structures/_blob.dm | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm index 14e7980b61a..825104ddcc1 100644 --- a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm +++ b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm @@ -14,12 +14,13 @@ /datum/blobstrain/reagent/synchronous_mesh/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) if(damage_flag == MELEE || damage_flag == BULLET || damage_flag == LASER) //the cause isn't fire or bombs, so split the damage var/damagesplit = 1 //maximum split is 9, reducing the damage each blob takes to 11% but doing that damage to 9 blobs - for(var/obj/structure/blob/C in orange(1, B)) + var/list/blob_structures = orange(1, B) + for(var/obj/structure/blob/C in blob_structures) if(!C.ignore_syncmesh_share && C.overmind && C.overmind.blobstrain.type == B.overmind.blobstrain.type) //if it doesn't have the same chemical or is a core or node, don't split damage to it damagesplit += 1 - for(var/obj/structure/blob/C in orange(1, B)) + for(var/obj/structure/blob/C in blob_structures) if(!C.ignore_syncmesh_share && C.overmind && C.overmind.blobstrain.type == B.overmind.blobstrain.type) //only hurt blobs that have the same overmind chemical and aren't cores or nodes - C.take_damage(damage/damagesplit, CLONE, 0, 0) + C.take_damage(damage/damagesplit, damage_type, 0, 0) return damage / damagesplit else return damage * 1.25 diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm index a816b7eeeb2..3580e3f3bf8 100644 --- a/code/modules/antagonists/blob/structures/_blob.dm +++ b/code/modules/antagonists/blob/structures/_blob.dm @@ -293,7 +293,6 @@ damage_amount *= brute_resist if(BURN) damage_amount *= fire_resist - if(CLONE) else return 0 var/armor_protection = 0