use encounter::resolution::BackgroundScheme;
use encounter::types::Effect;
fn main() {
let mut scheme = BackgroundScheme::new(
"alice".into(),
"bob".into(),
"spy_ring".into(),
5.0,
);
scheme.add_advantage("inside_man".into());
scheme.advance(2.0);
scheme.advance(2.0);
let resolved = scheme.advance(1.5);
assert!(resolved, "scheme should resolve at threshold");
let success_effects = vec![Effect::RelationshipDelta {
axis: "trust".into(),
from: "alice".into(),
to: "bob".into(),
delta: -0.6,
}];
let failure_effects = vec![];
let result = scheme.to_result(success_effects, failure_effects);
println!("scheme: {} ({})", scheme.scheme_type, scheme.initiator);
println!("advantages held: {:?}", scheme.advantages);
println!("final progress: {} / {}", scheme.progress, scheme.threshold);
println!("beats: {}", result.beats.len());
println!(
" resolution: {} ({})",
result.beats[0].action,
if result.beats[0].accepted {
"succeeded"
} else {
"failed"
}
);
println!("escalation requested: {}", result.escalation_requested);
for req in &result.escalation_requests {
println!(
" → trigger={} fidelity={:?}",
req.trigger, req.suggested_fidelity
);
}
}