diff --git a/server/WORKLOG.md b/server/WORKLOG.md index ad812a5f..9653f987 100644 --- a/server/WORKLOG.md +++ b/server/WORKLOG.md @@ -22,7 +22,7 @@ ensure all skills impl Skill::Slay -> red attack with bonus somethingorother for blue / maim no healing Hatred -> damage received converted into bonus dmg -change inversion to several events +siphon test make parry semi-aggressive constants diff --git a/server/src/game.rs b/server/src/game.rs index 3c7475b1..27784734 100644 --- a/server/src/game.rs +++ b/server/src/game.rs @@ -520,6 +520,10 @@ impl Game { self.log.push(format!("[{:}] {:} {:?} {:} INVERTED", speed, source.name, skill, target.name)), + Event::Reflection { skill } => + self.log.push(format!("[{:}] {:} {:?} {:} REFLECTED", + speed, source.name, skill, target.name)), + Event::Effect { skill, effect, duration } => self.log.push(format!("[{:}] {:} {:?} {:} {:?} {:}T", speed, source.name, skill, target.name, effect, duration)), diff --git a/server/src/skill.rs b/server/src/skill.rs index bc4977c8..eef09f13 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -78,6 +78,7 @@ pub enum Event { Healing { skill: Skill, amount: u64, overhealing: u64 }, Recharge { skill: Skill, red: u64, blue: u64 }, Inversion { skill: Skill }, + Reflection { skill: Skill }, Effect { skill: Skill, effect: Effect, duration: u8 }, Removal { effect: Effect }, Evasion { skill: Skill, evasion_rating: u64 }, @@ -630,6 +631,7 @@ impl Skill { if source.affected(Effect::Reflect) { return results; } + results.push(Resolution::new(source, target).event(Event::Reflection { skill: *self })); return self.resolve(target, source); }