Libsaki
Core library of Pancake Mahjong
eisui_kasumi.h
1 #ifndef SAKI_GIRL_EISUI_KASUMI_H
2 #define SAKI_GIRL_EISUI_KASUMI_H
3 
4 #include "../table/princess.h"
5 #include "../table/irs_ctrl.h"
6 
7 
8 
9 namespace saki
10 {
11 
12 
13 
14 class Kasumi : public GirlCrtp<Kasumi>, public HrhBargainer
15 {
16 public:
18 
19  bool checkInit(Who who, const Hand &init, const Table &table, int iter) override;
20  void onMonkey(std::array<Exist, 4> &exists, const Table &table) override;
21  void onDraw(const Table &table, Mount &mount, Who who, bool rinshan) override;
22  void onIrsChecked(const Table &table, Mount &mount) override;
23 
24  HrhBargainer *onHrhBargain(const Table &table) override;
25  Claim hrhBargainClaim(int plan, T34 t) override;
26  int hrhBargainPlanCt() override;
27  void onHrhBargained(int plan, Mount &mount) override;
28 
29 protected:
30  IrsCtrlGetter attachIrsOnDice() override;
31 
32 private:
33  IrsCtrlCheck<Kasumi> mIrsCtrl {
35  "KASUMI",
36  IrsCheckList {
37  IrsCheckItem::CHECK_ENABLED
38  }
39  }
40  };
41  Suit mZimSuit;
42 };
43 
44 
45 
46 } // namespace saki
47 
48 
49 
50 #endif // SAKI_GIRL_EISUI_KASUMI_H
Interface for working with the &#39;bargain&#39; stage.
Definition: princess.h:38
Definition: eisui_kasumi.h:14
Claim
Definition: princess.h:47
Definition: mount.h:54
Definition: table.h:87
Definition: tile.h:25
Definition: irs_ctrl.h:60
Definition: ai.cpp:18
Definition: choices.h:130
Definition: hand.h:17
Wrapper of a "T Girl::*" value where T implements IrsCtrl.
Definition: girl.h:77
void onIrsChecked(const Table &table, Mount &mount) override
Called after self&#39;s IRS-check action.
Definition: eisui_kasumi.cpp:76
Definition: girl.h:212
IrsCtrlGetter attachIrsOnDice() override
Overriden to define a dice-time IRS&#39;s showing condition.
Definition: eisui_kasumi.cpp:110
void onDraw(const Table &table, Mount &mount, Who who, bool rinshan) override
Called when someone is about to draw a tile from the mountain.
Definition: eisui_kasumi.cpp:45
Definition: who.h:14