From ade555e391633b30f4c3aac43bf7374c691bc716 Mon Sep 17 00:00:00 2001 From: ntr Date: Tue, 15 Jan 2019 12:42:49 +1100 Subject: [PATCH] fix node placement and evasion --- server/WORKLOG.md | 1 + server/src/cryp.rs | 4 ++-- server/src/zone.rs | 16 ++++++++-------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/server/WORKLOG.md b/server/WORKLOG.md index 09ffd399..8ffbb3e4 100644 --- a/server/WORKLOG.md +++ b/server/WORKLOG.md @@ -33,6 +33,7 @@ strangle ## NOW * check zone completion +* recalc evasion rating ## SOON * clean up categories diff --git a/server/src/cryp.rs b/server/src/cryp.rs index b710983a..805ba71c 100644 --- a/server/src/cryp.rs +++ b/server/src/cryp.rs @@ -538,10 +538,10 @@ impl Cryp { let mut rng = thread_rng(); let hp_pct = (self.hp.base * 100) / self.stamina.base; let evasion_rating = (self.evasion.base * hp_pct) / 100; - // println!("{:?}", evasion_rating); let roll = rng.gen_range(0, 100); + println!("{:} < {:?}", roll, evasion_rating); - match roll > evasion_rating { + match roll < evasion_rating { true => Some(ResolutionResult::Evasion { skill, evasion_rating: evasion_rating, diff --git a/server/src/zone.rs b/server/src/zone.rs index 26d3529e..6633a83f 100644 --- a/server/src/zone.rs +++ b/server/src/zone.rs @@ -210,7 +210,7 @@ fn add_shape(shape: Shape, gr: &mut ZoneGraph, start: NodeIndex, x: i8, y: i8) - let exit = gr.add_node(Encounter::new("NORMAL", x + 1, y)); gr.add_edge(next, exit, ()); - return (start, x + 1, y); + return (exit, x + 1, y); }, Shape::Plus => { let top = gr.add_node(Encounter::new("MINIBOSS", x, y + 1)); @@ -235,8 +235,8 @@ fn add_shape(shape: Shape, gr: &mut ZoneGraph, start: NodeIndex, x: i8, y: i8) - gr.add_edge(start, exit, ()); // connect top and exit for an extra chance - gr.add_edge(start, exit, ()); - gr.add_edge(start, exit, ()); + gr.add_edge(top, exit, ()); + gr.add_edge(bottom, exit, ()); return (exit, x + 1, y); }, @@ -276,14 +276,14 @@ fn add_shape(shape: Shape, gr: &mut ZoneGraph, start: NodeIndex, x: i8, y: i8) - let bottom_tip = gr.add_node(Encounter::new("NORMAL", x + 1, y - 1)); gr.add_edge(bottom, bottom_tip, ()); - let side = gr.add_node(Encounter::new("CASTER", x + 2, y)); + let side = gr.add_node(Encounter::new("CASTER", x + 1, y)); gr.add_edge(top_tip, side, ()); gr.add_edge(bottom_tip, side, ()); - let exit = gr.add_node(Encounter::new("NORMAL", x + 3, y)); + let exit = gr.add_node(Encounter::new("NORMAL", x + 2, y)); gr.add_edge(side, exit, ()); - return (exit, x + 3, y); + return (exit, x + 2, y); }, Shape::Diamond => { let top = gr.add_node(Encounter::new("NORMAL", x + 1, y + 1)); @@ -292,10 +292,10 @@ fn add_shape(shape: Shape, gr: &mut ZoneGraph, start: NodeIndex, x: i8, y: i8) - let top_tip = gr.add_node(Encounter::new("MINIBOSS", x + 2, y + 1)); gr.add_edge(top, top_tip, ()); - let bottom = gr.add_node(Encounter::new("NORMAL", x + 1, y - 1)); + let bottom = gr.add_node(Encounter::new("MINIBOSS", x + 1, y - 1)); gr.add_edge(start, bottom, ()); - let bottom_tip = gr.add_node(Encounter::new("MINIBOSS", x + 2, y - 1)); + let bottom_tip = gr.add_node(Encounter::new("NORMAL", x + 2, y - 1)); gr.add_edge(bottom, bottom_tip, ()); let exit = gr.add_node(Encounter::new("CASTER", x + 3, y));