void BuildNarratives() { StoryBook nextBook = new StoryBook("Test Room"); { //All objects in a room get separate chapters //if an object can have more than 1 type of conversation in this room, it gets multiple chapters on separate dialogues StoryChapter nextChapter = NewChapter(1); //dialogue ID is passed in here { //Define all the pages this chapter (dialogue) will flip through along with its read time nextChapter.pages.Add(NewPage("Dialogue 1 Page 1 of new narrative, 2 seconds", 2.0f)); nextChapter.pages.Add(NewPage("Dialogue 1 Page 2 of new narrative, 1 seconds", 1.0f)); } //add the chapter to the book nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2); { //Define all the pages this chapter (dialogue) will flip through along with its read time nextChapter.pages.Add(NewPage("Dialogue 2 Page 1 of new narrative, 1 seconds", 1.0f)); nextChapter.pages.Add(NewPage("Dialogue 2 Page 2 of new narrative, 2 seconds", 2.0f)); nextChapter.pages.Add(NewPage("Dialogue 2 Page 3 of new narrative, 1 seconds", 1.0f)); } //add the chapter to the book nextBook.chapters.Add(nextChapter); } //add the book to the narrative allNarratives.Add(nextBook); BuildNarrative_OrphanageScene(); BuildNarrative_OrphanageScene_Examples(); }
public async Task <IActionResult> GetStory(int storyId, int chapterNo = 1, CancellationToken ctx = default) { const string storyProviderName = "FanFiction.Net"; const int fetchOperationTimeoutMilliSeconds = 4500; const string providerUrl = "https://www.fanfiction.net"; var endpointFragment = $"/s/{storyId}/{chapterNo}"; var storyProvider = new StoryProvider() { BaseUri = new Uri(providerUrl), UriFragment = new Uri(endpointFragment, UriKind.Relative), FetchRequestTimeoutMilliSeconds = fetchOperationTimeoutMilliSeconds, Name = storyProviderName }; try { var htmlDoc = await storyProvider.LoadFromWebAsync(ctx); if (storyProvider.LastStatusCodeReceived != HttpStatusCode.OK) { throw new StoryProviderException(RequestFailReason.UnexpectedResponseStatusCode, storyProvider); } var nodes = htmlDoc.DocumentNode.SelectNodes("//div").Where(n => n.HasClass("panel_normal")); if (nodes.Any()) { throw new StoryProviderException(RequestFailReason.UnexpectedResponseContent, storyProvider); } var chapterData = new StoryChapter { ChapterSeq = chapterNo, HtmlContent = htmlDoc.GetElementbyId("storytextp").OuterHtml }; return(Request.Headers["Accept"].FirstOrDefault()?.Split(',').FirstOrDefault() == "text/html" ? Ok(chapterData.HtmlContent) : Ok(chapterData)); } catch (Exception ex) { switch (ex) { case OperationCanceledException _: case StoryProviderException _: return(BadRequest(ex)); default: throw; } } }
public Task <IActionResult> Update(string entryId, EntryStoryUpdateModel model) => RunEntryAsync(entryId, Permission.Write, async entry => { string userId = HttpContext.User.FindUserId(); Story story = null; StoryChapter chapter = null; if (model.StoryId != null) { story = await shareStatus.OwnedByOrExplicitlySharedWithUser(db, db.Stories, userId) .Where(s => s.Id == model.StoryId) .Include(s => s.Chapters) .FirstOrDefaultAsync(); if (story == null) { model.StoryId = null; model.ChapterId = null; } else if (story.UserId != entry.UserId) { return(BadRequest()); } } if (model.ChapterId != null) { chapter = story.Chapters.FirstOrDefault(c => c.Id == model.ChapterId); if (chapter == null) { story = null; } } if (story == null) { entry.Story = null; entry.Chapter = null; } else if (chapter == null) { entry.Story = story; entry.Chapter = null; } else { entry.Story = null; entry.Chapter = chapter; } db.Entries.Update(entry); await db.SaveChangesAsync(); return(NoContent()); });
/// <summary> /// The main function for the state /// </summary> void IGame_State_Base.Main() { //Create the Dialogue Box dialogueBox = new Dialogue_UI(engCoreRef); //Load the story file and store it storyData = engCoreRef.Content.Load <StoryChapter>("Story_Data/Example_Story_Data"); //Set the initial display using the first line of the story dialogueBox.UpdateText(storyData.ChapterText[lineIndex]); dialogueBox.UpdateCharacterArt(storyData.ChapterText[lineIndex][2]); }
public static void SeedDatabase(AppDbContext context) { var chapters = new StoryChapter[] { new StoryChapter() { ChapterSeq = 1, HtmlContent = "<h1>BOO!</h1>", StoryGuid = Guid.NewGuid() } }; context.Chapters.AddRange(chapters); context.SaveChanges(); }
// Use this for initialization protected virtual void Start() { if (displayPages == null) { displayPages = new StoryChapter(); } if (linkNarrative && dialogueID != -1) { //Debug.Log("LinkNarrative now."); displayPages = new StoryChapter(); GameObject narrativeObject = GameObject.FindGameObjectWithTag("Narrative"); NarrativeStorage sceneStorage = narrativeObject.GetComponent <NarrativeStorage>(); //load the text from the story manager PullNarrativePages(sceneStorage); } transform.GetChild(0).gameObject.SetActive(false); }
private IReadOnlyCollection <StoryChapter> MapModelToEntity(StoryModel model, Story entity) { entity.Id = model.Id; entity.Title = model.Title; entity.Text = model.Text; for (int i = 0; i < model.Chapters.Count; i++) { var chapterModel = model.Chapters[i]; var chapterEntity = entity.Chapters.FirstOrDefault(c => c.Id == chapterModel.Id); if (chapterEntity == null) { entity.Chapters.Add(chapterEntity = new StoryChapter() { Created = DateTime.Now }); } chapterEntity.Id = chapterModel.Id; chapterEntity.Title = chapterModel.Title; chapterEntity.Text = chapterModel.Text; chapterEntity.Order = i + 1; } List <StoryChapter> toRemove = new List <StoryChapter>(); foreach (var chapterEntity in entity.Chapters) { if (!model.Chapters.Any(c => c.Id == chapterEntity.Id)) { toRemove.Add(chapterEntity); } } foreach (var chapterEntity in toRemove) { entity.Chapters.Remove(chapterEntity); } return(toRemove); }
public void PullNarrativePages(NarrativeStorage roomNarrative) { displayPages = new StoryChapter(); //Is this dialogue linked to the narrative? if (linkNarrative && roomNarrative != null) { //Debug.Log("narrative not null"); if (dialogueID != -1) { //Debug.Log("Find dialogue id: " + dialogueID.ToString()); //dialogueID is set, find the narrative chapter with the same dialogueID from StoryChapter findChapter = roomNarrative.FindChapter(dialogueID); if (findChapter != null) { //Debug.Log("Found Chapter"); displayPages = findChapter.GetClone(); } } } }
public Task <IActionResult> Get(string entryId) => RunEntryAsync(entryId, Permission.Read, entry => { StoryChapter chapter = null; Story story = null; if (entry.Chapter != null) { chapter = entry.Chapter; story = entry.Chapter.Story; } else if (entry.Story != null) { story = entry.Story; } var model = new EntryStoryModel() { StoryId = story?.Id, StoryTitle = story?.Title, ChapterId = chapter?.Id, ChapterTitle = chapter?.Title }; return(Task.FromResult <IActionResult>(Ok(model))); });
void BuildNarrative_OrphanageScene_Examples() { //Example narrative for SCC choice conversation StoryBook nextBook = new StoryBook("Orphanage Scene_Examples"); { //Softly Crying Cubie conversation w/ choice { StoryChapter nextChapter = NewChapter(1005); //Softly Crying Cubie { nextChapter.pages.Add(NewPage("Boo hoo. Boo hoo hoo.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1006); //Boxii response { nextChapter.pages.Add(NewPage("What's the matter?", 2.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1007); //Softly crying cubie response to ^ { nextChapter.pages.Add(NewPage("Oh, don't mind me, Boxii. I just can't sleep.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1008); //Boxii choice start text { nextChapter.pages.Add(NewPage("Is it because you had that dream where you were...", 3.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1009); //Boxii choices text { nextChapter.pages.Add(NewPage("...trying in vain to escape the clutches of horrible, grotesque monsters?", 3.5f)); //1 nextChapter.pages.Add(NewPage("...falling and falling until the ground opened up and swallowed you whole?", 3.5f)); //2 nextChapter.pages.Add(NewPage("...walking around all day with a piece of food stuck between your teeth?", 3.5f)); //3 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1016); //Boxii choices text1 { nextChapter.pages.Add(NewPage("Trying in vain to escape the clutches of horrible, grotesque monsters?", 3.5f)); //1 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1017); //Boxii choices text2 { nextChapter.pages.Add(NewPage("Falling and falling until the ground opened up and swallowed you whole?", 3.5f)); //2 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1018); //Boxii choices text3 { nextChapter.pages.Add(NewPage("Walking around all day with a piece of food stuck between your teeth?", 3.5f)); //3 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1010); //SCC choice responses 1 { nextChapter.pages.Add(NewPage("No.", 1.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1011); //SCC choice responses 2 { nextChapter.pages.Add(NewPage("No.", 1.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1012); //SCC choice responses 3 { nextChapter.pages.Add(NewPage("No.", 1.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1014); //SCC exhausted responses { nextChapter.pages.Add(NewPage("Actually, I'm just sad that you haven't returned with our food.", 3.0f)); nextChapter.pages.Add(NewPage("Now, if you don't mind, I'm going to cry myself to sleep.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1015); //Boxii exhausted response to ^ { nextChapter.pages.Add(NewPage("Don't worry. My nightly runs to the dump never fail!", 2.5f)); } nextBook.chapters.Add(nextChapter); } //Snoring Cubie conversation w/ choice { StoryChapter nextChapter = NewChapter(2001); //Snoring Cubie { nextChapter.pages.Add(NewPage("ZZZ-Zzzz-ZZzzz-hngGGggh-Mmppfft-zZZzzzZZ...", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2002); //Boxii response { nextChapter.pages.Add(NewPage("Uh, I’m going to need you to repeat that.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2003); //Snoring Cubie response to ^ { nextChapter.pages.Add(NewPage("ZZZ-Zzzz-had-zZZzz-enough-zZZzzzZZ...", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2004); //Boxii choices text { nextChapter.pages.Add(NewPage("Did you sneak some of the Sphere's food again?", 4.0f)); //1 nextChapter.pages.Add(NewPage("Is someone picking on you again?", 4.0f)); //2 nextChapter.pages.Add(NewPage("I've had about enough of the rancid air coming from the food chute.", 4.5f)); //3 nextChapter.pages.Add(NewPage("You're not already tired of my questions, are you?", 4.0f)); //4 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2005); //Boxii choices text1 { nextChapter.pages.Add(NewPage("Did you sneak some of the Sphere's food again?", 3.5f)); //1 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2006); //Boxii choices text2 { nextChapter.pages.Add(NewPage("Is someone picking on you again?", 3.5f)); //2 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2007); //Boxii choices text3 { nextChapter.pages.Add(NewPage("I've had about enough of the rancid air coming from the food chute.", 4.5f)); //3 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2008); //Boxii choices text4 { nextChapter.pages.Add(NewPage("You're not already tired of my questions, are you?", 3.5f)); //3 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2009); //Snoring Cubie choice responses 1 { nextChapter.pages.Add(NewPage("ZZZ-itchy-un-zZZz-controllable-zZZzzzZZ...", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2010); //Snoring Cubie choice responses 2 { nextChapter.pages.Add(NewPage("ZZZ-Zzzz-ZZzzz-time-out-zZZzzzZZ...", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2011); //Snoring Cubie choice responses 3 { nextChapter.pages.Add(NewPage("ZZZ-Zzzz-trroOOvff-Mmppfft-ZZzzz-zZZzzzZZ...", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2012); //Snoring Cubie choice responses 4 { nextChapter.pages.Add(NewPage("ZZZ-Zzzz-ZZzzz-nngGGggh-SSHhnno-zZZzzzZZ...", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2013); //Boxii replies to Snoring Cubie 1 { nextChapter.pages.Add(NewPage("I tried to warn you.", 2.0f)); nextChapter.pages.Add(NewPage("You never know what they may add to the food here.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2014); //Boxii replies to Snoring Cubie 2 { nextChapter.pages.Add(NewPage("Those Galena brothers are never up to any good.", 4.0f)); nextChapter.pages.Add(NewPage("I'll bet one of them got a timeout.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2015); //Boxii replies to Snoring Cubie 3 { nextChapter.pages.Add(NewPage("My nose would've fallen off by now if I had to sleep here.", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(2016); //Boxii replies to Snoring Cubie 4 { nextChapter.pages.Add(NewPage("Whoa, take it easy.", 2.5f)); nextChapter.pages.Add(NewPage("I'm just rying to get to the bottom of this.", 3.5f)); } nextBook.chapters.Add(nextChapter); } //Timeout Cubie conversation w/ choice { StoryChapter nextChapter = NewChapter(3001); //Timeout Cubie intro1 { nextChapter.pages.Add(NewPage("Psst...", 1.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3002); //Timeout Cubie intro2 { nextChapter.pages.Add(NewPage("PSST...", 1.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3003); //Boxii intro response1 { nextChapter.pages.Add(NewPage("Someone there?", 2.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3004); //Timeout Cubie response1 { nextChapter.pages.Add(NewPage("Down here, ya slab!", 2.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3005); //Boxii intro response2 { nextChapter.pages.Add(NewPage("There's no need for name-calling.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3006); //Timeout Cubie response2 { nextChapter.pages.Add(NewPage("Quiet!", 1.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3007); //Timeout Cubie response3 { nextChapter.pages.Add(NewPage("Now listen up...", 2.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3008); //Timeout Cubie response4 { nextChapter.pages.Add(NewPage("I've got a proposition for ya.", 2.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3009); //Boxii choices text { nextChapter.pages.Add(NewPage("What do you propose?", 100.0f)); //1 nextChapter.pages.Add(NewPage("Is there something in it for me?", 100.0f)); //2 nextChapter.pages.Add(NewPage("How'd you wind up in there anyway?", 100.0f)); //3 nextChapter.pages.Add(NewPage("I don't know if I'm proposition material.", 100.0f)); //4 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3010); //Boxii choices text1 { nextChapter.pages.Add(NewPage("What do you propose?", 2.5f)); //1 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3011); //Boxii choices text2 { nextChapter.pages.Add(NewPage("Is there something in it for me?", 3.0f)); //2 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3012); //Boxii choices text3 { nextChapter.pages.Add(NewPage("How'd you wind up in there anyway?", 3.0f)); //3 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3013); //Boxii choices text4 { nextChapter.pages.Add(NewPage("I don't know if I'm proposition material.", 3.0f)); //3 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3014); //Timeout Cubie choice responses 1 { nextChapter.pages.Add(NewPage("I need some property of mine returned to me.", 3.0f)); nextChapter.pages.Add(NewPage("It got misplaced right before I was thrown in here.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3015); //Timeout Cubie choice responses 2 { nextChapter.pages.Add(NewPage("You do this one thing for me and I’ll get you access to the storage room.", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3016); //Timeout Cubie choice responses 3 { nextChapter.pages.Add(NewPage("We was makin’ the exchange and--", 2.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3017); //Timeout Cubie choice responses 4 { nextChapter.pages.Add(NewPage("You made it past the Great Eye, didn’t ya?", 3.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3018); //Boxii replies to Timeout Cubie 1 { nextChapter.pages.Add(NewPage("What exactly am I looking for?", 2.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3019); //Boxii replies to Timeout Cubie 2 { nextChapter.pages.Add(NewPage("What’s in that dusty old room?", 2.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3020); //Boxii replies to Timeout Cubie 3 { nextChapter.pages.Add(NewPage("We?", 1.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3021); //Boxii replies to Timeout Cubie 4 { nextChapter.pages.Add(NewPage("That was purely blind luck.", 2.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3022); //Timeout Cubie replies to Boxii 1 { nextChapter.pages.Add(NewPage("It ain’t exactly legal, if you catch my drift.", 3.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3023); //Timeout Cubie replies to Boxii 2 { nextChapter.pages.Add(NewPage("I heard Ms. Mahble ain’t just usin’ this orphanage to provide cheap cubie labor.", 4.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3024); //Timeout Cubie replies to Boxii 3 { nextChapter.pages.Add(NewPage("I didn't say nothin'.", 1.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3025); //Boxii replies to Timeout Cubie--> "It ain't exactly..." { nextChapter.pages.Add(NewPage("So...", 1.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(3026); //Timeout Cubie replies to Boxii^ { nextChapter.pages.Add(NewPage("Let’s just say they’ll get me through this hard time.", 3.5f)); } nextBook.chapters.Add(nextChapter); } //Softly Crying Cubie conversation w/ choice example 2 { StoryChapter nextChapter = NewChapter(1101); //Softly Crying Cubie { nextChapter.pages.Add(NewPage("Boo hoo. Boo hoo hoo.", 3.0f)); nextChapter.pages.Add(NewPage("", 2.0f)); nextChapter.pages.Add(NewPage("Oh, don't mind me. I just can't sleep.", 3.0f)); nextChapter.pages.Add(NewPage("", 3.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1102); //Boxii response { nextChapter.pages.Add(NewPage("", 3.0f)); nextChapter.pages.Add(NewPage("What's the matter?", 2.0f)); nextChapter.pages.Add(NewPage("", 3.0f)); nextChapter.pages.Add(NewPage("Is it because you had that dream where you were...", 3.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1103); //Boxii choices text { nextChapter.pages.Add(NewPage("...trying in vain to escape the clutches of horrible, grotesque monsters?", 3.5f)); //1 nextChapter.pages.Add(NewPage("...falling and falling until the ground opened up and swallowed you whole?", 3.5f)); //2 nextChapter.pages.Add(NewPage("...walking around all day with a piece of food stuck between your teeth?", 3.5f)); //3 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1104); //Boxii choices text1 { nextChapter.pages.Add(NewPage("...trying in vain to escape the clutches of horrible, grotesque monsters?", 3.5f)); //1 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1105); //Boxii choices text2 { nextChapter.pages.Add(NewPage("...falling and falling until the ground opened up and swallowed you whole?", 3.5f)); //2 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1106); //Boxii choices text3 { nextChapter.pages.Add(NewPage("...walking around all day with a piece of food stuck between your teeth?", 3.5f)); //3 } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1107); //SCC choice responses 1 { nextChapter.pages.Add(NewPage("No.", 1.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1108); //SCC exhausted responses { nextChapter.pages.Add(NewPage("Actually, I'm just sad that you haven't returned with our food.", 3.0f)); nextChapter.pages.Add(NewPage("Now, if you don't mind, I'm going to cry myself to sleep.", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(1109); //Boxii exhausted response to ^ { nextChapter.pages.Add(NewPage("Don't worry. My nightly runs to the dump never fail!", 2.5f)); } nextBook.chapters.Add(nextChapter); } } //add the book to the narrative allNarratives.Add(nextBook); }
void BuildNarrative_OrphanageScene() { StoryBook nextBook = new StoryBook("Orphanage Scene"); { //Snoring Cubie conversation { StoryChapter nextChapter = NewChapter(100); //Snoring Cubie { nextChapter.pages.Add(NewPage("zzzzzZZZZZ... ", 2.0f)); nextChapter.pages.Add(NewPage("Stay away... no... salad", 2.0f)); nextChapter.pages.Add(NewPage("Can't help it... allergic...", 2.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(101); //Boxii response { nextChapter.pages.Add(NewPage("He must be dreaming about dinner earlier.", 3.0f)); nextChapter.pages.Add(NewPage("Maybe not.", 2.0f)); } nextBook.chapters.Add(nextChapter); } //***OBJECT POP-UPS*** //**DORMITORY** //*Loud Speakers { StoryChapter nextChapter = NewChapter(200); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("Ms. Mahble delivers daily words of encouragement through these.", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(201); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("Things like, “A good cubie is a silent cubie.”", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Food { StoryChapter nextChapter = NewChapter(202); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("Eating too much of this could cause blindness...", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(203); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("Or so I've heard.", 2.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(223); //Boxii Comment 3 { nextChapter.pages.Add(NewPage("Ugh...I hope it’s safe to carry.", 2.0f)); } nextBook.chapters.Add(nextChapter); } //*Tissue Box { StoryChapter nextChapter = NewChapter(204); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("The box reads, ‘At Osnosis, we pride ourselves on a 99.98% absorption rate of most nasal afflictions.’", 5.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(205); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("This could be handy. I'll just borrow it for a bit.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Food Trays { StoryChapter nextChapter = NewChapter(206); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("If Ms. Mahble can’t see her reflection in these, you’re going to get a timeout.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Food Chute { StoryChapter nextChapter = NewChapter(207); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("This duct runs through most of the orphanage.", 3.0f)); } nextBook.chapters.Add(nextChapter); } //*Food Chute Opening { StoryChapter nextChapter = NewChapter(209); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("This dispenses three square meals a day.", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(210); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("Cold air is coming out of the opening.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Box-in-a-Box toy { StoryChapter nextChapter = NewChapter(211); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("It sort of stopped working after it 'surprised' a curious cubie.", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(212); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("Ms. Mahble leaves it here as a reminder of what can happen to curious cubies.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Cubie Cubbies { StoryChapter nextChapter = NewChapter(221); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("We sleep in these.", 3.0f)); } nextBook.chapters.Add(nextChapter); } //*Serving Utensil { StoryChapter nextChapter = NewChapter(222); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("This week was my turn to shovel this slop onto trays for meal time.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //**Hallways** //*Orphanage Main Doors { StoryChapter nextChapter = NewChapter(213); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("Locked. After twelve years you’d think I’d have learned by now.", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(214); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("Eh...maybe tomorrow.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*The Great Eye { StoryChapter nextChapter = NewChapter(219); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("The One Eye sees and knows all!", 3.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(220); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("The Eye will see me if I get any closer.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Super Secret Code { StoryChapter nextChapter = NewChapter(225); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("Wow...", 2.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(226); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("Doesn’t get much more secure than this.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //**Kitchen** //*Food Chute Mixer { StoryChapter nextChapter = NewChapter(215); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("Watch in amazement as your favorite seasonings get sucked up into the mixer.", 4.5f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(216); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("All of the spices in Globuton couldn't save this food.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Empty Pepper Shaker { StoryChapter nextChapter = NewChapter(217); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("Someone REALLY likes pepper.", 3.0f)); } nextBook.chapters.Add(nextChapter); } //*Pepper Flakes { StoryChapter nextChapter = NewChapter(218); //Boxii Comment 1 { nextChapter.pages.Add(NewPage(".", 3.0f)); } nextBook.chapters.Add(nextChapter); } //*Keypad { StoryChapter nextChapter = NewChapter(224); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("I need the super secret code to unlock the door.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Trash can { StoryChapter nextChapter = NewChapter(227); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("I hope I don’t have to dig too long...", 4.0f)); } nextBook.chapters.Add(nextChapter); } //*Toy Blocks { StoryChapter nextChapter = NewChapter(228); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("Now who would go and throw away a perfectly good set of blocks?", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(231); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("It would be a crime to just leave them here.", 4.0f)); } nextBook.chapters.Add(nextChapter); } //**Storage Room** //*Pepper Shaker { StoryChapter nextChapter = NewChapter(232); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("The label reads, “Rich in vitamins, minerals, and anti-oxidants...”", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(233); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("”Warning! Excessive use may induce violent sneezing and other allergic reactions.”", 5.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(234); //Boxii Comment 3 { nextChapter.pages.Add(NewPage("The warnings continue, but I’m sure I’ll be fine.", 3.0f)); } nextBook.chapters.Add(nextChapter); } //*Crates { StoryChapter nextChapter = NewChapter(235); //Boxii Comment 1 { nextChapter.pages.Add(NewPage("", 4.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(236); //Boxii Comment 2 { nextChapter.pages.Add(NewPage("", 5.0f)); } nextBook.chapters.Add(nextChapter); nextChapter = NewChapter(237); //Boxii Comment 3 { nextChapter.pages.Add(NewPage("", 3.0f)); } nextBook.chapters.Add(nextChapter); } } //add the book to the narrative allNarratives.Add(nextBook); }