mahjong_engine 1.0.4 → 1.0.6
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/dist/BlockDivider.js +21 -17
- package/dist/BlockDivider.js.map +1 -1
- package/dist/BlockHais.js +17 -13
- package/dist/BlockHais.js.map +1 -1
- package/dist/BlockHaisList.js +17 -13
- package/dist/BlockHaisList.js.map +1 -1
- package/dist/Hai.js +27 -23
- package/dist/Hai.js.map +1 -1
- package/dist/Hais.js +8 -4
- package/dist/Hais.js.map +1 -1
- package/dist/IMentsu.js +2 -1
- package/dist/MachiCalculator.js +11 -7
- package/dist/MachiCalculator.js.map +1 -1
- package/dist/MahjongConsts.js +15 -12
- package/dist/MahjongConsts.js.map +1 -1
- package/dist/Meld.js +15 -11
- package/dist/Meld.js.map +1 -1
- package/dist/Melds.js +5 -1
- package/dist/Melds.js.map +1 -1
- package/dist/MentsuAnalyzer.js +5 -1
- package/dist/MentsuAnalyzer.js.map +1 -1
- package/dist/PlayerContext.js +7 -3
- package/dist/PlayerContext.js.map +1 -1
- package/dist/PlayerHand.js +7 -3
- package/dist/PlayerHand.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -12
- package/dist/index.js.map +1 -1
- package/dist/tensuu/FuCalculator.js +29 -25
- package/dist/tensuu/FuCalculator.js.map +1 -1
- package/dist/tensuu/FuDetail.js +5 -1
- package/dist/tensuu/FuDetail.js.map +1 -1
- package/dist/tensuu/ScoreResolver.js +11 -7
- package/dist/tensuu/ScoreResolver.js.map +1 -1
- package/dist/tensuu/ScoreResult.js +5 -1
- package/dist/tensuu/ScoreResult.js.map +1 -1
- package/dist/tensuu/TensuuCalculator.js +7 -3
- package/dist/tensuu/TensuuCalculator.js.map +1 -1
- package/dist/tensuu/TensuuResult.js +5 -1
- package/dist/tensuu/TensuuResult.js.map +1 -1
- package/dist/tileDefs.js +4 -1
- package/dist/tileDefs.js.map +1 -1
- package/dist/yaku/NormalYakuChecker.js +12 -8
- package/dist/yaku/NormalYakuChecker.js.map +1 -1
- package/dist/yaku/YakuChecker.js +9 -5
- package/dist/yaku/YakuChecker.js.map +1 -1
- package/dist/yaku/YakuCheckerBase.js +17 -13
- package/dist/yaku/YakuCheckerBase.js.map +1 -1
- package/dist/yaku/YakuContext.js +5 -1
- package/dist/yaku/YakuContext.js.map +1 -1
- package/dist/yaku/YakumanChecker.js +10 -6
- package/dist/yaku/YakumanChecker.js.map +1 -1
- package/dist/yaku/index.js +76 -73
- package/dist/yaku/index.js.map +1 -1
- package/dist/yaku/normal/ChinitsuChecker.js +6 -2
- package/dist/yaku/normal/ChinitsuChecker.js.map +1 -1
- package/dist/yaku/normal/ChitoitsuChecker.js +8 -4
- package/dist/yaku/normal/ChitoitsuChecker.js.map +1 -1
- package/dist/yaku/normal/DoukouChecker.js +6 -2
- package/dist/yaku/normal/DoukouChecker.js.map +1 -1
- package/dist/yaku/normal/HonchanChecker.js +8 -4
- package/dist/yaku/normal/HonchanChecker.js.map +1 -1
- package/dist/yaku/normal/HonitsuChecker.js +8 -4
- package/dist/yaku/normal/HonitsuChecker.js.map +1 -1
- package/dist/yaku/normal/HonrotoChecker.js +8 -4
- package/dist/yaku/normal/HonrotoChecker.js.map +1 -1
- package/dist/yaku/normal/IipekoChecker.js +6 -2
- package/dist/yaku/normal/IipekoChecker.js.map +1 -1
- package/dist/yaku/normal/IttsuuChecker.js +6 -2
- package/dist/yaku/normal/IttsuuChecker.js.map +1 -1
- package/dist/yaku/normal/JunchanChecker.js +8 -4
- package/dist/yaku/normal/JunchanChecker.js.map +1 -1
- package/dist/yaku/normal/KazehaiChecker.js +8 -4
- package/dist/yaku/normal/KazehaiChecker.js.map +1 -1
- package/dist/yaku/normal/MenzenTsumoChecker.js +6 -2
- package/dist/yaku/normal/MenzenTsumoChecker.js.map +1 -1
- package/dist/yaku/normal/PinfuChecker.js +13 -9
- package/dist/yaku/normal/PinfuChecker.js.map +1 -1
- package/dist/yaku/normal/RenpuuhaiChecker.js +8 -4
- package/dist/yaku/normal/RenpuuhaiChecker.js.map +1 -1
- package/dist/yaku/normal/RyanpekoChecker.js +6 -2
- package/dist/yaku/normal/RyanpekoChecker.js.map +1 -1
- package/dist/yaku/normal/SanankoChecker.js +6 -2
- package/dist/yaku/normal/SanankoChecker.js.map +1 -1
- package/dist/yaku/normal/SankantsuChecker.js +6 -2
- package/dist/yaku/normal/SankantsuChecker.js.map +1 -1
- package/dist/yaku/normal/SanshokuChecker.js +6 -2
- package/dist/yaku/normal/SanshokuChecker.js.map +1 -1
- package/dist/yaku/normal/ShosangenChecker.js +6 -2
- package/dist/yaku/normal/ShosangenChecker.js.map +1 -1
- package/dist/yaku/normal/TanyaoChecker.js +6 -2
- package/dist/yaku/normal/TanyaoChecker.js.map +1 -1
- package/dist/yaku/normal/ToitoiChecker.js +6 -2
- package/dist/yaku/normal/ToitoiChecker.js.map +1 -1
- package/dist/yaku/normal/YakuhaiChecker.js +8 -4
- package/dist/yaku/normal/YakuhaiChecker.js.map +1 -1
- package/dist/yaku/yakuman/ChinrotoChecker.js +6 -2
- package/dist/yaku/yakuman/ChinrotoChecker.js.map +1 -1
- package/dist/yaku/yakuman/Churen9Checker.js +8 -4
- package/dist/yaku/yakuman/Churen9Checker.js.map +1 -1
- package/dist/yaku/yakuman/ChurenChecker.js +8 -4
- package/dist/yaku/yakuman/ChurenChecker.js.map +1 -1
- package/dist/yaku/yakuman/DaisangenChecker.js +6 -2
- package/dist/yaku/yakuman/DaisangenChecker.js.map +1 -1
- package/dist/yaku/yakuman/DaisushiChecker.js +6 -2
- package/dist/yaku/yakuman/DaisushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/ExtendedYakumanChecker.js +6 -2
- package/dist/yaku/yakuman/ExtendedYakumanChecker.js.map +1 -1
- package/dist/yaku/yakuman/Kokushi13Checker.js +8 -4
- package/dist/yaku/yakuman/Kokushi13Checker.js.map +1 -1
- package/dist/yaku/yakuman/KokushiChecker.js +8 -4
- package/dist/yaku/yakuman/KokushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/RyuisoChecker.js +6 -2
- package/dist/yaku/yakuman/RyuisoChecker.js.map +1 -1
- package/dist/yaku/yakuman/ShosushiChecker.js +6 -2
- package/dist/yaku/yakuman/ShosushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/SuankoChecker.js +6 -2
- package/dist/yaku/yakuman/SuankoChecker.js.map +1 -1
- package/dist/yaku/yakuman/SuankoTankiChecker.js +10 -6
- package/dist/yaku/yakuman/SuankoTankiChecker.js.map +1 -1
- package/dist/yaku/yakuman/SukantsuChecker.js +6 -2
- package/dist/yaku/yakuman/SukantsuChecker.js.map +1 -1
- package/dist/yaku/yakuman/TsuisoChecker.js +6 -2
- package/dist/yaku/yakuman/TsuisoChecker.js.map +1 -1
- package/modules/index.ts +3 -1
- package/package.json +1 -1
- package/tsconfig.json +1 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JunchanChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
6
|
+
class JunchanChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
4
7
|
yakuName = "純全帯么九";
|
|
5
8
|
constructor(context) {
|
|
6
9
|
super(context);
|
|
@@ -8,8 +11,9 @@ export class JunchanChecker extends YakuCheckerBase {
|
|
|
8
11
|
this.hanFuro = 2;
|
|
9
12
|
}
|
|
10
13
|
isSatisfied() {
|
|
11
|
-
const allMentsu = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds).getAll();
|
|
14
|
+
const allMentsu = new MentsuAnalyzer_1.MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds).getAll();
|
|
12
15
|
return allMentsu.every(mentsu => mentsu.hasRoutouHai());
|
|
13
16
|
}
|
|
14
17
|
}
|
|
18
|
+
exports.JunchanChecker = JunchanChecker;
|
|
15
19
|
//# sourceMappingURL=JunchanChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JunchanChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/JunchanChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"JunchanChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/JunchanChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,yDAAsD;AAGtD,MAAa,cAAe,SAAQ,iCAAe;IACrC,QAAQ,GAAW,OAAO,CAAC;IAErC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,WAAW;QACjB,MAAM,SAAS,GAAc,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAChH,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;CACJ;AAbD,wCAaC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KazehaiChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
6
|
+
class KazehaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
4
7
|
yakuName;
|
|
5
8
|
requiredWind;
|
|
6
9
|
forbiddenWind;
|
|
@@ -13,8 +16,9 @@ export class KazehaiChecker extends YakuCheckerBase {
|
|
|
13
16
|
this.yakuName = `${yakuName}:${requiredWind.name}`;
|
|
14
17
|
}
|
|
15
18
|
isSatisfied() {
|
|
16
|
-
const analyzer = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
19
|
+
const analyzer = new MentsuAnalyzer_1.MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
17
20
|
return analyzer.hasSingleWindMentsu(m => m.isKotsuOrKantsu(), this.requiredWind, this.forbiddenWind);
|
|
18
21
|
}
|
|
19
22
|
}
|
|
23
|
+
exports.KazehaiChecker = KazehaiChecker;
|
|
20
24
|
//# sourceMappingURL=KazehaiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KazehaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/KazehaiChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"KazehaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/KazehaiChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AACrD,yDAAsD;AAItD,MAAa,cAAe,SAAQ,iCAAe;IACrC,QAAQ,CAAS;IACnB,YAAY,CAAO;IACnB,aAAa,CAAO;IAE5B,YAAY,OAAoB,EAAE,QAAgB,EAAE,YAAkB,EAAE,aAAmB;QACvF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,GAAG,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;IACvD,CAAC;IAES,WAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzG,CAAC;CACJ;AAlBD,wCAkBC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MenzenTsumoChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class MenzenTsumoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "門前清自摸和";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -9,4 +12,5 @@ export class MenzenTsumoChecker extends YakuCheckerBase {
|
|
|
9
12
|
return this.isMenzen() && this.context.ctx.isTsumo;
|
|
10
13
|
}
|
|
11
14
|
}
|
|
15
|
+
exports.MenzenTsumoChecker = MenzenTsumoChecker;
|
|
12
16
|
//# sourceMappingURL=MenzenTsumoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenzenTsumoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/MenzenTsumoChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"MenzenTsumoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/MenzenTsumoChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAa,kBAAmB,SAAQ,iCAAe;IACzC,QAAQ,GAAW,QAAQ,CAAC;IAEtC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACvB,CAAC;IAES,WAAW;QACjB,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACvD,CAAC;CACJ;AAXD,gDAWC"}
|
|
@@ -1,26 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PinfuChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
const BlockHais_1 = require("../../BlockHais");
|
|
6
|
+
const MahjongConsts_1 = require("../../MahjongConsts");
|
|
7
|
+
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
8
|
+
class PinfuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
6
9
|
yakuName = "平和";
|
|
7
10
|
constructor(context) {
|
|
8
11
|
super(context);
|
|
9
12
|
this.hanMenzen = 1;
|
|
10
13
|
}
|
|
11
14
|
isSatisfied() {
|
|
12
|
-
const analyzer = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
15
|
+
const analyzer = new MentsuAnalyzer_1.MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
13
16
|
const pw = this.context.ctx.playerWind;
|
|
14
17
|
const rw = this.context.ctx.roundWind;
|
|
15
18
|
if (!this.isMenzen())
|
|
16
19
|
return false;
|
|
17
|
-
if (analyzer.hasYakuhaiMentsu(m => m instanceof BlockHais && m.isJanto(), pw, rw))
|
|
20
|
+
if (analyzer.hasYakuhaiMentsu(m => m instanceof BlockHais_1.BlockHais && m.isJanto(), pw, rw))
|
|
18
21
|
return false;
|
|
19
|
-
if (!analyzer.getAll().every(m => m.isShuntsu() || (m instanceof BlockHais && m.isJanto())))
|
|
22
|
+
if (!analyzer.getAll().every(m => m.isShuntsu() || (m instanceof BlockHais_1.BlockHais && m.isJanto())))
|
|
20
23
|
return false;
|
|
21
|
-
if (!this.context.block.calcMachiType(this.context.ctx.agariHai.getId()).has(MachiType.RYANMEN))
|
|
24
|
+
if (!this.context.block.calcMachiType(this.context.ctx.agariHai.getId()).has(MahjongConsts_1.MachiType.RYANMEN))
|
|
22
25
|
return false;
|
|
23
26
|
return true;
|
|
24
27
|
}
|
|
25
28
|
}
|
|
29
|
+
exports.PinfuChecker = PinfuChecker;
|
|
26
30
|
//# sourceMappingURL=PinfuChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinfuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/PinfuChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"PinfuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/PinfuChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AACrD,+CAA4C;AAC5C,uDAAgD;AAChD,yDAAsD;AAEtD,MAAa,YAAa,SAAQ,iCAAe;IACnC,QAAQ,GAAW,IAAI,CAAC;IAElC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACvB,CAAC;IAES,WAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3F,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QACtC,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,KAAK,CAAC;QAClC,IAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,qBAAS,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/F,IAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,YAAY,qBAAS,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACzG,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,yBAAS,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7G,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnBD,oCAmBC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenpuuhaiChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
6
|
+
class RenpuuhaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
4
7
|
yakuName;
|
|
5
8
|
constructor(context) {
|
|
6
9
|
super(context);
|
|
@@ -9,10 +12,11 @@ export class RenpuuhaiChecker extends YakuCheckerBase {
|
|
|
9
12
|
this.yakuName = `連風牌:${this.context.ctx.playerWind.name}`;
|
|
10
13
|
}
|
|
11
14
|
isSatisfied() {
|
|
12
|
-
const analyzer = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
15
|
+
const analyzer = new MentsuAnalyzer_1.MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
13
16
|
const pw = this.context.ctx.playerWind;
|
|
14
17
|
const rw = this.context.ctx.roundWind;
|
|
15
18
|
return analyzer.hasDoubleWindMentsu(m => m.isKotsuOrKantsu(), pw, rw);
|
|
16
19
|
}
|
|
17
20
|
}
|
|
21
|
+
exports.RenpuuhaiChecker = RenpuuhaiChecker;
|
|
18
22
|
//# sourceMappingURL=RenpuuhaiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenpuuhaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/RenpuuhaiChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"RenpuuhaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/RenpuuhaiChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AACrD,yDAAsD;AAEtD,MAAa,gBAAiB,SAAQ,iCAAe;IACvC,QAAQ,CAAS;IAE3B,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAES,WAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3F,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QACtC,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;CACJ;AAhBD,4CAgBC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RyanpekoChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class RyanpekoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "二盃口";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -11,4 +14,5 @@ export class RyanpekoChecker extends YakuCheckerBase {
|
|
|
11
14
|
return this.countSameShuntsuGroups() === 2;
|
|
12
15
|
}
|
|
13
16
|
}
|
|
17
|
+
exports.RyanpekoChecker = RyanpekoChecker;
|
|
14
18
|
//# sourceMappingURL=RyanpekoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RyanpekoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/RyanpekoChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"RyanpekoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/RyanpekoChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAGrD,MAAa,eAAgB,SAAQ,iCAAe;IACtC,QAAQ,GAAW,KAAK,CAAC;IAEnC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACvB,CAAC;IAES,WAAW;QACjB,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,KAAK,CAAC;QAClC,OAAO,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;CACJ;AAZD,0CAYC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SanankoChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class SanankoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "三暗刻";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -10,4 +13,5 @@ export class SanankoChecker extends YakuCheckerBase {
|
|
|
10
13
|
return this.countAnko() === 3;
|
|
11
14
|
}
|
|
12
15
|
}
|
|
16
|
+
exports.SanankoChecker = SanankoChecker;
|
|
13
17
|
//# sourceMappingURL=SanankoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SanankoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SanankoChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"SanankoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SanankoChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAGrD,MAAa,cAAe,SAAQ,iCAAe;IACrC,QAAQ,GAAW,KAAK,CAAC;IAEnC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,WAAW;QACjB,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;CACJ;AAZD,wCAYC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SankantsuChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class SankantsuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "三槓子";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -10,4 +13,5 @@ export class SankantsuChecker extends YakuCheckerBase {
|
|
|
10
13
|
return this.countKantsu() === 3;
|
|
11
14
|
}
|
|
12
15
|
}
|
|
16
|
+
exports.SankantsuChecker = SankantsuChecker;
|
|
13
17
|
//# sourceMappingURL=SankantsuChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SankantsuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SankantsuChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"SankantsuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SankantsuChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAa,gBAAiB,SAAQ,iCAAe;IACvC,QAAQ,GAAW,KAAK,CAAC;IAEnC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,WAAW;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;CACJ;AAZD,4CAYC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SanshokuChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class SanshokuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "三色同順";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -10,4 +13,5 @@ export class SanshokuChecker extends YakuCheckerBase {
|
|
|
10
13
|
return this.checkSanshoku((m) => m.isShuntsu());
|
|
11
14
|
}
|
|
12
15
|
}
|
|
16
|
+
exports.SanshokuChecker = SanshokuChecker;
|
|
13
17
|
//# sourceMappingURL=SanshokuChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SanshokuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SanshokuChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"SanshokuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SanshokuChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAa,eAAgB,SAAQ,iCAAe;IACtC,QAAQ,GAAW,MAAM,CAAC;IAEpC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,WAAW;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ;AAZD,0CAYC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShosangenChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class ShosangenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "小三元";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -13,4 +16,5 @@ export class ShosangenChecker extends YakuCheckerBase {
|
|
|
13
16
|
return mentsuCount === 2 && jantoCount === 1;
|
|
14
17
|
}
|
|
15
18
|
}
|
|
19
|
+
exports.ShosangenChecker = ShosangenChecker;
|
|
16
20
|
//# sourceMappingURL=ShosangenChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShosangenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/ShosangenChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"ShosangenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/ShosangenChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAGrD,MAAa,gBAAiB,SAAQ,iCAAe;IACvC,QAAQ,GAAW,KAAK,CAAC;IAEnC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,WAAW;QACjB,MAAM,EAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC,CAAC;QAEvG,IAAG,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEzC,OAAO,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC;IACjD,CAAC;CACJ;AAhBD,4CAgBC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TanyaoChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class TanyaoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "断么九";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -11,4 +14,5 @@ export class TanyaoChecker extends YakuCheckerBase {
|
|
|
11
14
|
return allTiles.every(h => h.isChuchanHai()) && (this.context.ctx.kuitan || this.isMenzen());
|
|
12
15
|
}
|
|
13
16
|
}
|
|
17
|
+
exports.TanyaoChecker = TanyaoChecker;
|
|
14
18
|
//# sourceMappingURL=TanyaoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TanyaoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/TanyaoChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"TanyaoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/TanyaoChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAGrD,MAAa,aAAc,SAAQ,iCAAe;IACpC,QAAQ,GAAW,KAAK,CAAC;IAEnC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,WAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjG,CAAC;CACJ;AAbD,sCAaC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToitoiChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class ToitoiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "対々和";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -10,4 +13,5 @@ export class ToitoiChecker extends YakuCheckerBase {
|
|
|
10
13
|
return this.countKotsu() === 4;
|
|
11
14
|
}
|
|
12
15
|
}
|
|
16
|
+
exports.ToitoiChecker = ToitoiChecker;
|
|
13
17
|
//# sourceMappingURL=ToitoiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToitoiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/ToitoiChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"ToitoiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/ToitoiChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAGrD,MAAa,aAAc,SAAQ,iCAAe;IACpC,QAAQ,GAAW,KAAK,CAAC;IAEnC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,WAAW;QACjB,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;CACJ;AAZD,sCAYC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.YakuhaiChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
6
|
+
class YakuhaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
4
7
|
yakuName;
|
|
5
8
|
targetHai;
|
|
6
9
|
constructor(context, targetHai, yakuName) {
|
|
@@ -11,8 +14,9 @@ export class YakuhaiChecker extends YakuCheckerBase {
|
|
|
11
14
|
this.hanFuro = 1;
|
|
12
15
|
}
|
|
13
16
|
isSatisfied() {
|
|
14
|
-
const allMentsu = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds).getAll();
|
|
17
|
+
const allMentsu = new MentsuAnalyzer_1.MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds).getAll();
|
|
15
18
|
return allMentsu.some(mentsu => mentsu.isKotsuOrKantsu() && mentsu.containsHai(this.targetHai));
|
|
16
19
|
}
|
|
17
20
|
}
|
|
21
|
+
exports.YakuhaiChecker = YakuhaiChecker;
|
|
18
22
|
//# sourceMappingURL=YakuhaiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YakuhaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/YakuhaiChecker.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"YakuhaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/YakuhaiChecker.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,yDAAsD;AAEtD,MAAa,cAAe,SAAQ,iCAAe;IACrC,QAAQ,CAAS;IACnB,SAAS,CAAS;IAE1B,YAAY,OAAoB,EAAE,SAAiB,EAAE,QAAgB;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,WAAW;QACjB,MAAM,SAAS,GAAc,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAChH,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACpG,CAAC;CACJ;AAhBD,wCAgBC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChinrotoChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class ChinrotoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "清老頭";
|
|
4
7
|
isSatisfied() {
|
|
5
8
|
const allTiles = this.getAllTiles();
|
|
6
9
|
return allTiles.every(h => h.isRoutouHai());
|
|
7
10
|
}
|
|
8
11
|
}
|
|
12
|
+
exports.ChinrotoChecker = ChinrotoChecker;
|
|
9
13
|
//# sourceMappingURL=ChinrotoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChinrotoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ChinrotoChecker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ChinrotoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ChinrotoChecker.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AAGrD,MAAa,eAAgB,SAAQ,iCAAe;IACtC,QAAQ,GAAW,KAAK,CAAC;IAEzB,WAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,CAAC;CACJ;AAPD,0CAOC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Churen9Checker = void 0;
|
|
4
|
+
const ExtendedYakumanChecker_1 = require("./ExtendedYakumanChecker");
|
|
5
|
+
const ChurenChecker_1 = require("./ChurenChecker");
|
|
6
|
+
class Churen9Checker extends ExtendedYakumanChecker_1.ExtendedYakumanChecker {
|
|
4
7
|
yakuName = "純正九蓮宝燈";
|
|
5
8
|
baseChecker;
|
|
6
9
|
requiredMachiCount;
|
|
7
10
|
constructor(context) {
|
|
8
11
|
super(context);
|
|
9
|
-
this.baseChecker = new ChurenChecker(context);
|
|
12
|
+
this.baseChecker = new ChurenChecker_1.ChurenChecker(context);
|
|
10
13
|
this.requiredMachiCount = 9;
|
|
11
14
|
}
|
|
12
15
|
}
|
|
16
|
+
exports.Churen9Checker = Churen9Checker;
|
|
13
17
|
//# sourceMappingURL=Churen9Checker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Churen9Checker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/Churen9Checker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Churen9Checker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/Churen9Checker.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAElE,mDAAgD;AAGhD,MAAa,cAAe,SAAQ,+CAAsB;IAC5C,QAAQ,GAAW,QAAQ,CAAC;IAC5B,WAAW,CAAkB;IAC7B,kBAAkB,CAAS;IAErC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,6BAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAChC,CAAC;CACJ;AAVD,wCAUC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChurenChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
const ChinitsuChecker_1 = require("../normal/ChinitsuChecker");
|
|
6
|
+
class ChurenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
4
7
|
yakuName = "九蓮宝燈";
|
|
5
8
|
isSatisfied() {
|
|
6
|
-
const chinitsuChecker = new ChinitsuChecker(this.context);
|
|
9
|
+
const chinitsuChecker = new ChinitsuChecker_1.ChinitsuChecker(this.context);
|
|
7
10
|
if (!chinitsuChecker.isChinitsu())
|
|
8
11
|
return false;
|
|
9
12
|
if (!this.isMenzen())
|
|
@@ -26,4 +29,5 @@ export class ChurenChecker extends YakuCheckerBase {
|
|
|
26
29
|
return this.isSatisfied();
|
|
27
30
|
}
|
|
28
31
|
}
|
|
32
|
+
exports.ChurenChecker = ChurenChecker;
|
|
29
33
|
//# sourceMappingURL=ChurenChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChurenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ChurenChecker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ChurenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ChurenChecker.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AACrD,+DAA4D;AAG5D,MAAa,aAAc,SAAQ,iCAAe;IACpC,QAAQ,GAAW,MAAM,CAAC;IAE1B,WAAW;QACjB,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAG,CAAC,eAAe,CAAC,UAAU,EAAE;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,KAAK,CAAC;QAElC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtC,UAAU;QACV,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAG,CAAC,kBAAkB;YAAE,OAAO,KAAK,CAAC;QACrC,WAAW;QACX,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC;YACxB,IAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;CACJ;AA1BD,sCA0BC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DaisangenChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class DaisangenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "大三元";
|
|
4
7
|
isSatisfied() {
|
|
5
8
|
const { foundTargets, mentsuCount, jantoCount } = this.countTargetBlocks(this.context.block, [32, 33, 34]);
|
|
@@ -8,4 +11,5 @@ export class DaisangenChecker extends YakuCheckerBase {
|
|
|
8
11
|
return mentsuCount === 3 && jantoCount === 0;
|
|
9
12
|
}
|
|
10
13
|
}
|
|
14
|
+
exports.DaisangenChecker = DaisangenChecker;
|
|
11
15
|
//# sourceMappingURL=DaisangenChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaisangenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/DaisangenChecker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DaisangenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/DaisangenChecker.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AAGrD,MAAa,gBAAiB,SAAQ,iCAAe;IACvC,QAAQ,GAAW,KAAK,CAAC;IAEzB,WAAW;QACjB,MAAM,EAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC,CAAC;QAEvG,IAAG,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEzC,OAAO,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC;IACjD,CAAC;CACJ;AAVD,4CAUC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DaisushiChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class DaisushiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
yakuName = "大四喜";
|
|
4
7
|
constructor(context) {
|
|
5
8
|
super(context);
|
|
@@ -13,4 +16,5 @@ export class DaisushiChecker extends YakuCheckerBase {
|
|
|
13
16
|
return mentsuCount === 4 && jantoCount === 0;
|
|
14
17
|
}
|
|
15
18
|
}
|
|
19
|
+
exports.DaisushiChecker = DaisushiChecker;
|
|
16
20
|
//# sourceMappingURL=DaisushiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaisushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/DaisushiChecker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DaisushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/DaisushiChecker.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AAIrD,MAAa,eAAgB,SAAQ,iCAAe;IACtC,QAAQ,GAAW,KAAK,CAAC;IAEnC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAES,WAAW;QACjB,MAAM,EAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC,CAAC;QAE1G,IAAG,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEzC,OAAO,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC;IACjD,CAAC;CACJ;AAhBD,0CAgBC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtendedYakumanChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
class ExtendedYakumanChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
3
6
|
constructor(context) {
|
|
4
7
|
super(context);
|
|
5
8
|
this.hanMenzen = 26;
|
|
@@ -11,4 +14,5 @@ export class ExtendedYakumanChecker extends YakuCheckerBase {
|
|
|
11
14
|
return this.calculateMachiCount() === this.requiredMachiCount;
|
|
12
15
|
}
|
|
13
16
|
}
|
|
17
|
+
exports.ExtendedYakumanChecker = ExtendedYakumanChecker;
|
|
14
18
|
//# sourceMappingURL=ExtendedYakumanChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtendedYakumanChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ExtendedYakumanChecker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ExtendedYakumanChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ExtendedYakumanChecker.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AAGrD,MAAsB,sBAAuB,SAAQ,iCAAe;IAIhE,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,WAAW;QACd,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;QAC3C,OAAO,IAAI,CAAC,mBAAmB,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC;IAClE,CAAC;CACJ;AAdD,wDAcC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Kokushi13Checker = void 0;
|
|
4
|
+
const ExtendedYakumanChecker_1 = require("./ExtendedYakumanChecker");
|
|
5
|
+
const KokushiChecker_1 = require("./KokushiChecker");
|
|
6
|
+
class Kokushi13Checker extends ExtendedYakumanChecker_1.ExtendedYakumanChecker {
|
|
4
7
|
yakuName = "国士無双13面待ち";
|
|
5
8
|
baseChecker;
|
|
6
9
|
requiredMachiCount;
|
|
7
10
|
constructor(context) {
|
|
8
11
|
super(context);
|
|
9
|
-
this.baseChecker = new KokushiChecker(context);
|
|
12
|
+
this.baseChecker = new KokushiChecker_1.KokushiChecker(context);
|
|
10
13
|
this.requiredMachiCount = 13;
|
|
11
14
|
}
|
|
12
15
|
}
|
|
16
|
+
exports.Kokushi13Checker = Kokushi13Checker;
|
|
13
17
|
//# sourceMappingURL=Kokushi13Checker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Kokushi13Checker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/Kokushi13Checker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Kokushi13Checker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/Kokushi13Checker.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAElE,qDAAkD;AAGlD,MAAa,gBAAiB,SAAQ,+CAAsB;IAC9C,QAAQ,GAAW,WAAW,CAAC;IAC/B,WAAW,CAAkB;IAC7B,kBAAkB,CAAS;IAErC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,+BAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACjC,CAAC;CACJ;AAVD,4CAUC"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KokushiChecker = void 0;
|
|
4
|
+
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
+
const MahjongConsts_1 = require("../../MahjongConsts");
|
|
6
|
+
class KokushiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
4
7
|
yakuName = "国士無双";
|
|
5
8
|
isSatisfied() {
|
|
6
9
|
if (!this.isMenzen())
|
|
7
10
|
return false;
|
|
8
|
-
return this.context.block.getBlockHais().some(b => b.getType() === BlockType.KOKUSHI);
|
|
11
|
+
return this.context.block.getBlockHais().some(b => b.getType() === MahjongConsts_1.BlockType.KOKUSHI);
|
|
9
12
|
}
|
|
10
13
|
isKokushi() {
|
|
11
14
|
return this.isSatisfied();
|
|
12
15
|
}
|
|
13
16
|
}
|
|
17
|
+
exports.KokushiChecker = KokushiChecker;
|
|
14
18
|
//# sourceMappingURL=KokushiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KokushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/KokushiChecker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"KokushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/KokushiChecker.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AACrD,uDAAgD;AAEhD,MAAa,cAAe,SAAQ,iCAAe;IACrC,QAAQ,GAAW,MAAM,CAAC;IAE1B,WAAW;QACjB,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,KAAK,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,yBAAS,CAAC,OAAO,CAAC,CAAC;IAC1F,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;CACJ;AAXD,wCAWC"}
|