diff --git a/desktop/asset-work/space/arm.png b/desktop/asset-work/space/arm.png new file mode 100644 index 00000000..36df1c11 Binary files /dev/null and b/desktop/asset-work/space/arm.png differ diff --git a/desktop/asset-work/tongue-fight/Sprite-0002.ase b/desktop/asset-work/tongue-fight/Sprite-0002.ase index 3bc50db5..7f47f7a9 100644 Binary files a/desktop/asset-work/tongue-fight/Sprite-0002.ase and b/desktop/asset-work/tongue-fight/Sprite-0002.ase differ diff --git a/desktop/asset-work/tongue-fight/bc.ase b/desktop/asset-work/tongue-fight/bc.ase new file mode 100644 index 00000000..f6aa23e5 Binary files /dev/null and b/desktop/asset-work/tongue-fight/bc.ase differ diff --git a/desktop/asset-work/tongue-fight/belly-bottom.png b/desktop/asset-work/tongue-fight/belly-bottom.png new file mode 100644 index 00000000..cdbc6acb Binary files /dev/null and b/desktop/asset-work/tongue-fight/belly-bottom.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_0.png b/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_0.png new file mode 100644 index 00000000..685b3a8b Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_0.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_1.png b/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_1.png new file mode 100644 index 00000000..70510b29 Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_1.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_2.png b/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_2.png new file mode 100644 index 00000000..f0e9d018 Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_2.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_3.png b/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_3.png new file mode 100644 index 00000000..d7dda657 Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow-bottom_3.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow-top_0.png b/desktop/asset-work/tongue-fight/bloodclot-swallow-top_0.png new file mode 100644 index 00000000..6339f627 Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow-top_0.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow-top_1.png b/desktop/asset-work/tongue-fight/bloodclot-swallow-top_1.png new file mode 100644 index 00000000..9e510521 Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow-top_1.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow-top_2.png b/desktop/asset-work/tongue-fight/bloodclot-swallow-top_2.png new file mode 100644 index 00000000..421f0d3c Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow-top_2.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow-top_3.png b/desktop/asset-work/tongue-fight/bloodclot-swallow-top_3.png new file mode 100644 index 00000000..a42e06a9 Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow-top_3.png differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow.ase b/desktop/asset-work/tongue-fight/bloodclot-swallow.ase new file mode 100644 index 00000000..ba324422 Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow.ase differ diff --git a/desktop/asset-work/tongue-fight/bloodclot-swallow.png b/desktop/asset-work/tongue-fight/bloodclot-swallow.png new file mode 100644 index 00000000..9bacd30f Binary files /dev/null and b/desktop/asset-work/tongue-fight/bloodclot-swallow.png differ diff --git a/desktop/asset-work/tongue-fight/falling-ego.ase b/desktop/asset-work/tongue-fight/falling-ego.ase new file mode 100644 index 00000000..70effe6a Binary files /dev/null and b/desktop/asset-work/tongue-fight/falling-ego.ase differ diff --git a/desktop/asset-work/tongue-fight/falling-ego.png b/desktop/asset-work/tongue-fight/falling-ego.png new file mode 100644 index 00000000..2a1dcef8 Binary files /dev/null and b/desktop/asset-work/tongue-fight/falling-ego.png differ diff --git a/desktop/asset-work/tongue-fight/falling-ego_0.ase b/desktop/asset-work/tongue-fight/falling-ego_0.ase new file mode 100644 index 00000000..70effe6a Binary files /dev/null and b/desktop/asset-work/tongue-fight/falling-ego_0.ase differ diff --git a/desktop/asset-work/tongue-fight/falling-ego_0.png b/desktop/asset-work/tongue-fight/falling-ego_0.png new file mode 100644 index 00000000..f52d49e1 Binary files /dev/null and b/desktop/asset-work/tongue-fight/falling-ego_0.png differ diff --git a/desktop/asset-work/tongue-fight/falling-ego_1.png b/desktop/asset-work/tongue-fight/falling-ego_1.png new file mode 100644 index 00000000..954b437f Binary files /dev/null and b/desktop/asset-work/tongue-fight/falling-ego_1.png differ diff --git a/desktop/asset-work/tongue-fight/falling-ego_2.png b/desktop/asset-work/tongue-fight/falling-ego_2.png new file mode 100644 index 00000000..8af9e3b3 Binary files /dev/null and b/desktop/asset-work/tongue-fight/falling-ego_2.png differ diff --git a/desktop/asset-work/tongue-fight/falling-ego_3.png b/desktop/asset-work/tongue-fight/falling-ego_3.png new file mode 100644 index 00000000..c8e6d6ae Binary files /dev/null and b/desktop/asset-work/tongue-fight/falling-ego_3.png differ diff --git a/desktop/asset-work/tongue-fight/penultimate.png b/desktop/asset-work/tongue-fight/penultimate.png index 62be4cbd..0cab2f89 100644 Binary files a/desktop/asset-work/tongue-fight/penultimate.png and b/desktop/asset-work/tongue-fight/penultimate.png differ diff --git a/desktop/asset-work/tongue-fight/penultimate.psd b/desktop/asset-work/tongue-fight/penultimate.psd index 5bd32555..84d076fd 100644 Binary files a/desktop/asset-work/tongue-fight/penultimate.psd and b/desktop/asset-work/tongue-fight/penultimate.psd differ diff --git a/desktop/asset-work/tongue-fight/sword-spin_0.png b/desktop/asset-work/tongue-fight/sword-spin_0.png index 3d920c02..342f1132 100644 Binary files a/desktop/asset-work/tongue-fight/sword-spin_0.png and b/desktop/asset-work/tongue-fight/sword-spin_0.png differ diff --git a/desktop/asset-work/tongue-fight/sword-spin_1.png b/desktop/asset-work/tongue-fight/sword-spin_1.png index 63ab5392..6b329b7a 100644 Binary files a/desktop/asset-work/tongue-fight/sword-spin_1.png and b/desktop/asset-work/tongue-fight/sword-spin_1.png differ diff --git a/desktop/asset-work/tongue-fight/sword-spin_2.png b/desktop/asset-work/tongue-fight/sword-spin_2.png index 2569cfcc..8cb9a19b 100644 Binary files a/desktop/asset-work/tongue-fight/sword-spin_2.png and b/desktop/asset-work/tongue-fight/sword-spin_2.png differ diff --git a/desktop/asset-work/tongue-fight/sword-spin_3.png b/desktop/asset-work/tongue-fight/sword-spin_3.png index bb3bace1..3700a9f6 100644 Binary files a/desktop/asset-work/tongue-fight/sword-spin_3.png and b/desktop/asset-work/tongue-fight/sword-spin_3.png differ diff --git a/desktop/asset-work/tongue-fight/sword-spin_4.png b/desktop/asset-work/tongue-fight/sword-spin_4.png index e3f00ecc..088b7e4c 100644 Binary files a/desktop/asset-work/tongue-fight/sword-spin_4.png and b/desktop/asset-work/tongue-fight/sword-spin_4.png differ diff --git a/desktop/asset-work/tongue-fight/sword-spin_5.png b/desktop/asset-work/tongue-fight/sword-spin_5.png index 7602629f..335da350 100644 Binary files a/desktop/asset-work/tongue-fight/sword-spin_5.png and b/desktop/asset-work/tongue-fight/sword-spin_5.png differ diff --git a/desktop/project.clj b/desktop/project.clj index 4f9b0804..38b20d0a 100644 --- a/desktop/project.clj +++ b/desktop/project.clj @@ -2,7 +2,7 @@ (def packs (into ["do"] (mapcat (fn [directory] ["run" "-m" "com.badlogic.gdx.tools.texturepacker.TexturePacker" (str "asset-work/" directory) "resources/packed/" (str directory ",")]) - ["tongue-fight", "global" "space" ] + ["tongue-fight", "global" "space" "particles"] #_["behindhouse" "dream" "georgia" "inside-cafeteria" "inside-jail" "outsidehouse" "safe-song" "title" "castle-gate" "ego" "held" "inside-castle" "inside-stash" "outside-castle" "screenshots" "wizard" "cat-tree" "ending-castle" "inside-antique" "inside-house" "outside-jail" "space" ]))) @@ -43,7 +43,7 @@ :dev { :source-paths ["src" "src-common" "src-dev"] :jvm-opts ["-Duse-repl=true" "-Dui_scale=1.0" "-Dno-steam=true" "-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true" "-Dplatform=desktop"] - :dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"] + :dependencies [[com.badlogicgames.gdx/gdx-tools "1.9.4"] [org.clojure/tools.nrepl "0.2.12"] [play-clj-nrepl "0.1.0" :exclusions [play-clj]] [slamhound "1.5.5"] diff --git a/desktop/resources/packed/particles.atlas b/desktop/resources/packed/particles.atlas new file mode 100644 index 00000000..f94a622d --- /dev/null +++ b/desktop/resources/packed/particles.atlas @@ -0,0 +1,90 @@ + +particles.png +size: 256,64 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +beam + rotate: false + xy: 2, 5 + size: 12, 5 + orig: 12, 5 + offset: 0, 0 + index: -1 +cloud + rotate: false + xy: 148, 25 + size: 15, 15 + orig: 15, 15 + offset: 0, 0 + index: -1 +cloud-georgia + rotate: false + xy: 104, 20 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +cloud1 + rotate: false + xy: 2, 12 + size: 100, 50 + orig: 100, 50 + offset: 0, 0 + index: -1 +cloud2 + rotate: false + xy: 2, 12 + size: 100, 50 + orig: 100, 50 + offset: 0, 0 + index: -1 +cloudy + rotate: false + xy: 206, 42 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +dither + rotate: false + xy: 104, 15 + size: 3, 3 + orig: 3, 3 + offset: 0, 0 + index: -1 +dot + rotate: false + xy: 2, 2 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 +fire-particle + rotate: false + xy: 250, 58 + size: 4, 4 + orig: 4, 4 + offset: 0, 0 + index: -1 +flesh + rotate: false + xy: 126, 20 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +lightning + rotate: false + xy: 104, 42 + size: 100, 20 + orig: 100, 20 + offset: 0, 0 + index: -1 +magic + rotate: false + xy: 228, 42 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 diff --git a/desktop/resources/packed/particles.png b/desktop/resources/packed/particles.png new file mode 100644 index 00000000..fc72212b Binary files /dev/null and b/desktop/resources/packed/particles.png differ diff --git a/desktop/resources/packed/space.atlas b/desktop/resources/packed/space.atlas index fc99de21..dc8bc16a 100644 --- a/desktop/resources/packed/space.atlas +++ b/desktop/resources/packed/space.atlas @@ -18,6 +18,13 @@ Untitled orig: 36, 36 offset: 0, 0 index: -1 +arm + rotate: false + xy: 870, 663 + size: 118, 190 + orig: 118, 190 + offset: 0, 0 + index: -1 background rotate: false xy: 2, 613 @@ -41,39 +48,25 @@ blergh-stand index: -1 blergh-talk rotate: false - xy: 870, 688 + xy: 870, 496 size: 106, 165 orig: 106, 165 offset: 0, 0 index: -1 bloodclot-explode rotate: false - xy: 870, 521 + xy: 912, 329 size: 106, 165 orig: 106, 165 offset: 0, 0 index: 0 bloodclot-explode rotate: false - xy: 912, 354 + xy: 912, 162 size: 106, 165 orig: 106, 165 offset: 0, 0 index: 1 -bloodclot-explode - rotate: false - xy: 912, 187 - size: 106, 165 - orig: 106, 165 - offset: 0, 0 - index: 2 -bloodclot-explode - rotate: false - xy: 912, 20 - size: 106, 165 - orig: 106, 165 - offset: 0, 0 - index: 3 bloodclot-grow rotate: false xy: 324, 653 @@ -172,6 +165,20 @@ bloodclot-grow orig: 180, 200 offset: 0, 0 index: 13 +bloodclot-head-talk + rotate: false + xy: 912, 85 + size: 82, 75 + orig: 82, 75 + offset: 0, 0 + index: 0 +bloodclot-head-talk + rotate: false + xy: 912, 8 + size: 82, 75 + orig: 82, 75 + offset: 0, 0 + index: 1 bloodclot-stand rotate: false xy: 2, 2 @@ -188,7 +195,7 @@ bloodclot-talk index: -1 broken-jewel rotate: false - xy: 324, 153 + xy: 870, 480 size: 10, 14 orig: 10, 14 offset: 0, 0 @@ -209,7 +216,7 @@ cloud index: -1 dot rotate: false - xy: 870, 518 + xy: 978, 660 size: 1, 1 orig: 1, 1 offset: 0, 0 @@ -240,132 +247,146 @@ bloodclot-explode size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 4 + index: 2 bloodclot-explode rotate: false xy: 184, 784 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 5 + index: 3 bloodclot-explode rotate: false xy: 2, 415 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 6 + index: 4 bloodclot-explode rotate: false xy: 292, 784 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 7 + index: 5 bloodclot-explode rotate: false xy: 2, 248 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 8 + index: 6 bloodclot-explode rotate: false xy: 400, 784 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 9 + index: 7 bloodclot-explode rotate: false xy: 2, 81 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 10 + index: 8 bloodclot-explode rotate: false xy: 508, 784 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 11 + index: 9 bloodclot-explode rotate: false xy: 616, 784 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 12 + index: 10 bloodclot-explode rotate: false xy: 724, 784 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 13 + index: 11 bloodclot-explode rotate: false xy: 832, 784 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 14 + index: 12 bloodclot-explode rotate: false xy: 110, 582 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 15 + index: 13 bloodclot-explode rotate: false xy: 110, 415 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 16 + index: 14 bloodclot-explode rotate: false xy: 110, 248 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 17 + index: 15 bloodclot-explode rotate: false xy: 110, 81 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 18 + index: 16 bloodclot-explode rotate: false xy: 218, 617 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 19 + index: 17 bloodclot-explode rotate: false xy: 218, 450 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 20 + index: 18 bloodclot-explode rotate: false xy: 326, 617 size: 106, 165 orig: 106, 165 offset: 0, 0 - index: 21 + index: 19 bloodclot-explode rotate: false xy: 218, 283 size: 106, 165 orig: 106, 165 offset: 0, 0 + index: 20 +bloodclot-explode + rotate: false + xy: 326, 450 + size: 106, 165 + orig: 106, 165 + offset: 0, 0 + index: 21 +bloodclot-explode + rotate: false + xy: 434, 617 + size: 106, 165 + orig: 106, 165 + offset: 0, 0 index: 22 bloodclot-grow rotate: false @@ -380,94 +401,80 @@ bloodclot-head-talk size: 82, 75 orig: 82, 75 offset: 0, 0 - index: 0 + index: 2 bloodclot-head-talk rotate: false xy: 940, 797 size: 82, 75 orig: 82, 75 offset: 0, 0 - index: 1 + index: 3 bloodclot-head-talk rotate: false xy: 940, 720 size: 82, 75 orig: 82, 75 offset: 0, 0 - index: 2 -bloodclot-head-talk - rotate: false - xy: 326, 540 - size: 82, 75 - orig: 82, 75 - offset: 0, 0 - index: 3 + index: 4 bloodclot-head-talk rotate: false xy: 218, 206 size: 82, 75 orig: 82, 75 offset: 0, 0 - index: 4 -bloodclot-head-talk - rotate: false - xy: 434, 707 - size: 82, 75 - orig: 82, 75 - offset: 0, 0 index: 5 bloodclot-head-talk rotate: false - xy: 326, 463 + xy: 326, 373 size: 82, 75 orig: 82, 75 offset: 0, 0 index: 6 bloodclot-head-talk rotate: false - xy: 218, 129 + xy: 434, 540 size: 82, 75 orig: 82, 75 offset: 0, 0 index: 7 bloodclot-head-talk rotate: false - xy: 434, 630 + xy: 542, 707 size: 82, 75 orig: 82, 75 offset: 0, 0 index: 8 bloodclot-head-talk rotate: false - xy: 518, 707 + xy: 218, 129 size: 82, 75 orig: 82, 75 offset: 0, 0 index: 9 bloodclot-head-talk rotate: false - xy: 326, 386 + xy: 326, 296 size: 82, 75 orig: 82, 75 offset: 0, 0 index: 10 bloodclot-head-talk rotate: false - xy: 518, 630 + xy: 434, 463 size: 82, 75 orig: 82, 75 offset: 0, 0 index: 11 bloodclot-head-talk rotate: false - xy: 602, 707 + xy: 542, 630 size: 82, 75 orig: 82, 75 offset: 0, 0 index: 12 bloodclot-head-talk rotate: false - xy: 326, 309 + xy: 626, 707 size: 82, 75 orig: 82, 75 offset: 0, 0 diff --git a/desktop/resources/packed/space.png b/desktop/resources/packed/space.png index 16065ea1..322aefe1 100644 Binary files a/desktop/resources/packed/space.png and b/desktop/resources/packed/space.png differ diff --git a/desktop/resources/packed/space2.png b/desktop/resources/packed/space2.png index e3a6b49d..5990fa86 100644 Binary files a/desktop/resources/packed/space2.png and b/desktop/resources/packed/space2.png differ diff --git a/desktop/resources/packed/tongue-fight.atlas b/desktop/resources/packed/tongue-fight.atlas index 609aeff8..77c3c248 100644 --- a/desktop/resources/packed/tongue-fight.atlas +++ b/desktop/resources/packed/tongue-fight.atlas @@ -6,392 +6,427 @@ filter: Nearest,Nearest repeat: none background rotate: false - xy: 2, 778 + xy: 2, 776 size: 320, 240 orig: 320, 240 offset: 0, 0 index: -1 +belly-bottom + rotate: false + xy: 626, 704 + size: 320, 70 + orig: 320, 70 + offset: 0, 0 + index: -1 +falling-ego + rotate: false + xy: 968, 740 + size: 40, 72 + orig: 40, 72 + offset: 0, 0 + index: 0 +falling-ego + rotate: false + xy: 948, 666 + size: 40, 72 + orig: 40, 72 + offset: 0, 0 + index: 1 +falling-ego + rotate: false + xy: 990, 644 + size: 24, 78 + orig: 24, 78 + offset: 0, 0 + index: -1 +falling-ego + rotate: false + xy: 928, 592 + size: 40, 72 + orig: 40, 72 + offset: 0, 0 + index: 2 +falling-ego + rotate: false + xy: 970, 570 + size: 40, 72 + orig: 40, 72 + offset: 0, 0 + index: 3 hair-0 rotate: false - xy: 991, 734 + xy: 32, 730 size: 7, 8 orig: 7, 8 offset: 0, 0 index: 0 hair-0 rotate: false - xy: 1000, 734 + xy: 41, 730 size: 7, 8 orig: 7, 8 offset: 0, 0 index: 1 hair-0 rotate: false - xy: 1009, 734 + xy: 50, 730 size: 7, 8 orig: 7, 8 offset: 0, 0 index: 2 hair-0 rotate: false - xy: 981, 724 + xy: 59, 730 size: 7, 8 orig: 7, 8 offset: 0, 0 index: 3 hair-0 rotate: false - xy: 967, 716 + xy: 68, 730 size: 7, 8 orig: 7, 8 offset: 0, 0 index: 4 hair-1 rotate: false - xy: 928, 760 + xy: 134, 758 size: 23, 16 orig: 23, 16 offset: 0, 0 index: 0 hair-1 rotate: false - xy: 928, 742 + xy: 134, 740 size: 23, 16 orig: 23, 16 offset: 0, 0 index: 1 hair-1 rotate: false - xy: 967, 746 + xy: 159, 758 size: 23, 16 orig: 23, 16 offset: 0, 0 index: 2 hair-2 rotate: false - xy: 968, 952 + xy: 968, 950 size: 47, 66 orig: 47, 66 offset: 0, 0 index: 0 hair-2 rotate: false - xy: 968, 884 + xy: 968, 882 size: 47, 66 orig: 47, 66 offset: 0, 0 index: 1 hair-2 rotate: false - xy: 968, 816 + xy: 968, 814 size: 47, 66 orig: 47, 66 offset: 0, 0 index: 2 hair-3 rotate: false - xy: 942, 708 + xy: 77, 730 size: 7, 8 orig: 7, 8 offset: 0, 0 index: 0 hair-3 rotate: false - xy: 928, 702 + xy: 86, 730 size: 7, 8 orig: 7, 8 offset: 0, 0 index: 1 hair-3 rotate: false - xy: 951, 708 + xy: 95, 730 size: 7, 8 orig: 7, 8 offset: 0, 0 index: 2 hair-4 rotate: false - xy: 953, 748 + xy: 1010, 784 size: 12, 28 orig: 12, 28 offset: 0, 0 index: 0 hair-4 rotate: false - xy: 953, 718 + xy: 1010, 754 size: 12, 28 orig: 12, 28 offset: 0, 0 index: 1 hair-4 rotate: false - xy: 928, 712 + xy: 1010, 724 size: 12, 28 orig: 12, 28 offset: 0, 0 index: 2 hair-5 rotate: false - xy: 942, 730 + xy: 2, 728 size: 8, 10 orig: 8, 10 offset: 0, 0 index: 0 hair-5 rotate: false - xy: 942, 718 + xy: 12, 728 size: 8, 10 orig: 8, 10 offset: 0, 0 index: 1 hair-5 rotate: false - xy: 981, 734 + xy: 22, 728 size: 8, 10 orig: 8, 10 offset: 0, 0 index: 2 hair-6 rotate: false - xy: 1017, 985 + xy: 1017, 983 size: 4, 6 orig: 4, 6 offset: 0, 0 index: 0 hair-6 rotate: false - xy: 1017, 977 + xy: 1017, 975 size: 4, 6 orig: 4, 6 offset: 0, 0 index: 1 hair-6 rotate: false - xy: 1017, 969 + xy: 1017, 967 size: 4, 6 orig: 4, 6 offset: 0, 0 index: 2 hair-7 rotate: false - xy: 1017, 1011 + xy: 1017, 1009 size: 5, 7 orig: 5, 7 offset: 0, 0 index: 0 hair-7 rotate: false - xy: 1017, 1002 + xy: 1017, 1000 size: 5, 7 orig: 5, 7 offset: 0, 0 index: 1 hair-7 rotate: false - xy: 1017, 993 + xy: 1017, 991 size: 5, 7 orig: 5, 7 offset: 0, 0 index: 2 hair-8 rotate: false - xy: 990, 726 + xy: 104, 732 size: 6, 6 orig: 6, 6 offset: 0, 0 index: 0 hair-8 rotate: false - xy: 998, 726 + xy: 104, 724 size: 6, 6 orig: 6, 6 offset: 0, 0 index: 1 hair-8 rotate: false - xy: 1006, 726 + xy: 112, 732 size: 6, 6 orig: 6, 6 offset: 0, 0 index: 2 hair-9 rotate: false - xy: 992, 744 + xy: 106, 756 size: 12, 18 orig: 12, 18 offset: 0, 0 index: 0 hair-9 rotate: false - xy: 1006, 744 + xy: 120, 756 size: 12, 18 orig: 12, 18 offset: 0, 0 index: 1 hair-9 rotate: false - xy: 967, 726 + xy: 120, 736 size: 12, 18 orig: 12, 18 offset: 0, 0 index: 2 heart rotate: false - xy: 968, 790 + xy: 2, 750 size: 24, 24 orig: 24, 24 offset: 0, 0 index: 0 heart rotate: false - xy: 994, 790 + xy: 28, 750 size: 24, 24 orig: 24, 24 offset: 0, 0 index: 1 heart rotate: false - xy: 968, 764 + xy: 54, 750 size: 24, 24 orig: 24, 24 offset: 0, 0 index: 2 heart rotate: false - xy: 994, 764 + xy: 80, 750 size: 24, 24 orig: 24, 24 offset: 0, 0 index: 3 penultimate rotate: false - xy: 324, 778 + xy: 324, 776 size: 320, 240 orig: 320, 240 offset: 0, 0 index: -1 penultimate-black rotate: false - xy: 646, 778 + xy: 646, 776 size: 320, 240 orig: 320, 240 offset: 0, 0 index: -1 penultimate-wall rotate: false - xy: 2, 536 + xy: 2, 482 size: 320, 240 orig: 320, 240 offset: 0, 0 index: -1 sword-spin rotate: false - xy: 324, 538 + xy: 2, 242 size: 300, 238 orig: 300, 238 offset: 0, 0 index: 0 sword-spin - rotate: false - xy: 626, 538 - size: 300, 238 - orig: 300, 238 - offset: 0, 0 - index: 1 -sword-spin - rotate: false - xy: 324, 298 - size: 300, 238 - orig: 300, 238 - offset: 0, 0 - index: 2 -sword-spin - rotate: false - xy: 2, 296 - size: 300, 238 - orig: 300, 238 - offset: 0, 0 - index: 3 -sword-spin - rotate: false - xy: 626, 298 - size: 300, 238 - orig: 300, 238 - offset: 0, 0 - index: 4 -sword-spin - rotate: false - xy: 304, 58 - size: 300, 238 - orig: 300, 238 - offset: 0, 0 - index: 5 -tongue-attack - rotate: false - xy: 880, 151 - size: 135, 145 - orig: 135, 145 - offset: 0, 0 - index: 0 -tongue-attack - rotate: false - xy: 880, 4 - size: 135, 145 - orig: 135, 145 - offset: 0, 0 - index: 1 -tongue-attack-hit - rotate: false - xy: 2, 149 - size: 135, 145 - orig: 135, 145 - offset: 0, 0 - index: 0 -tongue-attack-hit rotate: false xy: 2, 2 + size: 300, 238 + orig: 300, 238 + offset: 0, 0 + index: 1 +sword-spin + rotate: false + xy: 304, 242 + size: 300, 238 + orig: 300, 238 + offset: 0, 0 + index: 2 +sword-spin + rotate: false + xy: 324, 484 + size: 300, 238 + orig: 300, 238 + offset: 0, 0 + index: 3 +sword-spin + rotate: false + xy: 304, 2 + size: 300, 238 + orig: 300, 238 + offset: 0, 0 + index: 4 +sword-spin + rotate: false + xy: 626, 464 + size: 300, 238 + orig: 300, 238 + offset: 0, 0 + index: 5 +tongue-attack + rotate: false + xy: 880, 23 + size: 135, 145 + orig: 135, 145 + offset: 0, 0 + index: 0 +tongue-attack-hit + rotate: false + xy: 606, 317 + size: 135, 145 + orig: 135, 145 + offset: 0, 0 + index: 0 +tongue-attack-hit + rotate: false + xy: 743, 317 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 1 tongue-attack-hit rotate: false - xy: 139, 149 + xy: 880, 317 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 2 tongue-attack-hit rotate: false - xy: 139, 2 + xy: 606, 170 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 3 tongue-attack-hit rotate: false - xy: 606, 151 + xy: 606, 23 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 4 tongue-attack-hit rotate: false - xy: 606, 4 + xy: 743, 170 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 5 tongue-attack-hit rotate: false - xy: 743, 151 + xy: 880, 170 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 6 tongue-attack-hit rotate: false - xy: 743, 4 + xy: 743, 23 size: 135, 145 orig: 135, 145 offset: 0, 0 @@ -402,114 +437,184 @@ size: 1024,512 format: RGBA8888 filter: Nearest,Nearest repeat: none +bloodclot-swallow + rotate: false + xy: 413, 2 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: -1 +bloodclot-swallow-bottom + rotate: false + xy: 784, 279 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: 0 +bloodclot-swallow-bottom + rotate: false + xy: 543, 149 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: 1 +bloodclot-swallow-bottom + rotate: false + xy: 543, 64 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: 2 +bloodclot-swallow-bottom + rotate: false + xy: 661, 143 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: 3 +bloodclot-swallow-top + rotate: false + xy: 661, 58 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: 0 +bloodclot-swallow-top + rotate: false + xy: 784, 194 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: 1 +bloodclot-swallow-top + rotate: false + xy: 779, 109 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: 2 +bloodclot-swallow-top + rotate: false + xy: 779, 24 + size: 116, 83 + orig: 116, 83 + offset: 0, 0 + index: 3 falling-bg rotate: false - xy: 276, 19 + xy: 413, 217 size: 128, 128 orig: 128, 128 offset: 0, 0 index: 0 falling-bg rotate: false - xy: 413, 166 + xy: 550, 364 size: 128, 128 orig: 128, 128 offset: 0, 0 index: 1 falling-bg rotate: false - xy: 550, 313 + xy: 413, 87 size: 128, 128 orig: 128, 128 offset: 0, 0 index: 2 falling-bg rotate: false - xy: 680, 313 + xy: 680, 364 size: 128, 128 orig: 128, 128 offset: 0, 0 index: 3 falling-bg rotate: false - xy: 810, 313 + xy: 810, 364 size: 128, 128 orig: 128, 128 offset: 0, 0 index: 4 falling-bg rotate: false - xy: 413, 36 + xy: 550, 234 size: 128, 128 orig: 128, 128 offset: 0, 0 index: 5 tongue-attack rotate: false - xy: 2, 296 + xy: 2, 347 + size: 135, 145 + orig: 135, 145 + offset: 0, 0 + index: 1 +tongue-attack + rotate: false + xy: 2, 200 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 2 tongue-attack rotate: false - xy: 2, 149 + xy: 139, 347 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 3 tongue-attack rotate: false - xy: 139, 296 + xy: 2, 53 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 4 tongue-attack rotate: false - xy: 2, 2 + xy: 139, 200 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 5 tongue-attack rotate: false - xy: 139, 149 + xy: 276, 347 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 6 tongue-idle rotate: false - xy: 543, 160 + xy: 680, 228 size: 102, 134 orig: 102, 134 offset: 0, 0 index: 0 tongue-windup rotate: false - xy: 276, 296 + xy: 139, 53 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 0 tongue-windup rotate: false - xy: 139, 2 + xy: 276, 200 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 1 tongue-windup rotate: false - xy: 276, 149 + xy: 413, 347 size: 135, 145 orig: 135, 145 offset: 0, 0 index: 2 tongue-windup rotate: false - xy: 413, 296 + xy: 276, 53 size: 135, 145 orig: 135, 145 offset: 0, 0 diff --git a/desktop/resources/packed/tongue-fight.png b/desktop/resources/packed/tongue-fight.png index c6c23b5b..7d3bf3aa 100644 Binary files a/desktop/resources/packed/tongue-fight.png and b/desktop/resources/packed/tongue-fight.png differ diff --git a/desktop/resources/packed/tongue-fight2.png b/desktop/resources/packed/tongue-fight2.png index 1db26cf5..6667327c 100644 Binary files a/desktop/resources/packed/tongue-fight2.png and b/desktop/resources/packed/tongue-fight2.png differ diff --git a/desktop/resources/particles/black-blowup b/desktop/resources/particles/black-blowup new file mode 100644 index 00000000..6b8ddcec --- /dev/null +++ b/desktop/resources/particles/black-blowup @@ -0,0 +1,146 @@ +Untitled +- Delay - +active: false +- Duration - +lowMin: 1000.0 +lowMax: 1000.0 +- Count - +min: 0 +max: 1500 +- Emission - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1500.0 +highMax: 1500.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Life - +lowMin: 900.0 +lowMax: 900.0 +highMin: 1000.0 +highMax: 1200.0 +relative: false +scalingCount: 2 +scaling0: 0.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Life Offset - +active: false +- X Offset - +active: false +- Y Offset - +active: false +- Spawn Shape - +shape: point +- Spawn Width - +lowMin: 50.0 +lowMax: 50.0 +highMin: 200.0 +highMax: 200.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Spawn Height - +lowMin: 0.0 +lowMax: 0.0 +highMin: 200.0 +highMax: 200.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Scale - +lowMin: 1.0 +lowMax: 1.0 +highMin: 5.0 +highMax: 3.0 +relative: false +scalingCount: 2 +scaling0: 1.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Velocity - +active: true +lowMin: 50.0 +lowMax: 200.0 +highMin: 100.0 +highMax: 400.0 +relative: true +scalingCount: 2 +scaling0: 1.0 +scaling1: 0.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Angle - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: -360.0 +highMax: 360.0 +relative: true +scalingCount: 2 +scaling0: 1.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Rotation - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: 360.0 +highMax: -360.0 +relative: false +scalingCount: 2 +scaling0: 0.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Wind - +active: false +- Gravity - +active: false +- Tint - +colorsCount: 3 +colors0: 0.0 +colors1: 0.0 +colors2: 0.0 +timelineCount: 1 +timeline0: 0.0 +- Transparency - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 4 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 0.94736844 +scaling3: 0.0 +timelineCount: 4 +timeline0: 0.0 +timeline1: 0.7328767 +timeline2: 0.96575344 +timeline3: 1.0 +- Options - +attached: false +continuous: false +aligned: false +additive: false +behind: false +premultipliedAlpha: false +- Image Path - +dot.png diff --git a/desktop/resources/particles/bloodclot-steam b/desktop/resources/particles/bloodclot-steam new file mode 100644 index 00000000..95ed7ace --- /dev/null +++ b/desktop/resources/particles/bloodclot-steam @@ -0,0 +1,218 @@ +Untitled +- Delay - +active: false +- Duration - +lowMin: 10000.0 +lowMax: 10000.0 +- Count - +min: 0 +max: 200 +- Emission - +lowMin: 2.0 +lowMax: 2.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 7 +scaling0: 0.97959185 +scaling1: 0.42857143 +scaling2: 0.97959185 +scaling3: 0.30612245 +scaling4: 1.0 +scaling5: 0.3265306 +scaling6: 0.0 +timelineCount: 7 +timeline0: 0.0 +timeline1: 0.14383562 +timeline2: 0.32876712 +timeline3: 0.46575344 +timeline4: 0.63013697 +timeline5: 0.75342464 +timeline6: 0.93835616 +- Life - +lowMin: 0.0 +lowMax: 0.0 +highMin: 20000.0 +highMax: 20000.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Life Offset - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- X Offset - +active: true +lowMin: -2.0 +lowMax: 2.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Y Offset - +active: true +lowMin: -2.0 +lowMax: 2.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Spawn Shape - +shape: point +- Spawn Width - +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Spawn Height - +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Scale - +lowMin: 8.0 +lowMax: 15.0 +highMin: 60.0 +highMax: 120.0 +relative: true +scalingCount: 2 +scaling0: 0.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Velocity - +active: true +lowMin: 25.0 +lowMax: 25.0 +highMin: 8.0 +highMax: 8.0 +relative: false +scalingCount: 2 +scaling0: 0.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Angle - +active: true +lowMin: 180.0 +lowMax: 170.0 +highMin: -120.0 +highMax: -100.0 +relative: true +scalingCount: 10 +scaling0: 0.0 +scaling1: 0.0 +scaling2: 1.0 +scaling3: 0.08163265 +scaling4: 0.8979592 +scaling5: 0.1632653 +scaling6: 0.75510204 +scaling7: 0.24489796 +scaling8: 0.6938776 +scaling9: 0.4489796 +timelineCount: 10 +timeline0: 0.0 +timeline1: 0.001 +timeline2: 0.14383562 +timeline3: 0.30136988 +timeline4: 0.42465752 +timeline5: 0.55479455 +timeline6: 0.65068495 +timeline7: 0.7328767 +timeline8: 0.84931505 +timeline9: 1.0 +- Rotation - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: 180.0 +highMax: -180.0 +relative: false +scalingCount: 2 +scaling0: 0.06122449 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 1.0 +- Wind - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: 45.0 +highMax: 10.0 +relative: false +scalingCount: 6 +scaling0: 0.0 +scaling1: 0.5510204 +scaling2: 0.2244898 +scaling3: 0.14285715 +scaling4: 0.46938777 +scaling5: 1.0 +timelineCount: 6 +timeline0: 0.0 +timeline1: 0.14383562 +timeline2: 0.34246576 +timeline3: 0.45890412 +timeline4: 0.70547944 +timeline5: 1.0 +- Gravity - +active: false +- Tint - +colorsCount: 3 +colors0: 0.80784315 +colors1: 0.8666667 +colors2: 0.8156863 +timelineCount: 1 +timeline0: 0.0 +- Transparency - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 4 +scaling0: 0.0 +scaling1: 0.42105263 +scaling2: 0.12280702 +scaling3: 0.0 +timelineCount: 4 +timeline0: 0.0 +timeline1: 0.23287672 +timeline2: 0.4520548 +timeline3: 1.0 +- Options - +attached: false +continuous: true +aligned: false +additive: false +behind: false +premultipliedAlpha: false +- Image Path - +cloud3.png diff --git a/desktop/resources/particles/cloud3.png b/desktop/resources/particles/cloud3.png new file mode 100644 index 00000000..61c26151 Binary files /dev/null and b/desktop/resources/particles/cloud3.png differ diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index b6fc842a..649086cf 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -677,6 +677,40 @@ (skip-type [this screen entities] :none)))) +(defn fade [entities time between] + (run-action entities + (begin [this screen entities] + + (-> entities + (assoc-in [:tweens :fade-out] (tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 time)) + (assoc-in [:tweens :fade-out-music] (tween/tween :fade-out-music screen [:volume :value] 1.0 0.0 time)))) + + (continue [this screen entities] + entities) + + (done? [this screen entities] + (>= (get-in entities [:fade :opacity]) 1.0)) + + (terminate [this screen entities] + (between entities)) + (skip-type [this screen entities] + :none)) + + (run-action entities + (begin [this screen entities] + + (assoc-in entities [:tweens :fade-out] (tween/tween :fade-out screen [:fade :opacity] 1.0 0.0 time))) + + (continue [this screen entities] + entities) + + (done? [this screen entities] + (>= (get-in entities [:fade :opacity]) 0.0)) + + (terminate [this screen entities] + (between entities)) + (skip-type [this screen entities] + :none))) (defn transition-background [entities new-background [x y] & {:keys [transition-music? between time face type]}] (let [transition-music? (if (nil? transition-music?) true transition-music?) @@ -789,6 +823,23 @@ (defn respond [entities line & more] (apply do-dialogue entities :ego line more)) +(defn tween [entities id tween-maker] + (run-action entities + (begin [this screen entities] + + (assoc-in entities [:tweens id] (tween-maker screen entities))) + + (continue [this screen entities] + entities) + + (done? [this screen entities] + (nil? (get-in entities [:tweens id]))) + + (terminate [this screen entities] + entities) + (skip-type [this screen entities] + :none))) + (defn glad [entities] (actions/run-action entities (begin [this screen entities] diff --git a/desktop/src-common/advent/screens/rooms.clj b/desktop/src-common/advent/screens/rooms.clj index c36370e2..7a142268 100644 --- a/desktop/src-common/advent/screens/rooms.clj +++ b/desktop/src-common/advent/screens/rooms.clj @@ -9,13 +9,14 @@ (println "loading " *ns*) (defn make-entity [id {:keys [scripts script only-script] :as entity}] + (merge entity {:id id :mouse-in? (fn [entities x y] (let [e (utils/get-entity entities id)] (if-let [[bx1 by1 bx2 by2] (:box e)] (zone/within bx1 by1 bx2 by2 x y) - (let [{^float entity-x :x ^float entity-y :y width :width scale-x :scale-x scale-y :scale-y origin-x :origin-x origin-y :origin-y height :height region :object} (-> entities :room :entities id) + (let [{^float entity-x :x ^float entity-y :y width :width scale-x :scale-x scale-y :scale-y origin-x :origin-x origin-y :origin-y height :height region :object} (-> entities :room :entities (get id)) width (or width (if (instance? TextureRegion region ) (.getRegionWidth ^TextureRegion region) 0)) height (or height (if (instance? TextureRegion region ) (.getRegionHeight ^TextureRegion region) 0)) diff --git a/desktop/src-common/advent/screens/rooms/common.clj b/desktop/src-common/advent/screens/rooms/common.clj index da102071..6ef45136 100644 --- a/desktop/src-common/advent/screens/rooms/common.clj +++ b/desktop/src-common/advent/screens/rooms/common.clj @@ -389,22 +389,16 @@ (skip-type [this screen entities] :none))) -(defn do-win [entities] - (Thread/sleep 3000) - (actions/update-entities entities (fn [e] - (-> e - (assoc-in [:room :entities :penultimate :opacity] 1) - (assoc-in [:room :entities :penultimate-wall :opacity] 1) - (assoc-in [:cam :paused?] false) - (update-in [:room :entities :ego ] assoc :x 178 :y 166 :baseline 4) - (update-in [:room :entities] dissoc :tongue) - (update-in [:room :entities :ego] actions/start-animation :fall-small)))) +(defn jump-away [entities] + (Thread/sleep 500) (actions/run-action entities (begin [this screen entities] (-> entities - (assoc-in [:tweens :ego-x] (tween/tween :ego-x screen [:room :entities :ego :x] 178 153 0.5 :ease tween/ease-linear)) - (assoc-in [:tweens :ego-y] (tween/tween :ego-y screen [:room :entities :ego :y] 166 186 0.5 :ease tween/ease-out-cubic)))) + (assoc-in [:tweens :ego-x] (tween/tween :ego-x screen [:room :entities :ego :x] 200 163 0.5 :ease tween/ease-linear)) + (assoc-in [:tweens :ego-y] (tween/tween :ego-y screen [:room :entities :ego :y] 166 186 0.5 :ease tween/ease-out-cubic)) + (update-in [:room :entities :bloodclot-swallow-top] #(actions/start-animation screen % :swallow)) + (update-in [:room :entities :bloodclot-swallow-bottom] #(actions/start-animation screen % :swallow)))) (continue [this screen entities] entities) (done? [this screen entities] @@ -419,7 +413,7 @@ (begin [this screen entities] (-> entities - (assoc-in [:tweens :ego-x] (tween/tween :ego-x screen [:room :entities :ego :x] 153 53 2 :ease tween/ease-linear)) + (assoc-in [:tweens :ego-x] (tween/tween :ego-x screen [:room :entities :ego :x] 163 63 2 :ease tween/ease-linear)) (assoc-in [:tweens :ego-y] (tween/tween :ego-y screen [:room :entities :ego :y] 186 0 2 :ease tween/ease-in-cubic)))) (continue [this screen entities] entities) @@ -436,37 +430,126 @@ (-> e (assoc-in [:room :entities :falling-bg :opacity] 1) (assoc-in [:room :entities :sword-spin :opacity] 1)))) + (Thread/sleep 2000)) + +(defn show-big-bloodclot [entities time] + (actions/update-entities entities (fn [e] + (-> e + (assoc-in [:room :entities :bloodclot-swallow-top :opacity] 1) + (assoc-in [:room :entities :bloodclot-swallow-bottom :opacity] 1) + (assoc-in [:room :entities :falling-ego :opacity] 0) + (assoc-in [:room :entities :sword-spin :opacity] 0) + (assoc-in [:room :entities :falling-bg :opacity] 0)))) + (Thread/sleep time)) + +(defn fall-in [entities] + (Thread/sleep 500) + (actions/run-action entities + (begin [this screen entities] + + (-> entities + + (assoc-in [:tweens :ego-y] (tween/tween :ego-y screen [:room :entities :ego :y] 166 117 3.0 :ease tween/ease-out-cubic)) + (update-in [:room :entities :bloodclot-swallow-top] #(actions/start-animation screen % :swallow)) + (update-in [:room :entities :bloodclot-swallow-bottom] #(actions/start-animation screen % :swallow)))) + (continue [this screen entities] + entities) + (done? [this screen entities] + (= 117 (get-in entities [:room :entities :ego :y]))) + + (terminate [this screen entities] + entities) + (skip-type [this screen entities] + :none)) + (Thread/sleep 1500) +(actions/update-entities entities (fn [e] + (-> e + (assoc-in [:room :entities :falling-bg :opacity] 1) + + (assoc-in [:room :entities :falling-ego :opacity] 1)))) (Thread/sleep 4000) + + (show-big-bloodclot entities 1000) (actions/update-entities entities (fn [e] (-> e - (assoc-in [:room :entities :falling-bg :opacity] 0) - (assoc-in [:room :entities :sword-spin :opacity] 0)))) + (assoc-in [:room :entities :falling-bg :opacity] 1) + (assoc-in [:room :entities :falling-ego :opacity] 0) + (assoc-in [:room :entities :sword-spin :opacity] 1)))) + (Thread/sleep 2000)) - (Thread/sleep 1000) +(defn do-win [entities won?] + (actions/fade entities 1.0 (fn [e] + (-> e + (assoc-in [:room :entities :penultimate :opacity] 1) + (assoc-in [:room :entities :penultimate-wall :opacity] 1) + (assoc-in [:room :entities :bloodclot-swallow-top :opacity] 1) + (assoc-in [:room :entities :bloodclot-swallow-bottom :opacity] 1) + (assoc-in [:cam :paused?] true) + (update-in [:room :entities :ego ] assoc :x 200 :y 166 :baseline 4) + (update-in [:room :entities] dissoc :tongue) + (update-in [:room :entities :ego] actions/start-animation :fall-small)))) + + (if won? + (jump-away entities) + (fall-in entities)) + (show-big-bloodclot entities 1000) + (actions/update-entities entities (fn [e] (-> e - (assoc-in [:room :entities :penultimate-black :opacity] 1)))) + + (update-in [:room :entities :sword-spin] assoc :opacity 1 :scale-x 0.5 :scale-y 0.5) + (assoc-in [:room :entities :falling-bg :opacity] 1) + (assoc-in [:room :entities :belly-bottom :opacity] 1) + (update-in [:room :entities :falling-bg ] dissoc :anim) + ))) + + (actions/tween entities :sword-fall (fn [screen entities] + (tween/tween :sword-fall screen [:room :entities :sword-spin :y] 240 120 1.5 :ease tween/ease-linear))) + + (actions/update-entities entities (fn [e] + (-> e + (assoc-in [:room :entities :belly-bottom :opacity] 0)))) + (show-big-bloodclot entities 0) + (actions/update-entities entities (fn [e] + (-> e + (update-in [:room :entities :bloodclot-swallow-top] #(actions/start-animation % :uhoh)) + (update-in [:room :entities :bloodclot-swallow-bottom] #(actions/start-animation % :uhoh))))) + (Thread/sleep 2000) + + + (actions/update-entities entities (fn [e] + (-> e + (assoc-in [:room :entities :penultimate-black :opacity] 1) + (assoc-in [:cam :paused?] false) + (update-in [:room :entities :black-blowup] (fn [b] + (particle-effect! b :reset) + (particle-effect! b :start) + b))))) (println "doing screen shake?") - (actions/camera-shake entities 15.0) + (actions/camera-shake entities 8.0) (println "doing screen shake?") - (actions/transition-background entities :space [55 90] :time 6.0 :type :white-fade :between (fn [s e] - (-> e + (actions/transition-background entities :space [55 90] + :time 4.0 + :transition-music? false + :type :white-fade + :between (fn [s e] + (-> e - (assoc-in [:room :entities :ego :stand-override] :crawl-stand) - (assoc-in [:room :entities :ego :previous-frame-index] -1) - (update-in [:room :entities :ego] #(actions/start-animation s % :crawl-stand)) - (update-in [:room :entities :ego] #(actions/start-animation s % :crawl-stand)) - (update-in [:room :entities] dissoc :bloodclot-head) - (assoc-in [:room :entities :bloodclot-smoke] (get-in e [:room :bloodclot-smoke])) - (update-in [:room ] dissoc :broken-jewel) - (update-in [:room :entities :bloodclot] #(actions/start-animation s % :steam)) - (update-in [:room :entities :ego] dissoc :stand-override :talk-override ) - (update-in [:room :entities :grow-explode] (fn [g] - (particle-effect! g :reset) - (particle-effect! g :start) - g))))) + (assoc-in [:room :entities :ego :stand-override] :crawl-stand) + (assoc-in [:room :entities :ego :previous-frame-index] -1) + (update-in [:room :entities :ego] #(actions/start-animation s % :crawl-stand)) + (update-in [:room :entities :ego] #(actions/start-animation s % :crawl-stand)) + (update-in [:room :entities] dissoc :bloodclot-head) + (assoc-in [:room :entities :bloodclot-smoke] (get-in e [:room :bloodclot-smoke])) + (update-in [:room ] dissoc :broken-jewel) + (update-in [:room :entities :bloodclot] #(actions/start-animation s % :steam)) + (update-in [:room :entities :ego] dissoc :stand-override :talk-override ) + (update-in [:room :entities :grow-explode] (fn [g] + (particle-effect! g :reset) + (particle-effect! g :start) + g))))) (Thread/sleep 2000) diff --git a/desktop/src-common/advent/screens/rooms/held.clj b/desktop/src-common/advent/screens/rooms/held.clj index 3df5aaa1..7c72ea30 100644 --- a/desktop/src-common/advent/screens/rooms/held.clj +++ b/desktop/src-common/advent/screens/rooms/held.clj @@ -82,7 +82,7 @@ entities)) (done? [this screen entities] - (> (- (:total-time screen) @start-time) 8.7)) + (> (- (:total-time screen) @start-time) 8.0)) (terminate [this screen entities] entities @@ -101,8 +101,7 @@ (assoc-in [:room :entities :ego :stand-override] :crawl-stand) (assoc-in [:room :entities :ego :previous-frame-index] -1) - (update-in [:room :entities :ego] #(actions/start-animation s % :crawl-stand))) - )) + (update-in [:room :entities :ego] #(actions/start-animation s % :crawl-stand))))) (actions/do-dialogue entities :bloodclot-head "Yes!" :bloodclot-head "Ultimate power is mine!" @@ -112,12 +111,19 @@ (explode entities) + (Thread/sleep 2000) (actions/talk entities :bloodclot "Now..." :stop? false :anim :big) (actions/talk entities :bloodclot "Where were we?" :stop? false :anim :big) + + (actions/tween entities + :arm-y + (fn [screen entities] + (tween/tween :arm-y screen [:room :entities :arm :y] 240 90 4.0 :ease tween/ease-linear))) + (actions/transition-background entities :tongue-fight [141 110])) diff --git a/desktop/src-common/advent/screens/rooms/space.clj b/desktop/src-common/advent/screens/rooms/space.clj index 0b588963..14feddff 100644 --- a/desktop/src-common/advent/screens/rooms/space.clj +++ b/desktop/src-common/advent/screens/rooms/space.clj @@ -189,14 +189,15 @@ bloodclot-head-shoot-anim (utils/make-anim-seq atlas "bloodclot-head-talk" [82 75] 0.05 [8 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 10 11 10 11 10 11 10 11 10 11 10 11]) bloodclot-head-keep-shoot-anim (utils/make-anim-seq atlas "bloodclot-head-talk" [82 75] 0.05 [12 13]) blergh-stand-anim (utils/make-anim atlas "bloodclot-stand" [106 165] 0.9 [0 1]) - bloodclot-grow (utils/make-anim-seq atlas "bloodclot-grow" [180 200] 0.075 [0 0 0 0 0 0 0 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 8 8 8 7 7 7 7 8 8 8 8 8 7 7 7 7 8 8 8 8 7 8 9 9 9 9 8 9 10 10 10 10 9 10 11 11 11 11 10 10 10 11 12 12 12 12 12 12 12 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14]) + bloodclot-grow (utils/make-anim-seq atlas "bloodclot-grow" [180 200] 0.075 [0 0 0 0 0 0 0 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 8 8 8 7 7 7 7 8 8 8 8 8 7 7 7 7 8 8 8 8 7 8 9 9 9 9 8 9 10 10 10 10 9 10 11 11 11 11 10 10 10 11 12 12 12 12 12 12 12 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14]) bloodclot-big (utils/make-anim-seq atlas "bloodclot-grow" [180 200] 0.075 [14]) bloodclot-steam (utils/make-anim-seq atlas "bloodclot-steam" [134 77] 0.075 [0]) bullet (utils/make-anim atlas "bullet" [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]) effect (particle-effect "particles/appear") blowup-effect (particle-effect "particles/blowup") lightning-effect (particle-effect "particles/lightning") - grow-explode (particle-effect "particles/grow-explode")] + grow-explode (particle-effect "particles/grow-explode") + ] (rooms/make :name "Duel" :sounds {:shock (utils/load-sound "space/shock.ogg") :shock-short (utils/load-sound "space/shock-short.ogg") @@ -218,12 +219,13 @@ :x 240 :y 240 :baseline 200) :blowup (assoc blowup-effect - :x 225 :y 175 + :x 300 :y 240 :baseline 241) :lightning (assoc lightning-effect :x 225 :y 160 :baseline 240 :opacity 0.0) + :arm (assoc (utils/atlas->texture atlas "arm") :x 80 :y 240 :origin-x 68 :origin-y 0 :baseline 241 :opacity 1) :bloodclot-head (assoc (animation->texture screen bloodclot-head-stand-anim) :x 195 :y 138 :baseline 195 :opacity 0.0 @@ -236,6 +238,7 @@ :talk-color (color 0.95 0.4 0.2 1.0)) :bloodclot (assoc (animation->texture screen blergh-stand-anim) :x 180 :y 50 :baseline 190 + :talk-color (color 0.95 0.4 0.2 1.0) :stand blergh-stand-anim :inhale-sound (utils/load-sound "space/bloodclot-inhale.ogg") :exhale-sound (utils/load-sound "space/bloodclot-exhale.ogg") @@ -347,7 +350,7 @@ :broken-jewel (assoc (utils/atlas->texture atlas "broken-jewel") :x 225 :y 170 :baseline 240) - :bloodclot-smoke (doto (assoc (particle-effect "particles/candle") :x 280 :y 90 + :bloodclot-smoke (doto (assoc (particle-effect "particles/bloodclot-steam") :x 280 :y 90 :baseline 200) (particle-effect! :set-position 280 90)) :collision "space/collision.png" diff --git a/desktop/src-common/advent/screens/rooms/tongue_fight.clj b/desktop/src-common/advent/screens/rooms/tongue_fight.clj index 833a7775..ca7d82d4 100644 --- a/desktop/src-common/advent/screens/rooms/tongue_fight.clj +++ b/desktop/src-common/advent/screens/rooms/tongue_fight.clj @@ -18,10 +18,15 @@ (println "loading " *ns*) -(defn cause-damage [entities is-player-wound?] +(defn cause-damage [entities screen is-player-wound?] + (println "test" is-player-wound?) (if is-player-wound? - (update-in entities [:room :ego-hearts] dec) - (update-in entities [:room :tongue-hearts] dec))) + (update-in entities [:room :tongue-hearts] dec) + (let [remaining-hearts (dec (get-in entities [:room :ego-hearts]))] + (-> entities + (assoc-in [:tweens :ego-heart-scale-x] (tween/tween :ego-heart-scale-x screen [:room :entities [:ego-heart remaining-hearts] :scale-x] 1 0.0 0.2 :ease tween/ease-in-cubic)) + (assoc-in [:tweens :ego-heart-scale-y] (tween/tween :ego-heart-scale-y screen [:room :entities [:ego-heart remaining-hearts] :scale-y] 1 0.0 0.2 :ease tween/ease-in-cubic)) + (assoc-in [:room :ego-hearts] remaining-hearts))))) (defn show-heart [entities screen is-player-wound?] @@ -32,8 +37,8 @@ (update-in [:room :entities :heart] #(assoc % :opacity 1 :x x :y y)) (update-in [:room :entities :heart] #(actions/start-animation screen % :beat)) (assoc-in [:tweens :heart-y] (tween/tween :heart-y screen [:room :entities :heart :y] y (+ y 10) 1.0 :ease tween/ease-out-cubic)) - (assoc-in [:tweens :heart-opacity] (tween/tween :heart-opacity screen [:room :entities :heart :opacity] 1.0 0.0 3.0 :ease tween/ease-in-out-quadratic)) - (cause-damage is-player-wound?)))) + (assoc-in [:tweens :heart-opacity] (tween/tween :heart-opacity screen [:room :entities :heart :opacity] 1.0 0.0 1.2 :ease tween/ease-linear)) + (cause-damage screen is-player-wound?)))) (defn stop-swing-if-necessary [screen {{{{:keys [anim anim-start] {:keys [tongue-swing]} :left } :ego} :entities} :room :as entities}] (if (and (= tongue-swing anim) @@ -65,15 +70,14 @@ (get-in entities [:state :active?]) (= 0 ego-hearts)) (do - ((actions/get-script entities (common/do-win entities)) entities) + ((actions/get-script entities (common/do-win entities false)) entities) entities) (and (not (get-in entities [:fg-actions :script-running?])) (get-in entities [:state :active?]) (= 0 tongue-hearts)) (do - ((common/win) - entities) + ((actions/get-script entities (common/do-win entities true)) entities) entities) (and @@ -140,13 +144,32 @@ hair-9 (utils/make-anim-seq atlas "hair-9" [12 18] 0.16 [0 1 2 1]) heart (utils/make-anim-seq atlas "heart" [24 24] 0.08 [3]) beat (utils/make-anim-seq atlas "heart" [24 24] 0.08 [0 1 0 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3]) + black-blowup (particle-effect "particles/black-blowup") tongue-idle (utils/make-anim-seq atlas "tongue-idle/tongue-idle" [135 145] 0.16 (range 5)) tongue-windup (utils/make-anim-seq atlas "tongue-windup" [135 145] 0.16 [0 1 2 3 2 1 2 3 2 1 0 ]) - tongue-attack (utils/make-anim-seq atlas "tongue-attack" [135 145] 0.12 [ 3 4 5 6]) + tongue-attack (utils/make-anim-seq atlas "tongue-attack" [135 145] 0.14 [ 2 3 4 5 6 0]) tongue-attack-hit (utils/make-anim-seq atlas "tongue-attack-hit" [135 145] 0.1 (range 7)) falling-bg (utils/make-anim-seq atlas "falling-bg" [128 128] 0.1 (range 6)) - sword-spin (utils/make-anim-seq atlas "sword-spin" [300 238] 0.1 (range 6))] + sword-spin (utils/make-anim-seq atlas "sword-spin" [300 238] 0.1 (range 6)) + bloodclot-swallow-bottom (utils/make-anim-seq atlas "bloodclot-swallow-bottom" [116 83] 0.2 (concat [0 0 0 0 0 0] (range 3) (repeat 100 2))) + bloodclot-swallow-top (utils/make-anim-seq atlas "bloodclot-swallow-top" [116 83] 0.2 (concat [0 0 0 0 0 0] (range 3) (repeat 100 2))) + + bloodclot-swallow-bottom-uhoh (utils/make-anim-seq atlas "bloodclot-swallow-bottom" [116 83] 0.4 [0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ]) + bloodclot-swallow-top-uhoh (utils/make-anim-seq atlas "bloodclot-swallow-top" [116 83] 0.4 [0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3]) + falling-ego (utils/make-anim-seq atlas "falling-ego" [40 72] 0.2 (range 4)) + hearts (into {} + (for [x (range 5)] + [[:ego-heart x] (assoc (utils/atlas->texture atlas "heart" 0) + :origin-y 12 + + :origin-x 12 + :x (+ 22 (* 16 x)) + :y 221 + + + :baseline 321 + :opacity 1)]))] @@ -156,134 +179,155 @@ :layers [(assoc (utils/atlas->texture atlas "background") :x 0 :y 0 :baseline 0 :scale-x 1 :scale-y 1)] :update-fn trigger-tongue :ego-hearts 1 - :tongue-hearts 1 + :tongue-hearts 5 - :entities {:penultimate (assoc (utils/atlas->texture atlas "penultimate") :x 0 :y 0 :baseline 2 :scale-x 1 :scale-y 1 :opacity 0) - :penultimate-wall (assoc (utils/atlas->texture atlas "penultimate-wall") :x 0 :y 0 :baseline 5 :scale-x 1 :scale-y 1 :opacity 0) - :penultimate-black (assoc (utils/atlas->texture atlas "penultimate-black") :x 0 :y 0 :baseline 6 :scale-x 1 :scale-y 1 :opacity 0) - :hair-0 (assoc (animation->texture screen hair-0) - :x 35 - :y 46 - :width 6 - :height 7 - :baseline 1 - :anim hair-0 - :anim-start 0) - :hair-1 (assoc (animation->texture screen hair-1) - :x 113 - :y 176 - :width 23 - :height 16 - :baseline 1 - :anim hair-1 - :anim-start 0) - :hair-2 (assoc (animation->texture screen hair-2) - :x 243 - :y 104 - :width 47 - :height 66 - :baseline 1 - :anim hair-2 - :anim-start 0) - :hair-3 (assoc (animation->texture screen hair-3) - :x 121 - :y 222 - :width 7 - :height 8 - :baseline 1 - :anim hair-3 - :anim-start 0) - :hair-4 (assoc (animation->texture screen hair-4) - :x 71 - :y 6 - :width 12 - :height 28 - :baseline 1 - :anim hair-4 - :anim-start 0) - :hair-5 (assoc (animation->texture screen hair-5) - :x 100 - :y 12 - :width 8 - :height 10 - :baseline 1 - :anim hair-5 - :anim-start 0) - :hair-6 (assoc (animation->texture screen hair-6) - :x 113 - :y 38 - :width 4 - :height 6 - :baseline 1 - :anim hair-6 - :anim-start 0) - :hair-7 (assoc (animation->texture screen hair-7) - :x 125 - :y 21 - :width 5 - :height 7 - :baseline 1 - :anim hair-7 - :anim-start 0) - :hair-8 (assoc (animation->texture screen hair-8) - :x 145 - :y 6 - :width 6 - :height 6 - :baseline 1 - :anim hair-8 - :anim-start 0) - :hair-9 (assoc (animation->texture screen hair-9) - :x 23 - :y 29 - :width 12 - :height 18 - :baseline 1 - :anim hair-9 - :anim-start 0) - :heart (assoc (animation->texture screen heart) - :x 23 - :y 29 - :width 32 - :height 32 - :baseline 321 - :opacity 0 - :anim heart - :idle heart - :beat beat - :anim-start 0) - :falling-bg (assoc (animation->texture screen falling-bg) - :x 0 - :y 0 - :width 320 - :height 240 - :baseline 320 - :anim falling-bg - :opacity 0 - - - :anim-start 0) - :sword-spin (assoc (animation->texture screen sword-spin) - :x 160 - :y 120 - :origin-x 150 - :origin-y 120 - :width 300 - :height 238 - :baseline 321 - :opacity 0 - :anim sword-spin - - - :anim-start 0) - :tongue (assoc (animation->texture screen tongue-idle) + :entities (into {:penultimate (assoc (utils/atlas->texture atlas "penultimate") :x 0 :y 0 :baseline 2 :scale-x 1 :scale-y 1 :opacity 0) + :penultimate-wall (assoc (utils/atlas->texture atlas "penultimate-wall") :x 0 :y 0 :baseline 5 :scale-x 1 :scale-y 1 :opacity 0) + :penultimate-black (assoc (utils/atlas->texture atlas "penultimate-black") :x 0 :y 0 :baseline 6 :scale-x 1 :scale-y 1 :opacity 0) + :bloodclot-swallow-top (assoc (animation->texture screen bloodclot-swallow-top) :x 167 :y 118 :baseline 3 :scale-x 1 :scale-y 1 :opacity 0 :swallow bloodclot-swallow-top :uhoh bloodclot-swallow-top-uhoh) + :bloodclot-swallow-bottom (assoc (animation->texture screen bloodclot-swallow-bottom) :x 167 :y 118 :baseline 5 :scale-x 1 :scale-y 1 :opacity 0 :swallow bloodclot-swallow-bottom :uhoh bloodclot-swallow-bottom-uhoh) + :black-blowup (assoc black-blowup + :x 222 :y 85 + :baseline 241) + :hair-0 (assoc (animation->texture screen hair-0) + :x 35 + :y 46 + :width 6 + :height 7 + :baseline 1 + :anim hair-0 + :anim-start 0) + :hair-1 (assoc (animation->texture screen hair-1) + :x 113 + :y 176 + :width 23 + :height 16 + :baseline 1 + :anim hair-1 + :anim-start 0) + :hair-2 (assoc (animation->texture screen hair-2) + :x 243 + :y 104 + :width 47 + :height 66 + :baseline 1 + :anim hair-2 + :anim-start 0) + :hair-3 (assoc (animation->texture screen hair-3) + :x 121 + :y 222 + :width 7 + :height 8 + :baseline 1 + :anim hair-3 + :anim-start 0) + :hair-4 (assoc (animation->texture screen hair-4) + :x 71 + :y 6 + :width 12 + :height 28 + :baseline 1 + :anim hair-4 + :anim-start 0) + :hair-5 (assoc (animation->texture screen hair-5) + :x 100 + :y 12 + :width 8 + :height 10 + :baseline 1 + :anim hair-5 + :anim-start 0) + :hair-6 (assoc (animation->texture screen hair-6) + :x 113 + :y 38 + :width 4 + :height 6 + :baseline 1 + :anim hair-6 + :anim-start 0) + :hair-7 (assoc (animation->texture screen hair-7) + :x 125 + :y 21 + :width 5 + :height 7 + :baseline 1 + :anim hair-7 + :anim-start 0) + :hair-8 (assoc (animation->texture screen hair-8) + :x 145 + :y 6 + :width 6 + :height 6 + :baseline 1 + :anim hair-8 + :anim-start 0) + :hair-9 (assoc (animation->texture screen hair-9) + :x 23 + :y 29 + :width 12 + :height 18 + :baseline 1 + :anim hair-9 + :anim-start 0) + :heart (assoc (animation->texture screen heart) + :x 23 + :y 29 + :width 32 + :height 32 + :baseline 321 + :opacity 0 + :anim heart + :idle heart + :beat beat + :anim-start 0) + + + + :falling-bg (assoc (animation->texture screen falling-bg) + :x 0 + :y 0 + :width 320 + :height 240 + :baseline 320 + :anim falling-bg + :opacity 0 + :anim-start 0) + + :belly-bottom (assoc (utils/atlas->texture atlas "belly-bottom") :x 0 :y 0 :baseline 321 :scale-x 1 :scale-y 1 :opacity 0) + :falling-ego (assoc (animation->texture screen falling-ego) + :x 160 + :y 120 + :scale-x 2 + :scale-y 2 + :origin-x 20 + :origin-y 35 + :baseline 321 + :opacity 0 + :anim falling-ego + + + :anim-start 0) + :sword-spin (assoc (animation->texture screen sword-spin) + :x 160 + :y 120 + :origin-x 150 + :origin-y 120 + :width 300 + :height 238 + :baseline 321 + :opacity 0 + :anim sword-spin + + + :anim-start 0) + :tongue (assoc (animation->texture screen tongue-idle) :x 211 :y 40 :origin-x 23 :origin-y 10 :width 135 :height 145 - :baseline 4 + :baseline 4 :anim tongue-idle :windup tongue-windup :idle tongue-idle @@ -297,8 +341,10 @@ :state :idle :script (actions/get-script entities - (actions/begin-animation entities :ego :tongue-windup)))} + (actions/begin-animation entities :ego :tongue-windup))) + } + hearts) :collision "space/collision.png" :scale-fn (constantly 1.0) :start-pos [141 110]