diff --git a/desktop/build.boot b/desktop/build.boot new file mode 100644 index 00000000..f006017c --- /dev/null +++ b/desktop/build.boot @@ -0,0 +1,21 @@ +(set-env! :dependencies '[[com.badlogicgames.gdx/gdx "1.9.3"] + [com.badlogicgames.gdx/gdx-backend-lwjgl "1.9.3"] + [com.badlogicgames.gdx/gdx-platform "1.9.3" :classifier "natives-desktop"] + [org.clojure/clojure "1.8.0"] + [play-clj "0.4.6-BRYCE"] + [log4j/log4j "1.2.16"] + [org.clojure/data.priority-map "0.0.5"] + [org.clojure/core.async "0.2.385"] + [org.clojure/tools.logging "0.3.1"] + [org.im4java/im4java "1.4.0"]] + :resource-paths #{"resources/"}) + +(task-options! pom {:project 'advent + :version (str "2.0." (clojure.string/trim-newline (slurp "last-release")))} + aot {:namespace '#{advent.core}} + jar {:main 'advent.core.desktop-launcher + :file "advent-standalone.jar"}) + +(deftask build + [] + (comp (aot) (pom) (uber) (jar) (install))) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 435dab51..013eb24c 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -880,14 +880,14 @@ (assoc (:state selected-save) :active? true) {:object nil :active? true - :last-room :outside-house - :time :night + :last-room :dream + :time :day :obtained-items #{} :inventory [] :plaques-read #{} :clues #{} :mints-eaten 0 - :seen-intro? true})) + :seen-intro? false})) (defn fade-in-first-time-if-necessary [screen entities] (if (not (get-in entities [:started? :value])) diff --git a/desktop/src-common/advent/screens/shader.clj b/desktop/src-common/advent/screens/shader.clj new file mode 100644 index 00000000..a61aca3a --- /dev/null +++ b/desktop/src-common/advent/screens/shader.clj @@ -0,0 +1,76 @@ +(ns advent.screens.shader) + +(def v-shader "attribute vec4 a_position; +attribute vec4 a_color; +attribute vec2 a_texCoord0; + +uniform mat4 u_projTrans; + +varying vec4 v_color; +varying vec2 v_texCoords; + +void main() { + v_color = a_color; + v_texCoords = a_texCoord0; + gl_Position = u_projTrans * a_position; +}") + + +(def pix-shader " +#ifdef GL_ES + #define LOWP lowp + #define HIGHP highp + precision mediump float; +#else + #define LOWP + #define HIGHP +#endif + +varying vec4 v_color; +varying HIGHP vec2 v_texCoords; +uniform HIGHP float multiply_amount; +uniform HIGHP float hue_amount; + +uniform sampler2D u_texture; + +vec4 toGrayscale(in vec4 color) +{ + float average = (color.r + color.g + color.b) / 3.0; + return vec4(average, average, average, color.a); +} + +vec4 colorize(in vec4 grayscale, in vec4 color) +{ + return (grayscale * color); +} + + +void main () +{ + HIGHP vec2 sz = vec2 (2048.0, 2048.0); + HIGHP vec3 step = vec3 (1.0 / 4.0, 1.0 / 4.0, 0.0); + HIGHP vec2 tex_pixel = sz * v_texCoords - step.xy / 2.0; + + HIGHP vec2 corner = floor (tex_pixel) + 1.0; + HIGHP vec2 frac = min ((corner - tex_pixel) * vec2 (4.0, 4.0), vec2 (1.0, 1.0)); + + HIGHP vec4 c1 = texture2D (u_texture, (floor (tex_pixel + step.zz) + 0.5) / sz); + HIGHP vec4 c2 = texture2D (u_texture, (floor (tex_pixel + step.xz) + 0.5) / sz); + HIGHP vec4 c3 = texture2D (u_texture, (floor (tex_pixel + step.zy) + 0.5) / sz); + HIGHP vec4 c4 = texture2D (u_texture, (floor (tex_pixel + step.xy) + 0.5) / sz); + + c1 *= frac.x * frac.y; + c2 *= (1.0 - frac.x) * frac.y; + c3 *= frac.x * (1.0 - frac.y); + c4 *= (1.0 - frac.x) * (1.0 - frac.y); + vec4 scaledColor = (c1 + c2 + c3 + c4); + + vec4 grayscale = toGrayscale(scaledColor); + vec4 colorizedOutput = mix(scaledColor, colorize(grayscale, v_color.rgba), hue_amount); + + vec4 multiplied = mix(colorizedOutput.rgba, v_color.rgba * scaledColor.rgba, multiply_amount); + + gl_FragColor = vec4(multiplied.rgb, scaledColor.a * v_color.a); + +} +") diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 907483d8..60455254 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -509,8 +509,8 @@ :else (assoc-in entities [:cursor :override] :main)))) -(def default-night-merge {:r 0.08 :g 0.1 :b 0.36 :multiply-amount 1.0 :hue-amount 1.0}) -(def default-night-merge-sprite {:r 0.08 :g 0.1 :b 0.36 :multiply-amount 0.3 :hue-amount 0.4}) +(def default-night-merge {:r 0.13 :g 0.16 :b 0.61 :multiply-amount 0.5 :hue-amount 0.75}) +(def default-night-merge-sprite {:r 0.13 :g 0.16 :b 0.61 :multiply-amount 0.1 :hue-amount 0.35}) (defn clamp-volume [vol] (max vol 0.005)) diff --git a/ios/Info.plist.xml b/ios/Info.plist.xml index 6448b4da..64ae85c2 100644 --- a/ios/Info.plist.xml +++ b/ios/Info.plist.xml @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 74 + 83 MinimumOSVersion 8.0 LSRequiresIPhoneOS