diff --git a/assets/levels/1.level.ron b/assets/levels/1.level.ron index 119b15c..e94e161 100644 --- a/assets/levels/1.level.ron +++ b/assets/levels/1.level.ron @@ -1,39 +1,20 @@ Level( - layers: 2, + name: "Connection", + layers: 1, terminuses: [ // left - Terminus( - point: Vec2(-240.0, 144.0), - emits: [PixieFlavor(color: 0, net: 0)], - collects: [], - ), Terminus( point: Vec2(-240.0, 48.0), emits: [PixieFlavor(color: 1, net: 0)], collects: [], ), - Terminus( - point: Vec2(-240.0, -48.0), - emits: [PixieFlavor(color: 2, net: 0)], - collects: [], - ), // right - Terminus( - point: Vec2(240.0, 144.0), - emits: [], - collects: [PixieFlavor(color: 2, net: 0)], - ), Terminus( point: Vec2(240.0, 48.0), emits: [], collects: [PixieFlavor(color: 1, net: 0)], ), - Terminus( - point: Vec2(240.0, -48.0), - emits: [], - collects: [PixieFlavor(color: 0, net: 0)], - ), ], obstacles: [], - star_thresholds: [500, 600, 675], + star_thresholds: [1, 500, 900], ) \ No newline at end of file diff --git a/assets/levels/10.level.ron b/assets/levels/10.level.ron new file mode 100644 index 0000000..3b5cb1f --- /dev/null +++ b/assets/levels/10.level.ron @@ -0,0 +1,96 @@ +Level( + name: "Jumper", + layers: 2, + terminuses: [ + // left + Terminus( + point: Vec2(-336.0, 240.0), + emits: [PixieFlavor ( color: 0, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(-336.0, 48.0), + emits: [PixieFlavor ( color: 3, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(-336.0, -144.0), + emits: [PixieFlavor ( color: 4, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(-336.0, 144.0), + emits: [PixieFlavor ( color: 1, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(-336.0, -48.0), + emits: [PixieFlavor ( color: 2, net: 0)], + collects: [], + ), + // right + Terminus( + point: Vec2(336.0, 240.0), + emits: [], + collects: [PixieFlavor ( color: 3, net: 1)], + ), + Terminus( + point: Vec2(336.0, 48.0), + emits: [], + collects: [PixieFlavor ( color: 0, net: 1)], + ), + Terminus( + point: Vec2(336.0, -144.0), + emits: [], + collects: [PixieFlavor ( color: 4, net: 1)], + ), + Terminus( + point: Vec2(336.0, 144.0), + emits: [], + collects: [PixieFlavor ( color: 2, net: 0)], + ), + Terminus( + point: Vec2(336.0, -48.0), + emits: [], + collects: [PixieFlavor ( color: 1, net: 0)], + ), + // mid left + Terminus( + point: Vec2(-96.0, 144.0), + emits: [], + collects: [PixieFlavor ( color: 4, net: 0)] + ), + Terminus( + point: Vec2(-96.0, 48.0), + emits: [], + collects: [PixieFlavor ( color: 0, net: 0)] + ), + Terminus( + point: Vec2(-96.0, -48.0), + emits: [], + collects: [PixieFlavor ( color: 3, net: 0)] + ), + // mid right + Terminus( + point: Vec2(96.0, 144.0), + emits: [PixieFlavor ( color: 4, net: 1)], + collects: [] + ), + Terminus( + point: Vec2(96.0, 48.0), + emits: [PixieFlavor ( color: 0, net: 1)], + collects: [] + ), + Terminus( + point: Vec2(96.0, -48.0), + emits: [PixieFlavor ( color: 3, net: 1)], + collects: [] + ), + ], + obstacles: [ + Rect(Vec2(-48.0, 168.0), Vec2(48.0, 120.0)), + Rect(Vec2(-48.0, 72.0), Vec2(48.0, 24.0)), + Rect(Vec2(-48.0, -72.0), Vec2(48.0, -24.0)), + ], + star_thresholds: [500, 550, 600], +) \ No newline at end of file diff --git a/assets/levels/11.level.ron b/assets/levels/11.level.ron new file mode 100644 index 0000000..48c84b6 --- /dev/null +++ b/assets/levels/11.level.ron @@ -0,0 +1,100 @@ +Level( + name: "Scatter", + layers: 2, + terminuses: [ + // tl + Terminus( + point: Vec2(-480.0, 288.0), + emits: [], + collects: [PixieFlavor ( color: 0, net: 0)] + ), + Terminus( + point: Vec2(-480.0, 192.0), + emits: [], + collects: [PixieFlavor ( color: 1, net: 0)] + ), + Terminus( + point: Vec2(-576.0, 192.0), + emits: [], + collects: [PixieFlavor ( color: 2, net: 0)] + ), + // br + Terminus( + point: Vec2(576.0, -144.0), + emits: [PixieFlavor ( color: 0, net: 0)], + collects: [] + ), + Terminus( + point: Vec2(480.0, -144.0), + emits: [PixieFlavor ( color: 2, net: 0)], + collects: [] + ), + Terminus( + point: Vec2(480.0, -240.0), + emits: [PixieFlavor ( color: 1, net: 0)], + collects: [] + ), + // bl + Terminus( + point: Vec2(-576.0, -144.0), + emits: [PixieFlavor ( color: 4, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(-480.0, -144.0), + emits: [PixieFlavor ( color: 3, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(-480.0, -240.0), + emits: [PixieFlavor ( color: 5, net: 0)], + collects: [], + ), + // tr + Terminus( + point: Vec2(480.0, 288.0), + emits: [], + collects: [PixieFlavor ( color: 3, net: 0)] + ), + Terminus( + point: Vec2(480.0, 192.0), + emits: [], + collects: [PixieFlavor ( color: 4, net: 0)] + ), + Terminus( + point: Vec2(576.0, 192.0), + emits: [], + collects: [PixieFlavor ( color: 5, net: 0)] + ), + ], + obstacles: [ + // corners + Rect(Vec2(-624, -192), Vec2(-528, -288)), + Rect(Vec2(-624, 336), Vec2(-528, 240)), + Rect(Vec2(528, 336), Vec2(624, 240)), + Rect(Vec2(528, -192), Vec2(624, -288)), + // random + Rect(Vec2(-384, -96), Vec2(-336, -48)), + Rect(Vec2(-336, -240), Vec2(-288, -192)), + Rect(Vec2(-336, 240), Vec2(-288, 288)), + Rect(Vec2(-240, -96), Vec2(-192, -48)), + Rect(Vec2(-240, 240), Vec2(-192, 288)), + Rect(Vec2(-192, -288), Vec2(-144, -240)), + Rect(Vec2(-192, -240), Vec2(-144, -192)), + Rect(Vec2(-144, 48), Vec2(-96, 96)), + Rect(Vec2(-96, -144), Vec2(-48, -96)), + Rect(Vec2(48, 144), Vec2(96, 192)), + Rect(Vec2(96, -48), Vec2(144, 0)), + Rect(Vec2(144, 240), Vec2(192, 288)), + Rect(Vec2(144, 288), Vec2(192, 336)), + Rect(Vec2(192, -240), Vec2(240, -192)), + Rect(Vec2(192, 96), Vec2(240, 144)), + Rect(Vec2(288, -240), Vec2(336, -192)), + Rect(Vec2(288, 240), Vec2(336, 288)), + Rect(Vec2(336, 96), Vec2(384, 144)), + // extra + Rect(Vec2(-624, 96), (-576, 48)), + Rect(Vec2(576, -0), (624, -48)), + ], + star_thresholds: [170, 190, 200], +) \ No newline at end of file diff --git a/assets/levels/12.level.ron b/assets/levels/12.level.ron new file mode 100644 index 0000000..5e64954 --- /dev/null +++ b/assets/levels/12.level.ron @@ -0,0 +1,143 @@ +Level( + name: "Layers 2", + layers: 3, + terminuses: [ + // tl + Terminus( + point: Vec2(-480.0, 288.0), + emits: [], + collects: [PixieFlavor ( color: 0, net: 1)] + ), + Terminus( + point: Vec2(-480.0, 192.0), + emits: [], + collects: [PixieFlavor ( color: 1, net: 1)] + ), + Terminus( + point: Vec2(-576.0, 192.0), + emits: [], + collects: [PixieFlavor ( color: 2, net: 1)] + ), + // bl + Terminus( + point: Vec2(-576.0, -144.0), + emits: [], + collects: [PixieFlavor ( color: 4, net: 1)], + ), + Terminus( + point: Vec2(-480.0, -144.0), + emits: [], + collects: [PixieFlavor ( color: 3, net: 1)], + ), + Terminus( + point: Vec2(-480.0, -240.0), + emits: [], + collects: [PixieFlavor ( color: 5, net: 1)], + ), + // tr + Terminus( + point: Vec2(480.0, 288.0), + emits: [PixieFlavor ( color: 3, net: 0)], + collects: [] + ), + Terminus( + point: Vec2(480.0, 192.0), + emits: [PixieFlavor ( color: 4, net: 0)], + collects: [] + ), + Terminus( + point: Vec2(576.0, 192.0), + emits: [PixieFlavor ( color: 5, net: 0)], + collects: [] + ), + // br + Terminus( + point: Vec2(576.0, -144.0), + emits: [PixieFlavor ( color: 0, net: 0)], + collects: [] + ), + Terminus( + point: Vec2(480.0, -144.0), + emits: [PixieFlavor ( color: 2, net: 0)], + collects: [] + ), + Terminus( + point: Vec2(480.0, -240.0), + emits: [PixieFlavor ( color: 1, net: 0)], + collects: [] + ), + // rtl + Terminus( + point: Vec2(384, -96), + emits: [], + collects: [PixieFlavor ( color: 0, net: 0)] + ), + Terminus( + point: Vec2(384, 96), + emits: [PixieFlavor ( color: 0, net: 1)], + collects: [] + ), + Terminus( + point: Vec2(240, -96), + emits: [PixieFlavor ( color: 2, net: 1)], + collects: [] + ), + Terminus( + point: Vec2(240, 96), + emits: [], + collects: [PixieFlavor ( color: 2, net: 0)] + ), + Terminus( + point: Vec2(96.0, -96.0), + emits: [], + collects: [PixieFlavor ( color: 4, net: 0)] + ), + Terminus( + point: Vec2(96, 96), + emits: [PixieFlavor ( color: 4, net: 1)], + collects: [] + ), + Terminus( + point: Vec2(-96, -96), + emits: [PixieFlavor ( color: 1, net: 1)], + collects: [] + ), + Terminus( + point: Vec2(-96.0, 96.0), + emits: [], + collects: [PixieFlavor ( color: 1, net: 0)] + ), + Terminus( + point: Vec2(-240, -96), + emits: [], + collects: [PixieFlavor ( color: 3, net: 0)] + ), + Terminus( + point: Vec2(-240, 96), + emits: [PixieFlavor ( color: 3, net: 1)], + collects: [] + ), + Terminus( + point: Vec2(-384, -96), + emits: [PixieFlavor ( color: 5, net: 1)], + collects: [] + ), + Terminus( + point: Vec2(-384, 96), + emits: [], + collects: [PixieFlavor ( color: 5, net: 0)] + ), + ], + obstacles: [ + // corners + Rect(Vec2(-624, -192), Vec2(-528, -288)), + Rect(Vec2(-624, 336), Vec2(-528, 240)), + Rect(Vec2(528, 336), Vec2(624, 240)), + Rect(Vec2(528, -192), Vec2(624, -288)), + // + Rect(Vec2(-432.0, 48.0), Vec2(-48.0, -48.0)), + Rect(Vec2(48.0, 48.0), Vec2(432.0, -48.0)) + + ], + star_thresholds: [200, 240, 280], +) \ No newline at end of file diff --git a/assets/levels/2.level.ron b/assets/levels/2.level.ron index 7e8cb8d..f542845 100644 --- a/assets/levels/2.level.ron +++ b/assets/levels/2.level.ron @@ -1,4 +1,5 @@ Level( + name: "Layers", layers: 2, terminuses: [ // left @@ -9,22 +10,24 @@ Level( ), Terminus( point: Vec2(-240.0, -48.0), - emits: [PixieFlavor(color: 1, net: 0)], + emits: [PixieFlavor(color: 2, net: 0)], collects: [], ), // right Terminus( - point: Vec2(240.0, 48.0), + point: Vec2(240.0, 144.0), emits: [], - collects: [PixieFlavor(color: 0, net: 0),PixieFlavor(color: 1, net: 0)], + collects: [PixieFlavor(color: 2, net: 0)], + ), + Terminus( + point: Vec2(240.0, -48.0), + emits: [], + collects: [PixieFlavor(color: 0, net: 0)], ), ], obstacles: [ - Rect(Vec2(96.0, 0.0), Vec2(144.0, -96.0)), - Rect(Vec2(144.0, -48.0), Vec2(336.0, -96.0)), - Rect(Vec2(336.0, 192.0), Vec2(384.0, -96.0)), - Rect(Vec2(144.0, 192.0), Vec2(336.0, 144.0)), - Rect(Vec2(96.0, 192.0), Vec2(144.0, 96.0)) + Rect((288.0, 336.0), (624.0, -288.0)), + Rect((-624.0, 336.0), (-288.0, -288.0)), ], - star_thresholds: [1, 350, 520], + star_thresholds: [1, 500, 700], ) \ No newline at end of file diff --git a/assets/levels/3.level.ron b/assets/levels/3.level.ron index ce8b111..1aee20a 100644 --- a/assets/levels/3.level.ron +++ b/assets/levels/3.level.ron @@ -1,85 +1,41 @@ Level( - layers: 2, + name: "Traffic", + layers: 1, terminuses: [ - // inside + // left Terminus( - point: Vec2(-96.0, 144.0), - emits: [PixieFlavor(color: 0, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(-96.0, 48.0), - emits: [PixieFlavor(color: 3, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(-96.0, -48.0), - emits: [PixieFlavor(color: 2, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(-0.0, -48.0), + point: Vec2(-96.0, -144.0), emits: [PixieFlavor(color: 1, net: 0)], collects: [], ), Terminus( - point: Vec2(96.0, -48.0), - emits: [PixieFlavor(color: 4, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(96.0, 48.0), - emits: [PixieFlavor(color: 1, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(96.0, 144.0), - emits: [PixieFlavor(color: 5, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(-0.0, 144.0), - emits: [PixieFlavor(color: 3, net: 0)], - collects: [], - ), - // outside left - Terminus( - point: Vec2(-480.0, 144.0), + point: Vec2(-192.0, 144.0), + collects: [PixieFlavor(color: 1, net: 0)], emits: [], - collects: [PixieFlavor(color: 4, net: 0)], ), Terminus( - point: Vec2(-480.0, 48.0), - emits: [], + point: Vec2(0.0, 144.0), collects: [PixieFlavor(color: 1, net: 0)], - ), - Terminus( - point: Vec2(-480.0, -48.0), emits: [], - collects: [PixieFlavor(color: 5, net: 0)], ), - // outside right + // right Terminus( - point: Vec2(480.0, 144.0), - emits: [], - collects: [PixieFlavor(color: 2, net: 0)], + point: Vec2(192.0, -144.0), + emits: [PixieFlavor(color: 0, net: 0)], + collects: [], ), Terminus( - point: Vec2(480.0, 48.0), - emits: [], - collects: [PixieFlavor(color: 3, net: 0)], + point: Vec2(0.0, -144.0), + emits: [PixieFlavor(color: 0, net: 0)], + collects: [], ), Terminus( - point: Vec2(480.0, -48.0), + point: Vec2(96.0, 144.0), emits: [], collects: [PixieFlavor(color: 0, net: 0)], ), - ], obstacles: [ - Rect(Vec2(-48.0, 96.0), Vec2(48.0, 0.0)), - Rect(Vec2(-672.0, 192.0),Vec2(-528.0, -96.0)), - Rect(Vec2(528.0, 192.0), Vec2(672.0, -96.0)) ], - star_thresholds: [350, 400, 450], + star_thresholds: [1, 1000, 1250], ) \ No newline at end of file diff --git a/assets/levels/4.level.ron b/assets/levels/4.level.ron index 91456b4..ca5acb2 100644 --- a/assets/levels/4.level.ron +++ b/assets/levels/4.level.ron @@ -1,105 +1,40 @@ Level( + name: "Crossings", layers: 2, terminuses: [ + // left Terminus( - point: Vec2(-576.0, -192.0), + point: Vec2(-240.0, 144.0), emits: [PixieFlavor(color: 0, net: 0)], collects: [], ), Terminus( - point: Vec2(-576.0, -96.0), - emits: [PixieFlavor(color: 5, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(-576.0, 0.0), - emits: [PixieFlavor(color: 2, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(-576.0, 96.0), - emits: [PixieFlavor(color: 3, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(-576.0, 192.0), - emits: [PixieFlavor(color: 5, net: 0)], - collects: [], - ), - Terminus( - point: Vec2(-576.0, 288.0), - emits: [PixieFlavor(color: 4, net: 0)], - collects: [], - ), - // top - Terminus( - point: Vec2(-192.0, 336.0), + point: Vec2(-240.0, 48.0), emits: [PixieFlavor(color: 1, net: 0)], collects: [], ), Terminus( - point: Vec2(0.0, 336.0), + point: Vec2(-240.0, -48.0), emits: [PixieFlavor(color: 2, net: 0)], collects: [], ), + // right Terminus( - point: Vec2(192.0, 336.0), - emits: [PixieFlavor(color: 1, net: 0)], - collects: [], - ), - // bottom - Terminus( - point: Vec2(-192.0, -240.0), + point: Vec2(240.0, 144.0), emits: [], collects: [PixieFlavor(color: 2, net: 0)], ), Terminus( - point: Vec2(0.0, -240.0), - emits: [], - collects: [PixieFlavor(color: 0, net: 0)], - ), - Terminus( - point: Vec2(192.0, -240.0), + point: Vec2(240.0, 48.0), emits: [], collects: [PixieFlavor(color: 1, net: 0)], ), - // right - Terminus( - point: Vec2(576.0, -192.0), - emits: [], - collects: [PixieFlavor(color: 3, net: 0)], - ), - Terminus( - point: Vec2(576.0, -96.0), - emits: [], - collects: [PixieFlavor(color: 4, net: 0)], - ), Terminus( - point: Vec2(576.0, 0.0), - emits: [], - collects: [PixieFlavor(color: 3, net: 0)], - ), - Terminus( - point: Vec2(576.0, 96.0), + point: Vec2(240.0, -48.0), emits: [], collects: [PixieFlavor(color: 0, net: 0)], ), - Terminus( - point: Vec2(576.0, 192.0), - emits: [], - collects: [PixieFlavor(color: 4, net: 0)], - ), - Terminus( - point: Vec2(576.0, 288.0), - emits: [], - collects: [PixieFlavor(color: 5, net: 0)], - ) - ], - obstacles: [ - Rect(Vec2(-336.0, 240.0), Vec2(-288.0, 96.0)), - Rect(Vec2(-288.0, 240.0), Vec2(-192.0, 192.0)), - Rect(Vec2(288.0, 0.0), Vec2(336.0, -144.0)), - Rect(Vec2(192.0, -96.0), Vec2(288.0, -144.0)) ], - star_thresholds: [130, 160, 190], + obstacles: [], + star_thresholds: [500, 600, 675], ) \ No newline at end of file diff --git a/assets/levels/5.level.ron b/assets/levels/5.level.ron index 8f65e89..c945d06 100644 --- a/assets/levels/5.level.ron +++ b/assets/levels/5.level.ron @@ -1,4 +1,5 @@ Level( + name: "Delay Line", layers: 2, terminuses: [ // left @@ -7,21 +8,16 @@ Level( emits: [PixieFlavor(color: 0, net: 0)], collects: [], ), - Terminus( - point: Vec2(-240.0, 48.0), - emits: [PixieFlavor(color: 1, net: 0)], - collects: [], - ), Terminus( point: Vec2(-240.0, -48.0), - emits: [PixieFlavor(color: 2, net: 0)], + emits: [PixieFlavor(color: 1, net: 0)], collects: [], ), // right Terminus( point: Vec2(240.0, 48.0), emits: [], - collects: [PixieFlavor(color: 0, net: 0),PixieFlavor(color: 1, net: 0),PixieFlavor(color: 2, net: 0)], + collects: [PixieFlavor(color: 0, net: 0),PixieFlavor(color: 1, net: 0)], ), ], obstacles: [ @@ -31,5 +27,5 @@ Level( Rect(Vec2(144.0, 192.0), Vec2(336.0, 144.0)), Rect(Vec2(96.0, 192.0), Vec2(144.0, 96.0)) ], - star_thresholds: [1, 250, 550], + star_thresholds: [1, 350, 520], ) \ No newline at end of file diff --git a/assets/levels/6.level.ron b/assets/levels/6.level.ron index 5219ab6..bc05887 100644 --- a/assets/levels/6.level.ron +++ b/assets/levels/6.level.ron @@ -1,71 +1,86 @@ Level( + name: "Symmetry", layers: 2, terminuses: [ - // left + // inside Terminus( - point: Vec2(-576.0, 96.0), - emits: [PixieFlavor(color: 3, net: 0)], + point: Vec2(-96.0, 144.0), + emits: [PixieFlavor(color: 0, net: 0)], collects: [], ), Terminus( - point: Vec2(-480.0, 96.0), - emits: [PixieFlavor(color: 4, net: 0)], + point: Vec2(-96.0, 48.0), + emits: [PixieFlavor(color: 3, net: 0)], collects: [], ), Terminus( - point: Vec2(-384.0, 96.0), + point: Vec2(-96.0, -48.0), emits: [PixieFlavor(color: 2, net: 0)], collects: [], ), Terminus( - point: Vec2(-288.0, 96.0), - emits: [PixieFlavor(color: 0, net: 0)], + point: Vec2(-0.0, -48.0), + emits: [PixieFlavor(color: 1, net: 0)], collects: [], ), Terminus( - point: Vec2(-192.0, 96.0), + point: Vec2(96.0, -48.0), + emits: [PixieFlavor(color: 4, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(96.0, 48.0), emits: [PixieFlavor(color: 1, net: 0)], collects: [], ), - // right Terminus( - point: Vec2(576.0, -0.0), - emits: [], - collects: [PixieFlavor(color: 2, net: 0)], + point: Vec2(96.0, 144.0), + emits: [PixieFlavor(color: 5, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(-0.0, 144.0), + emits: [PixieFlavor(color: 3, net: 0)], + collects: [], ), + // outside left Terminus( - point: Vec2(480.0, 0.0), + point: Vec2(-480.0, 144.0), emits: [], - collects: [PixieFlavor(color: 3, net: 0)], + collects: [PixieFlavor(color: 4, net: 0)], ), Terminus( - point: Vec2(384.0, -0.0), + point: Vec2(-480.0, 48.0), emits: [], collects: [PixieFlavor(color: 1, net: 0)], ), Terminus( - point: Vec2(288.0, 0.0), + point: Vec2(-480.0, -48.0), emits: [], - collects: [PixieFlavor(color: 0, net: 0)], + collects: [PixieFlavor(color: 5, net: 0)], ), + // outside right Terminus( - point: Vec2(192.0, -0.0), + point: Vec2(480.0, 144.0), emits: [], - collects: [PixieFlavor(color: 4, net: 0)], + collects: [PixieFlavor(color: 2, net: 0)], + ), + Terminus( + point: Vec2(480.0, 48.0), + emits: [], + collects: [PixieFlavor(color: 3, net: 0)], + ), + Terminus( + point: Vec2(480.0, -48.0), + emits: [], + collects: [PixieFlavor(color: 0, net: 0)], ), + ], obstacles: [ - Rect(Vec2(-624.0, 48.0), Vec2(-144.0, -288.0)), - Rect(Vec2(144.0, 48.0), Vec2(624.0, 336.0)), - // blockers - Rect(Vec2(-536, 48), Vec2(-520, 104)), - Rect(Vec2(-440, 48), Vec2(-426, 104)), - Rect(Vec2(-344, 48), Vec2(-328, 104)), - Rect(Vec2(-248, 48), Vec2(-232, 104)), - Rect(Vec2(536, 48), Vec2(520, -8)), - Rect(Vec2(440, 48), Vec2(424, -8)), - Rect(Vec2(344, 48), Vec2(328, -8)), - Rect(Vec2(248, 48), Vec2(232, -8)), + Rect(Vec2(-48.0, 96.0), Vec2(48.0, 0.0)), + Rect(Vec2(-672.0, 192.0),Vec2(-528.0, -96.0)), + Rect(Vec2(528.0, 192.0), Vec2(672.0, -96.0)) ], - star_thresholds: [190, 220, 250], + star_thresholds: [350, 400, 450], ) \ No newline at end of file diff --git a/assets/levels/7.level.ron b/assets/levels/7.level.ron index 8db8be6..6ac0f54 100644 --- a/assets/levels/7.level.ron +++ b/assets/levels/7.level.ron @@ -1,95 +1,106 @@ Level( + name: "Converge/Diverge", layers: 2, terminuses: [ - // left Terminus( - point: Vec2(-336.0, 240.0), - emits: [PixieFlavor ( color: 0, net: 0)], + point: Vec2(-576.0, -192.0), + emits: [PixieFlavor(color: 0, net: 0)], collects: [], ), Terminus( - point: Vec2(-336.0, 48.0), - emits: [PixieFlavor ( color: 3, net: 0)], + point: Vec2(-576.0, -96.0), + emits: [PixieFlavor(color: 5, net: 0)], collects: [], ), Terminus( - point: Vec2(-336.0, -144.0), - emits: [PixieFlavor ( color: 4, net: 0)], + point: Vec2(-576.0, 0.0), + emits: [PixieFlavor(color: 2, net: 0)], collects: [], ), Terminus( - point: Vec2(-336.0, 144.0), - emits: [PixieFlavor ( color: 1, net: 0)], + point: Vec2(-576.0, 96.0), + emits: [PixieFlavor(color: 3, net: 0)], collects: [], ), Terminus( - point: Vec2(-336.0, -48.0), - emits: [PixieFlavor ( color: 2, net: 0)], + point: Vec2(-576.0, 192.0), + emits: [PixieFlavor(color: 5, net: 0)], collects: [], ), - // right Terminus( - point: Vec2(336.0, 240.0), - emits: [], - collects: [PixieFlavor ( color: 3, net: 1)], + point: Vec2(-576.0, 288.0), + emits: [PixieFlavor(color: 4, net: 0)], + collects: [], ), + // top Terminus( - point: Vec2(336.0, 48.0), - emits: [], - collects: [PixieFlavor ( color: 0, net: 1)], + point: Vec2(-192.0, 336.0), + emits: [PixieFlavor(color: 1, net: 0)], + collects: [], ), Terminus( - point: Vec2(336.0, -144.0), - emits: [], - collects: [PixieFlavor ( color: 4, net: 1)], + point: Vec2(0.0, 336.0), + emits: [PixieFlavor(color: 2, net: 0)], + collects: [], + ), + Terminus( + point: Vec2(192.0, 336.0), + emits: [PixieFlavor(color: 1, net: 0)], + collects: [], ), + // bottom Terminus( - point: Vec2(336.0, 144.0), + point: Vec2(-192.0, -240.0), emits: [], - collects: [PixieFlavor ( color: 2, net: 0)], + collects: [PixieFlavor(color: 2, net: 0)], ), Terminus( - point: Vec2(336.0, -48.0), + point: Vec2(0.0, -240.0), emits: [], - collects: [PixieFlavor ( color: 1, net: 0)], + collects: [PixieFlavor(color: 0, net: 0)], ), - // mid left Terminus( - point: Vec2(-96.0, 144.0), + point: Vec2(192.0, -240.0), emits: [], - collects: [PixieFlavor ( color: 4, net: 0)] + collects: [PixieFlavor(color: 1, net: 0)], ), + // right Terminus( - point: Vec2(-96.0, 48.0), + point: Vec2(576.0, -192.0), emits: [], - collects: [PixieFlavor ( color: 0, net: 0)] + collects: [PixieFlavor(color: 3, net: 0)], ), Terminus( - point: Vec2(-96.0, -48.0), + point: Vec2(576.0, -96.0), emits: [], - collects: [PixieFlavor ( color: 3, net: 0)] + collects: [PixieFlavor(color: 4, net: 0)], ), - // mid right Terminus( - point: Vec2(96.0, 144.0), - emits: [PixieFlavor ( color: 4, net: 1)], - collects: [] + point: Vec2(576.0, 0.0), + emits: [], + collects: [PixieFlavor(color: 3, net: 0)], ), Terminus( - point: Vec2(96.0, 48.0), - emits: [PixieFlavor ( color: 0, net: 1)], - collects: [] + point: Vec2(576.0, 96.0), + emits: [], + collects: [PixieFlavor(color: 0, net: 0)], ), Terminus( - point: Vec2(96.0, -48.0), - emits: [PixieFlavor ( color: 3, net: 1)], - collects: [] + point: Vec2(576.0, 192.0), + emits: [], + collects: [PixieFlavor(color: 4, net: 0)], ), + Terminus( + point: Vec2(576.0, 288.0), + emits: [], + collects: [PixieFlavor(color: 5, net: 0)], + ) ], obstacles: [ - Rect(Vec2(-48.0, 168.0), Vec2(48.0, 120.0)), - Rect(Vec2(-48.0, 72.0), Vec2(48.0, 24.0)), - Rect(Vec2(-48.0, -72.0), Vec2(48.0, -24.0)), + Rect(Vec2(-336.0, 240.0), Vec2(-288.0, 96.0)), + Rect(Vec2(-288.0, 240.0), Vec2(-192.0, 192.0)), + Rect(Vec2(288.0, 0.0), Vec2(336.0, -144.0)), + Rect(Vec2(192.0, -96.0), Vec2(288.0, -144.0)) ], - star_thresholds: [500, 550, 600], + star_thresholds: [130, 160, 190], ) \ No newline at end of file diff --git a/assets/levels/8.level.ron b/assets/levels/8.level.ron index 2884b4f..7916111 100644 --- a/assets/levels/8.level.ron +++ b/assets/levels/8.level.ron @@ -1,99 +1,36 @@ Level( + name: "Delay Line 2", layers: 2, terminuses: [ - // tl + // left Terminus( - point: Vec2(-480.0, 288.0), - emits: [], - collects: [PixieFlavor ( color: 0, net: 0)] - ), - Terminus( - point: Vec2(-480.0, 192.0), - emits: [], - collects: [PixieFlavor ( color: 1, net: 0)] - ), - Terminus( - point: Vec2(-576.0, 192.0), - emits: [], - collects: [PixieFlavor ( color: 2, net: 0)] - ), - // br - Terminus( - point: Vec2(576.0, -144.0), - emits: [PixieFlavor ( color: 0, net: 0)], - collects: [] - ), - Terminus( - point: Vec2(480.0, -144.0), - emits: [PixieFlavor ( color: 2, net: 0)], - collects: [] - ), - Terminus( - point: Vec2(480.0, -240.0), - emits: [PixieFlavor ( color: 1, net: 0)], - collects: [] - ), - // bl - Terminus( - point: Vec2(-576.0, -144.0), - emits: [PixieFlavor ( color: 4, net: 0)], + point: Vec2(-240.0, 144.0), + emits: [PixieFlavor(color: 0, net: 0)], collects: [], ), Terminus( - point: Vec2(-480.0, -144.0), - emits: [PixieFlavor ( color: 3, net: 0)], + point: Vec2(-240.0, 48.0), + emits: [PixieFlavor(color: 1, net: 0)], collects: [], ), Terminus( - point: Vec2(-480.0, -240.0), - emits: [PixieFlavor ( color: 5, net: 0)], + point: Vec2(-240.0, -48.0), + emits: [PixieFlavor(color: 2, net: 0)], collects: [], ), - // tr - Terminus( - point: Vec2(480.0, 288.0), - emits: [], - collects: [PixieFlavor ( color: 3, net: 0)] - ), - Terminus( - point: Vec2(480.0, 192.0), - emits: [], - collects: [PixieFlavor ( color: 4, net: 0)] - ), + // right Terminus( - point: Vec2(576.0, 192.0), + point: Vec2(240.0, 48.0), emits: [], - collects: [PixieFlavor ( color: 5, net: 0)] + collects: [PixieFlavor(color: 0, net: 0),PixieFlavor(color: 1, net: 0),PixieFlavor(color: 2, net: 0)], ), ], obstacles: [ - // corners - Rect(Vec2(-624, -192), Vec2(-528, -288)), - Rect(Vec2(-624, 336), Vec2(-528, 240)), - Rect(Vec2(528, 336), Vec2(624, 240)), - Rect(Vec2(528, -192), Vec2(624, -288)), - // random - Rect(Vec2(-384, -96), Vec2(-336, -48)), - Rect(Vec2(-336, -240), Vec2(-288, -192)), - Rect(Vec2(-336, 240), Vec2(-288, 288)), - Rect(Vec2(-240, -96), Vec2(-192, -48)), - Rect(Vec2(-240, 240), Vec2(-192, 288)), - Rect(Vec2(-192, -288), Vec2(-144, -240)), - Rect(Vec2(-192, -240), Vec2(-144, -192)), - Rect(Vec2(-144, 48), Vec2(-96, 96)), - Rect(Vec2(-96, -144), Vec2(-48, -96)), - Rect(Vec2(48, 144), Vec2(96, 192)), - Rect(Vec2(96, -48), Vec2(144, 0)), - Rect(Vec2(144, 240), Vec2(192, 288)), - Rect(Vec2(144, 288), Vec2(192, 336)), - Rect(Vec2(192, -240), Vec2(240, -192)), - Rect(Vec2(192, 96), Vec2(240, 144)), - Rect(Vec2(288, -240), Vec2(336, -192)), - Rect(Vec2(288, 240), Vec2(336, 288)), - Rect(Vec2(336, 96), Vec2(384, 144)), - // extra - Rect(Vec2(-624, 96), (-576, 48)), - Rect(Vec2(576, -0), (624, -48)), + Rect(Vec2(96.0, 0.0), Vec2(144.0, -96.0)), + Rect(Vec2(144.0, -48.0), Vec2(336.0, -96.0)), + Rect(Vec2(336.0, 192.0), Vec2(384.0, -96.0)), + Rect(Vec2(144.0, 192.0), Vec2(336.0, 144.0)), + Rect(Vec2(96.0, 192.0), Vec2(144.0, 96.0)) ], - star_thresholds: [170, 190, 200], + star_thresholds: [1, 250, 550], ) \ No newline at end of file diff --git a/assets/levels/9.level.ron b/assets/levels/9.level.ron index 70e842f..32e500a 100644 --- a/assets/levels/9.level.ron +++ b/assets/levels/9.level.ron @@ -1,142 +1,72 @@ Level( - layers: 3, + name: "Wave-like", + layers: 2, terminuses: [ - // tl + // left Terminus( - point: Vec2(-480.0, 288.0), - emits: [], - collects: [PixieFlavor ( color: 0, net: 1)] + point: Vec2(-576.0, 96.0), + emits: [PixieFlavor(color: 3, net: 0)], + collects: [], ), Terminus( - point: Vec2(-480.0, 192.0), - emits: [], - collects: [PixieFlavor ( color: 1, net: 1)] + point: Vec2(-480.0, 96.0), + emits: [PixieFlavor(color: 4, net: 0)], + collects: [], ), Terminus( - point: Vec2(-576.0, 192.0), - emits: [], - collects: [PixieFlavor ( color: 2, net: 1)] + point: Vec2(-384.0, 96.0), + emits: [PixieFlavor(color: 2, net: 0)], + collects: [], ), - // bl Terminus( - point: Vec2(-576.0, -144.0), - emits: [], - collects: [PixieFlavor ( color: 4, net: 1)], + point: Vec2(-288.0, 96.0), + emits: [PixieFlavor(color: 0, net: 0)], + collects: [], ), Terminus( - point: Vec2(-480.0, -144.0), - emits: [], - collects: [PixieFlavor ( color: 3, net: 1)], + point: Vec2(-192.0, 96.0), + emits: [PixieFlavor(color: 1, net: 0)], + collects: [], ), + // right Terminus( - point: Vec2(-480.0, -240.0), + point: Vec2(576.0, -0.0), emits: [], - collects: [PixieFlavor ( color: 5, net: 1)], - ), - // tr - Terminus( - point: Vec2(480.0, 288.0), - emits: [PixieFlavor ( color: 3, net: 0)], - collects: [] - ), - Terminus( - point: Vec2(480.0, 192.0), - emits: [PixieFlavor ( color: 4, net: 0)], - collects: [] + collects: [PixieFlavor(color: 2, net: 0)], ), Terminus( - point: Vec2(576.0, 192.0), - emits: [PixieFlavor ( color: 5, net: 0)], - collects: [] - ), - // br - Terminus( - point: Vec2(576.0, -144.0), - emits: [PixieFlavor ( color: 0, net: 0)], - collects: [] - ), - Terminus( - point: Vec2(480.0, -144.0), - emits: [PixieFlavor ( color: 2, net: 0)], - collects: [] - ), - Terminus( - point: Vec2(480.0, -240.0), - emits: [PixieFlavor ( color: 1, net: 0)], - collects: [] - ), - // rtl - Terminus( - point: Vec2(384, -96), + point: Vec2(480.0, 0.0), emits: [], - collects: [PixieFlavor ( color: 0, net: 0)] + collects: [PixieFlavor(color: 3, net: 0)], ), Terminus( - point: Vec2(384, 96), - emits: [PixieFlavor ( color: 0, net: 1)], - collects: [] - ), - Terminus( - point: Vec2(240, -96), - emits: [PixieFlavor ( color: 2, net: 1)], - collects: [] - ), - Terminus( - point: Vec2(240, 96), + point: Vec2(384.0, -0.0), emits: [], - collects: [PixieFlavor ( color: 2, net: 0)] + collects: [PixieFlavor(color: 1, net: 0)], ), Terminus( - point: Vec2(96.0, -96.0), + point: Vec2(288.0, 0.0), emits: [], - collects: [PixieFlavor ( color: 4, net: 0)] - ), - Terminus( - point: Vec2(96, 96), - emits: [PixieFlavor ( color: 4, net: 1)], - collects: [] - ), - Terminus( - point: Vec2(-96, -96), - emits: [PixieFlavor ( color: 1, net: 1)], - collects: [] - ), - Terminus( - point: Vec2(-96.0, 96.0), - emits: [], - collects: [PixieFlavor ( color: 1, net: 0)] - ), - Terminus( - point: Vec2(-240, -96), - emits: [], - collects: [PixieFlavor ( color: 3, net: 0)] - ), - Terminus( - point: Vec2(-240, 96), - emits: [PixieFlavor ( color: 3, net: 1)], - collects: [] - ), - Terminus( - point: Vec2(-384, -96), - emits: [PixieFlavor ( color: 5, net: 1)], - collects: [] + collects: [PixieFlavor(color: 0, net: 0)], ), Terminus( - point: Vec2(-384, 96), + point: Vec2(192.0, -0.0), emits: [], - collects: [PixieFlavor ( color: 5, net: 0)] + collects: [PixieFlavor(color: 4, net: 0)], ), ], obstacles: [ - // corners - Rect(Vec2(-624, -192), Vec2(-528, -288)), - Rect(Vec2(-624, 336), Vec2(-528, 240)), - Rect(Vec2(528, 336), Vec2(624, 240)), - Rect(Vec2(528, -192), Vec2(624, -288)), - // - Rect(Vec2(-432.0, 48.0), Vec2(-48.0, -48.0)), - Rect(Vec2(48.0, 48.0), Vec2(432.0, -48.0)) - + Rect(Vec2(-624.0, 48.0), Vec2(-144.0, -288.0)), + Rect(Vec2(144.0, 48.0), Vec2(624.0, 336.0)), + // blockers + Rect(Vec2(-536, 48), Vec2(-520, 104)), + Rect(Vec2(-440, 48), Vec2(-426, 104)), + Rect(Vec2(-344, 48), Vec2(-328, 104)), + Rect(Vec2(-248, 48), Vec2(-232, 104)), + Rect(Vec2(536, 48), Vec2(520, -8)), + Rect(Vec2(440, 48), Vec2(424, -8)), + Rect(Vec2(344, 48), Vec2(328, -8)), + Rect(Vec2(248, 48), Vec2(232, -8)), ], - star_thresholds: [200, 240, 280], + star_thresholds: [190, 220, 250], ) \ No newline at end of file diff --git a/src/level.rs b/src/level.rs index 2c972af..75eb164 100644 --- a/src/level.rs +++ b/src/level.rs @@ -4,6 +4,8 @@ use serde::Deserialize; #[derive(Deserialize, Debug, Asset, TypePath)] pub struct Level { + #[allow(unused)] + pub name: String, pub layers: u32, pub terminuses: Vec<Terminus>, pub obstacles: Vec<Obstacle>, diff --git a/src/loading.rs b/src/loading.rs index 72d4a75..7a71003 100644 --- a/src/loading.rs +++ b/src/loading.rs @@ -4,7 +4,7 @@ use bevy_simple_prefs::PrefsStatus; pub struct LoadingPlugin; -pub const NUM_LEVELS: u32 = 9; +pub const NUM_LEVELS: u32 = 12; impl Plugin for LoadingPlugin { fn build(&self, app: &mut App) {