android and ios achievements.

This commit is contained in:
Bryce Covert
2018-01-04 21:54:21 -08:00
parent c4e4a14be3
commit e95d6c4be1
24 changed files with 379 additions and 24 deletions

View 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)))

View File

@@ -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?])

View File

@@ -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]

View File

@@ -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))))

View File

@@ -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

View File

@@ -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."

View File

@@ -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

View File

@@ -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))

View File

@@ -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

View File

@@ -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]

View File

@@ -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.")

View File

@@ -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)