manabrew_engine/replacement/
replace_planar_dice_result.rs1use crate::card::Card;
6use crate::game::GameState;
7use crate::ids::CardId;
8
9use super::replacement_effect::ReplacementEffect;
10use super::replacement_handler::ReplacementEvent;
11use super::replacement_result::ReplacementResult;
12use super::replacement_type::ReplacementType;
13use crate::card_trait_base::CardTrait;
14
15pub fn can_replace(
18 effect: &ReplacementEffect,
19 event: &ReplacementEvent,
20 _game: &GameState,
21 source_card: &Card,
22) -> bool {
23 if effect.event != ReplacementType::PlanarDiceResult {
24 return false;
25 }
26 let player = match event {
27 ReplacementEvent::PlanarDiceResult { player } => *player,
28 _ => return false,
29 };
30 if let Some(valid) = effect.ir.valid_player_selector.as_ref() {
31 if !effect.matches_compiled_valid_player(valid, player, source_card) {
32 return false;
33 }
34 }
35 true
36}
37
38pub fn execute(
40 effect: &ReplacementEffect,
41 _event: &mut ReplacementEvent,
42 _game: &GameState,
43 _source_card_id: CardId,
44) -> ReplacementResult {
45 if effect.prevents() || effect.has_skip() {
46 return ReplacementResult::Skipped;
47 }
48 ReplacementResult::Replaced
49}