From 2ff19eeb4451724846c17f8256f8cb439d362966 Mon Sep 17 00:00:00 2001 From: shoofle Date: Tue, 16 Apr 2024 22:04:11 -0400 Subject: [PATCH] more work --- appdata/system/settings.pod | Bin 366 -> 362 bytes atelier2.p64 | 531 +++++++++++++++++++----------------- 2 files changed, 284 insertions(+), 247 deletions(-) diff --git a/appdata/system/settings.pod b/appdata/system/settings.pod index be159315c1101e8d0db30b221e6817051eb5f8b9..8d377d4cbe0225061d015643d526ab4af2f74922 100644 GIT binary patch delta 240 zcmWO0F-ikL6adh_!BXr3b_P*WxP@_7(7;~6!p1rblgZ!gn90oe|DUWI3$GxEgDf<=JH7)+Ov_0J8OW^iU_~ z*bt(xgc9acErQf3)+?l{){Zf+U5K$$t@X3eav#2@c&q)~p)!d$oWPeyX#*{kHU^n* z05{7dsC1gya16px)575ud_;SXPDP{|jTG?7jjcs3_1xRK8^QtgA#;3}EH`hkW+4>Q Z>_MR<3}I&e8$LCk4dBmk5<6T({CKLNqz-|V>TbsjY;)twj z!Co}RRlX^;w1jyuk7z}}s8MmrF=5_^ofFu=6z`>*SrjTo^05a*56Mv7Uc)~1V7*9; zM#xkdzXv}Kx$$u>q*6#Epb9e1Ef(-KmCP7hL2`+Au-3_1QW4RO;IlTG#X`=U(d`)= a#V%yG+WHVy@Ij3Xg0>ak;hWwLvYUS>99Gf* diff --git a/atelier2.p64 b/atelier2.p64 index 9a18e92..6fdf3e6 100644 --- a/atelier2.p64 +++ b/atelier2.p64 @@ -4,126 +4,8 @@ version 2 :: gfx/ :: map/ :: sfx/ -:: conversation.lua ---[[pod_format="raw",created="2024-04-03 02:38:22",modified="2024-04-10 14:42:28",revision=642]] -default_script = { - {"welcome to Atelier Hester!", talk_sprite} -} - -Conversation = {} - -function Conversation:new(script, final) - local c = {script=script or default_script, final=final or function() end, index=1} - - setmetatable(c, self) - self.__index = self - - return c -end - -function Conversation:before() - self.behind = scene - self.before = function() end -- only ddo othis the firstt time this scene is played -end - -function Conversation:update() - local now = self.script[self.index] - if now.during ~= nil then now.during() end - if btnp(4) or btnp(5) then - if now.after ~= nil then now.after() end - if self.index < #self.script then - self.index += 1 - else - --self:after() - end - end -end - -function Conversation:draw() - self.behind:draw() - - ragged_box(30, 100, 240-30, 130) - color(0) - print(self.script[self.index][1], 34, 104) -end - -function Conversation:after() - self.final() - --change_scene(self.behind) -end -:: screen_drawer.lua ---[[pod_format="raw",created="2024-04-05 00:59:25",modified="2024-04-05 00:59:26",revision=1]] - -:: shop.lua ---[[pod_format="raw",created="2024-03-29 01:14:51",modified="2024-04-05 14:54:05",revision=1117]] --- this manages the main shop interface, where you look at the cupboard and plantss --- and sstuff. -include("art.lua") -include("fairy.lua") -include("cabinet.lua") - -cabinet = Cabinet:new(40, 10, 2) -fairy = Fairy:new() -alchemist_sprite = 192 -alchemist_bob = 0 -customer_sprite = 0 -customer_bob = 0 -customer_visible = false -door_open = 0 - -shop_screen = {} -function shop_screen.draw() - cls() - - cabinet:draw() - - -- alchemist! - bob(alchemist_sprite, 0, 7, 96, 128, alchemist_bob) - - fairy:draw() - - -- countertop! - draw_counter(14) - - if customer_visible then - bob(customer_sprite, 240-96, 7, 96, 128, customer_bob) - end - - draw_door(door_open) -end - -function draw_counter(height) - rectfill(0, 135-height, 240, 135, 4) - for i=1,height do - rectfill(0,135-height, 0.5*i*i, 135-i, 4+16) - rectfill(240,135-height, 240-0.5*i*i, 135-i, 4+16) - end - line(0,135-height, 240, 135-height, 4+16) -end - -function shop_screen.update() - fairy:move() - cabinet:update(fairy.x, fairy.y) - if btnp(4) then - local drawer = cabinet:drawer_at(fairy.x, fairy.y) - if drawer then change_scene(DrawerScene:new(drawer)) end - end -end - -function draw_door(open) - palt(0x00, true) - if open >=0.0 then fillp(0b1111111111111111) end - if open > 0.1 then fillp(0b1011010111100101) end - if open > 0.2 then fillp(0b1010010110100101) end - if open > 0.4 then fillp(0b1010000110100100) end - if open > 0.7 then fillp(0x0000) end - rectfill(240-(96*open), 135-128, 240, 135, 0x00) - sspr(200, 0,0,96,128, 240-(96*open), 135-128, 96*open, 128) - palt() - fillp() -end :: art.lua ---[[pod_format="raw",created="2024-03-31 01:52:08",modified="2024-04-12 14:41:51",revision=629]] +--[[pod_format="raw",created="2024-03-31 01:52:08",modified="2024-04-14 22:07:40",revision=671]] function bob(s, x, y, w, h, t) sspr(s, 0, 0, w, h, x+t/2, y-t/2, w-t, h+t) end @@ -191,7 +73,7 @@ function collides(position, object) return position.x < object.right and position.x > object.left and position.y > object.top and position.y < object.bottom end :: cabinet.lua ---[[pod_format="raw",created="2024-04-03 19:46:51",modified="2024-04-14 02:34:28",revision=631]] +--[[pod_format="raw",created="2024-04-03 19:46:51",modified="2024-04-14 22:07:40",revision=668]] Cabinet = {} function Cabinet:new(x, y, gaps) local c = { @@ -318,6 +200,53 @@ function Shelf:draw(highlighted) palt(0, true) end end +:: conversation.lua +--[[pod_format="raw",created="2024-04-03 02:38:22",modified="2024-04-10 14:42:28",revision=642]] +default_script = { + {"welcome to Atelier Hester!", talk_sprite} +} + +Conversation = {} + +function Conversation:new(script, final) + local c = {script=script or default_script, final=final or function() end, index=1} + + setmetatable(c, self) + self.__index = self + + return c +end + +function Conversation:before() + self.behind = scene + self.before = function() end -- only ddo othis the firstt time this scene is played +end + +function Conversation:update() + local now = self.script[self.index] + if now.during ~= nil then now.during() end + if btnp(4) or btnp(5) then + if now.after ~= nil then now.after() end + if self.index < #self.script then + self.index += 1 + else + --self:after() + end + end +end + +function Conversation:draw() + self.behind:draw() + + ragged_box(30, 100, 240-30, 130) + color(0) + print(self.script[self.index][1], 34, 104) +end + +function Conversation:after() + self.final() + --change_scene(self.behind) +end :: fairy.lua --[[pod_format="raw",created="2024-04-03 17:32:32",modified="2024-04-10 01:58:59",revision=384]] Fairy = { @@ -392,138 +321,165 @@ function Glow:update() end :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixtb2RpZmllZD0iMjAyNC0w -NC0xNCAwMzoyMjo1NiIscmV2aXNpb249MTEyMF1dbHo0AJgZAABjXQAA8Rp7WzBdPXtibXA9cHh1 +NC0xNCAyMjowNzo0MCIscmV2aXNpb249MTE4NV1dbHo0AOIcAAASZAAA8Rp7WzBdPXtibXA9cHh1 AEMgEBAE8PAsZmxhZ3M9MCxwYW5feD0wLjM3NQwA_wJ5PS0wLjEyNSx6b29tPTV9LDoAkCR6cAoP HU8eCgcAcD8ODx4KYBoJAP8CDRpQCh8dPw4dClAKDx1fDg0IAAT-Aw8eClAKDl8ODgpQCn4KUJrw A4sAJqUGOrAKHxMKsAoeBADwAKAaHhqQCgMOEQqQCgMPEgcAPQ4dAQYArw4KkAo_CpBa8AV9ACYQ Jn0AER1xAP8GYDoPFy46MAo9HxweHxIKMAodbxwPCAACIF8cIAD-ARodPxwODxIaQBpeGmB68ASE -ACJRCAgECQACABIQCAAfGQ4AFh8J9QAm-yAQLxyQPgAuUC4AHiAuEC4gLjAOEA4wHgBeEF5ALBos -YDwaPFAcEAogHIAa0ArwOWgAJccgLDAsUAwADDAMAAwIADAcEBwIABEQAgD-EVAcAAwQDAAcYCwQ -LIAcGhyQHxwaHpAeCgAegB4aEB6QfwAl8EnIZATw-7X-Dw-wG47wNf8YHf4V-RL_Bv0mcP0a-hn9 -D-4P-R9w-Rb_Hv0M-hr9FnD9D-4m-Qj_Je0_rXD9B-4w-QT_O51wnVf_Od3_QI1wnQf_P73_Qhdd -CgDyAECd-kQHXXCd-kJtDx-_RQsAYg0PFj0vHxkAaAf_Qh8WXw0ARW8f-kMNAE9-H-5CDQBeCYIA -Dw0AFAnDAA8NACETTx8BDw0AWk8-H-5GDQAqDlsADw0AwC-_QwwAT2FfH_7H-igOADAm594QAGGu -R74n-iUSAHAhV94Xbgc_FgBxfjf_Ayf_IhcAcBxXfieeF54XAHFeJ-4IJ-4gFwCQGEduZx4nfheO -GQBxThf_DCf_HhkAkBRHXleeJ24XfhkAcT4X-hA3-hoZAKARN15H-gIHbhduGgCRLhdu9wOuR-4V -HACQCPcE-gcXXhdeGwCyHhdON-4CN65X-hAmAaABZz5X-hEnThdOzwDBHhdOF25HvjfOR-4MIACx -TsdOV-4Hx04XPhe_APA_F04XXicuN75H3jf_CAddcK0uJ26n-gdXvhc_Fx4dFy4PFm8fBz4nXhd_ -J_433mf_AQddcL2ON-4Jh-4IBw49TlwOB84HvkfOR-4A9wDVAPspzT49Lv0Ap-0XLh087hcerT5n -nkf_DX1w-VMevQ4HHv0HV35n-gaNcP2BBz2eh86dcP2Zjt1w-bADAF-w----3z0FFBwxvAVQ-xQB -1B4CALAEuQQeBAk-Dxk9CQkAGp0GADEPFQ4IAIcMDgS5BAwO1AMAH_y4BSKfICAE-xQR9A4eAwAC -wDT5BjQeNAl-Dzl9CQkAMY0ZjQgAL-0EBwALMg8VDgkAHgwIAH-5BjQMDvQOBAASPx78DtYAJXLU -DxTwAdQOBAD-EsQe8AHEDvACtB7wAqQe8AOUHvAEdC7wBVQu8Adu8P--q2YAJf8J_TAg_gqA_QTQ -_gDwAdnwAtnwA7nw---8UAAlAEQCH-M9ACfwCKIq8A0KAwrwDBoDCvAISgMACvAICgMgCAAjBToI -AFAKAxADAAIAZBrwBAoAAwIAHwoOAApEAToAAwIA8A5KwAr-EgEKwCrOKuAKzgrwARquGvACCq4K -8AMajlUAb44K8AWqoMYAJ8AAOvAMCh8TGvAIOi7BAPAiHgAuOvAFCi4AThrwAiouJD4K8AIKFA4A +ACJRCAgECQACABIQCAAfGQ4AFh8J9QAmshEfHJAeED5QPhBeAgD-CSBOEE5QLBosYDwaPFAcEAog +HIAa0ArwOWIAJtQDLxwwLlAuMC5QPhA_BACRYC4QLoAeGh6QBACfCgAegB4aEB6QaAAl8DHIZATw +-7X-Dw-wG47wOPIa-hXyEv4G8iSgEv8YF-4Z-Q-_D-0dAoAC-RX_Hv0M-hr9FQJwAv0O-ib9CP4l +7T6dDgDwBAb_MP0E-juNAnACjVf_Od3_QH0LAKIH-j_9Dx-_QRdNDgBhQJ0c-kIHDQBG-kJtPAwA +VA0PFj1MDwCGB-5CG3z_QloMAC9BegsALhdqWgBHCg0KLQ8ALwdNDQACP2z_Qw0AHj9c-kQNACs- +TP5FDQAzOB1vDg8ALw2JDQAKMjz_Rg0AKHkHDgAPGwAHHJknAARPAD49SQegAA8NALcv-kMMABpH +HV8LDQ8AKA14DQAXiFkALB14DQBUXO7H-igPALQl594bXK5Hvif_JRMA8QEgV94Xbgc_G1x_N-4D +J-4iGADxBC1o-htXfieeF54bXF4n-ggn-iAYAPMGbRj_GEduZx4nfheOG1xOF-4MJ-4ergDzAxRH +XleeJ24XfhtcPhf_EDf_GhkA8wYRN15H-gIHbhduG1wuF273A65H-hUcAPQHCPcE-gcXXhdeG1we +F043-gI3rlf_EDEB8wkBZz5X-hEnThdOG0weF04Xbke_N85H-gwgAPEMTsdOV-4Hx04XPhc_G1wX +ThdeJy43vkfeN-4IIgDxEJ0uJ26n-gdXvhc_Fx4dFy4LbAc_J14XfifuN95n-gEkAPIKrY43-gmH +-ggHDj1OXA4Hzge_R85H-gD3ANcA8Ai9Pj0u-QCn-RcuHTzuFx6tPmeeR-4NbawE0FIevQ4HHv0H +V35n-ganBHD9gAc9nofOvQRA-ZiOzQcAF64FAPsDgAL9rQKQAv2rArDyq-D----hZwVVMTQuNjJo +BSE0NHYFAWkFHDHRBVD-FAHUHgIAsAS5BB4ECT8PGT0JCQAanQYAMQ8VDggAhwwOBLkEDA7UAwAf +7OQFIp8gIAT-FBH0Dh4DAALANPkGNB40CX8POX0JCQAxjRmNCAAv-QQHAAsyDxUOCQAeDAgAf-kG +NAwO9A4EABI-HvwO1gAlctQPFPAB1A4EAP8SxB7wAcQO8AK0HvACpB7wA5Qe8AR0LvAFVC7wB27w +--_rZgAl-wn5MCD6CoD5BND6APAB2fAC2fADufD---xwBy-zATrzGP4V8xL_BvMj0BP-GxVwB2Mc +A7AD-RNwB2UUE5AD-QxwB1MDkAP9BHAHQwOQA21wBwALAAZwBwIOAANwBwANAARwBwIMAAVwBwIo +AAP6Bg8NABU-gAN9DQBFA2gAAVUHDw0AHAFIBw8NACkBfwUPDQBdAUUHDw0AKQ5bAA8NAMEv-kMM +AAw-oANdDAAsA3EHAQ4AGCZwBwESAB0hbwcBFwAdHG4HARcAD20HAQEZAA9tBwEBGQAPbQcEAeQA +D20HBQImAQ9tBwcBIAAPbQcKTwOQA31tBw1PA5ADjW0HCE8DkAOdbQcDAKkEGVBtBwASABJ_bQcA +CwAwlo7NBwAQrAUA8B6qE6AD-VTzAv0U8wOtE8AD7fMmTfMK8AJTrfMD8AOj8AAjPXPwJkPwIqPw +NDOGByv-ln4FKC0zhwcWMn8FHDLPBfAK8P_iKvANCgMK8AwaAwrwCEoDAArwCAoDIAgAIwU6CABQ +CgMQAwACAGQa8AQKAAMCAB8KDgAKRAE6AAMCAPAOSsAK-xIBCsAqzirgCs4K8AEarhrwAgquCvAD +Go5VAG_OCvAFqqCVBiXg8P8AOvAMCh8TGvAIOi7BAPAiHgAuOvAFCi4AThrwAiouJD4K8AIKFA4A DgQQHgAa4DoALgAEDxQzCvAACi4AHiQNPgoAUQAuEAMkCgDgICQQFBAq8AAKHhQANCOwAKBeJBAa 8AEKfhQeSgAhLkAIANIaYBQQSuAK7xgK4ArsBAChGswa8AAKzArwAQUAfxqsGvACypDZACfwDl1K 8AZaLxMK8AYKTgQeCvAGGh4TBBMq8AUKIA5DOgHwByAeBD4a8AMKLhAELgAOCvADCkMkEwCdABAw ugBAAgoOQ7sAsAIKDgMODxQuFA4AdQEwEB0QwgDTBAogDRAUEDrwAQrGCgUAIBqmLgAQpiYAEIZh ABCGAQIfhqABJ-1iYGAE-x4P-xUS-x4j-xUo-x4R-xU2-x4G-xU_3x7-FUZ-Hv8VSj8e-xUM8Bj_ Cg8e-gHwMP4FBT7wPD4FnhUO8EAOFZ518DZ1rvUE8Bz1BM71Qv4A9T7_BPU6-gv1MP4c9Rj_Ch3_ -Th3_Ti3_TE3_Sl0DAE9N-kw9AwAEES05AAUDADAN-v8BACQ1DREABVkABTIAAmIAQW3_SH0DAPtY +Th3_Ti3_TE3_Sl0DAE9N-kw9AwAEES05AAUDACAN-k8DNP81DREABVkABTIAAmIAQW3_SH0DAPtY jf5Gnf5Grf5Ezf5C3f5C7f5A-QH_Pv0C-j79A-48-QX_Ov0H-jj9Cf42-Qv_NP0N-jL9D-4w-RH_ Lv0T-iz9Ff4q-Rj_Jv0b-iT9Hv4g-SH_Hv0k-hr9Kf4U-S7_EP00-gj9Pd79GXoBdC01LjE1ODMB -AASEAVcxNC44MBcAAY4BGTOOAfB0QEAE8P9bPxjwJq7wIe7wHf4E8Bj_BCge8BL_BEhe8Ar_Bziu -8AX_B0j_APAB-gVI-gbg-gFIfni_0M44ToheGL7AfkhOSO4YrsBOKH4oPvgBvrDemL4YDhi_oM44 -7kgeGM6QLgeOCB4YrjheCO6ALgd_GC4Yfih_GO6ALg8PB24IThg5ALD_AIAuBw1_CE4YHg4A8BkC -gC4dB24IXjhuOP4DoB4NBw1uGF4YLlj_AgcdwB4dB27I-gMHPRfAGgDyBP4UBy03HcAuHQf_Dwc9 -Nw0aFw4YAHANLUcdSi6wGQCRCB8OHUctah7QGQDwCAVsFy0nDkoO8AEeHQf_AD1cLRdOKvAEHADw -Bc4tNywtF37wBy4dfgc9Vy0nfvALGABgPgctBxs3DwAQDg8AQAc9B1sNAPAdEh4tJ3snfvAVHg1H -e37wGC4NJx1bXvAbPgcdFyte8B8uF47wIq7wJm7wKx6YBS--5DMDCRYxMwMfNKUBF5Bu8An_BzjO -8AOlASAC4KQB8SAIwP4BSP4OsM44zri_kH5IfpheWL6ATiieOG6oDhjOcO44HnheGC4Y3nDOeK4o -PqQBAJgBUJ4oTijeDACiCF4IbhhOOM4XoKUB8A5uGB4oLkjOR6AuBw0HXjheiN53oC4dF46I-gKX -sBEBsxf_EMfAHh0n-gunlwFCF-4Ht5gBhif_AycfDmctmwFUJ943XBeeAUY3jmdsnQFGN06nfJ4B -KPcBnQEWx50BF4ecARlHmwEvFy2bAV7wJtlvG-AZ-gjwEv4O8A3_FPAI-hjwBv4Mem7wBO7a-gDw -A35q-g7wAv4f8AD_IeAOCv4Hev4ACADxIABqXgr_AtAOCv4BGn4a-gPQCv4EGk4K-gbACv4GGh4K --giwCv4IGv4JsAoOCv4hBgD2CiKgHgr_EXqOoA4K-gPq-gGgDgquev4QoA4jACAgwAYAQBoHHgdl -APAHDvcC4AoOCk73A-8PB9AKDgoe-Qb3BhMAcA73Bv0I0BoQABAH3AYg9x0GAPEK-R7gCi73Gx7w -AF6H-gHXLuD_IfAA-gKA-loIT----30pASbwLxc-G-ApfvAj3vAe-gPwGP4AKl7wEv4BOo7wDv4B -Ot7wCu5K-gPwB846-gnwBZ46-g3wBW4q-gAq7vAD-gVaJwFh8AH_AjpuCQDwAw4KziqeCv4D8AAO -Cu46Xgr_BAoAgf4DOh4K-gXgOAHQBuAK-hYqftAK-hFKrvsAUf4LOv4BHgHwBQZK-gXAHgr_AUr_ -CdAOCt46-gg3QABhrir_BqfgTQFRDPcB8AAsACD3CC8Br-4A9w7gDgqu9xVQAXEhYBBAAPsLcP8S -GPAc-jDwCv488AL_QPAF-jbwF-4c8GlWAHYtMC4wMjUwAQAUNGMANDIuM2MAHzNjAAf-Be4-Hf4d -8Ar_BT3_Ez2_8AL_Lj3ebQBA8AYSDx0AHgAO4F8e8DP-EgZ-Hp8SAA4CAP8d8BZNDx5tDi0OHQ7N -DlwO-QbwCo1MfQ79Al6tDh0eHQ6d8AL9QPAF-TbwF-2RADfxD6cPHvBPDiAO8EcOIA4QDvBJDnAO -8Cg_8BIO8CheIBkB-xYtXv0n8AqdPq1ufXL9DPAC-QEy-QVyXVL9AvAF-SJyvfAX-RZSkQA2ESaR -APA1EA7wTw7wSA4QDxIgDvBIHg1wDvBDDUAdIA4ADcBN8DQeHQANII0u-QwQTfAVTQAOzU79F-AK -nQ4NHj0SXU6Nkm0S-QGqAP8KIv0Ekk1y-QHwBZ0S-RUSHgIuEq3wF-0VYrAANvAK-1gvHvARFvAp -TvBDDxJQHgc_TfA9bW79CpoA8RotMh0SjU5NQi1CbR698Ap9wl0uTTIN0h0eAg1CrfACzYJdQm2S -TSIeIqIAjyL9B0Itcj4iogA78EhzHx5wHvBGDvAUJvAdLvAdJvAfDvADDvBMPvAJFvAiHlAu8EYe -MC8SDg2QHvADFvAiDVAOLQ4NDk3wPc0OHSJNYl0_AE3wFaINIo0Osg1iLV4ibSAi8ATMAPMREi0O -8gJegh1C8AKNsi49cg0ukk0CXlK98AWdMl0CvXLNAH89Mk1SHYJt0gA2oZom8E0m8K4W8EYsAvFL -QBbwKjIPEvAJDvApDQDSLQBSMCIOMELQMvATfaJNYh0OAh0yAB0ugCLwABJQsg4iLdIeIg3yAy49 -EELwAfIBTkI-EyItEj5SPvIJ8AKN8gs8Yjw9cg4yHVI9yAD-AhKtci0iPgIOUj0eTfAXPfIKyQAz -DysZK-8KPg8e4A6gDiAOsA7wBP8SEC59Qq1C-RDwAFIAeB-wOgD------------------------- -----------------------9M8CNggATw-yS-FPBA-gLwPP4G8Dk-Ff4E8Dc9-gXwNU3_B-AzTf4I -8DJN-grwME3_C-AvXQUA_ABN-gzwLl3_DfAtTf4N8C4FADMM8C8FADELDw8HABA8JgDwDAk88Cwc -Tf4IPPAuHD3_BywPF-AxTf4FCxwLDAkA8KwEDAsMCwzwM02_LS4PGRwLHPAzXY49Lho88DVdTm0e -KjzwNv0BSjzwN816LPA5Ck3aHPA7_gMM8DuaDIrwO2psevA6Wnx68DlaHxwMaWrwOFqpWjnwNFrJ -SjnwNEoA6SpJ8DMqIJkvDCkKWfA0CkhJ_ATwMPgR8C5oDwr4DPAraBcoJ-gH8Cn4Azc4F6jwKCf4 -DAe48CIH_BIniPAh_BYHiPAg_BgHePAg_BknOPAf_CHwH-gi8B34IAcYBgDxBxcY8Bz4IQco8Bv4 -JfAb_CbwGigJ_CIGAPAjDgn4BPAaGAn4DhkoCfgA8BkYCfgPGRgJmAdY8BgIGfgQCSgJiAdY8BkJ -_BEZKAkYCVgZAFQJ_BIpOAsA8QIUGRgZWBdY8BcJ_BUZCBloBwsAgRgZ6PAWCfgZPgBkFBn4FRkY -CwBQFAk4GegJABAacgCCExn4GhmIFzgJAEb4APASCAARG4gAgREJ_BwJqAdICQAkGZgJALD4AfAQ -GfgbKagHOAkAphwZuAc48A8J_B0JAKHIBxjwEAn4HCnYTgAgKchlADATqbh9APABD0l4GajwFRn4 -Dhm4GYjwF0IA8gEIIBjwGin4GxkI8B8p_BwJBwAQGQYA8CMaOQjwHin4GFkI8B8Z_BdpLfAdGfgU -aQgJTfAcGfgReQht8B4J_A6ZbRXwHhn4CpmNJQgAUAapGG1VCQDyQgK5GH2F8B4ZyMkIjcXwHgmY -uc3V8B8JWKnd9QLwH8kIzfUFAAXwHpkVjfUN8B5prfUPAAXwHQ0ZvfUV8Bvd9RjwGY0FDfUc8Bkt -9STwGT0FDQIAovUc8Bgt9SbwFy0QAEMFDfUdEgAGJACkHvAVPfUo8BQtFRIAhiDwFC31KvASJACF -IvASLfUs8BASAAEUAIUQLfUsAAXwD14AABYAiQbwDz31KgAVFwADVwCLDy31LQAF8AztA24tMjku -MTC4M0gzOC43zzMP8DkAAQIE8S3--8NvFPBF7vA8PxV_KV7wOF2OKV7wNz0OSW4JbvA2PQ5Z7vA1 -PQ5pbgpu8DQdPmnu8DQNTln_APA0bkkGAPCEKW6vGfA03tzwNBmO-AHwNBlu-AMQHw-wMBle-AMQ -G-AxGV78AgsAK-Axbpzb8DFujNvwMl6Mmx8fK-AyXnyLKDvwMl5sSwgbKCcb8DNeXCs4Sx8OBwvw -NF4sHxcbKEsIGx8OK-AzHnsfFxgLFw8OKxhb8DMOmw8XCycfDjsYS-AzHksfF0sXHw5LCEvwMz4r -Lxe7FgDwJw1ODAsWuwhb8DM9HizrGCvwMz0OHAAsqyg78DMtDmyLKEsfHPA1jGsYWwYPDB8c8DSM -AMsGLwoA8kkyrKsWBT8MFfAxDAB8qwYbRCXwMJzbRBUU8C_sy0QllPAnjEWLFSRFpPAkjAU0FXsl -BAX0AfAifBVEJXsl9AEV8CB8BYQFayX0AwXwIGwFlAVrGvQF8CBcCgDxQAbwH1wFlBVrCgX0BvAe -TAAFlBVbBAoF9AfwHiwAJXQFBBU7FBr0B-AhFQQVZAUUBUoFGqQFtPAfFQoUJUQFFBpUCqQFxPAc -FQQKRCUkBaQOAPAGGhUECnQlBAW0CpQF1PAYFcQlxAqECgBQBQQKxBUMAPAK5PAWBQQK9BcF9ADw -FQUK9BgV9ADwExX0GggAYBIF9BIKhAoA8wARBfQTCnQABfQC8A8F9BQLAHAOBfQVCmQQCwAQDQsA -EXQLAEEMBfQWIQA0A-ALCwChBPAKBfQfABX0AwkAEBAdADIK9CAIAFDUFfQQEBsA8gEIBeQF9AgK -ZCAV9ALwCPQADQAyJfQBDQCFCQpEEBUUJeQOAEEAFUQFDgBgFfQICkQAOQEwCPQBGwAfNA0AAsEV -9A0ABfQF8Aj0AwULADME8AkLAFAEKtTwCwwAgAwgGgQatPAMDADACAokEAo0GpTwDfQCYwCgJAAK -VAqE8A70AlcAAA4AQBpk8A8OAJIKCiQVVApU8BANAGE0BVQaNAUOAPEEBHX0AQo0BWQKJAXwEeRV -ZAX0AA8AgRQF8BL0DQXkDQBwBAXwEwX0DBwAsyQFZAoF8BQF9AsVDgDB8BUF9Awa5AokBQpUDQBw -Czr0AnrwF2kAYBRaROvwGAoAUmQaFOsWCwCAdAoE2wYr8BmlAFSECusWGxcAQcsGKwYNAFEJCnQK -2w0AEhclAAANADEL8BgMAIRrPwU7BhsGCykAMUtjKw8AAVAARFQaK4MPAFHUtVrjGwwAYhoFZHXz -DhgA8hIbZW3zDjsGCwMb8BqNAw3zEisGC0PwGS3zHAtj8Bk9Aw0CABDzRgVS8yXwGC0QAIADDfMe -8Bct80YFAhAAARIAMBU980YFFBMSAABGBRDzRgUCEAAwAw3zRgUQ80YFJwMNFABlEC3zLvAPXACf -Aw3zJPAOPfMuJwUsD50JJw_FCv8gIP8UwTTxAXz0P-4BBP8VPQT_AQT9PA4HACA7HgcAQS30Ny4I -AE8E-jUECgD-NARSASH0OGIBMR30OnEBcg30Pf4B9D_xPDH--_iUAR-9kwH-dh9cYgMUHzLlCQHy -KxjfFvBALr8PHvA9Lu0e8Dse-QIO8Doe-QMe8DkO-QMfEQ4N8DUcHs18DhzwMRwAHA7dDA0cDVzw -MUwKAPYGHA0MDgzwMQwgHv0BDD0MDvA2Dv0IBgBgLU4dTm0uDwCwBR4NDvA3Dl0O-QAIAEBNHv0B -IQBRPR49Ds0qAFAeTQ69HgkAUA5dDp0KLQDwDR4dPi0OjQou8DgOTU6dCg7wOR79BA7wOg5NPq0H -APGALQ5tDm0e8DsOHR5NHl0_8DoeHX5NHh0u8Dk_QH5NHvBBHs0ODQLwPx7NDxhi8DourQtyG-A5 -Dp0bYjvwNAs_nQtiGw0r8DICCw0enRtSGz0CC-AwEgu9G1IbXQIL8CwNCyIbrQtSG30CC-AqHQsy -G30rQhudAgsC8CgdC1IrPRtiC70bAvAnHQtyW2IbzQsLAPIA8gQb3RvwJi0L8gMb7QILCgCwC-0A -G-AlPQvyAhsKAPAEAggX8BA9C-IBG-0CC-ACCDfwDg4A8QAL-QML8AMIN-ANPQvyABsOAEAYR-AL -DgBQC-0CDg0eAGAHGDfwCU0SADFNDr0TAEwYBxgnEwBIAFfwCBIAYQQIEFfwBxIAIz0eEgByIEcA -LxXwAxUAIg7NFQA5MEcpEwCwAvADCDA3KQ3wAl2UABUtFQBwQAdJHfABXbcAUB0ezQ4bPABBWa0g -vREAIQ7dEQBJIEn9DBAAMCn9DhAA0hIO3Q4CC-AK-Q8L8gQMADoL-Q4MABEFCwBUDI0g-QENAPQK -DW3wBBvyBc0eAgvwDk3wBQvyBs0OEgvwKAkAcB0OvfIFvR4KAPACXhBObcLNDiIL8CANAG69ct0L -APEMGmVuC-0RHiIL8BYVDkVOEC4L-REOMgvwFYWeCgDwTfAWhU4AHhAL-RAeIvAXhW4tC-0PHjIA -C-AV1R0Q-REOQivwFLVgC-0NLjJL8BNlECVgCxL9CS6SK-AShYALMv0EPtIb8BFVsAti3T7yAhvw -EFWwC-ICPvIGK-AOCwAiHRsIAEAeG-ANCAAgHwsIAKbyIBvwDFWg8iILBwBgsPIhG-ALJABnIBvw -C2WgCAA-C-AMCAABAEwAAAgAYR4L8A9VoGwAAQgAEByHAPAAoAvyGxvwEUXAC-IZG-ASCABAGBvw -EwgAQBcb8BQIAEEVK-AVCAA-C-AXCAANITXQCABvFkXgC-IUCAAUIxMbCABPCxLwFQkADR8bRAAA -YvAA8hTwFwcAHwPyBBUPyAgnDzoA---------------3UG09NX19 +AASEAVcxNC44MBcAAY4BGTOOAfAnQEAE8P9aIh8Y8CZCXvAgQq7wG0L_AfAWMv4CIh7wEEL_AUJe +8ApC-gIyrvAFQv4CQv4A8AEiCADwPQbg-gFCfni_0M4yToheGL7AfkJOSO4YrsBOIn4oPvgBvrDe +mL4YDhi_oB4CnjjuSB4YzpAeAgeOCB4YrjheCO6AHgIHfhguGH4ofhgNANAPDwduCE4YTih_KP4A +HQBgDX4IThgeDwDwGgKAHgIdB24IXjhuOP4DoB4NBw1uGF4YLlj_AgcdwB4dB27I-gMHPRfAGgDy +BP4UBy03HcAuHQf_Dwc9Nw0aFw4YAHANLUcdSi6wGQCRCB8OHUctah7QGQDwCAVsFy0nDkoO8AEe +HQf_AD1cLRdOKvAEHADwBc4tNywtF37wBy4dfgc9Vy0nfvALGABgPgctBxs3DwAQDg8AQAc9B1sN +APEdEh4tJ3snfvAVHg1He37wGC4NJx1bXvAbPgcdFyte8B8uF47wIq7wJm7wKx6qBR-kQwMJFjFD +Ax80tQEdMG7wCbUBMc7wA7UBIQLgtAHyIgjA-gFC-g6wzjLOuL6QfkJ_mF5YvoBOIp44bqgOGM5w +7jgeeF4YLhjecB4CnniuKD60AQCnAVGeKE4o3g0AowheCG4YTjjOF6C1AZBuGB4oLkjOR6C1AfAD +B144Xojed6AeAh0Xjoj_ApewIQGzF-4Qx8AeHSf_C6enAUIX-ge3qAGGJ-4DJx8OZy2rAVQn3jdc +F64BRjeOZ2ytAUY3Tqd8rgEo9wGtARbHrQEXh6wBGUerAS8XLasBXvAm2W8b8Bn_CPAS-g7wDf4U +8Aj_GPAG-gx6bvAE7tr_APADfmr_DvAC-h-wAP4h4A4K-gd6-gAIAPEgAGpeCv4C0A4K-gEafhr_ +A9AK-gQaTgr_BsAK-gYaHgr_CLAK-gga-gmwCg4K-iEGAPYKIqAeCv4Reo6gDgr_A_r_AaAOCq56 +-hCgDiMAICDABgBAGgceB2UA8AcO9wLgCg4KTvcD-w8H0AoOCh79BvcGEwBwDvcG-QjQGhAAEAf8 +BiD3HQYA8Qv9HuAKLvcbHvAAXof_Adcu4P4h8AD_AoD_BCcBP---fSkBJvAvFz8b8Cl_8CPe8B7_ +A-AY-gAqXvAS-gE6jvAO-gE63vAK7kr_A-AHzjr_CfAFnjr_DfAFbir_ACru8AP_BVonAWHwAf4C +Om4JAPADDgrOKp4K-gPwAA4K7jpeCv4ECgCB-gM6Hgr_BeA4AdAG4Ar_Fip_0Ar_EUqu_wBR-gs6 +-gEeAfAFBkr_BcAeCv4BSv4J0A4K3jr_CDdAAGGuKv4Gp_BNAVEM9wHwACwAIPcILwGv-gD3DuAO +Cq73FVABcSFgEEAA_wtw-xIY8Bz_MPAK-jzwAv5A8AX_NvAX-hzwaVYAJy00JAo0MS40qREfM1YA +B-8F7j8d-h3wCv4FPf4TPb7wAv4uPd5gADPwBhIPHQAeAA7gXx7wM-8SBn8enxIADgIA-x3wFk0P +Hm0OLQ4dDs0OXA79BvAKjUx9Dv0CXq0OHR4dDp3wAv1A8AX9NvAX-YQAKvEPpw8e8E8OIA7wRw4g +DhAO8EkOcA7wKD7wEg7wKF4g-wD-Fi1e-SfwCp0_rW59cv0M8AL9ATL9BXJdUv0C8AX9InK98Bf9 +FlKEACkRJoQA8DUQDvBPDvBIDhAPEiAO8EgeDXAO8EMNQB0gDgANwE3wNB4dAA0gjS79DBBN8BVN +AA7NTv0X8AqdDg0ePRJdTo2SbRL9AZ0A-woi-QSSTXL9AfAFnRL9FRIeAi4SrfAX-RViowAp8Ar- +WC8e8BEW8ClO8EMPElAeBz5N8D1tbv0KjQDxGi0yHRKNTk1CLUJtHr3wCn3CXS5NMg3SHR4CDUKt +8ALNgl1CbZJNIh4ilQCPIv0HQi1yPiKVAC7wSHMfHnAe8EYO8BQm8B0u8B0m8B8O8AMO8Ew_8AkW +8CIeUC7wRh4wLxIODZAe8AMW8CINUA4tDg0OTfA9zQ4dIk1iXT4ATfAVog0ijQ6yDWItXiJtICLw +BL8A8xESLQ7yAl6CHULwAo2yLj1yDS6STQJeUr3wBZ0yXQK9csAAfz0yTVIdgm3FACmhmibwTSbw +rhbwRgUC8UtAFvAqMg8S8AkO8CkNANItAFIwIg4wQtAy8BN9ok1iHQ4CHTIAHS6AIvAAElCyDiIt +0h4iDfIDLj0QQvAB8gFOQj8TIi0SPlI_8gnwAo3yCzxiPD1yDjIdUj27AP8CEq1yLSI_Ag5SPR5N +8Bc98gq8ACrwSPovFvBNLvCtBgXwIgaABmA-HjAG8A0y8BtCQF1gMoAFBpBCwBLwBA8SANIcXfID +sFLAMvAALQzyAF1yDBIccgwyMELwAFIQoi0SDOI9EgxPEy1SK3IMYskA-x5NQjsSK_I98gjwAQwi +DBIc4jtyWyJbPbJbYvAFPPIXDPIBHDIs8BcSHPIKHLLDACjzExpPHpAe8LsuAC8W8CFeoA7wAy4w +LfA2HhAO8EQegA4ATrDdAPQHMB4ADhAOMAZe8AcywDLQXlBCYA4AHuYA8Q9CsH6iLgIOMg5CflKw +UsCyMB4HXgJe8gMOB25iDxLoAMDijgxiPxOiK44SazLkACDibuMA8RJiKyJ_8gbwAXIbUk4iW1Jb +Ijtegoti8AVSO-ICe-ICC1LnAB-y4wQp8Tk4BTAF8Es18EtF8Hs-HvAeFfAarjAG8AoG8AgfE5BN +oC4XbmAG4F6gFaAtAg2wMoAuB54gQsCOMD7AQsBCcB4HroIuAg4iXgfaAOCCLQD_A_IeB54CDTI_ +EtgA8B3CzlI9Em0C3gJtMg1i8AESLXKubRItYi0CnlJNovABch0yfgJtUl0iPV6CjdkA-wE9DvIB +3bINQp3wF3JN8gRNOgUlD7UgGg86AP---------------------------------------------- +-yTwI2CABPD-JL8U8ED_AvA8-gbwOT8V-gTwNz3_BfA1Tf4H8DNN-gjwMk3_CvAwTf4L8C9dBQD4 +AE3_DPAuXf4N8C1N-g3wLgUAMwzwLwUAMQsPDwcAEDwmAPAMCTzwLBxN-gg88C4cPf4HLA8X8DFN +-gULHAsMCQDwrAQMCwwLDPAzTb4tLg8ZHAsc8DNdjj0uGjzwNV1ObR4qPPA2-QFKPPA3zXos8DkK +Tdoc8Dv6AwzwO5oMivA7amx68DpafHrwOVofHAxpavA4WqlaOfA0WslKOfA0SgDpKknwMyogmS8Q +KQpZ8DQKSEn4BPAw_BHwLmgPCvgM8CtoFygn_AfwKfgDNzgXqPAoJ-gMB7jwIgf4EieI8CH4FgeI +8CD4GAd48CD4GSc48B-4IfAf_CLwHfggBxgGAPEHFxjwHPghByjwG-gl8Bv4JvAaKAn4IgYA8CMO +CfgE8BoYCfgOGSgJ_ADwGRgJ_A8ZGAmYB1jwGAgZ_BAJKAmIB1jwGQn4ERkoCRgJWBkAVAn4Eik4 +CwDxAhQZGBlYF1jwFwn4FRkIGWgHCwCBGBno8BYJ_Bk_AGQUGfgVGRgLAFAUCTgZ6AkAEBpyAIIT +GfgaGYgXOAkARvgA8BIIABEbiACBEQn4HAmoB0gJACQZmAkAsPgB8BAZ_BspqAc4CQCmHBm4Bzjw +Dwn4HQkAocgHGPAQCfgcKdhOACApyGUAMBOpuH0A8AEPSXgZqPAVGfgOGbgZiPAXQgDyAQggGPAa +KfgbGQjwHyn4HAkHABAZBgDwJBo5DwzwHin4GFkG8B8Z_BdpLfAdGfgUaQYJTfAcGfgReQZt8B4J +_A6ZbRXwHhn4CpmNJQgAUAapFm1VCQDyQgK5Fn2F8B4ZyMkGjcXwHgmYuc3V8B8JWKnd9QLwH8kG +zfUFAAXwHpkVjfUN8B5prfUPAAXwHQ0ZvfUV8Bvd9RjwGY0FDfUc8Bkt9STwGT0FDQIAovUc8Bgt +9SbwFy0QAEMFDfUdEgAGJACkHvAVPfUo8BQtFRIAhiDwFC31KvASJACFIvASLfUs8BASAAEUAIUQ +LfUsAAXwD14AABYAmQ8G8A899SoAFRgAA1gAiw8t9S0ABfAM7wNuLTI5LjEwFTVIMzguNyw1D49A +AAEEBPEt---DbxTwRe7wPD8Vfile8Dhdjile8Dc9DkluCW7wNj0OWe7wNT0OaW4KbvA0HT5p7vA0 +DU5Z-gDwNG5JBgDwhClurxnwNN7c8DQZjvwB8DQZbvwDEB8P8DAZXvwDEBvwMRle-AILACvwMW6c +2-Axbozb8DJejJsfHyvwMl58iyg78DJebEsIGygnG-AzXlwrOEsfDgcL8DReLB8XGyhLCBsfDivw +Mx57HxcYCxcPDisYW-AzDpsPFwsnHw47GEvwMx5LHxdLFx8OSwhL8DM_Ky8XuxYA8CcNTgwLFrsI +W-AzPR4s6xgr8DM9DhwALKsoO-AzLQ5siyhLHxzwNYxrGFsGDxAfHPA0jADLBi8KAPJJMqyrFgU- +EBXwMQwAfKsGG0Ql8DCc20QVFPAvrMtEJZTwJ4xFixUkRaTwJIwFNBV7JQQF9AHwInwVRCV7JfQB +FfAgfAWEBWsl9AMF8CBsBZQFaxr0BfAgXAoA8UEG8B9cBZQVawoF9AbwHkwABZQVWw8MCgX0B-Ae +LAAldAUEFTsTGvQH8CEVBBVkBRQFSgUapAW08B8VChQlRAUUGlQKpAXE8BwVAwpEJSQFpA4A8AYa +FQQKdCUEBbQKlAXU8BgVxCXECoQKAFAFAwrEFQwA8Ark8BYFAwr0FwX0APAVBQr0GBX0APATFfQa +CABgEgX0EgqECgDzABEF9BMKdAAF9ALwDwX0FAsAcA4F9BUKZBALABANCwARdAsAQQwF9BYhADQD +8AsLAKEE8AoF9B8AFfQDCQAQEB0AMgr0IAgAUNQV9BAQGwDyAQgF5AX0CApkIBX0AvAI9AANADIl +9AENAIUJCkQQFRQl5A4AQQAVRAUOAGAV9AgKRAA6ATAI9AEbAB80DQACwRX0DQAF9AXwCPQDBQsA +MwTwCQsAUAQq1PALDACADCAaBBq08AwMAMAICiQQCjQalPAN9AJjAKAkAApUCoTwDvQCVwAADgBA +GmTwDw4AkgoKJBVUClTwEA0AYTQFVBo0BQ4A8QQEdfQBCjQFZAokBfAR5FVkBfQADwCBFAXwEvQN +BeQNAHAEBfATBfQMHACzJAVkCgXwFAX0CxUOAMHwFQX0DBrkCiQFClQNAHALOvQCevAXaQBgFFpE +6-AYCgBSZBoU6xYLAIB0CgTbBivwGaUAVIQK6xYbFwBBywYrBg0AUQkKdArbDQASFyUAAA0AMQvw +GAwAhGs-BTsGGwYLKQAxS2IrDwABUABEVBorgg8AUdS1WuIbDABiGgVkdfIOGADyEhtlbfIOOwYL +AhvwGo0CDfISKwYLQvAZLfIcC2LwGT0CDQIAEPJIBVLyJfAYLRAAgAIN8h7wFy3ySAUCEAABEgAw +FT3ySAUUEhIAAEgFEPJIBQIQADACDfJIBRDySAUnAg0UAGUQLfIu8A9cAJ8CDfIk8A498i4oBSwP +oAknD4gK-yAg-xT-NfEBfPQ--gEE-xU9BP4BBP08DgcAIDseBwBBLfQ3LggATwT_NQQKAP80BFIB +IfQ4YgExHfQ6cQFyDfQ9-gH0Pw8_Mf--6JQBH-2TAf92H1xiAxQfMuYJAfIrGN8W8EAuvw8e8D0u +7R7wOx79Ag7wOh79Ax7wOQ79Ax8RDg3wNRwezXwOHPAxHAAcDt0MDRwNXPAxTAoA9gYcDQwODPAx +DCAe-QEMPQwO8DYO-QgGAGAtTh1ObS4PALAFHg0O8DcOXQ79AAgAQE0e-QEhAFE9Hj0OzSoAUB5N +Dr0eCQBQDl0OnQotAPANHh0_LQ6NCi7wOA5NTp0KDvA5Hv0EDvA6Dk0_rQcA8YAtDm0ObR7wOw4d +Hk0eXT7wOh4dfk0eHS7wOT5Afk0e8EEezQ4NAvA-Hs0PGGLwOi6tC3Ib8DkOnRtiO-A0Cz6dC2Ib +DSvwMgILDR6dG1IbPQIL8DASC70bUhtdAgvwLA0LIhutC1IbfQIL8CodCzIbfStCG50CCwLwKB0L +Uis9G2ILvRsC8CcdC3JbYhvNCwsA8gDyBBvdG-AmLQvyAxvtAgsKALAL-QAb8CU9C-ICGwoA8AQC +CBfwED0L8gEb-QIL8AIIN-AODgDxAAv9AwvwAwg38A09C-IAGw4AQBhH8AsOAFAL-QIODR4AYAcY +N-AJTRIAMU0OvRMATBgHGCcTAEgAV-AIEgBhBAgQV-AHEgAjPR4SAHIgRwAvFfADFQAiDs0VADkw +RykTALAC8AMIMDcpDfACXZQAFS0VAHBAB0kd8AFdtwBQHR7NDhs8AEFZrSC9EQAhDt0RAEkgSf0M +EAAwKf0OEADSEg7dDgIL8Ar9DwvyBAwAOgv9DgwAEQULAFQMjSD9AQ0A9AoNbfAEG-IFzR4CC-AO +TfAFC-IGzQ4SC-AoCQBwHQ698gW9HgoA8AJeEE5tws0OIgvwIA0Abr1y3QsA8QwaZW4L-REeIgvw +FhUORU4QLgv9EQ4yC-AVhZ4KAPBN8BaFTgAeEAv9EB4i8BeFbi0L-Q8eMgAL8BXVHRD9EQ5CK-AU +tWAL-Q0uMkvwE2UQJWALEv0JLpIr8BKFgAsy-QQ_0hvwEVWwC2LdPvICG-AQVbAL8gI_8gYr8A4L +ACIdGwgAQB4b8A0IACAfCwgApvIgG-AMVaDyIgsHAGCw8iEb8AskAGcgG-ALZaAIAD8L8AwIAAEA +TAAACABhHgvwD1WgbAABCAAQHIcA8ACgC-IbG-ARRcAL8hkb8BIIAEAYG-ATCABAFxvwFAgAQRUr +8BUIAD8L8BcIAA0hNdAIAG8WReAL8hQIABQjExsIAE8LEvAVCQANHxtEAABi8ADyFPAXBwAfA-IE +FQ-ICCcPOgD---------------dQbT01fX0= :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixzdG9yZWQ9IjIwMjQtMDMt MjkgMDE6MTQ6NTEiXV1sejQABAAAAAMAAAAwbmls :: library.lua ---[[pod_format="raw",created="2024-04-10 00:24:20",modified="2024-04-10 01:58:59",revision=35]] +--[[pod_format="raw",created="2024-04-10 00:24:20",modified="2024-04-14 22:07:40",revision=101]] plant_descriptions = { [-1]={{"i don't know what that is. where did you find this?"}}, +[13]={{"these are chives. are we sure this is for alchemy?"}}, [14]={{"this is foxglove"}}, } function get_conversation(plant) local id = plant[1] return plant_descriptions[id] or plant_descriptions[-1] end + +book_pages = { +[1]={ +"hester's big book of recipes! alchemists only! dangerous recipes!", +"format: \nrecipe notes \n \ningredient 1 \ningredient 2 \ningredient 3" +}, +[2]={ +"\nBarthow's Encyclopaedia of Botanicals and Components", +"A comprehensive reference to help identify all ingredients an alchemist needs." +} +} :: main.lua ---[[pod_format="raw",created="2024-04-02 02:59:37",modified="2024-04-14 03:22:56",revision=1000]] +--[[pod_format="raw",created="2024-04-02 02:59:37",modified="2024-04-14 22:07:40",revision=1053]] -- this is atelier hester! -- except for the one line in _init that does change_screen(shop_screen) @@ -555,7 +511,7 @@ script = {} function _init() vid(3) - change_scene(title_screen) + change_scene(shop_screen) end function _draw() @@ -617,15 +573,15 @@ CADSeT0wLHRpbGVfaD0xNgoAEHcKAIB6b29tPTF9fQ== b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixzdG9yZWQ9IjIwMjQtMDMt MjkgMDE6MTQ6NTEiXV1sejQABAAAAAMAAAAwbmls :: s_book.lua ---[[pod_format="raw",created="2024-04-14 02:34:41",modified="2024-04-14 03:22:56",revision=27]] +--[[pod_format="raw",created="2024-04-14 02:34:41",modified="2024-04-14 22:07:40",revision=89]] BookScene = { extension = 0, behind = nil, inset = 60, } -function BookScene:new(background) - c = {height=0, behind=nil, background=background} +function BookScene:new(background, pages) + c = {height=0, behind=nil, background=background, pages=pages, index=1, fairy=nil} setmetatable(c, self) self.__index = self @@ -641,6 +597,8 @@ function BookScene:before() end, 0.5) }) self.before = function() end + + self.fairy = self.behind.fairy end function BookScene:update() @@ -650,12 +608,18 @@ function BookScene:update() end, 0.5), Script.once(function(s) change_scene(self.behind) end) }) end + + self.fairy:update() end function BookScene:draw() - self.behind:draw() + self.behind:draw(true) - spr(007, 20, 135-self.height) + if self.fairy ~= nil then self.fairy:draw() end + + spr(self.background, 20, 135-self.height) + print(wrap(self.pages[self.index],80), 36, 135-self.height+10, 20) + print(wrap(self.pages[self.index+1],80), 130, 135-self.height+10, 20) end :: s_conversation.lua --[[pod_format="raw",created="2024-04-05 14:55:45",modified="2024-04-14 02:34:19",revision=129]] @@ -704,7 +668,7 @@ function Conversation:after() change_scene(self.behind) end :: s_drawer.lua ---[[pod_format="raw",created="2024-04-05 00:59:36",modified="2024-04-14 03:22:56",revision=281]] +--[[pod_format="raw",created="2024-04-05 00:59:36",modified="2024-04-14 20:06:16",revision=296]] DrawerScene = { extension = 0, behind = nil, @@ -763,7 +727,7 @@ function draw_drawer(distance, inset) spr(11, 120-16, distance+10+1) end :: s_shop.lua ---[[pod_format="raw",created="2024-04-05 14:55:27",modified="2024-04-14 03:22:56",revision=205]] +--[[pod_format="raw",created="2024-04-05 14:55:27",modified="2024-04-14 22:07:40",revision=276]] -- this manages the main shop interface, where you look at the cupboard and plantss -- and sstuff. include("art.lua") @@ -781,10 +745,10 @@ customer_visible = false door_open = 0 book_1 = {left=10, right=74, top=100, bottom=164} -book_2 = {left=80, right=144, top=100, bottom=164} +book_2 = {left=70, right=134, top=100, bottom=164} shop_screen = {} -function shop_screen:draw() +function shop_screen:draw(hide_fairy) cls() cabinet:draw() @@ -794,13 +758,13 @@ function shop_screen:draw() palt(30, true) palt(0, false) - spr(16, 240-110, 135-36) + spr(16, 240-100, 135-49) palt(30, false) palt(0, true) - spr(21+flr(2*t()%8), 240-110, 135-39) + spr(21+flr(2*t()%11), 240-100, 135-52) -- countertop! - draw_counter(14) + draw_counter(20) if collides(fairy, book_1) then spr(18, book_1.left, book_1.top) else spr(17, book_1.left, book_1.top) end @@ -812,7 +776,7 @@ function shop_screen:draw() bob(customer_sprite, 240-96, 7, 96, 128, customer_bob) end - fairy:draw() + if not hides_fairy then fairy:draw() end draw_door(door_open) end @@ -838,8 +802,8 @@ function shop_screen:update() local drawer = cabinet:drawer_at(fairy.x, fairy.y) if drawer then change_scene(DrawerScene:new(drawer)) end - if collides(fairy, book_1) then change_scene(BookScene:new(007)) end - if collides(fairy, book_2) then change_scene(BookScene:new(007)) end + if collides(fairy, book_1) then change_scene(BookScene:new(007, book_pages[1])) end + if collides(fairy, book_2) then change_scene(BookScene:new(012, book_pages[2])) end end if btnp(5) then @@ -886,6 +850,9 @@ function title_screen:draw() if self.continue then y=90 end rect(120-50/2, y-5, 120+50/2-1, y+7+5, 7) end +:: screen_drawer.lua +--[[pod_format="raw",created="2024-04-05 00:59:25",modified="2024-04-05 00:59:26",revision=1]] + :: script.lua --[[pod_format="raw",created="2024-04-04 01:01:55",modified="2024-04-14 03:09:34",revision=554]] Script = {} @@ -1007,6 +974,74 @@ v-gPQAANQP--sPBwCgD--2Qf-wEAl1D-----Hw== :: sfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixzdG9yZWQ9IjIwMjQtMDMt MjkgMDE6MTQ6NTEiXV1sejQABAAAAAMAAAAwbmls +:: shop.lua +--[[pod_format="raw",created="2024-03-29 01:14:51",modified="2024-04-05 14:54:05",revision=1117]] +-- this manages the main shop interface, where you look at the cupboard and plantss +-- and sstuff. +include("art.lua") +include("fairy.lua") +include("cabinet.lua") + +cabinet = Cabinet:new(40, 10, 2) +fairy = Fairy:new() +alchemist_sprite = 192 +alchemist_bob = 0 +customer_sprite = 0 +customer_bob = 0 +customer_visible = false +door_open = 0 + +shop_screen = {} +function shop_screen.draw() + cls() + + cabinet:draw() + + -- alchemist! + bob(alchemist_sprite, 0, 7, 96, 128, alchemist_bob) + + fairy:draw() + + -- countertop! + draw_counter(14) + + if customer_visible then + bob(customer_sprite, 240-96, 7, 96, 128, customer_bob) + end + + draw_door(door_open) +end + +function draw_counter(height) + rectfill(0, 135-height, 240, 135, 4) + for i=1,height do + rectfill(0,135-height, 0.5*i*i, 135-i, 4+16) + rectfill(240,135-height, 240-0.5*i*i, 135-i, 4+16) + end + line(0,135-height, 240, 135-height, 4+16) +end + +function shop_screen.update() + fairy:move() + cabinet:update(fairy.x, fairy.y) + if btnp(4) then + local drawer = cabinet:drawer_at(fairy.x, fairy.y) + if drawer then change_scene(DrawerScene:new(drawer)) end + end +end + +function draw_door(open) + palt(0x00, true) + if open >=0.0 then fillp(0b1111111111111111) end + if open > 0.1 then fillp(0b1011010111100101) end + if open > 0.2 then fillp(0b1010010110100101) end + if open > 0.4 then fillp(0b1010000110100100) end + if open > 0.7 then fillp(0x0000) end + rectfill(240-(96*open), 135-128, 240, 135, 0x00) + sspr(200, 0,0,96,128, 240-(96*open), 135-128, 96*open, 128) + palt() + fillp() +end :: story.txt --[[pod_format="raw",created="2024-03-30 15:58:22",modified="2024-04-11 01:41:32",revision=208]] ATELIER HESTER @@ -1187,9 +1222,11 @@ connect with people?" definitely overly preachy but i like that :: .info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTEyIDE2OjM3OjU3IixydW50aW1lPTUsc3RvcmVk -PSIyMDI0LTA0LTE0IDAzOjIyOjU3Iix3b3Jrc3BhY2VzPXt7bG9jYXRpb249Im1haW4ubHVhIzE1 -Iix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0aW9uPSJzX3Nob3AubHVhIzM4Iix3b3Jrc3BhY2Vf -aW5kZXg9MX0se2xvY2F0aW9uPSJzX2RyYXdlci5sdWEjMSIsd29ya3NwYWNlX2luZGV4PTF9LHts -b2NhdGlvbj0ic19ib29rLmx1YSMzOSIsd29ya3NwYWNlX2luZGV4PTF9LHtsb2NhdGlvbj0iZ2Z4 -LzAuZ2Z4Iix3b3Jrc3BhY2VfaW5kZXg9Mn19XV1sejQABAAAAAMAAAAwbmls +PSIyMDI0LTA0LTE0IDIyOjA3OjQxIix3b3Jrc3BhY2VzPXt7bG9jYXRpb249Im1haW4ubHVhIzIx +Iix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0aW9uPSJzX3Nob3AubHVhIzQ5Iix3b3Jrc3BhY2Vf +aW5kZXg9MX0se2xvY2F0aW9uPSJzX2Jvb2subHVhIzQzIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xv +Y2F0aW9uPSJsaWJyYXJ5Lmx1YSMzIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0aW9uPSJhcnQu +bHVhIzEiLHdvcmtzcGFjZV9pbmRleD0xfSx7bG9jYXRpb249ImNhYmluZXQubHVhIzEiLHdvcmtz +cGFjZV9pbmRleD0xfSx7bG9jYXRpb249ImdmeC8wLmdmeCIsd29ya3NwYWNlX2luZGV4PTJ9fV1d +bHo0AAQAAAADAAAAMG5pbA== :: [eoc]