change reflect to only affect blue
This commit is contained in:
parent
240d05206a
commit
93deb55733
@ -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"),
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user