diff --git a/desktop/resources/cards/bar.png b/desktop/resources/cards/bar.png new file mode 100644 index 00000000..33bdceca Binary files /dev/null and b/desktop/resources/cards/bar.png differ diff --git a/desktop/resources/cards/heal-big.png b/desktop/resources/cards/heal-big.png new file mode 100644 index 00000000..810b639f Binary files /dev/null and b/desktop/resources/cards/heal-big.png differ diff --git a/desktop/resources/cards/heal-med.png b/desktop/resources/cards/heal-med.png new file mode 100644 index 00000000..4ac503d0 Binary files /dev/null and b/desktop/resources/cards/heal-med.png differ diff --git a/desktop/resources/cards/heal-small.png b/desktop/resources/cards/heal-small.png new file mode 100644 index 00000000..bf21e3f2 Binary files /dev/null and b/desktop/resources/cards/heal-small.png differ diff --git a/desktop/resources/cards/health-bar.png b/desktop/resources/cards/health-bar.png new file mode 100644 index 00000000..aeaa79d3 Binary files /dev/null and b/desktop/resources/cards/health-bar.png differ diff --git a/desktop/resources/cards/mana-bar.png b/desktop/resources/cards/mana-bar.png new file mode 100644 index 00000000..3a784f98 Binary files /dev/null and b/desktop/resources/cards/mana-bar.png differ diff --git a/desktop/resources/cards/recharge-big.png b/desktop/resources/cards/recharge-big.png new file mode 100644 index 00000000..524e8c9b Binary files /dev/null and b/desktop/resources/cards/recharge-big.png differ diff --git a/desktop/resources/cards/recharge-med.png b/desktop/resources/cards/recharge-med.png new file mode 100644 index 00000000..a0a19b2e Binary files /dev/null and b/desktop/resources/cards/recharge-med.png differ diff --git a/desktop/resources/cards/recharge-small.png b/desktop/resources/cards/recharge-small.png new file mode 100644 index 00000000..d2362839 Binary files /dev/null and b/desktop/resources/cards/recharge-small.png differ diff --git a/desktop/resources/cards/recharge.png b/desktop/resources/cards/recharge.png new file mode 100644 index 00000000..810b639f Binary files /dev/null and b/desktop/resources/cards/recharge.png differ diff --git a/desktop/src-common/advent/core.clj b/desktop/src-common/advent/core.clj index 21acaf89..790e5951 100644 --- a/desktop/src-common/advent/core.clj +++ b/desktop/src-common/advent/core.clj @@ -6,6 +6,7 @@ [advent.screens.scene :as scene] [advent.screens.dialogue :as dialogue] [advent.screens.inventory :as inventory] + [advent.screens.cards :as cards] [clojure.pprint] [advent.pathfind]) (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter] @@ -16,4 +17,4 @@ (defgame advent :on-create (fn [this] - (set-screen! this scene/scene dialogue/talking-screen dialogue/choice-screen inventory/inventory-screen))) + (set-screen! this scene/scene dialogue/talking-screen dialogue/choice-screen inventory/inventory-screen cards/card-screen ))) diff --git a/desktop/src-common/advent/screens/cards.clj b/desktop/src-common/advent/screens/cards.clj new file mode 100644 index 00000000..9b0b593e --- /dev/null +++ b/desktop/src-common/advent/screens/cards.clj @@ -0,0 +1,51 @@ +(ns advent.screens.cards + (:require [play-clj.core :refer :all] + [play-clj.ui :refer :all] + [play-clj.utils :refer :all] + [play-clj.g2d :refer :all] + [clojure.pprint] + [advent.pathfind] + [clojure.core.async :refer [put! ! >!! chan go thread take! alts!!]] + ) + (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter] + [com.badlogic.gdx.graphics.g2d TextureRegion] + [com.badlogic.gdx.scenes.scene2d.utils Align] + [com.badlogic.gdx Screen])) + +(def min-x (+ 16 (* 320 0.1))) +(defscreen card-screen + :on-show + (fn [screen entities] + (update! screen :renderer (stage) :camera (orthographic)) + {:all-cards {:heal-big (texture "cards/heal-big.png") + :heal-med (texture "cards/heal-med.png") + :heal-small (texture "cards/heal-small.png") + :recharge-big (texture "cards/recharge-big.png") + :recharge-med (texture "cards/recharge-med.png") + :recharge-small (texture "cards/recharge-small.png")} + :health-bar (texture "cards/health-bar.png") + :mana-bar (texture "cards/mana-bar.png") + :bar (texture "cards/bar.png") + :player {:hp 65 + :mana 50 + :hand [:heal-big :heal-small :recharge-big :recharge-big :recharge-big]}}) + + :on-render + (fn [screen [entities]] + (let [player-hand (for [[c index] (map vector (get-in entities [:player :hand]) (range))] + (assoc (get-in entities [:all-cards c]) :x (+ min-x (* index 50)) :y 32)) + player-health (assoc (get-in entities [:health-bar]) + :x min-x + :y 16 + :width (* (/ (get-in entities [:player :hp]) 100.0) 50)) + player-mana (assoc (get-in entities [:mana-bar]) + :x min-x + :y 5 + :width (get-in entities [:player :mana]))] + (render! screen player-hand) + (render! screen [player-health (assoc (get-in entities [:bar] ) :x min-x :y 16)]) + (render! screen [player-mana (assoc (get-in entities [:bar] ) :x min-x :y 5)])) + entities) + + :on-resize (fn [screen entities] + (size! screen 320 240))) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index bc2daa6a..f586e6b7 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -154,7 +154,7 @@ (update! screen :renderer (stage) :camera (orthographic)) (let [_ (input! :set-cursor-image (utils/cursor "cursor.png" :main) 0 0) music (sound "town-music.mp3") - ;;_ (sound! music :loop 0.30) + _ (sound! music :loop 0.30) rooms {:inside-house (rooms.inside-house/make screen) :outside-house (rooms.outside-house/make screen) :behind-house (rooms.behind-house/make screen)