From ce768668b4aaea5019b870f8d96224142c781ceb Mon Sep 17 00:00:00 2001 From: Ryan Sullenberger Date: Wed, 4 Feb 2026 19:41:02 -0500 Subject: [PATCH 1/2] Add Suu Kantsu (Four Kans) yakuman - Add SuuKantsu variant to Yaku enum as a yakuman (13 han) - Add detection logic: checks for 4 kans in the hand - SuuKantsu can be achieved with open kans (valid when open) - Add yaku_name() entries in WASM and CLI - Add i18n mapping for web frontend (translations already existed) - Add comprehensive tests: - test_suu_kantsu: 4 closed kans - test_suu_kantsu_open: mixed open/closed kans - test_san_kantsu_not_suu_kantsu: verify 3 kans gives San Kantsu, not Suu Kantsu Fixes missing yakuman that was discovered during localization work. --- crates/agari-core/src/main.rs | 1 + crates/agari-core/src/yaku.rs | 92 +++++++++++++++++++++++++++++++++++ crates/agari-wasm/src/lib.rs | 1 + web/src/lib/i18n/index.ts | 1 + 4 files changed, 95 insertions(+) diff --git a/crates/agari-core/src/main.rs b/crates/agari-core/src/main.rs index bb01016..c1f0d35 100644 --- a/crates/agari-core/src/main.rs +++ b/crates/agari-core/src/main.rs @@ -1423,6 +1423,7 @@ fn yaku_name(yaku: &Yaku) -> &'static str { Yaku::Chinroutou => "Chinroutou (All Terminals)", Yaku::Ryuuiisou => "Ryuuiisou (All Green)", Yaku::ChuurenPoutou => "Chuuren Poutou (Nine Gates)", + Yaku::SuuKantsu => "Suu Kantsu (Four Kans)", // Double Yakuman Yaku::Kokushi13Wait => "Kokushi Juusanmen (Kokushi Musou 13-wait)", diff --git a/crates/agari-core/src/yaku.rs b/crates/agari-core/src/yaku.rs index 02d1068..bdeba9c 100644 --- a/crates/agari-core/src/yaku.rs +++ b/crates/agari-core/src/yaku.rs @@ -58,6 +58,7 @@ pub enum Yaku { Chinroutou, // All terminals Ryuuiisou, // All green ChuurenPoutou, // Nine gates + SuuKantsu, // Four kans (quads) // === Double Yakuman === Kokushi13Wait, // Kokushi with 13-sided wait @@ -116,6 +117,7 @@ impl Yaku { Yaku::Chinroutou => 13, Yaku::Ryuuiisou => 13, Yaku::ChuurenPoutou => 13, + Yaku::SuuKantsu => 13, // Double Yakuman (26 han equivalent) Yaku::Kokushi13Wait => 26, @@ -174,6 +176,7 @@ impl Yaku { Yaku::Tsuuiisou => Some(13), Yaku::Chinroutou => Some(13), Yaku::Ryuuiisou => Some(13), + Yaku::SuuKantsu => Some(13), } } @@ -200,6 +203,7 @@ impl Yaku { | Yaku::Ryuuiisou | Yaku::ChuurenPoutou | Yaku::JunseiChuurenPoutou + | Yaku::SuuKantsu ) } } @@ -314,6 +318,17 @@ pub fn detect_yaku_with_context( if !is_open && let Some(yaku) = check_chuuren_poutou(counts, context) { yaku_list.push(yaku); } + + // Suu Kantsu (Four Kans) + { + let kan_count = melds + .iter() + .filter(|m| matches!(m, Meld::Kan(_, _))) + .count(); + if kan_count == 4 { + yaku_list.push(Yaku::SuuKantsu); + } + } } } @@ -1712,4 +1727,81 @@ mod tests { // Sanankou should NOT be awarded - only 2 concealed triplets remain assert!(!has_yaku(&results_ron, Yaku::SanAnkou)); } + + #[test] + fn test_suu_kantsu() { + use crate::hand::decompose_hand_with_melds; + use crate::parse::parse_hand_with_aka; + + // Suu Kantsu (Four Kans) - yakuman + // Hand with four closed kans: [1111m] [2222m] [3333m] [4444m] 55m + // Total tiles: 4*4 + 2 = 18 tiles + let parsed = parse_hand_with_aka("[1111m][2222m][3333m][4444m]55m").unwrap(); + let counts = to_counts(&parsed.tiles); + let called_melds: Vec<_> = parsed + .called_melds + .iter() + .map(|cm| cm.meld.clone()) + .collect(); + + let structures = decompose_hand_with_melds(&counts, &called_melds); + assert!(!structures.is_empty()); + + let context = GameContext::new(WinType::Tsumo, Honor::East, Honor::East); + let result = detect_yaku_with_context(&structures[0], &counts, &context); + + assert!(result.yaku_list.contains(&Yaku::SuuKantsu)); + assert!(result.is_yakuman); + } + + #[test] + fn test_suu_kantsu_open() { + use crate::hand::decompose_hand_with_melds; + use crate::parse::parse_hand_with_aka; + + // Suu Kantsu can be achieved with open kans + // Hand with mixed open/closed kans: (1111m) (2222p) [3333s] [4444s] 55z + let parsed = parse_hand_with_aka("(1111m)(2222p)[3333s][4444s]55z").unwrap(); + let counts = to_counts(&parsed.tiles); + let called_melds: Vec<_> = parsed + .called_melds + .iter() + .map(|cm| cm.meld.clone()) + .collect(); + + let structures = decompose_hand_with_melds(&counts, &called_melds); + assert!(!structures.is_empty()); + + let context = GameContext::new(WinType::Tsumo, Honor::East, Honor::East).open(); + let result = detect_yaku_with_context(&structures[0], &counts, &context); + + assert!(result.yaku_list.contains(&Yaku::SuuKantsu)); + assert!(result.is_yakuman); + } + + #[test] + fn test_san_kantsu_not_suu_kantsu() { + use crate::hand::decompose_hand_with_melds; + use crate::parse::parse_hand_with_aka; + + // Three kans should give San Kantsu (2 han), not Suu Kantsu (yakuman) + // Hand: [1111m] [2222m] [3333m] 456s 77z + let parsed = parse_hand_with_aka("[1111m][2222m][3333m]456s77z").unwrap(); + let counts = to_counts(&parsed.tiles); + let called_melds: Vec<_> = parsed + .called_melds + .iter() + .map(|cm| cm.meld.clone()) + .collect(); + + let structures = decompose_hand_with_melds(&counts, &called_melds); + assert!(!structures.is_empty()); + + let context = GameContext::new(WinType::Tsumo, Honor::East, Honor::East); + let result = detect_yaku_with_context(&structures[0], &counts, &context); + + assert!(result.yaku_list.contains(&Yaku::SanKantsu)); + assert!(!result.yaku_list.contains(&Yaku::SuuKantsu)); + assert!(!result.is_yakuman); + } } diff --git a/crates/agari-wasm/src/lib.rs b/crates/agari-wasm/src/lib.rs index 546dea9..474da0e 100644 --- a/crates/agari-wasm/src/lib.rs +++ b/crates/agari-wasm/src/lib.rs @@ -631,6 +631,7 @@ fn yaku_name(yaku: &Yaku) -> String { Yaku::Chinroutou => "Chinroutou".to_string(), Yaku::Ryuuiisou => "Ryuuiisou".to_string(), Yaku::ChuurenPoutou => "Chuuren Poutou".to_string(), + Yaku::SuuKantsu => "Suu Kantsu".to_string(), Yaku::Kokushi13Wait => "Kokushi 13-Wait".to_string(), Yaku::SuuankouTanki => "Suuankou Tanki".to_string(), Yaku::JunseiChuurenPoutou => "Junsei Chuuren Poutou".to_string(), diff --git a/web/src/lib/i18n/index.ts b/web/src/lib/i18n/index.ts index 153e0fb..03ddb3c 100644 --- a/web/src/lib/i18n/index.ts +++ b/web/src/lib/i18n/index.ts @@ -55,6 +55,7 @@ export const yakuNameMap: Record = { Chinroutou: "yakuChinroutou", Ryuuiisou: "yakuRyuuiisou", "Chuuren Poutou": "yakuChuurenPoutou", + "Suu Kantsu": "yakuSuuKantsu", "Kokushi 13-Wait": "yakuKokushi13Wait", "Suuankou Tanki": "yakuSuuankouTanki", "Junsei Chuuren Poutou": "yakuJunseiChuurenPoutou", From 072eb0651f06ef1b0c58b88f31ad0d441610a42d Mon Sep 17 00:00:00 2001 From: Ryan Sullenberger Date: Wed, 4 Feb 2026 19:47:18 -0500 Subject: [PATCH 2/2] Rebuild WASM with Suu Kantsu support --- web/src/lib/wasm/agari_wasm_bg.wasm | Bin 183960 -> 184713 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/web/src/lib/wasm/agari_wasm_bg.wasm b/web/src/lib/wasm/agari_wasm_bg.wasm index 41737d3cbd482c680dd886418e9021c572039b07..d07443c1426bb1b1612a4596992b7e133837cc77 100644 GIT binary patch delta 33000 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 V(I~DuTmsYPD}gz|?5*PH{{w+hGsyq|