{(set: $bib to
(a:
(dm:
"citation","General citation, where we found information from our lived experiences or histories with libraries.",
"quote","We read about this across all our media, and from experiences in libraries.",
"unlockText","This is always unlocked.",
"effectText","This has no effect on gameplay.",
"unlocked",true
),
(dm:
"citation","",
"quote","",
"unlockText","Gain this Item during a General Event",
"effectText","",
"unlocked",false
),
(dm:
"citation","Don't mind our pixel dust...",
"quote","Don't mind our pixel dust...",
"unlockText","Gain this Item during a General Event",
"effectText","This item does not impact gameplay.",
"unlocked",false
),
(dm:
"citation","Brown, Ron T., and Tamara Kasper. “The Fusion of Literacy and Games: A Case Study in Assessing the Goals of a Library Video Game Program.” Library Trends, vol. 61, no. 4, Spring 2013, pp. 755–78. ProQuest, (link-repeat:\"https://doi.org/10.1353/lib.2013.0012.\")[(open-url:\"https://doi.org/10.1353/lib.2013.0012.\")]",
"quote","“During the course of the observation, several game club members revealed they owned the games at home, but they preferred coming to the library because the library provided an opportunity to play games together as opposed to in isolation.” (Brown and Kasper 768)",
"unlockText","Gain this Item during a General Event",
"effectText","This item unlocks videogame collections as a collection option",
"unlocked",false
),
(dm:
"citation","Wyatt, Danielle, and Dale Leorke. “Playing in the ‘Third Place’: How Games and Play Are Transforming Public Libraries - University of Washington.” Space and Culture, vol. 27, no. 2, 2024, pp. 254–73.",
"quote","“Even so, our fieldwork and other literature also reveal how legitimizing play in libraries sits uneasily with prevailing views of the institution as a cathedral of knowledge and learning.” (Wyatt and Leorke 255)",
"unlockText","Gain this Item during a General Event",
"effectText","This item unlocks videogame collections as a collection option",
"unlocked",false
),
(dm:
"citation","Bishoff, Carolyn, et al. “Outreach, Collaboration, Collegiality: Evolving Approaches to Library Video Game Services.” Journal of Library Innovation, vol. 6, no. 1, Jan. 2015, pp. 92–109.",
"quote","“Libraries are in a unique position to give students, staff, and faculty the opportunity to experiment and learn with emerging gaming technologies.” (Bishoff et al. 102)",
"unlockText","Gain this Item during a General Event",
"effectText","This item unlocks videogame collections as a collection option",
"unlocked",false
),
(dm:
"citation","Cho, Hyerim. “Individuals Responsible for Video Games: An Exploration of Cataloging Practice, User Need and Authorship Theory.” Journal of Documentation, vol. 78, no. 6, 2022, pp. 1420–36, (link-repeat:\"https://doi.org/info:doi/10.1108/JD-10-2021-0198.\")[(open-url:\"https://doi.org/info:doi/10.1108/JD-10-2021-0198.\")]",
"quote","“Catalog records for video games are often minimal, limiting their usefulness in search and retrieval.” (Cho 1424)",
"unlockText","Gain this Item during a General Event",
"effectText","This item unlocks videogame collections as a collection option",
"unlocked",false
),
(dm:
"citation","Tanaka, Candie. “Indigenous Video Games in Libraries.” Pathfinder: A Canadian Journal for Information Science Students and Early Career Professionals, vol. 3, no. 1, 1, May 2022, pp. 14–29. pathfinderjournal.ca, (link-repeat:\"https://doi.org/10.29173/pathfinder57.\")[(open-url:\"https://doi.org/10.29173/pathfinder57.\")]",
"quote","“One of the main challenges around accessibility to Indigenous video games is that many of the games that indie gaming studios produce are only available for digital download, rather than a physical format. There are other barriers around general awareness too, because Indigenous video games are often only reviewed in depth by other Indigenous Peoples.” (Tanaka 23)",
"unlockText","Gain this Item during a General Event",
"effectText","This item unlocks videogame collections as a collection option",
"unlocked",false
),
(dm:
"citation","Ip, Andrew C. H. “Check It Out: Video Game Collection at the University of Alberta Library.” Journal of Electronic Resources Librarianship, vol. 36, no. 2, 2024, pp. 142–47.",
"quote","“On the contrary, a total of 19 items—over 15% of the collection—have not been checked out at all, spanning across all consoles in the collection except for the Switch.” (Ip 143)",
"unlockText","Gain this Item during a General Event",
"effectText","This item unlocks videogame collections as a collection option",
"unlocked",false
),
(dm:
"citation","Harris, Colleen S. “Terms of Service, Cramped Budgets, and Good Library Citizenship: The Netflix Dilemma.” Bottom Line: Managing Library Finances, vol. 23, no. 4, Nov. 2010, pp. 212–14. EBSCOhost, (link-repeat:\"https://doi.org/10.1108/08880451011104045.\")[(open-url:\"https://doi.org/10.1108/08880451011104045.\")]",
"quote","“Other librarians are restricted from using Netflix as a collection supplement tool by cautious university legal departments more wary of bending terms of service agreements.” (Harris 213) “While being frugal is essential to library survival in the current economic climate, choosing cost-effectiveness over strictly following our licenses and terms of use may well lead librarians to talk themselves out of their legitimate place at the table for copyright, licensing, and other resource discussion.” (Harris 213)",
"unlockText","Gain this Item during a General Event",
"effectText","This item unlocks videogame collections as a collection option",
"unlocked",false
),
(dm:
"citation","Farrelly, Deg. “Digital Video: Merrily, Merrily, Merrily, Merrily Wading into the Stream.” Computers in Libraries, vol. 36, no. 9, Nov. 2016, pp. 4–8.
Wahl, Mary. “Full Stream Ahead: Designing a Collection Development Workflow for Streaming Video Content.” Library Resources & Technical Services, vol. 61, no. 4, Oct. 2017, pp. 226–36. EBSCOhost, (link-repeat:\"https://doi.org/10.5860/lrts.61n4.226.\")[(open-url:\"https://doi.org/10.5860/lrts.61n4.226.\")]",
"quote","“Surprisingly, despite the availability of MARC records, many libraries do not catalog some of their streaming videos; 15% do not catalog any (farrelly and Hutchison Surdi 2016)” (Farrelly 8).
“Many distributors offer to provide MARC records for libraries, however, many others do not, and the level of quality varies greatly among vendor-provided MARC records. Libraries find themselves deciding between performing quality control of records, or perhaps not uploading records and finding other ways to provide title-level browsing and searching” (Wahl 228). ",
"unlockText","Gain this Item during a General Event",
"effectText","This item unlocks videogame collections as a collection option",
"unlocked",false
),
(dm:
"citation","Ordu, Patrick C., et al. “Technological Methods and Promotion of Open Educational Resources in Rivers State Owned Libraries.” Library Philosophy and Practice, June 2024, pp. 1–13.",
"quote","“Library websites serve as central repositories for curated OER collections, providing educators and learners with a user-friendly interface for discovering and accessing high-quality educational materials.” (Ordu et al. 6)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Boyle, Christina. “Play Time: Why Video Games Are Essential to Urban Academic Libraries.” Urban Library Journal, vol. 24, no. 1, Jan. 2018, pp. 1–11.",
"quote","“It is not simply enough to create a space and hope that students will utilize it.” (Boyle 4)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Robson, Diane, and Patrick Durkee. “New Directions for Academic Video Game Collections: Strategies for Acquiring, Supporting, and Managing Online Materials.” Journal of Academic Librarianship, vol. 38, no. 2, Mar. 2012, pp. 79–84. EBSCOhost, (link-repeat:\"https://doi.org/10.1016/j.acalib.2012.01.003.\")[(open-url:\"https://doi.org/10.1016/j.acalib.2012.01.003.\")]",
"quote","“Today, many of the most innovative games, in both commercial and non-commercial genres, are available only for PC or handheld play. Clearly, building a gaming collection based on online access and made available through PC and handheld devices requires a new model of what constitutes a gaming collection in an academic setting.” (Robson and Durkee 14)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Post, Colin. “A Colossal Catalog Adventure: Representing Indie Video Games and Game Creators in Library Catalogs.” Cataloging & Classification Quarterly, vol. 61, no. 7–8, 2023, pp. 792–814, (link-repeat:\"https://doi.org/info:doi/10.1080/01639374.2023.2280207.\")[(open-url:\"https://doi.org/info:doi/10.1080/01639374.2023.2280207.\")]",
"quote","“Digital distribution channels are quickly supplanting releases of games on physical media while also facilitating a dramatic increase in independent-made games that incorporate novel subject matter and styles of gameplay.” (Post 792)
“As indie narrative games—and video games more generally—become increasingly important fixtures of library collections, bibliographic records can integrate these games and their creators into the rich web of relationships that make library catalogs such powerful tools for discovering books, films, music, and other types of bibliographic resources.” (Post 805).",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Observation number 3: Questionnaire, Question 7, Response 15",
"quote","“Seattle Public Library host monthly movie events on-site using films with public performance rights (PPR) available through Kanopy.” (Observation number 3)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Rodgers, Andrea. “Once upon a Time in Streaming Video.” College & Research Libraries News, vol. 80, no. 9, Oct. 2019, pp. 498–505. EBSCOhost, (link-repeat:\"https://doi.org/10.5860/crln.80.8.498.\")[(open-url:\"https://doi.org/10.5860/crln.80.8.498.\")]
Knab, Sheryl, et al. “Now Streaming: A Consortial PDA Video Pilot Project.” Collaborative Librarianship, vol. 8, no. 1, Jan. 2016, pp. 41–54.",
"quote","“In better identifying which categories and film producers we wanted as part of PDA program, our usage closer aligned with our intended use of the resource” (Rodgers 501)
“In addition, following the pilot, the films that were triggered under the program continue to be watched – 1,124 additional plays took place on triggered titles in the four months following the pilot with 95% being watched again at least once - proving that the films triggered via user-generated PDA tend to be popular films with sustainable use value” (Knab 48).",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Montcalmo, Chris. “Baltimore County Public Library Unveils New Mobile Library Stream Vehicle.” Nottingham MD, October 29, 2024. (link-repeat:\"https://www.nottinghammd.com/2024/10/29/baltimore-county-public-library-unveils-new-mobile-library-stream-vehicle/\")[(open-url:\"https://www.nottinghammd.com/2024/10/29/baltimore-county-public-library-unveils-new-mobile-library-stream-vehicle/\")].",
"quote","“The mission of Baltimore County Public Library is to provide spaces and opportunities where people can explore, learn, create and connect. This STREAM vehicle exemplifies our commitment to our mission and the communities we serve. This vehicle is breaking down barriers of access by reaching families and kids where they are and providing access to books and technology that support discovery, play and learning.” - Sonia Alcántara-Antoine. (Montcalmo)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","BusinessWire. “Hoopla Digital Announces BingePass with INDIEFLIX, Bringing Independent Films to Public Libraries.” BusinessWire, edited by BusinessWire, 15 Oct. 2024, (link-repeat:\"www.businesswire.com/news/home/20241015656852/en/hoopla-Digital-Announces-BingePass-with-iNDIEFLIX-Bringing-Independent-Films-to-Public-Libraries\")[(open-url:\"www.businesswire.com/news/home/20241015656852/en/hoopla-Digital-Announces-BingePass-with-iNDIEFLIX-Bringing-Independent-Films-to-Public-Libraries\")]. Accessed 27 Oct. 2024.",
"quote","“Our partnership with iNDIEFLIX brings fresh and global perspectives to our platform and library patrons, while promoting and supporting our commitment to increase visibility for small, independent filmmakers and films.” - Cat Zappa, VP of Digital Acquisition at hoopla. (BusinessWire)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","turkeygiant. “Anybody have experience with VR programs in the Library?” Reddit, 2023, (link-repeat:\"https://www.reddit.com/r/librarians/comments/15wx134/anybody_have_experience_with_vr_programs_in_the/\")[(open-url:\"https://www.reddit.com/r/librarians/comments/15wx134/anybody_have_experience_with_vr_programs_in_the/\")]",
"quote","“Google has made their design public domain, meaning any company can make one, so they are faily [sic] cheap, about $15 each. After youd [sic] download the VR apps to your phone, you can next drop the phone into the set and are now free to play games, walk on Mars, etc.” (turkeygiant)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Questionnaire: Question 3, Responses 1, 2, and 5.",
"quote","“Our video games and virtual reality are for in-library, programmatic use only” (Questionnaire Response 1, Q3)
“Our video games and virtual reality equipment are for in-library program use only” (Questionnaire Response 2, Q3)
“The library was donated 10 meta quest 2 headsets from the VR program on campus. Users can now check 8 of those out as reserve items and use them in the VR Lounge & Wellness Room” (Questionnaire Response 5, Q3)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Questionnaire: Question 6, Response 1
Wahl, Mary. “Full Stream Ahead: Designing a Collection Development Workflow for Streaming Video Content.” Library Resources & Technical Services, vol. 61, no. 4, Oct. 2017, pp. 226–36. EBSCOhost, (link-repeat:\"https://doi.org/10.5860/lrts.61n4.226\")[(open-url:\"https://doi.org/10.5860/lrts.61n4.226\")].",
"quote","“Alexander Street is simultaneous use and is provided by the State Library” (Questionnaire Response 1, Q6).
“Subscription licenses that provide libraries access to a collection of videos, typically lowering per-title costs but often carrying the constraints of a limited term license” (Wahl 228)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Hoenke, Justin. “‘An Open Book’: Bibliotheca Enters the World of Digital Streaming for Libraries.” Information Today, vol. 39, no. 5, June 2022, pp. 14–16.",
"quote","“biblio+ is a digital streaming service that isn’t based on pay per use. Instead, it gives libraries a chance to dip their toes into the digital streaming service world with a model focused on unlimited, simultaneous streaming. This shift in direction is designed to help libraries get the most they can for their patrons without their budgets taking massive hits—while eliminating the uneasy 'Just how much is this going to cost us?' question libraries have been facing with other digital streaming services.” (Hoenke 14).",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Cross, William. “More than a House of Cards: Developing a Firm Foundation for Streaming Media and Consumer-Licensed Content in the Library.” Journal of Copyright in Education & Librarianship, vol. 1, no. 1, 1, Sept. 2016. journals.ku.edu, (link-repeat:\"https://doi.org/10.17161/jcel.v1i1.5919\")[(open-url:\"https://doi.org/10.17161/jcel.v1i1.5919\")].",
"quote","“Collecting these popular materials is increasingly “essential to university-level classes” (King, 2014, p. 293) and for attracting patrons into the library. (Nagy, 2011, p. 8-10).” (Cross 9)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Rodgers, Andrea. “Once upon a Time in Streaming Video.” College & Research Libraries News, vol. 80, no. 9, Oct. 2019, pp. 498–505. EBSCOhost, (link-repeat:\"https://doi.org/10.5860/crln.80.8.498\")[(open-url:\"https://doi.org/10.5860/crln.80.8.498\")].
Knab, Sheryl, et al. “Now Streaming: A Consortial PDA Video Pilot Project.” Collaborative Librarianship, vol. 8, no. 1, Jan. 2016, pp. 41–54.
Questionnaire, Question 9, Responses 3, 5, 12.
Questionnaire, Question 10, Response 19",
"quote","“When considering the number of video plays against the total amount Figure 1. Monthly number of films triggered. Figure 2. Monthly number of videos played. October 2019 501 C&RL News of deposited funds, it cost the library about $4.41 per play” (Rodgers 500-501).
“Limiting our promotion of the platform was also an important and beneficial decision. It helped us keep our first year to scale and within our funding” (Rodgers 501).
“Binghamton had a cost per play of approximately $2.90; after one year of PDA and in stable state, this had declined to approximately $1.45. And each of the other colleges had similar experiences to Binghamton, despite their differences in size and profile” (Knab et al. 48).
“We like to stay under a certain threshold of cost per use” (Questionnaire Response 3, Q9).
“Staff consider cost per use, patron feedback, staff feedback” (Questionnaire Response 5, Q9).
“We look at cost per circ, rate of adoption (new users), and growth rate (if use increases on the format year over year)” (Questionnaire Response 12, Q9).
“They fill a need for us and do get used consistently, but we are not able to promote them more widely because the more they are used, the more they cost and we are maxed out on this budget line with no promotion” (Questionnaire Response 19, Q10)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Abresch, John, and LeEtta Schmidt. “The Conflicting Needs of Now and Forever: Designing Streaming Media Services at an Academic Library.” Journal of Electronic Resources Librarianship, vol. 36, no. 2, Apr. 2024, pp. 107–19. EBSCOhost, (link-repeat:\"https://doi.org/10.1080/1941126X.2024.2337581\")[(open-url:\"https://doi.org/10.1080/1941126X.2024.2337581\")].",
"quote","“Some libraries draw upon past experiences when dealing with new technologies and uncertain media business models. King (2014) discussed the need to preserve older video formats to make up for gaps in the availability of streaming media using a curated collection approach.” (Abresch 108-109)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Breeding, Marshall. “Benefits and Challenges for Streaming Media in Libraries.” Computers in Libraries, vol. 42, no. 4, May 2022, pp. 9–11.
Enis, Matt. “Full Stream Ahead: The State of Library Streaming Services.” Library Journal, 1 Apr. 2024, (link-repeat:\"https://www.libraryjournal.com/story/full-stream-ahead-the-state-of-library-streaming-services\")[(open-url:\"https://www.libraryjournal.com/story/full-stream-ahead-the-state-of-library-streaming-services\")].",
"quote","“In general terms, the era of digital content means less content owned by libraries and more costs related to providing access to content for limited periods and with specified restrictions.” (Breeding 10)
“While streaming services offer patrons a convenient way to access high-quality entertainment content from their library, some libraries may be cautious about how aggressively they promote these services. As with any pay-per-use model, the more popular a service becomes, the more expensive it becomes.” (Enis)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","MIT Technology Review. “Virtual Reality’s Missing Element: Other People.” Accessed November 29, 2024. (link-repeat:\"https://www.technologyreview.com/2017/06/14/150815/virtual-realitys-missing-element-other-people/\")[(open-url:\"https://www.technologyreview.com/2017/06/14/150815/virtual-realitys-missing-element-other-people/\")].",
"quote","“Virtual reality can give you a sense of being with others that a FaceTime call on an iPhone will never match. Virtual reality could make it more emotionally fulfilling to connect with far-flung friends and family, or lend a feeling of physical presence to online classes that is impossible to attain otherwise.” - Rachel Metz, 2017 (”MIT Technology Review”)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Winget, M. A., & Murray, C. (2008). Collecting and preserving videogames and their related materials: A review of current practice, game‐related archives and research projects. Proceedings of the American Society for Information Science and Technology, 45(1), 1–9. (link-repeat:\"https://doi.org/10.1002/meet.2008.1450450250\")[(open-url:\"https://doi.org/10.1002/meet.2008.1450450250\")]",
"quote","“Whereas we can actually look at the Sistine Ceiling, created five hundred years ago, or play games, like go invented over a thousand years ago; it is difficult if not impossible to view simple documents on 8-inch floppy disks created in the last twenty years, even if there has been an immediate, proactive role in preserving them.” (Winget 2)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Robson, D., Bryant, S., & Sassen, C. (2023). Video Game Equipment Loss and Durability in a Circulating Academic Collection. Evidence Based Library and Information Practice, 18(3), Article 3. (link-repeat:\"https://doi.org/10.18438/eblip30294\")[(open-url:\"https://doi.org/10.18438/eblip30294\")]",
"quote","“Over the survey period of 12 years, there was indeed equipment loss and damage; however, the library was still able to meet the needs of students, faculty, and researchers and the cost of replacing or repairing the items was negligible.” (Robson 67)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Sorry, these citations are still under construction!",
"quote","Please don't mind our pixel-dust",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Acker, Amelia. Emulation practices for software preservation in libraries, archives, and museums. (2021). Journal of the Association for Information Science & Technology, 72(9), 1148–1160. (link-repeat:\"https://doi.org/10.1002/asi.24482\")[(open-url:\"https://doi.org/10.1002/asi.24482\")]",
"quote","“How do we convey to a user who is having a “user session” where the actions of the original creators' end and the preservation decisions of the archivist begin?” (Acker 1157)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","McDonald, C., Schmalz, M., Monheim, A., Keating, S., Lewin, K., Cifaldi, F., & Lee, J. H. (2021). Describing, organizing, and maintaining video game development artifacts. Journal of the Association for Information Science & Technology, 72(5), 540–553. (link-repeat:\"https://doi.org/10.1002/asi.24432\")[(open-url:\"https://doi.org/10.1002/asi.24432\")]",
"quote","“Because there is no formulaic approach to game development, the artifacts born from each game often vary in unique and unexpected ways. Examining different collections reveals that no two games produce the same set of artifacts, so that it is often difficult to predict what each collection of game development artifacts will contain.” (McDonald 544)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation"," “Seattle Public Library Fully Operational after Ransomware Attack in May.” King5.Com, 3 Sept. 2024, https://www.king5.com/article/news/local/seattle/seattle-public-library-fully-operational-aransomware-attack-may/281-2c76dfd6-dd81-4e00-9d73-9acb0abd0888.",
"quote","“For the past four months, its 27 library locations were severely impacted by a ransomware attack over Memorial Day weekend. ...The attack disrupted access to staff and public computers, the online catalog and loaning system, e-books and e-audiobooks, in-building wi-fi, and its website.“ (“Seattle Public Library...“)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Found during document analysis: https://www.reddit.com/r/librarians/comments/15wx134/anybody_have_experience_with_vr_programs_in_the/",
"quote","“I know before the pandemic we subscribed to the service “Rendever“ which allows you to deliver guided programs across multiple paired devices, but I also know it was a VERY expensive service so I am investigating options. I'd love to know what platforms you have experience using to deliver VR programs?“ (Found during document analysis “Anybody have experience with VR...“)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
),
(dm:
"citation","Robson, Diane, and Patrick Durkee. “New Directions for Academic Video Game Collections: Strategies for Acquiring, Supporting, and Managing Online Materials.” Journal of Academic Librarianship, vol. 38, no. 2, Mar. 2012, pp. 79–84, https://doi.org/10.1016/j.acalib.2012.01.003",
"quote","“While a number of important and influential games are available on a limited, free-to-play basis, which promises an excellent way to gain access with little cost, the characteristics of MMO play itself create difficulties with collection management. Role-playing MMOs require the creation of virtual characters that are associated with individual accounts, and each character amasses virtual goods and interacts with other players. Providing access to such games raises the possibility of library staff having to monitor online activities pursued in the guise of characters associated with a library collection MMO account, a barrier which may ultimately make MMO play too difficult to manage in a university gaming collection.” (Robson 17)",
"unlockText","Gain this Item during a General Event",
"effectText","Indie Injection: Adds 3 Resources to your Collection",
"unlocked",false
)
)
)
<!--(link-repeat:\"\")[(open-url:\"\")]-->
(set: $showBibliography to (macro: num-type _bib, [
(output-data: " "+$bib's _bib's citation
)
]))
(set: $showQuote to (macro: num-type _bib, [
(output-data: "<div class='bib-quote'>"+$bib's _bib's quote+"</div>"
)
]))
}Current Bibliography:
(for:each _bib where _bib's unlocked is true, ...$bib)[FOUND: (print:_bib's citation)
ABILITY: (print:_bib's effectText)
]
(for:each _bib where _bib's unlocked is false, ...$bib)[LOCKED: (print:_bib's unlockText)](set:$bib's 2nd's unlocked to true)
You've unlocked //A Colossal Catalog Adventure//! Check it out below:
_________
(link:"Show Bibliography")[(display:"Biblio Command")]
"This is a cited quote"(link:"^^`[2]`^^")[(print:" "+$bib's 2nd's citation)]{(set: $gen_items to
(a:
(dm:"name","Technology Grant For More Items",
"description","More items every turn!",
"effect","(set: $aTest to 1)(set: $bTest to 2)(set: $playerItems's last's effect to '(set: $NumberOfChoices to it + 1)')",
"citation",2,
"pool","general",
"unlocked",true,
"image","send-money.png",
),
(dm:"name","test item 2",
"description","this is a second test item",
"effect","player's health += 4",
"quote","this is a quote from the test item's citation",
"citation",($bib's 2nd's citation),
"unlocked",true
)
)
)
(set: $streaming_items to
(a:
(dm:"name","test item VR",
"description","this is a VR-only test item",
"effect","player's VR += 2",
"quote","this is a quote from a VR citation",
"citation",($bib's 1st's citation),
"unlocked",true
)
)
)
(set: $vr_items to
(a:
(dm:"name","test item VR",
"description","this is a VR-only test item",
"effect","player's VR += 2",
"quote","this is a quote from a VR citation",
"citation",($bib's 1st's citation),
"unlocked",true
)
)
)
(set: $makeItem to (macro: num-type _item, [
(size:0.7)+(box:"=XXXXX=")+(border:"solid")+(output:)[\
##(print:$gen_items's _item's name)
|=
''Effect'': (print:$gen_items's _item's effect)
''Quote'': (print:$gen_items's _item's quote)
''Description'': (print:$gen_items's _item's description)
=|
//(print:$gen_items's _item's citation)//
]
]))
<!-- EXAMPLE:
|==
($makeItem: (random: 1,$gen_items's length))
==|
($makeItem: (random: 1,$gen_items's length))
|==|
-->}{(set: $events to
(a:
(dm:
"title","A Retro Opportunity",
"eventText1", "Someone walks into the library and stops at the front desk. They place a large bag on the table and take out a vintage Gatari 86 console. It looks recently cleaned and dust free.",
"eventText2","They offer it as a donation to start the library's video game collection. They also have several vintage games they are willing to donate. The patron assures you that the console is still fully functional.",
"type","general",
"difficulty","light",
"choicesEffects",(a:"(if: $collections's 3rd's unlocked is false)[
(set: $collectionCount to it + 1)
(set: $playerAvailableItems to it+(find: _itemPool where _itemPool's unlocked is true and _itemPool's pool is 'videogames', ...$items))]
(set: $playerItems to it + (a:$items's 8th))
(set: $communityMeter to it + 0.05)", "(set: $communityMeter to it - 0.05)"),
"choicesText",(a:"Accept the console", "Return it"),
"citation",1,
"unlocked",true
),
(dm:
"title","Spring Weeding",
"eventText1", "After taking an audit of all the digital materials, there are several items that have been expensive to maintain, but have never been checked out or used.",
"eventText2","That money could be put to better use elsewhere, but then again, maybe someone will need them soon?",
"type","general",
"difficulty","light",
"choicesEffects",(a:"(move: (either: ...$playerItems) into _bin)", "(if: $collectionStatus contains 'Young')[(set: $collectionStatus to it - 'Young')(set: $collectionStatus to it + 'Old')]"),
"choicesText",(a: "Clear out the materials", "Keep them just in case"),
"citation",9,
"unlocked",true
),
(dm:
"title","Missing the MARC",
"eventText1", "Patrons have expressed difficulty locating a record for what digital materials are available in the library's collection. The local university library is offering a one-day seminar on how to effectively use machine-readable cataloguing (MARC) record to improve the discoverability of resources, which vendors have been invited to attend, too.",
"eventText2","However, the library is low-staffed on the day of the seminar and your manager would prefer you stay to help out.",
"type","general",
"difficulty","light",
"choicesEffects",(a:"(set: $playerItems to it - (a:$playerItems's (random:1,$playerItems's length))(set: $collectionEnergy to it + 1)", "(set: $communityMeter to it + .05)(for: each _item, ...(range:1,$playerItems's length))[(if: $playerItems's _item contains 'name')[(set: $playerItems's _item's name to '????')(set: $playerItems's _item's description to (joined:' ', ...(reversed: ...(words: $playerItems's _item's description))))]]"),
"choicesText",(a: "Attend the seminar", "Hope it's recorded"),
"citation",11,
"unlocked",true
),
(dm:
"title","Revengeance Of The Regulars",
"eventText1", "The new collections in the library means that more patrons are coming in to check them out. While some enjoy the library and see it as a 'third place', others are not so happy.",
"eventText2","Some regular patrons, from before your time as digital librarian, have started to complain about all the new foot traffic. With whom do your allegiances lie?",
"type","general",
"difficulty","light",
"choicesEffects",(a:"(set: $collectionEnergy to it + 1)(set: $communityMeter to it - .1)(set: $collectionAmountMIN to it - 2)", "(set: $collectionEnergy to it - 1)(set: $communityMeter to it - .2)(set: $collectionAmountMAX to it + 2)"),
"choicesText",(a: "Shoosh the new patrons", "Let there be (some) noise"),
"citation",5,
"unlocked",true
),
(dm:
"title","Hard decisions, hard drives",
"eventText1", "During a training session, a consulting organization suggested backing up digital files and games on a local server, like a physical hard drive in the library, instead of solely relying on putting everything in 'the cloud'. By having files in both places, if either went down you'd always have another copy somewhere.",
"eventText2","The local server would use a significant amount of your budget and would take several weeks to set up correctly, but it would practically pay for itself in a month or two.",
"type","general",
"difficulty","light",
"choicesEffects",(a:"(set: $collectionEnergy to it - 1)(set: $collectionAmountMAX to $collectionAmountMIN)(set: $collectionStatus to it + (a:'Backed Up'))", ""),
"choicesText",(a: "Set it up", "Save the money and time"),
"citation",26,
"unlocked",true
),
(dm:
"title","VR Update Crashes OS!",
"eventText1", "Your computer's Operating System has updated and your VR device now no longer loads. The headset is no longer being supported.",
"eventText2","Do you take the time to retrofit the headset with open-source software? Or do you eat the loss and move on to newer hardware?",
"type","VR",
"difficulty","heavy",
"choicesEffects",(a:"(set: $collectionEnergy to it / 2)(set: $communityMeter to it * 1.1)(set: $collectionAmountMIN to it + 1)(set: $collectionAmountMAX to it + 2)", "(move: (either: ...$playerItems) into _bin)(move: (either: ...$playerItems) into _bin)"),
"choicesText",(a:"Fix it", "Chuck it"),
"citation",1,
"unlocked",true
),
(dm:
"title","Love, Virtually",
"eventText1", "One of your users has spent a lot more time than most using the VR headsets and seems to be getting increasingly emotional when you ask them to stop. It seems they've formed a crush in a VR social app and this is the only time and place they can hang out with them.",
"eventText2","Will you set something up just for them to be able to regularly use at certain times in a private room? Or do you make sure your equipment stays available for everyone so as not to give certain users privileges over others?",
"type","VR",
"difficulty","light",
"choicesEffects",(a:"(set: $collectionEnergy to it - 1)(set: $collectionStatus to it + (a:'Loved'))", "(set: $communityMeter to it + .05)"),
"choicesText",(a:"Organize a personal schedule", "Enforce current protocol"),
"citation",28,
"unlocked",true
),
(dm:
"title","Virtual Reality in Reality",
"eventText1", "It's hard to lend out the VR headset because many community members either don't know how to use it, or don't have compatible computers at home. So instead, you've hosted a VR event at the library so they can learn more.",
"eventText2","During the event, a young patron wearing the headset swings wide and hits another young patron. This causes a scuffle around the equipment. What is the first thing you do?",
"type","VR",
"difficulty","light",
"choicesEffects",(a:"(set: $communityMeter to it - .15)", "(set: $collectionEnergy to it - 2)", "(set: $communityMeter to it + .05)(set: $collectionEnergy to it - 1)"),
"choicesText",(a:"Secure the equipment", "Talk it out", "Secure the children"),
"citation",6,
"unlocked",true
),
(dm:
"title","Streaming Service Ignites Controversy",
"eventText1", "Some community members have served you a warning about the content that they are seeing on your current subscription services. It seems a portion of the services focus on 16-wheel trucks and that this group is morally opposed against it. They are threatening to withdraw their patronage.",
"eventText2","Do you rebuild bridges and attempt to demystify this community's bias? Or do you send these complaints up the chain to the streaming service?",
"type","streaming",
"difficulty","light",
"choicesEffects",(a:"", ""),
"choicesText",(a:"Build a bridge", "Wait and see"),
"citation",1,
"unlocked",true
),
(dm:
"title","New Streampass+ Upgrade Has A Little Caveat",
"eventText1", "One of your collections has upgraded and is asking for you to track new usage stats from your patrons.",
"eventText2","What's the first way that you decide to inform your patrons of these changes?",
"type","streaming",
"difficulty","light",
"choicesEffects",(a:"", ""),
"choicesText",(a:"Update website", "Email users"),
"citation",1,
"unlocked",true
),
(dm:
"title","Streams of streams",
"eventText1", "One of your new streaming services, Flixnet for Libraries, charges you per stream instead of a flat monthly fee.",
"eventText2","While this is good when few members use it, the library should generally promote the available resources.",
"type","streaming",
"difficulty","light",
"choicesEffects",(a:"(set: $communityMeter to it - .05)(set: $collectionEnergy to it + 1)(set: $collectionAmount to it + 5)", "(set: $collectionEnergy to it - 1)(if: $collectionStatus contains 'Expensive')[(set: $collectionEnergy to it - 2)](else:)[(set: $collectionStatus to it + (a:'Expensive'))](set: $communityMeter to it + .1)"),
"choicesText",(a:"Let patrons find the service themselves", "Promote the service"),
"citation",27,
"unlocked",true
),
(dm:
"title","Did you see the finale?",
"eventText1", "The TV show, Game of Gnomes, is reaching the climactic series finale. The library subscribes to a streaming service called Treetop so several patrons can stream the show from anywhere as long as they have a library card. ",
"eventText2","A lot of patrons are asking for the library to invest in more licenses so more patrons can watch the show at the same time, and not have to wait and possibly hear spoilers. But after the finale, you'll be stuck with more licenses than you really need until the end of the fiscal year.",
"type","streaming",
"difficulty","light",
"choicesEffects",(a:"(set: $communityMeter to it - .05)(set: $collectionAmountMIN to 0)(set: $collectionEnergy to it - 1)", "(set: $communityMeter to it - .15)(set: $collectionAmountMIN to it + 2)(set: $collectionAmountMAX to it + 2)(set: $collectionEnergy to it + 1)"),
"choicesText",(a:"Get more licenses", "Wait for the DVDs"),
"citation",24,
"unlocked",true
),
(dm:
"title","Must-Watch Tele for One",
"eventText1", "A patron who frequently visits the library has repeatedly asked for the library to invest in a niche streaming service so they can watch their favorite television show, Doctor Howe.",
"eventText2","This patron might be the only person in the whole system who uses the streaming service, as you aren't certain how popular the show is. But at the same time, this patron is a frequent volunteer, donor, visitor, and adds a whimsical British flair.",
"type","streaming",
"difficulty","light",
"choicesEffects",(a:"(if: $collectionStatus contains 'Expensive')[(set: $collectionEnergy to it - 2)](else:)[(set: $collectionStatus to it + (a:'Expensive'))](set: $communityMeter to it * 1.05)(set: $collectionAmount to it + 5)", "(set: $communityMeter to it - .05)(set: $collectionEnergy to it + 1)"),
"choicesText",(a:"Subscribe to the service", "Mention services you already have"),
"citation",10,
"unlocked",true
),
(dm:
"title","Gaming Gathering",
"eventText1", "Several middle and high school-aged students start frequenting the library, specifically the video game section. They play games on the consoles in the library and seem to come on a regular basis.",
"eventText2","A few of the students know each other, but several don't. They don't all seem to be getting to know each other, but they share the consoles fair enough. In what way would you like to intervene?",
"type","videogames",
"difficulty","light",
"choicesEffects",(a:"(set: $collectionEnergy to it - 1)(set: $communityMeter to it * 1.1)(set: $collectionAmountMAX to it + 2)(set: $collectionStatus to it + (a:'Teen Spirit'))", "(set: $communityMeter to it - .05)(set: $collectionAmount to it - 5)"),
"choicesText",(a:"Start a video game club", "Leave them to their own devices"),
"citation",4,
"unlocked",true
),
(dm:
"title","Wherefore Art Thou, Smario?",
"eventText1", "A patron asks about a specific video game that you aren't familiar with. It probably isn't in the library, but it's for the Swintendo Nitch, so it's probably at another library nearby.",
"eventText2","Your patrons said they searched the database, but aren't entirely certain how to spell the name of the game or what else to even search for. You are pretty sure you don't have this one though and are going to have to be careful with your guidance.",
"type","videogames",
"difficulty","light",
"choicesEffects",(a:"(set: $collectionEnergy to it + 1)(set: $communityMeter to it - .05)", "(set: $collectionEnergy to it - 1)(set: $communityMeter to it + .05)(set: $collectionAmount to it + 3)"),
"choicesText",(a:"Suggest an alternative game you have", "Buy it used off WiiBay"),
"citation",7,
"unlocked",true
),
(dm:
"title","Oops! That's the screen",
"eventText1", "It was a matter of time, we all knew it would come to this, but it looks like a patron has broken one of your handheld's screens. It's mostly a surprise that it took this long!",
"eventText2","So far, it seems like this might be something that rarely happens, but that means there is not much protocol guiding what to do in this situation. Can we fix it ourselves? Or should we send it out to a local repair place?",
"type","videogames",
"difficulty","light",
"choicesEffects",(a:"(set: $collectionAmountMIN to it - 2)(set: $collectionAmountMAX to it - 1)(set: $collectionEnergy to it - 1)", "(set: $communityMeter to it - .05)(set: $collectionAmount to it - 3)"),
"choicesText",(a:"Fix It", "Send it out"),
"citation",30,
"unlocked",true
),
(dm:
"title","Indie-genous Representation",
"eventText1", "You've heard from a few patrons about a new indigenous independently made video game ('indie game') coming out soon. The patrons who have told you about it are also indigenous and are anticipating the release.",
"eventText2","This game is currently outside your budget, but since it is an indie game, you have a good chance of requesting it directly from the developers for free. While that is normal for indie developers, you really should compensate these developers for their work. It could even be worth the extra work to form a partnership to get any games they make in the future.",
"type","videogames",
"difficulty","light",
"choicesEffects",(a:"(set: $communityMeter to it - .05)(set: $collectionAmount to it + 5)(set: $collectionEnergy to it + 1)", "(set: $collectionAmountMAX to it + 2)","(set: $communityMeter to it + .1)(set: $collectionEnergy to it - 1)(set: $collectionAmountMIN to it + 2)(set: $collectionAmountMAX to it + 2)"),
"choicesText",(a:"Purchase the game", "Request it from the developers","Offer a partnership"),
"citation",8,
"unlocked",true
),
(dm:
"title","Books are best, yes!",
"eventText1", "Some community members have heard about your work collecting digital media and they don't agree with you using their tax dollars to fund it. They've formed a group known as 'Books are Best, Yes!'.",
"eventText2","The BABYs plan to visit the next town hall meeting to address the Library Director.",
"type","general",
"difficulty","heavy",
"choicesEffects",(a:"(set: $communityMeter to it + .1)(set: $collectionEnergy to it - 1)(set: $collectionAmountMIN to it - 2)", "(set: $communityMeter to it - .1)(set: $collectionEnergy to it + 1)(set: $collectionAmountMIN to it - 4)(set: $collectionAmountMAX to it - 4)"),
"choicesText",(a:"Go to the meeting", "Reject the meeting"),
"citation",1,
"unlocked",true
),
(dm:
"title","Error Code #2242EE: Party Foul",
"eventText1", "The computers that run VR games have gone down! ... And the big event is TODAY!!!",
"eventText2","It's not clear why they went down, but it will take a significant amount of time for you to diagnose the problem. Alternatively, you could hire someone else to look into it and hope they get there on time.",
"type","VR",
"difficulty","heavy",
"choicesEffects",(a:"(set: $collectionEnergy to it - 2)", "(set: $collectionEnergy to it - 1)(set: $communityMeter to it - .2)"),
"choicesText",(a:"Solve it yourself (well, with Diggit and WeTube)", "Hire a professional"),
"citation",20,
"unlocked",true
),
(dm:
"title","Parents just don't get it",
"eventText1", "A patron comes into the library and speaks to you at your desk about one of the games on the shelves. They say that the game is too violent for young minds, and that their child brought the game home from the library the other day. After seeing what the gameplay was like, they took the game straight back here.",
"eventText2","They want you to remove the game from the collection, and do an audit of all the games you have to make sure there are absolutely no other games that would be inappropriate for children to be playing.",
"type","videogames",
"difficulty","heavy",
"choicesEffects",(a:"(set: $communityMeter to it - .2)(set: $collectionAmountMIN to it - 5)(set: $collectionAmountMAX to it + 3)", "(set: $collectionAmount to it * .9)(set: $communityMeter to it - .1)(set: $collectionStatus to it - (a:'Young'))", "(set: $collectionAmount to it * .65)(set: $collectionEnergy to it - 2)(set: $communityMeter to it + .1)"),
"choicesText",(a:"Keep the game in the collection", "Remove that game", "Audit every game"),
"citation",15,
"unlocked",true
),
(dm:
"title","Flixnet gets frank",
"eventText1", "The streaming service Flixnet has heard about you distributing materials so that patrons can stream movies from them at home. While this is normally fine for regular people, Flixnet has different terms for public library usage. However, you do fairly pay your dues once a month to them, and only one patron at a time has access to the account.",
"eventText2","Flixnet has just served you papers to appear in court for a lawsuit. Depending on how much the community supports you, weigh whether you want to fight this lawsuit or not.",
"type","streaming",
"difficulty","heavy",
"choicesEffects",(a:"(if: $communityMeter is < .75)[(set: $communityMeter to it - .1)](else:)[(set: $communityMeter to it - .35)]", "(if: $communityMeter is > .75)[(set: $communityMeter to it - .1)](else:)[(set: $communityMeter to .2)]"),
"choicesText",(a:"Dump stream service", "Renegotiate license"),
"citation",1,
"unlocked",true
),
(dm:
"title","Uninter net",
"eventText1", "During a long weekend, one of your coworkers clicks on a link they thought was for a library delivery.",
"eventText2","While the delivery wasn't real, the virus sure was. Your services go down, and you're certain the library systems are getting hacked.",
"type","general",
"difficulty","heavy",
"choicesEffects",(a:"(move: (either: ...$playerItems) into _bin)(set: $communityMeter to it -.1)", "(if: $collectionStatus does not contain 'Backed Up')[(set: $playerItems to it + (a:$items's 2nd))]"),
"choicesText",(a:"Suggest shutting down all library services", "Continue library services as normal"),
"citation",1,
"unlocked",true
),
(dm:
"title","The price is not right",
"eventText1", "After collecting cost-per-use data on your new video streaming collection, the Library Director determined that the price is too high for the current budget to support its continuation at current usage rates.",
"eventText2","The board is requiring you to discontinue your video streaming collection, or attempt to reduce costs by ceasing all promotional activities involving the streaming collection.",
"type","streaming",
"difficulty","heavy",
"choicesEffects",(a:"(if: $collectionStatus does not contain 'PDA')[(move: (either: ...$playerItems) into _bin)(move: (either: ...$playerItems) into _bin)(move: (either: ...$playerItems) into _bin)]", "(if: $collectionStatus contains 'Expensive')[(set: $collectionEnergy to it - 2)](else:)[(set: $collectionStatus to it + (a:'Expensive'))](set:$communityMeter to it * .5)", "(if: $collectionStatus does not contain 'PDA' or $communityMeter is > .75)[(set: $communityMeter to it - .2)(move: (either: ...$playerItems) into _bin)]"),
"choicesText",(a:"Discontinue your streaming collection", "Cease all marketing and outreach and hope this reduces the cost-per-use basis","Fight the board and request more budget to support"),
"citation",25,
"unlocked",true
),
(dm:
"title","Server Shutdown",
"eventText1", "The most popular game in your collection recently shut their servers down, and the game is no longer operationalizable.",
"eventText2","Do you replace that game with a similar choice? Or do you want to have a meeting to look for other games that won't have this problem?",
"type","videogames",
"difficulty","heavy",
"choicesEffects",(a:"(set: $collectionAmount to it * (max: $communityMeter, .5))(set: $communityMeter to it - .1)(set: $collectionEnergy to it - 1)", "(set: $collectionAmount to it * (1-(1/$collectionEnergy)))(set: $collectionEnergy to it - 2)(set: $collectionAmountMIN to it + 2)(set: $collectionAmountMAX to it + 4)"),
"choicesText",(a:"Replace game", "Re-evaluate genre selections"),
"citation",36,
"unlocked",true
),
(dm:
"title","The Viewing Problem",
"eventText1", "Are you a bad enough librarian to stop the hands of time? Your videogame collection has started to become impressive but it's becoming hard to support the older generations... The discs just aren't working like they used to!",
"eventText2","You've got three options from here: digitize emulation, weeding, or replacement. All of these options push your collection tactics into a specific direction. Will you preserve the past? Focus on the future? Or, work your collection's popularity against the secondhand marketplace?",
"type","videogames",
"difficulty","heavy",
"choicesEffects",(a:"(set: $collectionAmount to it * (1-(1/$collectionEnergy)))(set: $collectionEnergy to it - 2)(set: $collectionAmountMAX to it + 4)", "(set: $collectionAmount to it * .66)(set: $collectionAmountMIN to it - 3)(set: $collectionAmountMAX to it - 2)(set: $collectionEnergy to it + 1)", "(set: $collectionAmount to it * (max: $communityMeter, .5))(set: $communityMeter to it - .1)(set: $collectionEnergy to it - 1)"),
"choicesText",(a:"Migrate and emulate", "Send the old games to private collections", "Replace non-functional games"),
"citation",29,
"unlocked",true
),
(dm:
"title","[FINALE:] Bursting Your Bubble",
"eventText1", "VR has fallen in popularity, and less patrons are interested in the collection.",
"eventText2","Can you prove that VR is still worth hosting the collection in the library?",
"type","VR",
"difficulty","final",
"choicesEffects",(a:"", ""),
"choicesText",(a:"Last hurrah event", "Sell it all"),
"citation",1,
"unlocked",true
),
(dm:
"title","[FINALE:] Hulflix Plus Video Re-negs Contract",
"eventText1", "The primary streaming service has increased their prices across the board and patrons are clamoring for the library to get better stream options.",
"eventText2","Do you push for a stronger contract? Or do you bring together your state's libraries to collaboratively negotiate a new contract?",
"type","streaming",
"difficulty","final",
"choicesEffects",(a:"", ""),
"choicesText",(a:"Go your own way", "Rally state libraries"),
"citation",9,
"unlocked",true
),
(dm:
"title","[FINALE:] Headhunters",
"eventText1", "The studio that makes most of the games in your collection heard about your work and offered you a cushy industry job. Maybe they want your library experience for a new 'Librarian RPG' game... Or maybe they want you to stop putting their games in libraries? Either way, it's great pay.",
"eventText2","Will you take the job or keep librarianing?",
"type","videogames",
"difficulty","final",
"choicesEffects",(a:"", ""),
"choicesText",(a:"Take the job", "Keep librarianing"),
"citation",1,
"unlocked",true
)
)
)
(set: $displayEvent to (macro: num-type _event, [
(size:0.7)+(box:"=XXXXX=")+(border:"solid")+(output:)[\
##(print:$events's _event's title)
|==
''Effect'': (print:$events's _event's effect)
''Citation'': (print:$events's _event's citation)
==|
//(print:$events's _event's description)//
]
]))
<!--EXAMPLE: ($displayEvent: (random: 1,$events's length))-->}{(set: $collections to
(a:
(dm:"type","streaming",
"name","Streaming",
"amount",2,
"token","@",
"status",(a:"Young","Licensed","Tenuous"),
"goal","build up your Community Support",
"unlocked",true
),
(dm:"type","VR",
"name","Virtual Reality",
"amount",1,
"token","V",
"status",(a:"Young", "Cutting Edge","Technical"),
"goal","end with more Energy than you started with",
"unlocked",true
),
(dm:"type","videogames",
"name","Video Games",
"amount",2,
"token","V",
"status",(a:"Young", "Fun","Frivolous"),
"goal","grow your Games Collection as much as possible",
"unlocked",false
),
(dm:"type","Magazines",
"name","Magazines",
"amount",2,
"token","V",
"status",(a:"Young", "Chill Licenses","Easy"),
"goal","build a Magazine Castle",
"unlocked",false
)
)
)
(set: $showCollectionDetails to (macro: dm-type _thisCollection, [(size:0.7)+(box:"=XXXXX=")+(border:"solid")+(output:)[\
##(print:_thisCollection's type)
=||=
''Starting Amount'': (print:_thisCollection's amount)
''Starting Token'': (print:_thisCollection's token)
''Starting Status'': (print:_thisCollection's status)
''Starting Items'': (print:_thisCollection's startingItems)
=|
]
]))}While this game has depictions of librarians working, this is by no means an accurate depiction of the huge amount of work librarians do. We are first-quarter library students, making a project to analyze and identify researched scenarios around non-traditional media formats. We mean no offense by our pure imagining (or maybe more kindly put, playful speculating) of how library collections operate in the real world. We're VERY new at this! :D
Stardew Valley for Libraries
As Phil Salvador explains: "For [Will] Wright, [lead game designer on many games at Maxis, including the original SimCity], games were a way of helping people create “mental models” for understanding parts of the world. The team at Maxis would research a topic like urban dynamics* – or something like ant colony behavior, in the case of another game they made called SimAnt – and create a game where players could experiment with those ideas. The goal wasn’t to teach anything directly, but rather to help the player get the model of SimCity in their head, so that playing this game could help them understand how the different systems within a city interact. For many people though, that nuance was lost, and instead they treated it like Maxis could build accurate simulations of the real world."<!-- "<img src=\"\">" -->{
(set: $unlockedCollections to (altered: via its name, ...(find: _coll where _coll's unlocked is true, ...$collections)))
<div class="body">
<div class="content">
<h1>Pixelated Policies</h1>
<h4>A game about librarians, by library science students</h4>
<p>(if: $ppassageNameVisted is 0)[(set: $ppassageNameVisted to 1)](else:)[Your current score is: $wins successful years, $losses unsuccessful years.]</p>
You're a digital librarian with a grant to work on a new digital collection for your library. What kind of media would you like to focus on to start your collection?
</div>
<div class="choice">
(if: $wins + $losses > 0)[Difficulty: (dropdown: bind $difficulty, "Easy", "Medium", "Hard", "Easily Hard", "Hardly Easy")]
(for: each _collectionType, ...$unlockedCollections)[
<div class="choice-item">
(link: _collectionType)[
(set: $LastCollectionChoice to _collectionType)
(go-to: "Starting Sequence")
]
</div>
]
</div>
</div>
}{
(set: $playerCollection to 1st of (find: _coll where _coll's name is $LastCollectionChoice, ...$collections))
(set: $unlockedCollections to it - (a:$LastCollectionChoice))
(set: $collectionStatus to $playerCollection's status)
(set: $playerAvailableItems to (find: _itemPool where _itemPool's unlocked is true and _itemPool's pool is in (a:"general",$playerCollection's type), ...$items))
(set: $eventsUsed to (a:))
(set: $resetItemsPassage to true)
(set: $resetEventsPassage to true)
(if: $difficulty is "None")[(set: $roundLengths to 10)(set: $difficultyMultiplier to .9)]
(if: $difficulty is "Easy")[(set: $roundLengths to 7)(set: $difficultyMultiplier to .75)]
(if: $difficulty is "Medium")[(set: $roundLengths to 10)(set: $difficultyMultiplier to 1.1)]
(if: $difficulty is "Hard")[(set: $roundLengths to 13)(set: $difficultyMultiplier to 1.3)]
(if: $difficulty is "Easily Hard")[(set: $roundLengths to 7)(set: $difficultyMultiplier to 1.5)]
(if: $difficulty is "Hardly Easy")[(set: $roundLengths to 16)(set: $difficultyMultiplier to 2)]
(set: _timeLeft to $roundLengths - $level)
<div class="body">
<div class="content">
<p>Your new $LastCollectionChoice collection will be a great asset to your library, but you'll have to make some difficult decisions to develop it to its full potential.</p>
<p>In just a few months, the <b>Library Director</b> will be in town to determine if the collection has met their standards and whether you'll be funded again next year. You can see your statistics at any time by selecting the Stats at the bottom of any page.</p>
<p>Because you have chosen to begin a $LastCollectionChoice collection, the <b>Library Director</b> will be expecting you to <b>(print:(find: _col where _col's name is $LastCollectionChoice, ...$collections)'s 1st's goal).</b> They will be checking on your stats to make sure you are maintaining yourself properly during this test.
<br>
You have _timeLeft months until the Library Director |ellipsis>[arrives]
<p>Good luck!</p>
</div>
<div class="choice">
<div class="choice-item">
[[Start the collection ->Let's Begin!]]
</div>
</div>
</div>
}{(set: $items to
(a:
(dm:"name","Technology Grant For More Items",
"description","More items every turn!",
"effect","(set: $NumberOfChoices to 3)(set: $playerItems's last's effect to '')",
"citation",1,
"pool","general",
"unlocked",true,
"image","send-money.png",
),
(dm:"name","Parasite",
"description","A hacker is eating your items!!",
"effect","(move: (either: ...$playerItems) into _bin)",
"citation",33,
"pool","general",
"unlocked",false,
"image","mistery.png",
),
(dm:"name","Media Motor Machine",
"description","A vehicle the library can use to bring games to community events outside the library.",
"effect","(set: $collectionEnergy to it + 3)(set: $playerItems's last's effect to '(set: $communityMeter to it * 1.03)(set: $collectionAmountMAX to it * 1.4)')",
"citation",18,
"pool","general",
"unlocked",true,
"image","toy-car.png",
),
(dm:"name","A New Media Librarian",
"description","New Media Librarian",
"effect","(set: $collectionsEnergy to it + 1)",
"citation",1,
"pool","general",
"unlocked",true,
"image","sculpture.png",
),
(dm:"name","Hulflix Plus Video Subscription",
"description","A subscription to the coolest streaming service in town... But it might be against their Terms of Service.",
"effect","(set: $collectionStatus to it + (a:'Expensive'))(set: $playerItems's last's effect to '(set: $communityMeter to it * 1.03)')",
"citation",18,
"pool","streaming",
"unlocked",true,
"image","computer.png",
),
(dm:"name","Used Occipital Adventure Virtual Reality Headset",
"description","This is a used, but still functional, headset.",
"effect","(if: $collectionEnergy < 3)[(set: $collectionEnergy to 3)](set: $playerItems's last's effect to '')",
"citation",1,
"pool","VR",
"unlocked",true,
"image","vr.png",
),
(dm:"name","Super Toni's Jumping Adventure",
"description","this is a videogame-only item. Save Princess Chanterelle!",
"effect","(set: $collectionAmountMAX to it + 1)",
"citation",1,
"pool","VR",
"unlocked",true,
"image","mistery.png",
),
(dm:"name","Gatari 86",
"description","A retro console with games. It doesn't work, but it's inspiring.",
"effect","(set: $bib's 3rd's unlocked to true)(set: $collections's 3rd's unlocked to true)(set: $collectionAmountMIN to it + 1)(set: $collectionAmountMAX to it + 1.5)",
"citation",1,
"pool","videogames",
"unlocked",false,
"image","gamepad-old.png",
),
(dm:"name","Upgraded library database website",
"description","A new and improved database for patrons to more easily search the library's collection online.",
"effect","(set: $communityMeter to it + 0.05)",
"citation",12,
"pool","general",
"unlocked",true,
"image","database.png",
),
(dm:"name","Dedicated Games Space",
"description","Gamerz only in this section! Just kidding. But it is where all the games are.",
"effect","(set: $collectionAmountMAX to it * 1.3)",
"citation",13,
"pool","videogames",
"unlocked",true,
"image","tv-stand.png",
),
(dm:"name","Swintendo Nitch",
"description","A new type of console that can be handheld or docked to a screen, and is often used for multiplayer games.",
"effect","(set: $collectionAmountMIN to it * 1.3)",
"citation",14,
"pool","videogames",
"unlocked",true,
"image","gaming.png",
),
(dm:"name","Digitization",
"description","Instead of cartridges, you have the cloud!",
"effect","(set: $collectionStatus to it + (a:'Backed Up'))
(set: $playerItems's last's effect to '')",
"citation",15,
"pool","videogames",
"unlocked",true,
"image","cloud-network.png",
),
(dm:"name","Treetop",
"description","They aren't the newest movies, but you can host a much wider selection of media once more people find out.",
"effect","(set: $communityMeter to it * 1.15)",
"citation",16,
"pool","streaming",
"unlocked",true,
"image","film-roll.png",
),
(dm:"name","Patron-Driven Acquisitions Trial",
"description","A patron adds this item to the library by request, and you can't get rid of it anymore... Oh well, it was worth it!",
"effect","(set: $collectionStatus to it + (a:'PDA'))
(set: $playerItems's last's effect to '')",
"citation",17,
"pool","general",
"unlocked",true,
"image","like.png",
),
(dm:"name","Streampass",
"description","Expands your streaming collection for a brief time, but it's very expensive.",
"effect","(set: $collectionAmount to it + 45)(set: $communityMeter to it + .15)(if: $collectionStatus contains 'Expensive')[(set: $playerItems's last's effect to '')]",
"citation",19,
"pool","streaming",
"unlocked",true,
"image","play-button.png",
),
(dm:"name","Cardboard Virtual Reality",
"description","Gives your library simple VR access for a fraction of the cost.",
"effect","(set: $collectionAmountMAX to it * 1.2)(set: $collectionEnergy to it + 1)",
"citation",20,
"pool","VR",
"unlocked",true,
"image","shipping-box.png",
),
(dm:"name","Hyper Hunt VR Headset",
"description","A mysterious benefactor is pleased with your support for VR and has gifted you an expensive Hyper Hunt headset. Because it would be too expensive to replace, the headset can only be used in the library.",
"effect","(set: $collectionEnergy to it + 2)(set: $playerItems's last's effect to '')",
"citation",21,
"pool","VR",
"unlocked",true,
"image","vr-glasses.png",
),
(dm:"name","Alexandra Road License",
"description","The library system has decided to invest in a subscription license to the academic video streaming database Alexandra Road. The license restricts how many user can access the database simultaneously and requires quarterly renewals.",
"effect","(if: ($level % 3) is 0)[(set: $communityMeter to it + .15)]",
"citation",22,
"pool","streaming",
"unlocked",true,
"image","sticker.png",
),
(dm:"name","Liber+",
"description","A new video streaming provider has come onto the scene offering a unique subscription model with unlimited, simultaneous streaming. However, to convince the Director to invest, you'll have to cut budget for your other streaming options.",
"effect","(if: $collectionStatus contains 'Expensive')[(set: $collectionStatus to it - (a:'Expensive'))](if: $collectionStatus does not contain 'PDA')[(move: (either: ...$playerItems) into _bin)(move: (either: ...$playerItems) into _bin)(move: (either: ...$playerItems) into _bin)](set: $communityMeter to it + .2)(set: $playerItems's last's effect to '')",
"citation",23,
"pool","streaming",
"unlocked",true,
"image","cloud.png",
),
(dm:"name","The Centuria Collection",
"description","New streaming option for niche films, but it takes budget from dvd options",
"effect","(if: $communityMeter is < .55)[(set: $communityMeter to it * 1.2)]",
"citation",1,
"pool","streaming",
"unlocked",true,
"image","sticker.png",
),
(dm:"name","RetroArchives",
"description","Old games. Modern format. A virtual ship of Theseus– a fleet of Theseus even!",
"effect","(set: $collectionAmountMAX to it * (1+$communityMeter))",
"citation",32,
"pool","videogames",
"unlocked",true,
"image","sticker.png",
),
(dm:"name","A Bunch Of Games Magazines?",
"description","How are we even gonna archive these? Well they'll probably help get people off the games themselves",
"effect","(set: $collectionEnergy to it + 1)(set: $communityMeter to it * 1.05)",
"citation",33,
"pool","videogames",
"unlocked",true,
"image","sticker.png",
)
)
)
(set: $addItem to (macro: str-type _name,[
(output-data: (find: _item where _item's name contains _name, ... $items))
]))
(set: $printItem to (macro: num-type _item, [
(size:0.7)+(box:"=XXXXX=")+(border:"solid")+(output:)[\
##(print:$items's _item's name)
|=
''Effect'': (print:$items's _item's effect)
''Quote'': (print:$items's _item's quote)
''Description'': (print:$items's _item's description)
=|
//(print:$items's _item's citation)//
]
]))
(set: $printItemFromName to (macro: str-type _itemname, [
(find: _item where _item's name contains _itemname, ... $items)
(size:0.7)+(box:"=XXXXX=")+(border:"solid")+(output:)[\
##(print:$items's _item's name)
|=
''Effect'': (print:$items's _item's effect)
''Quote'': (print:$items's _item's quote)
''Description'': (print:$items's _item's description)
=|
//(print:$items's _item's citation)//
]
]))
<!--
EXAMPLE:
|==
($printItem: (random: 1,$items's length))
==|
($printItemFromName: "test item streaming")
==|
($printItemFromName: "test item streaming")
|==|
-->
}
{(if: $resetItemsPassage)[
(set: $itemOptions to (a:))
(set: $level to it + 1)
(set: $choice to 0)
(for: each _i, ...(range:1,$NumberOfChoices))[
(if: $playerAvailableItems is not an empty)[
(move: $playerAvailableItems's random into $itemOptions's _i)
]
]
](set: $resetItemsPassage to false)(set: $resetEventsPassage to true)
(set: _timeLeft to ($roundLengths - $level)+1)
<div class="body">
<div class="content">
<h3>(if: _timeLeft > 1)[_timeLeft months until the Library Director visits!](else-if: _timeLeft is 1)[The Library Director arrives next month!](else:)[The Library Director is almost here!]</h3>
<p>With a new month comes new additions to your library.</p>
<p>Choose an item or start a new collection.</p>
</div>
<div class="choice">
(for: each _itemOption, ...$itemOptions)[
<div class="choice-item">
(link: "<span title='"+ (str-replaced: '\'', '', (str-replaced: ':','',_itemOption's effect)) +"'>"+ _itemOption's name+"</span>")[
(set: $choice to _itemOption)
(go-to: "Update item code")
]
|bib>[(link:"<span title='Select to read the quote that inspired this item.'>^^`[`"+(str:_itemOption's citation)+"`]`^^</span>")[(link:"^^`[`Return`]` ^^")[(rerun:?bib)]($showQuote: _itemOption's citation)]]
</div>
]
(if: $unlockedCollections's length > 0)[
<h4>Or start a new collection:</h4>
(for: each _collectionType, ...$unlockedCollections)[
<div class="choice-item">
(link: _collectionType)[
(set: $choice to "New collection")
(set: $LastCollectionChoice to _collectionType)
(go-to: "Update item code")
]
</div>
]
]
</div>
</div>
}{(if: $resetEventsPassage)[
(set: $chosenEvent to (find: _event where _event's unlocked is true and _event's difficulty is "light" and _event's type is not in $unlockedCollections and _event's title is not in $eventsUsed, ...$events)'s random)
(set: $eventsUsed to it + (a:$chosenEvent's title))
(set: $biblink to $chosenEvent's citation)
(for: each _i, ...$playerItems)[
(if: _i contains "effect")[
(print: _i's effect)
]
]
(set: $collectionAmount to it + (random:(round:$collectionAmountMIN),(round:$collectionAmountMAX)))
]
(set: $resetItemsPassage to true)(set: $resetEventsPassage to false)
<div class="body">
<div class="content">
<h3>(print: $chosenEvent's title + " ")
|bib>[(link:"<span title='Select to read the quote that inspired this event.'>^^`[`"+(str: $biblink)+"`]`^^</span>")[(link:"^^`[`Return`]` ^^")[(rerun:?bib)]($showQuote: $biblink)](set: $bib's $biblink's unlocked to true)]
</h3>
<br>
(print: $chosenEvent's eventText1)
<br>
(print: $chosenEvent's eventText2)
</div>
<div class="choice">
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 1st))+"'>"+$chosenEvent's choicesText's 1st+"</span>" , "Let's Begin!")[(print: $chosenEvent's choicesEffects's 1st)]
</div>
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 2nd))+"'>"+$chosenEvent's choicesText's 2nd+"</span>" , "Let's Begin!")[(print: $chosenEvent's choicesEffects's 2nd)]
</div>
(if: $chosenEvent's choicesText's length is 3)[
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 3rd))+"'>"+$chosenEvent's choicesText's 3rd+"</span>" , "Let's Begin!")[(print: $chosenEvent's choicesEffects's 3rd)]
</div>
]
</div>
</div>
}
(text-style:"blur")[(font:"Courier")[(live: 0.04s)[(random:0,9)] (live: 0.07s)[(either: "Seconds", "Minutes", "Hours ", "Days ", "Weeks ", "Months ", "Years ", "Decades", "Time ")]]]________________________________________________________
--Test Code--
All available items:
(for: each _item, ...$playerAvailableItems)[(print: " " + _item's name + ",")]
Your current items:
(print: $playerItems)
________________________________________________________
--Test Code--
All available items:
(print: (altered: via its name, ...$playerAvailableItems))
{(set: $NumberOfChoices to 2)<!--Choices revealed to player each round-->
(set: $playerItems to (a:(dm:)))<!--Player Items Holder-->
(set: $communityMeter to .2)<!--Percentage for current public support meter-->
(set: $collectionEnergy to 5)<!--Energy amount for VR collection-->
(set: $collectionAmount to 0)<!--Number of games for videogames collection-->
(set: $collectionAmountMIN to 0)<!--minimum games gained per turn-->
(set: $collectionAmountMAX to 0)<!--maximum games gained per turn-->
(set: $collectionStatus to (a:))<!--Collection's current statuses-->
(set: $collectionCount to 1)<!--Number of different collections held-->
(set: $level to 0)<!--Current Rounds or Level-->
(set: $trend to (a:0,0,0,0,0))<!--Current library collections that are trending. -->
<!--(a:"Streaming", "VR", "Videogames","Audio Streaming","Digital Magazines")-->
(set: $wins to 0)
(set: $losses to 0)
(set: $difficulty to "None")
}{
(if: $collectionEnergy is < 0)[(set: $collectionEnergy to 0)]
(if: $communityMeter is > 1)[(set: $communityMeter to 1)]
(set: $collectionAmount to (round: $collectionAmount))
(set: _temp to (round:$communityMeter*100))
(link:'<div class="footer-header">Stats</div>
<div class="footer-content">
<div class="footer-item" title="This is you!">
<img class="profile-pic" src="assets/monkey-monster.png"/>
</div>
<div class="footer-item" title="The amount of energy you have to maintain your virtual reality (VR) collection.">
<div>Energy</div>
<div class="footer-item-stats">
<div>$collectionEnergy</div>
<img src="assets/power-up.png"/>
</div>
</div>
<div class="footer-item" title="The amount the community approves of and supports your collection.">
<div>Community</div>
<div class="footer-item-stats">
<div>_temp%</div>
<img src="assets/theater.png"/>
</div>
</div>
<div class="footer-item" title="The amount of physical copies of video games in your collection.">
<div>Games</div>
<div class="footer-item-stats">
<div>$collectionAmount</div>
<img src="assets/cd.png"/>
</div>
</div>
</div>')[(goto: "Stats")]
}{(if: $resetEventsPassage)[
(set: $chosenEvent to (find: _event where _event's unlocked is true and _event's difficulty is "heavy" and _event's type is not in $unlockedCollections and _event's title is not in $eventsUsed, ...$events)'s random)
(set: $eventsUsed to it + (a:$chosenEvent's title))
(set: $biblink to $chosenEvent's citation)
(for: each _i, ...$playerItems)[
(if: _i contains "effect")[
(print: _i's effect)
]
]
(set: $collectionAmount to it + (random:(round:$collectionAmountMIN),(round:$collectionAmountMAX)))
]
(set: $resetItemsPassage to true)(set: $resetEventsPassage to false)
<div class="body">
<div class="content">
<h3>(print: $chosenEvent's title + " ")
|bib>[(link:"<span title='Select to read the quote that inspired this event.'>^^`[`"+(str: $biblink)+"`]`^^</span>")[(link:"^^`[`Return`]` ^^")[(rerun:?bib)]($showQuote: $biblink)](set: $bib's $biblink's unlocked to true)]
</h3>
<br>
(print: $chosenEvent's eventText1)
<br>
(print: $chosenEvent's eventText2)
</div>
<div class="choice">
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 1st))+"'>"+$chosenEvent's choicesText's 1st+"</span>" , "Let's Begin!")[(print: $chosenEvent's choicesEffects's 1st)]
</div>
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 2nd))+"'>"+$chosenEvent's choicesText's 2nd+"</span>" , "Let's Begin!")[(print: $chosenEvent's choicesEffects's 2nd)]
</div>
(if: $chosenEvent's choicesText's length is 3)[
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 3rd))+"'>"+$chosenEvent's choicesText's 3rd+"</span>" , "Let's Begin!")[(print: $chosenEvent's choicesEffects's 3rd)]
</div>
]
</div>
</div>
}{(if: $resetEventsPassage)[
(set: $chosenEvent to (find: _event where _event's type is $playerCollection's type and _event's difficulty is "final", ...$events)'s random)
(set: $biblink to $chosenEvent's citation)
(for: each _i, ...$playerItems)[
(if: _i contains "effect")[
(print: _i's effect)
]
]
(set: $collectionAmount to it + (random:(round:$collectionAmountMIN),(round:$collectionAmountMAX)))
]
(set: $resetItemsPassage to true)(set: $resetEventsPassage to false)
<div class="body">
<div class="content">
<h3>(print: $chosenEvent's title + " ")
|bib>[(link:"<span title='Select to read the quote that inspired this event.'>^^`[`"+(str: $biblink)+"`]`^^</span>")[(link:"^^`[`Return`]` ^^")[(rerun:?bib)]($showQuote: $biblink)](set: $bib's $biblink's unlocked to true)]
</h3>
<br>
(print: $chosenEvent's eventText1)
<br>
(print: $chosenEvent's eventText2)
</div>
<div class="choice">
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 1st))+"'>"+$chosenEvent's choicesText's 1st+"</span>" , "Resolution")[(print: $chosenEvent's choicesEffects's 1st)]
</div>
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 2nd))+"'>"+$chosenEvent's choicesText's 2nd+"</span>" , "Resolution")[(print: $chosenEvent's choicesEffects's 2nd)]
</div>
(if: $chosenEvent's choicesText's length is 3)[
<div class="choice-item">
(link-reveal-goto: "<span title='"+(str-replaced: '\'', '', (str-replaced: ':','',$chosenEvent's choicesEffects's 3rd))+"'>"+$chosenEvent's choicesText's 3rd+"</span>" , "Resolution")[(print: $chosenEvent's choicesEffects's 3rd)]
</div>
]
</div>
</div>
}{(set: $winner to false)
(set: $currentUnlockedCount to 0)
(set: $currentLockedCount to 0)
(if: $communityMeter > .9*$difficultyMultiplier or $communityMeter > .99 and $playerCollection's type is "streaming")[
(set: $winner to true)
](if: $collectionEnergy > (trunc: 5*$difficultyMultiplier) and $playerCollection's type is "VR")[
(set: $winner to true)
](if: $collectionAmount > 50*$difficultyMultiplier and $playerCollection's type is "videogames")[
(set: $winner to true)
]
<div class="body">
<div class="content">
<h3>The Library Director enters...</h3>
(if: $winner)[
They take a walk around the library, admiring your work. "You've really changed this place for the better," they say. "Want to continue your work in the new fiscal year?"
(set: $wins to it + 1)
](else:)[
They take one look around and sigh. "(if: $playerCollection's type is "streaming")[The community doesn't seem happy enough...](if: $playerCollection's type is "VR")[You seem so wiped out and tired...](if: $playerCollection's type is "videogames")[There really aren't enough games in here...] Do you want to try again in the new fiscal year?"
(set: $losses to it + 1)
]
}
<br>
Final Statistics:<br>
(if:$wins+$losses is > 1)[Your difficulty for this run was set to: ''$difficulty''](else:)[''You've unlocked difficulty selections!'']<br>
Your collection began with ''(print: $playerCollection's name)'' and from there you developed $collectionCount different collections.<br>
You went for $level rounds before The Director came.<br>
This is your (str-nth: $wins + $losses) time through the game.<br>
You've seen (for: each _bib, ...$bib)[(if: _bib's unlocked is true)[(set: $currentUnlockedCount to it + 1)](else-if: _bib's unlocked is false)[(set: $currentLockedCount to it + 1)]]$currentUnlockedCount bibliography sources out of a total (print:$currentLockedCount+$currentUnlockedCount) sources. Only $currentLockedCount more to go!
{
</div>
<div class="choice">
<div class="choice-item">
[[Yes, try again ->Game Over]]
</div>
<div class="choice-item">
[[Credits]]
</div>
</div>
</div>
}(live: 0s)[(go-to: "Choose Your Starting Collection")]
<!--Reset all global variables except All Unlocks-->
{(set: $NumberOfChoices to 2)<!--Choices revealed to player each round-->
(set: $playerItems to (a:(dm:)))<!--Player Items Holder-->
(set: $communityMeter to .2)<!--Percentage for current public support meter-->
(set: $collectionStatus to (a:))<!--Collection's current statuses-->
(set: $collectionEnergy to 5)
(set: $collectionAmount to 0)
(set: $collectionCount to 1)<!--Number of different collections held-->
(set: $level to 0)<!--Current Rounds or Level-->
(set: $trend to (a:0,0,0,0,0))<!--Current library collections that are trending. -->
<!--(a:"Streaming", "VR", "Videogames","Audio Streaming","Digital Magazines")-->
{(print: $chosenEvent's choicesEffects's $chosenEventsEffect)
(set: $collectionAmount to it + (random: $collectionAmountMIN,$collectionAmountMAX))
(if:$communityMeter is > 1)[(set: $communityMeter to 1)]
}
<br>
Your current items:
(for: each _item, ...$playerItems)[(if: _item is not an empty)[(print: " " + _item's name + ",")]]
Plot-Important Stats:
The community is currently behind you (print: (round:$communityMeter*100))%
You have $collectionEnergy Energy left for your collection
You are holding on to $collectionAmount games total
Your collection's current status is: $collectionStatus
Other Stats:
Your current amount of choices each turn is: (print: $NumberOfChoices)
Your library currently has $collectionCount different collections
Each turn you will gain between $collectionAmountMIN and $collectionAmountMAX games
<!-- https://twinery.org/forum/discussion/6576/hide-a-footer-in-only-one-passage-harlowe -->
{
<div class="footer-body">
(set: $tags to (passage:)'s tags)
(if: not ($tags contains "no-footer"))[
(display: "yesfooter")]
(else:)[(display: "nofooter")]
</div>
}
<!--Show nothing, because there shouldn't be a footer. Mainly used on the Collection and Community screens so there isn't an infinite amount of back and forth loops! -->{
<div class="body stats">
<div class="content">
<div class="collection-header-wrapper"> <div class="collection-header"><h1>Stats</h1></div> </div>
(set: _timeLeft to ($roundLengths - $level)+1)
<p>(if: _timeLeft > 1)[_timeLeft months until the Library Director visits!](else-if: _timeLeft is 1)[The Library Director arrives next month!](else:)[The Library Director is almost here!]</p>
<div class="stat-section">
<h2><img src="assets/power-up.png"/> Energy</h2>
<p>Energy level: $collectionEnergy out of 10</p>
<!-- <p>You have $collectionEnergy Energy left for your collection</p> -->
<!-- <p>You are holding on to $collectionAmount games total</p> -->
</div>
<hr>
<div class="stat-section">
<h2><img src="assets/theater.png"/> Community</h2>
<p>(print: (round:$communityMeter*100))% of the community is currently behind you.</p>
<!-- <p>You have $collectionEnergy Energy left for your collection</p> -->
<!-- <p>You are holding on to $collectionAmount games total</p> -->
</div>
<hr>
<div class="stat-section">
<h2><img src="assets/case-file.png"/> Collection</h2>
<p>Your collection's current status is: $collectionStatus</p>
<p>Amount of physical video games: $collectionAmount </p>
<p>Increasing by a minimum of (min: $collectionAmountMIN, $collectionAmountMAX) and a maximum of (max: $collectionAmountMIN, $collectionAmountMAX) each round. </p>
<div class="collection-wrapper">
(for: each _item, ...$playerItems)[(if: _item is not an empty)[
(print: "<div class='collection-item-wrapper'><img src='assets/"+ _item's image +"'/> <div class='collection-item-content'>" + "<h4>" + _item's name + "</h4>" + "<p><i>" + _item's description + "</i></p>" + "</div></div>")
]
]
</div>
</div>
<hr>
<div class="stat-section">
<h2>Discovered bibliography entries</h2>
(for:each _bib where _bib's unlocked is true, ...$bib)[
(if: _bib is not an empty)[
(print: "<div class='bib-item-wrapper'>" +"<p>" + _bib's quote +"</p>" + "<p>" + _bib's citation +"</p>" + "</div>")
<!-- + "<p>" + _bib's effectText +"</p>" -->
]
]
(for:each _bib where _bib's unlocked is false, ...$bib)[
<p>
LOCKED <!--: (print:_bib's unlockText)-->
</p>
]
<h3>Icons used</h3>
“Backpack Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/backpack_5635979. Accessed 30 Nov. 2024. <br>
“Case File Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/case-file_8131991. Accessed 30 Nov. 2024.<br>
“Cd Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/cd_7760529. Accessed 30 Nov. 2024.<br>
“Cloud Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/cloud_8777537. Accessed 30 Nov. 2024.<br>
“Cloud Network Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/cloud-network_8777535. Accessed 30 Nov. 2024.<br>
“Computer Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/computer_7930052. Accessed 30 Nov. 2024.<br>
“Database Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/database_4937143. Accessed 30 Nov. 2024.<br>
“Film Roll Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/film-roll_7760478. Accessed 30 Nov. 2024.<br>
“Folder Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/folder_8671815. Accessed 30 Nov. 2024.<br>
“Gamepad Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/gamepad_2865532. Accessed 30 Nov. 2024.<br>
“Gamepad Free Icons Designed by Freepik, Renamed as ‘Gamepad-Old.’” Flaticon, https://www.flaticon.com/free-icon/gamepad_7747843. Accessed 30 Nov. 2024.<br>
“Gaming Console Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/gaming-console_7760481. Accessed 30 Nov. 2024.<br>
“Gaming Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/gaming_7760513. Accessed 30 Nov. 2024.<br>
“Happy Mask Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/happy-mask_5692568. Accessed 30 Nov. 2024.<br>
“Like Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/like_5202024. Accessed 30 Nov. 2024.<br>
“Medal Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/medal_5635920. Accessed 30 Nov. 2024.<br>
“Mistery Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/mistery_5979436. Accessed 30 Nov. 2024.<br>
“Pc Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/pc_7760533. Accessed 30 Nov. 2024.<br>
“Play Button Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/play-button_7930016. Accessed 30 Nov. 2024.<br>
“Power Up Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/power-up_5979673. Accessed 30 Nov. 2024.<br>
“Monkey Monster Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/monkey-monster_9307330. Accessed 1 Dec. 2024.<br>
“Remote Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/remote_7184928. Accessed 30 Nov. 2024.<br>
“Send Money Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/send-money_7189365. Accessed 30 Nov. 2024.<br>
“Shipping Box Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/shipping-box_6110093. Accessed 30 Nov. 2024.<br>
"Sticker - Free Miscellaneous Icons." Flaticon, https://www.flaticon.com/free-icon/sticker_8132833. Accessed 30 Nov. 2024.<br>
“Theater Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/theater_5692539. Accessed 30 Nov. 2024.<br>
“Toy Car Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/toy-car_7760540. Accessed 30 Nov. 2024.<br>
“Tragedy Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/tragedy_5692537. Accessed 30 Nov. 2024.<br>
“TV Stand Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/tv-stand_8580947. Accessed 30 Nov. 2024.<br>
“Vr Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/vr_5815870. Accessed 30 Nov. 2024.<br>
“Vr Glasses Free Icons Designed by Freepik.” Flaticon, https://www.flaticon.com/free-icon/vr-glasses_7747859. Accessed 30 Nov. 2024.<br>
</div>
</div>
<div class="choice">
<div class="choice-item">
(link-goto: "↜Back", (history:)'s last)
</div>
</div>
</div>
<!-- FROM THE "CURRENT STATS" PAGE, THAT SEEMS TO BE UNUSED
(print: $chosenEvent's choicesEffects's $chosenEventsEffect)
(set: $collectionAmount to it + (random: $collectionAmountMIN,$collectionAmountMAX))
(if:$communityMeter is > 1)[(set: $communityMeter to 1)]
Other Stats:
Your current amount of choices each turn is: (print: $NumberOfChoices)
Your library currently has $collectionCount different collections
Each turn you will gain between $collectionAmountMIN and $collectionAmountMAX games
-->
}{
(if: $level % 3 is 0)[
(set: $nextEvent to "Heavy Event")
](else-if: $level % $roundLengths is 0)[
(set: $nextEvent to "Final Event")
](else:)[
(set: $nextEvent to "Light Event")
]
(if: $choice is not "New collection")[
<!--(set: $l to $playerItems's length + 1)
(if: $playerItems's 1 is an empty)[(set: $l to 1)]-->
(set: $itemOptions to it - (a:$choice))
(set: $playerAvailableItems to it + $itemOptions)
(set: $playerItems to it + (a:$choice))
](else:)[
(set: $unlockedCollections to it - (a:$LastCollectionChoice))
(set: $playerAvailableItems to it+(find: _itemPool where _itemPool's unlocked is
true and _itemPool's pool is (find: _col where _col's name is $LastCollectionChoice, ...$collections)'s 1st's type, ...$items))
(set: $playerAvailableItems to it + $itemOptions)
(set: $collectionCount to it + 1)
]
(live: 0s)[(go-to: $nextEvent)]
}{(set: $itemOptions to (a:))
(set: $level to it + 1)
(set: $choice to 0)
<div class="body">
<div class="content">
<h1>Choose a new item</h1>
<p>With a new month comes new additions to your library.</p>
<p>Choose an item or start a new collection. Hover over an item for more information.</p>
(if: $level % 3 is 0)[
(set: $nextEvent to "Heavy Event")
](else-if: $level % 7 is 0)[
(set: $nextEvent to "Final Event")
](else:)[
(set: $nextEvent to "Light Event")
]
Click to lock in your choice:
<br>
(link-reveal-goto: $nextEvent)[
(if: $choice is not "New Collection")[
(set: _l to $playerItems's length + 1)
(if: $playerItems's 1 is an empty)[(set: _l to 1)]
(move: $itemOptions's $choice into $playerItems's _l)
(set: $playerAvailableItems to it + $itemOptions)
(print: $playerItems's last's effect)
](else:)[
(set: $unlockedCollections to it - (a:$LastCollectionChoice))
(set: $playerAvailableItems to it+(find: _itemPool where _itemPool's unlocked is
true and _itemPool's pool is $LastCollectionChoice, ...$items))
(set: $playerAvailableItems to it + $itemOptions)
(set: $collectionCount to it + 1)
]
]
</div>
<div class="choice">
(for: each _i, ...(range:1,$NumberOfChoices))[
(if:$playerAvailableItems is not an empty)[
(move: $playerAvailableItems's random into $itemOptions's _i)
(link-repeat: $itemOptions's _i's name)[
(set: $choice to _i)
(show: ?choice)
(hide: ?collectionChoice)
]
[(link:"^^`[`"+(str:$itemOptions's _i's citation)+"`]`^^")[(link:"^^`[`Quote`]` ^^")[(link:"^^`[`Return`]` ^^")[(rerun:?bib)]($showQuote: $itemOptions's _i's citation)](link:"^^`[`Citation`]` ^^")[(link:"^^`[`Return`]` ^^")[(rerun:?bib)]($showBibliography: $itemOptions's _i's citation)]]]
]
]
(for: each _collectionType, ...$unlockedCollections)[
(link: _collectionType)[
(set: $LastCollectionChoice to _collectionType)
(go-to: "Starting Sequence")
]
]
</div>
</div>}
<! --
(if: $unlockedCollections's length > 0)[
(link-repeat: "Add a new Collection")[
(set: $choice to "New Collection")(hide: ?choice)(show: ?collectionChoice)
]
]
[(live:0.1s)[(a:$itemOptions's $choice)]]
[[Add a new collection to your library?
(if: $unlockedCollections's length > 1)[
(cycling-link: bind $LastCollectionChoice, ...$unlockedCollections)
](else:)[
(set: $LastCollectionChoice to $unlockedCollections's 1st)
(link-repeat: $unlockedCollections's 1st)[]
]
]]
-->Choose your character:
|image>[<img src="assets/monkey-monster.png">]
(link-rerun:"monkey")[
(replace:?image)[<img src="assets/monkey-monster.png">(after: 1s)[(rerun:?image)(set: $character to 'monkey-monster')]]
]
(link-rerun:"sculpture")[
(replace:?image)[<img src="assets/sculpture.png">(after: 1s)[(rerun:?image)(set: $character to 'sculpture')]]
]
(link-rerun:"tragedy")[
(replace:?image)[<img src="assets/tragedy.png">(after: 1s)[(rerun:?image)(set: $character to 'tragedy')]]
]
<img src="assets/monkey-monster.png">
(click-rerun: '<img src="assets/monkey-monster.png">')[(set: $character to 'monkey-monster')]
<img src="assets/tragedy.png">
(click-rerun: '<img src="assets/tragedy.png">')[(set: $character to 'tragedy')]
<img src="assets/sculpture.png">
(click-rerun: '<img src="assets/sculpture.png">')[(set: $character to 'sculpture')]{
<div class="body">
<div class="content">
<h3>You had a good run!</h3>
<p>Thanks so much for playing the game we made for Unviersity of Washington's LIS 570 course in Autumn 2024. Every time you play, there are more events, items, and bibliography entries to unlock.</p>
<p>Feel free to send this link to your friends and local librarians. We hope this is a way for people to better understand the complexities and challenges of digital collections.</p>
<p>Developers: Solon Scott (code), Nina Navazio (interface)</p>
<p>Content and support: Cecelia Barnett, Hailee Tomassone, Saskia Lane</p>
<p>Researchers: everyone :) </p>
[[Let's go again! ->Game Over]]
<div>
</div>
}