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

  displayItemId none
  start cutscene no villagers no creatures
  create villager Benjamin 70,72,4
  speed Benjamin 3
  speed Player 3
  move villager Benjamin 43,72,4
  move villager Player 43,73,4

  include load_player_dating_animations

  wait 150
  fade out
  wait 10
  remove villager Benjamin

  # Part 2 - Skipping Stones
  teleport to mountain without saving 50,59,4
  wait 1
  start cutscene no villagers no creatures
  # fade in
  play child benjamin_skipping_stones
  # fade out
  wait 5

  # Part 3 - Eating
  teleport to mountain without saving 56,61,8
  wait 1
  start cutscene no villagers no creatures
  create item tilapia 57,57
  if-variable month is 1
    displayItemId peach
    create item mango 58,57
  else
    if-variable month is 2
      displayItemId banana
      create item passion-fruit 58,57
    else
      if-variable month is 3
        displayItemId grape
        create item golden-honeydew 58,57
      else
        displayItemId starfruit
        create item persimmon 58,57
      end
    end
  end

  create villager Benjamin 57,63,8
  speed Benjamin 3
  move villager Benjamin 57,59,8
  move villager Player 56,59,8
  fade in
  wait for Player
  wait 20
  displayItemId none
  play sound DropItem

  if-variable month is 1
    create item peach 56,57
  else
    if-variable month is 2
      create item banana 56,57
    else
      if-variable month is 3
        create item grape 56,57
      else
        create item starfruit 56,57
      end
    end
  end

  wait 30
  fade out
  wait 10
  remove villager Benjamin

  teleport to orange town without saving 1,45,6
  wait 1
  start cutscene no villagers no creatures
  create villager Benjamin 1,46,6
  offset Benjamin Y -8
  speed Benjamin 2
  speed Player 2
  move villager Benjamin 3,46,4

  create villager Stella 3,54,8
  speed Stella 3
  move villager Stella 3,51,8
  move villager Player 2,45,6
  fade in
  wait for Stella
  Stella "<!>"
  speed Stella 3.3
  move villager Stella 3,47,8
  wait for Stella
  turn Player down
  speed Stella 3
  turn Benjamin down

  Stella "Benjamin! Where have you been?"
  Benjamin "Just spending some time with <name>, why? Did anything happen?"
  Stella "Julia wanted to order some crops from your farm to send to a nearby town that was hit by a bad storm."
  Stella "But you were nowhere to be found, so I stepped in and sent some stuff from Brittany's ranch."
  Stella "You can ask your sisters for more details later if you want. I need to get back to work right now."

  move villager Player 2,46,2
  move villager Stella 3,76,remove
  wait 120

  turn Benjamin left
  wait 15
  turn Player right
  wait 20

  Benjamin "And that's another lost opportunity to do better than my sister. I should've known something was going to happen."
  Player "You worry too much about that, Benjamin. How could you've known?"
  Player "You don't need to work all day long like Stella to be successful!"
  Player "From the very day I've moved in, I've been hearing the whole town say that your crops have the best quality."
  Player "If you've achieved that and still got some free time to do something you enjoy, you have every right to it."

  Benjamin "I guess you're right..."
  Benjamin "Thank you for being such a good friend, <name>."

  include hug_benjamin

  displayItemId undefined
  teleport to home without saving 15,10,8
  switch isPlayingDate OFF
  speed Player restore
  switch playedBenjaminFirstDate ON
  wait 1
  fade in
  increase friendship Benjamin x 300


:benjamin_skipping_stones
  js this.benjaminEvent = $gameMap.createNormalEventAt('villagers/benjamin_skipping_stones', 0, 50, 58, 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;
  wait 8
  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.UP;
  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.DOWN; this.benjaminEvent._characterIndex = 1;
  wait 8

  # standing
  js this.benjaminEvent._pattern = 1;
  wait 8

  # throwing
  js this.benjaminEvent._pattern = 2;
  wait 5
  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.LEFT;
  wait 5
  js this.benjaminEvent._pattern = 1;
  wait 5
  js this.benjaminEvent._pattern = 2;
  wait 5
  js this.benjaminEvent._pattern = 0; this.benjaminEvent._direction = Direction.RIGHT;
  wait 5
  js this.benjaminEvent._pattern = 1;

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


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

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

  wait 5

  # ending
  js this.benjaminEvent._pattern = 1;
  + this.throwEvent._pattern = 0; this.throwEvent._direction = Direction.LEFT;
  + this.skippingEvent._pattern = 1;
  wait 5

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

  wait 3
  js this.benjaminEvent._pattern = 2;

  wait 2

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

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

  wait 5

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

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

  wait 4
  js this.skippingEvent._pattern = 2;
  + this.skippingEvent2._pattern = 2;

  wait 4

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

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

  wait 4

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

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

  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, 45, 58, Direction.DOWN, false, true);
  + this.skippingEvent4._lockPattern = true;
  + this.skippingEvent4._pattern = 0;

  wait 4

  js this.skippingEvent3._pattern = 1;
  + this.skippingEvent4._pattern = 1;

  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, 44, 58, Direction.DOWN, false, true);
  + this.skippingEvent5._lockPattern = true;
  + this.skippingEvent5._pattern = 0;

  wait 4

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

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

  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, 43, 58, 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, 42, 58, 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, 41, 58, 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, 40, 58, 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;
  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;
