From 5b76cd964429bb7dbdc33127cea7b840ccc62665 Mon Sep 17 00:00:00 2001 From: Remington Covert Date: Wed, 11 Mar 2015 18:20:40 -0700 Subject: [PATCH] more scripting. --- desktop/resources/dream/fairy-godfather.png | Bin 2290 -> 6332 bytes desktop/settings.edn | 2 +- .../src-common/advent/screens/rooms/dream.clj | 84 +++++++++++++----- desktop/src-common/advent/screens/scene.clj | 6 +- desktop/src-common/advent/utils.clj | 10 ++- 5 files changed, 72 insertions(+), 30 deletions(-) diff --git a/desktop/resources/dream/fairy-godfather.png b/desktop/resources/dream/fairy-godfather.png index 0813c809f0ce9ba11fa7fc9aaea840d2bb27af4f..98887fadf3936bafef667970d9e45a47e7197d73 100644 GIT binary patch literal 6332 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 rlm~QSwZz%(B>w+Hqo;K@LQuK?N!0zqP4G{^yY z0#)2CkcvReaS?`cVJ>Sug%61_yqOq`QYDdq7+APnpTqlFS0dZhLm8W0L- z=q)4`jwNM)F~YzE85okl4&^6^_+$Z^?hR0t6eEEcgn58c94nDilr;1QUW#!)bB#p< zA3|Ue4gHrWE-M&dKr#>@VMy+L903n_kui7@$;*qd8X(~CL@W-E#e2Bp$rK`yg2MqH zAG9%>Ob|ukFatj3GM;GY7#NmPuvmpcfl+v1AXzjPPbQPGI0BYHa5qM{%T*GXr*xOd zon{%BpqwugN?{=+0cIF^JE3@(hBhkws|2z16Rkx4u}#K?VU;{77LUQrlr$U2V*US6 zvG`N89Oi(3>;0d^@=%o&#BxA66fff&2N&fulS)cq$Uq(p$wDD0cD9SbF%S&NV<0KO zV0`Er;KJhZg_4=eRUc3+79~g`hj|h{7{sKZjXW5kP(bm+c?PTr@FOvB1W!EPpGaon za0~{)59d$x@bo2+XR%C(A1?+a@GMsFH`epB*cn5JrN+!mP$v8i6a>g1G4P>qitzJV zJU+|!5i9t-7UE~ISfd#1%y|E6+_P6k56x^pnb&yuWPea%^t{Yy?)au*TLfZWWDwIg zRN48mAS}~zGi^v7?y~ShMwjNq z-L-R=e%dk^Q!!;~i={O0v97bDhN+cl5^+!87gjsm&i038mSRyS;&9S)zqGZaZs{C& zaDrAg@M5GoroOnd8WnEVm8r`j8oq=pN#S27oy%`e^(_1kTI-GI(Dnq|+_7Eq_y=9x zA+ByI(g)wg?2F`YqcQ}cV?|*%_udxD}*QCDIqz!N8rk~=!4LLlr zf%?sLecnJS%2!ZagOYIcB@I2-6wNJW7gS4oeXUbG*91t-1rZnx$J;Edp*GXrZP!8d zloR*V&4_AqD}f@Yb=+m{!?)|WC(~A5GmGy0dF6cSzlW0REms<3bFtIxob#IQ^DX>! zTMyZ|Gz7IbokqwYVc2NkHfAJI$3c_Z?9ftzWn9j;EUF+$xvONTp`DFS|L*q>u1Xx&iX zJh%sRRqHi7_SJ;COfOnf=7eKc?=!vON?n{XDGfMprnq#pW_t)K`mPRBF>&L@!_wYu zCd8r&UlSjFY9=Bt@>zVY^O&2KexFf(bHetYJx4A@KvNNu*)1iA z{KNg$RmWCkZ!1(;HyGUXjIy!bn{`aD+@bGF)v2Tik49K&(3)?MS1z#1TFgsbyxO

isIy(;sjB_70FZKkys8$!CSK$X=J4d+~peSjUl!Q$h zjZ}5kJ$jTeU^=NRB&EEX7+&<$?N#MMt@E?p4kM1|JnMEn@9MDFWY8>|mNV_mL-if* yHk+vL28V15;VbnPt{30@texture screen fairy-godfather-anim) + :x 200 :y 130 + :baseline 150 + :talk fairy-godfather-talk-anim + :stand fairy-godfather-anim + :anim fairy-godfather-anim :anim-start 0 + :path (catmull-rom-spline (map #(apply vector-2* %) [[200 130] [200 134]]) true) + :update-fn (partial utils/update-path-location 0.2) + :script (actions/get-script entities (actions/do-dialogue entities :fairy-godfather "Young Tick, you must choose your destiny!")))} + :collision "dream/collision.png" + :scale-fn (utils/scaler-fn-with-baseline 40 0.5 1.6) + :start-pos [140 55]))) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index fceee444..ffd64a60 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -740,13 +740,13 @@ :inventory (assoc (texture "inventory.png") :x 278 :y 0 :baseline 9000 :mouse-in? (zone/box 278 0 320 42) :opacity 0.8) - :fps (assoc (label "0" (color :white) ) :x 5 :baseline 0 :opacity 0.3)})) + :fps (assoc (label "" (color :white) ) :x 5 :baseline 0 :opacity 0.3)})) :on-render (fn [screen [entities]] (let [entities (utils/apply-tweens screen entities (:tweens entities))] - (label! (:fps entities) :set-text (str (game :fps))) - (render! screen [(:fps entities) (:inventory entities) (:close entities)]) + #_(label! (:fps entities) :set-text (str (game :fps))) + (render! screen [#_(:fps entities) (:inventory entities) (:close entities)]) entities)) :on-resize diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 121aa30d..9677403d 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -132,12 +132,16 @@ (defn find-override [entities [x y]] (first (concat (filter #(and ((:mouse-in? %) entities x y) + (:override %)) (get-in entities [:room :interactions])) (filter #(and (:mouse-in? %) - ((:mouse-in? %) entities x y)) + ((:mouse-in? %) entities x y) + (not= "ego" (:id %)) + (:script %)) (vals (get-in entities [:room :entities]))) - (filter #(and ((:mouse-in? %) entities x y)) + (filter #(and ((:mouse-in? %) entities x y) + (:script %)) (get-in entities [:room :interactions]))))) @@ -209,6 +213,6 @@ (let [last-pos (unproject screen (get-in entities [:cursor :last-pos]))] (if (get-in entities [:state :active?]) (if-let [mouse-override (find-override entities last-pos)] - (assoc-in entities [:cursor :override] (or (:cursor mouse-override) :active-main)) + (assoc-in entities [:cursor :override] (or (:cursor mouse-override) (when (#{:main :active-main} (get-in entities [:cursor :last])) :active-main))) (assoc-in entities [:cursor :override] nil)) entities)))