From 85ec220511a3aeb465006a8816969149f3c2c6a2 Mon Sep 17 00:00:00 2001 From: Mashy Date: Wed, 2 Oct 2019 12:37:11 +1000 Subject: [PATCH] fix electrocute reflect --- server/src/skill.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/server/src/skill.rs b/server/src/skill.rs index 966771c0..85f67625 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -299,7 +299,16 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) -> .find(|e| e.effect == Effect::Electric).unwrap().clone(); match meta { Some(EffectMeta::Skill(s)) => { - resolutions = electrocute(&mut target, &mut source, resolutions, s); + // Gurad against reflect overflow + if !(source.affected(Effect::Reflect) && target.affected(Effect::Reflect)) { + // Check reflect don't bother if electrocute is procing on death + if source.affected(Effect::Reflect) && !target.is_ko() { + resolutions.push(Resolution::new(&target, &source).event(Event::Reflection { skill: s }).stages(EventStages::EndPost)); + resolutions = electrocute(&mut source, &mut target, resolutions, s); + } else { + resolutions = electrocute(&mut target, &mut source, resolutions, s); + } + } }, _ => panic!("no electrify skill"), };