goon drops coin.

This commit is contained in:
Bryce Covert
2015-07-29 23:05:07 -07:00
parent 3f354a6515
commit e7629b8c96
3 changed files with 18 additions and 11 deletions

View File

@@ -433,10 +433,12 @@
(recur (next-choices zipper))
(recur zipper)))))))
(defn update-entities [entities f]
(defn update-entities [entities f & {:keys [use-screen?] :or {use-screen? false}}]
(run-action entities
(begin [this screen entities]
(f entities))
(if use-screen?
(f screen entities)
(f entities)))
(continue [this screen entities] entities)
(done? [this screen entities] true)
(terminate [this screen entities]

View File

@@ -106,12 +106,7 @@
:origin-x 5
:origin-y 5
:night-profile :none
:coinflip coin-flip
#_#_:anim coin-flip
#_#_:anim-start 0
#_#_:stand coin-flip)))
:coinflip coin-flip)))
(defn make-goon-1 [screen]
(let [stand (utils/make-anim "castle-gate/goon-1.png" [12 33] 0.21 [0 0 0 0 0 0 0 0 0 1])]
@@ -128,9 +123,11 @@
(let [stand (utils/make-anim "castle-gate/goon-2.png" [12 32] 0.175 [0 0 0 0 0 0 0 0 0 0 0 0 0 1])
flip (utils/make-anim "castle-gate/goon-2-flip.png" [12 32] 0.05 [1 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ])]
(assoc (animation->texture screen stand)
:x 208 :y 102 :baseline 138
:x 214 :y 102 :baseline 138
:scale-x 1.4
:scale-y 1.4
:origin-x 6
:origin-y 0
:anim stand
:flip flip
:update-fn (fn [s es e]
@@ -140,6 +137,14 @@
(- (:total-time s) (:anim-start e))))
(actions/start-animation s e :stand)
e))
:script (actions/get-script entities
(if (= (get-in @entities [:room :entities :coin-flip :opacity]) 1.0)
(actions/update-entities entities
(fn [screen entities]
(let [current-y (get-in entities [:room :entities :coin-flip :y])]
(assoc-in entities [:tweens :coin-y] (tween/tween :coin-y screen [:room :entities :coin-flip :y] current-y 80 0.5 :ease tween/ease-in-cubic))))
:use-screen? true)
(actions/talk entities :ego "Hey goon!")))
:night-profile :sprite
:anim-start 0
:stand stand)))
@@ -156,7 +161,7 @@
(assoc :opacity 1.0))))
(assoc-in [:tweens :coin-y] (tween/tween :coin-y screen [:room :entities :coin-flip :y] 112 175 0.5 :ease tween/ease-out-cubic
:finish (fn [e]
(assoc-in e [:tweens :coin-y-2] (tween/tween :coin-y-2 (assoc screen :total-time (+ 0.5 (:total-time screen))) [:room :entities :coin-flip :y] 174 112 0.5 :ease tween/ease-in-cubic
(assoc-in e [:tweens :coin-y] (tween/tween :coin-y (assoc screen :total-time (+ 0.5 (:total-time screen))) [:room :entities :coin-flip :y] 174 112 0.5 :ease tween/ease-in-cubic
:finish (fn [e]
(assoc-in e [:room :entities :coin-flip :opacity] 0.0)))))))
(update-in [:room :entities :goon-2] (fn [g] (-> (actions/start-animation screen g :flip))))))

View File

@@ -61,5 +61,5 @@
new-val))]
(if (= 1.0 pct-done)
(update-in (finish e) [:tweens] dissoc id)
(finish (update-in e [:tweens] dissoc id))
e)))))