android and ios achievements.
This commit is contained in:
12
desktop/src-common/advent/achievements.clj
Normal file
12
desktop/src-common/advent/achievements.clj
Normal file
@@ -0,0 +1,12 @@
|
||||
(ns advent.achievements
|
||||
(:import [com.badlogic.gdx Gdx Application])
|
||||
(:require [advent.steam :as steam]
|
||||
[advent.utils :as utils]))
|
||||
|
||||
(def android-ids {"DESTINY" "CgkIwc6UgfgZEAIQAQ"})
|
||||
|
||||
(defn set-achievement [achievement]
|
||||
(utils/platformify
|
||||
(.reportAchievement (advent.core.GameCenter.) achievement)
|
||||
(.setAchievement (advent.core.GooglePlay.) (Gdx/app) (android-ids achievement))
|
||||
(steam/set-achievement achievement)))
|
||||
@@ -3,6 +3,7 @@
|
||||
[advent.screens.rooms.common :as common]
|
||||
[advent.screens.items :as items]
|
||||
[advent.actions :as actions]
|
||||
[advent.achievements :as achievements]
|
||||
[advent.utils :as utils]
|
||||
[advent.steam :as steam]
|
||||
[clojure.zip :as zip]
|
||||
@@ -105,6 +106,7 @@
|
||||
:label "Crumbly wall"
|
||||
:cursor :hand
|
||||
:script (actions/get-script entities
|
||||
(achievements/set-achievement "SAFE_AND_SOUND")
|
||||
(cond (= :night (get-in @entities [:state :time]))
|
||||
(actions/talk entities :ego "The house is empty right now.")
|
||||
|
||||
@@ -119,7 +121,7 @@
|
||||
(actions/talk entities :ego "So that's the code to his safe..." :animate? false :stop? false)
|
||||
(actions/play-animation entities :ego :end-squat)
|
||||
(actions/talk entities :ego "A lot of good it'll do me to know his password while he's still there.")
|
||||
(steam/set-achievement "SAFE_AND_SOUND")
|
||||
(achievements/set-achievement "SAFE_AND_SOUND")
|
||||
(increment-safe-listens entities))
|
||||
|
||||
(and (get-in @entities [:state :opened-crack?])
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
[advent.utils :as utils]
|
||||
[advent.screens.dialogue :as dialogue]
|
||||
[advent.steam :as steam]
|
||||
[advent.achievements :as achievements]
|
||||
|
||||
[advent.tween :as tween]
|
||||
[clojure.zip :as zip]
|
||||
@@ -187,7 +188,7 @@
|
||||
(actions/play-animation entities :ego :reach)
|
||||
(actions/do-dialogue entities :ego "There, now the vote is 35 to 34!")
|
||||
(actions/update-state entities #(assoc % :has-voted? true))
|
||||
(steam/set-achievement "PARDON"))))
|
||||
(achievements/set-achievement "PARDON"))))
|
||||
|
||||
(defn make-note []
|
||||
{:box [97 102 111 132]
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
[advent.screens.rooms.common :as common]
|
||||
[advent.utils :as utils]
|
||||
[advent.steam :as steam]
|
||||
[advent.achievements :as achievements]
|
||||
[clojure.zip :as zip]
|
||||
[play-clj.core :refer :all]
|
||||
[play-clj.ui :refer :all]
|
||||
@@ -411,7 +412,7 @@
|
||||
(actions/give entities :kiss)
|
||||
(actions/do-dialogue entities :ego "A kiss for an inventory item?"
|
||||
:ego "Sounds like the game designer was running out of good ideas.")
|
||||
(steam/set-achievement "KITTY_KISS"))
|
||||
(achievements/set-achievement "KITTY_KISS"))
|
||||
(actions/talk entities :ego "I can't get his attention from way down here.")))
|
||||
:stick (actions/get-script entities
|
||||
(if (get-in @entities [:room :entities :ladder])
|
||||
@@ -507,7 +508,7 @@
|
||||
(actions/play-animation entities :owl :eye)
|
||||
(actions/do-dialogue entities
|
||||
:owl "I don't think that helped that much.")
|
||||
(steam/set-achievement "BEHOLDER")
|
||||
(achievements/set-achievement "BEHOLDER")
|
||||
(when (actions/has-obtained? entities :feather)
|
||||
(actions/do-dialogue entities :owl "I think I'll just stick to the monocle."))
|
||||
(actions/update-state entities (fn [s] (assoc s :owl-tried-strength? true))))
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[advent.actions :as actions]
|
||||
[advent.screens.items :as items]
|
||||
[advent.steam :as steam]
|
||||
[advent.achievements :as achievements]
|
||||
[advent.utils :as utils]
|
||||
[advent.pathfind]
|
||||
[advent.tween :as tween]
|
||||
@@ -480,7 +481,7 @@
|
||||
:ego "Hey!"
|
||||
:ego "I won!")
|
||||
|
||||
(steam/set-achievement "BLOODCLOT")
|
||||
(achievements/set-achievement "BLOODCLOT")
|
||||
(actions/glad entities)
|
||||
(actions/walk-straight-to entities :ego [340 55])
|
||||
(actions/run-action entities
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
[advent.tween :as tween]
|
||||
[advent.utils :as utils]
|
||||
[advent.saves :as saves]
|
||||
[advent.achievements :as achievements]
|
||||
[advent.steam :as steam]
|
||||
[clojure.zip :as zip]
|
||||
[clojure.set :as set]
|
||||
@@ -93,6 +94,7 @@
|
||||
|
||||
|
||||
(defn read-sword-plaque [entities]
|
||||
|
||||
(actions/walk-to entities :ego [168 76] :face :left)
|
||||
|
||||
(if-not (get-in @entities [:state :plaques-read :sword])
|
||||
@@ -467,7 +469,7 @@
|
||||
(actions/resume-camera entities)
|
||||
(actions/walk-straight-to entities :ego [79 145] :stop? false)
|
||||
(actions/walk-to entities :ego [159 74])
|
||||
(steam/set-achievement "DESTINY")
|
||||
(achievements/set-achievement "DESTINY")
|
||||
(actions/do-dialogue entities
|
||||
:ego "Man! What a dream!"
|
||||
:ego "If only I could become a real knight."
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[advent.screens.items :as items]
|
||||
[advent.actions :as actions]
|
||||
[advent.steam :as steam]
|
||||
[advent.achievements :as achievements]
|
||||
[advent.utils :as utils]
|
||||
[clojure.zip :as zip]
|
||||
[play-clj.core :refer :all]
|
||||
@@ -86,7 +87,7 @@
|
||||
:warriors "Take thy servant's medal of strength.")
|
||||
(actions/give entities :medal)
|
||||
(actions/glad entities)
|
||||
(steam/set-achievement "PRO_WRESTLER"))
|
||||
(achievements/set-achievement "PRO_WRESTLER"))
|
||||
(do
|
||||
(play-battle entities :lose)
|
||||
(actions/do-dialogue entities
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
[advent.screens.items :as items]
|
||||
[advent.utils :as utils]
|
||||
[advent.steam :as steam]
|
||||
[advent.achievements :as achievements]
|
||||
[advent.tween :as tween]
|
||||
[clojure.zip :as zip]
|
||||
[clojure.set :as set]
|
||||
@@ -631,7 +632,7 @@
|
||||
(actions/remove-entity entities :trophy)
|
||||
(actions/glad entities)
|
||||
(actions/talk entities :ego "Thanks!")
|
||||
(steam/set-achievement "WISE_UP")
|
||||
(achievements/set-achievement "WISE_UP")
|
||||
)
|
||||
))
|
||||
(brian-get-to-work entities))
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[advent.screens.rooms.common :as common]
|
||||
[advent.saves :as saves]
|
||||
[advent.steam :as steam]
|
||||
[advent.achievements :as achievements]
|
||||
[advent.actions :as actions]
|
||||
[advent.screens.items :as items]
|
||||
[advent.utils :as utils]
|
||||
@@ -201,7 +202,7 @@
|
||||
:ego "But what now?"
|
||||
:ego "I have till sunrise before Bloodclot comes and destroys the town."
|
||||
:ego "Maybe Gandarf can help me!")
|
||||
(steam/set-achievement "EX_CON")
|
||||
(achievements/set-achievement "EX_CON")
|
||||
(utils/save-chapter @entities :chapter-4)
|
||||
)
|
||||
(do
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
[advent.actions :as actions]
|
||||
[advent.tween :as tween]
|
||||
[advent.steam :as steam]
|
||||
[advent.achievements :as achievements]
|
||||
[advent.utils :as utils]
|
||||
[advent.iap :as iap]
|
||||
[clojure.zip :as zip]
|
||||
@@ -724,7 +725,7 @@
|
||||
(actions/play-animation entities :ego :reach)
|
||||
(actions/update-state entities #(assoc % :wool-count (inc (or (:wool-count %) 0))))
|
||||
(when (= 3 (get-in @entities [:state :wool-count]))
|
||||
(steam/set-achievement "SHEEP_HORDER"))
|
||||
(achievements/set-achievement "SHEEP_HORDER"))
|
||||
|
||||
(actions/update-entities entities #(update-in
|
||||
% [:room :entities :sheep]
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
[advent.saves :as saves]
|
||||
[advent.tween :as tween]
|
||||
[advent.steam :as steam]
|
||||
[advent.achievements :as achievements]
|
||||
[advent.screens.rooms :as rooms]
|
||||
[advent.screens.shader :refer [v-shader pix-shader]]
|
||||
[advent.screens.fade :refer [fade-screen]]
|
||||
@@ -278,7 +279,7 @@
|
||||
(Thread/sleep 500)
|
||||
(actions/play-animation entities :ego :sigh)
|
||||
(actions/talk entities :ego "You really are a sucker for punishment, aren't you?")
|
||||
(steam/set-achievement "FOOLISH_LULLABY"))
|
||||
(achievements/set-achievement "FOOLISH_LULLABY"))
|
||||
:else
|
||||
(do
|
||||
(actions/talk entities :ego "Ugh! I have Gandarf's MagiSafe 2000 tune stuck in my head.")
|
||||
|
||||
@@ -393,6 +393,15 @@
|
||||
|
||||
save-object
|
||||
(#(utils/add-actor-to-stage screen %)))
|
||||
|
||||
:google-play (doto (assoc (image-button (BaseDrawable.)) :x 1150 :y 160 :scale-x 4 :scale-y 4 :origin-x 0 :origin-y 0 :z 10 :key :google-play)
|
||||
|
||||
(image-button! :add (doto (Group. )
|
||||
(.addActor (:object (doto (image (utils/atlas->texture title-atlas "google-play.png"))
|
||||
(image! :set-scale 4))))))
|
||||
|
||||
save-object
|
||||
(#(utils/add-actor-to-stage screen %)))
|
||||
:logo (assoc (utils/atlas->texture title-atlas "logo.png" ) :x 640 :y 960 :scale-x (/ 4 utils/ui-scale) :scale-y (/ 4 utils/ui-scale) :origin-x 160 :origin-y 240 :z 6)
|
||||
:fade (assoc (utils/atlas->texture global-atlas "black.png")
|
||||
:scale-x 80
|
||||
@@ -537,6 +546,15 @@
|
||||
(assoc :chapters-menu (->> (chapters-menu )
|
||||
(utils/add-actor-to-stage screen))))
|
||||
|
||||
|
||||
(= :google-play actor-key)
|
||||
(utils/platformify
|
||||
entities
|
||||
(do
|
||||
(.showAchievements (advent.core.GooglePlay.) (Gdx/app))
|
||||
entities)
|
||||
entities)
|
||||
|
||||
(= :settings actor-key)
|
||||
(-> entities
|
||||
(utils/remove-actor-from-stage :main-menu)
|
||||
|
||||
Reference in New Issue
Block a user