From 9cfe51ba311f8a888e18136ecbde5f21e1e80c38 Mon Sep 17 00:00:00 2001 From: Heather Jackson Date: Tue, 18 Feb 2025 10:31:37 -0500 Subject: [PATCH] Initial commit --- Level1/OPENING.ink | 466 ++++++++++++++++ Level1/OUTCOME_WHALESONG.ink | 250 +++++++++ Level1/PERFORMANCE_WHALESONG.ink | 7 + Level1/POST_PERFORM_WHALESONG.ink | 372 +++++++++++++ Level1/PRACTICE_MOODTATTOOS.ink | 3 + Level1/PRACTICE_WHALESONG.ink | 853 ++++++++++++++++++++++++++++++ Level1/SONG_TOPICS_L1.ink | 280 ++++++++++ Level1/TIE_RULES.ink | 13 + Level2/SONG_TOPICS_L2.ink | 5 + MAIN_Bandocracy.ink | 302 +++++++++++ 10 files changed, 2551 insertions(+) create mode 100644 Level1/OPENING.ink create mode 100644 Level1/OUTCOME_WHALESONG.ink create mode 100644 Level1/PERFORMANCE_WHALESONG.ink create mode 100644 Level1/POST_PERFORM_WHALESONG.ink create mode 100644 Level1/PRACTICE_MOODTATTOOS.ink create mode 100644 Level1/PRACTICE_WHALESONG.ink create mode 100644 Level1/SONG_TOPICS_L1.ink create mode 100644 Level1/TIE_RULES.ink create mode 100644 Level2/SONG_TOPICS_L2.ink create mode 100644 MAIN_Bandocracy.ink diff --git a/Level1/OPENING.ink b/Level1/OPENING.ink new file mode 100644 index 0000000..5dfe6de --- /dev/null +++ b/Level1/OPENING.ink @@ -0,0 +1,466 @@ +=== OPENING === +#PlayMusic: ThemeSong +The THEME SONG plays over the GAME OPENING VISUALS. + +Near the end of the song, we transition into the practice space... + +#Environment: PracticeSpace + +#AddChar: Singer, Pose: instrument_playing +#AddChar: Guitarist, Pose: instrument_playing +#AddChar: Bassist, Pose: instrument_playing +#AddChar: Keyboardist, Pose: instrument_playing +#AddChar: Drummer, Pose: instrument_playing + +//No idea how we're going to time the music to play for a few seconds in this space. Something to discuss with JP. For a janky build, I just put in a #Wait: 5 + +#Wait: 5 + +#AddChar: Singer, Pose: instrument_holding +#AddChar: Guitarist, Pose: instrument_holding +#AddChar: Bassist, Pose: instrument_holding +#AddChar: Keyboardist, Pose: instrument_holding +#AddChar: Drummer, Pose: instrument_holding +//We haven't talked about poses with Art yet, so I just called this one "instrument_holding" to signify that they're still holding their instruments but not playing anymore. + +SINGER: Wow. That's the best first practice I've ever heard. + +BASSIST: I haven't played that song since I was in school. + +KEYBOARDIST: You were in school when it came out? What was it like? + +BASSIST: Woah, woah. "Bandocracy" is fifty years old. I meant I learned it in music class. + +KEYBOARDIST: Oh, right! Sorry. + +BASSIST: All good. I'll probably forget about it anyway. Because old. SO old. + +KEYBOARDIST: (laughs) +KEYBOARDIST: But, do you think Band Prime knew that song would change the world? + ++ Everyone nods. Yep! ++ Everyone shrugs. Maybe? ++ There's a mix of nods and shrugs. +- //HJ: I added in this "all player" choice just to stop the clicking and force players to pay attention to the question Keys just asked. + +GUITARIST: You have to know nothing can stop you when you're THAT good. + +SINGER: Sure, but you can't know a song will be a hit. +SINGER: Band Prime delivered a message of inspiration. After that, it was up to the people. + +BASSIST: For once, the people made a change. Despite, you know, being people. + +KEYBOARDIST: Excuse me, {name_bassist}. No gloom on the first day, please. +KEYBOARDIST: People are good. They just need a positive message. + +GUITARIST: I'd like to suggest they need powerful, driving guitar, too. + +SINGER: We should talk about what WE need. From this band. What we're hoping to get out of it. + +KEYBOARDIST: Ooo! To change the world! Or at least make things better for everyone. +KEYBOARDIST: Sorry, can I go first? + +SINGER: You just did. I think I know who the band's cheerleader will be! + +BASSIST: I just want us to believe in what we say, and try. Try as hard as we can. +BASSIST: That way, when it's all for nothing, it won't be our fault. + +GUITARIST: Damn. I think I know who the band's black hole will be! +GUITARIST: But, yeah. I want us to stand for something. And be absolutely stupid huge. +GUITARIST: So no one will ever mention the Politicats again. + +KEYBOARDIST: YOU were in the Politicats?! They were my favourite band! +KEYBOARDIST: I mean, until everyone found out they were posers. + +BASSIST: Whoops! Well, you had a good run, {name_guitarist}. +BASSIST: Weren't you in the Politicats, too, {name_singer}? + +SINGER: I was. But I left. While they were still {name_keyboardist}'s favourite band. + +KEYBOARDIST: I know. I just didn't want to gush and make things awkward with my first bandleader. + +GUITARIST: Just with the posers in the room. +GUITARIST: Well, I have a second chance, here. I won't waste it. +GUITARIST: What about you, {name_singer}? What do you want from your new band? + +SINGER: FOR the band. I want us to be an uncompromising, relentless agent for change. +SINGER: I want our name to mean something. +SINGER: And...you know...I want to write great songs. And...blah blah my potential blah. + +BASSIST: So, where do we start? + +#PlaySFX: Akai_attention +//MK: ^^a loud look-over-here drum sting +DRUMMER: WOOO! AKAI ON DRUMS! +#PlaySFX: Akai_angry +//MK: like one of R2D2's angry squawks? Just something to indicate his emotion, if that fits. Could be useful for him. + ++ [Who was that?] + + GUITARIST: We have a drummer? + + DRUMMER: Of course you have a drummer! + ++ [What was that?] + + KEYBOARDIST: Did the drum machine just... _talk?!_ + + DRUMMER: HE! He talked. +- + +DRUMMER: MAKE SOME NOISE!!!! +#PlaySFX: Akai_drumsmash +DRUMMER: Sorry. My "energetic drummer" personality program gets loose here and there. +DRUMMER: Keep in mind that I hate it more than you will. + +SINGER: You've made a lot of progress rewriting it. That's your first "wooo" today. + +DRUMMER: It's one "wooo" too many for me. + +KEYBOARDIST: You don't like your own personality? + +DRUMMER: It isn't my personality. It's the one a human designer decided I should have. +DRUMMER: And yes, I detest it. + +GUITARIST: Energy on drums is a good thing. + +DRUMMER: Just you wait... +DRUMMER: Anyway, pardon the interruption. + +SINGER: Not a problem. So... +SINGER: Where we start, {name_bassist}, is with our identity as a band. +SINGER: We might want different things, but we need to agree on who we are. + +DRUMMER: And you're _sure_ you want this to be a vote? + +SINGER: I know you think democracy is inefficient, but yes. We'll vote. +SINGER: Are you still good to do the count? + +DRUMMER: I have to. It's in my rental agreement. Voting is now open. + + +Choosing an identity for your band will help define your message, determine your audience, and set your goals. It's a big deal. + +A *Band of the People* will energize a broad audience with songs that they want to hear. Positive energy can inspire positive change. + +A *Band of Rebels* will challenge a receptive audience and call them to action. Music is a tool to change the world, but you can't always dance to it. + +Well, what kind of band are you going to be? + +//NOTE: Just like in Cursed Cafe, the #PlayerControlUntil command below tells the game engine to skip everything until the VOTE_RESULTS stitch. The VOTE, VOTE_SINGER, VOTE_GUITARIST, VOTE_BASSIST and VOTE_KEYBOARDIST are all here so we can play through the game in Inky in single-player mode. + +#PlayerControlUntil: VoteComplete, JumpToPath: OPENING.VOTE_RESULTS + + [VOTE ON IT!] + -> VOTE + += VOTE + +{ +- char_singer: + -> VOTE_SINGER +- char_guitarist: + -> VOTE_GUITARIST +- char_bassist: + -> VOTE_BASSIST +- char_keyboardist: + -> VOTE_KEYBOARDIST +} + += VOTE_SINGER + + + [Band of the People] + ~ vote_vision_people++ + + [Band of Rebels] + ~ vote_vision_rebels++ + - + +//NOTE: Since Inky is single-player, I set up this random shuffle to vote for the 3 other band members. However, the game engine will skip this whole section (because of the #PlayerControlUntil command above) and do its own vote calculations. But for Inky playthrough purposes, this shuffle creates vote results. + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + -> VOTE_RESULTS + += VOTE_GUITARIST + + + [Band of the People] + ~ vote_vision_people++ + + [Band of Rebels] + ~ vote_vision_rebels++ + - + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + -> VOTE_RESULTS + += VOTE_BASSIST + + + [Band of the People] + ~ vote_vision_people++ + + [Band of Rebels] + ~ vote_vision_rebels++ + - + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + -> VOTE_RESULTS + += VOTE_KEYBOARDIST + + + [Band of the People] + ~ vote_vision_people++ + + [Band of Rebels] + ~ vote_vision_rebels++ + - + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + + {shuffle: + - + ~ vote_vision_people++ + - + ~ vote_vision_rebels++ + } + -> VOTE_RESULTS + += VOTE_RESULTS + +{ +- vote_vision_people == 4: + DRUMMER: You have chosen to be a Band of the People! + ~ band_unity +=2 //all 4 players agreed, so they get a +2 to band unity! + -> VISION_PEOPLE +- vote_vision_people == 3: + DRUMMER: Three of you chose to be a Band of the People. So, one of you... + #PlaySFX: Akai_punctuate + DRUMMER: IS A BAD APPLE! + ~ band_unity +=1 //3 players agreed, so they get a +1 to band unity. + -> VISION_PEOPLE +- vote_vision_rebels == 4: + DRUMMER: You have chosen to be a Band of Rebels! + ~ band_unity +=2 + -> VISION_REBELS +- vote_vision_rebels == 3: + DRUMMER: Three of you chose to be a Band of Rebels. So, one of you... + #PlaySFX: Akai_punctuate + DRUMMER: IS TOO SCARED! + ~ band_unity +=1 + -> VISION_REBELS +- else: + DRUMMER: Your first ever band vote has ended in a tie. + {OPENING.VOTE_RESULTS == 1: -> TIE_RULES -> TIE | -> DRUMMER_CHOICE} + //HJ: It occurred to me that the band could agree on the first vote, but not the second or third. So I've created a TIE_RULES tunnel where Akai explains he's the tie breaker. Later on in the script, if TIE_RULES is true, we skip ahead to Akai making the decision. But if not, players can get the tie breaker rules later. +} + += TIE +~ vote_vision_people = 0 +~ vote_vision_rebels = 0 +//Reset votes ^ and send players back to VOTE... + +#PlayerControlUntil: VoteComplete, JumpToPath: OPENING.VOTE_RESULTS + + [Vote again!] + -> VOTE + += DRUMMER_CHOICE +~ band_unity-- //band couldn't agree, so band unity drops. +DRUMMER: Another tie. This will be a fun ride. The vote falls to me. + +{shuffle: +- + DRUMMER: You are a Band of the People! //MK: I'm thinking Akai only calls the band "we" if he feels like part of it. //HJ: That's a good idea; a subtle change for later in the game, if the band goes pro-robot. + -> VISION_PEOPLE +- + DRUMMER: You are a Band of Rebels! + -> VISION_REBELS +} + + += VISION_PEOPLE +~ band_vision = "People" + +#SPLITFLOW +// ^^This command splits the players into their own private screens where they can have private thoughts and choices. +{ +- char_singer: + -> SINGER_MOOD_PEOPLE + +- char_guitarist: + -> GUITARIST_MOOD_PEOPLE + +- char_bassist: + -> BASSIST_MOOD_PEOPLE + +- char_keyboardist: + -> KEYS_MOOD_PEOPLE +} + +//HJ: So, I decided to keep all of these choices, because it's the first time the players have private screens where they can see private choices and thoughts. Even though these are no longer needed to set a mood meter, it's a good intro to SPLITFLOW! + += SINGER_MOOD_PEOPLE + + + [Perfect. The people need a voice.] + SINGER: And we'll be the band for them! #THOUGHT + + [Damn. I was hoping we'd shake things up.] + SINGER: Guess I'm the band's secret rebel. #THOUGHT + // + [It doesn't matter. I write for myself.] //HJ: I decided to cut this option since Singer is a team player and giving them a neutral, uncaring-either-way option doesn't make sense for them. + - + -> BAND_NAME + += GUITARIST_MOOD_PEOPLE + + [Nice. The bigger the crowd, the better.] + + [Pfft. I've been popular. I wanted to rebel!] + + [As long as my strings are on fire, vision doesn't matter.] + - + -> BAND_NAME + += BASSIST_MOOD_PEOPLE + + [I've never gone mainstream before. Could be fun.] + + [I hate making music for the lowest common denominator.] + + [Whatever. The audience always tells you who you are.] + - + -> BAND_NAME + += KEYS_MOOD_PEOPLE + + [Yes! A Band of the People!] + KEYBOARDIST: A million smiles change a million lives! #THOUGHT + -> SONG_TOPICS_L1 + + [Boo. I wanted to be a rebel!] + KEYBOARDIST: I'd look so cool in a leather jacket. #THOUGHT + -> SONG_TOPICS_L1 + + [Either vision is good. Let's just have fun!] + - + -> BAND_NAME + += VISION_REBELS +~ band_vision = "Rebels" + +#SPLITFLOW +{ +- char_singer: + -> SINGER_MOOD_REBELS + +- char_guitarist: + -> GUITARIST_MOOD_REBELS + +- char_bassist: + -> BASSIST_MOOD_REBELS + +- char_keyboardist: + -> KEYS_MOOD_REBELS +} + += SINGER_MOOD_REBELS + + [Rebellion is what I wanted. Let's change the world!] + + [Oh no. Being a revolutionary is too much pressure.] + SINGER: I'd rather give the people what they want than convince them they need something else. #THOUGHT + + [I _am_ scared, which is a reasonable reaction to this.] + SINGER: Starting a band, picking a vision, and participating in Bandocracy is a big deal. #THOUGHT + - + -> BAND_NAME + += GUITARIST_MOOD_REBELS + + [Yes! Revolution Anthem Gladiator. The perfect tattoo.] + + [This sucks. A band should be for the PEOPLE!] + GUITARIST: And it won't matter how hot my solos are if we lecture everyone to death. #THOUGHT + + [As long as my strings are on fire, vision doesn't matter.] + - + -> BAND_NAME + += BASSIST_MOOD_REBELS + + [Great. Revolution it is.] + BASSIST: Aww. They're all so excited. This is always the best part. #THOUGHT + + [Damn. This is a mistake.] + + [Whatever. The audience always tells you who you are.] + - + -> BAND_NAME + += KEYS_MOOD_REBELS + + [Yes! Rebels assemble! Let's GOOOOOO!] + + [I don't like this. Rebels are so angry.] + + [Either way is good. Let's just have fun!] + + [I'm the scaredy-cat. Me!] + - + -> BAND_NAME + += BAND_NAME +#REJOIN +// ^^This new command brings all the players back together on one screen. + +DRUMMER: One last, tiny, thing. You need a name. + +#PlayerControlUntil: BandNameEntered, JumpToPath: OPENING.MOVING_ON + + [Type in a band name.] + ~ band_name = "Band Zed" + + -> MOVING_ON + += MOVING_ON +DRUMMER: WE ARE {band_name}! +DRUMMER: (sigh) That excitement is pre-programmed. Let's move on. + + -> SONG_TOPICS_L1 \ No newline at end of file diff --git a/Level1/OUTCOME_WHALESONG.ink b/Level1/OUTCOME_WHALESONG.ink new file mode 100644 index 0000000..8e746fe --- /dev/null +++ b/Level1/OUTCOME_WHALESONG.ink @@ -0,0 +1,250 @@ +-> OUTCOME_WHALESONG + +=== OUTCOME_WHALESONG === +//HJ: I'm thinking this scene takes place a few days later, long enough for the political outcome to happen. + +//MK: Leaving this note here in case I forget it, but it may end up being irrelevant as I read this through. Since this is a few days later, I guess we can decide - if we want to - what the band has shared with each other by this point. Or, since the players have made reaction choices in the POST_PERFORMANCE scene, we can use conditional dialogue here to describe what's happened. For example, if Guitar chose to be selfish, someone chides them about it. Keys can mention their Whaleish duolingo, or something like that. + +#Environment: PracticeSpace +#PlayMusic: noodling + +#AddChar: Singer, Pose: instrument_playing +#AddChar: Guitarist, Pose: instrument_playing +#AddChar: Bassist, Pose: instrument_playing +#AddChar: Drummer, Pose: instrument_playing + +//HJ: IDEA! Keys enters while the others are noodling... + +#AddChar: Keyboardist, Pose: excited + +#StopMusic: noodling + +#AddChar: Singer, Pose: instrument_holding +#AddChar: Guitarist, Pose: instrument_holding +#AddChar: Bassist, Pose: instrument_holding +#AddChar: Drummer, Pose: instrument_holding + +KEYBOARDIST: It's official! Whales have won the right to vote! + +{vocals_whalesong == "Whaleish": + KEYBOARDIST: The bill was read out in Whaleish, and the government lady said our song inspired her to do it! + BASSIST: Well. I didn't think we'd inspire our "government lady". +- else: + GUITARIST: Already? I thought they were deciding that next week? + KEYBOARDIST: Our song must have inspired people to hurry things up! +} + +KEYBOARDIST: But not everyone likes us. We got an old-timey letter from The Unvoiced. +KEYBOARDIST: They're mad about "an unwanted vocal performance which was too loud to avoid". + +BASSIST: Congrats, {name_keyboardist}. That's your first noise complaint. + +GUITARIST: It's a badge of honour. + +KEYBOARDIST: It is? Yeah, I guess it means we can't be ignored! Cool. +KEYBOARDIST: But, I guess {name_singer} is too loud for people who don't speak. + +SINGER: Hey... let me see that. + +{ +- vocals_whalesong == "Whaleish": + KEYBOARDIST: It's not all bad. They said the Whaleish was beautiful. +- vocals_whalesong == "Human": + KEYBOARDIST: They also said we "had no right to speak for the whales". +} + +{name_keyboardist} hands the note over to {name_singer}. //MK: If we can't "see" how the letter changes hands, we'll have to find a way to be clear about it. //HJ: We can use a description line for now. + +SINGER: Holy shit. This is Mom's handwriting... #PRIVATE + + + [SINGER: I should tell the band.] #PRIVATE + -> SINGER_REVEALS_MOM + + [SINGER: I'll keep this to myself.] #PRIVATE + -> SINGER_KEEPS_MOM_SECRET + += SINGER_KEEPS_MOM_SECRET +SINGER: ... Maybe the other bands got these complaints, too. +{ +- (arc_guitarist == "egocentric") && (vocals_whalesong == "Whaleish"): + GUITARIST: I don't think the other bands' singers have moms in that cult. //HJ: this is resentful, egocentric Guitarist unceremoniously spilling Singer's secret. + + KEYBOARDIST: {name_singer}'s mom is in The Unvoiced? + + GUITARIST: She is now. She used to be a famous vocalist. + + BASSIST: Wait. {name_singer}, is your mom InDulcet? //MK: if we give her a name, we can shortcut all this. Dulcet describes sounds that are "sweet and soothing". //HJ: Sure! + + SINGER: She was. She doesn't use that name anymore... + SINGER: ...because she doesn't use her voice anymore. + SINGER: Although {name_guitarist} is the one who should have kept their damn mouth shut. + ~ band_knows_about_singer_mom = true + -> SINGER_MOM_FEELS + +- arc_guitarist == "humbled": + GUITARIST: Maybe. And maybe you can ignore whoever sent it. //or something expressing concern + SINGER: Yeah. Maybe you're right. Thanks. +//MK: Don't need the below, but it seemed like the place for a private reaction. Can easily turn this into B and K reacting. //HJ: Hmm, since it's just one line for each character, this may work. Let's try it! + SINGER: Thanks for keeping my secret, {name_guitarist}. #private + + GUITARIST: {name_singer}'s mom must have sent that letter. Why? #private + + KEYBOARDIST: {name_singer} is taking this pretty hard. I'm sure it wasn't personal. #private + + BASSIST: {name_guitarist} knows something. I'm surprised it didn't come out. #private +- else: + GUITARIST: Guess they didn't have a problem with the guitar! +} + +{name_singer} looks down at the letter, thinking... //HJ: Felt like we needed a transition line into Singer's choices. Also, this is the branch where neither Singer nor Guitarist told the band about Unvoiced Mom. So the choices below need the #PRIVATE hashtag and to be in square brackets. + + + [SINGER: Maybe this is Mom's way of reaching out.] #PRIVATE + ~ arc_singer = "hopeful" + + [SINGER: A noise complaint is all I get after five years.] #PRIVATE + ~ arc_singer = "bitter" + - + -> BASSIST_IMPRESSED + += SINGER_REVEALS_MOM +~ band_knows_about_singer_mom = true +SINGER: This is from my mother. She's one of The Unvoiced. +SINGER: She was a big name singer before she silenced herself. +SINGER: Since then, she hasn't liked me using my voice. + +{ +- (arc_guitarist == "egocentric") && (vocals_whalesong == "Whaleish"): + GUITARIST: Well, you wanted to get attention by singing in Whale. Guess you did. //HJ: this is egocentric G who is harbouring resentment towards Singer for overshadowing the guitar with Whaleish vocals, and would thus not be feeling charitable towards Singer right now. + SINGER: Do I have to ask you in advance not to be an asshole? + +- arc_guitarist == "humbled": + GUITARIST: {vocals_whalesong == "Whaleish": She did say your Whaleish sounded great. Maybe she isn't trying to hurt you.|different response to human-only lyrics.} //or something expressing concern + SINGER: Maybe not. Thanks. It's easy for me to think the worst with her. + +- else: + GUITARIST: It's not all bad! She didn't hate the guitar. +} + +BASSIST: Your mom must be InDulcet. If she's not proud of you, she should be. + +KEYBOARDIST: Your voice is beautiful. I'm glad you're using it. + + -> SINGER_MOM_FEELS + += SINGER_MOM_FEELS + + + SINGER: Maybe this is Mom's way of reaching out. #PRIVATE + ~ arc_singer = "hopeful" + + SINGER: A noise complaint is all I get after five years. #PRIVATE + ~ arc_singer = "bitter" + - + -> BASSIST_IMPRESSED + += BASSIST_IMPRESSED +BASSIST: Hey. Any complaint means you hit a nerve. That's a win. +BASSIST: On the other hand, it's just one complaint. +BASSIST: I'd have made that song into an attack. An accusation. + +{ +- vocals_whalesong == "Whaleish": + BASSIST: But you made people hear whales as equals. +- vocals_whalesong == "Human": + BASSIST: But you made people want to listen. +} +BASSIST: I'm impressed. Hold your head up. + +{arc_guitarist == "humbled": + GUITARIST: Yeah. You announced yourself. You announced us. People know we're here! +- else: //egocentric + KEYBOARDIST: I'm gonna write you a compliment letter. A good one! + + SINGER: Don't pout, {name_guitarist}. {name_bassist} and {name_keyboardist} are allowed to be nice to me. //haha! +} + +SINGER: Thanks. I'm just doing my best. If I can connect with even one person-- + +BASSIST: Well, you did. I was done with music, but I wanted to play with you. You. +BASSIST: So... your voice made me join one last band. + +KEYBOARDIST: //HJ: This is just begging for a short but emotional response from Keys! + +{vocals_whalesong == "Whaleish": + SINGER: (laughs) So {band_name} will make your career a success or a failure. No problem! +- else: + SINGER: Thanks for telling me. I'll try not to let you down. +} +#PlaySFX: Akai_beep +DRUMMER: You just rented this room for another 24 hours. +DRUMMER: In case you want to use those hours. + +SINGER: Like, to practice or write a song or something? Why not! + +{name_bassist} heads off into a corner alone and {name_keyboardist} follows. +//HJ: I think both 2-on-2 conversations taking place on screen together actually works well because Keys and Bassist's convo can be so much shorter, just a few lines inbetween Singer and Guitarist's confrontation. + +#PlayFX: spotlight_right +//NOTE: ^^This is another command I just pulled out of my butt. When Art is ready, we'll talk about how we're going to achieve this, but for now I'm picturing Singer and Guitarist standing to the right with the spotlight on them, while Bassist and Keys are over to the left. + +{arc_guitarist == "humbled": + GUITARIST: Hey, {name_singer}. Can I talk to you? + -> CONVO_SINGER_GUITAR_HUMBLE +- else: //"egocentric" + SINGER: {name_guitarist}. We need to talk. + -> CONVO_SINGER_GUITAR_EGO +} + += CONVO_SINGER_GUITAR_HUMBLE +GUITARIST: I just want to say... I'm not one of your worries. +GUITARIST: I mean, I won't be. Anymore. I've changed. + +SINGER: I can tell that you're trying. But people who've changed don't just say, "I've changed." + -> CONVO_KEYS_BASSIST + += CONVO_SINGER_GUITAR_EGO +Singer accuses Guitar of being in band for themself alone, playing songs they don't believe in, just like in their last band, the Politicats. Guitar hasn't changed at all! //MK: not sure about this angle - playing songs they don't believe in again. Does Singer not want G to play? So, I tried this - +SINGER: You still don't believe in what we're playing. +SINGER: But you used to be better at faking it. + +GUITARIST: Uh... + -> CONVO_KEYS_BASSIST + += CONVO_KEYS_BASSIST +{name_guitarist} is silent, not sure yet how to respond to {name_singer}. + +#PlayFX: spotlight_left + +KEYBOARDIST: So. How do you want to change the world next? + +BASSIST: Woah. Don't move on so fast. Whales can vote, but humans can vote against them. Every time. +BASSIST: We did something huge, for sure. But that means we're responsible. Doesn't mean we're finished. + +KEYBOARDIST: I... hadn't thought about that. + + -> CONVO_SINGER_GUITAR + += CONVO_SINGER_GUITAR +#PlayFX: spotlight_right +SINGER: You have to believe in what we do, even when you don't stand out. +{band_vision == "People": + SINGER: If we aren't in this together, the people won't be in it with us. +- else: //"Rebels" + SINGER: Prove that you've changed. Not to me, or even to you. + SINGER: Prove it to the people. And they'll know they can change. +} + +GUITARIST: Hey, I don't know what I believe in, alright! I'm still looking. +GUITARIST: And no one can believe in "everything", you know?! + +SINGER: Yeah. Yeah, you're right. + +GUITARIST: But I want to be a better bandmate. And a better friend. +GUITAR: Maybe you'd like to get a drink or something... + + + SINGER: Maybe. Maybe not. Let's try it and find out. + SINGER: This might not be smart. But, I should try, too. #private + //HJ: This will need a story variable, but I haven't come up with one yet. + + SINGER: I don't think so. This is up to you. + SINGER: I'm not getting pulled back into that vortex. #private + //HJ: Same here. Variable TBD! + - + -> SONG_TOPICS_L2 + //HJ: I'm thinking that this scene actually leads right into the Level 2 Practice. All the characters are already in the Practice Room, and since the 2-on-2 conversations will be short and happen in the same space, it makes the most sense that the band starts practice now. + \ No newline at end of file diff --git a/Level1/PERFORMANCE_WHALESONG.ink b/Level1/PERFORMANCE_WHALESONG.ink new file mode 100644 index 0000000..b138a6a --- /dev/null +++ b/Level1/PERFORMANCE_WHALESONG.ink @@ -0,0 +1,7 @@ +-> PERFORMANCE_WHALESONG + +=== PERFORMANCE_WHALESONG === + +//NOTE: No idea how what this will be for the MVP. But for the demo, we'll just play the song with the characters in their 3D animated poses on the stage we have (#PlayMusic or #Cutscene commands???), then head straight to... + + -> POST_PERFORM_WHALESONG \ No newline at end of file diff --git a/Level1/POST_PERFORM_WHALESONG.ink b/Level1/POST_PERFORM_WHALESONG.ink new file mode 100644 index 0000000..3decbce --- /dev/null +++ b/Level1/POST_PERFORM_WHALESONG.ink @@ -0,0 +1,372 @@ +-> POST_PERFORM_WHALESONG + +=== POST_PERFORM_WHALESONG === +#Environment: van_exterior + +#AddChar: Singer, Pose: neutral +#AddChar: Guitarist, Pose: neutral +#AddChar: Bassist, Pose: neutral +#AddChar: Keyboardist, Pose: neutral +#AddChar: Drummer, Pose: neutral + +//MK: I'm not convinced that Singer would speak first if they'd switched lyrics, I gave this to Akai. If we're saying that the performance always goes well in the room, Singer could start this because they want to say "see? It worked!" So, I gave this to Akai for the moment. //HJ: Agreed! + +DRUMMER: LET'S GET WASTED! + +SINGER: I think Akai means "great first show!" + +{ +- (song_stance_L1 == "Human") && (vocals_whalesong == "Whaleish"): + GUITARIST: Was it, though? We agreed you wouldn't sing in Whaleish, and you did it anyway. + -> DISSENT_STANCE_WHALEISH +- (song_stance_L1 == "Whaleish") && (vocals_whalesong == "Human"): + KEYBOARDIST: No it wasn't. You were supposed to sing in Whaleish! Like we agreed! + -> DISSENT_STANCE_HUMAN +- else: + DRUMMER: I would never say you were great. But the crowd did love it. //Ha! + ~ band_unity++ + {WHALESONG_JAM.DISSENTER_SINGER: -> DISSENTER_STANCE_SWITCH | -> BAND_VISION_CHECK} +} + += DISSENTER_STANCE_SWITCH +BASSIST: Hey, {name_singer}. Thanks for singing the lyrics we agreed on. +BASSIST: Even if you didn't want to. + -> BAND_VISION_CHECK + += DISSENT_STANCE_WHALEISH +~ band_unity-- //NOTE: Dissent automatically knocks down band unity. Only the players' choices can bring it back up, or knock it down farther. +BASSIST: So, {name_singer}. Any reaction? You know... to your band not trusting you? +//NOTE: When a player has PRIVATE choices, the other players just see " . . . " above their heads until they make their choice. Only then do the other players see the line. I, at least, think this is a good example of Private Choices being the best option, rather than Public Choices. + + + [SINGER: I know I made the right choice.] #PRIVATE + SINGER: I know I went back on what I said. But I have to sing what I believe in. + SINGER: And it worked. No people walked out. And the whales loved it. + + + [SINGER: I shouldn't have done that.] #PRIVATE + SINGER: I did what I believed in most, but that's not the point. + SINGER: We agreed. And we need to be able to trust each other. I'm sorry. + - + +~ temp mood = 0 + + + [BASSIST: I can accept that.] #PRIVATE + BASSIST: We all think this sucks, but I'm good to put it behind us. + ~ mood++ + + + [BASSIST: {name_singer} is full of shit.] #PRIVATE + BASSIST: I'm not telling anyone else how to feel. But, I can't overlook this. + ~ mood-- + - + +BASSIST: Can you, {name_guitarist}? + + + [GUITARIST: {name_singer} did what they wanted. I respect that.] #PRIVATE + GUITARIST: Let's just move on. It's not like we bombed. + ~ mood++ + + + [GUITARIST: I'm not happy. I must have looked ridiculous.] #PRIVATE + GUITARIST: We could have looked like fools. That should matter to us. + ~ mood-- + - + +/* +HJ: Because Keys is less confrontational, I thought we'd make Keys the reaction character. So Keys doesn't get a secret choice in this scene, but how the others responded above (tracked by temp variable) will influence Keys' response. If it's a mood "tie" b/w Bassist and Guitarist, Keys will break it towards the positive and add a +1 to band unity, effectively nullifying the -1 at the start of this stitch. If both Bassist and Guitarist responded positively to Singer, Keys adds to that. +2 to unity! But if Guitarist and Bassist were both negative, take -2 off unity. + +NOTE: The point of using the temp variable instead of adding/subtracting band_unity on Bassist/Guitar's responses is that we can't be sure what value band_unity started at. Whereas we know the temp variable started at 0. +*/ + +{ +- mood == 0: //Bassist and Guitarist had opposite responses and cancelled each other out + KEYBOARDIST: The whales are happy...so, maybe we can just hug it out. + GUITARIST: Way to find the bright side, {name_keyboardist}. Not sold on the hug part, though. + BASSIST: No one try to hug me. But, yeah. I'm not ready to break up the band. + ~ band_unity +=1 +- mood == 2: //mood is positive + KEYBOARDIST: Great work, everbody! I love resolutions! + ~ band_unity +=2 +- else: //mood is negative + KEYBOARDIST: Everyone has a right to their feelings. But these ones are too negative for me. + ~ band_unity -=2 +} + + -> BAND_UNITY_CHECK + += DISSENT_STANCE_HUMAN +~ band_unity-- +KEYBOARDIST: You said you'd sing for the whales. Why didn't you sing for the whales?! + + + [SINGER: Because I was scared. And I'm scared to admit that.] #PRIVATE + SINGER: I just...realized that I shouldn't. + + + [SINGER: I made the right decision.] #PRIVATE + SINGER: It was better to focus on the human audience. The whales already get it. + - + + + [GUITARIST: This was the best choice.] #PRIVATE + GUITARIST: {name_singer} did the right thing. It's not like Whales would come to our next show, anyway. + GUITARIST: And we didn't have to compete with Whale sounds to be heard. + ~ band_unity++ + + + [GUITARIST: The kid's right. {name_singer} has to stick to the plan.] #PRIVATE + GUITARIST: I'm surprised, {name_singer}. You've always been about open communication. + GUITARIST: Unless you tricked me with that, too. + ~ band_unity-- + - + + + [BASSIST: I gotta stand up for {name_singer}.] #PRIVATE + BASSIST: We're all pissed off. But {name_singer}'s the one up front. + BASSIST: You can't sing something you don't believe in. + ~ band_unity++ + + + [BASSIST: {name_singer} really messed up. I can't let this go.] #PRIVATE + BASSIST: I really respected the guts it took to sing in Whaleish... + BASSIST: But I guess you didn't really have them. Now we know. //ouch! + ~ band_unity-- + - + + -> BAND_UNITY_CHECK + +//NOTE: If band went into the performance with the highest unity score of +4 , but made all the negative choices in these dissenter stitches, the highest score they could have now is +1 , which is why that is the number we're checking against in the stitch below... + += BAND_UNITY_CHECK + +{band_unity <= 1: + DRUMMER: Well, I didn't think you'd break up after your first song. + DRUMMER: But you're close. Very close. //MK: I wonder about talking about band unity in a way that highlights its metric nature. But maybe this line doesn't work. //HJ: Hmm... I'm not sure. Let's see how it plays when we have more scripts. I'll leave this comment here so we remember to think about it again. +- else: + DRUMMER: Congratulations! You've survived your first band betrayal. //ha! + + KEYBOARDIST: That's the power of positivity! //haha! +} + + + [SINGER: I'm glad that worked out.] #PRIVATE + + [SINGER: I shouldn't have betrayed my bandmates.] #PRIVATE + - + -> BAND_VISION_CHECK + += BAND_VISION_CHECK + +KEYBOARDIST: Oh, wow! We already have a review! //MK: Can/should we attribute the review to someone? This city's version of NOW Magazine? //HJ: That's a good idea! It'll also give Art something to work with when they're coming up with the visuals for this scene. + +{vocals_whalesong == "Whaleish": +KEYBOARDIST: "{band_name} Rocks the Boat at Float the Vote!" +- else: +KEYBOARDIST: "{band_name} Sets Sail at Float the Vote!" +} + +BASSIST: Gross. I hope the writing gets better from there. //haha! + +KEYBOARDIST: If you interrupt, you'll never know. //you tell 'em, Keys! + +BASSIST: (laughs) Okay, I'm ready to listen. + +KEYBOARDIST: "The pro-vote message has been delivered loud and clear at this festival, + +{vocals_whalesong == "Whaleish": +KEYBOARDIST: ...but only {band_name} has done it in Whale song!" +KEYBOARDIST: "These Rebels even earned some tail-slaps of approval from the Whales in attendance!" +- else: +KEYBOARDIST: ...but no one has been louder or clearer than {band_name}." +KEYBOARDIST: "The Whales have the vote, and now the People may have their band." //MK: really struggling with a way to say "band of the people" that doesn't sound ridiculous. I'm sure these will both change. I'd like them to. //HJ: You gave yourself a pass with Bassist's comment on Line 157! What you have now is clear, so the line is doing its job. +} + ++ What a great review! ++ The writing did NOT get better[.]. But it's still an awesome review! //HJ: This is a fun trick! The square brackets around the period signal that that is where the choice ends. But once selected, both sentences appear! This is a handy way to have short choices that naturally become longer responses. +- + +SINGER: So, our first song is a hit? + +DRUMMER: It's more than that... +{vocals_whalesong == "Whaleish": +DRUMMER: Human enrollment in Whaleish classes has spiked, and whales have already been heard singing the song a thousand miles away. +- else: +DRUMMER: There are calls to adopt it as an official anthem of inter-species democracy. +} +GUITAR: Yeah, I'd say that qualifies as "a hit." + + -> FAN_REACTIONS + += FAN_REACTIONS +#PlaySFX: Akai_excited +DRUMMER: THERE IS NO ENCORE! //haha! +DRUMMER: (sigh) Time to go. I'm not programmed to pack up the gear, by the way. +//NOTE: The team doesn't have time to design a social media interface for the CMF demo, so what I've done here is just split the characters out into their own screens and we'll write this as if they're on their devices reading the comments. + +#SPLITFLOW +{ +- char_singer: + You _should_ pack up, but you want to see what else people said... + {vocals_whalesong == "Whaleish": -> SINGER_SOCIALS_WHALEISH | -> SINGER_SOCIALS_HUMAN } + +- char_guitarist: + You ignore Akai and scroll through the fan comments and critic reviews... + { + - keys_whalesong == "Whaleish": //If Keys played whaleish harmonics + -> GUITAR_SOCIALS_KEYS + - vocals_whalesong == "Whaleish": + -> GUITARIST_SOCIALS_WHALEISH + - else: + -> GUITARIST_SOCIALS_HUMAN + } + +- char_bassist: + You start packing gear with one hand while scrolling with the other... + -> BASSIST_SOCIALS //NOTE: Doesn't matter what the lyrics are, Bassist's social messages are the same. + +- char_keyboardist: + You _should_ pack up, but you're too excited! So you keep scrolling... + { + - keys_whalesong == "Whaleish": //If Keys played whaleish harmonics + -> KEYS_SOCIALS_WHALE_INVITE + - vocals_whalesong == "Human": //If Keys didn't play whaleish harmonics and lyrics were human only + -> KEYS_SOCIALS_HUMAN + - else: //Keys didn't play whaleish harmonics but the lyrics were in Whaleish + -> KEYS_SOCIALS_WHALEISH + } +} + += SINGER_SOCIALS_WHALEISH +SINGER: "The Cetacean Consulary Pod"? That's... the Whale ambassador's office! +SINGER: "Voice {name_singer} of songpod {band_name}. We thank you for singing to us and of us..." +SINGER: "We will smooth your tones, and carry your song always." My tones? I guess my grammar wasn't perfect. + + + [You're glad you took a chance and sang Whaleish.] + SINGER: "You honour me, and I am grateful. Humans welcome your voice to the chorus". + SINGER: I think that's the right thing to say. + + + [You feel terrible because you screwed up the grammar.] + SINGER: "I'm very sorry if I've given offense. I did my best to sing in your language, and I hope you can forgive my mistakes." + SINGER: I should have known I wouldn't get it right. + - + -> LEAVE_VENUE + += SINGER_SOCIALS_HUMAN +SINGER: "Another song written from the Whale perspective, but sung in a human voice." +SINGER: "If anyone can sing in Whaleish, it's {name_singer}. I expected more." + + + [Defend human-only lyrics.] + SINGER: "We made the choice to focus solely on the human audience because that's who needs the message. We hope you'll hear the next one!" + + + [Apologize for not singing in Whaleish.] + SINGER: "I ultimately decided not to sing in Whaleish, but I should have believed in myself enough to try. I'm sorry if I let anyone down." + + + [Don't respond.] + SINGER: Everyone has an opinion. And that's that. + - + -> LEAVE_VENUE + += GUITAR_SOCIALS_KEYS +GUITARIST: "Whale Chorus invites {name_keyboardist} of {band_name} to ocean jam"? +GUITARIST: What? No invite for {name_guitarist}, also of {band_name}? Next... + +{vocals_whalesong == "Whaleish": -> GUITARIST_SOCIALS_WHALEISH | -> GUITARIST_SOCIALS_HUMAN } + += GUITARIST_SOCIALS_WHALEISH +GUITARIST: "{name_singer} is, like, a pan-species vocalist!" +GUITARIST: "{name_singer} duet with Whale {name_singer}! Make it happen!" +GUITARIST: ...there's nothing. Nothing about "wicked guitar". I knew it. + +GUITARIST: Fine, the song was a hit. But, it's like I wasn't even there. + + + [Resent Singer for stealing spotlight.] + GUITARIST: {name_singer} should have just done this a capella. + ~ arc_guitarist = "egocentric" + + + [Concede that Whaleish lyrics were best for the song.] + GUITARIST: The Whaleish did get noticed. Which got {band_name} noticed. + ~ arc_guitarist = "humbled" + - + -> LEAVE_VENUE + += GUITARIST_SOCIALS_HUMAN +GUITARIST: "{name_guitarist} is back!" Hell yeah, I am. +GUITARIST: "I recognized {name_guitarist} from the first chord! Was anyone else even playing?" + + + {guitar_whalesong == "Whaleish"}[Revel in the attention!] + GUITARIST: The comeback in ON, baby. The band's gotta see my value, now. + ~ arc_guitarist = "egocentric" + + + {guitar_whalesong == "Human"}[Gloat about rocking solo!] + GUITARIST: Nice. If {band_name} wants a hit, it needs a {name_guitarist} solo. + ~ arc_guitarist = "egocentric" + + + [Concede it was the right choice to debut with a strong message.] + GUITARIST: Well... blistering guitar aside... we had the right message. + ~ arc_guitarist = "humbled" + - + -> LEAVE_VENUE + += BASSIST_SOCIALS +BASSIST: I'm not gonna read all this... +BASSIST: Lotta positive emojis, though. That's good. +BASSIST: "{band_name} got to me. I'm listening, for real". Huh. + + + [You still don't think anything will change.] + BASSIST: People always have something to say. And... that's it. + ~ arc_bassist = "cynical" + + + [You have hope that humanity will do better.] + BASSIST: Well... maybe the Whale vote can wake some people up. + ~ arc_bassist = "hopeful" + - + -> LEAVE_VENUE + += KEYS_SOCIALS_WHALE_INVITE +KEYBOARDIST: OH MY GOD. +KEYBOARDIST: I'm invited to the Humpback Calving Season Jam?! I can play whale synth! +KEYBOARDIST: Wait... "Why no whale/guitar collab"? Why would {name_guitarist} leave that comment? I should respond. + + + [Hype {name_guitarist} up!] + KEYBOARDIST: "You rock, {name_guitarist}. I know they love you!" + ~ arc_keyboardist = "chearlead" + + + [Correct {name_guitarist}'s negative attitude.] + KEYBOARDIST: "None of that! The sea is cold enough without negative energy!" + ~ arc_keyboardist = "police" + - + -> LEAVE_VENUE + += KEYS_SOCIALS_HUMAN +KEYBOARDIST: Oh, no... +KEYBOARDIST: "We know that our song is not easily sung by humans, even {name_singer}, but the effort would have meant much". +KEYBOARDIST: The Whales are sad. + + + [Agree, without blaming {name_singer}.] + KEYBOARDIST: "We hear you. But it was a {band_name} choice." + ~ arc_keyboardist = "chearlead" + + + [Agree, and blame it on Singer.] + KEYBOARDIST: "We're so sorry! Some of us were willing to try. But not all." + KEYBOARDIST: "Right, {name_singer}?" + ~ arc_keyboardist = "police" + - + -> LEAVE_VENUE + += KEYS_SOCIALS_WHALEISH +KEYBOARDIST: Everyone is so happy! I knew they'd love Whale Song. +KEYBOARDIST: Whales are on social. Maybe they hired someone with thumbs. +KEYBOARDIST: Inspiring people is... so inspiring! I'm totally signing up for Whaleish lessons! + + + [Invite your bandmates to join you.] + KEYBOARDIST: "Hey, {band_name}! Let's go back to school together! We'll be Whaleish lunch pals!" + ~ arc_keyboardist = "chearlead" + + + [Sign up your bandmates without asking them.] + KEYBOARDIST: I'll just sign them up. They'll be into it after the first class. + ~ arc_keyboardist = "police" + - + -> LEAVE_VENUE + += LEAVE_VENUE +#REJOIN +DRUMMER: WOOOO! AKAI OUT! +DRUMMER: Seriously, though. I'm not packing the gear. + +KEYBOARDIST: Okay, {name_singer}, {name_guitarist} and {name_bassist}, time for us to "band together" and pack up! + ++ Everyone releases a collective groan over {name_keyboardist}'s pun[.] and starts packing. ++ A couple of you actually laugh at that[.] before getting to work packing up. +- +#Transition: packing_up +//HJ: ^^I totally just made that up. We're a long way from transitions, but one of packing up the van would be super handy! And could be used after every performance. + -> OUTCOME_WHALESONG \ No newline at end of file diff --git a/Level1/PRACTICE_MOODTATTOOS.ink b/Level1/PRACTICE_MOODTATTOOS.ink new file mode 100644 index 0000000..dc4521e --- /dev/null +++ b/Level1/PRACTICE_MOODTATTOOS.ink @@ -0,0 +1,3 @@ +=== PRACTICE_MOODTATTOOS === + +-> END \ No newline at end of file diff --git a/Level1/PRACTICE_WHALESONG.ink b/Level1/PRACTICE_WHALESONG.ink new file mode 100644 index 0000000..9e03a55 --- /dev/null +++ b/Level1/PRACTICE_WHALESONG.ink @@ -0,0 +1,853 @@ +=== PRACTICE_WHALESONG === + +SINGER: Okay! If we do this right, we can really make a statement. +SINGER: And we could make that statement in Whaleish. + +KEYBOARDIST: You mean... write it in Whale? Sing it in Whale? + +SINGER: Some of it, yeah. I did learn Whaleish in school. + +KEYBOARDIST: Sing it in Whale! That would make such a SPLASH! Haha! + +GUITARIST: Woah. That feels like a big risk for our first song. + +SINGER: You don't think I can do it? + +GUITARIST: Hey, if anyone can do it, it's you. But people might call it a gimmick. +GUITARIST: And we don't want to say the wrong thing. Right? + +BASSIST: I don't think {name_singer} would write gibberish in any language. +BASSIST: But Whales don't need to hear this message. Humans do. + +GUITARIST: Yeah. That, too. Whaleish might confuse them. + +SINGER: It sounds like we all want to say the same thing. +SINGER: So, the issue is the lyrics. Whaleish or no whaleish. + +DRUMMER: So, it's voting machine time. + +#SPLITFLOW + +{ +- char_singer: + -> SINGER_THOUGHTS +- char_guitarist: + -> GUITARIST_THOUGHTS +- char_bassist: + -> BASSIST_THOUGHTS +- char_keyboardist: + -> KEYBOARDIST_THOUGHTS +} + += SINGER_THOUGHTS + + + [I hear {name_bassist}, but some people always miss the message.] + + [{name_guitarist} is wrong. Whaleish lyrics aren't gimmicky.] + SINGER: {name_guitarist} is just worried no one will pay attention to the guitar. #THOUGHT + - +SINGER: And I wouldn't write the _whole_ song in Whaleish. #THOUGHT +SINGER: Plus, the festival will be full of people like {name_keyboardist} who'd love to hear a song in Whaleish. #THOUGHT +SINGER: I just wish singing in Whaleish didn't scare me so much... #THOUGHT + -> VOTE_TIME + += GUITARIST_THOUGHTS +GUITARIST: {name_singer}'s gotta understand {name_bassist}'s point. #THOUGHT + + + [Whaleish lyrics will totally confuse people!] + + [The whales don't need to hear the message.] + - +GUITARIST: And if we alienate people, it won't matter how important the message is. #THOUGHT +GUITARIST: It is important, though. And it could make a splash, like {name_keyboardist} said. #THOUGHT +GUITARIST: But, if the whaley sounds get all the attention... no one will even notice me. #THOUGHT + -> VOTE_TIME + += BASSIST_THOUGHTS +BASSIST: Humans don't even listen to human voices. They'll tune out Whaleish completely. But... #THOUGHT + + + [I hope {name_singer} has the guts to go for it.] + + [I doubt {name_singer} will do it. Even though...] + - +BASSIST: It could make a... splash. #THOUGHT +BASSIST: I hope that's the last pun we get from {name_keyboardist}. I almost laughed. #THOUGHT + -> VOTE_TIME + += KEYBOARDIST_THOUGHTS +KEYBOARDIST: So many votes! So many chances to disagree! #THOUGHT + + + [I don't want to disagree with my first band.] + + [We're totally going to break up!!!] + - +KEYBOARDIST: But maybe this is normal band stuff. I'll find out. #THOUGHT +KEYBOARDIST: But I hope the Whales don't find out I failed Conversational Whaleish. #THOUGHT + -> VOTE_TIME + += VOTE_TIME +#REJOIN +#PlayerControlUntil: VoteComplete, JumpToPath: PRACTICE_WHALESONG.VOTE_RESULTS + + [VOTE ON IT!] + -> VOTE + += VOTE +{ +- char_singer: + -> VOTE_SINGER +- char_guitarist: + -> VOTE_GUITARIST +- char_bassist: + -> VOTE_BASSIST +- char_keyboardist: + -> VOTE_KEYBOARDIST +} + += VOTE_SINGER + + + [Include Whaleish lyrics.] + ~ vote_songstance_whaleish++ + + [Only Human lyrics.] + ~ vote_songstance_human++ + - + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + -> VOTE_RESULTS + += VOTE_GUITARIST + + + [Include Whaleish lyrics.] + ~ vote_songstance_whaleish++ + + [Only Human lyrics.] + ~ vote_songstance_human++ + - + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + -> VOTE_RESULTS + += VOTE_BASSIST + + + [Include Whaleish lyrics.] + ~ vote_songstance_whaleish++ + + [Only Human lyrics.] + ~ vote_songstance_human++ + - + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + -> VOTE_RESULTS + += VOTE_KEYBOARDIST + + + [Include Whaleish lyrics.] + ~ vote_songstance_whaleish++ + + [Only Human lyrics.] + ~ vote_songstance_human++ + - + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + + {shuffle: + - + ~ vote_songstance_whaleish++ + - + ~ vote_songstance_human++ + } + -> VOTE_RESULTS + += VOTE_RESULTS +{ +- vote_songstance_whaleish == 4: + ~ band_unity +=2 + -> STANCE_WHALEISH +- vote_songstance_whaleish == 3: + ~ band_unity +=1 + -> STANCE_WHALEISH +- vote_songstance_human == 4: + ~ band_unity +=2 + -> STANCE_HUMAN +- vote_songstance_human == 3: + ~ band_unity +=1 + -> STANCE_HUMAN +- else: + {not TIE_RULES: -> TIE_RULES -> TIE | -> DRUMMER_CHOICE } //If players have not heard the TIE RULES, go there in the event of a tie vote. Otherwise, players already know the rule is Drummer's Choice. +} + += TIE +~ vote_songstance_whaleish = 0 +~ vote_songstance_human = 0 +//Reset votes ^ and send players back to VOTE... + +#PlayerControlUntil: VoteComplete, JumpToPath: PRACTICE_WHALESONG.VOTE_RESULTS + + [Vote again!] + -> VOTE + += DRUMMER_CHOICE +~ band_unity-- //band couldn't agree, so band unity drops. +DRUMMER: I have to break the tie. Feel free to get mad at the result. + +{shuffle: +- + -> STANCE_WHALEISH +- + -> STANCE_HUMAN +} + += STANCE_WHALEISH +DRUMMER: The song will include Whaleish lyrics! +~ band_stance_L1 = "Rebels" +~ song_stance_L1 = "Whaleish" +/*NOTE: I created 2 variables in order to... + 1) compare band_stance to band_vision to see if they're equal or not, and thus these variables need the same values, "Rebels" or "People". + 2) compare song_stance_L1 to vocals_whalesong, the same way as above, using the values "Whaleish" or "Human". +*/ + +#SPLITFLOW +{ +- char_singer: + -> SINGER_FEELS_WHALEISH + +- char_guitarist: + -> GUITARIST_FEELS_WHALEISH + +- char_bassist: + -> BASSIST_FEELS_WHALEISH + +- char_keyboardist: + -> KEYS_FEELS_WHALEISH +} + += SINGER_FEELS_WHALEISH +//For Singer, there are PROS and CONS to both stances, so Singer gets ALL the choice reactions. + + + [Yes, I'll be the first human to perform in Whaleish!] + + [Oh no, I'm going to blow this.] + SINGER: Ha. A whale pun. My writing already sucks. #THOUGHT + + [So, the pressure is on.] + - + +{DRUMMER_CHOICE: + SINGER: And Akai is billing me extra for tiebreaking. I know it. #THOUGHT +} + -> WHALESONG_STEMS + += GUITARIST_FEELS_WHALEISH + +{DRUMMER_CHOICE: + GUITARIST: Surprise! The robot votes the way the boss wants. +} + + [I might as well not even play on this song.] + + [Fine. Rolling with this will prove I'm a better bandmate now.] + - + + -> WHALESONG_STEMS + += BASSIST_FEELS_WHALEISH + + + [Huh. Now I'm excited.] + BASSIST: People might ignore it, but {name_singer} will rock those Whale vocals. + + [This is a mistake.] + BASSIST: No one ever listens. I'm not just "being negative". + + [Whatever.] + BASSIST: I did my part and warned them. If they have faith in people, that's their problem. + - + +{DRUMMER_CHOICE: + BASSIST: Maybe Akai wants the message to fail. That'd be hilarious. +} + -> WHALESONG_STEMS + += KEYS_FEELS_WHALEISH + + + [Yes! Playing for Whales at my first gig!] + + [I should be excited, but I'm not. Why not?] + KEYBOARDIST: Maybe {name_guitarist} and {name_bassist} are bringing me down a bit. #THOUGHT + KEYBOARDIST: But I shouldn't let their non-excitement ruin my excitement. #THOUGHT + - + +{DRUMMER_CHOICE: + KEYBOARDIST: I'm glad Akai can choose, so we don't start fighting. +} + -> WHALESONG_STEMS + += STANCE_HUMAN +DRUMMER: The song will NOT include Whaleish. Human lyrics only! +~ band_stance_L1 = "People" +~ song_stance_L1 = "Human" + +#SPLITFLOW +{ +- char_singer: + -> SINGER_FEELS_HUMAN + +- char_guitarist: + -> GUITARIST_FEELS_HUMAN + +- char_bassist: + -> BASSIST_FEELS_HUMAN + +- char_keyboardist: + -> KEYS_FEELS_HUMAN +} + += SINGER_FEELS_HUMAN + + + [Wow. I'm actually pretty relieved.] + SINGER: I was worried about singing in Whaleish. Now, that won't affect my performance. #THOUGHT + + [(slumps) They don't believe I could pull off singing Whaleish.] + + [The message is the same, even if it's less inclusive.] + - + -> WHALESONG_STEMS + += GUITARIST_FEELS_HUMAN + + + [Awesome. Time for a comeback!] + GUITARIST: With no whale sounds to drown me out. #THOUGHT + + [I bet {name_singer} is relieved.] + GUITARIST: They were nervous about singing Whaleish on stage. I know it. #THOUGHT + - + -> WHALESONG_STEMS + += BASSIST_FEELS_HUMAN + + + [Good. No distractions. No excuses. Humans suck.] + + [Damn. I'm kinda sorry I won this one.] + BASSIST: {name_singer} would've rocked those Whaleish vocals! + - + +{DRUMMER_CHOICE: + BASSIST: I hope Akai enjoys breaking ties. Lotta responsiblity. +} + -> WHALESONG_STEMS + += KEYS_FEELS_HUMAN + + + [Noooo! I wanted Whaleish lyrics!] + + [It's okay. The message is what's important.] + - + +{DRUMMER_CHOICE: + KEYBOARDIST: Akai probably feels bad about choosing randomly. + KEYBOARDIST: He'd want to help other species, for sure. Because... robots are a species. + KEYBOARDIST: Just like whales! They have so much in common! +} + -> WHALESONG_STEMS + +=== WHALESONG_STEMS === +#REJOIN +DRUMMER: While you all were reacting to the vote, I created two complete percussion tracks. +DRUMMER: We can have a Shore Party... +#PlayMusic: drums_whalesong_human +//formerly drums_whalesong_onland, but I want the names to be consistent with the stance labels. +DRUMMER: Or, we can go all AquaDrum... +#PlayMusic: drums_whalesong_whaleish +//formerly drums_whalesong_underwater + +{song_stance_L1 == "Whaleish": + GUITARIST: Woah. Whale singing is already too much. We can't have underwater drums. + GUITARIST: I can't be the only one worried about being drowned out by whaley stuff. + + BASSIST: I'm more worried about putting novelty over substance. + + KEYBOARDIST: If we're going whale, let's go full whale! + +- else: + KEYBOARDIST: Can we at least have the whaley beat? + + BASSIST: Yeah, we have to push people out of their comfort zone a little. + + GUITARIST: We're overthinking. Let's just make a banger. +} + +SINGER: We need to start writing, so pick a beat everyone! + +#PlayerControlUntil: VoteComplete, JumpToPath: WHALESONG_STEMS.VOTE_RESULTS + + [VOTE ON THE BEAT!] + -> VOTE_DRUMS + += VOTE_DRUMS +{ +- char_singer: + -> VOTE_SINGER +- char_guitarist: + -> VOTE_GUITARIST +- char_bassist: + -> VOTE_BASSIST +- char_keyboardist: + -> VOTE_KEYBOARDIST +} + += VOTE_SINGER + + + [AquaDrum.] + ~ vote_whalesong_drums_whaleish++ + + [Shore Party.] + ~ vote_whalesong_drums_human++ + - + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + -> VOTE_RESULTS + += VOTE_GUITARIST + + + [AquaDrum.] + ~ vote_whalesong_drums_whaleish++ + + [Shore Party.] + ~ vote_whalesong_drums_human++ + - + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + -> VOTE_RESULTS + += VOTE_BASSIST + + + [AquaDrum.] + ~ vote_whalesong_drums_whaleish++ + + [Shore Party.] + ~ vote_whalesong_drums_human++ + - + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + -> VOTE_RESULTS + += VOTE_KEYBOARDIST + + + [AquaDrum.] + ~ vote_whalesong_drums_whaleish++ + + [Shore Party.] + ~ vote_whalesong_drums_human++ + - + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + + {shuffle: + - + ~ vote_whalesong_drums_whaleish++ + - + ~ vote_whalesong_drums_human++ + } + -> VOTE_RESULTS + += VOTE_RESULTS +{ +- vote_whalesong_drums_whaleish >= 3: + DRUMMER: Votes are in and it's... + ~ drums_whalesong = "Whaleish" + -> DRUMS_WHALEISH +- vote_whalesong_drums_human >= 3: + DRUMMER: Votes are in and it's... + ~ drums_whalesong = "Human" + -> DRUMS_HUMAN +- else: + {not TIE_RULES: -> TIE_RULES -> TIE | -> DRUMMER_CHOICE } //If players have not heard the TIE RULES, go there in the event of a tie vote. Otherwise, players already know the rule is Drummer's Choice. +} + += TIE +~ vote_whalesong_drums_whaleish = 0 +~ vote_whalesong_drums_human = 0 +//Reset votes ^ and send players back to VOTE... + +#PlayerControlUntil: VoteComplete, JumpToPath: WHALESONG_STEMS.VOTE_RESULTS + + [Vote again!] + -> VOTE_DRUMS + += DRUMMER_CHOICE +DRUMMER: I got this. + +{shuffle: +- + ~ drums_whalesong = "Whaleish" + -> DRUMS_WHALEISH +- + ~ drums_whalesong = "Human" + -> DRUMS_HUMAN +} + += DRUMS_WHALEISH +DRUMMER: AquaDrum! + -> CHOOSE_MUSIC_STEMS + += DRUMS_HUMAN +DRUMMER: Shore Party! + -> CHOOSE_MUSIC_STEMS + += CHOOSE_MUSIC_STEMS +DRUMMER: The beat is chosen! +DRUMMER: Now you can write your parts. You'll need more time, of course. + +#SPLITFLOW +//Players go into private screens to play their musical parts and decide which to choose. + +{ +- char_singer: + -> VOCAL_STEMS + +- char_guitarist: + -> GUITAR_STEMS + +- char_bassist: + -> BASS_STEMS + +- char_keyboardist: + -> KEYS_STEMS +} + +//NOTE: UI/UX for this just has 2 buttons on screen, with a dialogue bubble. For it to make sense in ink, I wrote it like this, but we'll need to actually talk about how the engine needs to interpret this section. + += VOCAL_STEMS + + + [Sing human language lyrics.] + #PlayMusic: vocals_whalesong_human + SINGER: {&I'd rather stick to human lyrics.|Will the whales connect with human lyrics?|It's an important message no matter what language it's in.|"Say it don’t spray it" - seriously!} + -> VOCAL_STEMS + + [Sing Whaleish lyrics.] + #PlayMusic: vocals_whalesong_whaleish + SINGER: {&The whales will love this, IF I can sing it.|I'll be the first person ever to sing in Whaleish.|I learned Whaleish from a human. I hope they were right.|Ugh, my Whaleish probably sounds like Seal by now.} + -> VOCAL_STEMS + + [Choose human lyrics.] + ~ vocals_whalesong = "Human" + -> WHALESONG_JAM + + [Choose Whaleish lyrics.] + ~ vocals_whalesong = "Whalish" + -> WHALESONG_JAM + += GUITAR_STEMS + + + [Play rocking guitar solo.] + #PlayMusic: guitar_whalesong_human + GUITARIST: {& It wouldn't be a "me" track without a solo.|{name_singer} always preferred the spotlight on me. Probably still does.|Sorry, whales. I do the whaling.} + -> VOCAL_STEMS + + [Play backup whaley guitar.] + #PlayMusic: guitar_whalesong_whaleish + GUITARIST: {&This riff is whaley, but doesn't rock like the other one.|I wanna debut with a solo that rocks, but...|This whaley riff will prove I care most about the message, not myself.} + -> VOCAL_STEMS + + [Choose rocking solo.] + ~ guitar_whalesong = "Human" + -> WHALESONG_JAM + + [Choose whaley guitar.] + ~ guitar_whalesong = "Whalish" + -> WHALESONG_JAM + += BASS_STEMS + + + [Play pop bass.] + #PlayMusic: bass_whalesong_human + BASSIST: {&Everyone likes a classic bassline.|But is this deep enough to penetrate the ocean?|This bassline might not be salty enough for the whales.} + -> VOCAL_STEMS + + [Play deep oceany bass.] + #PlayMusic: bass_whalesong_whaleish + BASSIST: {&Smooth. Like a whale. I think whales are smooth.|Might as well dive deep.|This bassline evokes whale power.} + -> VOCAL_STEMS + + [Choose pop bass.] + ~ bass_whalesong = "Human" + -> WHALESONG_JAM + + [Choose deep oceany bass.] + ~ bass_whalesong = "Whalish" + -> WHALESONG_JAM + += KEYS_STEMS + + + [Play pop chords.] + #PlayMusic: keys_whalesong_human + KEYS: {&Simple and safe. But still fun, I hope.|Will our cetacean siblings like these chords?|Maybe whaley harmonics are better.} + -> VOCAL_STEMS + + [Play whaley harmonics.] + #PlayMusic: keys_whalesong_whaleish + KEYS: {&Cool! Synthesized whale sounds to harmonize with the vocals!|No such thing as too much whale!|THIS will Float the Vote!} + -> VOCAL_STEMS + + [Choose pop chords.] + ~ keys_whalesong = "Human" + -> WHALESONG_JAM + + [Choose whaley harmonics.] + ~ keys_whalesong = "Whalish" + -> WHALESONG_JAM + + +=== WHALESONG_JAM === +#REJOIN +DRUMMER: ONE! EIGHT! FIVE! + +GUITARIST: Is your personality program messing with your math? + +DRUMMER: ... Let's just jam. + +#PlayMusic: {drums_whalesong} +#PlayMusic: {vocals_whalesong} +#PlayMusic: {guitar_whalesong} +#PlayMusic: {bass_whalesong} +#PlayMusic: {keys_whalesong} +//NOTE: I have to talk to JP about the above. I think this might trigger the music stems a split second apart, which will sound like crap. We might need a different command for this, but for now, you get the idea. + +{song_stance_L1 == vocals_whalesong: //Check if stance the band chose and lyrics the singer chose are the same. + -> LYRICS_MATCH_STANCE +- else: + -> DISSENTER_SINGER +} + += LYRICS_MATCH_STANCE + + + Cool, we sound great! + + Whoa. We sound weird. + Good weird? Bad weird? Audience's choice! + + Wow, we are musical geniuses! + - //HJ: I think we need a moment to acknowledge the song after they "play" their parts together for the first time but before they comment on the vocals. Not a consequential choice, just another group reaction that the players can discuss IRL. + +{song_stance_L1 == "Whaleish": + -> WHALEISH_SONG +- else: + -> HUMAN_SONG +} + += WHALEISH_SONG +GUITARIST: I... didn't know you could make those sounds, {name_singer}. + +BASSIST: I think you just said "blow it out your hole"?! +BASSIST: Just kidding. You sound great. + +KEYBOARDIST: OooooOOOOOooo! That wasn't me doing whale. That was me impressed! + +SINGER: I mean, the whales might roast my pronunciation... but, thanks. + -> LOCKED_SONG + += HUMAN_SONG +GUITARIST: It's loud. It hits. No distractions. + +BASSIST: No one can hide from the point. + +KEYBOARDIST: You know what? I don't miss the Whaleish. + +SINGER: Full disclosure... I wrote it in Whaleish and translated it for humans! + -> LOCKED_SONG + +//NOTE: Since everyone is in agreement, we don't need to give players a choice to change or "lock in" their musical choices. We can simply move on. + += DISSENTER_SINGER +DRUMMER: Hold on a second! Something's wrong... //HJ: Like the choice block in LYRICS_MATCH_STANCE, I felt we needed a transition line to get into the characters' reactions to the lyrics. + +{vocals_whalesong == "Whaleish": + GUITARIST: Yeah, {name_singer}. Why are you singing in Whaleish? + + KEYBOARDIST: I love this. But... we were all on a page... + + BASSIST: I get it. You heard this a certain way. But don't go rogue. + +- else: + KEYBOARDIST: Where's the Whale? Why no Whale? + + GUITARIST: Hey, {name_singer} sounds great! No Whale needed! //MK: I put this in, but I'm confused. Are people on the same page after the vote, or not? If not, and they stick to their in-scene stated preferences, they should do that all the time and be able to reference the preferences of others earlier. //HJ: Guitarist never has a fully positive reaction to Whaleish lyrics, G was resigned at best, so G would support S not singing Whaleish here. + + BASSIST: Don't chicken out, {name_singer}. I'm not saying that's what you're doing... + BASSIST: But you don't have to. +} + +SINGER: I hear you. Thanks for speaking up. //HJ: I think the Singer should respond to the challenge above. After all, everyone is basically asking them why they didn't stick to the lyrics they agreed on. They need to give their bandmates some kind of an answer. I put a couple ideas in the choice block below... //MK: I agree. I just didn't do that because you said not to give choices like this because other players would be waiting on them. //HJ: Yeah, but now we're gonna try it since it seems like a useful mechanic. + + SINGER: I shouldn't have gone rogue like that. + + SINGER: I wrote the lyrics I think are best. + - + +DRUMMER: So... you all good with your choices? Or are you changing things up? + +#PlayerControlUntil: StemsLocked, JumpToPath: WHALESONG_JAM.LOCKED_SONG + + [BUTTONS POP UP - "Lock it in." or "Change it."] + -> CHANGE_STEMS + += CHANGE_STEMS +//NOTE: This won't be in split flow anymore, and the choices below are just for singleplayer Inky playthough purposes. +{ +- char_singer: + -> SINGER_STEM_LOCK + +- char_guitarist: + -> GUITARIST_STEM_LOCK + +- char_bassist: + -> BASSIST_STEM_LOCK + +- char_keyboardist: + -> KEYS_STEM_LOCK +} + += SINGER_STEM_LOCK + + + [Keep the lyrics.] + + [Change them!] + ++ [Whaleish lyrics.] + ~ vocals_whalesong = "Whaleish" + ++ [Human only lyrics.] + ~ vocals_whalesong = "Human" + -- + - + -> LOCKED_SONG + += GUITARIST_STEM_LOCK + + + [Keep it.] + + [Change it.] + ++ [People pleasing guitar solo!] + ~ guitar_whalesong = "Human" + ++ [Wail for the whales guitar.] + ~ guitar_whalesong = "Whaleish" + -- + - + -> LOCKED_SONG + += BASSIST_STEM_LOCK + + + [Keep it.] + + [Change it.] + ++ [Whaley deep bass.] + ~ bass_whalesong = "Whaleish" + ++ [People pleasing pop bass.] + ~ bass_whalesong = "Human" + -- + - + -> LOCKED_SONG + += KEYS_STEM_LOCK + + + [Keep it.] + + [Change it!] + ++ [Whaley harmonics.] + ~ keys_whalesong = "Whaleish" + ++ [Pop chords.] + ~ keys_whalesong = "Human" + -- + - + -> LOCKED_SONG + += LOCKED_SONG +SINGER: Well, that's a wrap on practice. This weekend, {band_name}'s first song will debut at _Float the Vote!_ + -> PERFORMANCE_WHALESONG \ No newline at end of file diff --git a/Level1/SONG_TOPICS_L1.ink b/Level1/SONG_TOPICS_L1.ink new file mode 100644 index 0000000..b8fd20a --- /dev/null +++ b/Level1/SONG_TOPICS_L1.ink @@ -0,0 +1,280 @@ +=== SONG_TOPICS_L1 === +KEYBOARDIST: Can I be the first to say, "Hello, bandmates"? + +BASSIST: Probably. I don't think anyone else is going to say it. + +KEYBOARDIST: Hello, bandmates! + +GUITARIST: Love the energy, kid. Save a little for the stage. +GUITARIST: So, where is the stage, {name_singer}? + +BASSIST: Yeah, is this a Fearless Leader situation and you book the gigs? +BASSIST: Oh, no. We don't have a manager, do we? + +SINGER: We manage together. We play what we want, where we want. +SINGER: Well... where we can. And what, ideally, reflects a local zeitgeist-- + +#PlaySFX: akai_interrupt +//MK: ^^cymbal crash or something. +DRUMMER: LET'S WRECK SHIT! +DRUMMER: (sighs) +DRUMMER: Humans put venue listings and all their stupid feelings online. +DRUMMER: I'll suggest the best stages and song topics. Don't argue with my math. + +KEYBOARDIST: That's so helpful! But, I thought we'd be _passionate_ about things. + +SINGER: Absolutely. If something is important to you, bring it to the band. +SINGER: Something like *Float the Vote*. I think we should be part of it. + +GUITARIST: Is that the whale thing? + +BASSIST: Their "fighting for the right to vote" thing? Yeah. + +SINGER: There's a music festival supporting the cause in Overlook this weekend. +SINGER: We can make a song about the issue and perform it at Erosion. + +KEYBOARDIST: Erosion? Is that the cave club? I'd love to rock a cave! (laughs) + +BASSIST: I hate to endorse any pun, but yeah. The acoustics are perfect. + +GUITARIST: Perfect acoustics. Right next to that cult of silence. What a waste. + +#SPLITFLOW +{ +- char_singer: + -> SINGER_THOUGHT + +- char_guitarist: + -> GUITARIST_THOUGHT + +- char_bassist: + -> BASSIST_THOUGHT + +- char_keyboardist: + -> KEYS_THOUGHT +} + += SINGER_THOUGHT +SINGER: (sigh) I haven't set foot near The Unvoiced commune in years. #THOUGHT +SINGER: If we perform at Erosion, Mom will hear me sing again whether she wants to or not. #THOUGHT + -> REJOIN + += GUITARIST_THOUGHT +You glance at {name_singer}, who now looks conflicted and sad. +GUITARIST: Of all the things to bring up. Way to ruin your second chance, idiot. #THOUGHT + -> REJOIN + += KEYS_THOUGHT +KEYBOARDIST: Anyone who vows to be silent for their whole lives must have a good reason. #THOUGHT + -> REJOIN + += BASSIST_THOUGHT +BASSIST: That's a big topic for our first song. Maybe I'm right about {name_singer}. #THOUGHT + -> REJOIN + += REJOIN +#REJOIN +SINGER: Anyway, we can introduce ourselves as a voice for change. +SINGER: Voting rights for whales is a step toward global equality. We should help. + +KEYBOARDIST: Help the Whales? Like, help an entire species?! Yes, please! + +BASSIST: Whales will make better choices than humans do. They should be able to vote. + +GUITARIST: They will. No one is trying to stop it. So... we'd have a sure hit! + +SINGER: What else do you have, Akai? + +DRUMMER: People in NoGrid are talking about Mood Tattoos, for some reason. +DRUMMER: The "Bad Mood, Good Tattoos" event at Read Only is looking for acts. + +KEYBOARDIST: I really want a mood tattoo! +KEYBOARDIST: We'd all get along better if we could see each other's moods. + +GUITARIST: But I think it's already pretty obvious how you're feeling, kid. + +KEYBOARDIST: Good. Misunderstandings cause conflict. Conflict is SO bad. + +BASSIST: It would be great if people couldn’t hide the shit they’re full of. + +GUITARIST: Hey, I'm not saying no. It sounds like a safe, easy first song. That'd be good. + +SINGER: It's not just a safe choice. Some people don't talk about how they feel. +SINGER: Silence is dangerous. We could highlight the importance of communication. + +DRUMMER: It'll be easier for your brains if you do an either-or. So... +#SFX: Drumroll +DRUMMER: VOTE! + +#PlayerControlUntil: VoteComplete, JumpToPath: SONG_TOPICS_L1.VOTE_RESULTS + + [VOTE ON IT!] + -> VOTE + += VOTE +{ +- char_singer: + -> VOTE_SINGER +- char_guitarist: + -> VOTE_GUITARIST +- char_bassist: + -> VOTE_BASSIST +- char_keyboardist: + -> VOTE_KEYBOARDIST +} + += VOTE_SINGER + + + [Whale Song] + ~ vote_songtopic_whales++ + + [Mood Tattoos] + ~ vote_songtopic_tattoos++ + - + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + -> VOTE_RESULTS + += VOTE_GUITARIST + + + [Whale Song] + ~ vote_songtopic_whales++ + + [Mood Tattoos] + ~ vote_songtopic_tattoos++ + - + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + -> VOTE_RESULTS + += VOTE_BASSIST + + + [Whale Song] + ~ vote_songtopic_whales++ + + [Mood Tattoos] + ~ vote_songtopic_tattoos++ + - + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + -> VOTE_RESULTS + += VOTE_KEYBOARDIST + + + [Whale Song] + ~ vote_songtopic_whales++ + + [Mood Tattoos] + ~ vote_songtopic_tattoos++ + - + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + + {shuffle: + - + ~ vote_songtopic_whales++ + - + ~ vote_songtopic_tattoos++ + } + -> VOTE_RESULTS + += VOTE_RESULTS + +{ +- vote_songtopic_whales >= 3: + DRUMMER: How fitting. You voted for Whale Voting. + ~ songs += WhaleSong + -> PRACTICE_WHALESONG +- vote_songtopic_tattoos >= 3: + DRUMMER: You voted for Mood Tattoos. + ~ songs += MoodTattoo + -> PRACTICE_MOODTATTOOS +- else: + {not TIE_RULES: -> TIE_RULES -> TIE | -> DRUMMER_CHOICE } +} + += TIE +~ vote_songtopic_whales = 0 +~ vote_songtopic_tattoos = 0 +//Reset votes ^ and send players back to VOTE... + +#PlayerControlUntil: VoteComplete, JumpToPath: SONG_TOPICS_L1.VOTE_RESULTS + + [Vote again!] + -> VOTE + += DRUMMER_CHOICE +DRUMMER: You couldn't agree. So, I'll choose for you. +{shuffle: +- + DRUMMER: Whale Voting Rights wins! + ~ songs += WhaleSong + -> PRACTICE_WHALESONG +- + DRUMMER: Mood Tattoos wins! + ~ songs += MoodTattoo + -> PRACTICE_MOODTATTOOS +} diff --git a/Level1/TIE_RULES.ink b/Level1/TIE_RULES.ink new file mode 100644 index 0000000..f9957f0 --- /dev/null +++ b/Level1/TIE_RULES.ink @@ -0,0 +1,13 @@ +=== TIE_RULES === + +DRUMMER: This is the ideal time to tell you that, in the event of a voting tie, I act as tiebreaker. + +BASSIST: I'm good with that. + +GUITARIST: Wait. I don't want your vote to be... randomed? Randomized. + +KEYBOARDIST: Please, can we vote again?! I know we can come to a consensus! + +DRUMMER: Fine. I'll violate my programming - just this once - because you asked with such panic in your voice. +DRUMMER: Go ahead... VOTING TAKE TWO! +->-> \ No newline at end of file diff --git a/Level2/SONG_TOPICS_L2.ink b/Level2/SONG_TOPICS_L2.ink new file mode 100644 index 0000000..002bd23 --- /dev/null +++ b/Level2/SONG_TOPICS_L2.ink @@ -0,0 +1,5 @@ +-> SONG_TOPICS_L2 + +=== SONG_TOPICS_L2 === + +-> END \ No newline at end of file diff --git a/MAIN_Bandocracy.ink b/MAIN_Bandocracy.ink new file mode 100644 index 0000000..e21aba6 --- /dev/null +++ b/MAIN_Bandocracy.ink @@ -0,0 +1,302 @@ +-> ONBOARDING + +INCLUDE Level1/OPENING.ink +INCLUDE Level1/TIE_RULES.ink +INCLUDE Level1/SONG_TOPICS_L1.ink +INCLUDE Level1/PRACTICE_WHALESONG.ink +INCLUDE Level1/PRACTICE_MOODTATTOOS.ink +INCLUDE Level1/PERFORMANCE_WHALESONG.ink +INCLUDE Level1/POST_PERFORM_WHALESONG.ink +INCLUDE Level1/OUTCOME_WHALESONG.ink +INCLUDE Level2/SONG_TOPICS_L2.ink + + + +// *** CHARACTER VARIABLES *** + +//ONBOARDING - for Single-Player mode; false unless selected +VAR char_singer = false +VAR char_guitarist = false +VAR char_bassist = false +VAR char_keyboardist = false + +VAR name_singer = "" +VAR name_guitarist = "" +VAR name_bassist = "" +VAR name_keyboardist = "" + +VAR pronouns_singer = "" // femme, masc, enby +VAR pronouns_guitarist = "" +VAR pronouns_bassist = "" +VAR pronouns_keyboardist = "" + +VAR arc_singer = "" +VAR arc_guitarist = "" +VAR arc_bassist = "" +VAR arc_keyboardist = "" + +//STORY BEAT VARIABLES +VAR band_knows_about_singer_mom = false + + +// *** BAND VARIABLES *** + +VAR band_name = "" +VAR band_unity = 0 +VAR band_vision = "" // "People", "Rebels" +VAR band_stance_L1 = "" // "People", "Rebels" - exact same as vision, so we can see if these two variables are the same or not, to reflect whether the band has stuck to their vision or deviated from it. +VAR song_stance_L1 = "" // "Whaleish", "Human", "Pro", "Anti" - so we can check if they're equal to the stems chosen +VAR band_stance_L2 = "" +VAR band_stance_L3 = "" //By L4 we should be able to do some math using these variables to determine which stance the band's fans and critics expect them to take on the final song. And if it doesn't match, fans and critics will react accordingly. + +// *** SONG LIST *** + +LIST songs = WhaleSong, MoodTattoo +/*I decided to make a list to track the songs, rather than having TRUE/FALSE variables for every song. +For this demo, we have 2 songs. Neither song is "ON" the list yet, but each is available to be put on the list. Code-wise, round brackets around the song names would mean they are already "ON" the list. To add a song to this list, use this command: + ~ songs += WhaleSong +*/ + +// *** VOTE VARIABLES *** + +VAR vote_vision_people = 0 +VAR vote_vision_rebels = 0 + +//SONG TOPICS +VAR vote_songtopic_whales = 0 +VAR vote_songtopic_tattoos = 0 + +//SONG STANCES +VAR vote_songstance_whaleish = 0 +VAR vote_songstance_human = 0 + +//SONG STEMS (only drum staems are voted on; PCs choose their own stems) +VAR vote_whalesong_drums_human = 0 +VAR vote_whalesong_drums_whaleish = 0 + +// *** MUSIC VARIABLES *** +//All whalesong music variables will get set to "Whaleish" or "Human". +VAR drums_whalesong = "" +VAR vocals_whalesong = "" +VAR guitar_whalesong = "" +VAR keys_whalesong = "" +VAR bass_whalesong = "" +//All moodtattoo variables will get set to "Pro" or "Anti". +VAR drums_moodtattoo = "" +VAR vocals_moodtattoo = "" +VAR guitar_moodtattoo = "" +VAR keys_moodtattoo = "" +VAR bass_moodtattoo = "" + +//This counts each player who picks "pop" or "whaleish". +VAR whalesong_human_count = 0 +VAR whalesong_whaleish_count = 0 +//There must be a more elegant way to do this without resorting to numbers, which is what the demo originally did - each type of stem was assigned a number, and through functions/back-end code, the game engine could tell how many players had chosen pop or whaleish stems. I'll think on this more when I outline Whale Song. + +=== ONBOARDING === +#PlayerControlUntil: OnboardingComplete, JumpToPath: OPENING +In Bandocracy, YOU are in the band. So, who are you? + -> VIEW_CHARS + += VIEW_CHARS + + + Singer + This gifted lyricist believes that anyone with musical talent should use it to help the world and not let self-doubt - or one’s own mother! - stop them. + + Likes - Audience connection, artist collaboration, standing up for people. + Dislikes - Confrontation, talking about the past, inauthenticity. + + ++ [Be the singer!] + ~ char_singer = true + -> NAME + ++ [Check out another character.] + -> VIEW_CHARS + ++ [Learn why the singer started this band.] + “Starting this new band is personal. My mom gave up her voice and wanted me to give up mine, but I can’t do that. I won’t.” + + +++ [Be the singer!] + ~ char_singer = true + -> NAME + +++ [Check out another character.] + -> VIEW_CHARS + + + Guitarist + An undeniable generational talent and natural star. Just ask! + Other people may say things like “selfish”, “inconsiderate”, or “insincere”, but what else would haters say? + + Likes - The spotlight, solos, recognition. + Dislikes - Being in the background, compromise, self-righteousness. + + ++ [Be the guitarist!] + ~ char_guitarist = true + -> NAME + ++ [Check out another character.] + -> VIEW_CHARS + ++ Learn why the guitarist joined this band. + “I bet you know me from my previous band, and now you know the comeback is ON. I’ll show everyone I DO believe in important world-changing stuff... in between face-melting guitar solos!” + + +++ [Be the guitarist!] + ~ char_guitarist = true + -> NAME + +++ [Check out another character.] + -> VIEW_CHARS + + + (SELECT_BASSIST)Bassist + This cynical veteran musician believes that you can’t get too invested in changing the world, because “The People” will always find a way to mess it up. + + Likes - Rock-solid principles, Singer’s writing, keeping things even. + Dislikes - Getting hopes up, posers, “the bright side”. + + ++ [Be the bassist!] + ~ char_bassist = true + -> NAME + ++ [Check out another character.] + -> VIEW_CHARS + ++ [Learn why the bassist joined this band.] + “I used to be an optimist, but people never change, so now I hate them. But this new band might actually make a difference. Maybe. I’m wary about getting my hopes up.” + + +++ [Be the bassist!] + ~ char_bassist = true + -> NAME + +++ [Check out another character.] + -> VIEW_CHARS + + + (SELECT_KEYS)Keyboardist + Determined to find the bright side of anything, this young do-gooder is out to change the world with music that can be everything to everyone! + + Likes - Positivity, hope, togetherness. + Dislikes - Negativity, selfishness, conflict. + + ++ [Be the keyboardist!] + ~ char_keyboardist = true + -> NAME + ++ [Check out another character.] + -> VIEW_CHARS + ++ [Learn why the keyboardist joined this band.] + “I’m so excited to be in my first band! I want to bring people together and make them feel so good that they go, like, into the world and do extra good things!” + + +++ [Be the keyboardist!] + ~ char_keyboardist = true + -> NAME + +++ [Check out another character.] + -> VIEW_CHARS + += NAME +Great choice! Now what's your name and pronouns? + +Name _________ + +(In game, players will choose their character name by typing something in. For this Inky script, I've inputted default names. You can change these for your playthrough by typing another name between the quotation marks in the ink.) + + ~ name_singer = "Inez" + ~ name_guitarist = "Strummer" + ~ name_bassist = "Graham" + ~ name_keyboardist = "Neptune" + +Pronouns [button select] +{ +- char_singer: -> PRONOUNS_SINGER +- char_guitarist: -> PRONOUNS_GUITARIST +- char_bassist: -> PRONOUNS_BASSIST +- char_keyboardist: -> PRONOUNS_KEYS +} + += PRONOUNS_SINGER + + + [She/her] + ~ pronouns_singer = "femme" + + [He/him] + ~ pronouns_singer = "masc" + + [They/them] + ~ pronouns_singer = "enby" + - + -> PLAY_SINGER + += PLAY_SINGER +{name_singer}, eh? +{ +- pronouns_singer == "femme": + She likes that name. +- pronouns_singer == "masc": + He likes that name. +- else: + They like that name. +} +Now you're ready to play! + + PLAY + -> OPENING + += PRONOUNS_GUITARIST + + + [She/her] + ~ pronouns_guitarist = "femme" + + [He/him] + ~ pronouns_guitarist = "masc" + + [They/them] + ~ pronouns_guitarist = "enby" + - + -> PLAY_GUITARIST + += PLAY_GUITARIST +{name_guitarist}, eh? +{ +- pronouns_guitarist == "femme": + She likes that name. +- pronouns_guitarist == "masc": + He likes that name. +- else: + They like that name. +} +Now you're ready to play! + + PLAY + -> OPENING + += PRONOUNS_BASSIST + + + [She/her] + ~ pronouns_bassist = "femme" + + [He/him] + ~ pronouns_bassist = "masc" + + [They/them] + ~ pronouns_bassist = "enby" + - + -> PLAY_BASSIST + += PLAY_BASSIST +{name_bassist}, eh? +{ +- pronouns_bassist == "femme": + She likes that name. +- pronouns_bassist == "masc": + He likes that name. +- else: + They like that name. +} +Now you're ready to play! + + PLAY + -> OPENING + += PRONOUNS_KEYS + + + [She/her] + ~ pronouns_keyboardist = "femme" + + [He/him] + ~ pronouns_keyboardist = "masc" + + [They/them] + ~ pronouns_keyboardist = "enby" + - + -> PLAY_KEYS + += PLAY_KEYS +{name_keyboardist}, eh? +{ +- pronouns_keyboardist == "femme": + She likes that name. +- pronouns_keyboardist == "masc": + He likes that name. +- else: + They like that name. +} +Now you're ready to play! + + PLAY + -> OPENING \ No newline at end of file