From e1c821c26f5ccd1acbf2795b6ce07e4b40ec9a9a Mon Sep 17 00:00:00 2001 From: shoofle Date: Mon, 22 Apr 2024 23:20:19 -0400 Subject: [PATCH] added some drawer fucntionality --- atelier2.p64 | 738 +++++++++++++++++++++++++++++---------------------- 1 file changed, 420 insertions(+), 318 deletions(-) diff --git a/atelier2.p64 b/atelier2.p64 index 77c9432..67c5b77 100644 --- a/atelier2.p64 +++ b/atelier2.p64 @@ -4,186 +4,8 @@ version 2 :: gfx/ :: map/ :: sfx/ -:: story.txt ---[[pod_format="raw",created="2024-03-30 15:58:22",modified="2024-04-11 01:41:32",revision=208]] -ATELIER HESTER - -welcome to atelier phoebe 2! this is my document for -recording story ideas! please don't read this; it is -all the spoilers! if you want to know what happens -i recommend playing the game, that is the proper -way to experience this :) - --------------- - -main gameplay interface, you're shown a gridd of -cubbiess which contain various ingredients - -you look at the things in the cubbies and label them? -labeling could be hard with just o/x -you have twwo books, one of recipes and one of -ingredients? -drag a label from the book to the drawer/plant? - --------------- -plot ddetails follow!!! - -main character amnesia from alchemy gone wrong. -main character badly in debt to loan shark -everyone in town has some debt and don't talk about it -most people don't like main character -mc has to mend relationships with everyone in order -to gather everyone together to defeat loan shark -player controls a fairy assistant for alchemy -possibly fairy is new to the atelier? -early dialog esstablishes it's common knowledge that -fairies can blink white (o) to confirm things or -red (x) to be uncertain / ask a question - -maybe other colors at other timess but you get it, -those are our two verbs - ask about something and -suggest something - -interface is an apothecary cabinet you can open -the drawerss of and ask about. you have to suggest -ingredients to mix together for the cauldron - -at the beginning MC is unsure and doesn't know about -your suggestions - "i guess i can look that up?", -"maybe i'll try this?" because the player is guiding -them. towards the end MC responds as though teaching -the player fairy, like "that's right, that'll work!" -and "good job, yeah!" to communicate that the MC -is more confident and getting their mlemory of -alchemy back - -the town generally ddoesn't like the alchemisst just -because she's been kindda nasty and rude at times, -just petty disagreements that have boiled over. -she's known to be a decent alchemist though i guesss - -endgame is that you rally the town together to break -free of the loan shark; it's hard too convince -townsfolk both because they don't like you at first -and also because the loans ARE legitimate. but it -turnss out that the rest of the town also has debt -to the shark and if you convince everyone you can both -1. achieve independence from the supplies he sells -(maybe he's the intermediary with the trader? or buys -and ressells everything at a markup?) -2. convince people to just reject the loanss/debt; -quesstion here of whether they do this by force, -whether cops exist, idk, this is explicitly passtoral -fantasy. maybe at the end the player will muse about -whether it's good to have mob rule, "no one in toown -liked me, what if they threatened to burn down my -shop?" "yeah, that would suck. maybe we could build -something. but right now rule by mob is better than -rule by loan shark!" idk this feels overly didactic -but you get the idea - -this is really getting into the weeds of how we view -the justice system but maybe he threatens to say -"i'll send for the king's knights!" and the crowd is -like "you can do that if you want, but by the time -they get here your house will be burned down. -alternately, you can keep your house and try to -be friendly. maybe even contribute to the town. it's -up to you. burn down your storehouse or genuinely -connect with people?" - -definitely overly preachy but i like that - ------------------- -script!!!!!!!!!!!! ------------------- - -title screen -new game or load? -new game -> -hester with her back to cauldrron holding a little fairy doll in pieces -fairy shakes and then comes to life -hester: "ahhh, the synthesis wworked! ... i think" -hester: "a fairy like you should be a good help around the shop." -hester: "you might noot be able to speak but you can flash white for yes and red for not sure" -the whole time there's more and more bubbling in the cauldron -hester: "you can be my hands across the atelier!" -explosion! -soot-covered hester stands up -"what just happened." -"wait a second. who am i." -"alchemy books? a cauldron?" -outside view of shop, Atelier Hester on the sign -"Hester..." -back inside -"i must be an alchemist..." -loan shark arrives -"hester! you got the latest payment for me, girlie?" -"i'm afraid i don't knwo who i am - can you help me?" -"nice try. remember you owe me 4000Z by the end of the month. have a nice day!!!" -loan shark leaves -(SAVE POINT) -"am i... in debt?" -"i don't know hwo to do alchemy... but maybe these books..." -(player opens books) -"it looks like this one has recipes... this one has infoormation about ingredients... my head..." -(when quit uot of both books, old man comes in) -"hey, hester. can i get that purified water?" -"i don't knwo who i am" -"sorry, i can't hear so good these days - purified water? my usual order?" -(moves on when you've crafted purified water) -"thank you, hester. this will help me out. here's your payment." -(old man leaves) -"i guess i'll just try to... be an alchemist and pay off my debts..." -(SAVE POINT) - -at the beginning MC is unsure and doesn't know about -your suggestions - "i guess i can look that up?", -"maybe i'll try this?" because the player is guiding -them. towards the end MC responds as though teaching -the player fairy, like "that's right, that'll work!" -and "good job, yeah!" to communicate that the MC -is more confident and getting their mlemory of -alchemy back - -the town generally ddoesn't like the alchemisst just -because she's been kindda nasty and rude at times, -just petty disagreements that have boiled over. -she's known to be a decent alchemist though i guesss - -endgame is that you rally the town together to break -free of the loan shark; it's hard too convince -townsfolk both because they don't like you at first -and also because the loans ARE legitimate. but it -turnss out that the rest of the town also has debt -to the shark and if you convince everyone you can both -1. achieve independence from the supplies he sells -(maybe he's the intermediary with the trader? or buys -and ressells everything at a markup?) -2. convince people to just reject the loanss/debt; -quesstion here of whether they do this by force, -whether cops exist, idk, this is explicitly passtoral -fantasy. maybe at the end the player will muse about -whether it's good to have mob rule, "no one in toown -liked me, what if they threatened to burn down my -shop?" "yeah, that would suck. maybe we could build -something. but right now rule by mob is better than -rule by loan shark!" idk this feels overly didactic -but you get the idea - -this is really getting into the weeds of how we view -the justice system but maybe he threatens to say -"i'll send for the king's knights!" and the crowd is -like "you can do that if you want, but by the time -they get here your house will be burned down. -alternately, you can keep your house and try to -be friendly. maybe even contribute to the town. it's -up to you. burn down your storehouse or genuinely -connect with people?" - -definitely overly preachy but i like that :: art.lua ---[[pod_format="raw",created="2024-03-31 01:52:08",modified="2024-04-17 14:41:47",revision=674]] +--[[pod_format="raw",created="2024-03-31 01:52:08",modified="2024-04-23 02:42:09",revision=695]] 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 @@ -248,10 +70,13 @@ function wrap(str, line_length) end function collides(position, object) + if DEBUG then + rect(object.left, object.top, object.right, object.bottom, 8) + end 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-17 14:41:47",revision=671]] +--[[pod_format="raw",created="2024-04-03 19:46:51",modified="2024-04-23 02:36:18",revision=694]] Cabinet = {} function Cabinet:new(x, y, gaps) local c = { @@ -262,6 +87,7 @@ function Cabinet:new(x, y, gaps) hover_plant = nil, height = 4*(gaps+16) } + -- populate the big drawers local xoff = x for i=0,0 do @@ -426,7 +252,7 @@ function Conversation:after() --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]] +--[[pod_format="raw",created="2024-04-03 17:32:32",modified="2024-04-23 03:08:39",revision=432]] Fairy = { velocity = 1, accel_frames = 20, @@ -444,14 +270,14 @@ function Fairy:new(ff) end function Fairy:draw() - if flr(30*t()) % 2 == 0 then + if flr(10*t()) % 2 == 0 then spr(5, self.x-8, self.y-8, self.f) else spr(6, self.x-8, self.y-8, self.f) end end -function Fairy:move() +function Fairy:update() if self.velocity < self.max_velocity then self.velocity += (self.max_velocity - self.min_velocity) / self.accel_frames end @@ -467,6 +293,18 @@ function Fairy:move() if btn(1) then self.f = false end if btn(0) then self.f = true end + + if btnp(4) then + local glow = Glow:new(self.x, self.y) + glow.start_color = 7 + glow.end_color = 12 + add(animations, glow) + end + + if btnp(5) then + local glow = Glow:new(self.x, self.y) + add(animations, glow) + end end Glow = {} @@ -499,7 +337,7 @@ function Glow:update() end :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixtb2RpZmllZD0iMjAyNC0w -NC0xNyAxNDo0MTo0NyIscmV2aXNpb249MTE4N11dbHo0AOIcAAASZAAA8Rp7WzBdPXtibXA9cHh1 +NC0yMyAwMzoxOTo0NSIscmV2aXNpb249MTI2NF1dbHo0ANMdAAAZZwAA8Rp7WzBdPXtibXA9cHh1 AEMgEBAE8PAsZmxhZ3M9MCxwYW5feD0wLjM3NQwA_wJ5PS0wLjEyNSx6b29tPTV9LDoAkCR6cAoP HU8eCgcAcD8ODx4KYBoJAP8CDRpQCh8dPw4dClAKDx1fDg0IAAT-Aw8eClAKDl8ODgpQCn4KUJrw A4sAJqUGOrAKHxMKsAoeBADwAKAaHhqQCgMOEQqQCgMPEgcAPQ4dAQYArw4KkAo_CpBa8AV9ACYQ @@ -528,118 +366,125 @@ 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-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 -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= +Go5VAGyOCvAFqqDHAGQ1LjE1ODMBAATQAFcxNC44MBcAAdoAHjPaAMAAOvAMCh8TGvAIOi7VAPAi +HgAuOvAFCi4AThrwAiouJD4K8AIKFA4ADgQQHgAa4DoALgAEDxQzCvAACi4AHiQNPgoAUQAuEAMk +CgDgICQQFBAq8AAKHhQANCPEAKBeJBAa8AEKfhQeSgAhLkAIANIaYBQQSuAK7xgK4ArsBAChGswa +8AAKzArwAQUAfxqsGvACypDtADvwDl1K8AZaLxMK8AYKTgQeCvAGGh4TBBMq8AUKIA5DYgHwByAe +BD4a8AMKLhAELgAOCvADCkMkEwCxABAwzgBAAgoOQ88AsAIKDgMODxQuFA4AnQEwEB0Q1gDTBAog +DRAUEDrwAQrGCgUAIBqmLgAQpiYAEIZhABCGKQIfhsgBQD----NRADbwJ0BABPD-WiIfGPAmQl7w +IEKu8BtC-gHwFjL_AiIe8BBC-gFCXvAKQv4CMq7wBUL_AkL_APABIggA8D0G4P4BQn54vtDOMk6I +Xhi_wH5CTkjuGK7ATiJ_KD74Ab6w3pi_GA4YvqAeAp447kgeGM6QHgIHjggeGK44XgjugB4CB34Y +Lhh_KH4YDQDQDw8HbghOGE4ofij_AB0AYA1_CE4YHg8A8BoCgB4CHQduCF44bjj_A6AeDQcNbhhe +GC5Y-gIHHcAeHQduyP4DBz0XwBoA8gT_FActNx3ALh0H-g8HPTcNGhcOGABwDS1HHUousBkAkQgf +Dh1HLWoe0BkA8AgFbBctJw5KDvABHh0H-gA9XC0XTirwBBwA8AXOLTcsLRd_8AcuHX4HPVctJ37w +CxgAYD4HLQcbNw8AEA4PAEAHPQdbDQDxHRIeLSd7J37wFR4NR3t_8BguDScdW17wGz4HHRcrXvAf +LheO8CKu8CZu8CseqQQf5CcKCRYxqAQfNLUBHTBu8Am1ATHO8AO1ASEC4LQB8iIIwP4BQv4OsM4y +zri_kH5CfpheWL6ATiKeOG6oDhjOcO44HnheGC4Y3nAeAp54rig_tAEApwFRnihOKN4NAKMIXghu +GE44zhegtQGQbhgeKC5IzkegtQHwAwdeOF6I3negHgIdF46I-gKXsCEBsxf_EMfAHh0n-gunpwFC +F-4Ht6gBhif_AycfDmctqwFUJ943XBeuAUY3jmdsrQFGN06nfK4BKPcBrQEWx60BF4esARlHqwEv +Fy2rAV7wJtlvG-AZ-gjwEv4O8A3_FPAI-hjwBv4Mem7wBO7a-gDwA35q-g7wAv4f8AD_IeAOCv4H +ev4ACADxIABqXgr_AtAOCv4BGn4a-gPQCv4EGk4K-gbACv4GGh4K-giwCv4IGv4JsAoOCv4hBgD2 +CiKgHgr_EXqOoA4K-gPq-gGgDgquev4QoA4jACAgwAYAQBoHHgdlAPAHDvcC4AoOCk73A-8PB9AK +Dgoe-Qb3BhMAcA73Bv0I0BoQABAH5wUg9x0GAPEK-R7gCi73Gx7wAF6H-gHXLuD_IfAA-gKA-poE +T----30pASbwLxc-G-ApfvAj3vAe-gPwGP4AKl7wEv4BOo7wDv4BOt7wCu5K-gPwB846-gnwBZ46 +-g3wBW4q-gAq7vAD-gVaJwFh8AH_AjpuCQDwAw4KziqeCv4D8AAOCu46Xgr_BAoAgf4DOh4K-gXg +OAHQBuAK-hYqftAK-hFKrvsAUf4LOv4BHgHwBQZK-gXAHgr_AUr_CdAOCt46-gg3QABhrir_Bqfg +TQFRDPcB8AAsACD3CC8Br-4A9w7gDgqu9xVQAXEjYBBAABv1PwAnLTQMCTQxLjSREB8zPwB4DucG +Dz0ACh81uwAsDz8A-3UPbxsaDzoA---------wf9YmBgBP8eD-8VEv8eI-8VKP8eEf8VNv8eBv8V +Pt8e-xVGfx7-FUo-Hv8VDPAY-goPHv4B8DD_BQU_8Dw_BZ4VDvBADhWedfA2da71BPAc9QTO9UL_ +APU_-gT1Ov4L9TD_HPUY-god-k4d-k4t-kxN-kpdAwBPTf5MPQMABBEtOQAFAwAhDf4pCCQ1DREA +BVkABTIAAmIAQW3_SH0DAP9Yjf5Gnf5Grf5Ezf5C3f5C7f5A-QH_Pv0C-j79A-48-QX_Ov0H-jj9 +Cf42-Qv_NP0N-jL9D-4w-RH_Lv0T-iz9Ff4q-Rj_Jv0b-iT9Hv4g-SH_Hv0k-hr9Kf4U-S7_EP00 +-gj9Pd79GXoBIw75CA8-AP9VDi4DD3kAHP8LcP8SGPAc-jDwCv488AL_QPAF-jbwF-4c8GlWAC-- +Be4-Hf4d8Ar_BT3_Ez2_8AL_Lj3eYAAz8AYSDx0AHgAO4F8e8DP-EgZ-Hp8SAA4CAP8d8BZNDx5t +Di0OHQ7NDlwO-QbwCo1MfQ79Al6tDh0eHQ6d8AL9QPAF-TbwF-2EACrxD6cPHvBPDiAO8EcOIA4Q +DvBJDnAO8Cg_8BIO8CheIP8A-xYtXv0n8AqdPq1ufXL9DPAC-QEy-QVyXVL9AvAF-SJyvfAX-RZS +hAApESaEAPA1EA7wTw7wSA4QDxIgDvBIHg1wDvBDDUAdIA4ADcBN8DQeHQANII0u-QwQTfAVTQAO +zU79F-AKnQ4NHj0SXU6Nkm0S-QGdAP8KIv0Ekk1y-QHwBZ0S-RUSHgIuEq3wF-0VYqMAKfAK-1gv +HvARFvApTvBDDxJQHgc_TfA9bW79Co0A8RotMh0SjU5NQi1CbR698Ap9wl0uTTIN0h0eAg1CrfAC +zYJdQm2STSIeIpUAjyL9B0Itcj4ilQAu8EhzHx5wHvBGDvAUJvAdLvAdJvAfDvADDvBMPvAJFvAi +HlAu8EYeMC8SDg2QHvADFvAiDVAOLQ4NDk3wPc0OHSJNYl0_AE3wFaINIo0Osg1iLV4ibSAi8AS- +APMREi0O8gJegh1C8AKNsi49cg0ukk0CXlK98AWdMl0CvXLAAH89Mk1SHYJtxQApoZom8E0m8K4W +8EYFAvFLQBbwKjIPEvAJDvApDQDSLQBSMCIOMELQMvATfaJNYh0OAh0yAB0ugCLwABJQsg4iLdIe +Ig3yAy49EELwAfIBTkI-EyItEj5SPvIJ8AKN8gs8Yjw9cg4yHVI9uwD-AhKtci0iPgIOUj0eTfAX +PfIKvAAq8Ej6LxbwTS7wrQYF8CIGgAZgPx4wBvANMvAbQkBdYDKABQaQQsAS8AQPEgDSHF3yA7BS +wDLwAC0M8gBdcgwSHHIMMjBC8ABSEKItEgziPRIMTxMtUityDGLJAP8eTUI7EiviPfII8AEMIgwS +HOI7clsiWz2yW2LwBTzyFwzyARwyLPAXEhzyChyywwAo8xMaTx6QHvC7LgAvFvAhXqAO8AMuMC3w +Nh4QDvBEHoAOAE6w3QD0BzAeAA4QDjAGXvAHMsAy0F5QQmAOAB7mAPEPQrB_oi4CDjIOQn5SsFLA +sjAeB14CXvIDDgduYg8S6ADA4o4MYj8ToiuOEmsy5AAg4m7jAPESYisifvIG8AFyG1JOIltSWyI7 +XoKLYvAFUjvyAnvyAgtS5wAf8uMEKfE5OAUwBfBLNfBLRfB7Px7wHhXwGq4wBvAKBvAIHxOQTaAu +F25gBuBeoBWgLQINsDKALgeeIELAjjA_wELAQnAeB66CLgIOIl4H2gDggi0A-gPiHgeeAg0yPhLY +APAdws5SPRJtAt4CbTINYvABEi1yrm0SLWItAp5STaLwAXIdMn4CbVJdIj1ego3ZAP4BPQ7yAd2y +DUKd8BdyTfIETToFDzIHGA86AP------------8kAY4d-wAeFzbwCgcwBvALBhAG8AwFAA-wFwsG +MAbwCBZQFvAFBx8ccAbwAwcvGi8cED4G8AEHbxoeTQbwAAfdBQBzHQutBvAABgcA-wgtC50G8AEG +vQbwAwadBvAFFl0W8AhWwBIVJQK8Id-2MPAPBv8aMAbwDgb_BgD-LlEwnxjwAAkAUw0GUAYNDAAS +nQgAEGD8ARkDCgASthAAE5AYAE_gBvACCAAII2ZAEAA-UAYwCgAdUFbwA-Yw8gEfYy8CFB8yXQMn +DzoA-----------------9nwI2CABPD-JL8U8ED_AvA8-gbwOT8V-gTwNz3_BfA1Tf4H8DNN-gjw +Mk3_CvAwTf4L8C9dBQD4AE3_DPAuXf4N8C1N-g3wLgUAMwzwLwUAMQsPDwcAEDwmAPAMCTzwLBxN +-gg88C4cPf4HLA8X8DFN-gULHAsMCQDwrAQMCwwLDPAzTb4tLg8ZHAsc8DNdjj0uGjzwNV1ObR4q +PPA2-QFKPPA3zXos8DkKTdoc8Dv6AwzwO5oMivA7amx68DpafHrwOVofHAxpavA4WqlaOfA0WslK +OfA0SgDpKknwMyogmS8QKQpZ8DQKSEn4BPAw_BHwLmgPCvgM8CtoFygn_AfwKfgDNzgXqPAoJ-gM +B7jwIgf4EieI8CH4FgeI8CD4GAd48CD4GSc48B-4IfAf_CLwHfggBxgGAPEHFxjwHPghByjwG-gl +8Bv4JvAaKAn4IgYA8CMOCfgE8BoYCfgOGSgJ_ADwGRgJ_A8ZGAmYB1jwGAgZ_BAJKAmIB1jwGQn4 +ERkoCRgJWBkAVAn4Eik4CwDxAhQZGBlYF1jwFwn4FRkIGWgHCwCBGBno8BYJ_Bk_AGQUGfgVGRgL +AFAUCTgZ6AkAEBpyAIITGfgaGYgXOAkARvgA8BIIABEbiACBEQn4HAmoB0gJACQZmAkAsPgB8BAZ +_BspqAc4CQCmHBm4BzjwDwn4HQkAocgHGPAQCfgcKdhOACApyGUAMBOpuH0A8AEPSXgZqPAVGfgO +GbgZiPAXQgDyAQggGPAaKfgbGQjwHyn4HAkHABAZBgDwJBo5DwzwHin4GFkG8B8Z_BdpLfAdGfgU +aQYJTfAcGfgReQZt8B4J_A6ZbRXwHhn4CpmNJQgAUAapFm1VCQDyQgK5Fn2F8B4ZyMkGjcXwHgmY +uc3V8B8JWKnd9QLwH8kGzfUFAAXwHpkVjfUN8B5prfUPAAXwHQ0ZvfUV8Bvd9RjwGY0FDfUc8Bkt +9STwGT0FDQIAovUc8Bgt9SbwFy0QAEMFDfUdEgAGJACkHvAVPfUo8BQtFRIAhiDwFC31KvASJACF +IvASLfUs8BASAAEUAIUQLfUsAAXwD14AABYAmQ8G8A899SoAFRgAA1gAiw8t9S0ABfAM7wNuLTI5 +LjEwHTlIMzguNzQ5D5ZDAAEEBPEt---DbxTwRe7wPD8Vfile8Dhdjile8Dc9DkluCW7wNj0OWe7w +NT0OaW4KbvA0HT5p7vA0DU5Z-gDwNG5JBgDwhClurxnwNN7c8DQZjvwB8DQZbvwDEB8P8DAZXvwD +EBvwMRle-AILACvwMW6c2-Axbozb8DJejJsfHyvwMl58iyg78DJebEsIGygnG-AzXlwrOEsfDgcL +8DReLB8XGyhLCBsfDivwMx57HxcYCxcPDisYW-AzDpsPFwsnHw47GEvwMx5LHxdLFx8OSwhL8DM_ +Ky8XuxYA8CcNTgwLFrsIW-AzPR4s6xgr8DM9DhwALKsoO-AzLQ5siyhLHxzwNYxrGFsGDxAfHPA0 +jADLBi8KAPJJMqyrFgU-EBXwMQwAfKsGG0Ql8DCc20QVFPAvrMtEJZTwJ4xFixUkRaTwJIwFNBV7 +JQQF9AHwInwVRCV7JfQBFfAgfAWEBWsl9AMF8CBsBZQFaxr0BfAgXAoA8UEG8B9cBZQVawoF9Abw +HkwABZQVWw8MCgX0B-AeLAAldAUEFTsTGvQH8CEVBBVkBRQFSgUapAW08B8VChQlRAUUGlQKpAXE +8BwVAwpEJSQFpA4A8AYaFQQKdCUEBbQKlAXU8BgVxCXECoQKAFAFAwrEFQwA8Ark8BYFAwr0FwX0 +APAVBQr0GBX0APATFfQaCABgEgX0EgqECgDzABEF9BMKdAAF9ALwDwX0FAsAcA4F9BUKZBALABAN +CwARdAsAQQwF9BYhADQD8AsLAKEE8AoF9B8AFfQDCQAQEB0AMgr0IAgAUNQV9BAQGwDyAQgF5AX0 +CApkIBX0AvAI9AANADIl9AENAIUJCkQQFRQl5A4AQQAVRAUOAGAV9AgKRAA6ATAI9AEbAB80DQAC +wRX0DQAF9AXwCPQDBQsAMwTwCQsAUAQq1PALDACADCAaBBq08AwMAMAICiQQCjQalPAN9AJjAKAk +AApUCoTwDvQCVwAADgBAGmTwDw4AkgoKJBVUClTwEA0AYTQFVBo0BQ4A8QQEdfQBCjQFZAokBfAR +5FVkBfQADwCBFAXwEvQNBeQNAHAEBfATBfQMHACzJAVkCgXwFAX0CxUOAMHwFQX0DBrkCiQFClQN +AHALOvQCevAXaQBgFFpE6-AYCgBSZBoU6xYLAIB0CgTbBivwGaUAVIQK6xYbFwBBywYrBg0AUQkK +dArbDQASFyUAAA0AMQvwGAwAhGs-BTsGGwYLKQAxS2IrDwABUABEVBorgg8AUdS1WuIbDABiGgVk +dfIOGADyEhtlbfIOOwYLAhvwGo0CDfISKwYLQvAZLfIcC2LwGT0CDQIAEPJIBVLyJfAYLRAAgAIN +8h7wFy3ySAUCEAABEgAwFT3ySAUUEhIAAEgFEPJIBQIQADACDfJIBRDySAUnAg0UAGUQLfIu8A9c +AJ8CDfIk8A498i4oBSwPoAknD4gK-yAg-xTEGvEBfPQ--gEE-xU9BP4BBP08DgcAIDseBwBBLfQ3 +LggATwT_NQQKAP80BFIBIfQ4YgExHfQ6cQFyDfQ9-gH0P70wMf--6JQBH-2TAf92H1z2GyID5gny +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 :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixzdG9yZWQ9IjIwMjQtMDMt MjkgMDE6MTQ6NTEiXV1sejQABAAAAAMAAAAwbmls :: library.lua ---[[pod_format="raw",created="2024-04-10 00:24:20",modified="2024-04-17 14:41:47",revision=104]] +--[[pod_format="raw",created="2024-04-10 00:24:20",modified="2024-04-23 03:19:45",revision=180]] 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"}}, } +ingredient_descriptions = { +["reagent green"]={{"blah blah reagent green blah blah"}} +} function get_conversation(plant) local id = plant[1] return plant_descriptions[id] or plant_descriptions[-1] @@ -657,7 +502,7 @@ book_pages = { } :: main.lua ---[[pod_format="raw",created="2024-04-02 02:59:37",modified="2024-04-17 14:41:47",revision=1056]] +--[[pod_format="raw",created="2024-04-02 02:59:37",modified="2024-04-23 03:19:45",revision=1131]] -- this is atelier hester! -- except for the one line in _init that does change_screen(shop_screen) @@ -751,7 +596,7 @@ CADSeT0wLHRpbGVfaD0xNgoAEHcKAIB6b29tPTF9fQ== b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixzdG9yZWQ9IjIwMjQtMDMt MjkgMDE6MTQ6NTEiXV1sejQABAAAAAMAAAAwbmls :: s_book.lua ---[[pod_format="raw",created="2024-04-14 02:34:41",modified="2024-04-17 14:41:47",revision=92]] +--[[pod_format="raw",created="2024-04-14 02:34:41",modified="2024-04-23 02:42:38",revision=126]] BookScene = { extension = 0, behind = nil, @@ -792,12 +637,12 @@ end function BookScene:draw() self.behind:draw(true) - - 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) + + if self.fairy ~= nil then self.fairy:draw() end end :: s_conversation.lua --[[pod_format="raw",created="2024-04-05 14:55:45",modified="2024-04-14 02:34:19",revision=129]] @@ -846,19 +691,37 @@ 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 20:06:16",revision=296]] +--[[pod_format="raw",created="2024-04-05 00:59:36",modified="2024-04-23 03:19:45",revision=358]] DrawerScene = { extension = 0, behind = nil, inset = 60, + contents = { + title = "reagent green", + small_graphic = 128, + large_graphic = 129, + + }, + fairy = nil, + interior_collider = {}, + contents_collider = {} } function DrawerScene:new(drawer) c = {extension=0, behind=nil, inset=60} if drawer.size > 16 then c.inset=30 end + setmetatable(c, self) self.__index = self + c.interior_collider = {left=c.inset, top=0, right=240-c.inset, bottom=c.extension} + c.contents_collider = { + left=120-96/2, + top=10, + right=120+96/2, + bottom=10+96, + } + return c end @@ -870,20 +733,42 @@ function DrawerScene:before() end, 0.5) }) self.before = function() end + self.fairy = self.behind.fairy end function DrawerScene:update() - if btnp(5) then play_script({ - Script.len(function(s) - self.extension = 115*(1-easeAccelerate(s.timer/s.length)) - end, 0.5), - Script.once(function(s) change_scene(self.behind) end) - }) end + self.interior_collider.bottom = self.extension + + + if (btnp(5) or btnp(4)) and not collides(self.fairy, self.interior_collider) then + play_script({ + Script.len(function(s) + self.extension = 115*(1-easeAccelerate(s.timer/s.length)) + end, 0.5), + Script.once(function(s) change_scene(self.behind) end) + }) + end + + if collides(self.fairy, self.contents_collider) then + if btnp(4) then + add(self.behind.tray, {self.contents.small_graphic}) + end + if btnp(5) then + change_scene(Conversation:new(ingredient_descriptions[self.contents.title])) + end + end + + self.fairy:update() end function DrawerScene:draw() self.behind:draw() draw_drawer(self.extension, self.inset) + + spr(self.contents.large_graphic, + self.contents_collider.left, + self.extension - 115 + self.contents_collider.top) + self.fairy:draw() end function draw_drawer(distance, inset) @@ -905,7 +790,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-17 14:41:47",revision=279]] +--[[pod_format="raw",created="2024-04-05 14:55:27",modified="2024-04-23 03:19:45",revision=394]] -- this manages the main shop interface, where you look at the cupboard and plantss -- and sstuff. include("art.lua") @@ -925,7 +810,21 @@ door_open = 0 book_1 = {left=10, right=74, top=100, bottom=164} book_2 = {left=70, right=134, top=100, bottom=164} -shop_screen = {} +shop_screen = { + fairy = Fairy:new(), + tray = {}, -- list of selected ingredients, up to 3? + tray_slots = {} +} + +for i=1,3 do + shop_screen.tray_slots[i] = { + left=108+i*32, + right=108+i*32+32, + top=135-4-32, + bottom=135-4 + } +end + function shop_screen:draw(hide_fairy) cls() @@ -936,27 +835,38 @@ function shop_screen:draw(hide_fairy) palt(30, true) palt(0, false) - spr(16, 240-100, 135-49) + spr(64, 240-100, 135-49) palt(30, false) palt(0, true) - spr(21+flr(2*t()%11), 240-100, 135-52) + spr(72+flr(2*t()%11), 240-100, 135-52) -- countertop! draw_counter(20) - if collides(fairy, book_1) then spr(18, book_1.left, book_1.top) + if collides(self.fairy, book_1) then spr(18, book_1.left, book_1.top) else spr(17, book_1.left, book_1.top) end - if collides(fairy, book_2) then spr(20, book_2.left, book_2.top) + if collides(self.fairy, book_2) then spr(20, book_2.left, book_2.top) else spr(19, book_2.left, book_2.top) end + + for idx, box in ipairs(self.tray_slots) do + local ingredient = self.tray[idx] + if ingredient ~= nil then + spr(ingredient[1], box.left, box.top) + end + end if customer_visible then bob(customer_sprite, 240-96, 7, 96, 128, customer_bob) end - if not hides_fairy then fairy:draw() end + if not hides_fairy then self.fairy:draw() end draw_door(door_open) + + for idx, box in ipairs(self.tray_slots) do + if collides(self.fairy, box) then end + end end function draw_counter(height) @@ -969,26 +879,31 @@ function draw_counter(height) end function shop_screen:update() - fairy:move() - cabinet:update(fairy.x, fairy.y) + self.fairy:update() + cabinet:update(self.fairy.x, self.fairy.y) if btnp(4) then - local glow = Glow:new(fairy.x, fairy.y) - glow.start_color = 7 - glow.end_color = 12 - add(animations, glow) - - local drawer = cabinet:drawer_at(fairy.x, fairy.y) + local drawer = cabinet:drawer_at(self.fairy.x, self.fairy.y) if drawer then change_scene(DrawerScene:new(drawer)) 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 + if collides(self.fairy, book_1) then change_scene(BookScene:new(007, book_pages[1])) end + if collides(self.fairy, book_2) then change_scene(BookScene:new(012, book_pages[2])) end + + if cabinet.hover_plant ~= nil and #self.tray < #self.tray_slots then + add(self.tray, cabinet.hover_plant) + end end if btnp(5) then - add(animations, Glow:new(fairy.x, fairy.y)) + add(animations, Glow:new(self.fairy.x, self.fairy.y)) if cabinet.hover_plant ~= nil then change_scene(Conversation:new(get_conversation(cabinet.hover_plant))) end + + for idx, box in ipairs(self.tray_slots) do + if collides(self.fairy, box) then + deli(self.tray, idx) + end + end end end @@ -1153,7 +1068,7 @@ v-gPQAANQP--sPBwCgD--2Qf-wEAl1D-----Hw== b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixzdG9yZWQ9IjIwMjQtMDMt MjkgMDE6MTQ6NTEiXV1sejQABAAAAAMAAAAwbmls :: shop.lua ---[[pod_format="raw",created="2024-03-29 01:14:51",modified="2024-04-05 14:54:05",revision=1117]] +--[[pod_format="raw",created="2024-04-23 01:22:37",modified="2024-04-23 01:22:37",revision=0]] -- this manages the main shop interface, where you look at the cupboard and plantss -- and sstuff. include("art.lua") @@ -1178,7 +1093,7 @@ function shop_screen.draw() -- alchemist! bob(alchemist_sprite, 0, 7, 96, 128, alchemist_bob) - fairy:draw() + spr(64, 240-96, 135-96) -- countertop! draw_counter(14) @@ -1188,6 +1103,8 @@ function shop_screen.draw() end draw_door(door_open) + + fairy:draw() end function draw_counter(height) @@ -1220,4 +1137,189 @@ function draw_door(open) 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 + +welcome to atelier phoebe 2! this is my document for +recording story ideas! please don't read this; it is +all the spoilers! if you want to know what happens +i recommend playing the game, that is the proper +way to experience this :) + +-------------- + +main gameplay interface, you're shown a gridd of +cubbiess which contain various ingredients + +you look at the things in the cubbies and label them? +labeling could be hard with just o/x +you have twwo books, one of recipes and one of +ingredients? +drag a label from the book to the drawer/plant? + +-------------- +plot ddetails follow!!! + +main character amnesia from alchemy gone wrong. +main character badly in debt to loan shark +everyone in town has some debt and don't talk about it +most people don't like main character +mc has to mend relationships with everyone in order +to gather everyone together to defeat loan shark +player controls a fairy assistant for alchemy +possibly fairy is new to the atelier? +early dialog esstablishes it's common knowledge that +fairies can blink white (o) to confirm things or +red (x) to be uncertain / ask a question + +maybe other colors at other timess but you get it, +those are our two verbs - ask about something and +suggest something + +interface is an apothecary cabinet you can open +the drawerss of and ask about. you have to suggest +ingredients to mix together for the cauldron + +at the beginning MC is unsure and doesn't know about +your suggestions - "i guess i can look that up?", +"maybe i'll try this?" because the player is guiding +them. towards the end MC responds as though teaching +the player fairy, like "that's right, that'll work!" +and "good job, yeah!" to communicate that the MC +is more confident and getting their mlemory of +alchemy back + +the town generally ddoesn't like the alchemisst just +because she's been kindda nasty and rude at times, +just petty disagreements that have boiled over. +she's known to be a decent alchemist though i guesss + +endgame is that you rally the town together to break +free of the loan shark; it's hard too convince +townsfolk both because they don't like you at first +and also because the loans ARE legitimate. but it +turnss out that the rest of the town also has debt +to the shark and if you convince everyone you can both +1. achieve independence from the supplies he sells +(maybe he's the intermediary with the trader? or buys +and ressells everything at a markup?) +2. convince people to just reject the loanss/debt; +quesstion here of whether they do this by force, +whether cops exist, idk, this is explicitly passtoral +fantasy. maybe at the end the player will muse about +whether it's good to have mob rule, "no one in toown +liked me, what if they threatened to burn down my +shop?" "yeah, that would suck. maybe we could build +something. but right now rule by mob is better than +rule by loan shark!" idk this feels overly didactic +but you get the idea + +this is really getting into the weeds of how we view +the justice system but maybe he threatens to say +"i'll send for the king's knights!" and the crowd is +like "you can do that if you want, but by the time +they get here your house will be burned down. +alternately, you can keep your house and try to +be friendly. maybe even contribute to the town. it's +up to you. burn down your storehouse or genuinely +connect with people?" + +definitely overly preachy but i like that + +------------------ +script!!!!!!!!!!!! +------------------ + +title screen +new game or load? +new game -> +hester with her back to cauldrron holding a little fairy doll in pieces +fairy shakes and then comes to life +hester: "ahhh, the synthesis wworked! ... i think" +hester: "a fairy like you should be a good help around the shop." +hester: "you might noot be able to speak but you can flash white for yes and red for not sure" +the whole time there's more and more bubbling in the cauldron +hester: "you can be my hands across the atelier!" +explosion! +soot-covered hester stands up +"what just happened." +"wait a second. who am i." +"alchemy books? a cauldron?" +outside view of shop, Atelier Hester on the sign +"Hester..." +back inside +"i must be an alchemist..." +loan shark arrives +"hester! you got the latest payment for me, girlie?" +"i'm afraid i don't knwo who i am - can you help me?" +"nice try. remember you owe me 4000Z by the end of the month. have a nice day!!!" +loan shark leaves +(SAVE POINT) +"am i... in debt?" +"i don't know hwo to do alchemy... but maybe these books..." +(player opens books) +"it looks like this one has recipes... this one has infoormation about ingredients... my head..." +(when quit uot of both books, old man comes in) +"hey, hester. can i get that purified water?" +"i don't knwo who i am" +"sorry, i can't hear so good these days - purified water? my usual order?" +(moves on when you've crafted purified water) +"thank you, hester. this will help me out. here's your payment." +(old man leaves) +"i guess i'll just try to... be an alchemist and pay off my debts..." +(SAVE POINT) + +at the beginning MC is unsure and doesn't know about +your suggestions - "i guess i can look that up?", +"maybe i'll try this?" because the player is guiding +them. towards the end MC responds as though teaching +the player fairy, like "that's right, that'll work!" +and "good job, yeah!" to communicate that the MC +is more confident and getting their mlemory of +alchemy back + +the town generally ddoesn't like the alchemisst just +because she's been kindda nasty and rude at times, +just petty disagreements that have boiled over. +she's known to be a decent alchemist though i guesss + +endgame is that you rally the town together to break +free of the loan shark; it's hard too convince +townsfolk both because they don't like you at first +and also because the loans ARE legitimate. but it +turnss out that the rest of the town also has debt +to the shark and if you convince everyone you can both +1. achieve independence from the supplies he sells +(maybe he's the intermediary with the trader? or buys +and ressells everything at a markup?) +2. convince people to just reject the loanss/debt; +quesstion here of whether they do this by force, +whether cops exist, idk, this is explicitly passtoral +fantasy. maybe at the end the player will muse about +whether it's good to have mob rule, "no one in toown +liked me, what if they threatened to burn down my +shop?" "yeah, that would suck. maybe we could build +something. but right now rule by mob is better than +rule by loan shark!" idk this feels overly didactic +but you get the idea + +this is really getting into the weeds of how we view +the justice system but maybe he threatens to say +"i'll send for the king's knights!" and the crowd is +like "you can do that if you want, but by the time +they get here your house will be burned down. +alternately, you can keep your house and try to +be friendly. maybe even contribute to the town. it's +up to you. burn down your storehouse or genuinely +connect with people?" + +definitely overly preachy but i like that +:: .info.pod +b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTIzIDAxOjEzOjI4IixydW50aW1lPTUsc3RvcmVk +PSIyMDI0LTA0LTIzIDAzOjE5OjQ1Iix3b3Jrc3BhY2VzPXt7bG9jYXRpb249Im1haW4ubHVhIzUy +Iix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0aW9uPSJsaWJyYXJ5Lmx1YSM2Iix3b3Jrc3BhY2Vf +aW5kZXg9MX0se2xvY2F0aW9uPSJzX3Nob3AubHVhIzMwIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xv +Y2F0aW9uPSJzX2RyYXdlci5sdWEjNjQiLHdvcmtzcGFjZV9pbmRleD0xfSx7bG9jYXRpb249Imdm +eC8wLmdmeCIsd29ya3NwYWNlX2luZGV4PTJ9fV1dbHo0AAQAAAADAAAAMG5pbA== :: [eoc]