progresss on blergh fight.
BIN
desktop/resources/ego/shoot.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
desktop/resources/ego/shoot.pxa/0.pxi
Normal file
BIN
desktop/resources/ego/shoot.pxa/1.pxi
Normal file
BIN
desktop/resources/ego/shoot.pxa/2.pxi
Normal file
BIN
desktop/resources/ego/shoot.pxa/3.pxi
Normal file
BIN
desktop/resources/ego/shoot.pxa/4.pxi
Normal file
BIN
desktop/resources/ego/shoot.pxa/5.pxi
Normal file
30
desktop/resources/ego/shoot.pxa/CelData.plist
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?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>
|
||||||
|
<dict>
|
||||||
|
<key>duration</key>
|
||||||
|
<real>1</real>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>duration</key>
|
||||||
|
<real>1</real>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</plist>
|
||||||
BIN
desktop/resources/inside-castle/background-sunrise.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
desktop/resources/inside-castle/inside-castle-sunrise.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
desktop/resources/outside-castle/background-sunrise.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
BIN
desktop/resources/space/broken-jewel.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
desktop/resources/space/bullet.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
desktop/resources/space/bullet.pxa/0.pxi
Normal file
BIN
desktop/resources/space/bullet.pxa/1.pxi
Normal file
BIN
desktop/resources/space/bullet.pxa/2.pxi
Normal file
BIN
desktop/resources/space/bullet.pxa/3.pxi
Normal file
BIN
desktop/resources/space/bullet.pxa/4.pxi
Normal file
BIN
desktop/resources/space/bullet.pxa/5.pxi
Normal file
BIN
desktop/resources/space/bullet.pxa/6.pxi
Normal file
BIN
desktop/resources/space/bullet.pxa/7.pxi
Normal file
38
desktop/resources/space/bullet.pxa/CelData.plist
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?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>
|
||||||
|
<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>
|
||||||
@@ -516,7 +516,11 @@
|
|||||||
(>= (get-in entities [:transition :opacity]) 1.0))
|
(>= (get-in entities [:transition :opacity]) 1.0))
|
||||||
|
|
||||||
(terminate [this screen entities]
|
(terminate [this screen entities]
|
||||||
entities)
|
(if-let [next-time (get-in entities [:state :next-time])]
|
||||||
|
(-> entities
|
||||||
|
(assoc-in [:state :time] next-time)
|
||||||
|
(assoc-in [:state :next-time] nil))
|
||||||
|
entities))
|
||||||
(can-skip? [this screen entities]
|
(can-skip? [this screen entities]
|
||||||
false))
|
false))
|
||||||
(run-action entities
|
(run-action entities
|
||||||
|
|||||||
@@ -178,7 +178,7 @@
|
|||||||
trophy (utils/make-anim "inside-castle/trophy.png" [16 16] 0.1 (flatten [(repeat 50 0) 1 2 3 3 3 3 2 1]))
|
trophy (utils/make-anim "inside-castle/trophy.png" [16 16] 0.1 (flatten [(repeat 50 0) 1 2 3 3 3 3 2 1]))
|
||||||
pull-sword-anim (utils/make-anim "inside-castle/pull-sword.png" [95 190] 0.10 (flatten [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 3 2 3 2 3 3 2 3 2 2 3 3 2 3 2 3 2 3 2 3 2 3 2 2 3 3 3 2 3 2 3 3 2 3 2 3 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ]))
|
pull-sword-anim (utils/make-anim "inside-castle/pull-sword.png" [95 190] 0.10 (flatten [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 3 2 3 2 3 3 2 3 2 2 3 3 2 3 2 3 2 3 2 3 2 3 2 2 3 3 3 2 3 2 3 3 2 3 2 3 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ]))
|
||||||
monocle (utils/make-anim "inside-castle/monocle.png" [7 7] 0.05 (flatten [(repeat 70 0) 1 2 3 3 3 2 1]))]
|
monocle (utils/make-anim "inside-castle/monocle.png" [7 7] 0.05 (flatten [(repeat 70 0) 1 2 3 3 3 2 1]))]
|
||||||
(rooms/make :music {:day :town-1 :night :night}
|
(rooms/make :music {:day :town-1 :night :night :sunrise :night}
|
||||||
:interactions
|
:interactions
|
||||||
{:right-door {:box [286 140 306 160]
|
{:right-door {:box [286 140 306 160]
|
||||||
:cursor :right
|
:cursor :right
|
||||||
@@ -249,7 +249,8 @@
|
|||||||
:layers {:day [(assoc (texture "inside-castle/background.png") :x 0 :y 0 :baseline 0)
|
:layers {:day [(assoc (texture "inside-castle/background.png") :x 0 :y 0 :baseline 0)
|
||||||
(assoc (texture "inside-castle/pedestal-overlay.png") :x 0 :y 0 :baseline 135)]
|
(assoc (texture "inside-castle/pedestal-overlay.png") :x 0 :y 0 :baseline 135)]
|
||||||
:night [(assoc (texture "inside-castle/background-dark.png") :x 0 :y 0 :baseline 0)
|
:night [(assoc (texture "inside-castle/background-dark.png") :x 0 :y 0 :baseline 0)
|
||||||
(assoc (texture "inside-castle/pedestal-overlay-dark.png") :x 0 :y 0 :baseline 135)]}
|
(assoc (texture "inside-castle/pedestal-overlay-dark.png") :x 0 :y 0 :baseline 135)]
|
||||||
|
:sunrise [(assoc (texture "inside-castle/background-sunrise.png") :x 0 :y 0 :baseline 0)]}
|
||||||
:blackout (assoc (texture "black.png")
|
:blackout (assoc (texture "black.png")
|
||||||
:x 0 :y 0
|
:x 0 :y 0
|
||||||
:width 320
|
:width 320
|
||||||
|
|||||||
@@ -122,7 +122,7 @@
|
|||||||
:else (do-initial-peddler-conversation entities)))
|
:else (do-initial-peddler-conversation entities)))
|
||||||
|
|
||||||
(defn should-block? [entities]
|
(defn should-block? [entities]
|
||||||
(and (= :night (get-in @entities [:state :time]))
|
(and (:night (get-in @entities [:state :time]))
|
||||||
(actions/has-obtained? entities :flask-2)
|
(actions/has-obtained? entities :flask-2)
|
||||||
(not (actions/has-item? entities :magic-slingshot))))
|
(not (actions/has-item? entities :magic-slingshot))))
|
||||||
|
|
||||||
@@ -258,7 +258,7 @@
|
|||||||
steer-stand (animation 0.2 (for [i [0 0 0 0 0 0 0 0 0 1 0 2 0 1 0 2 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 0 0 0 0]]
|
steer-stand (animation 0.2 (for [i [0 0 0 0 0 0 0 0 0 1 0 2 0 1 0 2 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 0 0 0 0]]
|
||||||
(aget steer-sheet 0 i)))
|
(aget steer-sheet 0 i)))
|
||||||
flies-stand (utils/make-anim "outside-castle/flies.png" [15 15] 0.075 [0 1 2 1])]
|
flies-stand (utils/make-anim "outside-castle/flies.png" [15 15] 0.075 [0 1 2 1])]
|
||||||
(rooms/make :music {:day :town-2 :night :night}
|
(rooms/make :music {:day :town-2 :night :night :sunrise :night}
|
||||||
:interactions
|
:interactions
|
||||||
{:right-dir {:box [300 40 320 140]
|
{:right-dir {:box [300 40 320 140]
|
||||||
:script (actions/get-script
|
:script (actions/get-script
|
||||||
@@ -291,7 +291,8 @@
|
|||||||
(actions/talk entities :ego "No one will notice one missing.")
|
(actions/talk entities :ego "No one will notice one missing.")
|
||||||
(actions/give entities :carrot))))}}
|
(actions/give entities :carrot))))}}
|
||||||
:layers {:day [(assoc (texture "outside-castle/background.png") :x 0 :y 0 :baseline 0)]
|
:layers {:day [(assoc (texture "outside-castle/background.png") :x 0 :y 0 :baseline 0)]
|
||||||
:night [(assoc (texture "outside-castle/background-dark.png") :x 0 :y 0 :baseline 0)]}
|
:night [(assoc (texture "outside-castle/background-dark.png") :x 0 :y 0 :baseline 0)]
|
||||||
|
:sunrise [(assoc (texture "outside-castle/background-sunrise.png") :x 0 :y 0 :baseline 0)]}
|
||||||
:entities {:peddler (actions/start-animation screen
|
:entities {:peddler (actions/start-animation screen
|
||||||
(assoc (texture "outside-castle/peddler.png") :x 110 :y 90 :baseline 150 :anim nil
|
(assoc (texture "outside-castle/peddler.png") :x 110 :y 90 :baseline 150 :anim nil
|
||||||
:talk peddler-talk :stand peddler-stand
|
:talk peddler-talk :stand peddler-stand
|
||||||
@@ -378,6 +379,6 @@
|
|||||||
:scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.00)
|
:scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.00)
|
||||||
:start-pos [310 80]
|
:start-pos [310 80]
|
||||||
:apply-state (fn [entities]
|
:apply-state (fn [entities]
|
||||||
(if (= :night (get-in entities [:state :time]))
|
(if (#{:night :sunrise} (get-in entities [:state :time]))
|
||||||
(make-night entities)
|
(make-night entities)
|
||||||
entities)))))
|
entities)))))
|
||||||
|
|||||||
@@ -54,9 +54,16 @@
|
|||||||
:ego "It worked!"
|
:ego "It worked!"
|
||||||
:ego "I now have The Slinger's Shot."
|
:ego "I now have The Slinger's Shot."
|
||||||
:ego "And just in time, too. It's getting light.")
|
:ego "And just in time, too. It's getting light.")
|
||||||
|
(actions/update-state entities #(assoc % :next-time :sunrise))
|
||||||
(walk-to-castle entities)
|
(walk-to-castle entities)
|
||||||
(outside-castle/go-through-gate entities)
|
(outside-castle/go-through-gate entities)
|
||||||
(inside-castle/walk-to-blergh entities))))
|
(actions/update-state entities #(assoc % :next-time :day))
|
||||||
|
(inside-castle/walk-to-blergh entities)
|
||||||
|
(actions/do-dialogue entities
|
||||||
|
:ego "Blergh!"
|
||||||
|
:blergh "Oh, hello again."
|
||||||
|
:blergh "I thought I had taken care of you the last time I saw you."
|
||||||
|
:blergh "Any final words before I destroy you again?"))))
|
||||||
:broken-clock (actions/get-script entities
|
:broken-clock (actions/get-script entities
|
||||||
(actions/walk-to entities :ego [141 90] :face :right)
|
(actions/walk-to entities :ego [141 90] :face :right)
|
||||||
(actions/play-animation entities :ego :reach)
|
(actions/play-animation entities :ego :reach)
|
||||||
|
|||||||
@@ -31,7 +31,8 @@
|
|||||||
blergh-stand-anim (animation 0.7 [blergh-flex blergh-stand])
|
blergh-stand-anim (animation 0.7 [blergh-flex blergh-stand])
|
||||||
blergh-swing (utils/make-anim "space/blergh-swing.png" [106 165] 0.1 [0 0 1 2 3 4 ])
|
blergh-swing (utils/make-anim "space/blergh-swing.png" [106 165] 0.1 [0 0 1 2 3 4 ])
|
||||||
blergh-appear (utils/make-anim "space/blergh-appear.png" [106 165] 0.05 (flatten [(range 13) 12 12 12 12 12 12 12 12 12 12 12 12 12 ]))
|
blergh-appear (utils/make-anim "space/blergh-appear.png" [106 165] 0.05 (flatten [(range 13) 12 12 12 12 12 12 12 12 12 12 12 12 12 ]))
|
||||||
blergh-grow (utils/make-anim "space/blergh-grow.png" [106 165] 0.10 [0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 5 6 7 8 9 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11]) ]
|
blergh-grow (utils/make-anim "space/blergh-grow.png" [106 165] 0.10 [0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 5 6 7 8 9 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11])
|
||||||
|
bullet (utils/make-anim "space/bullet.png" [24 24] 0.0075 [0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 3 3 3 4 4 5 5 6 5 4 7])]
|
||||||
(rooms/make :music :town-1
|
(rooms/make :music :town-1
|
||||||
:interactions
|
:interactions
|
||||||
{}
|
{}
|
||||||
@@ -57,10 +58,34 @@
|
|||||||
|
|
||||||
(common/go-to-jail entities)
|
(common/go-to-jail entities)
|
||||||
(actions/do-dialogue entities :ego "Hey!"
|
(actions/do-dialogue entities :ego "Hey!"
|
||||||
:ego "What's going on? I was just about to teach Blergh a lesson!"))}))
|
:ego "What's going on? I was just about to teach Blergh a lesson!"))
|
||||||
|
:magic-slingshot (actions/get-script entities
|
||||||
|
(actions/do-dialogue entities
|
||||||
|
:ego "Hey Blergh!"
|
||||||
|
:ego "Take this!")
|
||||||
|
(actions/play-animation entities :ego :shoot)
|
||||||
|
(actions/add-entity entities :bullet (get-in @entities [:room :bullet]))
|
||||||
|
(actions/walk-straight-to entities :bullet [213 166] :update-baseline? false :speed 5.0)
|
||||||
|
(actions/add-entity entities :broken-jewel (get-in @entities [:room :broken-jewel]))
|
||||||
|
(Thread/sleep 500)
|
||||||
|
(actions/remove-entity entities :bullet)
|
||||||
|
(actions/update-state entities #(assoc % :broke-jewel? true))
|
||||||
|
(actions/do-dialogue entities
|
||||||
|
:blergh "Argh! My magic lightning helmet!"
|
||||||
|
:blergh "No matter. I will destroy you with my bare hands!"))}))
|
||||||
:entities {}
|
:entities {}
|
||||||
|
:bullet (assoc (animation->texture screen bullet)
|
||||||
|
:x 130 :y 85 :baseline 241
|
||||||
|
:walk bullet)
|
||||||
|
:broken-jewel (assoc (texture "space/broken-jewel.png")
|
||||||
|
:x 222 :y 172 :baseline 240)
|
||||||
:collision "space/collision.png"
|
:collision "space/collision.png"
|
||||||
:scale-fn (constantly 1.5)
|
:scale-fn (constantly 1.5)
|
||||||
:start-pos [43 80]
|
:start-pos [140 55]
|
||||||
:apply-state (fn [e]
|
:apply-state (fn [e]
|
||||||
(assoc-in e [:room :entities :blergh] (get-in e [:room :blergh]))))))
|
(as-> e e
|
||||||
|
(if (get-in e [:state :broke-jewel?])
|
||||||
|
(assoc-in e [:room :entities :broken-jewel] (get-in e [:room :entities :broken-jewel]))
|
||||||
|
e)
|
||||||
|
(assoc-in e [:room :entities :blergh] (get-in e [:room :blergh])))
|
||||||
|
))))
|
||||||
|
|||||||
@@ -175,6 +175,7 @@
|
|||||||
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]) )
|
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]) )
|
||||||
spear (utils/make-anim "ego/spear.png" [18 100] 0.2 [0 1 2 3 2 3 2 3 2 3 2 1 0])
|
spear (utils/make-anim "ego/spear.png" [18 100] 0.2 [0 1 2 3 2 3 2 3 2 3 2 1 0])
|
||||||
crowbar (utils/make-anim "ego/crowbar.png" [36 36] 0.1 [0 0 0 1 1 2 2 2 2 2 3 2 3 2 3 2 3 2 3 3 3 1 1 0 0 0])
|
crowbar (utils/make-anim "ego/crowbar.png" [36 36] 0.1 [0 0 0 1 1 2 2 2 2 2 3 2 3 2 3 2 3 2 3 3 3 1 1 0 0 0])
|
||||||
|
shoot (utils/make-anim "ego/shoot.png" [24 36] 0.075 [0 0 0 1 1 2 2 2 2 2 2 2 2 3 4 5 4])
|
||||||
|
|
||||||
ego {:right {:walk walk-right
|
ego {:right {:walk walk-right
|
||||||
:stand stand-anim
|
:stand stand-anim
|
||||||
@@ -196,6 +197,7 @@
|
|||||||
:reach-down reach-down
|
:reach-down reach-down
|
||||||
:reach-start reach-start
|
:reach-start reach-start
|
||||||
:reach-stop reach-stop
|
:reach-stop reach-stop
|
||||||
|
:shoot shoot
|
||||||
[: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
|
||||||
@@ -218,6 +220,7 @@
|
|||||||
:reach-down (utils/flip reach-down)
|
:reach-down (utils/flip reach-down)
|
||||||
:reach-start (utils/flip reach-start)
|
:reach-start (utils/flip reach-start)
|
||||||
:reach-stop (utils/flip reach-stop)
|
:reach-stop (utils/flip reach-stop)
|
||||||
|
:shoot (utils/flip shoot)
|
||||||
[: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)
|
||||||
|
|||||||