mahjong_engine 1.0.0 → 1.0.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/dist/BlockDivider.js +17 -21
- package/dist/BlockDivider.js.map +1 -1
- package/dist/BlockHais.js +13 -17
- package/dist/BlockHais.js.map +1 -1
- package/dist/BlockHaisList.js +13 -17
- package/dist/BlockHaisList.js.map +1 -1
- package/dist/Hai.js +23 -27
- package/dist/Hai.js.map +1 -1
- package/dist/Hais.js +4 -8
- package/dist/Hais.js.map +1 -1
- package/dist/IMentsu.js +1 -2
- package/dist/MachiCalculator.js +7 -11
- package/dist/MachiCalculator.js.map +1 -1
- package/dist/MahjongConsts.js +12 -15
- package/dist/MahjongConsts.js.map +1 -1
- package/dist/Meld.js +11 -15
- package/dist/Meld.js.map +1 -1
- package/dist/Melds.js +1 -5
- package/dist/Melds.js.map +1 -1
- package/dist/MentsuAnalyzer.js +1 -5
- package/dist/MentsuAnalyzer.js.map +1 -1
- package/dist/PlayerContext.js +3 -7
- package/dist/PlayerContext.js.map +1 -1
- package/dist/PlayerHand.js +3 -7
- package/dist/PlayerHand.js.map +1 -1
- package/dist/index.js +11 -25
- package/dist/index.js.map +1 -1
- package/dist/tensuu/FuCalculator.js +25 -29
- package/dist/tensuu/FuCalculator.js.map +1 -1
- package/dist/tensuu/FuDetail.js +1 -5
- package/dist/tensuu/FuDetail.js.map +1 -1
- package/dist/tensuu/ScoreResolver.js +7 -11
- package/dist/tensuu/ScoreResolver.js.map +1 -1
- package/dist/tensuu/ScoreResult.js +1 -5
- package/dist/tensuu/ScoreResult.js.map +1 -1
- package/dist/tensuu/TensuuCalculator.js +3 -7
- package/dist/tensuu/TensuuCalculator.js.map +1 -1
- package/dist/tensuu/TensuuResult.js +1 -5
- package/dist/tensuu/TensuuResult.js.map +1 -1
- package/dist/tileDefs.js +1 -4
- package/dist/tileDefs.js.map +1 -1
- package/dist/yaku/NormalYakuChecker.js +8 -12
- package/dist/yaku/NormalYakuChecker.js.map +1 -1
- package/dist/yaku/YakuChecker.js +5 -9
- package/dist/yaku/YakuChecker.js.map +1 -1
- package/dist/yaku/YakuCheckerBase.js +13 -17
- package/dist/yaku/YakuCheckerBase.js.map +1 -1
- package/dist/yaku/YakuContext.js +1 -5
- package/dist/yaku/YakuContext.js.map +1 -1
- package/dist/yaku/YakumanChecker.js +6 -10
- package/dist/yaku/YakumanChecker.js.map +1 -1
- package/dist/yaku/index.js +73 -76
- package/dist/yaku/index.js.map +1 -1
- package/dist/yaku/normal/ChinitsuChecker.js +2 -6
- package/dist/yaku/normal/ChinitsuChecker.js.map +1 -1
- package/dist/yaku/normal/ChitoitsuChecker.js +4 -8
- package/dist/yaku/normal/ChitoitsuChecker.js.map +1 -1
- package/dist/yaku/normal/DoukouChecker.js +2 -6
- package/dist/yaku/normal/DoukouChecker.js.map +1 -1
- package/dist/yaku/normal/HonchanChecker.js +4 -8
- package/dist/yaku/normal/HonchanChecker.js.map +1 -1
- package/dist/yaku/normal/HonitsuChecker.js +4 -8
- package/dist/yaku/normal/HonitsuChecker.js.map +1 -1
- package/dist/yaku/normal/HonrotoChecker.js +4 -8
- package/dist/yaku/normal/HonrotoChecker.js.map +1 -1
- package/dist/yaku/normal/IipekoChecker.js +2 -6
- package/dist/yaku/normal/IipekoChecker.js.map +1 -1
- package/dist/yaku/normal/IttsuuChecker.js +2 -6
- package/dist/yaku/normal/IttsuuChecker.js.map +1 -1
- package/dist/yaku/normal/JunchanChecker.js +4 -8
- package/dist/yaku/normal/JunchanChecker.js.map +1 -1
- package/dist/yaku/normal/KazehaiChecker.js +4 -8
- package/dist/yaku/normal/KazehaiChecker.js.map +1 -1
- package/dist/yaku/normal/MenzenTsumoChecker.js +2 -6
- package/dist/yaku/normal/MenzenTsumoChecker.js.map +1 -1
- package/dist/yaku/normal/PinfuChecker.js +9 -13
- package/dist/yaku/normal/PinfuChecker.js.map +1 -1
- package/dist/yaku/normal/RenpuuhaiChecker.js +4 -8
- package/dist/yaku/normal/RenpuuhaiChecker.js.map +1 -1
- package/dist/yaku/normal/RyanpekoChecker.js +2 -6
- package/dist/yaku/normal/RyanpekoChecker.js.map +1 -1
- package/dist/yaku/normal/SanankoChecker.js +2 -6
- package/dist/yaku/normal/SanankoChecker.js.map +1 -1
- package/dist/yaku/normal/SankantsuChecker.js +2 -6
- package/dist/yaku/normal/SankantsuChecker.js.map +1 -1
- package/dist/yaku/normal/SanshokuChecker.js +2 -6
- package/dist/yaku/normal/SanshokuChecker.js.map +1 -1
- package/dist/yaku/normal/ShosangenChecker.js +2 -6
- package/dist/yaku/normal/ShosangenChecker.js.map +1 -1
- package/dist/yaku/normal/TanyaoChecker.js +2 -6
- package/dist/yaku/normal/TanyaoChecker.js.map +1 -1
- package/dist/yaku/normal/ToitoiChecker.js +2 -6
- package/dist/yaku/normal/ToitoiChecker.js.map +1 -1
- package/dist/yaku/normal/YakuhaiChecker.js +4 -8
- package/dist/yaku/normal/YakuhaiChecker.js.map +1 -1
- package/dist/yaku/yakuman/ChinrotoChecker.js +2 -6
- package/dist/yaku/yakuman/ChinrotoChecker.js.map +1 -1
- package/dist/yaku/yakuman/Churen9Checker.js +4 -8
- package/dist/yaku/yakuman/Churen9Checker.js.map +1 -1
- package/dist/yaku/yakuman/ChurenChecker.js +4 -8
- package/dist/yaku/yakuman/ChurenChecker.js.map +1 -1
- package/dist/yaku/yakuman/DaisangenChecker.js +2 -6
- package/dist/yaku/yakuman/DaisangenChecker.js.map +1 -1
- package/dist/yaku/yakuman/DaisushiChecker.js +2 -6
- package/dist/yaku/yakuman/DaisushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/ExtendedYakumanChecker.js +2 -6
- package/dist/yaku/yakuman/ExtendedYakumanChecker.js.map +1 -1
- package/dist/yaku/yakuman/Kokushi13Checker.js +4 -8
- package/dist/yaku/yakuman/Kokushi13Checker.js.map +1 -1
- package/dist/yaku/yakuman/KokushiChecker.js +4 -8
- package/dist/yaku/yakuman/KokushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/RyuisoChecker.js +2 -6
- package/dist/yaku/yakuman/RyuisoChecker.js.map +1 -1
- package/dist/yaku/yakuman/ShosushiChecker.js +2 -6
- package/dist/yaku/yakuman/ShosushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/SuankoChecker.js +2 -6
- package/dist/yaku/yakuman/SuankoChecker.js.map +1 -1
- package/dist/yaku/yakuman/SuankoTankiChecker.js +6 -10
- package/dist/yaku/yakuman/SuankoTankiChecker.js.map +1 -1
- package/dist/yaku/yakuman/SukantsuChecker.js +2 -6
- package/dist/yaku/yakuman/SukantsuChecker.js.map +1 -1
- package/dist/yaku/yakuman/TsuisoChecker.js +2 -6
- package/dist/yaku/yakuman/TsuisoChecker.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.json +1 -1
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
6
|
-
class JunchanChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
import { MentsuAnalyzer } from '../../MentsuAnalyzer';
|
|
3
|
+
export class JunchanChecker extends YakuCheckerBase {
|
|
7
4
|
yakuName = "純全帯么九";
|
|
8
5
|
constructor(context) {
|
|
9
6
|
super(context);
|
|
@@ -11,9 +8,8 @@ class JunchanChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
11
8
|
this.hanFuro = 2;
|
|
12
9
|
}
|
|
13
10
|
isSatisfied() {
|
|
14
|
-
const allMentsu = new
|
|
11
|
+
const allMentsu = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds).getAll();
|
|
15
12
|
return allMentsu.every(mentsu => mentsu.hasRoutouHai());
|
|
16
13
|
}
|
|
17
14
|
}
|
|
18
|
-
exports.JunchanChecker = JunchanChecker;
|
|
19
15
|
//# sourceMappingURL=JunchanChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JunchanChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/JunchanChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JunchanChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/JunchanChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,OAAO,cAAe,SAAQ,eAAe;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,cAAc,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"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
6
|
-
class KazehaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
import { MentsuAnalyzer } from '../../MentsuAnalyzer';
|
|
3
|
+
export class KazehaiChecker extends YakuCheckerBase {
|
|
7
4
|
yakuName;
|
|
8
5
|
requiredWind;
|
|
9
6
|
forbiddenWind;
|
|
@@ -16,9 +13,8 @@ class KazehaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
16
13
|
this.yakuName = `${yakuName}:${requiredWind.name}`;
|
|
17
14
|
}
|
|
18
15
|
isSatisfied() {
|
|
19
|
-
const analyzer = new
|
|
16
|
+
const analyzer = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
20
17
|
return analyzer.hasSingleWindMentsu(m => m.isKotsuOrKantsu(), this.requiredWind, this.forbiddenWind);
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
|
-
exports.KazehaiChecker = KazehaiChecker;
|
|
24
20
|
//# sourceMappingURL=KazehaiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KazehaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/KazehaiChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KazehaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/KazehaiChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,OAAO,cAAe,SAAQ,eAAe;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,cAAc,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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.MenzenTsumoChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class MenzenTsumoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class MenzenTsumoChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "門前清自摸和";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -12,5 +9,4 @@ class MenzenTsumoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
12
9
|
return this.isMenzen() && this.context.ctx.isTsumo;
|
|
13
10
|
}
|
|
14
11
|
}
|
|
15
|
-
exports.MenzenTsumoChecker = MenzenTsumoChecker;
|
|
16
12
|
//# sourceMappingURL=MenzenTsumoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenzenTsumoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/MenzenTsumoChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenzenTsumoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/MenzenTsumoChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,kBAAmB,SAAQ,eAAe;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"}
|
|
@@ -1,30 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const MahjongConsts_1 = require("../../MahjongConsts");
|
|
7
|
-
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
8
|
-
class PinfuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
import { BlockHais } from '../../BlockHais';
|
|
3
|
+
import { MachiType } from '../../MahjongConsts';
|
|
4
|
+
import { MentsuAnalyzer } from '../../MentsuAnalyzer';
|
|
5
|
+
export class PinfuChecker extends YakuCheckerBase {
|
|
9
6
|
yakuName = "平和";
|
|
10
7
|
constructor(context) {
|
|
11
8
|
super(context);
|
|
12
9
|
this.hanMenzen = 1;
|
|
13
10
|
}
|
|
14
11
|
isSatisfied() {
|
|
15
|
-
const analyzer = new
|
|
12
|
+
const analyzer = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
16
13
|
const pw = this.context.ctx.playerWind;
|
|
17
14
|
const rw = this.context.ctx.roundWind;
|
|
18
15
|
if (!this.isMenzen())
|
|
19
16
|
return false;
|
|
20
|
-
if (analyzer.hasYakuhaiMentsu(m => m instanceof
|
|
17
|
+
if (analyzer.hasYakuhaiMentsu(m => m instanceof BlockHais && m.isJanto(), pw, rw))
|
|
21
18
|
return false;
|
|
22
|
-
if (!analyzer.getAll().every(m => m.isShuntsu() || (m instanceof
|
|
19
|
+
if (!analyzer.getAll().every(m => m.isShuntsu() || (m instanceof BlockHais && m.isJanto())))
|
|
23
20
|
return false;
|
|
24
|
-
if (!this.context.block.calcMachiType(this.context.ctx.agariHai.getId()).has(
|
|
21
|
+
if (!this.context.block.calcMachiType(this.context.ctx.agariHai.getId()).has(MachiType.RYANMEN))
|
|
25
22
|
return false;
|
|
26
23
|
return true;
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
|
-
exports.PinfuChecker = PinfuChecker;
|
|
30
26
|
//# sourceMappingURL=PinfuChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinfuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/PinfuChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PinfuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/PinfuChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,YAAa,SAAQ,eAAe;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,cAAc,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,SAAS,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,SAAS,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,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7G,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
6
|
-
class RenpuuhaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
import { MentsuAnalyzer } from '../../MentsuAnalyzer';
|
|
3
|
+
export class RenpuuhaiChecker extends YakuCheckerBase {
|
|
7
4
|
yakuName;
|
|
8
5
|
constructor(context) {
|
|
9
6
|
super(context);
|
|
@@ -12,11 +9,10 @@ class RenpuuhaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
12
9
|
this.yakuName = `連風牌:${this.context.ctx.playerWind.name}`;
|
|
13
10
|
}
|
|
14
11
|
isSatisfied() {
|
|
15
|
-
const analyzer = new
|
|
12
|
+
const analyzer = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds);
|
|
16
13
|
const pw = this.context.ctx.playerWind;
|
|
17
14
|
const rw = this.context.ctx.roundWind;
|
|
18
15
|
return analyzer.hasDoubleWindMentsu(m => m.isKotsuOrKantsu(), pw, rw);
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
|
-
exports.RenpuuhaiChecker = RenpuuhaiChecker;
|
|
22
18
|
//# sourceMappingURL=RenpuuhaiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenpuuhaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/RenpuuhaiChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RenpuuhaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/RenpuuhaiChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,gBAAiB,SAAQ,eAAe;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,cAAc,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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.RyanpekoChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class RyanpekoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class RyanpekoChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "二盃口";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -14,5 +11,4 @@ class RyanpekoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
14
11
|
return this.countSameShuntsuGroups() === 2;
|
|
15
12
|
}
|
|
16
13
|
}
|
|
17
|
-
exports.RyanpekoChecker = RyanpekoChecker;
|
|
18
14
|
//# sourceMappingURL=RyanpekoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RyanpekoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/RyanpekoChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RyanpekoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/RyanpekoChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,OAAO,eAAgB,SAAQ,eAAe;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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.SanankoChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class SanankoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class SanankoChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "三暗刻";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -13,5 +10,4 @@ class SanankoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
13
10
|
return this.countAnko() === 3;
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
exports.SanankoChecker = SanankoChecker;
|
|
17
13
|
//# sourceMappingURL=SanankoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SanankoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SanankoChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SanankoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SanankoChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,OAAO,cAAe,SAAQ,eAAe;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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.SankantsuChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class SankantsuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class SankantsuChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "三槓子";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -13,5 +10,4 @@ class SankantsuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
13
10
|
return this.countKantsu() === 3;
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
exports.SankantsuChecker = SankantsuChecker;
|
|
17
13
|
//# sourceMappingURL=SankantsuChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SankantsuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SankantsuChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SankantsuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SankantsuChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,gBAAiB,SAAQ,eAAe;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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.SanshokuChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class SanshokuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class SanshokuChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "三色同順";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -13,5 +10,4 @@ class SanshokuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
13
10
|
return this.checkSanshoku((m) => m.isShuntsu());
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
exports.SanshokuChecker = SanshokuChecker;
|
|
17
13
|
//# sourceMappingURL=SanshokuChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SanshokuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SanshokuChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SanshokuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/SanshokuChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,eAAgB,SAAQ,eAAe;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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ShosangenChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class ShosangenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class ShosangenChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "小三元";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -16,5 +13,4 @@ class ShosangenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
16
13
|
return mentsuCount === 2 && jantoCount === 1;
|
|
17
14
|
}
|
|
18
15
|
}
|
|
19
|
-
exports.ShosangenChecker = ShosangenChecker;
|
|
20
16
|
//# sourceMappingURL=ShosangenChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShosangenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/ShosangenChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShosangenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/ShosangenChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,OAAO,gBAAiB,SAAQ,eAAe;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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.TanyaoChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class TanyaoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class TanyaoChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "断么九";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -14,5 +11,4 @@ class TanyaoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
14
11
|
return allTiles.every(h => h.isChuchanHai()) && (this.context.ctx.kuitan || this.isMenzen());
|
|
15
12
|
}
|
|
16
13
|
}
|
|
17
|
-
exports.TanyaoChecker = TanyaoChecker;
|
|
18
14
|
//# sourceMappingURL=TanyaoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TanyaoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/TanyaoChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TanyaoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/TanyaoChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,OAAO,aAAc,SAAQ,eAAe;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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ToitoiChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class ToitoiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class ToitoiChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "対々和";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -13,5 +10,4 @@ class ToitoiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
13
10
|
return this.countKotsu() === 4;
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
exports.ToitoiChecker = ToitoiChecker;
|
|
17
13
|
//# sourceMappingURL=ToitoiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToitoiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/ToitoiChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToitoiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/ToitoiChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,OAAO,aAAc,SAAQ,eAAe;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"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
const MentsuAnalyzer_1 = require("../../MentsuAnalyzer");
|
|
6
|
-
class YakuhaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
import { MentsuAnalyzer } from '../../MentsuAnalyzer';
|
|
3
|
+
export class YakuhaiChecker extends YakuCheckerBase {
|
|
7
4
|
yakuName;
|
|
8
5
|
targetHai;
|
|
9
6
|
constructor(context, targetHai, yakuName) {
|
|
@@ -14,9 +11,8 @@ class YakuhaiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
14
11
|
this.hanFuro = 1;
|
|
15
12
|
}
|
|
16
13
|
isSatisfied() {
|
|
17
|
-
const allMentsu = new
|
|
14
|
+
const allMentsu = new MentsuAnalyzer(this.context.block.getBlockHais(), this.context.melds).getAll();
|
|
18
15
|
return allMentsu.some(mentsu => mentsu.isKotsuOrKantsu() && mentsu.containsHai(this.targetHai));
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
|
-
exports.YakuhaiChecker = YakuhaiChecker;
|
|
22
18
|
//# sourceMappingURL=YakuhaiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YakuhaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/YakuhaiChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"YakuhaiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/normal/YakuhaiChecker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,cAAe,SAAQ,eAAe;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,cAAc,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"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ChinrotoChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class ChinrotoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class ChinrotoChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "清老頭";
|
|
7
4
|
isSatisfied() {
|
|
8
5
|
const allTiles = this.getAllTiles();
|
|
9
6
|
return allTiles.every(h => h.isRoutouHai());
|
|
10
7
|
}
|
|
11
8
|
}
|
|
12
|
-
exports.ChinrotoChecker = ChinrotoChecker;
|
|
13
9
|
//# sourceMappingURL=ChinrotoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChinrotoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ChinrotoChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChinrotoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ChinrotoChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,OAAO,eAAgB,SAAQ,eAAe;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"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const ExtendedYakumanChecker_1 = require("./ExtendedYakumanChecker");
|
|
5
|
-
const ChurenChecker_1 = require("./ChurenChecker");
|
|
6
|
-
class Churen9Checker extends ExtendedYakumanChecker_1.ExtendedYakumanChecker {
|
|
1
|
+
import { ExtendedYakumanChecker } from './ExtendedYakumanChecker';
|
|
2
|
+
import { ChurenChecker } from './ChurenChecker';
|
|
3
|
+
export class Churen9Checker extends ExtendedYakumanChecker {
|
|
7
4
|
yakuName = "純正九蓮宝燈";
|
|
8
5
|
baseChecker;
|
|
9
6
|
requiredMachiCount;
|
|
10
7
|
constructor(context) {
|
|
11
8
|
super(context);
|
|
12
|
-
this.baseChecker = new
|
|
9
|
+
this.baseChecker = new ChurenChecker(context);
|
|
13
10
|
this.requiredMachiCount = 9;
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
exports.Churen9Checker = Churen9Checker;
|
|
17
13
|
//# sourceMappingURL=Churen9Checker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Churen9Checker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/Churen9Checker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Churen9Checker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/Churen9Checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,OAAO,cAAe,SAAQ,sBAAsB;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,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAChC,CAAC;CACJ"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
const ChinitsuChecker_1 = require("../normal/ChinitsuChecker");
|
|
6
|
-
class ChurenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
import { ChinitsuChecker } from '../normal/ChinitsuChecker';
|
|
3
|
+
export class ChurenChecker extends YakuCheckerBase {
|
|
7
4
|
yakuName = "九蓮宝燈";
|
|
8
5
|
isSatisfied() {
|
|
9
|
-
const chinitsuChecker = new
|
|
6
|
+
const chinitsuChecker = new ChinitsuChecker(this.context);
|
|
10
7
|
if (!chinitsuChecker.isChinitsu())
|
|
11
8
|
return false;
|
|
12
9
|
if (!this.isMenzen())
|
|
@@ -29,5 +26,4 @@ class ChurenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
29
26
|
return this.isSatisfied();
|
|
30
27
|
}
|
|
31
28
|
}
|
|
32
|
-
exports.ChurenChecker = ChurenChecker;
|
|
33
29
|
//# sourceMappingURL=ChurenChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChurenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ChurenChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChurenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ChurenChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,MAAM,OAAO,aAAc,SAAQ,eAAe;IACpC,QAAQ,GAAW,MAAM,CAAC;IAE1B,WAAW;QACjB,MAAM,eAAe,GAAG,IAAI,eAAe,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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.DaisangenChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class DaisangenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class DaisangenChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "大三元";
|
|
7
4
|
isSatisfied() {
|
|
8
5
|
const { foundTargets, mentsuCount, jantoCount } = this.countTargetBlocks(this.context.block, [32, 33, 34]);
|
|
@@ -11,5 +8,4 @@ class DaisangenChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
11
8
|
return mentsuCount === 3 && jantoCount === 0;
|
|
12
9
|
}
|
|
13
10
|
}
|
|
14
|
-
exports.DaisangenChecker = DaisangenChecker;
|
|
15
11
|
//# sourceMappingURL=DaisangenChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaisangenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/DaisangenChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DaisangenChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/DaisangenChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,OAAO,gBAAiB,SAAQ,eAAe;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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.DaisushiChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class DaisushiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class DaisushiChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "大四喜";
|
|
7
4
|
constructor(context) {
|
|
8
5
|
super(context);
|
|
@@ -16,5 +13,4 @@ class DaisushiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
16
13
|
return mentsuCount === 4 && jantoCount === 0;
|
|
17
14
|
}
|
|
18
15
|
}
|
|
19
|
-
exports.DaisushiChecker = DaisushiChecker;
|
|
20
16
|
//# sourceMappingURL=DaisushiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaisushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/DaisushiChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DaisushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/DaisushiChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,MAAM,OAAO,eAAgB,SAAQ,eAAe;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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ExtendedYakumanChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class ExtendedYakumanChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class ExtendedYakumanChecker extends YakuCheckerBase {
|
|
6
3
|
constructor(context) {
|
|
7
4
|
super(context);
|
|
8
5
|
this.hanMenzen = 26;
|
|
@@ -14,5 +11,4 @@ class ExtendedYakumanChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
14
11
|
return this.calculateMachiCount() === this.requiredMachiCount;
|
|
15
12
|
}
|
|
16
13
|
}
|
|
17
|
-
exports.ExtendedYakumanChecker = ExtendedYakumanChecker;
|
|
18
14
|
//# sourceMappingURL=ExtendedYakumanChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtendedYakumanChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ExtendedYakumanChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtendedYakumanChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ExtendedYakumanChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,OAAgB,sBAAuB,SAAQ,eAAe;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"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const ExtendedYakumanChecker_1 = require("./ExtendedYakumanChecker");
|
|
5
|
-
const KokushiChecker_1 = require("./KokushiChecker");
|
|
6
|
-
class Kokushi13Checker extends ExtendedYakumanChecker_1.ExtendedYakumanChecker {
|
|
1
|
+
import { ExtendedYakumanChecker } from './ExtendedYakumanChecker';
|
|
2
|
+
import { KokushiChecker } from './KokushiChecker';
|
|
3
|
+
export class Kokushi13Checker extends ExtendedYakumanChecker {
|
|
7
4
|
yakuName = "国士無双13面待ち";
|
|
8
5
|
baseChecker;
|
|
9
6
|
requiredMachiCount;
|
|
10
7
|
constructor(context) {
|
|
11
8
|
super(context);
|
|
12
|
-
this.baseChecker = new
|
|
9
|
+
this.baseChecker = new KokushiChecker(context);
|
|
13
10
|
this.requiredMachiCount = 13;
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
exports.Kokushi13Checker = Kokushi13Checker;
|
|
17
13
|
//# sourceMappingURL=Kokushi13Checker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Kokushi13Checker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/Kokushi13Checker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Kokushi13Checker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/Kokushi13Checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,MAAM,OAAO,gBAAiB,SAAQ,sBAAsB;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,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACjC,CAAC;CACJ"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
const MahjongConsts_1 = require("../../MahjongConsts");
|
|
6
|
-
class KokushiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
import { BlockType } from '../../MahjongConsts';
|
|
3
|
+
export class KokushiChecker extends YakuCheckerBase {
|
|
7
4
|
yakuName = "国士無双";
|
|
8
5
|
isSatisfied() {
|
|
9
6
|
if (!this.isMenzen())
|
|
10
7
|
return false;
|
|
11
|
-
return this.context.block.getBlockHais().some(b => b.getType() ===
|
|
8
|
+
return this.context.block.getBlockHais().some(b => b.getType() === BlockType.KOKUSHI);
|
|
12
9
|
}
|
|
13
10
|
isKokushi() {
|
|
14
11
|
return this.isSatisfied();
|
|
15
12
|
}
|
|
16
13
|
}
|
|
17
|
-
exports.KokushiChecker = KokushiChecker;
|
|
18
14
|
//# sourceMappingURL=KokushiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KokushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/KokushiChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KokushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/KokushiChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,OAAO,cAAe,SAAQ,eAAe;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,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1F,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;CACJ"}
|