texas-poker-core 1.4.1 → 1.4.2
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 +5 -1
- package/dist/Controller/index.js +54 -55
- package/dist/Dealer/index.js +58 -21
- package/dist/Player/index.js +292 -112
- package/dist/Pool/index.js +42 -20
- package/dist/Room/index.js +63 -67
- package/dist/Texas/index.js +138 -79
- package/dist/TexasEngineContext.js +62 -0
- package/dist/TexasError/codes.js +178 -0
- package/dist/TexasError/constant.js +17 -1
- package/dist/TexasError/index.js +31 -3
- package/dist/index.js +43 -22
- package/dist/integration_test.js +13 -7
- package/dist/simulator_game_run.js +11 -11
- package/package.json +1 -1
- package/types/Controller/index.d.ts +14 -28
- package/types/Dealer/index.d.ts +8 -6
- package/types/Player/index.d.ts +27 -21
- package/types/Pool/index.d.ts +4 -4
- package/types/Room/index.d.ts +28 -14
- package/types/Texas/index.d.ts +49 -10
- package/types/TexasEngineContext.d.ts +37 -0
- package/types/TexasError/codes.d.ts +65 -0
- package/types/TexasError/constant.d.ts +7 -2
- package/types/TexasError/index.d.ts +7 -2
- package/types/index.d.ts +8 -6
package/README.md
CHANGED
package/dist/Controller/index.js
CHANGED
|
@@ -5,8 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.StageEnum = void 0;
|
|
8
|
-
var
|
|
9
|
-
|
|
8
|
+
var _TexasEngineContext = require("../TexasEngineContext");
|
|
9
|
+
var _TexasError = _interopRequireWildcard(require("../TexasError"));
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
12
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
11
13
|
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
14
|
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; } }
|
|
@@ -36,12 +38,19 @@ var StageEnum = exports.StageEnum = /*#__PURE__*/function (StageEnum) {
|
|
|
36
38
|
return StageEnum;
|
|
37
39
|
}({});
|
|
38
40
|
var stages = [StageEnum.PRE_FLOP, StageEnum.FLOP, StageEnum.TURN, StageEnum.RIVER];
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 控制器唯一状态:一手牌从「可开局」到「结束待清理」的完整生命周期。
|
|
44
|
+
* - `idle`:无进行中的手牌(上一手已 `reset` 之后、下一手 `start` 之前;**局间等待下一手**也在此)
|
|
45
|
+
* - `in_hand`:本手进行中
|
|
46
|
+
* - `in_hand_paused`:本手暂停
|
|
47
|
+
* - `hand_complete`:本手已结束(至调用 `reset` 之前;业务可在此期间做摊牌展示、奖池结算、`settle` 等)
|
|
48
|
+
* - `aborted`:异常终止(预留)
|
|
49
|
+
*/
|
|
39
50
|
var _status = /*#__PURE__*/new WeakMap();
|
|
40
51
|
var _stage = /*#__PURE__*/new WeakMap();
|
|
41
52
|
var _endAt = /*#__PURE__*/new WeakMap();
|
|
42
53
|
var _activePlayer = /*#__PURE__*/new WeakMap();
|
|
43
|
-
var _timer = /*#__PURE__*/new WeakMap();
|
|
44
|
-
var _count = /*#__PURE__*/new WeakMap();
|
|
45
54
|
var _dealer = /*#__PURE__*/new WeakMap();
|
|
46
55
|
var _callbackOfEnd = /*#__PURE__*/new WeakMap();
|
|
47
56
|
var _callbackOnNextStage = /*#__PURE__*/new WeakMap();
|
|
@@ -50,27 +59,24 @@ var _defaultBets = /*#__PURE__*/new WeakMap();
|
|
|
50
59
|
var _Controller_brand = /*#__PURE__*/new WeakSet();
|
|
51
60
|
var Controller = /*#__PURE__*/function () {
|
|
52
61
|
function Controller(dealer) {
|
|
53
|
-
var
|
|
62
|
+
var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (error) {
|
|
54
63
|
throw error;
|
|
55
64
|
};
|
|
56
65
|
_classCallCheck(this, Controller);
|
|
57
66
|
_classPrivateMethodInitSpec(this, _Controller_brand);
|
|
58
|
-
_classPrivateFieldInitSpec(this, _status, '
|
|
67
|
+
_classPrivateFieldInitSpec(this, _status, 'idle');
|
|
59
68
|
_classPrivateFieldInitSpec(this, _stage, StageEnum.PRE_FLOP);
|
|
60
69
|
// 游戏在哪个极端结束的, 比如翻牌圈其他玩家都弃牌, 游戏在这个阶段就结束了
|
|
61
70
|
_classPrivateFieldInitSpec(this, _endAt, StageEnum.PRE_FLOP);
|
|
62
71
|
_classPrivateFieldInitSpec(this, _activePlayer, null);
|
|
63
|
-
_classPrivateFieldInitSpec(this, _timer, null);
|
|
64
|
-
// 记录游戏的进行时间,单位 second
|
|
65
|
-
_classPrivateFieldInitSpec(this, _count, 0);
|
|
66
72
|
_classPrivateFieldInitSpec(this, _dealer, void 0);
|
|
67
73
|
_classPrivateFieldInitSpec(this, _callbackOfEnd, void 0);
|
|
68
74
|
_classPrivateFieldInitSpec(this, _callbackOnNextStage, void 0);
|
|
69
75
|
_classPrivateFieldInitSpec(this, _callbackOfGameStart, void 0);
|
|
70
76
|
_classPrivateFieldInitSpec(this, _defaultBets, []);
|
|
71
|
-
_defineProperty(this, "
|
|
77
|
+
_defineProperty(this, "fail", void 0);
|
|
72
78
|
_classPrivateFieldSet(_dealer, this, dealer);
|
|
73
|
-
this.
|
|
79
|
+
this.fail = fail;
|
|
74
80
|
}
|
|
75
81
|
return _createClass(Controller, [{
|
|
76
82
|
key: "status",
|
|
@@ -105,7 +111,7 @@ var Controller = /*#__PURE__*/function () {
|
|
|
105
111
|
* @param player
|
|
106
112
|
*/
|
|
107
113
|
function transferControlTo(player) {
|
|
108
|
-
if (_classPrivateFieldGet(_activePlayer, this) === player) this.
|
|
114
|
+
if (_classPrivateFieldGet(_activePlayer, this) === player) return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.CTRL_DUPLICATE_CONTROL));
|
|
109
115
|
_classPrivateFieldSet(_activePlayer, this, player);
|
|
110
116
|
player === null || player === void 0 || player.getControl();
|
|
111
117
|
}
|
|
@@ -133,7 +139,13 @@ var Controller = /*#__PURE__*/function () {
|
|
|
133
139
|
currentStage: _classPrivateFieldGet(_stage, this),
|
|
134
140
|
showHandPokes: false
|
|
135
141
|
});
|
|
136
|
-
|
|
142
|
+
_TexasEngineContext.TexasEngineContext.emitTrace({
|
|
143
|
+
channel: 'controller',
|
|
144
|
+
name: 'hand_end_fold_win',
|
|
145
|
+
data: {
|
|
146
|
+
endAt: _classPrivateFieldGet(_endAt, this)
|
|
147
|
+
}
|
|
148
|
+
});
|
|
137
149
|
return true;
|
|
138
150
|
}
|
|
139
151
|
|
|
@@ -156,7 +168,13 @@ var Controller = /*#__PURE__*/function () {
|
|
|
156
168
|
bestPokes: pokes,
|
|
157
169
|
bestRankCategory: rankCategory
|
|
158
170
|
});
|
|
159
|
-
|
|
171
|
+
_TexasEngineContext.TexasEngineContext.emitTrace({
|
|
172
|
+
channel: 'controller',
|
|
173
|
+
name: 'hand_end_showdown',
|
|
174
|
+
data: {
|
|
175
|
+
endAt: _classPrivateFieldGet(_endAt, this)
|
|
176
|
+
}
|
|
177
|
+
});
|
|
160
178
|
return true;
|
|
161
179
|
}
|
|
162
180
|
return false;
|
|
@@ -175,7 +193,6 @@ var Controller = /*#__PURE__*/function () {
|
|
|
175
193
|
});
|
|
176
194
|
if (canPushToNextStage) {
|
|
177
195
|
var _classPrivateFieldGet5, _classPrivateFieldGet6;
|
|
178
|
-
console.log('推进到下个阶段, 触发人', (_classPrivateFieldGet5 = _classPrivateFieldGet(_activePlayer, this)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.getUserInfo().name);
|
|
179
196
|
var index = stages.findIndex(function (stage) {
|
|
180
197
|
return stage === _classPrivateFieldGet(_stage, _this);
|
|
181
198
|
});
|
|
@@ -185,12 +202,20 @@ var Controller = /*#__PURE__*/function () {
|
|
|
185
202
|
_classPrivateFieldGet(_dealer, this).resetCurrentStageTotalAmount();
|
|
186
203
|
_classPrivateFieldGet(_dealer, this).resetActionsOfPlayers();
|
|
187
204
|
_classPrivateFieldGet(_dealer, this).resetActionsHistory();
|
|
188
|
-
(
|
|
205
|
+
(_classPrivateFieldGet5 = _classPrivateFieldGet(_callbackOnNextStage, this)) === null || _classPrivateFieldGet5 === void 0 || _classPrivateFieldGet5.call(this, {
|
|
189
206
|
stage: nextStage,
|
|
190
207
|
lastStage: currentStage,
|
|
191
208
|
commonPokes: this.getCommonPokes(currentStage, nextStage)
|
|
192
209
|
});
|
|
193
|
-
|
|
210
|
+
_TexasEngineContext.TexasEngineContext.emitTrace({
|
|
211
|
+
channel: 'controller',
|
|
212
|
+
name: 'stage_changed',
|
|
213
|
+
data: {
|
|
214
|
+
from: currentStage,
|
|
215
|
+
to: nextStage,
|
|
216
|
+
byUserId: (_classPrivateFieldGet6 = _classPrivateFieldGet(_activePlayer, this)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.getUserInfo().id
|
|
217
|
+
}
|
|
218
|
+
});
|
|
194
219
|
this.resetActivePlayer();
|
|
195
220
|
this.transferControlTo(_classPrivateFieldGet(_dealer, this).getTheFirstPlayerToAct());
|
|
196
221
|
return true;
|
|
@@ -282,7 +307,7 @@ var Controller = /*#__PURE__*/function () {
|
|
|
282
307
|
_context2.next = 11;
|
|
283
308
|
break;
|
|
284
309
|
case 10:
|
|
285
|
-
this.
|
|
310
|
+
return _context2.abrupt("return", this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.CTRL_START_NO_ACTIVE)));
|
|
286
311
|
case 11:
|
|
287
312
|
case "end":
|
|
288
313
|
return _context2.stop();
|
|
@@ -305,17 +330,15 @@ var Controller = /*#__PURE__*/function () {
|
|
|
305
330
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
306
331
|
while (1) switch (_context3.prev = _context3.next) {
|
|
307
332
|
case 0:
|
|
308
|
-
_classPrivateFieldSet(_status, this, '
|
|
333
|
+
_classPrivateFieldSet(_status, this, 'in_hand');
|
|
309
334
|
_classPrivateFieldSet(_stage, this, StageEnum.PRE_FLOP);
|
|
310
335
|
_classPrivateFieldSet(_endAt, this, StageEnum.PRE_FLOP);
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
336
|
+
if (_TexasEngineContext.TexasEngineContext.simulation().resetDealerBeforeHandStart) {
|
|
337
|
+
_classPrivateFieldGet(_dealer, this).reset();
|
|
338
|
+
}
|
|
314
339
|
_context3.next = 6;
|
|
315
340
|
return this.takeActionInPreFlop();
|
|
316
341
|
case 6:
|
|
317
|
-
this.startTimer();
|
|
318
|
-
case 7:
|
|
319
342
|
case "end":
|
|
320
343
|
return _context3.stop();
|
|
321
344
|
}
|
|
@@ -331,17 +354,6 @@ var Controller = /*#__PURE__*/function () {
|
|
|
331
354
|
value: function onGameStart(callback) {
|
|
332
355
|
_classPrivateFieldSet(_callbackOfGameStart, this, callback);
|
|
333
356
|
}
|
|
334
|
-
}, {
|
|
335
|
-
key: "startTimer",
|
|
336
|
-
value: function startTimer() {
|
|
337
|
-
var _this3 = this;
|
|
338
|
-
// 避免重复开启计时器
|
|
339
|
-
if (_classPrivateFieldGet(_timer, this)) return;
|
|
340
|
-
_classPrivateFieldSet(_timer, this, setInterval(function () {
|
|
341
|
-
var _this$count, _this$count2;
|
|
342
|
-
_classPrivateFieldSet(_count, _this3, (_this$count = _classPrivateFieldGet(_count, _this3), _this$count2 = _this$count++, _this$count)), _this$count2;
|
|
343
|
-
}, 1000));
|
|
344
|
-
}
|
|
345
357
|
|
|
346
358
|
/**
|
|
347
359
|
* @description 继续游戏
|
|
@@ -350,18 +362,9 @@ var Controller = /*#__PURE__*/function () {
|
|
|
350
362
|
key: "continue",
|
|
351
363
|
value: function _continue() {
|
|
352
364
|
var _classPrivateFieldGet8;
|
|
353
|
-
if (_classPrivateFieldGet(_status, this) !== '
|
|
354
|
-
_classPrivateFieldSet(_status, this, '
|
|
365
|
+
if (_classPrivateFieldGet(_status, this) !== 'in_hand_paused') return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.CTRL_NOT_PAUSED));
|
|
366
|
+
_classPrivateFieldSet(_status, this, 'in_hand');
|
|
355
367
|
(_classPrivateFieldGet8 = _classPrivateFieldGet(_activePlayer, this)) === null || _classPrivateFieldGet8 === void 0 || _classPrivateFieldGet8.continue();
|
|
356
|
-
this.startTimer();
|
|
357
|
-
}
|
|
358
|
-
}, {
|
|
359
|
-
key: "clearTimer",
|
|
360
|
-
value: function clearTimer() {
|
|
361
|
-
if (_classPrivateFieldGet(_timer, this)) {
|
|
362
|
-
clearInterval(_classPrivateFieldGet(_timer, this));
|
|
363
|
-
_classPrivateFieldSet(_timer, this, null);
|
|
364
|
-
}
|
|
365
368
|
}
|
|
366
369
|
|
|
367
370
|
/**
|
|
@@ -370,9 +373,8 @@ var Controller = /*#__PURE__*/function () {
|
|
|
370
373
|
}, {
|
|
371
374
|
key: "end",
|
|
372
375
|
value: function end() {
|
|
373
|
-
if (this.status !== '
|
|
374
|
-
this
|
|
375
|
-
_classPrivateFieldSet(_status, this, 'end');
|
|
376
|
+
if (this.status !== 'in_hand') return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.CTRL_END_NOT_IN_HAND));
|
|
377
|
+
_classPrivateFieldSet(_status, this, 'hand_complete');
|
|
376
378
|
this.resetActivePlayer();
|
|
377
379
|
}
|
|
378
380
|
}, {
|
|
@@ -388,11 +390,9 @@ var Controller = /*#__PURE__*/function () {
|
|
|
388
390
|
}, {
|
|
389
391
|
key: "reset",
|
|
390
392
|
value: function reset() {
|
|
391
|
-
this.clearTimer();
|
|
392
393
|
this.resetActivePlayer();
|
|
393
|
-
_classPrivateFieldSet(_count, this, 0);
|
|
394
394
|
_classPrivateFieldSet(_defaultBets, this, []);
|
|
395
|
-
_classPrivateFieldSet(_status, this, '
|
|
395
|
+
_classPrivateFieldSet(_status, this, 'idle');
|
|
396
396
|
_classPrivateFieldSet(_endAt, this, StageEnum.PRE_FLOP);
|
|
397
397
|
_classPrivateFieldSet(_stage, this, StageEnum.PRE_FLOP);
|
|
398
398
|
}
|
|
@@ -404,8 +404,7 @@ var Controller = /*#__PURE__*/function () {
|
|
|
404
404
|
key: "pause",
|
|
405
405
|
value: function pause() {
|
|
406
406
|
var _this$activePlayer;
|
|
407
|
-
_classPrivateFieldSet(_status, this, '
|
|
408
|
-
this.clearTimer();
|
|
407
|
+
_classPrivateFieldSet(_status, this, 'in_hand_paused');
|
|
409
408
|
(_this$activePlayer = this.activePlayer) === null || _this$activePlayer === void 0 || _this$activePlayer.pause();
|
|
410
409
|
}
|
|
411
410
|
}]);
|
|
@@ -424,7 +423,7 @@ function _getSmallBindAndBigBind() {
|
|
|
424
423
|
var result = [smallBind, smallBind === null || smallBind === void 0 ? void 0 : smallBind.getNextPlayer()];
|
|
425
424
|
if (result.some(function (player) {
|
|
426
425
|
return !player;
|
|
427
|
-
})) this.
|
|
426
|
+
})) return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.CTRL_SB_BB_MISSING));
|
|
428
427
|
return result;
|
|
429
428
|
}
|
|
430
429
|
var _default = exports.default = Controller;
|
package/dist/Dealer/index.js
CHANGED
|
@@ -6,11 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _Deck = _interopRequireDefault(require("../Deck"));
|
|
9
|
-
var _TexasError = _interopRequireDefault(require("../TexasError"));
|
|
10
9
|
var _utils = require("../utils");
|
|
11
10
|
var _Player = require("../Player");
|
|
11
|
+
var _TexasEngineContext = require("../TexasEngineContext");
|
|
12
|
+
var _TexasError = _interopRequireWildcard(require("../TexasError"));
|
|
12
13
|
var _constant = require("../Player/constant");
|
|
13
14
|
var _core = require("../Deck/core");
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
18
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
16
19
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -33,6 +36,7 @@ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.h
|
|
|
33
36
|
* 荷官, 控制游戏进行
|
|
34
37
|
*/
|
|
35
38
|
var _lowestBetAmount = /*#__PURE__*/new WeakMap();
|
|
39
|
+
var _maxTablePlayers = /*#__PURE__*/new WeakMap();
|
|
36
40
|
var _deck = /*#__PURE__*/new WeakMap();
|
|
37
41
|
var _count = /*#__PURE__*/new WeakMap();
|
|
38
42
|
var _button = /*#__PURE__*/new WeakMap();
|
|
@@ -41,22 +45,26 @@ var _head = /*#__PURE__*/new WeakMap();
|
|
|
41
45
|
var _actionsHistory = /*#__PURE__*/new WeakMap();
|
|
42
46
|
var Dealer = /*#__PURE__*/function () {
|
|
43
47
|
function Dealer(lowestBetAmount) {
|
|
44
|
-
var
|
|
48
|
+
var _options$maxTablePlay;
|
|
49
|
+
var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (error) {
|
|
45
50
|
throw error;
|
|
46
51
|
};
|
|
52
|
+
var options = arguments.length > 2 ? arguments[2] : undefined;
|
|
47
53
|
_classCallCheck(this, Dealer);
|
|
48
54
|
_classPrivateFieldInitSpec(this, _lowestBetAmount, void 0);
|
|
55
|
+
_classPrivateFieldInitSpec(this, _maxTablePlayers, void 0);
|
|
49
56
|
_classPrivateFieldInitSpec(this, _deck, void 0);
|
|
50
57
|
_classPrivateFieldInitSpec(this, _count, 0);
|
|
51
58
|
_classPrivateFieldInitSpec(this, _button, null);
|
|
52
59
|
_classPrivateFieldInitSpec(this, _last, null);
|
|
53
60
|
_classPrivateFieldInitSpec(this, _head, null);
|
|
54
|
-
_defineProperty(this, "
|
|
61
|
+
_defineProperty(this, "fail", void 0);
|
|
55
62
|
// 记录最近一个玩家的操作记录
|
|
56
63
|
_classPrivateFieldInitSpec(this, _actionsHistory, []);
|
|
57
64
|
_classPrivateFieldSet(_lowestBetAmount, this, lowestBetAmount);
|
|
65
|
+
_classPrivateFieldSet(_maxTablePlayers, this, (_options$maxTablePlay = options === null || options === void 0 ? void 0 : options.maxTablePlayers) !== null && _options$maxTablePlay !== void 0 ? _options$maxTablePlay : 10);
|
|
58
66
|
_classPrivateFieldSet(_deck, this, new _Deck.default());
|
|
59
|
-
this.
|
|
67
|
+
this.fail = fail;
|
|
60
68
|
}
|
|
61
69
|
return _createClass(Dealer, [{
|
|
62
70
|
key: "actionHistory",
|
|
@@ -98,11 +106,16 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
98
106
|
}, {
|
|
99
107
|
key: "dealCards",
|
|
100
108
|
value: function dealCards() {
|
|
101
|
-
if (!_classPrivateFieldGet(_button, this)) this.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
if (!_classPrivateFieldGet(_button, this)) return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.DEALER_NO_BUTTON));
|
|
110
|
+
_TexasEngineContext.TexasEngineContext.emitTrace({
|
|
111
|
+
channel: 'dealer',
|
|
112
|
+
name: 'deal_cards_players',
|
|
113
|
+
data: {
|
|
114
|
+
players: this.map(function (player) {
|
|
115
|
+
return _constant.roleMap.get(player.getRole()) + ': ' + player.toString();
|
|
116
|
+
})
|
|
117
|
+
}
|
|
118
|
+
});
|
|
106
119
|
var _classPrivateFieldGet2 = _classPrivateFieldGet(_deck, this).dealCards(_classPrivateFieldGet(_count, this)),
|
|
107
120
|
handPokes = _classPrivateFieldGet2.handPokes;
|
|
108
121
|
this.loop(function (player, i) {
|
|
@@ -162,9 +175,15 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
162
175
|
}, {
|
|
163
176
|
key: "logPlayers",
|
|
164
177
|
value: function logPlayers() {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
178
|
+
_TexasEngineContext.TexasEngineContext.emitTrace({
|
|
179
|
+
channel: 'dealer',
|
|
180
|
+
name: 'log_players',
|
|
181
|
+
data: {
|
|
182
|
+
lines: this.map(function (player) {
|
|
183
|
+
return player.toString();
|
|
184
|
+
})
|
|
185
|
+
}
|
|
186
|
+
});
|
|
168
187
|
}
|
|
169
188
|
}, {
|
|
170
189
|
key: "setRoles",
|
|
@@ -189,7 +208,13 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
189
208
|
player.rankSignature = (0, _core.getFiveCardsRankSignature)(bestFiveCards);
|
|
190
209
|
player.rankStrength = (0, _core.getStrengthFromRankSignature)(player.rankSignature);
|
|
191
210
|
});
|
|
192
|
-
|
|
211
|
+
_TexasEngineContext.TexasEngineContext.emitTrace({
|
|
212
|
+
channel: 'dealer',
|
|
213
|
+
name: 'settle_common_pokes',
|
|
214
|
+
data: {
|
|
215
|
+
commonPokes: (0, _core.formatterPoke)(_classPrivateFieldGet(_deck, this).getPokes().commonPokes)
|
|
216
|
+
}
|
|
217
|
+
});
|
|
193
218
|
}
|
|
194
219
|
}, {
|
|
195
220
|
key: "remove",
|
|
@@ -251,7 +276,9 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
251
276
|
value: function reArrangeRoles() {
|
|
252
277
|
if (!_classPrivateFieldGet(_button, this)) return;
|
|
253
278
|
var roles = _constant.playerRoleSetMap.get(_classPrivateFieldGet(_count, this));
|
|
254
|
-
if (!roles) this.
|
|
279
|
+
if (!roles) return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.DEALER_UNSUPPORTED_COUNT, {
|
|
280
|
+
count: _classPrivateFieldGet(_count, this)
|
|
281
|
+
}));
|
|
255
282
|
this.loop(function (player, i) {
|
|
256
283
|
player.setRole(roles[i]);
|
|
257
284
|
}, _classPrivateFieldGet(_button, this));
|
|
@@ -283,11 +310,19 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
283
310
|
}, {
|
|
284
311
|
key: "log",
|
|
285
312
|
value: function log() {
|
|
286
|
-
|
|
287
|
-
|
|
313
|
+
var lines = [];
|
|
314
|
+
lines.push("\u73A9\u5BB6\u6570\u91CF: ".concat(_classPrivateFieldGet(_count, this)));
|
|
315
|
+
lines.push('底牌:' + (0, _core.formatterPoke)(_classPrivateFieldGet(_deck, this).getPokes().commonPokes));
|
|
288
316
|
this.forEach(function (player) {
|
|
289
317
|
var role = player.getRole();
|
|
290
|
-
|
|
318
|
+
lines.push("".concat(role ? _constant.roleMap.get(role) : 'unSettled', ": ").concat(player.toString(), "; \u624B\u724C: ").concat((0, _core.formatterPoke)(player.getHandPokes())));
|
|
319
|
+
});
|
|
320
|
+
_TexasEngineContext.TexasEngineContext.emitTrace({
|
|
321
|
+
channel: 'dealer',
|
|
322
|
+
name: 'table_snapshot',
|
|
323
|
+
data: {
|
|
324
|
+
lines: lines
|
|
325
|
+
}
|
|
291
326
|
});
|
|
292
327
|
}
|
|
293
328
|
}, {
|
|
@@ -295,7 +330,7 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
295
330
|
value: function changeButtonToNextPlayer() {
|
|
296
331
|
var _classPrivateFieldGet5;
|
|
297
332
|
var next = (_classPrivateFieldGet5 = _classPrivateFieldGet(_button, this)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.getNextPlayer();
|
|
298
|
-
if (!next) this.
|
|
333
|
+
if (!next) return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.DEALER_BUTTON_HANDOFF_INVALID));
|
|
299
334
|
this.setButton(next);
|
|
300
335
|
}
|
|
301
336
|
|
|
@@ -334,10 +369,12 @@ var Dealer = /*#__PURE__*/function () {
|
|
|
334
369
|
}, {
|
|
335
370
|
key: "setOthers",
|
|
336
371
|
value: function setOthers() {
|
|
337
|
-
if (!_classPrivateFieldGet(_button, this)) this.
|
|
372
|
+
if (!_classPrivateFieldGet(_button, this)) return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.DEALER_SET_OTHERS_NO_BUTTON));
|
|
338
373
|
var count = _classPrivateFieldGet(_count, this);
|
|
339
|
-
if (
|
|
340
|
-
if (count < 2 || count >
|
|
374
|
+
if (_TexasEngineContext.TexasEngineContext.simulation().allowSingleSeatedPlayer && count === 1) return;
|
|
375
|
+
if (count < 2 || count > _classPrivateFieldGet(_maxTablePlayers, this)) return this.fail(new _TexasError.default(_TexasError.TexasCoreErrorCode.DEALER_COUNT_OUT_OF_RANGE, {
|
|
376
|
+
count: count
|
|
377
|
+
}));
|
|
341
378
|
var roles = _constant.playerRoleSetMap.get(count).slice(1);
|
|
342
379
|
var role;
|
|
343
380
|
var current = _classPrivateFieldGet(_button, this).getNextPlayer();
|