diff --git a/desktop/asset-work/outsidehouse/charcoal-1.png b/desktop/asset-work/outsidehouse/charcoal-1.png index cd5e9dd4..0a3b2702 100644 Binary files a/desktop/asset-work/outsidehouse/charcoal-1.png and b/desktop/asset-work/outsidehouse/charcoal-1.png differ diff --git a/desktop/asset-work/outsidehouse/charcoal-2.png b/desktop/asset-work/outsidehouse/charcoal-2.png index 38e8278f..5d5211ed 100644 Binary files a/desktop/asset-work/outsidehouse/charcoal-2.png and b/desktop/asset-work/outsidehouse/charcoal-2.png differ diff --git a/desktop/asset-work/outsidehouse/charcoal-3.png b/desktop/asset-work/outsidehouse/charcoal-3.png index 5626f71f..7bad9a6e 100644 Binary files a/desktop/asset-work/outsidehouse/charcoal-3.png and b/desktop/asset-work/outsidehouse/charcoal-3.png differ diff --git a/desktop/asset-work/outsidehouse/charcoal-4.png b/desktop/asset-work/outsidehouse/charcoal-4.png index 035f456f..62173a1b 100644 Binary files a/desktop/asset-work/outsidehouse/charcoal-4.png and b/desktop/asset-work/outsidehouse/charcoal-4.png differ diff --git a/desktop/inv-todo.txt b/desktop/inv-todo.txt index dedea567..10af15a0 100644 --- a/desktop/inv-todo.txt +++ b/desktop/inv-todo.txt @@ -1,5 +1,11 @@ make sure to dissoc, sometimes item still appears hovering cursor handling when tabbing back and forth -implement dragging out too +cursor starting in the black not being valid sound duration on android +choosing interaction feels wrong - flies hard to touch +change hotspots as necessary +turn off desk hotspots if you don't have inventory +Fade out needs to start at 100 opacity +less common for gandarfs experiment +delay in update with label causes jumpiness diff --git a/desktop/resources/packed/pack.atlas b/desktop/resources/packed/pack.atlas index 0c528023..ab9301aa 100644 --- a/desktop/resources/packed/pack.atlas +++ b/desktop/resources/packed/pack.atlas @@ -32,9 +32,16 @@ behindhouse/stick orig: 24, 42 offset: 0, 0 index: -1 +black + rotate: false + xy: 2013, 134 + size: 32, 24 + orig: 32, 24 + offset: 0, 0 + index: -1 butterfly rotate: false - xy: 1952, 1121 + xy: 1867, 1471 size: 14, 7 orig: 14, 7 offset: 0, 0 @@ -55,42 +62,42 @@ castle-gate/coinflip index: -1 castle-gate/frankie-walk-1 rotate: false - xy: 2013, 263 + xy: 2013, 234 size: 24, 35 orig: 24, 35 offset: 0, 0 index: -1 castle-gate/frankie-walk-2 rotate: false - xy: 2013, 226 + xy: 2013, 197 size: 24, 35 orig: 24, 35 offset: 0, 0 index: -1 castle-gate/frankie-walk-3 rotate: false - xy: 2013, 189 + xy: 2013, 160 size: 24, 35 orig: 24, 35 offset: 0, 0 index: -1 castle-gate/frankie-walk-4 rotate: false - xy: 2013, 152 + xy: 2021, 97 size: 24, 35 orig: 24, 35 offset: 0, 0 index: -1 castle-gate/frankie-walk-5 rotate: false - xy: 2020, 1665 + xy: 2021, 60 size: 24, 35 orig: 24, 35 offset: 0, 0 index: -1 castle-gate/frankie-walk-6 rotate: false - xy: 2021, 59 + xy: 2020, 1665 size: 24, 35 orig: 24, 35 offset: 0, 0 @@ -104,7 +111,7 @@ castle-gate/goon-1 index: -1 castle-gate/goon-2-flip rotate: false - xy: 494, 545 + xy: 1606, 1044 size: 48, 32 orig: 48, 32 offset: 0, 0 @@ -179,27 +186,6 @@ title/dot orig: 1, 1 offset: 0, 0 index: -1 -wizard/dot - rotate: false - xy: 704, 916 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 -inside-jail/dot - rotate: false - xy: 704, 916 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 -outsidehouse/dot - rotate: false - xy: 704, 916 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 inside-house/dot rotate: false xy: 704, 916 @@ -207,13 +193,6 @@ inside-house/dot orig: 1, 1 offset: 0, 0 index: -1 -dream/dot - rotate: false - xy: 704, 916 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 inside-antique/dot rotate: false xy: 704, 916 @@ -221,6 +200,20 @@ inside-antique/dot orig: 1, 1 offset: 0, 0 index: -1 +wizard/dot + rotate: false + xy: 704, 916 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 +outsidehouse/dot + rotate: false + xy: 704, 916 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 ego/dot rotate: false xy: 704, 916 @@ -228,6 +221,20 @@ ego/dot orig: 1, 1 offset: 0, 0 index: -1 +dream/dot + rotate: false + xy: 704, 916 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 +inside-jail/dot + rotate: false + xy: 704, 916 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 cat-tree/grandma rotate: false xy: 1228, 839 @@ -291,13 +298,6 @@ cat-tree/tree-r orig: 65, 240 offset: 0, 0 index: -1 -close - rotate: false - xy: 1638, 1024 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 cloud rotate: false xy: 1679, 2 @@ -312,13 +312,6 @@ space/cloud orig: 15, 15 offset: 0, 0 index: -1 -cursorr - rotate: false - xy: 444, 4 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 dbh rotate: false xy: 2, 1086 @@ -375,13 +368,6 @@ dream/fairy-godfather-magic orig: 500, 77 offset: 0, 0 index: -1 -dream/island - rotate: false - xy: 1606, 1021 - size: 30, 20 - orig: 30, 20 - offset: 0, 0 - index: -1 dream/plaque1 rotate: false xy: 1787, 76 @@ -412,7 +398,7 @@ dream/shovel index: -1 dream/sword rotate: false - xy: 1491, 442 + xy: 2031, 20 size: 15, 38 orig: 15, 38 offset: 0, 0 @@ -433,14 +419,14 @@ ego/axe-wood index: -1 ego/base rotate: false - xy: 1638, 1080 + xy: 1491, 444 size: 16, 36 orig: 16, 36 offset: 0, 0 index: -1 ego/whistle-1 rotate: false - xy: 1638, 1080 + xy: 1491, 444 size: 16, 36 orig: 16, 36 offset: 0, 0 @@ -468,7 +454,7 @@ ego/crawl index: -1 ego/flying rotate: false - xy: 2007, 483 + xy: 1995, 4 size: 34, 44 orig: 34, 44 offset: 0, 0 @@ -496,7 +482,7 @@ ego/glad index: -1 ego/hold-hand rotate: false - xy: 1638, 1042 + xy: 1491, 406 size: 16, 36 orig: 16, 36 offset: 0, 0 @@ -550,13 +536,6 @@ ego/swing-shovel orig: 630, 70 offset: 0, 0 index: -1 -ego/whistle-2 - rotate: false - xy: 1491, 404 - size: 16, 36 - orig: 16, 36 - offset: 0, 0 - index: -1 ending-castle/Untitled rotate: false xy: 1767, 109 @@ -601,14 +580,14 @@ ending-castle/ending-castle2-assets/foreground index: -1 ending-castle/guard-1 rotate: false - xy: 2007, 587 + xy: 2007, 512 size: 27, 56 orig: 27, 56 offset: 0, 0 index: -1 ending-castle/guard-2 rotate: false - xy: 2007, 529 + xy: 2013, 413 size: 27, 56 orig: 27, 56 offset: 0, 0 @@ -643,21 +622,21 @@ held/bloodclot-head-1 index: -1 held/dot rotate: false - xy: 1228, 900 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 -outside-jail/dot - rotate: false - xy: 1228, 900 + xy: 2007, 468 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 space/dot rotate: false - xy: 1228, 900 + xy: 2007, 468 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 +outside-jail/dot + rotate: false + xy: 2007, 468 size: 1, 1 orig: 1, 1 offset: 0, 0 @@ -685,21 +664,21 @@ inside-antique/beard index: -1 inside-antique/bowl rotate: false - xy: 2032, 137 + xy: 2031, 1955 size: 14, 13 orig: 14, 13 offset: 0, 0 index: -1 inside-antique/bowl-0 rotate: false - xy: 2032, 137 + xy: 2031, 1955 size: 14, 13 orig: 14, 13 offset: 0, 0 index: -1 inside-antique/bowl-1 rotate: false - xy: 2031, 1955 + xy: 2031, 5 size: 14, 13 orig: 14, 13 offset: 0, 0 @@ -713,7 +692,7 @@ inside-antique/bowl-2 index: -1 inside-antique/bowl-3 rotate: false - xy: 480, 7 + xy: 1712, 4 size: 14, 13 orig: 14, 13 offset: 0, 0 @@ -776,7 +755,7 @@ inside-cafeteria/knights-stand index: -1 inside-cafeteria/ladder rotate: false - xy: 2013, 379 + xy: 2013, 350 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -790,7 +769,7 @@ inside-cafeteria/ladder-guard index: -1 inside-cafeteria/ladder-guard-2 rotate: false - xy: 1606, 1043 + xy: 2007, 570 size: 30, 73 orig: 30, 73 offset: 0, 0 @@ -818,7 +797,7 @@ inside-castle/background index: -1 inside-castle/bookstack rotate: false - xy: 2013, 342 + xy: 2013, 313 size: 27, 35 orig: 27, 35 offset: 0, 0 @@ -830,13 +809,6 @@ inside-castle/game-player-talk orig: 400, 44 offset: 0, 0 index: -1 -inside-castle/gameplayer - rotate: false - xy: 1995, 4 - size: 40, 44 - orig: 40, 44 - offset: 0, 0 - index: -1 inside-castle/hands-fight rotate: false xy: 1284, 1942 @@ -860,14 +832,28 @@ inside-castle/pull-sword index: -1 inside-castle/sign1 rotate: false - xy: 494, 523 + xy: 494, 517 size: 44, 20 orig: 44, 20 offset: 0, 0 index: -1 inside-castle/sign-1 rotate: false - xy: 494, 523 + xy: 494, 517 + size: 44, 20 + orig: 44, 20 + offset: 0, 0 + index: -1 +inside-castle/sign2 + rotate: false + xy: 1606, 1022 + size: 44, 20 + orig: 44, 20 + offset: 0, 0 + index: -1 +inside-castle/sign-2 + rotate: false + xy: 1606, 1022 size: 44, 20 orig: 44, 20 offset: 0, 0 @@ -881,7 +867,7 @@ inside-castle/trophy index: -1 inside-castle/watch rotate: false - xy: 1952, 1219 + xy: 2021, 50 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -909,7 +895,7 @@ inside-house/flask index: -1 inside-house/frog-legs rotate: false - xy: 2013, 134 + xy: 468, 4 size: 17, 16 orig: 17, 16 offset: 0, 0 @@ -944,7 +930,7 @@ inside-jail/background index: -1 inside-jail/ball-n-chain rotate: false - xy: 324, 4 + xy: 428, 4 size: 38, 16 orig: 38, 16 offset: 0, 0 @@ -972,14 +958,14 @@ inside-stash/background index: -1 inside-stash/candle rotate: false - xy: 494, 517 + xy: 1606, 1231 size: 16, 4 orig: 16, 4 offset: 0, 0 index: -1 inside-stash/lid rotate: false - xy: 2021, 50 + xy: 1842, 1471 size: 23, 7 orig: 23, 7 offset: 0, 0 @@ -993,7 +979,7 @@ outside-castle/background index: -1 outside-castle/bird rotate: false - xy: 1282, 759 + xy: 540, 535 size: 2, 2 orig: 2, 2 offset: 0, 0 @@ -1005,20 +991,6 @@ outside-castle/flies orig: 45, 15 offset: 0, 0 index: -1 -outside-castle/note - rotate: false - xy: 462, 4 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -outside-castle/peddler - rotate: false - xy: 2021, 96 - size: 18, 36 - orig: 18, 36 - offset: 0, 0 - index: -1 outside-jail/Untitled rotate: false xy: 1284, 1582 @@ -1091,30 +1063,30 @@ outsidehouse/background index: -1 outsidehouse/charcoal-1 rotate: false - xy: 364, 2 - size: 18, 18 - orig: 18, 18 + xy: 324, 2 + size: 24, 18 + orig: 24, 18 offset: 0, 0 index: -1 outsidehouse/charcoal-2 rotate: false - xy: 384, 2 - size: 18, 18 - orig: 18, 18 + xy: 350, 2 + size: 24, 18 + orig: 24, 18 offset: 0, 0 index: -1 outsidehouse/charcoal-3 rotate: false - xy: 404, 2 - size: 18, 18 - orig: 18, 18 + xy: 376, 2 + size: 24, 18 + orig: 24, 18 offset: 0, 0 index: -1 outsidehouse/charcoal-4 rotate: false - xy: 424, 2 - size: 18, 18 - orig: 18, 18 + xy: 402, 2 + size: 24, 18 + orig: 24, 18 offset: 0, 0 index: -1 outsidehouse/lamb @@ -1126,7 +1098,7 @@ outsidehouse/lamb index: -1 outsidehouse/sheep rotate: false - xy: 2013, 419 + xy: 2013, 390 size: 33, 21 orig: 33, 21 offset: 0, 0 @@ -1245,7 +1217,7 @@ space/broken-jewel index: -1 talk-bg-2 rotate: false - xy: 2013, 300 + xy: 2013, 271 size: 21, 40 orig: 21, 40 offset: 0, 0 @@ -1273,25 +1245,39 @@ title/banner-back index: -1 title/quill rotate: false - xy: 2013, 442 + xy: 2007, 471 size: 33, 39 orig: 33, 39 offset: 0, 0 index: -1 title/save-indicator rotate: false - xy: 1475, 393 + xy: 1883, 1471 size: 7, 7 orig: 7, 7 offset: 0, 0 index: -1 title/save-indicator-active rotate: false - xy: 1842, 1541 + xy: 1892, 1471 size: 7, 7 orig: 7, 7 offset: 0, 0 index: -1 +title/screenshot-backdrop + rotate: false + xy: 494, 539 + size: 48, 38 + orig: 48, 38 + offset: 0, 0 + index: -1 +title/screenshot-backdrop-active + rotate: false + xy: 1606, 1078 + size: 48, 38 + orig: 48, 38 + offset: 0, 0 + index: -1 wizard/disappear rotate: false xy: 634, 759 @@ -1301,7 +1287,7 @@ wizard/disappear index: -1 wizard/flame rotate: false - xy: 2041, 125 + xy: 1952, 1118 size: 5, 10 orig: 5, 10 offset: 0, 0 @@ -1356,18 +1342,11 @@ behindhouse/house index: -1 behindhouse/house-cover rotate: false - xy: 592, 12 + xy: 1590, 473 size: 20, 21 orig: 20, 21 offset: 0, 0 index: -1 -black - rotate: false - xy: 696, 5 - size: 32, 24 - orig: 32, 24 - offset: 0, 0 - index: -1 castle-gate/frankie rotate: false xy: 2, 29 @@ -1410,13 +1389,6 @@ cat-tree/brush-l orig: 152, 70 offset: 0, 0 index: -1 -cat-tree/grandma-cry-7 - rotate: false - xy: 1548, 454 - size: 58, 40 - orig: 58, 40 - offset: 0, 0 - index: -1 cat-tree/inventory rotate: false xy: 1870, 460 @@ -1438,13 +1410,27 @@ cat-tree/tree-and-rock orig: 320, 240 offset: 0, 0 index: -1 +close + rotate: false + xy: 2030, 646 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 cloudy rotate: false - xy: 284, 7 + xy: 1590, 451 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 +cursorr + rotate: false + xy: 2030, 628 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 dawn rotate: false xy: 968, 1806 @@ -1480,6 +1466,13 @@ outside-jail/fountain orig: 320, 240 offset: 0, 0 index: -1 +dream/island + rotate: false + xy: 284, 7 + size: 30, 20 + orig: 30, 20 + offset: 0, 0 + index: -1 dream/pedestals rotate: false xy: 968, 596 @@ -1578,20 +1571,27 @@ ego/swing orig: 288, 75 offset: 0, 0 index: -1 -ego/whistle-3 +ego/whistle-2 rotate: false xy: 2030, 740 size: 16, 36 orig: 16, 36 offset: 0, 0 index: -1 -ego/whistle-4 +ego/whistle-3 rotate: false xy: 2030, 702 size: 16, 36 orig: 16, 36 offset: 0, 0 index: -1 +ego/whistle-4 + rotate: false + xy: 2030, 664 + size: 16, 36 + orig: 16, 36 + offset: 0, 0 + index: -1 ending-castle/ending-castle2-assets/collision rotate: false xy: 324, 1322 @@ -1601,7 +1601,7 @@ ending-castle/ending-castle2-assets/collision index: -1 held/flesh rotate: false - xy: 878, 47 + xy: 592, 13 size: 20, 20 orig: 20, 20 offset: 0, 0 @@ -1664,21 +1664,21 @@ inside-antique/open-blinds index: -1 inside-antique/portrait rotate: false - xy: 2030, 648 + xy: 684, 13 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 inside-antique/shopkeep rotate: false - xy: 2022, 331 + xy: 2022, 293 size: 18, 21 orig: 18, 21 offset: 0, 0 index: -1 inside-antique/teddy rotate: false - xy: 2030, 612 + xy: 702, 13 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1755,7 +1755,7 @@ inside-cafeteria/glow index: -1 inside-castle/books rotate: false - xy: 660, 10 + xy: 614, 10 size: 34, 19 orig: 34, 19 offset: 0, 0 @@ -1774,6 +1774,13 @@ inside-castle/fight-1 orig: 320, 240 offset: 0, 0 index: -1 +inside-castle/gameplayer + rotate: false + xy: 1548, 450 + size: 40, 44 + orig: 40, 44 + offset: 0, 0 + index: -1 inside-castle/hands-1 rotate: false xy: 1808, 10 @@ -1783,7 +1790,7 @@ inside-castle/hands-1 index: -1 inside-castle/magic rotate: false - xy: 764, 9 + xy: 878, 47 size: 20, 20 orig: 20, 20 offset: 0, 0 @@ -1795,30 +1802,16 @@ inside-castle/pedestal-overlay orig: 320, 240 offset: 0, 0 index: -1 -inside-castle/sign2 - rotate: false - xy: 832, 47 - size: 44, 20 - orig: 44, 20 - offset: 0, 0 - index: -1 -inside-castle/sign-2 - rotate: false - xy: 832, 47 - size: 44, 20 - orig: 44, 20 - offset: 0, 0 - index: -1 inside-castle/sign3 rotate: false - xy: 614, 9 + xy: 832, 47 size: 44, 20 orig: 44, 20 offset: 0, 0 index: -1 inside-castle/sign-3 rotate: false - xy: 614, 9 + xy: 832, 47 size: 44, 20 orig: 44, 20 offset: 0, 0 @@ -1895,7 +1888,7 @@ inside-jail/warden index: -1 inside-jail/window-bent rotate: false - xy: 2022, 354 + xy: 2022, 316 size: 18, 29 orig: 18, 29 offset: 0, 0 @@ -1928,6 +1921,20 @@ outside-castle/brush-bl orig: 60, 60 offset: 0, 0 index: -1 +outside-castle/note + rotate: false + xy: 2030, 610 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +outside-castle/peddler + rotate: false + xy: 2022, 347 + size: 18, 36 + orig: 18, 36 + offset: 0, 0 + index: -1 outside-castle/walk-behind rotate: false xy: 1612, 838 @@ -1993,7 +2000,7 @@ outsidehouse/house index: -1 outsidehouse/note rotate: false - xy: 2030, 684 + xy: 2030, 592 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2007,14 +2014,14 @@ outsidehouse/sheep-walk index: -1 pathfind-test rotate: false - xy: 2030, 666 + xy: 2030, 574 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 save rotate: false - xy: 2030, 630 + xy: 2022, 275 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2154,7 +2161,7 @@ title/logo index: -1 white rotate: false - xy: 730, 5 + xy: 650, 5 size: 32, 24 orig: 32, 24 offset: 0, 0 @@ -2265,28 +2272,28 @@ cat-tree/eye-6 index: -1 cat-tree/eye-10 rotate: false - xy: 1626, 288 + xy: 1897, 448 size: 44, 48 orig: 44, 48 offset: 0, 0 index: -1 cat-tree/eye-11 rotate: false - xy: 1100, 238 + xy: 1903, 398 size: 44, 48 orig: 44, 48 offset: 0, 0 index: -1 cat-tree/eye-12 rotate: false - xy: 1146, 238 + xy: 1903, 348 size: 44, 48 orig: 44, 48 offset: 0, 0 index: -1 cat-tree/eye-13 rotate: false - xy: 1177, 151 + xy: 1903, 298 size: 44, 48 orig: 44, 48 offset: 0, 0 @@ -2307,130 +2314,137 @@ cat-tree/eye-3 index: -1 cat-tree/eye-4 rotate: false - xy: 1169, 42 + xy: 1122, 37 size: 44, 48 orig: 44, 48 offset: 0, 0 index: -1 cat-tree/eye-5 rotate: false - xy: 857, 34 + xy: 1893, 535 size: 44, 48 orig: 44, 48 offset: 0, 0 index: -1 cat-tree/eye-7 rotate: false - xy: 857, 34 + xy: 1893, 535 size: 44, 48 orig: 44, 48 offset: 0, 0 index: -1 cat-tree/eye-8 rotate: false - xy: 903, 34 + xy: 1939, 527 size: 44, 48 orig: 44, 48 offset: 0, 0 index: -1 cat-tree/eye-9 rotate: false - xy: 1580, 288 + xy: 1985, 508 size: 44, 48 orig: 44, 48 offset: 0, 0 index: -1 cat-tree/grandma-cry-10 rotate: false - xy: 1988, 898 + xy: 412, 79 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-11 rotate: false - xy: 412, 79 + xy: 1374, 449 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-12 rotate: false - xy: 1374, 449 + xy: 571, 15 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-13 rotate: false - xy: 571, 15 + xy: 1374, 407 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-14 rotate: false - xy: 1374, 407 + xy: 1374, 365 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-15 rotate: false - xy: 1374, 365 + xy: 737, 55 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-16 rotate: false - xy: 737, 55 + xy: 724, 13 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-17 rotate: false - xy: 724, 13 + xy: 797, 43 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-18 rotate: false - xy: 797, 43 + xy: 381, 37 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-19 rotate: false - xy: 381, 37 + xy: 1572, 510 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 cat-tree/grandma-cry-20 rotate: false - xy: 1572, 510 + xy: 1773, 494 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 -cat-tree/grandma-cry-8 +cat-tree/grandma-cry-7 rotate: false xy: 1988, 982 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 -cat-tree/grandma-cry-9 +cat-tree/grandma-cry-8 rotate: false xy: 1988, 940 size: 58, 40 orig: 58, 40 offset: 0, 0 index: -1 +cat-tree/grandma-cry-9 + rotate: false + xy: 1988, 898 + size: 58, 40 + orig: 58, 40 + offset: 0, 0 + index: -1 cat-tree/owl rotate: false xy: 1415, 854 @@ -2482,21 +2496,21 @@ ego/grow index: -1 ego/grow-talk rotate: false - xy: 1855, 536 + xy: 1833, 498 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 ego/hand-hold rotate: false - xy: 1128, 389 + xy: 1855, 536 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 ending-castle/hand-hold rotate: false - xy: 1128, 389 + xy: 1855, 536 size: 36, 36 orig: 36, 36 offset: 0, 0 @@ -2776,224 +2790,224 @@ ending-castle/frankie-fall-1 index: -1 ending-castle/frankie-fall-10 rotate: false - xy: 1846, 214 + xy: 1898, 171 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-11 rotate: false - xy: 1888, 214 + xy: 1940, 171 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-12 rotate: false - xy: 1166, 380 + xy: 1165, 380 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-2 rotate: false - xy: 1169, 5 + xy: 1871, 498 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-3 rotate: false - xy: 1131, 201 + xy: 838, 6 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-4 rotate: false - xy: 1173, 201 + xy: 1580, 301 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-5 rotate: false - xy: 1935, 540 + xy: 1622, 301 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-6 rotate: false - xy: 1993, 476 + xy: 1169, 55 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-7 rotate: false - xy: 1215, 24 + xy: 1168, 18 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-8 rotate: false - xy: 1762, 214 + xy: 1131, 202 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/frankie-fall-9 rotate: false - xy: 1804, 214 + xy: 1856, 176 size: 40, 35 orig: 40, 35 offset: 0, 0 index: -1 ending-castle/warden-2 rotate: false - xy: 1084, 288 + xy: 1985, 465 size: 42, 41 orig: 42, 41 offset: 0, 0 index: -1 georgia/kick-1 rotate: false - xy: 1893, 540 + xy: 1903, 253 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-10 rotate: false - xy: 1250, 372 + xy: 1081, 381 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-11 rotate: false - xy: 1909, 450 + xy: 1123, 382 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-12 rotate: false - xy: 1951, 450 + xy: 1207, 372 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-13 rotate: false - xy: 1993, 431 + xy: 1249, 372 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-14 rotate: false - xy: 1903, 405 + xy: 1123, 337 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-15 rotate: false - xy: 1903, 360 + xy: 1165, 335 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-16 rotate: false - xy: 1945, 405 + xy: 1207, 327 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-17 rotate: false - xy: 1903, 315 + xy: 1249, 327 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-18 rotate: false - xy: 1945, 360 + xy: 1291, 325 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-19 rotate: false - xy: 1903, 270 + xy: 1070, 10 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-2 rotate: false - xy: 1867, 491 + xy: 1903, 208 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-4 rotate: false - xy: 1867, 491 + xy: 1903, 208 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-20 rotate: false - xy: 1945, 315 + xy: 1142, 241 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-3 rotate: false - xy: 1909, 495 + xy: 1943, 482 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-5 rotate: false - xy: 1951, 495 + xy: 1945, 253 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-6 rotate: false - xy: 1993, 513 + xy: 1945, 208 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-7 rotate: false - xy: 1211, 106 + xy: 1079, 329 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-8 rotate: false - xy: 1215, 61 + xy: 1084, 284 size: 40, 43 orig: 40, 43 offset: 0, 0 index: -1 georgia/kick-9 rotate: false - xy: 1208, 372 + xy: 1100, 239 size: 40, 43 orig: 40, 43 offset: 0, 0 @@ -3861,14 +3875,14 @@ wizard/experiment-17 index: -1 wizard/experiment-18 rotate: false - xy: 1773, 479 + xy: 1486, 331 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-19 rotate: false - xy: 1820, 479 + xy: 1533, 331 size: 45, 55 orig: 45, 55 offset: 0, 0 @@ -3882,70 +3896,70 @@ wizard/experiment-2 index: -1 wizard/experiment-20 rotate: false - xy: 1486, 331 + xy: 1580, 338 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-21 rotate: false - xy: 1533, 331 + xy: 1627, 338 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-22 rotate: false - xy: 1580, 338 + xy: 1756, 437 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-23 rotate: false - xy: 1627, 338 + xy: 1803, 437 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-24 rotate: false - xy: 1756, 422 + xy: 1762, 380 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-25 rotate: false - xy: 1803, 422 + xy: 1809, 380 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-26 rotate: false - xy: 1762, 365 + xy: 1762, 323 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-27 rotate: false - xy: 1809, 365 + xy: 1809, 323 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-28 rotate: false - xy: 1850, 422 + xy: 1762, 266 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-29 rotate: false - xy: 1856, 365 + xy: 1809, 266 size: 45, 55 orig: 45, 55 offset: 0, 0 @@ -3959,70 +3973,70 @@ wizard/experiment-3 index: -1 wizard/experiment-30 rotate: false - xy: 1762, 308 + xy: 1762, 209 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-31 rotate: false - xy: 1809, 308 + xy: 1809, 209 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-32 rotate: false - xy: 1856, 308 + xy: 1083, 144 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-33 rotate: false - xy: 1762, 251 + xy: 1850, 441 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-34 rotate: false - xy: 1809, 251 + xy: 1856, 384 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-35 rotate: false - xy: 1856, 251 + xy: 1856, 327 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-36 rotate: false - xy: 1083, 144 + xy: 1856, 270 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-37 rotate: false - xy: 1130, 144 + xy: 1856, 213 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-38 rotate: false - xy: 1122, 87 + xy: 1130, 144 size: 45, 55 orig: 45, 55 offset: 0, 0 index: -1 wizard/experiment-39 rotate: false - xy: 1122, 30 + xy: 1122, 87 size: 45, 55 orig: 45, 55 offset: 0, 0 diff --git a/desktop/resources/packed/pack.png b/desktop/resources/packed/pack.png index 802ebd1c..6d047f58 100644 Binary files a/desktop/resources/packed/pack.png and b/desktop/resources/packed/pack.png differ diff --git a/desktop/resources/packed/pack2.png b/desktop/resources/packed/pack2.png index b2d0be24..cc22af27 100644 Binary files a/desktop/resources/packed/pack2.png and b/desktop/resources/packed/pack2.png differ diff --git a/desktop/resources/packed/pack3.png b/desktop/resources/packed/pack3.png index d17ee185..590fa548 100644 Binary files a/desktop/resources/packed/pack3.png and b/desktop/resources/packed/pack3.png differ diff --git a/desktop/src-common/advent/screens/rooms/behind_house.clj b/desktop/src-common/advent/screens/rooms/behind_house.clj index 9e839d67..ab702949 100644 --- a/desktop/src-common/advent/screens/rooms/behind_house.clj +++ b/desktop/src-common/advent/screens/rooms/behind_house.clj @@ -17,7 +17,7 @@ (defn make-left-dir [box] {:box box - :script (actions/get-script + :only-script (actions/get-script entities (actions/walk-to entities :ego [122 140] :skip-type :end) (actions/transition-background entities :outside-house [244 150]) @@ -42,6 +42,8 @@ entities )} :mushrooms {:box [247 59 269 76] + :label "Mushrooms" + :cursor :hand :script (actions/get-script entities (if (actions/has-obtained? entities :mushrooms) @@ -52,6 +54,8 @@ (actions/give entities :mushrooms) (actions/talk entities :ego "Perfectly ripe mushrooms!"))))} :window {:box [109 100 130 153] + :label "Window" + :cursor :look :script (actions/get-script entities (actions/walk-to entities :ego [128 100] :face :left) @@ -87,6 +91,8 @@ (assoc (utils/get-texture "behindhouse/fg2.png") :x (- 320 122) :y 0 :baseline 240 :parallax 1.5)]} :entities {:stick (assoc (utils/get-texture "behindhouse/stick.png") :x 26 :y 80 :baseline 160 + :label "Stick" + :cursor :hand :script (actions/get-script entities (actions/walk-to entities :ego [50 80]) (actions/play-animation entities :ego :reach) @@ -96,6 +102,8 @@ :peeling (assoc (utils/get-texture "behindhouse/house-cover.png") :x 60 :y 92 :baseline 148 + :label "Crumbly wall" + :cursor :hand :script (actions/get-script entities (cond (= :night (get-in @entities [:state :time])) (actions/talk entities :ego "The house is empty right now.") diff --git a/desktop/src-common/advent/screens/rooms/cat_tree.clj b/desktop/src-common/advent/screens/rooms/cat_tree.clj index 8abb97f0..d04eeb01 100644 --- a/desktop/src-common/advent/screens/rooms/cat_tree.clj +++ b/desktop/src-common/advent/screens/rooms/cat_tree.clj @@ -225,6 +225,7 @@ (defn make-ladder-area [box] {:box box :cursor :hand + :label "Tree" :script (actions/get-script entities (actions/walk-to entities :ego [144 58] ) (actions/talk entities :ego "Maybe I can climb it!") @@ -270,7 +271,7 @@ :ladder ladder-entity :blank (rooms/make-entity :blank {:object nil :x 0 :y 0 :width 320 :height 240 :baseline 240 - :script (actions/get-script entities + :only-script (actions/get-script entities (when (get-in @entities [:room :entities :ladder]) (actions/talk entities :ego "I'll get down.") (get-down entities)))}) @@ -293,6 +294,7 @@ :rock {:box [62 83 101 103] :cursor :hand + :label "Suspicous looking rock" :script (actions/get-script entities (when (and (actions/has-obtained? entities :note-1) (not (actions/has-obtained? entities :walkie-talkies))) @@ -313,6 +315,7 @@ (actions/do-dialogue entities :ego "I wonder what all of these magic devices do.")))} :grass {:box [26 105 60 160] :cursor :hand + :label "Grass" :script (actions/get-script entities (if (not (actions/has-obtained? entities :grass)) (do @@ -324,6 +327,7 @@ (actions/talk entities :ego "I don't really need any more grass.")))} :grandma {:box [109 33 132 98] :cursor :talk + :label "Damsel" :script (actions/get-script entities (do-grandma-dialogue entities)) :scripts #(condp = % :kiss @@ -348,6 +352,7 @@ :cat (actions/start-animation screen (assoc (animation->texture screen cat-stand) :x 184 :y 173 :baseline 1000 + :label "Smuffle Wuffles" :cursor :talk :walk cat-walk :stand cat-stand @@ -426,6 +431,7 @@ :x 194 :y 188 :baseline 241)} :owl (rooms/make-entity :owl (assoc (animation->texture screen owl-stand) :x 187 :y 172 :baseline 241 + :label "Owl" :stand owl-stand :talk owl-talk :puke owl-puke diff --git a/desktop/src-common/advent/screens/rooms/dream.clj b/desktop/src-common/advent/screens/rooms/dream.clj index b265882e..474ff166 100644 --- a/desktop/src-common/advent/screens/rooms/dream.clj +++ b/desktop/src-common/advent/screens/rooms/dream.clj @@ -370,6 +370,8 @@ (rooms/make :music {:intro :wind :day :dream} :name "Dream" :interactions {:pit {:box [54 0 219 36] + :label "Pit of destiny" + :cursor :look :script (actions/get-script entities (actions/walk-to entities :ego [154 41]) (actions/talk entities :ego "Wow! That's a long way down.")) @@ -425,6 +427,8 @@ :clouds (assoc (particle-effect "particles/cloudy2") :x 160 :y 120 :baseline 241) :case (assoc (utils/get-texture "dream/case.png") :x 144 :y 122 :baseline 139 + :label "Glass case" + :cursor :look :script (actions/get-script entities (read-sword-plaque entities)) :scripts {:shovel (actions/get-script entities @@ -480,6 +484,8 @@ :update-fn (partial utils/update-path-location 0.30) :baseline 240 + :label "Broom" + :cursor :hand :script (actions/get-script entities (if ((get-in @entities [:state :plaques-read]) :broom) (do @@ -495,6 +501,8 @@ :update-fn (partial utils/update-path-location 0.33) :baseline 240 + :laber "Shovel" + :cursor :hand :script (actions/get-script entities (if ((get-in @entities [:state :plaques-read]) :shovel) (do @@ -506,9 +514,9 @@ (read-shovel-plaque entities)))) :sign (assoc (utils/get-texture "dream/sign.png") :x 229 :y 33 :baseline 207) - :plaque-1 (assoc (utils/get-texture "dream/plaque1.png") :x 39 :y 99 :baseline 139 :script (actions/get-script entities (read-shovel-plaque entities))) - :plaque-2 (assoc (utils/get-texture "dream/plaque2.png") :x 147 :y 104 :baseline 139 :script (actions/get-script entities (read-sword-plaque entities))) - :plaque-3 (assoc (utils/get-texture "dream/plaque3.png") :x 283 :y 98 :baseline 139 :script (actions/get-script entities (read-broom-plaque entities))) + :plaque-1 (assoc (utils/get-texture "dream/plaque1.png") :x 39 :y 99 :baseline 139 :label "Plaque" :cursor :look :script (actions/get-script entities (read-shovel-plaque entities))) + :plaque-2 (assoc (utils/get-texture "dream/plaque2.png") :x 147 :y 104 :baseline 139 :label "Plaque" :cursor :look :script (actions/get-script entities (read-sword-plaque entities))) + :plaque-3 (assoc (utils/get-texture "dream/plaque3.png") :x 283 :y 98 :baseline 139 :label "Plaque" :cursor :look :script (actions/get-script entities (read-broom-plaque entities))) :outside-particles (common/make-outside-particles) :bounce-surrogate {:object nil :path (catmull-rom-spline (map #(apply vector-2* %) [[200 130] [200 150]]) true) @@ -551,6 +559,8 @@ (assoc-in e [:offset-y] (* (:scale-y e) (get-in es [:bounce-surrogate :delta-y] 0)))) :talk-color (Color/valueOf "ADA6FFFF") + :label "Fairy godfather" + :cursor :talk :script (actions/get-script entities (if (get-in @entities [:room :entities :fairy-godfather :distracted?]) (actions/do-dialogue entities :ego "He wouldn't be able to hear me from there.") diff --git a/desktop/src-common/advent/screens/rooms/held.clj b/desktop/src-common/advent/screens/rooms/held.clj index 4663b427..3603f481 100644 --- a/desktop/src-common/advent/screens/rooms/held.clj +++ b/desktop/src-common/advent/screens/rooms/held.clj @@ -62,6 +62,8 @@ (rooms/make :music :fight :name "Held" :interactions {:bloodclot {:box [182 42 270 196] + :label "Bloodclot" + :cursor :talk :script (actions/get-script entities (bloodclot-talk-script entities)) :scripts #(condp = % diff --git a/desktop/src-common/advent/screens/rooms/inside_antique.clj b/desktop/src-common/advent/screens/rooms/inside_antique.clj index a560e620..f7065aaf 100644 --- a/desktop/src-common/advent/screens/rooms/inside_antique.clj +++ b/desktop/src-common/advent/screens/rooms/inside_antique.clj @@ -204,6 +204,8 @@ :x 255 :y 95 :baseline 160 + :label "Choicest teddy bear" + :cursor :hand :script (actions/get-script entities (actions/walk-to entities :ego [242 49] :face :right) (actions/play-animation entities :ego :reach) @@ -224,7 +226,7 @@ :interactions {:right {:box [250 0 320 75] :cursor :right - :script (actions/get-script entities + :only-script (actions/get-script entities (when (or (actions/has-item? entities :portrait) (has-to-return-teddy? entities)) (actions/walk-to entities :ego [235 15]) @@ -239,6 +241,8 @@ (actions/transition-background entities :inside-castle [182 90]) (actions/walk-to entities :ego [187 75]))} :return-portrait-2 {:box [103 116 131 131] + :label "Desk" + :cursor :look :script (actions/get-script entities (if (actions/has-item? entities :portrait) (actions/talk entities :ego "The shopkeep's portrait used to sit there.") (get-portrait entities) @@ -249,12 +253,16 @@ :teddy (actions/get-script entities (return-teddy entities))}} :return-portrait {:box [103 70 206 116] + :label "Desk" + :cursor :look :script (actions/get-script entities (actions/talk entities :ego "It's the shopkeep's desk.")) :scripts {:portrait (actions/get-script entities (return-portrait entities)) :teddy (actions/get-script entities (return-teddy entities))}} :return-teddy {:box [227 90 301 105] + :cursor :look + :label "Shelf" :script (actions/get-script entities (actions/talk entities :ego "It's a shelf.")) :scripts {:teddy (actions/get-script entities @@ -262,6 +270,8 @@ :portrait (actions/get-script entities (return-portrait entities))}} :window {:box [195 121 256 190] + :label "Window" + :cursor :hand :script (actions/get-script entities (actions/walk-to entities :ego [207 68] :face :right) @@ -294,17 +304,25 @@ (actions/play-animation entities :ego :hold-up-to-window) (actions/talk entities :ego "It's just too dim."))))}} :grandfather-clock {:box [55 70 103 185] + :label "Grandfather clock" + :cursor :look :script (actions/get-script entities (actions/do-dialogue entities :ego "Cool grandfather clock!" :shopkeep "It's quite the exquisite piece, isn't it?"))} :shelf {:box [0 60 52 199] + :cursor :look + :label "Trinkets" :script (actions/get-script entities (actions/walk-to entities :ego [48 58]) (actions/talk entities :ego "All of these trinkets seem too bulky to fit in my pack."))} :flowers {:box [178 115 188 143] + :label "Flowers" + :cursor :look :script (actions/get-script entities (actions/talk entities :ego "I've never been a fan of flowers."))} :lian {:box [264 103 317 198] + :cursor :look + :label "Tapestry" :script (actions/get-script entities (actions/walk-to entities :ego [220 35] :face :right) (actions/do-dialogue entities @@ -317,6 +335,8 @@ (assoc (utils/get-texture "inside-antique/fg.png") :x 0 :y 0 :baseline 320 :parallax 1.5) ] :entities {:shopkeep (actions/start-animation screen (assoc (animation->texture screen shopkeep-stand) :x 148 :y 122 :baseline 112 + :label "Shopkeeper" + :cursor :talk :stand shopkeep-stand :scale-x 1.6 :scale-y 1.6 @@ -372,6 +392,8 @@ :x 165 :y 110 :baseline 125 + :label "Mint bowl" + :cursor :hand :script (actions/get-script entities (if (= 3 (get-in @entities [:state :mints-eaten])) (do (actions/walk-to entities :ego [159 58] :face :right) @@ -419,6 +441,8 @@ :x 112 :y 114 :baseline 120 + :cursor :hand + :label "Portrait" :script (actions/get-script entities (get-portrait entities)))) :teddy (rooms/make-entity :teddy teddy) diff --git a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj index ccb06fff..36436f40 100644 --- a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj +++ b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj @@ -207,7 +207,7 @@ :name "Cafeteria" :interactions {:right-dir {:box [272 45 320 120] - :script (actions/get-script + :only-script (actions/get-script entities (actions/walk-to entities :ego [319 50] :skip-type :end) (actions/transition-background entities :inside-castle [65 150]) @@ -221,6 +221,8 @@ ] :entities {:warriors (actions/start-animation screen (assoc (animation->texture screen warriors-stand) :x 31 :y 36 :baseline 180 + :cursor :talk + :label "Knights" :left {:stand (utils/flip warriors-stand) :talk (utils/flip warriors-stand)} :right {:stand warriors-stand @@ -239,8 +241,19 @@ :anim knight-a-stand :anim-start 0 :talk knight-a-stand - :stand knight-a-stand) + :stand knight-a-stand + :label "Knights" + :cursor :talk + :talk-color (color 1.0 0.2 0.3 1.0) + :script (actions/get-script entities + (do-warrior-dialogue entities)) + :scripts (constantly (actions/get-script entities + (actions/walk-to entities :ego [150 45] :face :left) + (actions/do-dialogue entities :warriors + "We are warriors. We coveteth not earthly possessions.")))) :ladder-guard (actions/start-animation screen (assoc (animation->texture screen ladder-guard-stand) :x 180 :y 70 :baseline 170 + :cursor :talk + :label "On-duty knight" :stand ladder-guard-stand :talk ladder-guard-talk :talk-color (color 0.2 0.6 1.0 1.0) @@ -253,6 +266,8 @@ "No thank you, young sire.")))) :stand) :ladder (assoc (utils/get-texture "inside-cafeteria/ladder.png") :x 205 :y 70 :baseline 170 + :cursor :hand + :label "Ladder" :script (actions/get-script entities (actions/talk entities :ladder-guard "Do not toucheth, young sire.")))} :collision "inside-cafeteria/collision.png" diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index f0974546..6f4b1b8f 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -385,7 +385,7 @@ :interactions {:right-door {:box [286 140 306 160] :cursor :right - :script (actions/get-script entities + :only-script (actions/get-script entities (actions/walk-to entities :ego [284 145] :skip-type :end) (actions/walk-straight-to entities :ego [295 145]) (if (outside-castle/should-block? entities) @@ -397,7 +397,7 @@ (actions/walk-straight-to entities :ego [82 180]) (actions/walk-to entities :ego [129 148] :skip-type :end))))} :up-door {:box [50 150 70 170] - :script (actions/get-script entities + :only-script (actions/get-script entities (actions/walk-to entities :ego [65 155] :skip-type :end) (if (= :night (get-in @entities [:state :time])) (actions/talk entities :ego "It's locked.") @@ -406,7 +406,7 @@ :cursor :up} :antique-door {:box [154 90 189 150] :cursor :up - :script (actions/get-script entities + :only-script (actions/get-script entities (actions/walk-to entities :ego [182 90] :face :left :skip-type :end) (actions/play-animation entities :ego :reach) (if (= :night (get-in @entities [:state :time])) @@ -424,6 +424,8 @@ :shopkeep "Oh, you're not him." :shopkeep "Welcome to Ye Olde Antique Shop.")))))} :sword {:box [15 93 49 125] + :label "Pedestal" + :cursor :hand :script (actions/get-script entities (if (actions/has-item? entities :sword) (actions/talk entities :ego "I already have the Sword of Blergh!") @@ -436,26 +438,34 @@ (pull-sword entities) (try-to-pull-sword entities missing-items obtained-items))))))} :sign {:box [125 140 165 155] + :label "Sign" + :cursor :look :script (actions/get-script entities (actions/talk entities :ego "Ye Ol' Antique Shoppe."))} :background-houses {:box [84 145 126 180] - :script (actions/get-script entities + :only-script (actions/get-script entities (actions/walk-to entities :ego [81 148] :face :right :stop? false :skip-type :end) (actions/walk-straight-to entities :ego [92 150] :face :right) (actions/transition-background entities :outside-jail [159 -20]) (actions/walk-straight-to entities :ego [159 20])) :cursor :right} :mid-house {:box [217 125 250 180] + :cursor :look + :label "Billy's house" :script (actions/get-script entities (actions/do-dialogue entities :ego "That's Billy Billigan's house." :ego "He's probably still angry from when I put his dog in the dryer."))} :frankie-house {:box [251 140 266 160] + :cursor :look + :label "Frankie's house" :script (actions/get-script entities (actions/do-dialogue entities :ego "That's Frankie Rockfist's house." :ego "The last time I saw him, he socked me one, right in the kisser."))} :georgia-house {:box [271 150 286 170] + :cursor :look + :label "Georgia's house" :script (actions/get-script entities (actions/do-dialogue entities :ego "That's Georgia McGorgeous' house." @@ -530,6 +540,8 @@ :y 110 :baseline 95) :walkie-talkie (assoc (utils/get-texture "inside-castle/walkie-talkie.png") + :label "Walkie-talkie" + :cursor :talk :x 257 :y 135 :baseline 0 @@ -543,6 +555,8 @@ :trophy (assoc (animation->texture screen trophy) :x 230 :y 69 :baseline 191 + :label "Trophy" + :cursor :hand :anim trophy :anim-start 0 :script (actions/get-script entities @@ -557,11 +571,15 @@ (actions/do-dialogue entities :ego "Can't you give me your trophy of wisdom?" :game-player "If you want my trophy, you'll have to help me with my riddles.")))) :books (assoc (utils/get-texture "inside-castle/books.png") + :label "Books" + :cursor :hand :x 230 :y 30 :baseline 191 :script (actions/get-script entities (walk-to-player entities) (actions/talk entities :game-player "Don't touch my books!"))) :game-player (assoc (utils/get-texture "inside-castle/gameplayer.png") :x 266 :y 49 :baseline 191 + :label "Brian O'Brainy" + :cursor :talk :talk-color (color 1.0 0.3 0.4 1.0) :script (actions/get-script entities (do-game-player-dialogue entities)) :writing-sound (utils/load-sound "inside-castle/writing.ogg") @@ -651,6 +669,8 @@ game-player-flex {1 [:flex-sound 0.5]}} :flex game-player-flex)} :monocle (rooms/make-entity :monocle (assoc (animation->texture screen monocle) + :label "A reflective thing" + :cursor :hand :x 209 :y 160 :baseline 240 :origin-x 9 :anim monocle diff --git a/desktop/src-common/advent/screens/rooms/inside_house.clj b/desktop/src-common/advent/screens/rooms/inside_house.clj index a033f888..71433cd2 100644 --- a/desktop/src-common/advent/screens/rooms/inside_house.clj +++ b/desktop/src-common/advent/screens/rooms/inside_house.clj @@ -140,13 +140,15 @@ (rooms/make :music :inside-fangald :name "Inside house" :interactions {:down-dir {:box [151 0 320 40] - :script (actions/get-script entities + :only-script (actions/get-script entities (actions/update-state entities #(assoc % :wizard-left? false)) (actions/walk-to entities :ego [237 1] :stop? false :skip-type :end) (actions/walk-straight-to entities :ego [245 -60]) (actions/transition-background entities :outside-house [257 90] :face :left)) :cursor :down} :safe {:box [34 70 70 115] + :label "MagiSafe 2000" + :cursor :hand :script (actions/get-script entities (actions/walk-to entities :ego [59 65]) (if (get-in @entities [:room :entities :wizard]) @@ -159,12 +161,18 @@ (actions/talk entities :ego "How did that tune go again?") (actions/play-safe entities))))}} :knight {:box [71 70 102 190] + :cursor :look + :label "Armor" :script (actions/get-script entities (actions/talk entities :ego "Maybe when I am an older knight, Gandarf will give me his armor!"))} :shelves {:box [215 100 320 220] + :cursor :look + :label "Shelves" :script (actions/get-script entities (actions/talk entities :ego "His shelves are full of books and strange ingredients."))} :window {:box [119 120 203 190] + :label "Window" + :cursor :look :script (actions/get-script entities (actions/talk entities :ego "It's a really big window!"))}} :layers [(assoc (utils/get-texture "inside-house/background.png") :x 0 :y 0 :baseline 0) @@ -213,6 +221,8 @@ :baseline 200 :anim candle :anim-start 0 + :label "Candle" + :cursor :look :script (actions/get-script entities (actions/do-dialogue entities :ego "It's just a candle."))) :candle-aura (assoc (animation->texture screen candle-aura) :x 172 :y 97 :baseline 239 :additive? true :origin-x 13 :opacity 0.5 :anim candle-aura :anim-start 0) :candle-smoke (doto (assoc (particle-effect "particles/candle") :x 172 :y 112 @@ -223,6 +233,8 @@ (particle-effect! :set-position 237 0)) :flask (assoc (utils/get-texture "inside-house/flask.png") :x 265 :y 80 :baseline 240 + :label "Flask" + :cursor :hand :script (actions/get-script entities (actions/remove-entity entities :flask) (actions/give entities :flask-1) @@ -231,6 +243,8 @@ :wizard "Sure.")))) :frog-legs (assoc (utils/get-texture "inside-house/frog-legs.png") :x 180 :y 77 :baseline 240 + :label "Frog legs" + :cursor :hand :script (actions/get-script entities (if (get-in @entities [:room :entities :wizard]) (actions/do-dialogue entities :wizard "Hey, I need those frog legs for one of my spells!") diff --git a/desktop/src-common/advent/screens/rooms/inside_jail.clj b/desktop/src-common/advent/screens/rooms/inside_jail.clj index 3bebe835..d5a76500 100644 --- a/desktop/src-common/advent/screens/rooms/inside_jail.clj +++ b/desktop/src-common/advent/screens/rooms/inside_jail.clj @@ -121,6 +121,7 @@ :warden "Be a good chap and let me rest.") (actions/play-animation entities :warden :fall-asleep :stop? false) (actions/begin-animation entities :warden :sleep) + (actions/update-state entities (fn [s] (assoc s :warden-sleeping? true))))}]})) (defn get-key [ entities] @@ -236,12 +237,16 @@ } :interactions { :lock {:box [172 102 190 124] + :label "Lock" + :cursor :hand :script (actions/get-script entities (actions/walk-to entities :ego [174 80] :face :right) (actions/play-animation entities :ego :reach) (actions/talk entities :ego "There's no helping it. It's locked.")) :scripts {:key (actions/get-script entities (open-lock entities))}} :window {:box [98 110 118 140] + :label "Window" + :cursor :look :script (actions/get-script entities (actions/walk-to entities :ego [102 88] :face :right) (actions/do-dialogue entities @@ -318,6 +323,8 @@ :ego "The door locks without a key." :ego "If I get caught, I won't be able to get out."))}} :hay {:box [130 86 177 102] + :label "Hay" + :cursor :hand :script (actions/get-script entities (search-hay entities)) :scripts {:default (actions/get-script entities @@ -327,6 +334,8 @@ (actions/do-dialogue entities :ego "I'm trying to escape." :ego "Not help the next bloke who gets trapped here."))}} :chest {:box [194 62 228 99] + :label "Chest" + :cursor :hand :script (actions/get-script entities (touch-chest entities)) :scripts {:key (actions/get-script entities (if (get-in @entities [:state :opened-bars?]) @@ -338,7 +347,7 @@ (actions/talk entities :ego "Not while I'm in this cell.")))}} :door {:box [257 62 301 152] :cursor :down - :script (actions/get-script entities (leave entities))} + :only-script (actions/get-script entities (leave entities))} } :layers [(assoc (utils/get-texture "inside-jail/background.png") :x 0 :y 0 :baseline 0 :night-profile :none) @@ -383,6 +392,8 @@ 18 [:blink 0.15]} warden-sleep {0 [:inhale 0.1] 10 [:exhale 0.1]}} + :label "Warden" + :cursor :talk :script (actions/get-script entities (cond (actions/has-item? entities :key) (actions/talk entities :ego "Shh! It's best not to wake him now.") @@ -391,6 +402,7 @@ (actions/do-dialogue entities :ego "Yoo-hoo! Mr. Warden?" :ego "I guess he's really fast asleep!") + (actions/update-entities entities (fn [e] (assoc-in e [:room :entities :warden :cursor] :hand))) (actions/update-state entities #(assoc % :warden-fast-asleep? true))) :else (do (actions/walk-to entities :ego [103 82]) @@ -409,6 +421,8 @@ :ball-n-chain (assoc (utils/get-texture "inside-jail/ball-n-chain.png") :x 80 :y 80 :baseline 160 :night-profile :none + :label "Ball-n-chain" + :cursor :hand :script (actions/get-script entities (actions/walk-to entities :ego [103 83] :face :left) (actions/play-animation entities :ego :squat) @@ -424,6 +438,8 @@ :night-profile :none) :candle-aura (assoc (animation->texture screen candle-aura) :x 215 :y 130 :baseline 2 :additive? true :origin-x 13 :origin-y 13 :opacity 0.5 :anim candle-aura :anim-start 0 :night-profile :none + :label "Candle" + :cursor :look :script (actions/get-script entities (actions/talk entities :ego "Just a candle.")) :scripts {:default (actions/get-script entities (actions/talk entities :ego "I might catch the place on fire."))}) :candle-smoke (doto (assoc (particle-effect "particles/candle") :x 215 :y 130 @@ -435,6 +451,8 @@ :x 300 :y 60 :baseline 175 :night-profile :none + :label "Crowbar" + :cursor :hand :script (actions/get-script entities (if (get-in @entities [:state :opened-bars?]) (do (actions/walk-to entities :ego [295 55] :face :right) @@ -460,8 +478,10 @@ (if (actions/has-obtained? entities :crowbar) (update-in entities [:room :entities] #(dissoc % :crowbar)) entities) - (if (get-in entities [:state :warden-sleeping?]) - (update-in entities [:room :entities :warden] #(actions/start-animation % :sleep)) + (if (get-in entities [:state :warden-fast-asleep?]) + (-> entities + (update-in [:room :entities :warden] #(actions/start-animation % :sleep)) + (update-in [:room :entities :warden] assoc :cursor :hand)) entities) (if (get-in entities [:state :opened-bars?]) (update-in (remove-lock entities) diff --git a/desktop/src-common/advent/screens/rooms/inside_stash.clj b/desktop/src-common/advent/screens/rooms/inside_stash.clj index 0059e879..91171b3c 100644 --- a/desktop/src-common/advent/screens/rooms/inside_stash.clj +++ b/desktop/src-common/advent/screens/rooms/inside_stash.clj @@ -62,13 +62,15 @@ :name "Inside stash" :interactions {:left-dir {:box [91 60 125 140] - :script (actions/get-script + :only-script (actions/get-script entities (actions/walk-straight-to entities :ego [118 96]) (actions/transition-background entities :outside-jail [200 97]) (actions/walk-straight-to entities :ego [167 100])) :cursor :left} :candle {:box [160 130 170 140] + :label "Candle" + :cursor :look :script (actions/get-script entities (actions/talk entities :ego "Just a candle.")) @@ -85,6 +87,8 @@ :default (actions/get-script entities (actions/talk entities :ego "Momma always told me not to play with fire."))}} :chest {:box [151 107 180 124] + :label "Chest" + :cursor :hand :script (actions/get-script entities (explore-chest entities)) :scripts {:sword (actions/get-script entities (actions/talk entities :ego "There's not enough room to swing my sword here.")) :crowbar (actions/get-script entities diff --git a/desktop/src-common/advent/screens/rooms/outside_castle.clj b/desktop/src-common/advent/screens/rooms/outside_castle.clj index fede4057..75e58b25 100644 --- a/desktop/src-common/advent/screens/rooms/outside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/outside_castle.clj @@ -344,7 +344,7 @@ :name "Outside castle" :interactions {:right-dir {:box [280 40 320 140] - :script (actions/get-script + :only-script (actions/get-script entities (actions/walk-to entities :ego [310 80] :stop? false :skip-type :end) (actions/walk-straight-to entities :ego [340 80]) @@ -352,17 +352,23 @@ (actions/walk-straight-to entities :ego [30 80])) :cursor :right} :door {:box [66 180 85 195] - :script (actions/get-script + :only-script (actions/get-script entities (go-through-gate entities)) :cursor :left} :castle {:box [0 181 100 240] + :cursor :look + :label "Castle" :script (actions/get-script entities (actions/do-dialogue entities :ego "That's the town of Remington in the distance."))} :wares {:box [69 75 97 110] + :cursor :look + :label "Wares" :script (actions/get-script entities (actions/talk entities :ego "That peddler has all kinds of strange trinkets."))} :garden {:box [103 170 178 200] + :label "Garden" + :cursor :hand :script (actions/get-script entities (if (actions/has-obtained? entities :carrot) @@ -398,6 +404,8 @@ peddler-talk {23 [:scratch 0.15] 6 [:blink 0.3 0.8] 22 [:blink 0.3 0.8]}} + :cursor :talk + :label "Peddler" :scratch (utils/load-sound "outside-castle/scratch.ogg") :talk peddler-talk :stand peddler-stand :talk-color (color 1.0 0.9 0.4 1.0) @@ -421,6 +429,8 @@ :stand) :steer (actions/start-animation screen (assoc (animation->texture screen steer-stand) :x 203 :y 155 :baseline 80 + :label "Angus, the buff bull" + :cursor :hand :stand steer-stand :night-profile :sprite :moo (utils/load-sound "outside-castle/moo.ogg") @@ -455,6 +465,8 @@ (assoc (animation->texture screen balloon-stand) :x 75 :y 100 + :cursor :look + :label "Balloons" :baseline 140 :stand balloon-stand :script (actions/get-script entities @@ -469,6 +481,8 @@ :flies (assoc (animation->texture screen flies-stand) :x 201 :y 175 + :label "Flies" + :cursor :look :anim flies-stand :anim-start 0 :baseline 240 @@ -490,6 +504,8 @@ (actions/talk entities :ego "Those flies seem to be attracted to Angus' stench.")) )} :note (rooms/make-entity :note (assoc (utils/get-texture "outside-castle/note.png") + :label "Bingo card" + :cursor :hand :x 198 :y 66 :baseline 174 :script (actions/get-script entities (actions/walk-to entities :ego [210 79] :face :left) diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index c1c439fb..6a1ae376 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -618,7 +618,7 @@ (aget sheep-walk-sheet 0 i))) butterfly-stand (utils/make-anim "butterfly.png" [7 7] 0.1 [0 1]) cauldron (utils/make-anim "outsidehouse/cauldron.png" [50 38] 0.15 (range 4)) - charcoal (utils/make-anim-seq "outsidehouse/charcoal" [18 18] 0.25 (range 4)) + charcoal (utils/make-anim-seq "outsidehouse/charcoal" [24 18] 0.25 (range 4)) scaler (utils/scaler-fn-with-baseline 110 0.10 1.00) lamb-stand (aget lamb-walk-sheet 0 0) lamb-walk (animation 0.075 (for [i (range 4)] @@ -843,7 +843,7 @@ :anim charcoal :anim-start 0 :night-profile :none - :x 125 :y 73 :baseline 167 + :x 119 :y 73 :baseline 167 :script (actions/get-script entities (actions/walk-to entities :ego [120 73]) (actions/play-animation entities :ego :start-squat-2 :stop? false) @@ -862,6 +862,7 @@ :wizard "Good job, Tick."))}})) :note (rooms/make-entity :note (assoc (utils/get-texture "outsidehouse/note.png") :x 277 :y 74 :baseline 160 + :label "Paper airplane" :cursor :hand :night-profile :none :script (actions/get-script entities diff --git a/desktop/src-common/advent/screens/rooms/outside_jail.clj b/desktop/src-common/advent/screens/rooms/outside_jail.clj index 6cbc60e3..86a9b038 100644 --- a/desktop/src-common/advent/screens/rooms/outside_jail.clj +++ b/desktop/src-common/advent/screens/rooms/outside_jail.clj @@ -105,7 +105,7 @@ (rooms/make :music {:day :town-1 :night :night} :name "Fountain" :interactions {:down-dir {:box [30 0 227 40] - :script (actions/get-script entities + :only-script (actions/get-script entities (actions/walk-to entities :ego [159 5] :skip-type :end :stop? false) (actions/walk-straight-to entities :ego [159 -20]) (actions/transition-background entities :inside-castle [92 150]) @@ -113,24 +113,34 @@ (actions/walk-to entities :ego [159 74] :skip-type :end)) :cursor :down} :door {:box [22 42 46 124] - :script (actions/get-script entities + :cursor :left + :only-script (actions/get-script entities (if (= :night (get-in @entities [:state :time])) (actions/talk entities :ego "I do NOT want to go back in there!") (do (actions/walk-to entities :ego [50 46]) (actions/talk entities :warden "NO VISITORS!"))))} :window {:box [62 175 80 212] + :label "Window" + :cursor :look + :script (actions/get-script entities (if (= :night (get-in @entities [:state :time])) (actions/do-dialogue entities :ego "Boy am I glad to be out of there!" :ego "They didn't even give me my one telephone call!") (actions/talk entities :ego "I wonder if anyone is imprisoned up there?")))} :sign {:box [5 173 61 199] + :label "Sign" + :cursor :look :script (actions/get-script entities (actions/talk entities :ego "J.A.I.L. Jail. Can't you read?"))} :my-house {:box [89 128 118 179] + :label "House" + :cursor :look :script (actions/get-script entities (actions/talk entities :ego "That's my house. I'd rather play outside."))} :sherrif-house {:box [138 143 160 168] + :label "Sherriff's house" + :cursor :look :script (actions/get-script entities (actions/do-dialogue entities :ego "That's the Sheriff's house." @@ -139,6 +149,8 @@ :ego "Or windows." :ego "What's the big deal?"))} :mchulk-house {:box [223 137 282 172] + :label "Captain McHulk's house" + :cursor :look :script (actions/get-script entities (actions/do-dialogue entities :ego "That's Captain McHulk's house!" @@ -146,6 +158,8 @@ :ego "If only I could be as strong as he is one day." ))} :stump {:box [205 68 251 100] + :label "Stump" + :cursor :hand :script (actions/get-script entities (actions/walk-to entities :ego [170 71] :face :right) (actions/walk-straight-to entities :ego [188 71] :face :right) @@ -178,6 +192,8 @@ :frog-legs (actions/get-script entities (actions/talk entities :ego "They're already chopped up!")) :broken-clock (actions/get-script entities (actions/talk entities :ego "It's already split in half!"))}} :lever {:box [3 72 20 90] + :label "Candle" + :cursor :hand :script (actions/get-script entities (interact-with-lever entities)) :scripts {:rope (actions/get-script entities @@ -202,14 +218,17 @@ (actions/talk entities :ego "Why would I want to burn that?") (actions/talk entities :ego "The candle's not lit right now.")))}} :end-of-rope {:box [177 101 185 108] + :label "Rope" + :cursor :hand :script (actions/get-script entities (try-to-go-in-stash entities))} :fountain {:box [150 126 193 170] + :label "Fountain" + :cursor :look :script (actions/get-script entities (actions/walk-to entities :ego [151 119] :face :right) (actions/do-dialogue entities :ego "Some would say this is life-giving nectar." :ego "... Me?" - :ego "I'd just as soon say it's nasty public fountain water.") - (actions/play-animation entities :ego :get-sick)) + :ego "I'd just as soon say it's nasty public fountain water.")) :scripts {:flask-2 (actions/get-script entities (actions/walk-to entities :ego [151 119] :face :right) (actions/play-animation entities :ego :reach) @@ -257,6 +276,8 @@ :stand guard-stand :talk guard-talk :sleep guard-sleep + :label "Knocked out guard" + :cursor :hand :script (actions/get-script entities (search-guard entities)) :night-profile :sprite)) :rope (rooms/make-entity :rope (assoc (utils/get-texture "outside-jail/rope.png") @@ -264,9 +285,13 @@ :spear (rooms/make-entity :spear (assoc (utils/get-texture "outside-jail/spear.png") :night-profile :none :x 60 :y 65 :baseline 180 + :label "Spear" + :cursor :hand :script (actions/get-script entities (grab-spear entities)))) :alarm-clock (rooms/make-entity :alarm-clock (assoc (utils/get-texture "outside-jail/alarm-clock.png") :x 217 :y 83 :baseline 160 + :label "Broken clock" + :cursor :hand :script (actions/get-script entities (actions/walk-to entities :ego [189 65] :face :right) (actions/play-animation entities :ego :reach) @@ -285,15 +310,30 @@ :apply-state (fn [screen entities] (utils/fast-forward-particle (get-in entities [:room :entities :outside-particles])) + (as-> entities entities (utils/play-sound! screen entities (get-in entities [:room :fountain-sound :sound]) (utils/sourced-volume-fn :fountain 0.06 [172 120]) (utils/get-sound-pan 172) :loop) - - (if (= :night (get-in entities [:state :time])) - (make-night entities) - (update-in entities [:room :entities] dissoc :candle-aura :candle-flame)) - (if (get-in entities [:state :dropped-ball?]) - (update-in entities [:room :entities :guard] #(actions/start-animation % :sleep)) - (update-in entities [:room :entities] dissoc :bent-bar-window ))))))) + + (if (get-in entities [:state :knows-about-stash?]) + (update-in entities [:room :interactions] (fn [xs] + (for [i xs] + (if (= (:id i) + :lever) + (assoc i :cursor :hand) + i)))) + (update-in entities [:room :interactions] (fn [xs] + (for [i xs] + (if (= (:id i) + :lever) + (assoc i :cursor :look) + i))))) + + (if (= :night (get-in entities [:state :time])) + (make-night entities) + (update-in entities [:room :entities] dissoc :candle-aura :candle-flame)) + (if (get-in entities [:state :dropped-ball?]) + (update-in entities [:room :entities :guard] #(actions/start-animation % :sleep)) + (update-in entities [:room :entities] dissoc :bent-bar-window ))))))) diff --git a/desktop/src-common/advent/screens/rooms/space.clj b/desktop/src-common/advent/screens/rooms/space.clj index 10c13578..49569cb8 100644 --- a/desktop/src-common/advent/screens/rooms/space.clj +++ b/desktop/src-common/advent/screens/rooms/space.clj @@ -248,6 +248,8 @@ :explode bloodclot-explode + :label "Bloodclot" + :cursor :talk :script (actions/get-script entities (actions/do-dialogue entities :bloodclot-head "No time to talk." diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 92955bd8..45ba6c1e 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -176,6 +176,18 @@ void main () ") ; +(defn ensure-on-screen [l] + (let [margin-width (* 0.05 320) + minimum-x margin-width + maximum-x (- 320 margin-width) + label-width (label! l :get-width) + label-right (+ (:x l) (/ label-width 2)) + _ (println label-right) + l (cond (> label-right maximum-x) (assoc l :x (- maximum-x label-width)) + (< (:x l) minimum-x) (assoc l :x minimum-x) + :else l)] + l)) + (defn get-script-selector [entities] (or (get-selected-inventory-item) :main)) @@ -909,7 +921,8 @@ void main () depressed?))) (update-in entities [:cursor ] assoc :last [new-current depressed?] - :time-changed total-time))))) + :time-changed total-time + :offset (utils/+cursor-hotspots+ (or (:cursor new-current) new-current) [0 0])))))) (defn get-looped-animation-point ^double [^Animation animation ^double total-time] @@ -1234,12 +1247,13 @@ void main () :music-override {:object nil :value nil} :label (utils/add-actor-to-stage screen - (assoc (label "Sheep" style :set-alignment Align/left) + (assoc (label "Sheep" style :set-alignment Align/center) :x 0 :y 0 :baseline 10000)) :cursor {:id "cursor" :last nil :override :hourglass :last-pos [0 0] + :offset [0 0 ] :down-target nil} :all-items (assoc items/items :object nil) @@ -1278,7 +1292,7 @@ void main () nil) :on-render - (fn [{:keys [^OrthographicCamera camera ^FitViewport viewport ^Stage renderer] :as screen} {{:keys [last-pos]} :cursor :keys [tweens] :as entities} options] + (fn [{:keys [^OrthographicCamera camera ^FitViewport viewport ^Stage renderer] :as screen} {{:keys [last-pos ] [cursor-offset-x cursor-offset-y] :offset} :cursor :keys [tweens] :as entities} options] (steam/update) (.apply viewport) @@ -1320,9 +1334,13 @@ void main () last-pos-x (double last-pos-x) last-pos-y (double last-pos-y) - entities (update-in entities [:label] assoc - :x (unchecked-add last-pos-x 20.0) - :y (unchecked-subtract last-pos-y 12 )) + entities (-> entities + (update-in [:label] assoc + :x (unchecked-subtract last-pos-x + cursor-offset-x) + :y (unchecked-add (unchecked-subtract last-pos-y 24 ) + cursor-offset-y)) + (update-in [:label] ensure-on-screen)) entities (if (and (@utils/settings :camera-man? true) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index a4ea57ff..bb7a150f 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -48,7 +48,68 @@ (def ^:const +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake :ball-n-chain :key :rope :crowbar :note-1 :ash :sack-lunch :flies :spear :monocle :feather :spell-component :money :charcoal :broken-clock :slingshot :camera :walkie-talkies :alarm-clock :walkie-talkie :flask-water :flask-water-stuff :flask-water-stuff-2 :note-2 :magic-slingshot :active-main :shovel :broom :tune :hand :hand-depressed :talk :talk-depressed :look :look-depressed]) (def ^:const +cursor-hotspots+ {:look [8 8] - :look-depressed [8 8]}) + :look-depressed [8 8] + :wool [8 8] + :mushrooms [8 8] + :right [8 8] + :down [8 8] + :left [8 8] + :up [8 8] + :flask [8 8] + :flask-with-contents [8 8] + :trophy [8 8] + :ladder [8 8] + :stick + :cat-toy + :balloon [3 3] + :frog-legs [8 8] + :teddy [8 8] + :portrait [5 8] + :recipe [8 8] + :glass-eye [8 3] + :motivational-tapes [8 8] + :used-earplugs [8 8] + :grass [2 2] + :slobber [8 8] + :flask-with-strength [8 8] + :medal [8 8] + :kiss [8 8] + :sword [8 8] + :hourglass [0 0] + :mandrake [8 8] + :ball-n-chain [8 8] + :key [3 8] + :rope [8 8] + :crowbar [0 0] + :note-1 [8 8] + :ash [8 10] + :sack-lunch [8 8] + :flies [8 8] + :spear [0 0] + :monocle [8 8] + :feather [8 8] + :spell-component [8 8] + :money [8 8] + :charcoal [1 1] + :broken-clock [8 8] + :slingshot [8 8] + :camera [8 8] + :walkie-talkies [8 8] + :alarm-clock [8 8] + :walkie-talkie [8 8] + :flask-water [8 8] + :flask-water-stuff [8 8] + :flask-water-stuff-2 [8 8] + :note-2 [8 8] + :magic-slingshot [8 8] + :active-main [0 0] + :shovel [8 8] + :broom [0 0] + :tune [8 8] + :hand [3 0] + :hand-depressed [3 0] + :talk [8 8] + :talk-depressed [8 8]}) (def settings (atom {:music-volume 50.0 :sound-volume 75.0