// Copyright (c) 2022 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #include "PokerBetLoopEvent.hpp" #include "PokerInitialEvent.hpp" using namespace Dawn; void PokerBetLoopEvent::onStart(IVisualNovelEvent *prev) { PokerGameEvent::onStart(prev); std::cout << "Bet Loop, bet" << std::endl; auto evt2 = new PokerDetermineBetterEvent(this->manager); auto betting = this->then(evt2); betting ->whenEveryoneFolded(new VisualNovelTextboxEvent(this->manager, "Everyone Folded")) ->then(new PokerWinnerEvent(this->manager)) ->then(new PokerInitialEvent(this->manager)) ; betting ->whenBettingFinished(new VisualNovelTextboxEvent(this->manager, "Betting Finished")) ->then(new PokerWinnerEvent(this->manager)) ->then(new PokerInitialEvent(this->manager)) ; betting ->whenTurn(new PokerTurnEvent(this->manager)) ->then(new VisualNovelTextboxEvent(this->manager, "Turn Time")) ->then(new PokerNewBettingRoundEvent(this->manager)) ->then(new PokerBetLoopEvent(this->manager)) ; betting ->whenHumanBet(new VisualNovelTextboxEvent(this->manager, "Human Bet")) ->then(new PokerBetLoopEvent(this->manager)) ; // AI Betting auto aiBet = betting ->whenAiBet(new VisualNovelTextboxEvent(this->manager, "AI Bet")) ->then(new PokerAIBetEvent(this->manager)) ; aiBet ->whenFolded(new VisualNovelTextboxEvent(this->manager, "Folded")) ->then(new PokerBetLoopEvent(this->manager)) ; aiBet ->whenAllIn(new VisualNovelTextboxEvent(this->manager, "All In")) ->then(new PokerBetLoopEvent(this->manager)) ; aiBet ->whenBetting(new VisualNovelTextboxEvent(this->manager, "Betting")) ->then(new PokerBetLoopEvent(this->manager)) ; aiBet ->whenCalling(new VisualNovelTextboxEvent(this->manager, "Calling")) ->then(new PokerBetLoopEvent(this->manager)) ; aiBet ->whenChecking(new VisualNovelTextboxEvent(this->manager, "Checking")) ->then(new PokerBetLoopEvent(this->manager)) ; }