// Copyright (c) 2022 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "visualnovel/scene/SimpleVNScene.hpp"
#include "scenes/Scene_16.hpp"

namespace Dawn {
  class Scene_15 : public SimpleVNScene {
    protected:
      void vnStage() override {
        
      }

      void onSceneEnded() {
        auto scene = new Scene_16(this->game);
        game->assetManager.queueSwap(
          scene->getRequiredAssets(), this->getRequiredAssets()
        );
        game->assetManager.syncLoad();
        scene->stage();
        this->game->sceneCutover(scene);
      }

    public:
      Scene_15(DawnGame *game) : SimpleVNScene(game) {
      }

      std::vector<Asset*> getRequiredAssets() override {
        std::vector<Asset*> assets = SimpleVNScene::getRequiredAssets();
        return assets;
      }

      IVisualNovelEvent * getVNEvent() override {
        auto start = new VisualNovelPauseEvent(vnManager, 0.1f);
        start
          ->then(new VisualNovelTextboxEvent(vnManager, "scene.15.1"))
          ->then(new VisualNovelCallbackEvent<Scene_15>(vnManager, this, &Scene_15::onSceneEnded))
        ;
        return start;
      }
  };
}