final blergh encounter.

This commit is contained in:
2014-12-19 12:31:16 -08:00
parent d097517c46
commit 5aee0724f5
4 changed files with 69 additions and 12 deletions

View File

@@ -85,6 +85,23 @@
((:get-script default-interaction) (get-in entities [:cursor :current]) [x y])) entities))
entities))))
(defn drink-blergh [entities]
(actions/walk-straight-to entities :ego [205 45])
(sound! (sound "ego/potion.ogg") :play)
(actions/play-animation entities :ego :grow :stop? false)
(actions/do-dialogue entities
:blergh "What this? A potion of strength?"
:blergh "You're still no match for me."
:blergh "Give it to me, or I'll make you regret it!")
(actions/present-choices entities {:choices ["Ok."
{:run #(do (actions/respond entities % :ego "Here you go."))}
"No way!"
{:run #(do (actions/respond entities % :blergh "Then take this!")
(actions/play-animation entities :blergh :swing)
(actions/walk-straight-to entities :ego [100 45] :anim :squat :override-dir :right :speed 3.0)
(actions/do-dialogue entities :ego "Yeow!!"
:ego "Even with that potion, I'm not strong enough."))}]}))
(defn get-ego [screen start-pos start-scale]
(let [player-sheet (texture! (texture "player.png") :split 18 36)
@@ -124,6 +141,7 @@
grow (animation 0.1 (for [i [0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 3 0 0 0 0 3 0 0 0 3 3 0 0 0 2 2 0 0 2 0 0 2 0 2 0 2 0 2 0 2 0 2 3 2 3 2 3 2 3 2 4 3 4 3 4 3 4]]
(texture (aget grow-sheet 0 i))))
hold-up-to-window (utils/make-anim "ego/hold-up-to-window.png" [18 36] 0.1 [0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 0 0 0 0 0 0])
swing (utils/make-anim "ego/swing.png" [36 36] 0.05 (flatten [[0 0 0 1 2 3 3 3 3 ]]))
get-sick (animation 0.3 (map (partial get [(aget talk-sheet 0 0 ) (texture "ego/get-sick.png")]) [0 1 1 1 1 1 1 1 1 1 1 1]) )
ego {:right {:walk walk-right
:stand stand-anim
@@ -138,6 +156,7 @@
:grow grow
:get-sick get-sick
:hold-up-to-window hold-up-to-window
:swing swing
[:fire 1] fire-1-anim
[:fire 2] fire-2-anim
[:fire 3] fire-3-anim}
@@ -179,9 +198,12 @@
(condp = (:value cursor)
:flask-1-with-cream-of-mushroom (actions/get-script entities (actions/talk entities :ego "Blegh! Gross!"))
:flask-1-strength (actions/get-script entities
(actions/talk entities :ego "I'll just take a sip!")
(sound! (sound "ego/potion.ogg") :play)
(actions/play-animation entities :ego :grow :stop? false))
(if (get-in @entities [:room :entities :blergh])
(drink-blergh entities)
(do
(actions/talk entities :ego "I'll just take a sip!")
(sound! (sound "ego/potion.ogg") :play)
(actions/play-animation entities :ego :grow :stop? false))))
:recipe (actions/get-script entities (actions/do-dialogue entities
:ego "The recipe says:"
:ego "'For strength beyond measure,\nyou must mix, at your leisure:'"
@@ -250,6 +272,10 @@
:clues #{}
:mints-eaten 0}))
(defscreen scene
:on-timer
(fn [screen [entities]]
((get-in entities [:room :timers (:id screen) 2]) screen entities))
:on-show
(fn [screen entities]
(let [screen (assoc screen :total-time 0)]
@@ -290,7 +316,9 @@
:fps (assoc (label "0" (color :white) ) :x 5 :baseline 0)}]
(play-sound (get-in entities [:musics (get-in entities [:room :music])]))
(doseq [[k [start time fn]] (get-in entities [:room :timers])]
(add-timer! screen k start time))
(if-let [apply-state (get-in entities [:room :apply-state])]
(apply-state entities)
entities))))