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;
}
if target.affected(Effect::Reflect) {
if target.affected(Effect::Reflect) && skill.colours().contains(&Colour::Blue) {
// guard against overflow
if source.affected(Effect::Reflect) {
return resolutions;
}
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) {
@ -1840,13 +1840,13 @@ mod tests {
assert!(y.affected(Effect::Reflect));
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);
let Resolution { source: _, target: _, event, stages: _ } = results.remove(0);
match event {
Event::Reflection { skill } => assert_eq!(skill, Skill::Attack),
Event::Reflection { skill } => assert_eq!(skill, Skill::BlastI),
_ => panic!("not reflection"),
};