logging back
This commit is contained in:
parent
4f0d349cd6
commit
b2507d706c
@ -12,7 +12,7 @@ use failure::err_msg;
|
|||||||
use account::Account;
|
use account::Account;
|
||||||
use rpc::{GameStateParams, GameSkillParams, GamePveParams, GamePvpParams, GameTargetParams, GameJoinParams};
|
use rpc::{GameStateParams, GameSkillParams, GamePveParams, GamePvpParams, GameTargetParams, GameJoinParams};
|
||||||
use cryp::{Cryp, cryp_get};
|
use cryp::{Cryp, cryp_get};
|
||||||
use skill::{Skill, Cast};
|
use skill::{Skill, Cast, ResolutionResult};
|
||||||
|
|
||||||
pub type Log = Vec<String>;
|
pub type Log = Vec<String>;
|
||||||
|
|
||||||
@ -363,6 +363,24 @@ impl Game {
|
|||||||
self.resolve_skills()
|
self.resolve_skills()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn log_resolution(&mut self, source: &Cryp, target: &Cryp, cast: &Cast) -> &mut Game {
|
||||||
|
for result in cast.resolution.results.iter() {
|
||||||
|
match result {
|
||||||
|
ResolutionResult::Damage { amount, category: _, immunity: _ } => {
|
||||||
|
self.log.push(format!("{:?} {:?} {:?} {:?}", source.name, cast.skill, target.name, amount));
|
||||||
|
},
|
||||||
|
ResolutionResult::Effect { effect, duration, immunity: _ } => {
|
||||||
|
self.log.push(format!("{:?} {:?} {:?} {:?} {:?}T", source.name, cast.skill, target.name, effect, duration));
|
||||||
|
},
|
||||||
|
ResolutionResult::Removal { effect, immunity: _ } => {
|
||||||
|
self.log.push(format!("{:?} removed {:?} {:?}", source.name, target.name, effect));
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
fn resolve_skills(&mut self) -> &mut Game {
|
fn resolve_skills(&mut self) -> &mut Game {
|
||||||
if self.phase != Phase::Resolve {
|
if self.phase != Phase::Resolve {
|
||||||
panic!("game not in Resolve phase");
|
panic!("game not in Resolve phase");
|
||||||
@ -391,6 +409,9 @@ impl Game {
|
|||||||
let mut target = self.cryp_by_id(skill.target_cryp_id.unwrap()).unwrap().clone();
|
let mut target = self.cryp_by_id(skill.target_cryp_id.unwrap()).unwrap().clone();
|
||||||
|
|
||||||
skill.set_resolution(&mut source, &mut target);
|
skill.set_resolution(&mut source, &mut target);
|
||||||
|
|
||||||
|
self.log_resolution(&source, &target, skill);
|
||||||
|
|
||||||
self.resolved.push(skill.clone());
|
self.resolved.push(skill.clone());
|
||||||
|
|
||||||
self.update_cryp(&mut source);
|
self.update_cryp(&mut source);
|
||||||
@ -1053,6 +1074,8 @@ mod tests {
|
|||||||
|
|
||||||
assert!([Phase::Skill, Phase::Finish].contains(&game.phase));
|
assert!([Phase::Skill, Phase::Finish].contains(&game.phase));
|
||||||
|
|
||||||
|
println!("{:#?}", game);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user