From 8bce5fd285adbd38d9cdff47deacd5e7453ef202 Mon Sep 17 00:00:00 2001 From: Mashy Date: Tue, 5 Nov 2019 13:56:43 +1000 Subject: [PATCH] fix link --- server/src/skill.rs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/server/src/skill.rs b/server/src/skill.rs index ceccf0f8..9f720fc0 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -1794,13 +1794,19 @@ fn link(source: &mut Construct, target: &mut Construct, mut results: Resolutions None => 0 }; - target.deal_blue_damage(skill, swap) - .into_iter() - .for_each(|e| results.push(Resolution::new(source, target).event(e))); - - source.deal_green_damage(skill, swap) - .into_iter() - .for_each(|e| results.push(Resolution::new(source, source).event(e).stages(EventStages::PostOnly))); + let link_events = target.deal_blue_damage(skill, swap); + for e in link_events { + match e { + Event::Damage { amount, mitigation: _, colour: _, skill: _ } => { + results.push(Resolution::new(source, target).event(e)); + let heal = source.deal_green_damage(skill, amount); + for h in heal { + results.push(Resolution::new(source, source).event(h).stages(EventStages::PostOnly)); + }; + }, + _ => results.push(Resolution::new(source, target).event(e)), + } + } results.push(Resolution::new(source, source) .event(source.add_effect(skill, skill.effect()[0])).stages(EventStages::PostOnly));