use super::*;
impl RuntimeTurnDriver<'_> {
fn fail_runtime_effect_controller(
machine: &mut TurnMachine,
err: RuntimeEffectControllerError,
) {
machine.fail_turn(make_error_event(
"runtime_effect_controller",
Some(&err.code),
err.message,
None,
));
}
pub(super) fn should_abort_for_runtime_effect_error(&self) -> bool {
self.scoped_effect_controller.controller().durability_tier()
== crate::DurabilityTier::Durable
}
pub(super) fn fail_or_abort_runtime_effect_controller(
&self,
machine: &mut TurnMachine,
err: RuntimeEffectControllerError,
) -> Result<(), RuntimeError> {
if self.should_abort_for_runtime_effect_error() {
Err(err.into_runtime_error())
} else {
Self::fail_runtime_effect_controller(machine, err);
Ok(())
}
}
}