texas-poker-core 1.2.7 → 1.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/Controller/constants.js +2 -1
- package/dist/Controller/index.js +104 -69
- package/dist/Dealer/index.js +3 -3
- package/dist/Deck/constant.js +8 -4
- package/dist/Deck/core.js +137 -69
- package/dist/Deck/index.js +13 -1
- package/dist/Player/constant.js +11 -2
- package/dist/Player/index.js +80 -31
- package/dist/Pool/index.js +3 -1
- package/dist/index.js +45 -3
- package/dist/utils/index.js +2 -6
- package/package.json +1 -1
- package/types/Controller/constants.d.ts +2 -2
- package/types/Controller/index.d.ts +12 -4
- package/types/Dealer/index.d.ts +2 -2
- package/types/Deck/constant.d.ts +8 -4
- package/types/Deck/core.d.ts +24 -3
- package/types/Deck/index.d.ts +7 -2
- package/types/Player/constant.d.ts +10 -2
- package/types/Player/index.d.ts +10 -4
- package/types/Pool/index.d.ts +1 -1
- package/types/index.d.ts +5 -4
- package/types/utils/index.d.ts +1 -1
package/README.md
CHANGED
|
@@ -4,4 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.stageMap = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _ = require(".");
|
|
8
|
+
var stageMap = exports.stageMap = new Map([[_.StageEnum.PRE_FLOP, '翻牌前'], [_.StageEnum.FLOP, '翻牌圈'], [_.StageEnum.TURN, '转牌圈'], [_.StageEnum.RIVER, '河牌']]);
|
package/dist/Controller/index.js
CHANGED
|
@@ -4,9 +4,15 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.default = void 0;
|
|
7
|
+
exports.default = exports.StageEnum = void 0;
|
|
8
8
|
var _TexasError = _interopRequireDefault(require("../TexasError"));
|
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
11
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
13
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
14
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
15
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
10
16
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
11
17
|
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
12
18
|
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
@@ -22,7 +28,14 @@ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("C
|
|
|
22
28
|
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
23
29
|
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
24
30
|
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } // 控制游戏的进程
|
|
25
|
-
var
|
|
31
|
+
var StageEnum = exports.StageEnum = /*#__PURE__*/function (StageEnum) {
|
|
32
|
+
StageEnum["PRE_FLOP"] = "pre_flop";
|
|
33
|
+
StageEnum["FLOP"] = "flop";
|
|
34
|
+
StageEnum["TURN"] = "turn";
|
|
35
|
+
StageEnum["RIVER"] = "river";
|
|
36
|
+
return StageEnum;
|
|
37
|
+
}({});
|
|
38
|
+
var stages = [StageEnum.PRE_FLOP, StageEnum.FLOP, StageEnum.TURN, StageEnum.RIVER];
|
|
26
39
|
var _status = /*#__PURE__*/new WeakMap();
|
|
27
40
|
var _stage = /*#__PURE__*/new WeakMap();
|
|
28
41
|
var _endAt = /*#__PURE__*/new WeakMap();
|
|
@@ -43,9 +56,9 @@ var Controller = /*#__PURE__*/function () {
|
|
|
43
56
|
_classCallCheck(this, Controller);
|
|
44
57
|
_classPrivateMethodInitSpec(this, _Controller_brand);
|
|
45
58
|
_classPrivateFieldInitSpec(this, _status, 'waiting');
|
|
46
|
-
_classPrivateFieldInitSpec(this, _stage,
|
|
59
|
+
_classPrivateFieldInitSpec(this, _stage, StageEnum.PRE_FLOP);
|
|
47
60
|
// 游戏在哪个极端结束的, 比如翻牌圈其他玩家都弃牌, 游戏在这个阶段就结束了
|
|
48
|
-
_classPrivateFieldInitSpec(this, _endAt,
|
|
61
|
+
_classPrivateFieldInitSpec(this, _endAt, StageEnum.PRE_FLOP);
|
|
49
62
|
_classPrivateFieldInitSpec(this, _activePlayer, null);
|
|
50
63
|
_classPrivateFieldInitSpec(this, _timer, null);
|
|
51
64
|
// 记录游戏的进行时间,单位 second
|
|
@@ -128,15 +141,20 @@ var Controller = /*#__PURE__*/function () {
|
|
|
128
141
|
var playersCanAct = _classPrivateFieldGet(_dealer, this).getPlayersCanAct();
|
|
129
142
|
var shouldEndGame = playersCanAct.length === 0 || playersCanAct.length === 1 && !playersCanAct[0].actionable() || _classPrivateFieldGet(_dealer, this).every(function (player) {
|
|
130
143
|
return !player.actionable();
|
|
131
|
-
}) && _classPrivateFieldGet(_stage, this) ===
|
|
144
|
+
}) && _classPrivateFieldGet(_stage, this) === StageEnum.RIVER;
|
|
132
145
|
if (shouldEndGame) {
|
|
133
|
-
var
|
|
146
|
+
var _classPrivateFieldGet4;
|
|
134
147
|
this.end();
|
|
135
148
|
_classPrivateFieldSet(_endAt, this, this.stage);
|
|
136
|
-
|
|
137
|
-
|
|
149
|
+
var _classPrivateFieldGet3 = _classPrivateFieldGet(_dealer, this).deck.getMaxPresentationAndPokes(),
|
|
150
|
+
presentation = _classPrivateFieldGet3.presentation,
|
|
151
|
+
pokes = _classPrivateFieldGet3.pokes;
|
|
152
|
+
(_classPrivateFieldGet4 = _classPrivateFieldGet(_callbackOfEnd, this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.call(this, {
|
|
153
|
+
showHandPokes: true,
|
|
138
154
|
currentStage: _classPrivateFieldGet(_stage, this),
|
|
139
|
-
|
|
155
|
+
restCommonPokes: this.getCommonPokes(_classPrivateFieldGet(_stage, this), StageEnum.RIVER),
|
|
156
|
+
maxPokes: pokes,
|
|
157
|
+
maxPresentation: presentation[0]
|
|
140
158
|
});
|
|
141
159
|
console.log('游戏结束(shouldEndGame):', _classPrivateFieldGet(_endAt, this));
|
|
142
160
|
return true;
|
|
@@ -156,21 +174,21 @@ var Controller = /*#__PURE__*/function () {
|
|
|
156
174
|
return !player.actionable();
|
|
157
175
|
});
|
|
158
176
|
if (canPushToNextStage) {
|
|
159
|
-
var
|
|
160
|
-
console.log('推进到下个阶段, 触发人', (
|
|
177
|
+
var _classPrivateFieldGet5, _classPrivateFieldGet6;
|
|
178
|
+
console.log('推进到下个阶段, 触发人', (_classPrivateFieldGet5 = _classPrivateFieldGet(_activePlayer, this)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.getUserInfo().name);
|
|
161
179
|
var index = stages.findIndex(function (stage) {
|
|
162
180
|
return stage === _classPrivateFieldGet(_stage, _this);
|
|
163
181
|
});
|
|
164
|
-
var
|
|
182
|
+
var currentStage = _classPrivateFieldGet(_stage, this);
|
|
165
183
|
var nextStage = stages[index + 1];
|
|
166
184
|
_classPrivateFieldSet(_stage, this, nextStage);
|
|
167
185
|
_classPrivateFieldGet(_dealer, this).resetCurrentStageTotalAmount();
|
|
168
186
|
_classPrivateFieldGet(_dealer, this).resetActionsOfPlayers();
|
|
169
187
|
_classPrivateFieldGet(_dealer, this).resetActionsHistory();
|
|
170
|
-
(
|
|
188
|
+
(_classPrivateFieldGet6 = _classPrivateFieldGet(_callbackOnNextStage, this)) === null || _classPrivateFieldGet6 === void 0 || _classPrivateFieldGet6.call(this, {
|
|
171
189
|
stage: nextStage,
|
|
172
|
-
lastStage:
|
|
173
|
-
commonPokes: this.getCommonPokes(
|
|
190
|
+
lastStage: currentStage,
|
|
191
|
+
commonPokes: this.getCommonPokes(currentStage, nextStage)
|
|
174
192
|
});
|
|
175
193
|
console.log('游戏进入下一个阶段 => ', _classPrivateFieldGet(_stage, this));
|
|
176
194
|
this.resetActivePlayer();
|
|
@@ -215,87 +233,93 @@ var Controller = /*#__PURE__*/function () {
|
|
|
215
233
|
}
|
|
216
234
|
|
|
217
235
|
// 大盲小盲的默认下注行为
|
|
236
|
+
// 在双人竞技中, 庄家需要下小盲注, 同时率先开始行动
|
|
218
237
|
}, {
|
|
219
238
|
key: "takeActionInPreFlop",
|
|
220
239
|
value: function () {
|
|
221
|
-
var _takeActionInPreFlop = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function
|
|
222
|
-
var
|
|
223
|
-
var
|
|
224
|
-
return _regeneratorRuntime().wrap(function
|
|
225
|
-
while (1) switch (
|
|
240
|
+
var _takeActionInPreFlop = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
241
|
+
var _this2 = this;
|
|
242
|
+
var takeDefaultActionPlayers, _takeDefaultActionPla, bigBlind, activePlayer, _classPrivateFieldGet7;
|
|
243
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
244
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
226
245
|
case 0:
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
|
|
246
|
+
takeDefaultActionPlayers = _assertClassBrand(_Controller_brand, this, _getSmallBindAndBigBind).call(this);
|
|
247
|
+
takeDefaultActionPlayers.forEach(/*#__PURE__*/function () {
|
|
248
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(player, index) {
|
|
249
|
+
var amount;
|
|
250
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
251
|
+
while (1) switch (_context.prev = _context.next) {
|
|
252
|
+
case 0:
|
|
253
|
+
if (player) {
|
|
254
|
+
amount = index === 0 ? _classPrivateFieldGet(_dealer, _this2).lowestBetAmount / 2 : _classPrivateFieldGet(_dealer, _this2).lowestBetAmount;
|
|
255
|
+
player.bet(amount, true);
|
|
256
|
+
_classPrivateFieldGet(_defaultBets, _this2).push({
|
|
257
|
+
userId: player.getUserInfo().id,
|
|
258
|
+
balance: player.balance,
|
|
259
|
+
amount: amount
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
case 1:
|
|
263
|
+
case "end":
|
|
264
|
+
return _context.stop();
|
|
265
|
+
}
|
|
266
|
+
}, _callee);
|
|
267
|
+
}));
|
|
268
|
+
return function (_x, _x2) {
|
|
269
|
+
return _ref.apply(this, arguments);
|
|
270
|
+
};
|
|
271
|
+
}());
|
|
272
|
+
_takeDefaultActionPla = _slicedToArray(takeDefaultActionPlayers, 2), bigBlind = _takeDefaultActionPla[1];
|
|
273
|
+
activePlayer = bigBlind === null || bigBlind === void 0 ? void 0 : bigBlind.getNextPlayer();
|
|
251
274
|
if (!activePlayer) {
|
|
252
|
-
|
|
275
|
+
_context2.next = 10;
|
|
253
276
|
break;
|
|
254
277
|
}
|
|
255
|
-
|
|
278
|
+
_context2.next = 7;
|
|
256
279
|
return (_classPrivateFieldGet7 = _classPrivateFieldGet(_callbackOfGameStart, this)) === null || _classPrivateFieldGet7 === void 0 ? void 0 : _classPrivateFieldGet7.call(this);
|
|
257
280
|
case 7:
|
|
258
281
|
this.transferControlTo(activePlayer);
|
|
259
|
-
|
|
282
|
+
_context2.next = 11;
|
|
260
283
|
break;
|
|
261
284
|
case 10:
|
|
262
285
|
this.reportError(new _TexasError.default(2000, '游戏进程异常'));
|
|
263
286
|
case 11:
|
|
264
287
|
case "end":
|
|
265
|
-
return
|
|
288
|
+
return _context2.stop();
|
|
266
289
|
}
|
|
267
|
-
},
|
|
290
|
+
}, _callee2, this);
|
|
268
291
|
}));
|
|
269
292
|
function takeActionInPreFlop() {
|
|
270
293
|
return _takeActionInPreFlop.apply(this, arguments);
|
|
271
294
|
}
|
|
272
295
|
return takeActionInPreFlop;
|
|
273
|
-
}()
|
|
296
|
+
}() // 获取小盲,大盲玩家
|
|
297
|
+
}, {
|
|
298
|
+
key: "start",
|
|
299
|
+
value: (
|
|
274
300
|
/**
|
|
275
301
|
* @description 开始计时器, 将控制权移交给第一个可以行动的玩家
|
|
276
302
|
*/
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
282
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
303
|
+
function () {
|
|
304
|
+
var _start = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
305
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
306
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
283
307
|
case 0:
|
|
284
308
|
_classPrivateFieldSet(_status, this, 'on');
|
|
285
|
-
_classPrivateFieldSet(_stage, this,
|
|
286
|
-
_classPrivateFieldSet(_endAt, this,
|
|
309
|
+
_classPrivateFieldSet(_stage, this, StageEnum.PRE_FLOP);
|
|
310
|
+
_classPrivateFieldSet(_endAt, this, StageEnum.PRE_FLOP);
|
|
287
311
|
|
|
288
312
|
// 测试环境保持玩家balance起始不变
|
|
289
313
|
if (process.env.PROJECT_ENV === 'dev') _classPrivateFieldGet(_dealer, this).reset();
|
|
290
|
-
|
|
314
|
+
_context3.next = 6;
|
|
291
315
|
return this.takeActionInPreFlop();
|
|
292
316
|
case 6:
|
|
293
317
|
this.startTimer();
|
|
294
318
|
case 7:
|
|
295
319
|
case "end":
|
|
296
|
-
return
|
|
320
|
+
return _context3.stop();
|
|
297
321
|
}
|
|
298
|
-
},
|
|
322
|
+
}, _callee3, this);
|
|
299
323
|
}));
|
|
300
324
|
function start() {
|
|
301
325
|
return _start.apply(this, arguments);
|
|
@@ -310,12 +334,12 @@ var Controller = /*#__PURE__*/function () {
|
|
|
310
334
|
}, {
|
|
311
335
|
key: "startTimer",
|
|
312
336
|
value: function startTimer() {
|
|
313
|
-
var
|
|
337
|
+
var _this3 = this;
|
|
314
338
|
// 避免重复开启计时器
|
|
315
339
|
if (_classPrivateFieldGet(_timer, this)) return;
|
|
316
340
|
_classPrivateFieldSet(_timer, this, setInterval(function () {
|
|
317
341
|
var _this$count, _this$count2;
|
|
318
|
-
_classPrivateFieldSet(_count,
|
|
342
|
+
_classPrivateFieldSet(_count, _this3, (_this$count = _classPrivateFieldGet(_count, _this3), _this$count2 = _this$count++, _this$count)), _this$count2;
|
|
319
343
|
}, 1000));
|
|
320
344
|
}
|
|
321
345
|
|
|
@@ -369,8 +393,8 @@ var Controller = /*#__PURE__*/function () {
|
|
|
369
393
|
_classPrivateFieldSet(_count, this, 0);
|
|
370
394
|
_classPrivateFieldSet(_defaultBets, this, []);
|
|
371
395
|
_classPrivateFieldSet(_status, this, 'waiting');
|
|
372
|
-
_classPrivateFieldSet(_endAt, this,
|
|
373
|
-
_classPrivateFieldSet(_stage, this,
|
|
396
|
+
_classPrivateFieldSet(_endAt, this, StageEnum.PRE_FLOP);
|
|
397
|
+
_classPrivateFieldSet(_stage, this, StageEnum.PRE_FLOP);
|
|
374
398
|
}
|
|
375
399
|
|
|
376
400
|
/**
|
|
@@ -387,9 +411,20 @@ var Controller = /*#__PURE__*/function () {
|
|
|
387
411
|
}]);
|
|
388
412
|
}();
|
|
389
413
|
function _getPokeEndIndex(stage) {
|
|
390
|
-
if (stage ===
|
|
391
|
-
if (stage ===
|
|
392
|
-
if (stage ===
|
|
393
|
-
if (stage ===
|
|
414
|
+
if (stage === StageEnum.PRE_FLOP) return 0;
|
|
415
|
+
if (stage === StageEnum.FLOP) return 3;
|
|
416
|
+
if (stage === StageEnum.TURN) return 4;
|
|
417
|
+
if (stage === StageEnum.RIVER) return 5;
|
|
418
|
+
}
|
|
419
|
+
function _getSmallBindAndBigBind() {
|
|
420
|
+
var _classPrivateFieldGet10;
|
|
421
|
+
var smallBind =
|
|
422
|
+
// 在双人游戏中, 庄家同时支付小盲注
|
|
423
|
+
_classPrivateFieldGet(_dealer, this).count === 2 ? _classPrivateFieldGet(_dealer, this).button : (_classPrivateFieldGet10 = _classPrivateFieldGet(_dealer, this).button) === null || _classPrivateFieldGet10 === void 0 ? void 0 : _classPrivateFieldGet10.getNextPlayer();
|
|
424
|
+
var result = [smallBind, smallBind === null || smallBind === void 0 ? void 0 : smallBind.getNextPlayer()];
|
|
425
|
+
if (result.some(function (player) {
|
|
426
|
+
return !player;
|
|
427
|
+
})) this.reportError(new _TexasError.default(2000, '游戏进程异常: 小盲或大盲玩家不存在'));
|
|
428
|
+
return result;
|
|
394
429
|
}
|
|
395
430
|
var _default = exports.default = Controller;
|
package/dist/Dealer/index.js
CHANGED
|
@@ -110,7 +110,7 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
110
110
|
handPokes = _classPrivateFieldGet2.handPokes;
|
|
111
111
|
this.loop(function (player, i) {
|
|
112
112
|
player.setHandPokes(handPokes[i]);
|
|
113
|
-
}, _classPrivateFieldGet(_button, this));
|
|
113
|
+
}, _classPrivateFieldGet(_button, this).getNextPlayer());
|
|
114
114
|
}
|
|
115
115
|
}, {
|
|
116
116
|
key: "addAction",
|
|
@@ -122,8 +122,8 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
122
122
|
_classPrivateFieldGet(_actionsHistory, this).push(player);
|
|
123
123
|
}
|
|
124
124
|
}, {
|
|
125
|
-
key: "
|
|
126
|
-
value: function
|
|
125
|
+
key: "getMaxHandTypeCategory",
|
|
126
|
+
value: function getMaxHandTypeCategory() {
|
|
127
127
|
var _this$filter$map$sort = this.filter(function (player) {
|
|
128
128
|
return player.getStatus() !== 'out';
|
|
129
129
|
}).map(function (player) {
|
package/dist/Deck/constant.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.suitsMap = exports.suits = exports.ranks = exports.rankMap = exports.
|
|
6
|
+
exports.suitsMap = exports.suits = exports.ranks = exports.rankMap = exports.handTypeCategoryMap = exports.comboIndices = void 0;
|
|
7
7
|
var suits = exports.suits = ['h', 's', 'd', 'c'];
|
|
8
8
|
var ranks = exports.ranks = ['2', '3', '4', '5', '6', '7', '8', '9', 't', 'j', 'q', 'k', 'a'];
|
|
9
9
|
|
|
@@ -21,10 +21,14 @@ var ranks = exports.ranks = ['2', '3', '4', '5', '6', '7', '8', '9', 't', 'j', '
|
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
* 2 +
|
|
24
|
+
* 2 + 3 一共5张牌的组合
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
/** 牌型枚举 */
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 牌力展示:首字符为牌型 (handTypeCategory),后接可选数字段,如 "z" | "q14+13+12+11+9" | "w13+r7"
|
|
31
|
+
*/
|
|
28
32
|
|
|
29
33
|
/**
|
|
30
34
|
* 花色format map
|
|
@@ -35,7 +39,7 @@ var suitsMap = exports.suitsMap = new Map([
|
|
|
35
39
|
*/
|
|
36
40
|
['h', '♥'], ['s', '♠'], ['d', '♦️'], ['c', '♣']]);
|
|
37
41
|
// 牌型枚举中文映射
|
|
38
|
-
var
|
|
42
|
+
var handTypeCategoryMap = exports.handTypeCategoryMap = new Map([['z', '皇家同花顺'], ['y', '同花顺'], ['x', '四条'], ['w', '葫芦'], ['v', '同花'], ['u', '顺子'], ['t', '三条'], ['s', '两对'], ['r', '一对'], ['q', '高牌']]);
|
|
39
43
|
|
|
40
44
|
// 牌面值的大小映射 2~A => 2~14
|
|
41
45
|
var rankMap = exports.rankMap = function rankMap(input) {
|