game: name: 南昌麻将 type: mahjong engine_type: mahjong players: { min: 4, max: 4 } requires: - deck.generator_mahjong - meldsolver.standard_win - meldsolver.seven_pairs - meldsolver.wildcard - meldsolver.all_orphans - phase.mahjong_turn - phase.priority_arbitration - scoring.fan_exclusion deck: generator: mahjong include_honors: true include_flowers: false total: 136 deal: cards_per_player: 13 dealer_extra: 1 # 南昌麻将的精(癞子)系统:骰子翻牌定精 # 翻到X,则X+1为正精,X+2为副精。字牌按序循环。 wildcard_rules: type: random meld_mode: any random_count: 2 wildcard_encoding: 50 behavior: substitute fan_calculation_policy: optimal scoring: per_wildcard_in_win: 2 independent_bonus: true fan_types: # 南昌麻将基础番型(无清一色/混一色/带幺九——这些不是南昌规则) - { name: 对对胡, base_fan: 2 } # 碰碰胡 - { name: 暗七对, base_fan: 4 } # 七对 # 事件番型 - { name: 杠上开花, base_fan: 1, excludes: [海底捞月] } - { name: 海底捞月, base_fan: 1 } - { name: 抢杠胡, base_fan: 1 } - { name: 天胡, base_fan: 10 } - { name: 地胡, base_fan: 5 } # 癞子相关 - { name: 癞子胡, base_fan: 1, condition: hand_contains_wildcard } # 兜底 - { name: 鸡胡, base_fan: 1 } fan_stacking: add max_fan: 999 phases: - name: deal type: auto action: deal_cards next: play - name: play type: mahjong_turn turn_order: counter_clockwise sub_phases: draw: type: auto action: draw_card on_empty_deck: exhausted self_action: options: - { action: discard } - { action: an_kong } - { action: bu_kong, condition: has_punged_pair } - { action: win, condition: can_win_tumo } others_reaction: options: - { action: chi, priority: 1, condition: can_chi } - { action: pung, priority: 2, condition: has_two_same } - { action: ming_kong, priority: 3, condition: has_three_same } - { action: win, priority: 4, condition: can_win } - { action: pass, priority: 0 } priority_policy: highest_wins on_win: game_over end_conditions: - { type: player_wins, action: settle } - { type: deck_exhausted, action: draw_game } - name: settle type: auto action: calculate_scores next: null scoring: mode: fan_table max_cap: 999 self_draw_multiplier: 1 # 自摸每家付1倍 discard_win_multiplier: 1 # 放炮付1倍(南昌麻将放炮不翻倍) dealer_multiplier: 2 # 庄家输赢×2