Merge branch 'master' of https://bitbucket.org/brycecovertoperations/advent
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 5.2 KiB |
BIN
desktop/resources/ego/grow.png
Normal file
BIN
desktop/resources/ego/grow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
BIN
desktop/resources/ego/grow.pxa/0.pxi
Normal file
BIN
desktop/resources/ego/grow.pxa/0.pxi
Normal file
Binary file not shown.
BIN
desktop/resources/ego/grow.pxa/1.pxi
Normal file
BIN
desktop/resources/ego/grow.pxa/1.pxi
Normal file
Binary file not shown.
BIN
desktop/resources/ego/grow.pxa/2.pxi
Normal file
BIN
desktop/resources/ego/grow.pxa/2.pxi
Normal file
Binary file not shown.
BIN
desktop/resources/ego/grow.pxa/3.pxi
Normal file
BIN
desktop/resources/ego/grow.pxa/3.pxi
Normal file
Binary file not shown.
22
desktop/resources/ego/grow.pxa/CelData.plist
Normal file
22
desktop/resources/ego/grow.pxa/CelData.plist
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>duration</key>
|
||||||
|
<real>1</real>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>duration</key>
|
||||||
|
<real>1</real>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>duration</key>
|
||||||
|
<real>1</real>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>duration</key>
|
||||||
|
<real>1</real>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</plist>
|
||||||
BIN
desktop/resources/inside-cafeteria/warriors-stand.png
Normal file
BIN
desktop/resources/inside-cafeteria/warriors-stand.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.7 KiB |
@@ -6,6 +6,10 @@
|
|||||||
(declare wool)
|
(declare wool)
|
||||||
(declare cat-toy)
|
(declare cat-toy)
|
||||||
(declare flask-1-with-milk)
|
(declare flask-1-with-milk)
|
||||||
|
(declare slobber)
|
||||||
|
(declare flask-1-strength)
|
||||||
|
(declare flask-1-with-cream-of-mushroom)
|
||||||
|
|
||||||
(def make-cat-toy
|
(def make-cat-toy
|
||||||
(actions/get-script entities
|
(actions/get-script entities
|
||||||
(actions/remove-item entities stick)
|
(actions/remove-item entities stick)
|
||||||
@@ -18,8 +22,6 @@
|
|||||||
(def carrot {:name "Carrot" :value :carrot :cursor :carrot})
|
(def carrot {:name "Carrot" :value :carrot :cursor :carrot})
|
||||||
|
|
||||||
(def flask-1-with-mushrooms {:name "Flask with mushrooms" :value :flask-1-with-mushrooms :cursor :flask-with-contents})
|
(def flask-1-with-mushrooms {:name "Flask with mushrooms" :value :flask-1-with-mushrooms :cursor :flask-with-contents})
|
||||||
(def flask-1-with-cream-of-mushroom {:name "Flask with cream of mushrooms soup" :value :flask-1-with-cream-of-mushroom :cursor :flask-with-contents})
|
|
||||||
|
|
||||||
|
|
||||||
(defn make-cream-of-mushroom []
|
(defn make-cream-of-mushroom []
|
||||||
(actions/get-script entities
|
(actions/get-script entities
|
||||||
@@ -32,7 +34,7 @@
|
|||||||
(def flask-1-with-milk {:name "Flask with milk" :value :flask-1-with-milk :cursor :flask-with-contents
|
(def flask-1-with-milk {:name "Flask with milk" :value :flask-1-with-milk :cursor :flask-with-contents
|
||||||
:scripts {:mushrooms (make-cream-of-mushroom)}})
|
:scripts {:mushrooms (make-cream-of-mushroom)}})
|
||||||
|
|
||||||
(def flask-1-strength {:name "Strength potion" :value :flask-1-strength :cursor :flask-with-contents})
|
(def flask-1-strength {:name "Strength potion" :value :flask-1-strength :cursor :flask-with-strength})
|
||||||
(def flask-1 {:name "Flask" :value :flask-1 :cursor :flask
|
(def flask-1 {:name "Flask" :value :flask-1 :cursor :flask
|
||||||
:scripts {:mushrooms (actions/get-script entities
|
:scripts {:mushrooms (actions/get-script entities
|
||||||
(actions/remove-item entities flask-1)
|
(actions/remove-item entities flask-1)
|
||||||
@@ -55,3 +57,16 @@
|
|||||||
(def glass-eye {:name "Choicest of glass eyes" :value :glass-eye :cursor :glass-eye})
|
(def glass-eye {:name "Choicest of glass eyes" :value :glass-eye :cursor :glass-eye})
|
||||||
(def motivational-tapes {:name "Choicest motivational tapes" :value :motivational-tapes :cursor :motivational-tapes})
|
(def motivational-tapes {:name "Choicest motivational tapes" :value :motivational-tapes :cursor :motivational-tapes})
|
||||||
(def used-earplugs {:name "Choicest used earplugs" :value :used-earplugs :cursor :used-earplugs})
|
(def used-earplugs {:name "Choicest used earplugs" :value :used-earplugs :cursor :used-earplugs})
|
||||||
|
(def grass {:name "Huge grass" :value :grass :cursor :grass})
|
||||||
|
|
||||||
|
(defn make-strength-potion []
|
||||||
|
(actions/get-script entities
|
||||||
|
(actions/remove-item entities flask-1-with-cream-of-mushroom)
|
||||||
|
(actions/remove-item entities slobber)
|
||||||
|
(actions/give entities flask-1-strength)
|
||||||
|
(actions/talk entities :ego "It's the completed potion of strength!")))
|
||||||
|
|
||||||
|
(def slobber {:name "Bull slobber" :value :slobber :cursor :slobber :scripts {:flask-1-with-cream-of-mushroom (make-strength-potion)}})
|
||||||
|
(def flask-1-with-cream-of-mushroom {:name "Flask with cream of mushrooms soup" :value :flask-1-with-cream-of-mushroom :cursor :flask-with-contents
|
||||||
|
:scripts {:slobber (make-strength-potion)}})
|
||||||
|
|
||||||
|
|||||||
@@ -9,18 +9,64 @@
|
|||||||
[play-clj.utils :refer :all]
|
[play-clj.utils :refer :all]
|
||||||
[play-clj.g2d :refer :all]))
|
[play-clj.g2d :refer :all]))
|
||||||
|
|
||||||
|
(defn do-warrior-dialogue [entities]
|
||||||
|
(actions/talk entities :ego "Hey guys!")
|
||||||
|
(actions/talk entities :warriors "Hark! Good day, young esquire.")
|
||||||
|
(actions/present-choices entities
|
||||||
|
{:choices ["Why dost thou speaketh in this manner?"
|
||||||
|
{:run #(actions/respond entities %
|
||||||
|
:warriors "`Tis but a tradition!"
|
||||||
|
:warriors "All knights speaketh in such a manner."
|
||||||
|
:warriors "As my father instructedeth unto me as a mere lad: "
|
||||||
|
:warriors "'Son, thou must speaketh in this manner.'"
|
||||||
|
:warriors "And I asketh unto him:"
|
||||||
|
:warriors "'But father, why musteth I speaketh in this manner?'"
|
||||||
|
:warriors "'Yea, my son, for thou art a knight. And thou musteth speaketh in this manner.'"
|
||||||
|
:warriors "And I toldeth unto him:"
|
||||||
|
:warriors "'Thou art my father, and I am thy son. Therefore I will speaketh in this manner.'"
|
||||||
|
:ego "... I think I've got the idea.")
|
||||||
|
:choices actions/previous-choices}
|
||||||
|
"Can I be a knight like you guys?"
|
||||||
|
{:run #(actions/respond entities %
|
||||||
|
:warriors "We thinketh not, young esquire."
|
||||||
|
:warriors "You lacketh the strength and vigor required for such a task.")
|
||||||
|
:choices ["But I'm on a quest to become a knight!"
|
||||||
|
{:run #(actions/respond entities %
|
||||||
|
:warriors "Young esquire, thou art valiant in heart. "
|
||||||
|
:warriors "Departeth henceforth and go hitherto, unto the gym.")}
|
||||||
|
"I challenge you to a arm wrestling match to prove my strength."
|
||||||
|
{:run #(actions/respond entities % :warriors "[TODO] You lose.")}
|
||||||
|
"Something else."
|
||||||
|
{:choices actions/something-else}]
|
||||||
|
}
|
||||||
|
"Goodbye."
|
||||||
|
{:run #(actions/respond entities % :warriors "Fare thee well, and godspeed.")}]}))
|
||||||
|
|
||||||
(defn make [screen]
|
(defn make [screen]
|
||||||
(rooms/make :music :town-1
|
(let [warriors-stand-sheet (texture! (texture "inside-cafeteria/warriors-stand.png") :split 66 126)
|
||||||
:interactions
|
warriors-stand (animation 0.2 (for [i [0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 2 2 2 2 3 3 3 0 0 0 2 2 2 ]]
|
||||||
{:right-dir {:box [300 0 320 120]
|
(aget warriors-stand-sheet 0 i)))]
|
||||||
:script (actions/get-script
|
(rooms/make :music :town-1
|
||||||
entities
|
:interactions
|
||||||
(actions/walk-to entities :ego [319 50])
|
{:right-dir {:box [300 0 320 120]
|
||||||
(actions/transition-background entities :inside-castle [65 150])
|
:script (actions/get-script
|
||||||
(actions/walk-to entities :ego [126 80]))
|
entities
|
||||||
:cursor :right}
|
(actions/walk-to entities :ego [319 50])
|
||||||
}
|
(actions/transition-background entities :inside-castle [65 150])
|
||||||
:layers [(assoc (texture "inside-cafeteria/background.png") :x 0 :y 0 :baseline 0)]
|
(actions/walk-to entities :ego [126 80]))
|
||||||
:entities {}
|
:cursor :right}
|
||||||
:collision "inside-cafeteria/collision.png"
|
}
|
||||||
:scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.50)))
|
:layers [(assoc (texture "inside-cafeteria/background.png") :x 0 :y 0 :baseline 0)]
|
||||||
|
:entities {:warriors (actions/start-animation screen (assoc (animation->texture screen warriors-stand) :x 5 :y 9 :baseline 180
|
||||||
|
|
||||||
|
:left {:stand (utils/flip warriors-stand)
|
||||||
|
:talk (utils/flip warriors-stand)}
|
||||||
|
:right {:stand warriors-stand
|
||||||
|
:talk warriors-stand}
|
||||||
|
:facing :right
|
||||||
|
:script (actions/get-script entities
|
||||||
|
(do-warrior-dialogue entities)
|
||||||
|
))
|
||||||
|
:stand) }
|
||||||
|
:collision "inside-cafeteria/collision.png"
|
||||||
|
:scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.50))))
|
||||||
|
|||||||
@@ -120,6 +120,12 @@
|
|||||||
:stand)
|
:stand)
|
||||||
:steer (assoc (texture "outside-castle/steer.png" ) :x 203 :y 155 :baseline 80
|
:steer (assoc (texture "outside-castle/steer.png" ) :x 203 :y 155 :baseline 80
|
||||||
:script (actions/get-script entities
|
:script (actions/get-script entities
|
||||||
(actions/talk entities :ego "That is one buff bull!")))}
|
(actions/talk entities :ego "That is one buff bull!"))
|
||||||
|
:scripts {:grass (actions/get-script entities
|
||||||
|
(actions/walk-to entities :ego [168 150] :face :right)
|
||||||
|
(actions/play-animation entities :ego :reach)
|
||||||
|
(actions/remove-item entities items/grass)
|
||||||
|
(actions/talk entities :ego "Eww! He slobbered on my hand.")
|
||||||
|
(actions/give entities items/slobber))})}
|
||||||
:collision "outside-castle/collision.png"
|
:collision "outside-castle/collision.png"
|
||||||
:scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.00))))
|
:scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.00))))
|
||||||
|
|||||||
@@ -188,7 +188,7 @@
|
|||||||
(actions/give entities items/flask-1-with-milk)
|
(actions/give entities items/flask-1-with-milk)
|
||||||
(actions/talk entities :ego "Sheeps milk."))
|
(actions/talk entities :ego "Sheeps milk."))
|
||||||
(actions/talk entities :ego "She's too far away.")))
|
(actions/talk entities :ego "She's too far away.")))
|
||||||
items/flask-1-with-mushrooms (items/make-cream-of-mushroom)}
|
:flask-1-with-mushrooms (items/make-cream-of-mushroom)}
|
||||||
:left {:walk (utils/flip sheep-walk)
|
:left {:walk (utils/flip sheep-walk)
|
||||||
:stand (utils/flip sheep-stand)}
|
:stand (utils/flip sheep-stand)}
|
||||||
:right {:walk sheep-walk
|
:right {:walk sheep-walk
|
||||||
|
|||||||
@@ -83,6 +83,7 @@
|
|||||||
stand-sheet (texture! (texture "ego/stand.png") :split 18 36)
|
stand-sheet (texture! (texture "ego/stand.png") :split 18 36)
|
||||||
squat-sheet (texture! (texture "ego/squat.png") :split 18 36)
|
squat-sheet (texture! (texture "ego/squat.png") :split 18 36)
|
||||||
reach-sheet (texture! (texture "ego/reach.png") :split 18 36)
|
reach-sheet (texture! (texture "ego/reach.png") :split 18 36)
|
||||||
|
grow-sheet (texture! (texture "ego/grow.png") :split 18 36)
|
||||||
cat-toy-sheet (texture! (texture "ego/cat-toy.png") :split 41 50)
|
cat-toy-sheet (texture! (texture "ego/cat-toy.png") :split 41 50)
|
||||||
fire-sheet (texture! (texture "ego/fire.png") :split 18 36)
|
fire-sheet (texture! (texture "ego/fire.png") :split 18 36)
|
||||||
walk-right (animation 0.075 (for [i (range 8)]
|
walk-right (animation 0.075 (for [i (range 8)]
|
||||||
@@ -107,6 +108,8 @@
|
|||||||
(texture (aget fire-sheet 0 i))))
|
(texture (aget fire-sheet 0 i))))
|
||||||
fire-3-anim (animation 0.1 (for [i [0 1 2 2 2 2 3 2 3 2 2 2 4 5 6 7 2 2 2 8 9 10 11 2 2 2 2 2 2 2 2 0]]
|
fire-3-anim (animation 0.1 (for [i [0 1 2 2 2 2 3 2 3 2 2 2 4 5 6 7 2 2 2 8 9 10 11 2 2 2 2 2 2 2 2 0]]
|
||||||
(texture (aget fire-sheet 0 i))))
|
(texture (aget fire-sheet 0 i))))
|
||||||
|
grow (animation 0.1 (for [i [0 2 0 0 0 0 2 0 0 0 2 2 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 2 1 2 1 2 1 2 1 3 2 3 2 3 2 3]]
|
||||||
|
(texture (aget grow-sheet 0 i))))
|
||||||
ego {:right {:walk walk-right
|
ego {:right {:walk walk-right
|
||||||
:stand stand-anim
|
:stand stand-anim
|
||||||
:talk talk-anim
|
:talk talk-anim
|
||||||
@@ -115,6 +118,7 @@
|
|||||||
:end-squat end-squat
|
:end-squat end-squat
|
||||||
:reach reach-anim
|
:reach reach-anim
|
||||||
:cat-toy cat-toy-anim
|
:cat-toy cat-toy-anim
|
||||||
|
:grow grow
|
||||||
[:fire 1] fire-1-anim
|
[:fire 1] fire-1-anim
|
||||||
[:fire 2] fire-2-anim
|
[:fire 2] fire-2-anim
|
||||||
[:fire 3] fire-3-anim}
|
[:fire 3] fire-3-anim}
|
||||||
@@ -126,6 +130,7 @@
|
|||||||
:squat (utils/flip squat-anim)
|
:squat (utils/flip squat-anim)
|
||||||
:reach (utils/flip reach-anim)
|
:reach (utils/flip reach-anim)
|
||||||
:cat-toy (utils/flip cat-toy-anim)
|
:cat-toy (utils/flip cat-toy-anim)
|
||||||
|
:grow (utils/flip grow)
|
||||||
[:fire 1] (utils/flip fire-1-anim)
|
[:fire 1] (utils/flip fire-1-anim)
|
||||||
[:fire 2] (utils/flip fire-2-anim)
|
[:fire 2] (utils/flip fire-2-anim)
|
||||||
[:fire 3] (utils/flip fire-3-anim)}
|
[:fire 3] (utils/flip fire-3-anim)}
|
||||||
@@ -135,15 +140,32 @@
|
|||||||
:origin-y 0
|
:origin-y 0
|
||||||
:scaled true
|
:scaled true
|
||||||
|
|
||||||
#_:mouse-in? #_(fn [entities x y]
|
:mouse-in? (fn [entities x y]
|
||||||
(let [{entity-x :x entity-y :y region :object} (get-in entities [:room :entities :ego])
|
(let [{entity-x :x entity-y :y region :object scale :scale-x} (get-in entities [:room :entities :ego])
|
||||||
width (.getRegionWidth region)
|
half-width (/ (* (.getRegionWidth region) (or scale 1.0)) 2)
|
||||||
height (.getRegionHeight region)]
|
height (* (.getRegionHeight region) (or scale 1.0))]
|
||||||
|
#_(clojure.pprint/pprint [["point" x y]
|
||||||
|
["entity " (- entity-x half-width) entity-y (+ entity-x half-width) (+ entity-y height)]])
|
||||||
|
|
||||||
((zone/box entity-x entity-y (+ entity-x width) (+ entity-y height)) x y)))
|
((zone/box (- entity-x half-width) entity-y (+ entity-x half-width) (+ entity-y height)) x y)))
|
||||||
#_:get-script #_(fn [cursor [x y]]
|
:get-script (fn [cursor [x y]]
|
||||||
(case cursor
|
(condp = cursor
|
||||||
items/flask-with-cream-of-mushroom (actions/get-script entities (actions/talk entities :ego "Yuck. I filled it with backwash."))))
|
items/flask-1-with-cream-of-mushroom (actions/get-script entities (actions/talk entities :ego "Blegh! Gross!"))
|
||||||
|
items/flask-1-strength (actions/get-script entities
|
||||||
|
(actions/talk entities :ego "I'll just take a sip!")
|
||||||
|
(actions/talk entities :ego "Woah! I feel something!!")
|
||||||
|
(actions/play-animation entities :ego :grow :stop? false))
|
||||||
|
items/recipe (actions/get-script entities (actions/do-dialogue entities
|
||||||
|
:ego "The recipe says:"
|
||||||
|
:ego "'For strength beyond measure,'"
|
||||||
|
:ego "'you must mix, at your leisure:'"
|
||||||
|
:ego "'1. Cream of mushroom soup.'"
|
||||||
|
:ego "'2. Saliva of the creature whose strength you want to match.'"
|
||||||
|
:ego "'A word of warning, before you go.'"
|
||||||
|
:ego "'A sip is all it takes to grow.'"
|
||||||
|
:ego "'Not more than that do drink,'"
|
||||||
|
:ego "'Or you'll push your body to the brink.'"))
|
||||||
|
nil))
|
||||||
:x 150 :y 95
|
:x 150 :y 95
|
||||||
:id "ego"}]
|
:id "ego"}]
|
||||||
(actions/start-animation screen
|
(actions/start-animation screen
|
||||||
@@ -205,7 +227,7 @@
|
|||||||
:inside-fangald (make-music "inside-fangald.ogg")}
|
:inside-fangald (make-music "inside-fangald.ogg")}
|
||||||
:state {:object nil
|
:state {:object nil
|
||||||
:active? true
|
:active? true
|
||||||
:inventory []
|
:inventory [items/flask-1-strength]
|
||||||
:clues #{}
|
:clues #{}
|
||||||
:mints-eaten 0}
|
:mints-eaten 0}
|
||||||
:actions {:object nil
|
:actions {:object nil
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
|
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
|
||||||
(println (:input-x screen) (:input-y screen) "->" x y)))
|
(println (:input-x screen) (:input-y screen) "->" x y)))
|
||||||
|
|
||||||
(def +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :stool :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs])
|
(def +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :stool :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength])
|
||||||
|
|
||||||
(defn cursor [filename which]
|
(defn cursor [filename which]
|
||||||
(let [scale 2
|
(let [scale 2
|
||||||
|
|||||||
Reference in New Issue
Block a user