pink_shell = {} function pink_shell.go_outside() ChangeMap("hallucination_cliff", "fromInside") end function pink_shell.talk_to_ocho() StartCutscene() SetAnimation("ocho", "talk") DisplayMessage("* *twist* *turn*\n\f* That person over there is Mixolydia.\n\f* Isn't she pretty?\n\f...\n\f* Hey, the four of you don't look so good.", "Ocho", SpeakerType.MAN) WaitForEndOfMessage() SetAnimation("ocho", "still") HideCutsceneBars() end function pink_shell.talk_to_mixolydia() SetDirection("mixolydia", Direction.UP) SetAnimation("mixolydia", "talk") StartCutscene() DisplayMessage("* Oh, me, oh, my! We have visitors! `", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() SetAnimation("mixolydia", "still") Delay(500) SetDirection("mixolydia", Direction.DOWN) Delay(1000) if gamestate.went_in_hot_spring then SetAnimation("mixolydia", "talk") DisplayMessage("* ...You people stink.", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() SetAnimation("mixolydia", "still") Delay(1000) end FaceTowardSpriteCardinally("mixolydia", "lucas") ShowExpression("mixolydia", "confusion") Delay(1000) RemoveExpression("mixolydia") SetAnimation("mixolydia", "talk") DisplayMessage("* Oh, wait a minute...", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() SetAnimation("mixolydia", "still") Delay(1000) SetAnimation("mixolydia", "talk") DisplayMessage("* Are you Lucas?", "Mixolydia", SpeakerType.WOMAN) ShowChoice("Yes", "No") WaitForEndOfMessage() if GetChoiceSelection() == 1 then DisplayMessage("* This island really has done a number on you.\n\f* But I'll humor you and listen anyway.", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() end if gamestate.went_in_hot_spring then SetAnimation("mixolydia", "still") Delay(1000) SetAnimation("mixolydia", "talk") DisplayMessage("* ...Wow, you guys really stink.", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() end SetAnimation("mixolydia", "still") Delay(2000) SetAnimation("mixolydia", "talk") DisplayMessage("* Ionia told me about you. `\n\f* I'm Mixolydia, one of the Magifolk. `\n\f* If that's too hard to remember, ...\n... no, will do just fine. `", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() SetAnimation("mixolydia", "still") Delay(2000) SetAnimation("mixolydia", "talk") DisplayMessage("* Okay... Line up here.", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() SetAnimation("mixolydia", "still") Delay(1000) -- direct everyone to stand in their positions BreakUpParty("lucas") MakeSpriteNotSolid("lucas") MakeSpriteNotSolid("mixolydia") UnpauseSprite("lucas") SetMovementSpeed("lucas", 1) DirectSpriteToLocation("lucas", "lucas_lineup", PathfindingOptions.CARDINAL_DIRECTIONS_ONLY) WaitForSpritePath("lucas") DisableBehaviour("lucas") SetDirection("lucas", Direction.DOWN) SetAnimation("lucas", "tired") PauseSprite("lucas") SetMovementSpeed("lucas", 2) Delay(100) SetDirection("mixolydia", Direction.DOWN) UnpauseSprite("kuma") SetMovementSpeed("kuma", 1) DirectSpriteToLocation("kuma", "kumatora_lineup", PathfindingOptions.CARDINAL_DIRECTIONS_ONLY) WaitForSpritePath("kuma") DisableBehaviour("kuma") SetDirection("kuma", Direction.DOWN) SetAnimation("kuma", "tired") PauseSprite("kuma") SetMovementSpeed("kuma", 0) Delay(100) UnpauseSprite("duster") SetMovementSpeed("duster", 1) DirectSpriteToLocation("duster", "duster_lineup", PathfindingOptions.CARDINAL_DIRECTIONS_ONLY) WaitForSpritePath("duster") DisableBehaviour("duster") SetDirection("duster", Direction.DOWN) SetAnimation("duster", "tired") PauseSprite("duster") SetMovementSpeed("duster", 0) Delay(100) UnpauseSprite("boney") SetMovementSpeed("boney", 1) DirectSpriteToLocation("boney", "boney_lineup", PathfindingOptions.CARDINAL_DIRECTIONS_ONLY) WaitForSpritePath("boney") DisableBehaviour("boney") SetDirection("boney", Direction.DOWN) SetAnimation("boney", "tired") PauseSprite("boney") SetMovementSpeed("boney", 0) Delay(100) if gamestate.still_has_claus then UnpauseSprite("join_claus") SetMovementSpeed("join_claus", 1) DirectSpriteToLocation("join_claus", "claus_lineup", PathfindingOptions.CARDINAL_DIRECTIONS_ONLY) WaitForSpritePath("join_claus") DisableBehaviour("join_claus") SetDirection("join_claus", Direction.DOWN) SetAnimation("join_claus", "tired") PauseSprite("join_claus") SetMovementSpeed("join_claus", 0) end Delay(1000) if gamestate.went_in_hot_spring then SetAnimation("mixolydia", "talk") DisplayMessage("* ...Yuck. What a stench.", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() SetAnimation("mixolydia", "still") Delay(1000) end SetAnimation("mixolydia", "talk") DisplayMessage("* Tanetane Island...\nIt wreaks havoc on a person's mind.\n\f* Every trauma you've suffered is pulled out.\n\f* The things down there tear at your weaknesses and the scars in your heart.\n\f* But I'll bring you back to your senses now. `", "Mixolydia", SpeakerType.WOMAN) WaitForEndOfMessage() SetAnimation("mixolydia", "still") Delay(500) SetDirection("mixolydia", Direction.UP) Delay(500) -- smack each character UnpauseSprite("mixolydia") SetMovementSpeed("mixolydia", 1) pink_shell.smack("smack_boney_pos") SetAnimation("boney", "frozen") Delay(1000) pink_shell.smack("smack_lucas_pos") SetAnimation("lucas", "frozen") Delay(1000) pink_shell.smack("smack_kumatora_pos") SetAnimation("kuma", "frozen") Delay(1000) pink_shell.smack("smack_duster_pos") SetAnimation("duster", "frozen") Delay(1000) -- TODO: handle fake claus (should Lucas react to this?) if gamestate.still_has_claus then pink_shell.smack("smack_claus_pos") DestroyNamedSprite("join_claus") CreateAnimatedSpriteAtWarpPoint("puff", "curtain_call", "claus_lineup", "puff!", Direction.DOWN, SpriteLayer.ABOVE) WaitForAnimation("puff") DestroyNamedSprite("puff") end -- TODO: rest of scene MakeSpriteSolid("lucas") end function pink_shell.smack(posname) DirectSpriteToLocation("mixolydia", posname, PathfindingOptions.CARDINAL_DIRECTIONS_ONLY) WaitForSpritePath("mixolydia") SetAnimation("mixolydia", "holding_stick") Delay(2000) SetAnimation("mixolydia", "turn_down!") WaitForAnimation("mixolydia") SetDirection("mixolydia", Direction.DOWN) SetAnimation("mixolydia", "smack!") WaitForAnimation("mixolydia") PlaySound("ruler_smack.wav") SetAnimation("mixolydia", "holding_stick") end