public override void OnServerStateEnter() { PhotonNetwork.AddCallbackTarget(this); int multiplier = gameSettings.GetMultiplier(CurrentRoundStatus.IsDealer(TsumoPlayerIndex), players.Count); var netInfo = new NetworkPointInfo { Fu = TsumoPointInfo.Fu, YakuValues = TsumoPointInfo.YakuList.ToArray(), Dora = TsumoPointInfo.Dora, UraDora = TsumoPointInfo.UraDora, RedDora = TsumoPointInfo.RedDora, IsQTJ = TsumoPointInfo.IsQTJ }; var info = new EventMessages.TsumoInfo { TsumoPlayerIndex = TsumoPlayerIndex, TsumoPlayerName = CurrentRoundStatus.GetPlayerName(TsumoPlayerIndex), TsumoHandData = CurrentRoundStatus.HandData(TsumoPlayerIndex), WinningTile = WinningTile, DoraIndicators = MahjongSet.DoraIndicators, UraDoraIndicators = MahjongSet.UraDoraIndicators, IsRichi = CurrentRoundStatus.RichiStatus(TsumoPlayerIndex), TsumoPointInfo = netInfo, TotalPoints = TsumoPointInfo.BasePoint * multiplier }; // send rpc calls ClientBehaviour.Instance.photonView.RPC("RpcTsumo", RpcTarget.AllBufferedViaServer, info); // get point transfers // todo -- tsumo loss related, now there is tsumo loss by default transfers = new List <PointTransfer>(); for (int playerIndex = 0; playerIndex < players.Count; playerIndex++) { if (playerIndex == TsumoPlayerIndex) { continue; } int amount = TsumoPointInfo.BasePoint; if (CurrentRoundStatus.IsDealer(playerIndex)) { amount *= 2; } int extraPoints = CurrentRoundStatus.ExtraPoints; transfers.Add(new PointTransfer { From = playerIndex, To = TsumoPlayerIndex, Amount = amount + extraPoints }); } // richi-sticks-points transfers.Add(new PointTransfer { From = -1, To = TsumoPlayerIndex, Amount = CurrentRoundStatus.RichiSticksPoints }); responds = new bool[players.Count]; // determine server time out serverTimeOut = ServerMaxTimeOut + ServerConstants.ServerTimeBuffer; firstTime = Time.time; }
public PointInfo(NetworkPointInfo netInfo) : this(netInfo.Fu, netInfo.YakuValues, netInfo.IsQTJ, netInfo.Dora, netInfo.UraDora, netInfo.RedDora, netInfo.BeiDora) { }