// Copyright (c) 2022 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "PokerVNScene.hpp" #include "prefabs/characters/PennyPrefab.hpp" namespace Dawn { class TestScene : public PokerVNScene { protected: PennyPrefab *penny; PennyPrefab *julie; PennyPrefab *sammy; PennyPrefab *lucy; void vnStage() override { penny = PennyPrefab::create(this); julie = PennyPrefab::create(this); sammy = PennyPrefab::create(this); lucy = PennyPrefab::create(this); PokerVNScene::vnStage(); } std::vector getPokerPlayers() override { return std::vector{ this->penny->getComponent(), this->julie->getComponent(), this->sammy->getComponent(), this->lucy->getComponent() }; } public: TestScene(DawnGame *game) : PokerVNScene(game) {} std::vector getRequiredAssets() override { auto assMan = &this->game->assetManager; std::vector assets; vectorAppend(&assets, PokerVNScene::getRequiredAssets()); vectorAppend(&assets, PennyPrefab::getRequiredAssets(assMan)); assets.push_back(assMan->get("texture_tavern_night")); return assets; } IVisualNovelEvent * getVNEvent() override { auto texture = this->game->assetManager.get("texture_tavern_night"); auto start = new VisualNovelChangeSimpleBackgroundEvent( vnManager, &texture->texture ); start->then(new VisualNovelTextboxEvent(vnManager, penny->getComponent(), "1234")); return start; } }; }