115 lines
3.9 KiB
GDScript
115 lines
3.9 KiB
GDScript
extends Sequence
|
|
|
|
const VARS := {
|
|
&'stick': &'times interacted with entertainment center as Stick',
|
|
&'lorna': &'times interacted with entertainment center as Lorna',
|
|
&'blujai': &'times interacted with entertainment center as Blujai',
|
|
&'gibbo': &'times interacted with entertainment center as Gibbo'
|
|
}
|
|
|
|
func _run(_args: Dictionary) -> Variant:
|
|
var whom := Storyboard.get_current_character() as CharacterProfile
|
|
var n := Storyboard.save_data.misc.get(VARS[whom.id], 0) as int
|
|
n += 1
|
|
Storyboard.save_data.misc[VARS[whom.id]] = n
|
|
match whom.id:
|
|
&'stick': match n:
|
|
1: await whom.say([
|
|
"It's nothing fancy, but I have a couple good games on it."
|
|
])
|
|
2: await whom.say([
|
|
"Do you think it's weird a jogger plays video games?",
|
|
"Hey, I gotta unwind somehow."
|
|
])
|
|
3: await whom.say([
|
|
"I got Table Tennis, Table Tennis on Ice, Table Tennis 2,\n" +
|
|
"Table Tennis: Attack of the Killer Robot Ninja Pirate\n" +
|
|
"Tennis Balls from Outer Space feat. Dante\n" +
|
|
"from the Dante's Inferno series...",
|
|
"Just kidding!",
|
|
"Table Tennis on Ice isn't a real game."
|
|
])
|
|
_: await UI.say(["It's an entertainment center."])
|
|
&'lorna': match n:
|
|
1: await whom.say([
|
|
"What a peculiarly shaped table.\n" +
|
|
"What's this black monolith atop it?"
|
|
])
|
|
2: await whom.say([
|
|
"How do you suppose this is used?\n" +
|
|
"Perhaps it's a box for storing treasured belongings."
|
|
])
|
|
3: await whom.say([
|
|
"Stick, dear, come here, would you?\n" +
|
|
"I fear something may be wrong with your funny black box.\n" +
|
|
"There doesn't seem to be a way to open it."
|
|
])
|
|
_: await UI.say(["You remain unable to open the funny black box."])
|
|
&'blujai': match n:
|
|
1:
|
|
await whom.say([
|
|
"Video games? Really? Oh, Stick. Ever the mental child.",
|
|
"As for MY dignified self, I wouldn't be caught dead\n" +
|
|
"sullying my feathers playing the dratted things.",
|
|
"Caw! Huff. Video games indeed. How utterly pedestrian."
|
|
])
|
|
await Storyboard.get_character(&'stick').say([
|
|
"Of course it's pedestrian.\n" +
|
|
"What, you think a fella this fast\n" +
|
|
"has to take a car anywhere?"
|
|
])
|
|
var runner := PlayerControl.get_runner() as Runner
|
|
await runner.turn_toward(Vector3.ZERO)
|
|
runner.animation_player.play(&'caw')
|
|
runner.audio_player.stream = whom.talk_blip
|
|
runner.audio_player.play()
|
|
await Wait.seconds(0.5)
|
|
runner.animation_player.play(&'stand')
|
|
await whom.say([
|
|
"SQUAWK! S--Stick! You're at home!"
|
|
])
|
|
await Storyboard.get_character(&'stick').say([
|
|
"Nah, sorry, I'm out shopping."
|
|
])
|
|
await whom.say([
|
|
"Very funny."
|
|
])
|
|
await runner.turn_toward(Cursor3D.global_position)
|
|
await whom.say([
|
|
"Anyway, you don't even have very good taste.\n" +
|
|
"'Table Tennis 6: the Retennising?' Honestly, now.",
|
|
"If you're going to engage with this sort of swill,\n" +
|
|
"you should at least balance it out\n" +
|
|
"with some almost-tolerable titles,\n" +
|
|
"like 'Last Bird Standing.'",
|
|
"(do you have last bird standing\n" +
|
|
"can we play it together if you do\n" +
|
|
"please say yes please pls)"
|
|
])
|
|
_: await UI.say(["They don't have Last Bird Standing. Very sad."])
|
|
&'gibbo': match n:
|
|
1:
|
|
await whom.say([
|
|
"A washing machine?"
|
|
])
|
|
await Storyboard.get_character(&'stick').say([
|
|
"Does it look like a washing machine?"
|
|
])
|
|
var runner := PlayerControl.get_runner() as Runner
|
|
await runner.turn_toward(Vector3.ZERO)
|
|
await whom.say([
|
|
"Oh, hi, Stick! Yes, it does! Is it one?"
|
|
])
|
|
await Storyboard.get_character(&'stick').say([
|
|
"Yeah, I use it to wash my brain.\n" +
|
|
"You know how it is. Gotta keep that sucker clean."
|
|
])
|
|
await runner.turn_toward(Cursor3D.global_position)
|
|
await Wait.seconds(0.5)
|
|
await whom.say([
|
|
"Washing your brain... Whoa...",
|
|
"That's so cool!"
|
|
])
|
|
_: await UI.say(["This is where Stick washes their brain."])
|
|
return
|