Poker winning moment.
This commit is contained in:
7
src/dawnpokergame/visualnovel/CMakeLists.txt
Normal file
7
src/dawnpokergame/visualnovel/CMakeLists.txt
Normal file
@ -0,0 +1,7 @@
|
||||
# Copyright (c) 2022 Dominic Masters
|
||||
#
|
||||
# This software is released under the MIT License.
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
# Subdirs
|
||||
add_subdirectory(events)
|
10
src/dawnpokergame/visualnovel/events/CMakeLists.txt
Normal file
10
src/dawnpokergame/visualnovel/events/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
||||
# Copyright (c) 2022 Dominic Masters
|
||||
#
|
||||
# This software is released under the MIT License.
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
# Sources
|
||||
target_sources(${DAWN_TARGET_NAME}
|
||||
PRIVATE
|
||||
PokerBetLoopEvent.cpp
|
||||
)
|
64
src/dawnpokergame/visualnovel/events/PokerBetLoopEvent.cpp
Normal file
64
src/dawnpokergame/visualnovel/events/PokerBetLoopEvent.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
// 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))
|
||||
;
|
||||
}
|
@ -11,38 +11,15 @@
|
||||
#include "poker/visualnovel/PokerTurnEvent.hpp"
|
||||
#include "poker/visualnovel/PokerDetermineBetterEvent.hpp"
|
||||
#include "poker/visualnovel/PokerAIBetEvent.hpp"
|
||||
#include "poker/visualnovel/PokerNewBettingRoundEvent.hpp"
|
||||
#include "poker/visualnovel/PokerWinnerEvent.hpp"
|
||||
|
||||
#define POKER_DEAL_EVENT_CARD_COUNT 2
|
||||
|
||||
namespace Dawn {
|
||||
class PokerBetLoopEvent : public PokerGameEvent {
|
||||
protected:
|
||||
void onStart(IVisualNovelEvent *previous) override {
|
||||
PokerGameEvent::onStart(previous);
|
||||
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"))
|
||||
;
|
||||
betting
|
||||
->whenBettingFinished(new VisualNovelTextboxEvent(this->manager, "Betting Finished"))
|
||||
;
|
||||
betting
|
||||
->whenTurn(new VisualNovelTextboxEvent(this->manager, "Turn Time"))
|
||||
;
|
||||
betting
|
||||
->whenAiBet(new PokerAIBetEvent(this->manager))
|
||||
->then(new VisualNovelTextboxEvent(this->manager, "AI Bet"))
|
||||
->then(new PokerBetLoopEvent(this->manager))
|
||||
;
|
||||
betting
|
||||
->whenHumanBet(new VisualNovelTextboxEvent(this->manager, "Human Bet"))
|
||||
->then(new PokerBetLoopEvent(this->manager))
|
||||
;
|
||||
}
|
||||
void onStart(IVisualNovelEvent *previous) override;
|
||||
|
||||
bool_t onUpdate() override {
|
||||
return false;
|
||||
|
43
src/dawnpokergame/visualnovel/events/PokerInitialEvent.hpp
Normal file
43
src/dawnpokergame/visualnovel/events/PokerInitialEvent.hpp
Normal file
@ -0,0 +1,43 @@
|
||||
// Copyright (c) 2022 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#pragma once
|
||||
#include "poker/visualnovel/PokerNewRoundEvent.hpp"
|
||||
#include "poker/visualnovel/PokerDealEvent.hpp"
|
||||
#include "poker/visualnovel/PokerTakeBlindsEvent.hpp"
|
||||
#include "PokerBetLoopEvent.hpp"
|
||||
#include "visualnovel/events/VisualNovelTextboxEvent.hpp"
|
||||
|
||||
#define POKER_DEAL_EVENT_CARD_COUNT 2
|
||||
|
||||
namespace Dawn {
|
||||
class PokerInitialEvent : public PokerGameEvent {
|
||||
protected:
|
||||
void onStart(IVisualNovelEvent *previous) override {
|
||||
PokerGameEvent::onStart(previous);
|
||||
|
||||
this
|
||||
->then(new PokerNewRoundEvent(this->manager))
|
||||
->then(new VisualNovelTextboxEvent(this->manager, "Round Started"))
|
||||
->then(new PokerTakeBlindsEvent(this->manager))
|
||||
->then(new VisualNovelTextboxEvent(this->manager, "Blinds Taken"))
|
||||
->then(new PokerDealEvent(this->manager))
|
||||
->then(new VisualNovelTextboxEvent(this->manager, "Cards Dealt"))
|
||||
->then(new PokerBetLoopEvent(this->manager))
|
||||
;
|
||||
}
|
||||
|
||||
bool_t onUpdate() override {
|
||||
return false;
|
||||
}
|
||||
|
||||
void onEnd() override {
|
||||
}
|
||||
|
||||
public:
|
||||
PokerInitialEvent(VisualNovelManager *manager) : PokerGameEvent(manager) {
|
||||
}
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user