diff options
author | Joris | 2016-10-03 20:26:30 +0200 |
---|---|---|
committer | Joris | 2016-10-03 20:26:30 +0200 |
commit | 2379e2da3de6d0c49f3c2fbdeae4df00b526d586 (patch) | |
tree | 1b89355ada3435b1e08897f0ebd7e0e01df185a8 | |
parent | 2a11b28d2ee636eb730dbb5767104aeac9936afa (diff) |
Update client.js
-rw-r--r-- | public/client.js | 1502 |
1 files changed, 1279 insertions, 223 deletions
diff --git a/public/client.js b/public/client.js index 20e57c8..c73a582 100644 --- a/public/client.js +++ b/public/client.js @@ -2731,6 +2731,172 @@ var _elm_lang$core$Char$isHexDigit = function ($char) { $char)); }; +var _elm_lang$core$Color$fmod = F2( + function (f, n) { + var integer = _elm_lang$core$Basics$floor(f); + return (_elm_lang$core$Basics$toFloat( + A2(_elm_lang$core$Basics_ops['%'], integer, n)) + f) - _elm_lang$core$Basics$toFloat(integer); + }); +var _elm_lang$core$Color$rgbToHsl = F3( + function (red, green, blue) { + var b = _elm_lang$core$Basics$toFloat(blue) / 255; + var g = _elm_lang$core$Basics$toFloat(green) / 255; + var r = _elm_lang$core$Basics$toFloat(red) / 255; + var cMax = A2( + _elm_lang$core$Basics$max, + A2(_elm_lang$core$Basics$max, r, g), + b); + var cMin = A2( + _elm_lang$core$Basics$min, + A2(_elm_lang$core$Basics$min, r, g), + b); + var c = cMax - cMin; + var lightness = (cMax + cMin) / 2; + var saturation = _elm_lang$core$Native_Utils.eq(lightness, 0) ? 0 : (c / (1 - _elm_lang$core$Basics$abs((2 * lightness) - 1))); + var hue = _elm_lang$core$Basics$degrees(60) * (_elm_lang$core$Native_Utils.eq(cMax, r) ? A2(_elm_lang$core$Color$fmod, (g - b) / c, 6) : (_elm_lang$core$Native_Utils.eq(cMax, g) ? (((b - r) / c) + 2) : (((r - g) / c) + 4))); + return {ctor: '_Tuple3', _0: hue, _1: saturation, _2: lightness}; + }); +var _elm_lang$core$Color$hslToRgb = F3( + function (hue, saturation, lightness) { + var hue$ = hue / _elm_lang$core$Basics$degrees(60); + var chroma = (1 - _elm_lang$core$Basics$abs((2 * lightness) - 1)) * saturation; + var x = chroma * (1 - _elm_lang$core$Basics$abs( + A2(_elm_lang$core$Color$fmod, hue$, 2) - 1)); + var _p0 = (_elm_lang$core$Native_Utils.cmp(hue$, 0) < 0) ? {ctor: '_Tuple3', _0: 0, _1: 0, _2: 0} : ((_elm_lang$core$Native_Utils.cmp(hue$, 1) < 0) ? {ctor: '_Tuple3', _0: chroma, _1: x, _2: 0} : ((_elm_lang$core$Native_Utils.cmp(hue$, 2) < 0) ? {ctor: '_Tuple3', _0: x, _1: chroma, _2: 0} : ((_elm_lang$core$Native_Utils.cmp(hue$, 3) < 0) ? {ctor: '_Tuple3', _0: 0, _1: chroma, _2: x} : ((_elm_lang$core$Native_Utils.cmp(hue$, 4) < 0) ? {ctor: '_Tuple3', _0: 0, _1: x, _2: chroma} : ((_elm_lang$core$Native_Utils.cmp(hue$, 5) < 0) ? {ctor: '_Tuple3', _0: x, _1: 0, _2: chroma} : ((_elm_lang$core$Native_Utils.cmp(hue$, 6) < 0) ? {ctor: '_Tuple3', _0: chroma, _1: 0, _2: x} : {ctor: '_Tuple3', _0: 0, _1: 0, _2: 0})))))); + var r = _p0._0; + var g = _p0._1; + var b = _p0._2; + var m = lightness - (chroma / 2); + return {ctor: '_Tuple3', _0: r + m, _1: g + m, _2: b + m}; + }); +var _elm_lang$core$Color$toRgb = function (color) { + var _p1 = color; + if (_p1.ctor === 'RGBA') { + return {red: _p1._0, green: _p1._1, blue: _p1._2, alpha: _p1._3}; + } else { + var _p2 = A3(_elm_lang$core$Color$hslToRgb, _p1._0, _p1._1, _p1._2); + var r = _p2._0; + var g = _p2._1; + var b = _p2._2; + return { + red: _elm_lang$core$Basics$round(255 * r), + green: _elm_lang$core$Basics$round(255 * g), + blue: _elm_lang$core$Basics$round(255 * b), + alpha: _p1._3 + }; + } +}; +var _elm_lang$core$Color$toHsl = function (color) { + var _p3 = color; + if (_p3.ctor === 'HSLA') { + return {hue: _p3._0, saturation: _p3._1, lightness: _p3._2, alpha: _p3._3}; + } else { + var _p4 = A3(_elm_lang$core$Color$rgbToHsl, _p3._0, _p3._1, _p3._2); + var h = _p4._0; + var s = _p4._1; + var l = _p4._2; + return {hue: h, saturation: s, lightness: l, alpha: _p3._3}; + } +}; +var _elm_lang$core$Color$HSLA = F4( + function (a, b, c, d) { + return {ctor: 'HSLA', _0: a, _1: b, _2: c, _3: d}; + }); +var _elm_lang$core$Color$hsla = F4( + function (hue, saturation, lightness, alpha) { + return A4( + _elm_lang$core$Color$HSLA, + hue - _elm_lang$core$Basics$turns( + _elm_lang$core$Basics$toFloat( + _elm_lang$core$Basics$floor(hue / (2 * _elm_lang$core$Basics$pi)))), + saturation, + lightness, + alpha); + }); +var _elm_lang$core$Color$hsl = F3( + function (hue, saturation, lightness) { + return A4(_elm_lang$core$Color$hsla, hue, saturation, lightness, 1); + }); +var _elm_lang$core$Color$complement = function (color) { + var _p5 = color; + if (_p5.ctor === 'HSLA') { + return A4( + _elm_lang$core$Color$hsla, + _p5._0 + _elm_lang$core$Basics$degrees(180), + _p5._1, + _p5._2, + _p5._3); + } else { + var _p6 = A3(_elm_lang$core$Color$rgbToHsl, _p5._0, _p5._1, _p5._2); + var h = _p6._0; + var s = _p6._1; + var l = _p6._2; + return A4( + _elm_lang$core$Color$hsla, + h + _elm_lang$core$Basics$degrees(180), + s, + l, + _p5._3); + } +}; +var _elm_lang$core$Color$grayscale = function (p) { + return A4(_elm_lang$core$Color$HSLA, 0, 0, 1 - p, 1); +}; +var _elm_lang$core$Color$greyscale = function (p) { + return A4(_elm_lang$core$Color$HSLA, 0, 0, 1 - p, 1); +}; +var _elm_lang$core$Color$RGBA = F4( + function (a, b, c, d) { + return {ctor: 'RGBA', _0: a, _1: b, _2: c, _3: d}; + }); +var _elm_lang$core$Color$rgba = _elm_lang$core$Color$RGBA; +var _elm_lang$core$Color$rgb = F3( + function (r, g, b) { + return A4(_elm_lang$core$Color$RGBA, r, g, b, 1); + }); +var _elm_lang$core$Color$lightRed = A4(_elm_lang$core$Color$RGBA, 239, 41, 41, 1); +var _elm_lang$core$Color$red = A4(_elm_lang$core$Color$RGBA, 204, 0, 0, 1); +var _elm_lang$core$Color$darkRed = A4(_elm_lang$core$Color$RGBA, 164, 0, 0, 1); +var _elm_lang$core$Color$lightOrange = A4(_elm_lang$core$Color$RGBA, 252, 175, 62, 1); +var _elm_lang$core$Color$orange = A4(_elm_lang$core$Color$RGBA, 245, 121, 0, 1); +var _elm_lang$core$Color$darkOrange = A4(_elm_lang$core$Color$RGBA, 206, 92, 0, 1); +var _elm_lang$core$Color$lightYellow = A4(_elm_lang$core$Color$RGBA, 255, 233, 79, 1); +var _elm_lang$core$Color$yellow = A4(_elm_lang$core$Color$RGBA, 237, 212, 0, 1); +var _elm_lang$core$Color$darkYellow = A4(_elm_lang$core$Color$RGBA, 196, 160, 0, 1); +var _elm_lang$core$Color$lightGreen = A4(_elm_lang$core$Color$RGBA, 138, 226, 52, 1); +var _elm_lang$core$Color$green = A4(_elm_lang$core$Color$RGBA, 115, 210, 22, 1); +var _elm_lang$core$Color$darkGreen = A4(_elm_lang$core$Color$RGBA, 78, 154, 6, 1); +var _elm_lang$core$Color$lightBlue = A4(_elm_lang$core$Color$RGBA, 114, 159, 207, 1); +var _elm_lang$core$Color$blue = A4(_elm_lang$core$Color$RGBA, 52, 101, 164, 1); +var _elm_lang$core$Color$darkBlue = A4(_elm_lang$core$Color$RGBA, 32, 74, 135, 1); +var _elm_lang$core$Color$lightPurple = A4(_elm_lang$core$Color$RGBA, 173, 127, 168, 1); +var _elm_lang$core$Color$purple = A4(_elm_lang$core$Color$RGBA, 117, 80, 123, 1); +var _elm_lang$core$Color$darkPurple = A4(_elm_lang$core$Color$RGBA, 92, 53, 102, 1); +var _elm_lang$core$Color$lightBrown = A4(_elm_lang$core$Color$RGBA, 233, 185, 110, 1); +var _elm_lang$core$Color$brown = A4(_elm_lang$core$Color$RGBA, 193, 125, 17, 1); +var _elm_lang$core$Color$darkBrown = A4(_elm_lang$core$Color$RGBA, 143, 89, 2, 1); +var _elm_lang$core$Color$black = A4(_elm_lang$core$Color$RGBA, 0, 0, 0, 1); +var _elm_lang$core$Color$white = A4(_elm_lang$core$Color$RGBA, 255, 255, 255, 1); +var _elm_lang$core$Color$lightGrey = A4(_elm_lang$core$Color$RGBA, 238, 238, 236, 1); +var _elm_lang$core$Color$grey = A4(_elm_lang$core$Color$RGBA, 211, 215, 207, 1); +var _elm_lang$core$Color$darkGrey = A4(_elm_lang$core$Color$RGBA, 186, 189, 182, 1); +var _elm_lang$core$Color$lightGray = A4(_elm_lang$core$Color$RGBA, 238, 238, 236, 1); +var _elm_lang$core$Color$gray = A4(_elm_lang$core$Color$RGBA, 211, 215, 207, 1); +var _elm_lang$core$Color$darkGray = A4(_elm_lang$core$Color$RGBA, 186, 189, 182, 1); +var _elm_lang$core$Color$lightCharcoal = A4(_elm_lang$core$Color$RGBA, 136, 138, 133, 1); +var _elm_lang$core$Color$charcoal = A4(_elm_lang$core$Color$RGBA, 85, 87, 83, 1); +var _elm_lang$core$Color$darkCharcoal = A4(_elm_lang$core$Color$RGBA, 46, 52, 54, 1); +var _elm_lang$core$Color$Radial = F5( + function (a, b, c, d, e) { + return {ctor: 'Radial', _0: a, _1: b, _2: c, _3: d, _4: e}; + }); +var _elm_lang$core$Color$radial = _elm_lang$core$Color$Radial; +var _elm_lang$core$Color$Linear = F3( + function (a, b, c) { + return {ctor: 'Linear', _0: a, _1: b, _2: c}; + }); +var _elm_lang$core$Color$linear = _elm_lang$core$Color$Linear; + //import Native.Utils // var _elm_lang$core$Native_Scheduler = function() { @@ -6292,6 +6458,386 @@ var _elm_lang$core$Process$kill = _elm_lang$core$Native_Scheduler.kill; var _elm_lang$core$Process$sleep = _elm_lang$core$Native_Scheduler.sleep; var _elm_lang$core$Process$spawn = _elm_lang$core$Native_Scheduler.spawn; +var _elm_lang$core$Random$onSelfMsg = F3( + function (_p1, _p0, seed) { + return _elm_lang$core$Task$succeed(seed); + }); +var _elm_lang$core$Random$magicNum8 = 2147483562; +var _elm_lang$core$Random$range = function (_p2) { + return {ctor: '_Tuple2', _0: 0, _1: _elm_lang$core$Random$magicNum8}; +}; +var _elm_lang$core$Random$magicNum7 = 2147483399; +var _elm_lang$core$Random$magicNum6 = 2147483563; +var _elm_lang$core$Random$magicNum5 = 3791; +var _elm_lang$core$Random$magicNum4 = 40692; +var _elm_lang$core$Random$magicNum3 = 52774; +var _elm_lang$core$Random$magicNum2 = 12211; +var _elm_lang$core$Random$magicNum1 = 53668; +var _elm_lang$core$Random$magicNum0 = 40014; +var _elm_lang$core$Random$step = F2( + function (_p3, seed) { + var _p4 = _p3; + return _p4._0(seed); + }); +var _elm_lang$core$Random$onEffects = F3( + function (router, commands, seed) { + var _p5 = commands; + if (_p5.ctor === '[]') { + return _elm_lang$core$Task$succeed(seed); + } else { + var _p6 = A2(_elm_lang$core$Random$step, _p5._0._0, seed); + var value = _p6._0; + var newSeed = _p6._1; + return A2( + _elm_lang$core$Task$andThen, + A2(_elm_lang$core$Platform$sendToApp, router, value), + function (_p7) { + return A3(_elm_lang$core$Random$onEffects, router, _p5._1, newSeed); + }); + } + }); +var _elm_lang$core$Random$listHelp = F4( + function (list, n, generate, seed) { + listHelp: + while (true) { + if (_elm_lang$core$Native_Utils.cmp(n, 1) < 0) { + return { + ctor: '_Tuple2', + _0: _elm_lang$core$List$reverse(list), + _1: seed + }; + } else { + var _p8 = generate(seed); + var value = _p8._0; + var newSeed = _p8._1; + var _v2 = A2(_elm_lang$core$List_ops['::'], value, list), + _v3 = n - 1, + _v4 = generate, + _v5 = newSeed; + list = _v2; + n = _v3; + generate = _v4; + seed = _v5; + continue listHelp; + } + } + }); +var _elm_lang$core$Random$minInt = -2147483648; +var _elm_lang$core$Random$maxInt = 2147483647; +var _elm_lang$core$Random$iLogBase = F2( + function (b, i) { + return (_elm_lang$core$Native_Utils.cmp(i, b) < 0) ? 1 : (1 + A2(_elm_lang$core$Random$iLogBase, b, (i / b) | 0)); + }); +var _elm_lang$core$Random$command = _elm_lang$core$Native_Platform.leaf('Random'); +var _elm_lang$core$Random$Generator = function (a) { + return {ctor: 'Generator', _0: a}; +}; +var _elm_lang$core$Random$list = F2( + function (n, _p9) { + var _p10 = _p9; + return _elm_lang$core$Random$Generator( + function (seed) { + return A4( + _elm_lang$core$Random$listHelp, + _elm_lang$core$Native_List.fromArray( + []), + n, + _p10._0, + seed); + }); + }); +var _elm_lang$core$Random$map = F2( + function (func, _p11) { + var _p12 = _p11; + return _elm_lang$core$Random$Generator( + function (seed0) { + var _p13 = _p12._0(seed0); + var a = _p13._0; + var seed1 = _p13._1; + return { + ctor: '_Tuple2', + _0: func(a), + _1: seed1 + }; + }); + }); +var _elm_lang$core$Random$map2 = F3( + function (func, _p15, _p14) { + var _p16 = _p15; + var _p17 = _p14; + return _elm_lang$core$Random$Generator( + function (seed0) { + var _p18 = _p16._0(seed0); + var a = _p18._0; + var seed1 = _p18._1; + var _p19 = _p17._0(seed1); + var b = _p19._0; + var seed2 = _p19._1; + return { + ctor: '_Tuple2', + _0: A2(func, a, b), + _1: seed2 + }; + }); + }); +var _elm_lang$core$Random$pair = F2( + function (genA, genB) { + return A3( + _elm_lang$core$Random$map2, + F2( + function (v0, v1) { + return {ctor: '_Tuple2', _0: v0, _1: v1}; + }), + genA, + genB); + }); +var _elm_lang$core$Random$map3 = F4( + function (func, _p22, _p21, _p20) { + var _p23 = _p22; + var _p24 = _p21; + var _p25 = _p20; + return _elm_lang$core$Random$Generator( + function (seed0) { + var _p26 = _p23._0(seed0); + var a = _p26._0; + var seed1 = _p26._1; + var _p27 = _p24._0(seed1); + var b = _p27._0; + var seed2 = _p27._1; + var _p28 = _p25._0(seed2); + var c = _p28._0; + var seed3 = _p28._1; + return { + ctor: '_Tuple2', + _0: A3(func, a, b, c), + _1: seed3 + }; + }); + }); +var _elm_lang$core$Random$map4 = F5( + function (func, _p32, _p31, _p30, _p29) { + var _p33 = _p32; + var _p34 = _p31; + var _p35 = _p30; + var _p36 = _p29; + return _elm_lang$core$Random$Generator( + function (seed0) { + var _p37 = _p33._0(seed0); + var a = _p37._0; + var seed1 = _p37._1; + var _p38 = _p34._0(seed1); + var b = _p38._0; + var seed2 = _p38._1; + var _p39 = _p35._0(seed2); + var c = _p39._0; + var seed3 = _p39._1; + var _p40 = _p36._0(seed3); + var d = _p40._0; + var seed4 = _p40._1; + return { + ctor: '_Tuple2', + _0: A4(func, a, b, c, d), + _1: seed4 + }; + }); + }); +var _elm_lang$core$Random$map5 = F6( + function (func, _p45, _p44, _p43, _p42, _p41) { + var _p46 = _p45; + var _p47 = _p44; + var _p48 = _p43; + var _p49 = _p42; + var _p50 = _p41; + return _elm_lang$core$Random$Generator( + function (seed0) { + var _p51 = _p46._0(seed0); + var a = _p51._0; + var seed1 = _p51._1; + var _p52 = _p47._0(seed1); + var b = _p52._0; + var seed2 = _p52._1; + var _p53 = _p48._0(seed2); + var c = _p53._0; + var seed3 = _p53._1; + var _p54 = _p49._0(seed3); + var d = _p54._0; + var seed4 = _p54._1; + var _p55 = _p50._0(seed4); + var e = _p55._0; + var seed5 = _p55._1; + return { + ctor: '_Tuple2', + _0: A5(func, a, b, c, d, e), + _1: seed5 + }; + }); + }); +var _elm_lang$core$Random$andThen = F2( + function (_p56, callback) { + var _p57 = _p56; + return _elm_lang$core$Random$Generator( + function (seed) { + var _p58 = _p57._0(seed); + var result = _p58._0; + var newSeed = _p58._1; + var _p59 = callback(result); + var genB = _p59._0; + return genB(newSeed); + }); + }); +var _elm_lang$core$Random$State = F2( + function (a, b) { + return {ctor: 'State', _0: a, _1: b}; + }); +var _elm_lang$core$Random$initState = function (s$) { + var s = A2(_elm_lang$core$Basics$max, s$, 0 - s$); + var q = (s / (_elm_lang$core$Random$magicNum6 - 1)) | 0; + var s2 = A2(_elm_lang$core$Basics_ops['%'], q, _elm_lang$core$Random$magicNum7 - 1); + var s1 = A2(_elm_lang$core$Basics_ops['%'], s, _elm_lang$core$Random$magicNum6 - 1); + return A2(_elm_lang$core$Random$State, s1 + 1, s2 + 1); +}; +var _elm_lang$core$Random$next = function (_p60) { + var _p61 = _p60; + var _p63 = _p61._1; + var _p62 = _p61._0; + var k$ = (_p63 / _elm_lang$core$Random$magicNum3) | 0; + var s2$ = (_elm_lang$core$Random$magicNum4 * (_p63 - (k$ * _elm_lang$core$Random$magicNum3))) - (k$ * _elm_lang$core$Random$magicNum5); + var s2$$ = (_elm_lang$core$Native_Utils.cmp(s2$, 0) < 0) ? (s2$ + _elm_lang$core$Random$magicNum7) : s2$; + var k = (_p62 / _elm_lang$core$Random$magicNum1) | 0; + var s1$ = (_elm_lang$core$Random$magicNum0 * (_p62 - (k * _elm_lang$core$Random$magicNum1))) - (k * _elm_lang$core$Random$magicNum2); + var s1$$ = (_elm_lang$core$Native_Utils.cmp(s1$, 0) < 0) ? (s1$ + _elm_lang$core$Random$magicNum6) : s1$; + var z = s1$$ - s2$$; + var z$ = (_elm_lang$core$Native_Utils.cmp(z, 1) < 0) ? (z + _elm_lang$core$Random$magicNum8) : z; + return { + ctor: '_Tuple2', + _0: z$, + _1: A2(_elm_lang$core$Random$State, s1$$, s2$$) + }; +}; +var _elm_lang$core$Random$split = function (_p64) { + var _p65 = _p64; + var _p68 = _p65._1; + var _p67 = _p65._0; + var _p66 = _elm_lang$core$Basics$snd( + _elm_lang$core$Random$next(_p65)); + var t1 = _p66._0; + var t2 = _p66._1; + var new_s2 = _elm_lang$core$Native_Utils.eq(_p68, 1) ? (_elm_lang$core$Random$magicNum7 - 1) : (_p68 - 1); + var new_s1 = _elm_lang$core$Native_Utils.eq(_p67, _elm_lang$core$Random$magicNum6 - 1) ? 1 : (_p67 + 1); + return { + ctor: '_Tuple2', + _0: A2(_elm_lang$core$Random$State, new_s1, t2), + _1: A2(_elm_lang$core$Random$State, t1, new_s2) + }; +}; +var _elm_lang$core$Random$Seed = function (a) { + return {ctor: 'Seed', _0: a}; +}; +var _elm_lang$core$Random$int = F2( + function (a, b) { + return _elm_lang$core$Random$Generator( + function (_p69) { + var _p70 = _p69; + var _p75 = _p70._0; + var base = 2147483561; + var f = F3( + function (n, acc, state) { + f: + while (true) { + var _p71 = n; + if (_p71 === 0) { + return {ctor: '_Tuple2', _0: acc, _1: state}; + } else { + var _p72 = _p75.next(state); + var x = _p72._0; + var state$ = _p72._1; + var _v27 = n - 1, + _v28 = x + (acc * base), + _v29 = state$; + n = _v27; + acc = _v28; + state = _v29; + continue f; + } + } + }); + var _p73 = (_elm_lang$core$Native_Utils.cmp(a, b) < 0) ? {ctor: '_Tuple2', _0: a, _1: b} : {ctor: '_Tuple2', _0: b, _1: a}; + var lo = _p73._0; + var hi = _p73._1; + var k = (hi - lo) + 1; + var n = A2(_elm_lang$core$Random$iLogBase, base, k); + var _p74 = A3(f, n, 1, _p75.state); + var v = _p74._0; + var state$ = _p74._1; + return { + ctor: '_Tuple2', + _0: lo + A2(_elm_lang$core$Basics_ops['%'], v, k), + _1: _elm_lang$core$Random$Seed( + _elm_lang$core$Native_Utils.update( + _p75, + {state: state$})) + }; + }); + }); +var _elm_lang$core$Random$bool = A2( + _elm_lang$core$Random$map, + F2( + function (x, y) { + return _elm_lang$core$Native_Utils.eq(x, y); + })(1), + A2(_elm_lang$core$Random$int, 0, 1)); +var _elm_lang$core$Random$float = F2( + function (a, b) { + return _elm_lang$core$Random$Generator( + function (seed) { + var _p76 = A2( + _elm_lang$core$Random$step, + A2(_elm_lang$core$Random$int, _elm_lang$core$Random$minInt, _elm_lang$core$Random$maxInt), + seed); + var number = _p76._0; + var newSeed = _p76._1; + var negativeOneToOne = _elm_lang$core$Basics$toFloat(number) / _elm_lang$core$Basics$toFloat(_elm_lang$core$Random$maxInt - _elm_lang$core$Random$minInt); + var _p77 = (_elm_lang$core$Native_Utils.cmp(a, b) < 0) ? {ctor: '_Tuple2', _0: a, _1: b} : {ctor: '_Tuple2', _0: b, _1: a}; + var lo = _p77._0; + var hi = _p77._1; + var scaled = ((lo + hi) / 2) + ((hi - lo) * negativeOneToOne); + return {ctor: '_Tuple2', _0: scaled, _1: newSeed}; + }); + }); +var _elm_lang$core$Random$initialSeed = function (n) { + return _elm_lang$core$Random$Seed( + { + state: _elm_lang$core$Random$initState(n), + next: _elm_lang$core$Random$next, + split: _elm_lang$core$Random$split, + range: _elm_lang$core$Random$range + }); +}; +var _elm_lang$core$Random$init = A2( + _elm_lang$core$Task$andThen, + _elm_lang$core$Time$now, + function (t) { + return _elm_lang$core$Task$succeed( + _elm_lang$core$Random$initialSeed( + _elm_lang$core$Basics$round(t))); + }); +var _elm_lang$core$Random$Generate = function (a) { + return {ctor: 'Generate', _0: a}; +}; +var _elm_lang$core$Random$generate = F2( + function (tagger, generator) { + return _elm_lang$core$Random$command( + _elm_lang$core$Random$Generate( + A2(_elm_lang$core$Random$map, tagger, generator))); + }); +var _elm_lang$core$Random$cmdMap = F2( + function (func, _p78) { + var _p79 = _p78; + return _elm_lang$core$Random$Generate( + A2(_elm_lang$core$Random$map, func, _p79._0)); + }); +_elm_lang$core$Native_Platform.effectManagers['Random'] = {pkg: 'elm-lang/core', init: _elm_lang$core$Random$init, onEffects: _elm_lang$core$Random$onEffects, onSelfMsg: _elm_lang$core$Random$onSelfMsg, tag: 'cmd', cmdMap: _elm_lang$core$Random$cmdMap}; + var _elm_lang$core$Set$foldr = F3( function (f, b, _p0) { var _p1 = _p0; @@ -9899,69 +10445,448 @@ var _guyonvarch$catchvoid$Model_Config$otherConfig = function (config) { } }; -var _guyonvarch$catchvoid$Model_Color$mergeColors = F3( - function (ratio, c1, c2) { - var mergePart = F2( - function (x, y) { - return _elm_lang$core$Basics$truncate( - (ratio * _elm_lang$core$Basics$toFloat(x)) + ((1 - ratio) * _elm_lang$core$Basics$toFloat(y))); +var _mgold$elm_nonempty_list$List_Nonempty$foldl1 = F2( + function (f, _p0) { + var _p1 = _p0; + return A3(_elm_lang$core$List$foldl, f, _p1._0, _p1._1); + }); +var _mgold$elm_nonempty_list$List_Nonempty$foldl = F3( + function (f, b, _p2) { + var _p3 = _p2; + return A3( + _elm_lang$core$List$foldl, + f, + b, + A2(_elm_lang$core$List_ops['::'], _p3._0, _p3._1)); + }); +var _mgold$elm_nonempty_list$List_Nonempty$any = F2( + function (f, _p4) { + var _p5 = _p4; + return f(_p5._0) || A2(_elm_lang$core$List$any, f, _p5._1); + }); +var _mgold$elm_nonempty_list$List_Nonempty$all = F2( + function (f, _p6) { + var _p7 = _p6; + return f(_p7._0) && A2(_elm_lang$core$List$all, f, _p7._1); + }); +var _mgold$elm_nonempty_list$List_Nonempty$member = F2( + function (y, _p8) { + var _p9 = _p8; + return _elm_lang$core$Native_Utils.eq(_p9._0, y) || A2(_elm_lang$core$List$member, y, _p9._1); + }); +var _mgold$elm_nonempty_list$List_Nonempty$length = function (_p10) { + var _p11 = _p10; + return _elm_lang$core$List$length(_p11._1) + 1; +}; +var _mgold$elm_nonempty_list$List_Nonempty$isSingleton = function (_p12) { + var _p13 = _p12; + return _elm_lang$core$List$isEmpty(_p13._1); +}; +var _mgold$elm_nonempty_list$List_Nonempty$get = F2( + function (i, _p14) { + var _p15 = _p14; + var find = F2( + function (k, ys) { + find: + while (true) { + var _p16 = ys; + if (_p16.ctor === '[]') { + return _elm_lang$core$Native_Utils.crashCase( + 'List.Nonempty', + { + start: {line: 104, column: 13}, + end: {line: 112, column: 40} + }, + _p16)('This can\'t happen: attempted to take value at safe index from empty list'); + } else { + if (_elm_lang$core$Native_Utils.eq(k, 0)) { + return _p16._0; + } else { + var _v9 = k - 1, + _v10 = _p16._1; + k = _v9; + ys = _v10; + continue find; + } + } + } }); - return { - red: A2(mergePart, c1.red, c2.red), - green: A2(mergePart, c1.green, c2.green), - blue: A2(mergePart, c1.blue, c2.blue) - }; + var j = A2( + _elm_lang$core$Basics_ops['%'], + i, + _mgold$elm_nonempty_list$List_Nonempty$length(_p15)); + return _elm_lang$core$Native_Utils.eq(j, 0) ? _p15._0 : A2(find, j - 1, _p15._1); }); -var _guyonvarch$catchvoid$Model_Color$htmlOutput = function (color) { +var _mgold$elm_nonempty_list$List_Nonempty$sample = function (nonempty) { return A2( - _elm_lang$core$Basics_ops['++'], - 'rgb(', + _elm_lang$core$Random$map, + function (i) { + return A2(_mgold$elm_nonempty_list$List_Nonempty$get, i, nonempty); + }, A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(color.red), - A2( - _elm_lang$core$Basics_ops['++'], - ', ', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(color.green), - A2( - _elm_lang$core$Basics_ops['++'], - ', ', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(color.blue), - ')')))))); + _elm_lang$core$Random$int, + 0, + _mgold$elm_nonempty_list$List_Nonempty$length(nonempty) - 1)); }; -var _guyonvarch$catchvoid$Model_Color$Color = F3( - function (a, b, c) { - return {red: a, green: b, blue: c}; +var _mgold$elm_nonempty_list$List_Nonempty$toList = function (_p18) { + var _p19 = _p18; + return A2(_elm_lang$core$List_ops['::'], _p19._0, _p19._1); +}; +var _mgold$elm_nonempty_list$List_Nonempty$tail = function (_p20) { + var _p21 = _p20; + return _p21._1; +}; +var _mgold$elm_nonempty_list$List_Nonempty$head = function (_p22) { + var _p23 = _p22; + return _p23._0; +}; +var _mgold$elm_nonempty_list$List_Nonempty$Nonempty = F2( + function (a, b) { + return {ctor: 'Nonempty', _0: a, _1: b}; }); - -var _guyonvarch$catchvoid$Model_Board$boardDiagonal = function (boardSize) { - return _elm_lang$core$Basics$sqrt( - Math.pow(boardSize.x, 2) + Math.pow(boardSize.y, 2)); +var _mgold$elm_nonempty_list$List_Nonempty$fromElement = function (x) { + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + x, + _elm_lang$core$Native_List.fromArray( + [])); }; -var _guyonvarch$catchvoid$Model_Board$initBoardSize = {x: 500, y: 500}; - -var _guyonvarch$catchvoid$Model_Point$pointSpeed = function (dt) { - return dt / 20; +var _mgold$elm_nonempty_list$List_Nonempty$fromList = function (ys) { + var _p24 = ys; + if (_p24.ctor === '::') { + return _elm_lang$core$Maybe$Just( + A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p24._0, _p24._1)); + } else { + return _elm_lang$core$Maybe$Nothing; + } }; -var _guyonvarch$catchvoid$Model_Point$pointSize = 10; -var _guyonvarch$catchvoid$Model_Point$pointSpawnDist = function (boardSize) { - return ((_guyonvarch$catchvoid$Model_Board$boardDiagonal(boardSize) * 2.5) / 5) + _guyonvarch$catchvoid$Model_Point$pointSize; +var _mgold$elm_nonempty_list$List_Nonempty$cons = F2( + function (y, _p25) { + var _p26 = _p25; + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + y, + A2(_elm_lang$core$List_ops['::'], _p26._0, _p26._1)); + }); +var _mgold$elm_nonempty_list$List_Nonempty_ops = _mgold$elm_nonempty_list$List_Nonempty_ops || {}; +_mgold$elm_nonempty_list$List_Nonempty_ops[':::'] = _mgold$elm_nonempty_list$List_Nonempty$cons; +var _mgold$elm_nonempty_list$List_Nonempty$append = F2( + function (_p28, _p27) { + var _p29 = _p28; + var _p30 = _p27; + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + _p29._0, + A2( + _elm_lang$core$Basics_ops['++'], + _p29._1, + A2(_elm_lang$core$List_ops['::'], _p30._0, _p30._1))); + }); +var _mgold$elm_nonempty_list$List_Nonempty$pop = function (_p31) { + var _p32 = _p31; + var _p34 = _p32._1; + var _p33 = _p34; + if (_p33.ctor === '[]') { + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p32._0, _p34); + } else { + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p33._0, _p33._1); + } }; -var _guyonvarch$catchvoid$Model_Point$pointAwayDist = function (boardSize) { - return ((_guyonvarch$catchvoid$Model_Board$boardDiagonal(boardSize) * 3) / 5) + _guyonvarch$catchvoid$Model_Point$pointSize; +var _mgold$elm_nonempty_list$List_Nonempty$reverse = function (_p35) { + var _p36 = _p35; + var revapp = function (_p37) { + revapp: + while (true) { + var _p38 = _p37; + var _p41 = _p38._0; + var _p40 = _p38._1; + var _p39 = _p38._2; + if (_p39.ctor === '[]') { + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p40, _p41); + } else { + var _v23 = { + ctor: '_Tuple3', + _0: A2(_elm_lang$core$List_ops['::'], _p40, _p41), + _1: _p39._0, + _2: _p39._1 + }; + _p37 = _v23; + continue revapp; + } + } + }; + return revapp( + { + ctor: '_Tuple3', + _0: _elm_lang$core$Native_List.fromArray( + []), + _1: _p36._0, + _2: _p36._1 + }); }; -var _guyonvarch$catchvoid$Model_Point$pointMove = F2( - function (_p0, time) { - var _p1 = _p0; - return A4(_p1.move, _p1.initTime, _p1.initPos, _p1.initDest, time); +var _mgold$elm_nonempty_list$List_Nonempty$concat = function (_p42) { + var _p43 = _p42; + var _p44 = _p43._0; + var tl = A2( + _elm_lang$core$Basics_ops['++'], + _mgold$elm_nonempty_list$List_Nonempty$tail(_p44), + _elm_lang$core$List$concat( + A2(_elm_lang$core$List$map, _mgold$elm_nonempty_list$List_Nonempty$toList, _p43._1))); + var hd = _mgold$elm_nonempty_list$List_Nonempty$head(_p44); + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, hd, tl); +}; +var _mgold$elm_nonempty_list$List_Nonempty$replaceHead = F2( + function (y, _p45) { + var _p46 = _p45; + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, y, _p46._1); }); -var _guyonvarch$catchvoid$Model_Point$Point = F4( - function (a, b, c, d) { - return {initTime: a, initPos: b, initDest: c, move: d}; +var _mgold$elm_nonempty_list$List_Nonempty$replaceTail = F2( + function (ys, _p47) { + var _p48 = _p47; + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p48._0, ys); + }); +var _mgold$elm_nonempty_list$List_Nonempty$dropTail = function (_p49) { + var _p50 = _p49; + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + _p50._0, + _elm_lang$core$Native_List.fromArray( + [])); +}; +var _mgold$elm_nonempty_list$List_Nonempty$map = F2( + function (f, _p51) { + var _p52 = _p51; + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + f(_p52._0), + A2(_elm_lang$core$List$map, f, _p52._1)); + }); +var _mgold$elm_nonempty_list$List_Nonempty$concatMap = F2( + function (f, xs) { + return _mgold$elm_nonempty_list$List_Nonempty$concat( + A2(_mgold$elm_nonempty_list$List_Nonempty$map, f, xs)); + }); +var _mgold$elm_nonempty_list$List_Nonempty$map2 = F3( + function (f, _p54, _p53) { + var _p55 = _p54; + var _p56 = _p53; + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + A2(f, _p55._0, _p56._0), + A3(_elm_lang$core$List$map2, f, _p55._1, _p56._1)); + }); +var _mgold$elm_nonempty_list$List_Nonempty$andMap = _mgold$elm_nonempty_list$List_Nonempty$map2( + F2( + function (x, y) { + return x(y); + })); +var _mgold$elm_nonempty_list$List_Nonempty$indexedMap = F2( + function (f, _p57) { + var _p58 = _p57; + var wrapped = F2( + function (i, d) { + return A2(f, i + 1, d); + }); + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + A2(f, 0, _p58._0), + A2(_elm_lang$core$List$indexedMap, wrapped, _p58._1)); + }); +var _mgold$elm_nonempty_list$List_Nonempty$filter = F3( + function (p, d, _p59) { + var _p60 = _p59; + var _p63 = _p60._1; + var _p62 = _p60._0; + if (p(_p62)) { + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + _p62, + A2(_elm_lang$core$List$filter, p, _p63)); + } else { + var _p61 = A2(_elm_lang$core$List$filter, p, _p63); + if (_p61.ctor === '[]') { + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + d, + _elm_lang$core$Native_List.fromArray( + [])); + } else { + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p61._0, _p61._1); + } + } + }); +var _mgold$elm_nonempty_list$List_Nonempty$sort = function (_p64) { + var _p65 = _p64; + var _p66 = _elm_lang$core$List$sort( + A2(_elm_lang$core$List_ops['::'], _p65._0, _p65._1)); + if (_p66.ctor === '::') { + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p66._0, _p66._1); + } else { + return _elm_lang$core$Native_Utils.crashCase( + 'List.Nonempty', + { + start: {line: 331, column: 5}, + end: {line: 336, column: 92} + }, + _p66)('This can\'t happen: sorting a nonempty list returned an empty list'); + } +}; +var _mgold$elm_nonempty_list$List_Nonempty$sortBy = F2( + function (f, _p68) { + var _p69 = _p68; + var _p70 = A2( + _elm_lang$core$List$sortBy, + f, + A2(_elm_lang$core$List_ops['::'], _p69._0, _p69._1)); + if (_p70.ctor === '::') { + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p70._0, _p70._1); + } else { + return _elm_lang$core$Native_Utils.crashCase( + 'List.Nonempty', + { + start: {line: 343, column: 5}, + end: {line: 348, column: 94} + }, + _p70)('This can\'t happen: sortBying a nonempty list returned an empty list'); + } + }); +var _mgold$elm_nonempty_list$List_Nonempty$sortWith = F2( + function (f, _p72) { + var _p73 = _p72; + var _p74 = A2( + _elm_lang$core$List$sortWith, + f, + A2(_elm_lang$core$List_ops['::'], _p73._0, _p73._1)); + if (_p74.ctor === '::') { + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, _p74._0, _p74._1); + } else { + return _elm_lang$core$Native_Utils.crashCase( + 'List.Nonempty', + { + start: {line: 355, column: 5}, + end: {line: 360, column: 96} + }, + _p74)('This can\'t happen: sortWithing a nonempty list returned an empty list'); + } + }); +var _mgold$elm_nonempty_list$List_Nonempty$dedup = function (_p76) { + var _p77 = _p76; + var dedupe = F3( + function (prev, done, next) { + dedupe: + while (true) { + var _p78 = next; + if (_p78.ctor === '[]') { + return A2(_mgold$elm_nonempty_list$List_Nonempty$Nonempty, prev, done); + } else { + var _p80 = _p78._1; + var _p79 = _p78._0; + if (_elm_lang$core$Native_Utils.eq(_p79, prev)) { + var _v42 = prev, + _v43 = done, + _v44 = _p80; + prev = _v42; + done = _v43; + next = _v44; + continue dedupe; + } else { + var _v45 = _p79, + _v46 = A2(_elm_lang$core$List_ops['::'], prev, done), + _v47 = _p80; + prev = _v45; + done = _v46; + next = _v47; + continue dedupe; + } + } + } + }); + return _mgold$elm_nonempty_list$List_Nonempty$reverse( + A3( + dedupe, + _p77._0, + _elm_lang$core$Native_List.fromArray( + []), + _p77._1)); +}; +var _mgold$elm_nonempty_list$List_Nonempty$uniq = function (_p81) { + var _p82 = _p81; + var _p86 = _p82._0; + var unique = F3( + function (seen, done, next) { + unique: + while (true) { + var _p83 = next; + if (_p83.ctor === '[]') { + return done; + } else { + var _p85 = _p83._1; + var _p84 = _p83._0; + if (A2(_elm_lang$core$List$member, _p84, seen)) { + var _v50 = seen, + _v51 = done, + _v52 = _p85; + seen = _v50; + done = _v51; + next = _v52; + continue unique; + } else { + var _v53 = A2(_elm_lang$core$List_ops['::'], _p84, seen), + _v54 = A2(_mgold$elm_nonempty_list$List_Nonempty_ops[':::'], _p84, done), + _v55 = _p85; + seen = _v53; + done = _v54; + next = _v55; + continue unique; + } + } + } + }); + return _mgold$elm_nonempty_list$List_Nonempty$reverse( + A3( + unique, + _elm_lang$core$Native_List.fromArray( + [_p86]), + A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + _p86, + _elm_lang$core$Native_List.fromArray( + [])), + _p82._1)); +}; +var _mgold$elm_nonempty_list$List_Nonempty$scanl = F3( + function (f, b, _p87) { + var _p88 = _p87; + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + b, + A3( + _elm_lang$core$List$scanl, + f, + A2(f, _p88._0, b), + _p88._1)); + }); +var _mgold$elm_nonempty_list$List_Nonempty$scanl1 = F2( + function (f, _p89) { + var _p90 = _p89; + var _p92 = _p90._0; + var _p91 = _p90._1; + if (_p91.ctor === '[]') { + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + _p92, + _elm_lang$core$Native_List.fromArray( + [])); + } else { + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + _p92, + A3( + _elm_lang$core$List$scanl, + f, + A2(f, _p91._0, _p92), + _p91._1)); + } }); var _guyonvarch$catchvoid$Utils_Physics$getNewSpeed = F3( @@ -9992,20 +10917,20 @@ var _guyonvarch$catchvoid$Utils_Physics$getAcc = F2( A2(_guyonvarch$catchvoid$Model_Vec2$div, speed, 300)); }); var _guyonvarch$catchvoid$Utils_Physics$getMove = F2( - function (speed, dir) { + function (dist, dir) { if (_guyonvarch$catchvoid$Model_Vec2$isNull(dir)) { return {x: 0, y: 0}; } else { var angle = A2(_elm_lang$core$Basics$atan2, dir.y, dir.x); return { - x: speed * _elm_lang$core$Basics$cos(angle), - y: speed * _elm_lang$core$Basics$sin(angle) + x: dist * _elm_lang$core$Basics$cos(angle), + y: dist * _elm_lang$core$Basics$sin(angle) }; } }); var _guyonvarch$catchvoid$Utils_Physics$getWaveMove = F4( - function (speed, dir, amplitude, period) { - var move = A2(_guyonvarch$catchvoid$Utils_Physics$getMove, speed, dir); + function (dist, dir, amplitude, period) { + var move = A2(_guyonvarch$catchvoid$Utils_Physics$getMove, dist, dir); var perpendMove = A2( _guyonvarch$catchvoid$Utils_Physics$getMove, amplitude * _elm_lang$core$Basics$sin( @@ -10013,6 +10938,25 @@ var _guyonvarch$catchvoid$Utils_Physics$getWaveMove = F4( _guyonvarch$catchvoid$Model_Vec2$clockwiseRotate90(move)); return A2(_guyonvarch$catchvoid$Model_Vec2$add, move, perpendMove); }); +var _guyonvarch$catchvoid$Utils_Physics$getSawToothMove = F4( + function (dist, dir, amplitude, period) { + var move = A2(_guyonvarch$catchvoid$Utils_Physics$getMove, dist, dir); + var perpendMove = A2( + _guyonvarch$catchvoid$Utils_Physics$getMove, + function () { + var max = 1000 / period; + var middle = max / 2; + var modulo = _elm_lang$core$Basics$toFloat( + A2( + _elm_lang$core$Basics_ops['%'], + _elm_lang$core$Basics$round( + _guyonvarch$catchvoid$Model_Vec2$norm(move)), + _elm_lang$core$Basics$round(max))); + return (amplitude * ((_elm_lang$core$Native_Utils.cmp(modulo, middle) < 0) ? modulo : (max - modulo))) / middle; + }(), + _guyonvarch$catchvoid$Model_Vec2$clockwiseRotate90(move)); + return A2(_guyonvarch$catchvoid$Model_Vec2$add, move, perpendMove); + }); var _guyonvarch$catchvoid$Utils_Physics$getNewPosAndSpeed = F4( function (dt, dir, computeSpeed, _p0) { var _p1 = _p0; @@ -10027,131 +10971,172 @@ var _guyonvarch$catchvoid$Utils_Physics$getNewPosAndSpeed = F4( return {ctor: '_Tuple2', _0: newPos, _1: newSpeed}; }); -var _guyonvarch$catchvoid$Model_Level$lastLevel = { - color: {red: 156, green: 225, blue: 233}, - move: F3( +var _guyonvarch$catchvoid$Utils_Color$spin = F2( + function (d, color) { + var _p0 = _elm_lang$core$Color$toHsl(color); + var hue = _p0.hue; + var saturation = _p0.saturation; + var lightness = _p0.lightness; + var alpha = _p0.alpha; + return A4( + _elm_lang$core$Color$hsla, + hue + _elm_lang$core$Basics$degrees(d), + saturation, + lightness, + alpha); + }); +var _guyonvarch$catchvoid$Utils_Color$merge = F3( + function (ratio, c1, c2) { + var mergePartInt = F2( + function (x, y) { + return _elm_lang$core$Basics$truncate( + (ratio * _elm_lang$core$Basics$toFloat(x)) + ((1 - ratio) * _elm_lang$core$Basics$toFloat(y))); + }); + var mergePartFloat = F2( + function (x, y) { + return (ratio * x) + ((1 - ratio) * y); + }); + var rgb2 = _elm_lang$core$Color$toRgb(c2); + var rgb1 = _elm_lang$core$Color$toRgb(c1); + return A4( + _elm_lang$core$Color$rgba, + A2(mergePartInt, rgb1.red, rgb2.red), + A2(mergePartInt, rgb1.green, rgb2.green), + A2(mergePartInt, rgb1.blue, rgb2.blue), + A2(mergePartFloat, rgb1.alpha, rgb2.alpha)); + }); + +var _guyonvarch$catchvoid$Model_Level$levels = function () { + var mc3 = F3( + function (initPos, initDest, delta) { + return A4( + _guyonvarch$catchvoid$Utils_Physics$getSawToothMove, + delta / 25, + A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), + 100, + 15); + }); + var mc2 = F3( + function (initPos, initDest, delta) { + return A4( + _guyonvarch$catchvoid$Utils_Physics$getWaveMove, + delta / 16, + A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), + 10, + 50); + }); + var mc1 = F3( + function (initPos, initDest, delta) { + return A2( + _guyonvarch$catchvoid$Utils_Physics$getMove, + delta / 13, + A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos)); + }); + var mb3 = F3( + function (initPos, initDest, delta) { + return A4( + _guyonvarch$catchvoid$Utils_Physics$getSawToothMove, + delta / 20, + A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), + 30, + 15); + }); + var mb2 = F3( function (initPos, initDest, delta) { return A4( _guyonvarch$catchvoid$Utils_Physics$getWaveMove, - delta / 5, + delta / 18, + A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), + 20, + 20); + }); + var mb1 = F3( + function (initPos, initDest, delta) { + return A2( + _guyonvarch$catchvoid$Utils_Physics$getMove, + delta / 18, + A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos)); + }); + var ma3 = F3( + function (initPos, initDest, delta) { + return A4( + _guyonvarch$catchvoid$Utils_Physics$getSawToothMove, + delta / 25, A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), 30, - 30); - }) -}; -var _guyonvarch$catchvoid$Model_Level$levels = _elm_lang$core$Native_List.fromArray( - [ - { - color: {red: 156, green: 168, blue: 233}, - move: F3( - function (initPos, initDest, delta) { - return A2( - _guyonvarch$catchvoid$Utils_Physics$getMove, - delta / 20, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos)); - }) - }, - { - color: {red: 190, green: 156, blue: 233}, - move: F3( - function (initPos, initDest, delta) { - return A4( - _guyonvarch$catchvoid$Utils_Physics$getWaveMove, - delta / 20, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), - 10, - 10); - }) - }, - { - color: {red: 233, green: 156, blue: 232}, - move: F3( - function (initPos, initDest, delta) { - return A2( - _guyonvarch$catchvoid$Utils_Physics$getMove, - delta / 18, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos)); - }) - }, - { - color: {red: 233, green: 156, blue: 187}, - move: F3( - function (initPos, initDest, delta) { - return A4( - _guyonvarch$catchvoid$Utils_Physics$getWaveMove, - delta / 18, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), - 20, - 20); - }) - }, - { - color: {red: 233, green: 171, blue: 156}, - move: F3( - function (initPos, initDest, delta) { - return A2( - _guyonvarch$catchvoid$Utils_Physics$getMove, - delta / 13, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos)); - }) - }, - { - color: {red: 233, green: 215, blue: 156}, - move: F3( - function (initPos, initDest, delta) { - return A4( - _guyonvarch$catchvoid$Utils_Physics$getWaveMove, - delta / 16, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), - 10, - 50); - }) - }, - { - color: {red: 206, green: 233, blue: 156}, - move: F3( - function (initPos, initDest, delta) { - return A2( - _guyonvarch$catchvoid$Utils_Physics$getMove, - delta / 11, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos)); - }) - }, - { - color: {red: 162, green: 233, blue: 156}, - move: F3( - function (initPos, initDest, delta) { - return A4( - _guyonvarch$catchvoid$Utils_Physics$getWaveMove, - delta / 14, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), - 30, - 15); - }) - }, - { - color: {red: 156, green: 233, blue: 196}, - move: F3( - function (initPos, initDest, delta) { - return A2( - _guyonvarch$catchvoid$Utils_Physics$getMove, - delta / 8, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos)); - }) - }, + 10); + }); + var ma2 = F3( + function (initPos, initDest, delta) { + return A4( + _guyonvarch$catchvoid$Utils_Physics$getWaveMove, + delta / 20, + A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), + 10, + 10); + }); + var ma1 = F3( + function (initPos, initDest, delta) { + return A2( + _guyonvarch$catchvoid$Utils_Physics$getMove, + delta / 20, + A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos)); + }); + return A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, { - color: {red: 156, green: 225, blue: 233}, - move: F3( - function (initPos, initDest, delta) { - return A4( - _guyonvarch$catchvoid$Utils_Physics$getWaveMove, - delta / 12, - A2(_guyonvarch$catchvoid$Model_Vec2$sub, initDest, initPos), - 30, - 30); - }) - } - ]); + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(ma1) + }, + _elm_lang$core$Native_List.fromArray( + [ + { + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(ma2) + }, + { + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(ma3) + }, + { + moves: A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + ma1, + _elm_lang$core$Native_List.fromArray( + [ma2, ma3])) + }, + { + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(mb1) + }, + { + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(mb2) + }, + { + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(mb3) + }, + { + moves: A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + mb1, + _elm_lang$core$Native_List.fromArray( + [mb2, mb3])) + }, + { + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(mc1) + }, + { + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(mc2) + }, + { + moves: _mgold$elm_nonempty_list$List_Nonempty$fromElement(mc3) + }, + { + moves: A2( + _mgold$elm_nonempty_list$List_Nonempty$Nonempty, + mc1, + _elm_lang$core$Native_List.fromArray( + [mc2, mc3])) + } + ])); +}(); +var _guyonvarch$catchvoid$Model_Level$initialColor = A3(_elm_lang$core$Color$rgb, 156, 168, 233); var _guyonvarch$catchvoid$Model_Level$progressiveRatio = F2( function (a, b) { return Math.pow( @@ -10162,35 +11147,33 @@ var _guyonvarch$catchvoid$Model_Level$progressiveRatio = F2( }); var _guyonvarch$catchvoid$Model_Level$levelScoreDuration = 20; var _guyonvarch$catchvoid$Model_Level$currentLevelNumber = function (currentScore) { - return A2( - _elm_lang$core$Basics$min, - _elm_lang$core$List$length(_guyonvarch$catchvoid$Model_Level$levels) + 1, - ((currentScore / _guyonvarch$catchvoid$Model_Level$levelScoreDuration) | 0) + 1); + return ((currentScore / _guyonvarch$catchvoid$Model_Level$levelScoreDuration) | 0) + 1; }; var _guyonvarch$catchvoid$Model_Level$currentLevelScore = function (currentScore) { return currentScore - ((_guyonvarch$catchvoid$Model_Level$currentLevelNumber(currentScore) - 1) * _guyonvarch$catchvoid$Model_Level$levelScoreDuration); }; var _guyonvarch$catchvoid$Model_Level$currentLevel = function (currentScore) { - return A2( - _elm_lang$core$Maybe$withDefault, - _guyonvarch$catchvoid$Model_Level$lastLevel, - _elm_lang$core$List$head( - A2(_elm_lang$core$List$drop, (currentScore / _guyonvarch$catchvoid$Model_Level$levelScoreDuration) | 0, _guyonvarch$catchvoid$Model_Level$levels))); + return A2(_mgold$elm_nonempty_list$List_Nonempty$get, (currentScore / _guyonvarch$catchvoid$Model_Level$levelScoreDuration) | 0, _guyonvarch$catchvoid$Model_Level$levels); }; var _guyonvarch$catchvoid$Model_Level$nextLevel = function (currentScore) { return _guyonvarch$catchvoid$Model_Level$currentLevel(currentScore + _guyonvarch$catchvoid$Model_Level$levelScoreDuration); }; +var _guyonvarch$catchvoid$Model_Level$color = function (score) { + return A2( + _guyonvarch$catchvoid$Utils_Color$spin, + _elm_lang$core$Basics$toFloat(20 * ((score / _guyonvarch$catchvoid$Model_Level$levelScoreDuration) | 0)), + _guyonvarch$catchvoid$Model_Level$initialColor); +}; var _guyonvarch$catchvoid$Model_Level$progressiveColor = function (currentScore) { - var nextColor = _guyonvarch$catchvoid$Model_Level$nextLevel(currentScore).color; - var currentColor = _guyonvarch$catchvoid$Model_Level$currentLevel(currentScore).color; + var nextColor = _guyonvarch$catchvoid$Model_Level$color(currentScore + _guyonvarch$catchvoid$Model_Level$levelScoreDuration); + var currentColor = _guyonvarch$catchvoid$Model_Level$color(currentScore); var reminder = A2(_elm_lang$core$Basics$rem, currentScore, _guyonvarch$catchvoid$Model_Level$levelScoreDuration); var ratio = A2(_guyonvarch$catchvoid$Model_Level$progressiveRatio, reminder, _guyonvarch$catchvoid$Model_Level$levelScoreDuration); - return A3(_guyonvarch$catchvoid$Model_Color$mergeColors, ratio, nextColor, currentColor); + return A3(_guyonvarch$catchvoid$Utils_Color$merge, ratio, nextColor, currentColor); +}; +var _guyonvarch$catchvoid$Model_Level$Level = function (a) { + return {moves: a}; }; -var _guyonvarch$catchvoid$Model_Level$Level = F2( - function (a, b) { - return {color: a, move: b}; - }); var _guyonvarch$catchvoid$Model_Player$playerSpeed = function (dt) { return dt / 200; @@ -10207,11 +11190,11 @@ var _guyonvarch$catchvoid$Model_Player$levelCurve = F3( return linear - exp; }); var _guyonvarch$catchvoid$Model_Player$getPlayerSize = function (score) { - return A3( + return 15 + A3( _guyonvarch$catchvoid$Model_Player$levelCurve, _guyonvarch$catchvoid$Model_Level$levelScoreDuration, 15, - _guyonvarch$catchvoid$Model_Level$currentLevelScore(score)) + 15; + _guyonvarch$catchvoid$Model_Level$currentLevelScore(score)); }; var _guyonvarch$catchvoid$Model_Player$initPlayer = {pos: _guyonvarch$catchvoid$Model_Vec2$originVec, speed: _guyonvarch$catchvoid$Model_Vec2$originVec, config: _guyonvarch$catchvoid$Model_Config$White}; var _guyonvarch$catchvoid$Model_Player$Player = F3( @@ -10219,6 +11202,32 @@ var _guyonvarch$catchvoid$Model_Player$Player = F3( return {pos: a, speed: b, config: c}; }); +var _guyonvarch$catchvoid$Model_Board$boardDiagonal = function (boardSize) { + return _elm_lang$core$Basics$sqrt( + Math.pow(boardSize.x, 2) + Math.pow(boardSize.y, 2)); +}; +var _guyonvarch$catchvoid$Model_Board$initBoardSize = {x: 500, y: 500}; + +var _guyonvarch$catchvoid$Model_Point$pointSpeed = function (dt) { + return dt / 20; +}; +var _guyonvarch$catchvoid$Model_Point$pointSize = 10; +var _guyonvarch$catchvoid$Model_Point$pointSpawnDist = function (boardSize) { + return ((_guyonvarch$catchvoid$Model_Board$boardDiagonal(boardSize) * 2.5) / 5) + _guyonvarch$catchvoid$Model_Point$pointSize; +}; +var _guyonvarch$catchvoid$Model_Point$pointAwayDist = function (boardSize) { + return ((_guyonvarch$catchvoid$Model_Board$boardDiagonal(boardSize) * 3) / 5) + _guyonvarch$catchvoid$Model_Point$pointSize; +}; +var _guyonvarch$catchvoid$Model_Point$pointMove = F2( + function (_p0, time) { + var _p1 = _p0; + return A4(_p1.move, _p1.initTime, _p1.initPos, _p1.initDest, time); + }); +var _guyonvarch$catchvoid$Model_Point$Point = F4( + function (a, b, c, d) { + return {initTime: a, initPos: b, initDest: c, move: d}; + }); + var _guyonvarch$catchvoid$Utils_Geometry$inBoard = F3( function (boardSize, size, pos) { var topY = (boardSize.y / 2) - size; @@ -10399,6 +11408,17 @@ var _guyonvarch$catchvoid$Update_CloudUpdate$pointInitPos = F2( _1: seed$ }; }); +var _guyonvarch$catchvoid$Update_CloudUpdate$nonemptySample = function (nonempty) { + return A2( + _mgold$elm_random_pcg$Random_Pcg$map, + function (i) { + return A2(_mgold$elm_nonempty_list$List_Nonempty$get, i, nonempty); + }, + A2( + _mgold$elm_random_pcg$Random_Pcg$int, + 0, + _mgold$elm_nonempty_list$List_Nonempty$length(nonempty) - 1)); +}; var _guyonvarch$catchvoid$Update_CloudUpdate$getNewPoint = F4( function (elapsedTime, boardSize, seed, currentScore) { var _p6 = A2(_guyonvarch$catchvoid$Update_CloudUpdate$pointInitPos, boardSize, seed); @@ -10407,6 +11427,18 @@ var _guyonvarch$catchvoid$Update_CloudUpdate$getNewPoint = F4( var _p7 = A2(_guyonvarch$catchvoid$Update_CloudUpdate$pointDestination, boardSize, seed$); var initDest = _p7._0; var seed$$ = _p7._1; + var _p8 = A2( + _mgold$elm_random_pcg$Random_Pcg$step, + function (_p9) { + return _guyonvarch$catchvoid$Update_CloudUpdate$nonemptySample( + function (_) { + return _.moves; + }(_p9)); + }( + _guyonvarch$catchvoid$Model_Level$currentLevel(currentScore)), + seed$$); + var randomMove = _p8._0; + var seed$$$ = _p8._1; return { ctor: '_Tuple2', _0: { @@ -10416,15 +11448,11 @@ var _guyonvarch$catchvoid$Update_CloudUpdate$getNewPoint = F4( move: F4( function (initTime, initPos, initDest, elapsedTime) { var delta = elapsedTime - initTime; - var move = A3( - _guyonvarch$catchvoid$Model_Level$currentLevel(currentScore).move, - initPos, - initDest, - delta); + var move = A3(randomMove, initPos, initDest, delta); return A2(_guyonvarch$catchvoid$Model_Vec2$add, initPos, move); }) }, - _1: seed$$ + _1: seed$$$ }; }); var _guyonvarch$catchvoid$Update_CloudUpdate$presentPoints = F3( @@ -10440,44 +11468,44 @@ var _guyonvarch$catchvoid$Update_CloudUpdate$presentPoints = F3( return A2(_elm_lang$core$List$filter, isPresent, points); }); var _guyonvarch$catchvoid$Update_CloudUpdate$cloudUpdate = F7( - function (elapsedTime, boardSize, seed, player, playerSize, _p8, currentScore) { - var _p9 = _p8; - var _p16 = _p9.spawn; - var _p15 = _p9.points; - var _p14 = _p9.lastSpawn; + function (elapsedTime, boardSize, seed, player, playerSize, _p10, currentScore) { + var _p11 = _p10; + var _p18 = _p11.spawn; + var _p17 = _p11.points; + var _p16 = _p11.lastSpawn; var presentOtherPoints = A3( _guyonvarch$catchvoid$Update_CloudUpdate$presentPoints, elapsedTime, boardSize, - _p15( + _p17( _guyonvarch$catchvoid$Model_Config$otherConfig(player.config))); var pointsToCatch = A3( _guyonvarch$catchvoid$Update_CloudUpdate$presentPoints, elapsedTime, boardSize, - _p15(player.config)); + _p17(player.config)); var presentAndNotCaughtPoints = A2( _elm_lang$core$List$filter, - function (_p10) { + function (_p12) { return _elm_lang$core$Basics$not( - A4(_guyonvarch$catchvoid$Model_Cloud$playerPointCollision, elapsedTime, player, playerSize, _p10)); + A4(_guyonvarch$catchvoid$Model_Cloud$playerPointCollision, elapsedTime, player, playerSize, _p12)); }, pointsToCatch); - var _p11 = function () { - if (_elm_lang$core$Native_Utils.cmp(elapsedTime, _p14 + _p16) > 0) { - var _p12 = A4(_guyonvarch$catchvoid$Update_CloudUpdate$getNewPoint, elapsedTime, boardSize, seed, currentScore); - var newPoint1 = _p12._0; - var seed$ = _p12._1; - var _p13 = A4(_guyonvarch$catchvoid$Update_CloudUpdate$getNewPoint, elapsedTime, boardSize, seed$, currentScore); - var newPoint2 = _p13._0; - var seed$$ = _p13._1; + var _p13 = function () { + if (_elm_lang$core$Native_Utils.cmp(elapsedTime, _p16 + _p18) > 0) { + var _p14 = A4(_guyonvarch$catchvoid$Update_CloudUpdate$getNewPoint, elapsedTime, boardSize, seed, currentScore); + var newPoint1 = _p14._0; + var seed$ = _p14._1; + var _p15 = A4(_guyonvarch$catchvoid$Update_CloudUpdate$getNewPoint, elapsedTime, boardSize, seed$, currentScore); + var newPoint2 = _p15._0; + var seed$$ = _p15._1; return { ctor: '_Tuple2', _0: { points: function (config) { return _elm_lang$core$Native_Utils.eq(config, player.config) ? A2(_elm_lang$core$List_ops['::'], newPoint1, presentAndNotCaughtPoints) : A2(_elm_lang$core$List_ops['::'], newPoint2, presentOtherPoints); }, - spawn: _p16 - (_elm_lang$core$Basics$sqrt(_p16) / 50), + spawn: _p18 - (_elm_lang$core$Basics$sqrt(_p18) / 50), lastSpawn: elapsedTime }, _1: seed$$ @@ -10489,15 +11517,15 @@ var _guyonvarch$catchvoid$Update_CloudUpdate$cloudUpdate = F7( points: function (config) { return _elm_lang$core$Native_Utils.eq(config, player.config) ? presentAndNotCaughtPoints : presentOtherPoints; }, - spawn: _p16, - lastSpawn: _p14 + spawn: _p18, + lastSpawn: _p16 }, _1: seed }; } }(); - var newCloud = _p11._0; - var seed$ = _p11._1; + var newCloud = _p13._0; + var seed$ = _p13._1; var addScore = _elm_lang$core$List$length(pointsToCatch) - _elm_lang$core$List$length(presentAndNotCaughtPoints); return {ctor: '_Tuple3', _0: newCloud, _1: addScore, _2: seed$}; }); @@ -10652,6 +11680,34 @@ var _guyonvarch$catchvoid$View$playerColor = function (config) { return '#0E1121'; } }; +var _guyonvarch$catchvoid$View$colorRgba = function (color) { + var c = _elm_lang$core$Color$toRgb(color); + return A2( + _elm_lang$core$Basics_ops['++'], + 'rgba(', + A2( + _elm_lang$core$Basics_ops['++'], + _elm_lang$core$Basics$toString(c.red), + A2( + _elm_lang$core$Basics_ops['++'], + ', ', + A2( + _elm_lang$core$Basics_ops['++'], + _elm_lang$core$Basics$toString(c.green), + A2( + _elm_lang$core$Basics_ops['++'], + ', ', + A2( + _elm_lang$core$Basics_ops['++'], + _elm_lang$core$Basics$toString(c.blue), + A2( + _elm_lang$core$Basics_ops['++'], + ',', + A2( + _elm_lang$core$Basics_ops['++'], + _elm_lang$core$Basics$toString(c.alpha), + ')')))))))); +}; var _guyonvarch$catchvoid$View$backgroundColor = '#1B203F'; var _guyonvarch$catchvoid$View$headerHeight = 115; var _guyonvarch$catchvoid$View$renderHeader = function (model) { @@ -10768,7 +11824,7 @@ var _guyonvarch$catchvoid$View$renderBoard = function (currentScore) { _elm_lang$svg$Svg_Attributes$width('100%'), _elm_lang$svg$Svg_Attributes$height('100%'), _elm_lang$svg$Svg_Attributes$fill( - _guyonvarch$catchvoid$Model_Color$htmlOutput( + _guyonvarch$catchvoid$View$colorRgba( _guyonvarch$catchvoid$Model_Level$progressiveColor(currentScore))) ]), _elm_lang$core$Native_List.fromArray( |