From 82175eb6a220d854726454363c6e27f91e0022a0 Mon Sep 17 00:00:00 2001 From: DeltaFire <46569814+DeltaFire15@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:13:45 +0100 Subject: [PATCH] force disconnect = feedback damage AIs that get force disconnected from a mech (by the mech blowing up) take 33% of their maximum integrity as feedback damage from the flash sever (mostly to balance their inherent resilience to physical death when interfacing remotely. Woe, cross-zlevel combat) --- code/game/mecha/mecha_defense.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 1761214c3d5..b8b593d43e3 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -355,13 +355,18 @@ /obj/mecha/obj_destruction() if(wreckage) var/mob/living/silicon/ai/AI - //NSV13 - AI disconnects from the mech if it dies, if not shunted. + //NSV13 - AI disconnects from the mech if it dies, if not shunted. Causes damage equal to 33% of maximum integrity. if(isAI(occupant)) + var/mob/living/silicon/ai/ai_ref = occupant var/kill_ai = FALSE if(eject_action in occupant.actions) //This AI did not one-way. go_out() //Release direct control. if(occupant) //Didn't work! kill_ai = TRUE + else + to_chat(ai_ref, "Interface protocols flash-severed. Feedback damage detected.") + var/feedback_damage = CEILING((ai_ref.maxHealth + 100) / 3, 1) // 1/3rd of maximum health as damage, rounded up. + ai_ref.apply_damage(feedback_damage, BURN) else kill_ai = TRUE //Sorry Harbinger. if(kill_ai)