change reflect to only affect blue

This commit is contained in:
ntr 2019-06-09 16:43:50 +10:00
parent 240d05206a
commit 93deb55733

View File

@ -65,13 +65,13 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut
return resolutions; return resolutions;
} }
if target.affected(Effect::Reflect) { if target.affected(Effect::Reflect) && skill.colours().contains(&Colour::Blue) {
// guard against overflow // guard against overflow
if source.affected(Effect::Reflect) { if source.affected(Effect::Reflect) {
return resolutions; return resolutions;
} }
resolutions.push(Resolution::new(source, target).event(Event::Reflection { skill })); resolutions.push(Resolution::new(source, target).event(Event::Reflection { skill }));
return resolve(skill, target, source, resolutions); return resolve(skill, &mut source.clone(), source, resolutions);
} }
if source.affected(Effect::Haste) { if source.affected(Effect::Haste) {
@ -1840,13 +1840,13 @@ mod tests {
assert!(y.affected(Effect::Reflect)); assert!(y.affected(Effect::Reflect));
let mut results = vec![]; let mut results = vec![];
results = resolve(Skill::Attack, &mut x, &mut y, results); results = resolve(Skill::BlastI, &mut x, &mut y, results);
assert!(x.green_life() < 1024); assert!(x.green_life() < 1024);
let Resolution { source: _, target: _, event, stages: _ } = results.remove(0); let Resolution { source: _, target: _, event, stages: _ } = results.remove(0);
match event { match event {
Event::Reflection { skill } => assert_eq!(skill, Skill::Attack), Event::Reflection { skill } => assert_eq!(skill, Skill::BlastI),
_ => panic!("not reflection"), _ => panic!("not reflection"),
}; };