manabrew_engine/ability/effects/
roll_planar_dice_effect.rs1use super::EffectContext;
6use crate::event::RunParams;
7use crate::replacement::replacement_handler::{apply_replacements, ReplacementEvent};
8use crate::replacement::ReplacementResult;
9use crate::trigger::TriggerType;
10
11#[manabrew_engine_macros::spell_effect(RollPlanarDiceEffect)]
15fn resolve(ctx: &mut EffectContext, sa: &crate::spellability::SpellAbility) {
16 let mut event = ReplacementEvent::RollPlanarDice {
18 player: sa.activating_player,
19 };
20 let repl_result = apply_replacements(ctx.game, &mut event);
21 if repl_result == ReplacementResult::Skipped || repl_result == ReplacementResult::Replaced {
22 return;
23 }
24
25 let result = ctx.rng.next_int(6) + 1;
27
28 match result {
29 1 => {
30 ctx.trigger_handler.run_trigger(
32 TriggerType::Planeswalk,
33 RunParams {
34 player: Some(sa.activating_player),
35 ..Default::default()
36 },
37 false,
38 );
39 }
40 2 => {
41 ctx.trigger_handler.run_trigger(
43 TriggerType::ChaosEnsues,
44 RunParams {
45 player: Some(sa.activating_player),
46 ..Default::default()
47 },
48 false,
49 );
50 }
51 _ => {
52 }
54 }
55}