diff --git a/desktop/resources/inside-castle/magic b/desktop/resources/inside-castle/magic new file mode 100644 index 00000000..eba34810 --- /dev/null +++ b/desktop/resources/inside-castle/magic @@ -0,0 +1,149 @@ +Untitled +- Delay - +active: false +- Duration - +lowMin: 3000.0 +lowMax: 3000.0 +- Count - +min: 0 +max: 200 +- Emission - +lowMin: 1.0 +lowMax: 1.0 +highMin: 20.0 +highMax: 20.0 +relative: false +scalingCount: 2 +scaling0: 0.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Life - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1000.0 +highMax: 1000.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 1.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.66 +timeline2: 1.0 +- Life Offset - +active: false +- X Offset - +active: false +- Y Offset - +active: false +- Spawn Shape - +shape: ellipse +edges: true +side: both +- Spawn Width - +lowMin: 0.0 +lowMax: 0.0 +highMin: 20.0 +highMax: 20.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Spawn Height - +lowMin: 0.0 +lowMax: 0.0 +highMin: 30.0 +highMax: 30.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Scale - +lowMin: 0.0 +lowMax: 0.0 +highMin: 15.0 +highMax: 5.0 +relative: false +scalingCount: 4 +scaling0: 0.0 +scaling1: 1.0 +scaling2: 0.877551 +scaling3: 0.0 +timelineCount: 4 +timeline0: 0.0 +timeline1: 0.07534247 +timeline2: 0.6164383 +timeline3: 1.0 +- Velocity - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: 10.0 +highMax: 20.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Angle - +active: true +lowMin: 90.0 +lowMax: 90.0 +highMin: 90.0 +highMax: 90.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 1.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.48630136 +timeline2: 1.0 +- Rotation - +active: false +- Wind - +active: false +- Gravity - +active: false +- Tint - +colorsCount: 6 +colors0: 0.5019608 +colors1: 0.94509804 +colors2: 1.0 +colors3: 0.047058824 +colors4: 0.7137255 +colors5: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Transparency - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 4 +scaling0: 0.0 +scaling1: 0.8947368 +scaling2: 0.49122807 +scaling3: 0.0 +timelineCount: 4 +timeline0: 0.0 +timeline1: 0.30136988 +timeline2: 0.84931505 +timeline3: 1.0 +- Options - +attached: false +continuous: true +aligned: true +additive: true +behind: false +premultipliedAlpha: false +- Image Path - +magic.png diff --git a/desktop/resources/inside-castle/magic.png b/desktop/resources/inside-castle/magic.png new file mode 100644 index 00000000..6416d5ee Binary files /dev/null and b/desktop/resources/inside-castle/magic.png differ diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index 6a5e1a92..78c8fc33 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -298,6 +298,30 @@ :y 40 :baseline 240 :pull-sword pull-sword-anim) + :hotspots [{:box [0 74 77 109] + :fn (fn [screen entities] + (let [magic (get-in entities [:room :entities :magic])] + (cond (nil? magic) + (assoc-in entities [:room :entities :magic] (assoc (doto (particle-effect "inside-castle/magic") + (particle-effect! :reset) + ) + :x 25 + :y 112 + :baseline 240)) + (particle-effect! magic :is-complete) + (do + (doto magic + (particle-effect! :start)) + entities) + :else + entities)))} + {:box [78 66 90 86] + :fn (fn [screen entities] + (if-let [magic (get-in entities [:room :entities :magic])] + (do + (particle-effect! magic :allow-completion) + entities) + entities))}] :entities {:bird-1 (utils/make-bird screen (as-> [[185 235] [220 225] [210 230] [250 235]] p (concat p (reverse p)))) @@ -307,6 +331,7 @@ :x 22 :y 110 :baseline 95) + :trophy (assoc (animation->texture screen trophy) :x 253 :y 69 :baseline 191 :anim trophy