diff --git a/desktop/gametodos.txt b/desktop/gametodos.txt index ac831dea..119a8f7e 100644 --- a/desktop/gametodos.txt +++ b/desktop/gametodos.txt @@ -3,15 +3,11 @@ ART PROGRAMMING + fight with blergh at end isn't great -+ blergh taunts for first fight + proper save/settings file location + Save slots? + try to have dialogue for every wrong interaction + Dialogue frozen + ending credits -+ no self-use when held by bloodclot. -+ no premptive potion making - AUDIO + Walking diff --git a/desktop/resources/dream/fairy-godfather.pxa/0.pxi b/desktop/resources/dream/fairy-godfather.pxa/0.pxi index 6dce43e1..d39cee70 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/0.pxi and b/desktop/resources/dream/fairy-godfather.pxa/0.pxi differ diff --git a/desktop/resources/dream/fairy-godfather.pxa/1.pxi b/desktop/resources/dream/fairy-godfather.pxa/1.pxi index b3156dcf..de94b9f6 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/1.pxi and b/desktop/resources/dream/fairy-godfather.pxa/1.pxi differ diff --git a/desktop/resources/dream/fairy-godfather.pxa/2.pxi b/desktop/resources/dream/fairy-godfather.pxa/2.pxi index d38eca6d..5d57abd3 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/2.pxi and b/desktop/resources/dream/fairy-godfather.pxa/2.pxi differ diff --git a/desktop/resources/dream/fairy-godfather.pxa/3.pxi b/desktop/resources/dream/fairy-godfather.pxa/3.pxi index c029d5b9..b7a2c449 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/3.pxi and b/desktop/resources/dream/fairy-godfather.pxa/3.pxi differ diff --git a/desktop/resources/dream/fairy-godfather.pxa/4.pxi b/desktop/resources/dream/fairy-godfather.pxa/4.pxi index 9754e722..31543a51 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/4.pxi and b/desktop/resources/dream/fairy-godfather.pxa/4.pxi differ diff --git a/desktop/resources/dream/fairy-godfather.pxa/5.pxi b/desktop/resources/dream/fairy-godfather.pxa/5.pxi index dc5752e4..9312b37d 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/5.pxi and b/desktop/resources/dream/fairy-godfather.pxa/5.pxi differ diff --git a/desktop/resources/dream/fairy-godfather.pxa/6.pxi b/desktop/resources/dream/fairy-godfather.pxa/6.pxi index 7efe3f09..d680baa1 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/6.pxi and b/desktop/resources/dream/fairy-godfather.pxa/6.pxi differ diff --git a/desktop/resources/dream/fairy-godfather.pxa/7.pxi b/desktop/resources/dream/fairy-godfather.pxa/7.pxi index d38eca6d..5d57abd3 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/7.pxi and b/desktop/resources/dream/fairy-godfather.pxa/7.pxi differ diff --git a/desktop/resources/dream/fairy-godfather.pxa/8.pxi b/desktop/resources/dream/fairy-godfather.pxa/8.pxi index 513a9040..5e06e105 100644 Binary files a/desktop/resources/dream/fairy-godfather.pxa/8.pxi and b/desktop/resources/dream/fairy-godfather.pxa/8.pxi differ diff --git a/desktop/src-common/advent/screens/credits.clj b/desktop/src-common/advent/screens/credits.clj index 4cf6ed0a..f83ba5c7 100644 --- a/desktop/src-common/advent/screens/credits.clj +++ b/desktop/src-common/advent/screens/credits.clj @@ -15,29 +15,105 @@ [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input InputMultiplexer InputProcessor Net Preferences Screen])) +(defn center [e] + (assoc e :x (- (/ 1280 2) (/ (or (:width e) (.getWidth (:object e))) 2)))) + +(def credit-messages + [["\"Tick's Tales\" Created By" + "Bryce Covert"] + ["Artwork" + "Bryce Covert"] + ["Programming" + "Bryce Covert"] + ["Music" + "Bryce Covert"] + ["Sound Effects" + "Bryce Covert"] + ["Frog Legs" + "Marya Yama"] + ["Perspective Tutorials" + "Jana Covert"] + ["Motivational Tapes" + "Eriq Chang"] + ["In Loving Memory Of" + "Took, son of Luke, son of Puke"]]) + +(defn get-role-style [entities opacity] + (style :label (:font entities) (color 1.0 1.0 1.0 opacity))) + +(defn style-role [entities] + (when-let [opacity (:opacity (:role entities))] + (label! (:role entities) :set-style (get-role-style entities opacity)))) + +(defn get-person-style [entities opacity] + (style :label (:font entities) (color 0.6 1.0 1.0 opacity))) + +(defn style-person [entities] + (when-let [opacity (:opacity (:person entities))] + (label! (:person entities) :set-style (get-person-style entities opacity)))) + +(defn chain-tweens [screen entities id] + (let [fade-out (tween/tween [:fade id :out] + (assoc screen :total-time (+ 4.0 (:total-time screen))) + [id :opacity] + 1.0 0.0 + 2.0 + :finish #(dissoc % id)) + pause (tween/tween [:fade id :pause] + (assoc screen :total-time (+ 2.0 (:total-time screen))) + [id :opacity] + 1.0 1.0 + 2.0 + :finish (fn [e] (assoc-in e [:tweens [:fade id :out]] fade-out))) + fade-in (tween/tween [:fade id :in] screen + [id :opacity] + 0.0 1.0 + 2.0 + :finish (fn [e] (assoc-in e [:tweens [:fade id :pause]] pause)))] + fade-in)) + +(defn start-message-if-necessary [screen entities] + (if (and (not (get-in entities [:role])) + (= 0.0 (get-in entities [:fade :opacity]))) + (let [[[next-role next-person] & remaining-messages] (:remaining-messages entities)] + (if next-role + (-> entities + (assoc :role (center (assoc (label next-role (get-role-style entities 0.0) :set-alignment Align/center) :x 640 :y 480 ))) + (assoc :person (center (assoc (label next-person (get-person-style entities 0.0) :set-alignment Align/center) :x 640 :y 440 ))) + (assoc-in [:tweens [:fade :role :in]] (chain-tweens screen entities :role)) + (assoc-in [:tweens [:fade :person :in]] (chain-tweens screen entities :person)) + (assoc :remaining-messages remaining-messages)) + entities)) + entities)) + (defscreen credits :on-show (fn [screen entities] - (utils/setup-viewport screen 320 240) + (utils/setup-viewport screen 1280 960) (input! :set-cursor-image (utils/cursor "cursor.png" :main) 0 0) - {:fade (assoc (texture "black.png") - :scale-x 80 - :scale-y 80 - :opacity 0.0 - :origin-x 0 - :origin-y 0) - :the-end (assoc (texture "the-end.png") :x 0 :y 0) - :tweens {:fade-in - (tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 5.0 :ease tween/ease-out-cubic)}} - ) + (let [font (bitmap-font "ego/font.fnt" )] + {:font font + :fade (assoc (texture "black.png") + :scale-x 80 + :scale-y 80 + :opacity 0.0 + :origin-x 0 + :origin-y 0) + :remaining-messages credit-messages + :the-end (assoc (texture "the-end.png") :x 0 :y 0 :scale-x 4 :scale-y 4 :origin-x 0 :origin-y 0) + :tweens {:fade-in + (tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 5.0 :ease tween/ease-out-cubic)}})) :on-render (fn [{:keys [^FitViewport viewport] :as screen} [entities]] (.apply viewport) - (let [entities (utils/apply-tweens screen entities (:tweens entities))] + (let [entities (utils/apply-tweens screen entities (:tweens entities)) + entities (start-message-if-necessary screen entities)] + (style-role entities) + (style-person entities) - (render! screen [(:the-end entities) (:fade entities)]) + (render! screen [(:the-end entities) (:role entities) (:person entities) (:fade entities)]) entities)) diff --git a/desktop/src-common/advent/screens/rooms/.#behind_house.clj b/desktop/src-common/advent/screens/rooms/.#behind_house.clj new file mode 120000 index 00000000..db1830a8 --- /dev/null +++ b/desktop/src-common/advent/screens/rooms/.#behind_house.clj @@ -0,0 +1 @@ +brycecovert@brometheus.local.31618 \ No newline at end of file diff --git a/desktop/src-common/advent/screens/rooms/behind_house.clj b/desktop/src-common/advent/screens/rooms/behind_house.clj index 8f96ef2f..fe8665d2 100644 --- a/desktop/src-common/advent/screens/rooms/behind_house.clj +++ b/desktop/src-common/advent/screens/rooms/behind_house.clj @@ -85,7 +85,17 @@ (actions/talk entities :ego "It looks like the wall is crumbling here.") (actions/play-animation entities :ego :reach) (actions/update-entity entities :peeling #(assoc % :opacity 0)) - (actions/update-state entities (fn [state] (assoc state :opened-crack? true))))))) + (actions/update-state entities (fn [state] (assoc state :opened-crack? true)))))) + :scripts {:stick (actions/get-script entities + (if (get-in @entities [:state :opened-crack?]) + (actions/talk entities :ego "I could shove the stick in that, hole, but why?") + (actions/do-dialogue entities + :ego "It looks like that wall is crumbling." + :ego "I can probably scratch it off with my hand."))) + :sword (actions/get-script entities + (actions/do-dialogue entities + :ego "I should be careful with this sword." + :ego "It's sharp!"))}) :bird (utils/make-bird screen [[50 235] [80 220] [100 239] [180 235] [85 225]]) :outside-particles (common/make-outside-particles)} :collision "behindhouse/collision.png" diff --git a/desktop/src-common/advent/screens/rooms/held.clj b/desktop/src-common/advent/screens/rooms/held.clj index a2c19e6d..a6500df6 100644 --- a/desktop/src-common/advent/screens/rooms/held.clj +++ b/desktop/src-common/advent/screens/rooms/held.clj @@ -96,4 +96,9 @@ (update-in [:tweens] dissoc :cam-x :cam-y) (update-in [:room :entities :ego] #(actions/start-animation screen % :suspended)) (assoc-in [:room :entities :ego :stand-override] :suspended) - (assoc-in [:room :entities :ego :talk-override] :suspended-talk)))))) + (assoc-in [:room :entities :ego :talk-override] :suspended-talk) + (assoc-in [:room :entities :ego :get-script] (fn [cursor [x y]] + (actions/get-script entities + (if (= :flask-1-strength (:value cursor)) + (common/do-win entities) + (actions/talk entities :ego "I can't reach it!")))))))))) diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index 4b4548a3..ed256d9e 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -275,7 +275,7 @@ (actions/talk entities :ego "Who are you?!" :anim :scared-talk) (actions/begin-animation entities :ego :scared) (actions/do-dialogue entities - :bloodclot-head "I am Bloodclot, the Scottish goblin!" + :bloodclot-head "I am Bloodclot, the goblin!" :bloodclot-head "I've spent last 100 years training for this day." :bloodclot-head "The day when I must best the worthiest of knights in battle." :bloodclot-head "But I had never expected my foe to be so..." diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index ad2a3459..fb437c47 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -31,8 +31,7 @@ (assoc-in [:tweens :dawn-g-s] (tween/tween :dawn-g-s screen [:time-profiles :sprite :g] :current 0.36 50.0 :entities entities)) (assoc-in [:tweens :dawn-b-s] (tween/tween :dawn-b-s screen [:time-profiles :sprite :b] :current 0.23 50.0 :entities entities)) (assoc-in [:tweens :hue-amount-v-s] (tween/tween :hue-amount-v-s screen [:time-profiles :sprite :hue-amount] :current 0.0 50.0 :entities entities)) - (assoc-in [:tweens :multiply-amount-v-s] (tween/tween :multiply-amount-v-s screen [:time-profiles :sprite :multiply-amount] :current 0.0 50.0 :entities entities))) - ) + (assoc-in [:tweens :multiply-amount-v-s] (tween/tween :multiply-amount-v-s screen [:time-profiles :sprite :multiply-amount] :current 0.0 50.0 :entities entities)))) (continue [this screen entities] entities) (done? [this screen entities] @@ -43,8 +42,6 @@ :none))) - - (defn walk-to-castle [entities & {:keys [skip-type stop?] :or {skip-type :end stop? true}}] (actions/walk-to entities :ego [0 80] :skip-type skip-type) (actions/walk-straight-to entities :ego [-20 80]) @@ -699,6 +696,10 @@ (items/make-cream-of-mushroom entities) (leave-sheep entities)) (actions/talk entities :ego "She's too far away."))) + + :sword + (actions/get-script entities + (actions/talk entities :ego "That's just cruel.")) nil) :left {:walk (utils/flip sheep-walk) :stand (utils/flip sheep-stand)} @@ -731,8 +732,8 @@ (actions/talk entities :ego "Aww, it's a newborn lamb!") ) :scripts {:carrot (actions/get-script entities (actions/talk entities :ego "I think it's still nursing.")) - :grass (actions/get-script entities (actions/talk entities :ego "I think it's still nursing."))} - ) + :grass (actions/get-script entities (actions/talk entities :ego "I think it's still nursing.")) + :sword (actions/get-script entities (actions/talk entities :ego "I prefer to let the butcher make lamb chops."))}) :butterfly (assoc (animation->texture screen butterfly-stand) :x 161 :y 218 @@ -756,7 +757,10 @@ :scripts put-something-in-cauldron)) :wizard (rooms/make-entity :wizard (common/make-wizard screen {:x 190 :y 78 :baseline 162 :scale-x 1.2 :scale-y 1.2 :script (actions/get-script entities (talk-to-gandarf-outside entities)) - :scripts {:default (actions/get-script entities (actions/talk entities :wizard "No time for that!"))}})) + :scripts {:default (actions/get-script entities (actions/talk entities :wizard "No time for that!")) + :sword (actions/get-script entities (actions/do-dialogue entities + :wizard "The Sword of Blergh!" + :wizard "Good job, Tick."))}})) :note (rooms/make-entity :note (assoc (texture "outsidehouse/note.png") :x 277 :y 74 :baseline 160 :night-profile :none diff --git a/desktop/src-common/advent/screens/rooms/space.clj b/desktop/src-common/advent/screens/rooms/space.clj index bc7293ba..fd784e4d 100644 --- a/desktop/src-common/advent/screens/rooms/space.clj +++ b/desktop/src-common/advent/screens/rooms/space.clj @@ -20,11 +20,12 @@ (get-in entities [:state :active?]) (not (get-in entities [:state :blergh-dead?])) (not (actions/has-item? entities :magic-slingshot))) - ((actions/get-script entities (actions/do-dialogue entities :bloodclot-head (rand-nth ["Come on, little man! Try and hit me!" - "What's the matter? Cold feet?" + ((actions/get-script entities (actions/do-dialogue entities :bloodclot-head (rand-nth ["Come over here, so I can eat you!" + "The taste of children makes my tummy rumble!" "Come here and fight me like man!" - "Your precious Georgia McGorgeous would be laughing if she saw you now." - "Pick up your weapon and fight!"]))) entities)) + "Georgia McGorgeous will be so impressed with how quickly I eat you!" + "Come on, I'm hungry!" + "First I'll eat you, then I'll eat Georgia McGorgeous!"]))) entities)) nil) (defn shock [screen entities] diff --git a/desktop/src-common/advent/screens/title.clj b/desktop/src-common/advent/screens/title.clj index 8b1c0a3a..d8b2a480 100644 --- a/desktop/src-common/advent/screens/title.clj +++ b/desktop/src-common/advent/screens/title.clj @@ -210,7 +210,8 @@ (tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 1.0 :finish (fn [entities] (utils/stop-sound (:music entities)) - (set-screen! @(resolve 'advent.core/advent) scene/scene scene/demo scene/hud dialogue/talking-screen dialogue/choice-screen inventory/inventory-screen safe/safe-screen fade/fade-screen) + (set-screen! @(resolve 'advent.core/advent) scene/scene scene/demo scene/hud dialogue/talking-screen dialogue/choice-screen inventory/inventory-screen safe/safe-screen fade/fade-screen + ) entities) :ease tween/ease-in-cubic)) (assoc-in [:tweens :fade-out-music]