starting on a good sequence for blergh fight.
This commit is contained in:
1
desktop/blergh.edn
Normal file
1
desktop/blergh.edn
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{:active? true, :convinced-wizard? true, :time :day, :inventory [:ladder :glass-eye :recipe :grass :medal :kiss :trophy :flask-1-strength :sword], :wizard-left? false, :clues #{}, :current-riddle :wool, :last-room :space, :wants-toy true, :mints-eaten 0, :object nil, :obtained-items #{:kiss :medal :sword :flask-1 :grass :ladder :trophy}}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 4.4 KiB |
BIN
desktop/resources/ego/pant.png
Normal file
BIN
desktop/resources/ego/pant.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
BIN
desktop/resources/ego/pant.pxa/0.pxi
Normal file
BIN
desktop/resources/ego/pant.pxa/0.pxi
Normal file
Binary file not shown.
BIN
desktop/resources/ego/pant.pxa/1.pxi
Normal file
BIN
desktop/resources/ego/pant.pxa/1.pxi
Normal file
Binary file not shown.
14
desktop/resources/ego/pant.pxa/CelData.plist
Normal file
14
desktop/resources/ego/pant.pxa/CelData.plist
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?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>
|
||||||
|
</array>
|
||||||
|
</plist>
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 4.5 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
desktop/resources/ego/swing.pxa/5.pxi
Normal file
BIN
desktop/resources/ego/swing.pxa/5.pxi
Normal file
Binary file not shown.
BIN
desktop/resources/ego/swing.pxa/6.pxi
Normal file
BIN
desktop/resources/ego/swing.pxa/6.pxi
Normal file
Binary file not shown.
BIN
desktop/resources/ego/swing.pxa/7.pxi
Normal file
BIN
desktop/resources/ego/swing.pxa/7.pxi
Normal file
Binary file not shown.
@@ -22,5 +22,17 @@
|
|||||||
<key>duration</key>
|
<key>duration</key>
|
||||||
<real>1</real>
|
<real>1</real>
|
||||||
</dict>
|
</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>
|
</array>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
BIN
desktop/resources/white.png
Normal file
BIN
desktop/resources/white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
@@ -116,7 +116,7 @@
|
|||||||
(update-in entities [:room :entities target-id] (comp #(start-animation screen % :stand) (if face #(assoc % :facing face) identity))))
|
(update-in entities [:room :entities target-id] (comp #(start-animation screen % :stand) (if face #(assoc % :facing face) identity))))
|
||||||
|
|
||||||
|
|
||||||
(defn walk-straight-to [entities target-id [final-x final-y] & {:keys [update-baseline? face speed anim override-dir]}]
|
(defn walk-straight-to [entities target-id [final-x final-y] & {:keys [update-baseline? face speed anim override-dir stop?]}]
|
||||||
(let [{start-x :x start-y :y} (get-in @entities [:room :entities target-id])
|
(let [{start-x :x start-y :y} (get-in @entities [:room :entities target-id])
|
||||||
final-x (int final-x)
|
final-x (int final-x)
|
||||||
final-y (int final-y)
|
final-y (int final-y)
|
||||||
@@ -155,7 +155,9 @@
|
|||||||
(< (utils/dist final-x final-y from-x from-y) 1)))
|
(< (utils/dist final-x final-y from-x from-y) 1)))
|
||||||
|
|
||||||
(terminate [this screen entities]
|
(terminate [this screen entities]
|
||||||
(stop screen entities target-id :face face))
|
(if (or (nil? stop?) stop?)
|
||||||
|
(stop screen entities target-id :face face)
|
||||||
|
entities))
|
||||||
(can-skip? [this screen entities]
|
(can-skip? [this screen entities]
|
||||||
false))))
|
false))))
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
[play-clj.core :refer :all]
|
[play-clj.core :refer :all]
|
||||||
[play-clj.ui :refer :all]
|
[play-clj.ui :refer :all]
|
||||||
[play-clj.utils :refer :all]
|
[play-clj.utils :refer :all]
|
||||||
|
[play-clj.math :refer :all]
|
||||||
[play-clj.g2d :refer :all]))
|
[play-clj.g2d :refer :all]))
|
||||||
|
|
||||||
(defn taunt [screen entities]
|
(defn taunt [screen entities]
|
||||||
@@ -23,6 +24,88 @@
|
|||||||
"Pick up your weapon and fight!"]))) entities))
|
"Pick up your weapon and fight!"]))) entities))
|
||||||
nil)
|
nil)
|
||||||
|
|
||||||
|
(defn start-swing-if-necessary [screen e]
|
||||||
|
(if (and (not= (:anim e) :swing)
|
||||||
|
(> (:x e) 190))
|
||||||
|
(actions/start-animation screen e :swing)
|
||||||
|
e))
|
||||||
|
|
||||||
|
(defn start-fade-if-necessary [e screen]
|
||||||
|
(if (and (nil? (get-in e [:tweens :flash]))
|
||||||
|
(< (get-in e [:room :entities :ego :y]) 100))
|
||||||
|
(assoc-in e [:tweens :flash] (utils/tween :flash screen [:white-fade :opacity] 0.0 1.0 0.5 :power 3.0))
|
||||||
|
e))
|
||||||
|
|
||||||
|
(defn swing-at-blergh [entities]
|
||||||
|
(let [jump-path (bezier (map #(apply vector-2* %) [[15 45] [110 145] [195 180]]))
|
||||||
|
swing-path (bezier (map #(apply vector-2* %) [[195 180] [205 45]]))
|
||||||
|
jump-dist (utils/dist 15 45 205 45)
|
||||||
|
speed 190.0
|
||||||
|
jump-duration (/ jump-dist speed)
|
||||||
|
swing-dist (utils/dist 195 180 205 45)
|
||||||
|
swing-duration (/ swing-dist (* speed 1.5))]
|
||||||
|
(actions/run-action entities
|
||||||
|
(begin [this screen entities]
|
||||||
|
(-> entities
|
||||||
|
(update-in [:room :entities :ego]
|
||||||
|
#(actions/start-animation screen % :jump))
|
||||||
|
(assoc-in [:tweens :jump-pos] (utils/tween :jump-pos screen [:room :entities :ego :move-pct] 0.0 1.0 jump-duration :power 2))))
|
||||||
|
|
||||||
|
(continue [this screen entities]
|
||||||
|
(let [v (vector-2 0 0)
|
||||||
|
a (bezier! jump-path :value-at v (get-in entities [:room :entities :ego :move-pct] 0.0))]
|
||||||
|
(update-in entities [:room :entities :ego] #(assoc % :x (vector-2! v :x) :y (vector-2! v :y)))))
|
||||||
|
|
||||||
|
(done? [this screen entities]
|
||||||
|
(= (get-in entities [:room :entities :ego :move-pct]) 1.0))
|
||||||
|
|
||||||
|
(terminate [this screen entities]
|
||||||
|
(assoc-in entities [:room :entities :ego :move-pct] 0.0))
|
||||||
|
(can-skip? [this screen entities]
|
||||||
|
false))
|
||||||
|
|
||||||
|
(actions/run-action entities
|
||||||
|
(begin [this screen entities]
|
||||||
|
|
||||||
|
(-> entities
|
||||||
|
(update-in [:room :entities :ego]
|
||||||
|
#(actions/start-animation screen % :swing))
|
||||||
|
(assoc-in [:tweens :swing-pos] (utils/tween :swing-pos screen [:room :entities :ego :move-pct] 0.0 1.0 swing-duration :power 10))))
|
||||||
|
|
||||||
|
(continue [this screen entities]
|
||||||
|
(let [v (vector-2 0 0)
|
||||||
|
a (bezier! swing-path :value-at v (get-in entities [:room :entities :ego :move-pct] 0.0))]
|
||||||
|
(-> entities
|
||||||
|
(start-fade-if-necessary screen)
|
||||||
|
(update-in [:room :entities :ego] #(assoc % :x (vector-2! v :x) :y (vector-2! v :y))))))
|
||||||
|
|
||||||
|
(done? [this screen entities]
|
||||||
|
(= (get-in entities [:room :entities :ego :move-pct]) 1.0))
|
||||||
|
|
||||||
|
(terminate [this screen entities]
|
||||||
|
(-> entities
|
||||||
|
(assoc-in [:room :entities :ego :move-pct] 0.0)
|
||||||
|
(update-in [:room :entities :ego] #(actions/start-animation screen % :pant))))
|
||||||
|
(can-skip? [this screen entities]
|
||||||
|
|
||||||
|
false))
|
||||||
|
(actions/run-action entities
|
||||||
|
(begin [this screen entities]
|
||||||
|
(assoc-in entities [:tweens :flash] (utils/tween :flash screen [:white-fade :opacity] 1.0 0.0 3.0 :power 2.0)))
|
||||||
|
|
||||||
|
(continue [this screen entities]
|
||||||
|
entities)
|
||||||
|
|
||||||
|
(done? [this screen entities]
|
||||||
|
(nil? (get-in entities [:tweens :flash])))
|
||||||
|
|
||||||
|
(terminate [this screen entities]
|
||||||
|
entities)
|
||||||
|
(can-skip? [this screen entities]
|
||||||
|
false))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defn make [screen]
|
(defn make [screen]
|
||||||
(let [blergh-stand (texture "space/blergh-stand.png")
|
(let [blergh-stand (texture "space/blergh-stand.png")
|
||||||
blergh-talk (texture "space/blergh-talk.png")
|
blergh-talk (texture "space/blergh-talk.png")
|
||||||
@@ -47,8 +130,9 @@
|
|||||||
:talk-color (color 0.95 0.4 0.2 1.0)
|
:talk-color (color 0.95 0.4 0.2 1.0)
|
||||||
:script (actions/get-script entities (actions/do-dialogue entities :blergh "Come on! Try and hit me!"))
|
:script (actions/get-script entities (actions/do-dialogue entities :blergh "Come on! Try and hit me!"))
|
||||||
:scripts {:sword (actions/get-script entities
|
:scripts {:sword (actions/get-script entities
|
||||||
(actions/walk-straight-to entities :ego [205 45])
|
#_(actions/walk-straight-to entities :ego [205 45] :anim :jump :stop? false :speed 3.0)
|
||||||
(actions/play-animation entities :ego :swing)
|
(swing-at-blergh entities)
|
||||||
|
#_(actions/play-animation entities :ego :swing)
|
||||||
(actions/do-dialogue entities :blergh "Ha ha ha! Is that the best you can do?"
|
(actions/do-dialogue entities :blergh "Ha ha ha! Is that the best you can do?"
|
||||||
:blergh "Take this!")
|
:blergh "Take this!")
|
||||||
(actions/play-animation entities :blergh :swing)
|
(actions/play-animation entities :blergh :swing)
|
||||||
@@ -56,8 +140,8 @@
|
|||||||
(actions/do-dialogue entities :ego "Ouch!"
|
(actions/do-dialogue entities :ego "Ouch!"
|
||||||
:blergh "My turn.")
|
:blergh "My turn.")
|
||||||
|
|
||||||
(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
|
:magic-slingshot (actions/get-script entities
|
||||||
(actions/do-dialogue entities
|
(actions/do-dialogue entities
|
||||||
|
|||||||
@@ -176,12 +176,14 @@
|
|||||||
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]]
|
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))))
|
(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])
|
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 ]]))
|
jump (utils/make-anim "ego/swing.png" [36 75] 0.2 (flatten [[1 2]]))
|
||||||
|
swing (utils/make-anim "ego/swing.png" [36 75] 0.145 (flatten [[3 4 5 6 7 ]]))
|
||||||
grow-talk (utils/make-anim "ego/grow-talk.png" [18 36] 0.2 (range 2))
|
grow-talk (utils/make-anim "ego/grow-talk.png" [18 36] 0.2 (range 2))
|
||||||
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])
|
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])
|
||||||
|
pant (utils/make-anim "ego/pant.png" [31 36] 0.5 [0 1])
|
||||||
|
|
||||||
ego {:right {:walk walk-right
|
ego {:right {:walk walk-right
|
||||||
:stand stand-anim
|
:stand stand-anim
|
||||||
@@ -202,12 +204,14 @@
|
|||||||
:reach-up reach-up
|
:reach-up reach-up
|
||||||
:reach-down reach-down
|
:reach-down reach-down
|
||||||
:reach-start reach-start
|
:reach-start reach-start
|
||||||
|
:jump jump
|
||||||
:reach-stop reach-stop
|
:reach-stop reach-stop
|
||||||
:shoot shoot
|
: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
|
||||||
:spear spear}
|
:spear spear
|
||||||
|
:pant pant}
|
||||||
:left {:walk (utils/flip walk-right)
|
:left {:walk (utils/flip walk-right)
|
||||||
:stand (utils/flip stand-anim)
|
:stand (utils/flip stand-anim)
|
||||||
:talk (utils/flip talk-anim)
|
:talk (utils/flip talk-anim)
|
||||||
@@ -230,7 +234,8 @@
|
|||||||
[: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)
|
||||||
:spear (utils/flip spear)}
|
:spear (utils/flip spear)
|
||||||
|
:pant (utils/flip pant)}
|
||||||
:baseline (- 240 (last start-pos))
|
:baseline (- 240 (last start-pos))
|
||||||
:facing :right
|
:facing :right
|
||||||
:origin-x 9
|
:origin-x 9
|
||||||
@@ -402,7 +407,11 @@
|
|||||||
:scale-y 20
|
:scale-y 20
|
||||||
:baseline 9500
|
:baseline 9500
|
||||||
:opacity 0.0)
|
:opacity 0.0)
|
||||||
|
:white-fade (assoc (texture "white.png")
|
||||||
|
:scale-x 20
|
||||||
|
:scale-y 20
|
||||||
|
:baseline 9500
|
||||||
|
:opacity 0.0)
|
||||||
:actions {:object nil
|
:actions {:object nil
|
||||||
:channel (chan)
|
:channel (chan)
|
||||||
:current nil
|
:current nil
|
||||||
|
|||||||
Reference in New Issue
Block a user