:benjamin_second_date
  switch isPlayingDate ON
  js Managers.Images.loadCharacter('villagers/benjamin_skipping_stones')

  displayItemId none
  start cutscene no villagers no creatures
  create villager Benjamin 3,62,6
  speed Benjamin 3
  speed Player 3
  move villager Player 14,62,6
  move villager Benjamin 13,62,6

  include load_player_dating_animations

  wait 150
  fade out
  wait 10
  remove villager Benjamin

  # Part 2 - Skipping Stones Together
  teleport to forest without saving 61,8,4
  wait 1
  start cutscene no villagers no creatures
  switch hidePlayer ON
  play child player_and_benjamin_skipping_stones_together
  wait 5

  # Part 3 - Eating
  teleport to forest without saving 52,38,4
  wait 1
  start cutscene no villagers no creatures

  js this.tempEvent = $gameMap.createStaticEventAt('objects/blanket2{sprite}', 0, 53, 39, 2, 0, 0, true);

  js var characterName = Managers.Player.generatePlayerSpriteName() + '_poses';
  + this.playerEvent = $gameMap.createNormalEventAt(characterName, 5, 52, 38, Direction.RIGHT, false, true);
  + this.playerEvent.stepAnime = true;
  + this.playerEvent.offsetX = 16;
  + this.playerEvent.offsetY = 12;

  create villager Benjamin 59,37,4
  speed Benjamin 2.5
  move villager Benjamin 51,37,2
  fade in
  wait 180
  fade out
  wait 10
  remove villager Benjamin

  js this.tempEvent.erase(); delete this.tempEvent;
  + this.playerEvent.erase(); delete this.playerEvent;

  teleport to orange town without saving 69,61,4
  wait 1
  switch hidePlayer OFF
  start cutscene no villagers no creatures
  create villager Benjamin 70,61,4
  offset Benjamin Y -8
  speed Benjamin 3
  speed Player 3
  move villager Player 63,61,8
  move villager Benjamin 64,61,8
  create villager Brittany 64,53,2

  speed Brittany 3
  move villager Brittany 64,59,2
  fade in
  wait for Brittany
  wait for Player
  wait for Benjamin
  
  Brittany "Hi Benji! Were you taking a break?"
  Benjamin "Yeah, just spending some time with <name>."
  Brittany "Oh, don't mind me then. I'll stop by your farm later to talk about some new businesses."
  Benjamin "Alright, thanks sis!"
  move villager Brittany 64,35,4
  wait 80
  turn Benjamin left
  wait 20
  turn Player right
  wait 20

  Benjamin "I've really thought about what you said to me last time. About deserving a break."
  Benjamin "The old me would now be running after Brittany to find out what she wanted."
  Benjamin "But I'm trying to let those things go and just enjoy my free time."
  Player "That's great! It will do you very good."
  Benjamin "And more than that, I have a different reason to stay here right now."
  Player "Oh? What reason?"
  Benjamin "You."
  Player "<?>"
  Player "I don't follow."
  Benjamin "Maybe I didn't make it clear enough. I'm trying to tell you that <color:important>I like you.</color>"
  Player "<!>"
  Player "<...>"
  Player ("What can I say...", "I like you too!", "Thank you!")

  if response == "Thank you!"
    Benjamin "Oh..."

    fade out
    wait 10
  else
    include benjamin_second_date_change_relationship
  end

  teleport to home without saving 15,10,8
  switch isPlayingDate OFF
  displayItemId undefined
  speed Player restore
  switch playedBenjaminSecondDate ON
  wait 1
  fade in

:benjamin_second_date_change_relationship
  include load_player_dating_animations
  wait 10

  Benjamin "You really do? I was really afraid you were going to say something else."
  Player "Yes, I also like you a lot, Benjamin!"

  include kiss_benjamin
  switch datingBenjamin ON
  increase friendship Benjamin x 500
  gain achievement FIRST_DATE

:player_and_benjamin_skipping_stones_together
  label beginning
  if !Managers.Images.loadCharacter(Managers.Player.generatePlayerSpriteName() + '_games').isReady()
    wait 12
    go to label beginning
  end

  js var characterName = Managers.Player.generatePlayerSpriteName() + '_games';
  + this.playerEvent = $gameMap.createNormalEventAt(characterName, 0, 61, 8, Direction.DOWN, false, true);
  + this.playerEvent._lockPattern = true;
  + this.playerEvent._pattern = 0;

  js this.benjaminEvent = $gameMap.createNormalEventAt('villagers/benjamin_skipping_stones', 0, 61, 7, Direction.DOWN, false, true);
  + this.benjaminEvent._lockPattern = true;
  + this.benjaminEvent._pattern = 0;

  fade in
  # breathing
  wait 8

  js this.benjaminEvent._pattern = 1;
  wait 8

  js this.benjaminEvent._pattern = 2;
  wait 8

  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.LEFT;
  wait 8

  # looking up
  js this.benjaminEvent._pattern = 1;
  wait 8

  js this.benjaminEvent._pattern = 2;
  wait 24

  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.RIGHT;
  wait 8

  # picking stone
  js this.benjaminEvent._pattern = 1;
  wait 8

  js this.benjaminEvent._pattern = 2;
  + this.playerEvent._pattern = 1;
  wait 8

  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.UP;
  + this.playerEvent._pattern = 2;
  wait 8

  js this.benjaminEvent._pattern = 1;
  + this.playerEvent._pattern = 0; this.playerEvent._direction = Direction.LEFT;
  wait 8

  js this.benjaminEvent._pattern = 2;
  + this.playerEvent._pattern = 1;
  wait 8

  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.DOWN; this.benjaminEvent._characterIndex = 1;
  + this.playerEvent._pattern = 2;
  wait 8

  # standing
  js this.benjaminEvent._pattern = 1;
  + this.playerEvent._pattern = 0; this.playerEvent._direction = Direction.RIGHT;
  wait 8

  # throwing
  js this.benjaminEvent._pattern = 2;
  + this.playerEvent._pattern = 1;
  wait 5

  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.LEFT;
  + this.playerEvent._pattern = 2;
  wait 5

  js this.benjaminEvent._pattern = 1;
  + this.playerEvent._pattern = 0; this.playerEvent._direction = Direction.UP;
  wait 5

  js this.benjaminEvent._pattern = 2;
  this.playerEvent._pattern = 1;
  wait 5

  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.RIGHT;
  this.playerEvent._pattern = 2;
  wait 5

  js this.benjaminEvent._pattern = 1;
  + this.playerEvent._pattern = 0; this.playerEvent._direction = Direction.DOWN; this.playerEvent._characterIndex = 1;

  js this.throwEvent = $gameMap.createNormalEventAt('splash', 0, 60, 7, Direction.DOWN, false, true);
  + this.throwEvent._lockPattern = true;
  + this.throwEvent._pattern = 0;

  js this.playerThrowEvent = $gameMap.createNormalEventAt('splash', 0, 60, 8, Direction.DOWN, false, true);
  + this.playerThrowEvent._lockPattern = true;
  + this.playerThrowEvent._pattern = 0;
  wait 5

  js this.benjaminEvent._pattern = 2;
  + this.throwEvent._pattern = 1;
  + this.playerEvent._pattern = 1;
  + this.playerThrowEvent._pattern = 1;
  wait 5

  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.UP;
  + this.throwEvent._pattern = 2;
  + this.playerEvent._pattern = 2;
  + this.playerThrowEvent._pattern = 2;

  js this.skippingEvent = $gameMap.createNormalEventAt('splash', 1, 59, 7, Direction.DOWN, false, true);
  + this.skippingEvent._lockPattern = true;
  + this.skippingEvent._pattern = 0;

  js this.playerSinkEvent = $gameMap.createNormalEventAt('splash', 2, 59, 7, Direction.DOWN, false, true);
  + this.playerSinkEvent._lockPattern = true;
  + this.playerSinkEvent._pattern = 0;

  wait 5

  # ending
  js this.benjaminEvent._pattern = 1;
  + this.throwEvent._pattern = 0; this.throwEvent._direction = Direction.LEFT;
  + this.skippingEvent._pattern = 1;
  + this.playerEvent._pattern = 0; this.playerEvent._direction = Direction.LEFT;
  + this.playerThrowEvent._pattern = 0; this.playerThrowEvent._direction = Direction.LEFT;
  + this.playerSinkEvent._pattern = 1;

  wait 5

  js this.throwEvent._pattern = 1;
  + this.skippingEvent._pattern = 2;
  + this.playerThrowEvent._pattern = 1;
  + this.playerSinkEvent._pattern = 2;

  wait 3
  js this.benjaminEvent._pattern = 2;
  + this.playerEvent._pattern = 1;

  wait 2

  js this.throwEvent.erase(); delete this.throwEvent;
  + this.skippingEvent._pattern = 0; this.skippingEvent._direction = Direction.LEFT;
  + this.playerThrowEvent.erase(); delete this.playerThrowEvent;
  + this.playerSinkEvent._pattern = 0; this.playerSinkEvent._direction = Direction.LEFT;

  js this.skippingEvent2 = $gameMap.createNormalEventAt('splash', 1, 58, 7, Direction.DOWN, false, true);
  + this.skippingEvent2._lockPattern = true;
  + this.skippingEvent2._pattern = 0;

  wait 5

  js this.skippingEvent._pattern = 1;
  + this.skippingEvent2._pattern = 1;
  + this.playerSinkEvent._pattern = 1;

  wait 1
  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.DOWN; this.benjaminEvent._characterIndex = 0;
  + this.playerEvent._pattern = 2;
  wait 4

  js this.skippingEvent._pattern = 2;
  + this.skippingEvent2._pattern = 2;
  + this.playerSinkEvent._pattern = 2;

  wait 4

  js this.skippingEvent.erase(); delete this.skippingEvent;
  + this.skippingEvent2._pattern = 0; this.skippingEvent2._direction = Direction.LEFT;
  + this.playerSinkEvent.erase(); delete this.playerSinkEvent;

  js this.skippingEvent3 = $gameMap.createNormalEventAt('splash', 1, 57, 7, Direction.DOWN, false, true);
  + this.skippingEvent3._lockPattern = true;
  + this.skippingEvent3._pattern = 0;
  + this.playerEvent._pattern = 0; this.playerEvent._direction = Direction.RIGHT;
  wait 4

  js this.skippingEvent2._pattern = 1;
  + this.skippingEvent3._pattern = 1;
  wait 4

  js this.skippingEvent2._pattern = 2;
  + this.skippingEvent3._pattern = 2;
  + this.playerEvent._pattern = 1;
  wait 4

  js this.skippingEvent2.erase(); delete this.skippingEvent2;
  + this.skippingEvent3._pattern = 0; this.skippingEvent3._direction = Direction.LEFT;

  js this.skippingEvent4 = $gameMap.createNormalEventAt('splash', 1, 56, 7, Direction.DOWN, false, true);
  + this.skippingEvent4._lockPattern = true;
  + this.skippingEvent4._pattern = 0;
  wait 4

  js this.skippingEvent3._pattern = 1;
  + this.skippingEvent4._pattern = 1;
  + this.playerEvent._pattern = 2;
  wait 4

  js this.skippingEvent3._pattern = 2;
  + this.skippingEvent4._pattern = 2;
  wait 4

  js this.skippingEvent3.erase(); delete this.skippingEvent3;
  + this.skippingEvent4._pattern = 0; this.skippingEvent4._direction = Direction.LEFT;

  js this.skippingEvent5 = $gameMap.createNormalEventAt('splash', 1, 55, 7, Direction.DOWN, false, true);
  + this.skippingEvent5._lockPattern = true;
  + this.skippingEvent5._pattern = 0;
  + this.playerEvent._pattern = 0; this.playerEvent._direction = Direction.UP;
  wait 4

  js this.skippingEvent4._pattern = 1;
  + this.skippingEvent5._pattern = 1;
  wait 4

  js this.skippingEvent4._pattern = 2;
  + this.skippingEvent5._pattern = 2;
  + this.playerEvent._pattern = 1;
  wait 4

  js this.skippingEvent4.erase(); delete this.skippingEvent4;
  + this.skippingEvent5._pattern = 0; this.skippingEvent5._direction = Direction.LEFT;

  js this.skippingEvent6 = $gameMap.createNormalEventAt('splash', 1, 54, 7, Direction.DOWN, false, true);
  + this.skippingEvent6._lockPattern = true;
  + this.skippingEvent6._pattern = 0;
  wait 4

  js this.skippingEvent5._pattern = 1;
  + this.skippingEvent6._pattern = 1;
  wait 4

  js this.skippingEvent5._pattern = 2;
  + this.skippingEvent6._pattern = 2;
  wait 4

  js this.skippingEvent5.erase(); delete this.skippingEvent5;
  + this.skippingEvent6._pattern = 0; this.skippingEvent6._direction = Direction.LEFT;

  js this.skippingEvent7 = $gameMap.createNormalEventAt('splash', 1, 53, 7, Direction.DOWN, false, true);
  + this.skippingEvent7._lockPattern = true;
  + this.skippingEvent7._pattern = 0;
  wait 4

  js this.skippingEvent6._pattern = 1;
  + this.skippingEvent7._pattern = 1;
  wait 4

  js this.skippingEvent6._pattern = 2;
  + this.skippingEvent7._pattern = 2;
  wait 4

  js this.skippingEvent6.erase(); delete this.skippingEvent6;
  + this.skippingEvent7._pattern = 0; this.skippingEvent7._direction = Direction.LEFT;

  js this.skippingEvent8 = $gameMap.createNormalEventAt('splash', 1, 52, 7, Direction.DOWN, false, true);
  + this.skippingEvent8._lockPattern = true;
  + this.skippingEvent8._pattern = 0;
  wait 4

  js this.skippingEvent7._pattern = 1;
  + this.skippingEvent8._pattern = 1;
  wait 4

  js this.skippingEvent7._pattern = 2;
  + this.skippingEvent8._pattern = 2;
  wait 4

  js this.skippingEvent7.erase(); delete this.skippingEvent7;
  + this.skippingEvent8._pattern = 0; this.skippingEvent8._direction = Direction.LEFT;

  js this.sinkEvent = $gameMap.createNormalEventAt('splash', 2, 51, 7, Direction.DOWN, false, true);
  + this.sinkEvent._lockPattern = true;
  + this.sinkEvent._pattern = 0;
  wait 4

  js this.skippingEvent8._pattern = 1;
  + this.sinkEvent._pattern = 1;
  wait 4

  js this.skippingEvent8._pattern = 2;
  + this.sinkEvent._pattern = 2;
  # + this.playerEvent._pattern = 2;
  wait 4

  js this.skippingEvent8.erase(); delete this.skippingEvent8;
  + this.sinkEvent._pattern = 0; this.sinkEvent._direction = Direction.LEFT;
  wait 4

  js this.sinkEvent._pattern = 1;
  wait 4

  js this.sinkEvent.erase(); delete this.sinkEvent;
  fade out

  wait 4
  js this.benjaminEvent.erase(); delete this.benjaminEvent;
  + this.playerEvent.erase(); delete this.playerEvent;