Merge branch 'release/1.11.0' of ssh://git.mnml.gg:40022/~/mnml into release/1.11.0
This commit is contained in:
commit
e4adb83060
@ -1014,7 +1014,7 @@ impl Construct {
|
|||||||
|
|
||||||
match meta {
|
match meta {
|
||||||
Some(EffectMeta::CastOnHit(skill)) =>
|
Some(EffectMeta::CastOnHit(skill)) =>
|
||||||
casts.push(Cast::new(self.id, self.account, cast.target, *skill)),
|
casts.push(Cast::new(self.id, self.account, cast.source, *skill)),
|
||||||
_ => panic!("no electrify skill {:?}", meta),
|
_ => panic!("no electrify skill {:?}", meta),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2168,6 +2168,46 @@ mod tests {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn electrify_test() {
|
||||||
|
let mut game = create_2v2_test_game();
|
||||||
|
let player_id = game.players[0].id;
|
||||||
|
let source = game.players[0].constructs[0].id;
|
||||||
|
let target = game.players[1].constructs[0].id;
|
||||||
|
|
||||||
|
game.resolve(Cast::new(source, player_id, target, Skill::Electrify));
|
||||||
|
game.resolve(Cast::new(source, player_id, target, Skill::Blast));
|
||||||
|
|
||||||
|
let last = game.resolutions.len() - 1;
|
||||||
|
let resolutions = &game.resolutions[last];
|
||||||
|
|
||||||
|
assert!(resolutions.iter().any(|r| match r.event {
|
||||||
|
Event::Damage { construct, colour, amount, mitigation: _, display: _ } =>
|
||||||
|
construct == source && amount > 0 && colour == Colour::Blue,
|
||||||
|
_ => false,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn counter_test() {
|
||||||
|
let mut game = create_2v2_test_game();
|
||||||
|
let player_id = game.players[0].id;
|
||||||
|
let source = game.players[0].constructs[0].id;
|
||||||
|
let target = game.players[1].constructs[0].id;
|
||||||
|
|
||||||
|
game.resolve(Cast::new(source, player_id, target, Skill::Counter));
|
||||||
|
game.resolve(Cast::new(source, player_id, target, Skill::Strike));
|
||||||
|
|
||||||
|
let last = game.resolutions.len() - 1;
|
||||||
|
let resolutions = &game.resolutions[last];
|
||||||
|
|
||||||
|
assert!(resolutions.iter().any(|r| match r.event {
|
||||||
|
Event::Damage { construct, colour, amount, mitigation: _, display: _ } =>
|
||||||
|
construct == source && amount > 0 && colour == Colour::Red,
|
||||||
|
_ => false,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn absorb_test() {
|
fn absorb_test() {
|
||||||
let mut game = create_2v2_test_game();
|
let mut game = create_2v2_test_game();
|
||||||
|
|||||||
@ -1691,6 +1691,13 @@ fn electrocute(cast: Cast, game: &mut Game, values: Electrocute) {
|
|||||||
Some(EffectMeta::CastTick { source: cast.source, target: cast.target, skill: Skill::ElectrocuteTick, speed: cast.speed, amount }) },
|
Some(EffectMeta::CastTick { source: cast.source, target: cast.target, skill: Skill::ElectrocuteTick, speed: cast.speed, amount }) },
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
game.action(cast,
|
||||||
|
Action::Damage {
|
||||||
|
construct: cast.target,
|
||||||
|
colour: Colour::Blue,
|
||||||
|
amount,
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn electrocute_tick(cast: Cast, game: &mut Game) {
|
fn electrocute_tick(cast: Cast, game: &mut Game) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user