fix node placement and evasion

This commit is contained in:
ntr 2019-01-15 12:42:49 +11:00
parent 2d918af744
commit ade555e391
3 changed files with 11 additions and 10 deletions

View File

@ -33,6 +33,7 @@ strangle
## NOW ## NOW
* check zone completion * check zone completion
* recalc evasion rating
## SOON ## SOON
* clean up categories * clean up categories

View File

@ -538,10 +538,10 @@ impl Cryp {
let mut rng = thread_rng(); let mut rng = thread_rng();
let hp_pct = (self.hp.base * 100) / self.stamina.base; let hp_pct = (self.hp.base * 100) / self.stamina.base;
let evasion_rating = (self.evasion.base * hp_pct) / 100; let evasion_rating = (self.evasion.base * hp_pct) / 100;
// println!("{:?}", evasion_rating);
let roll = rng.gen_range(0, 100); let roll = rng.gen_range(0, 100);
println!("{:} < {:?}", roll, evasion_rating);
match roll > evasion_rating { match roll < evasion_rating {
true => Some(ResolutionResult::Evasion { true => Some(ResolutionResult::Evasion {
skill, skill,
evasion_rating: evasion_rating, evasion_rating: evasion_rating,

View File

@ -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)); let exit = gr.add_node(Encounter::new("NORMAL", x + 1, y));
gr.add_edge(next, exit, ()); gr.add_edge(next, exit, ());
return (start, x + 1, y); return (exit, x + 1, y);
}, },
Shape::Plus => { Shape::Plus => {
let top = gr.add_node(Encounter::new("MINIBOSS", x, y + 1)); 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, ()); gr.add_edge(start, exit, ());
// connect top and exit for an extra chance // connect top and exit for an extra chance
gr.add_edge(start, exit, ()); gr.add_edge(top, exit, ());
gr.add_edge(start, exit, ()); gr.add_edge(bottom, exit, ());
return (exit, x + 1, y); 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)); let bottom_tip = gr.add_node(Encounter::new("NORMAL", x + 1, y - 1));
gr.add_edge(bottom, bottom_tip, ()); 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(top_tip, side, ());
gr.add_edge(bottom_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, ()); gr.add_edge(side, exit, ());
return (exit, x + 3, y); return (exit, x + 2, y);
}, },
Shape::Diamond => { Shape::Diamond => {
let top = gr.add_node(Encounter::new("NORMAL", x + 1, y + 1)); 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)); let top_tip = gr.add_node(Encounter::new("MINIBOSS", x + 2, y + 1));
gr.add_edge(top, top_tip, ()); 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, ()); 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, ()); gr.add_edge(bottom, bottom_tip, ());
let exit = gr.add_node(Encounter::new("CASTER", x + 3, y)); let exit = gr.add_node(Encounter::new("CASTER", x + 3, y));