mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-22 02:15:56 +02:00
wip
This commit is contained in:
@@ -365,8 +365,9 @@ export class MasterGameEngine {
|
||||
const horaSets = Utils.getHoraSets(this.getHandTilesOf(house).concat(tile));
|
||||
if (horaSets.length === 0) return false; // 完成形じゃない
|
||||
|
||||
const yakus = YAKU_DEFINITIONS.filter(yaku => yaku.calc(this.state, { tsumoTile: null, ronTile: tile }));
|
||||
if (yakus.length === 0) return false; // 役がない
|
||||
// TODO
|
||||
//const yakus = YAKU_DEFINITIONS.filter(yaku => yaku.calc(this.state, { tsumoTile: null, ronTile: tile }));
|
||||
//if (yakus.length === 0) return false; // 役がない
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -494,6 +495,9 @@ export type PlayerState = {
|
||||
latestDahaiedTile: Tile | null;
|
||||
turn: House | null;
|
||||
canPonSource: House | null;
|
||||
canCiiSource: House | null;
|
||||
canKanSource: House | null;
|
||||
canRonSource: House | null;
|
||||
canCiiTo: House | null;
|
||||
canKanTo: House | null;
|
||||
canRonTo: House | null;
|
||||
@@ -596,14 +600,34 @@ export class PlayerGameEngine {
|
||||
|
||||
if (house === this.myHouse) {
|
||||
} else {
|
||||
const canRon = Utils.getHoraSets(this.myHandTiles.concat(tile)).length > 0;
|
||||
const canPon = this.myHandTiles.filter(t => t === tile).length === 2;
|
||||
|
||||
// TODO: canCii
|
||||
|
||||
if (canRon) this.state.canRonSource = house;
|
||||
if (canPon) this.state.canPonSource = house;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ロンします
|
||||
* @param source 牌を捨てた人
|
||||
* @param target ロンした人
|
||||
*/
|
||||
public op_ron(source: House, target: House) {
|
||||
this.state.canRonSource = null;
|
||||
|
||||
const lastTile = this.getHoTilesOf(source).pop();
|
||||
if (lastTile == null) throw new PlayerGameEngine.InvalidOperationError();
|
||||
if (target === this.myHouse) {
|
||||
this.myHandTiles.push(lastTile);
|
||||
} else {
|
||||
this.getHandTilesOf(target).push(null);
|
||||
}
|
||||
this.state.turn = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* ポンします
|
||||
* @param source 牌を捨てた人
|
||||
@@ -627,6 +651,7 @@ export class PlayerGameEngine {
|
||||
}
|
||||
|
||||
public op_nop() {
|
||||
this.state.canRonSource = null;
|
||||
this.state.canPonSource = null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user