public void CreateQuickMatch(uint minOpponents, uint maxOpponents, uint variant, Action <bool, TurnBasedMatch> callback) { callback = Callbacks.AsOnGameThreadCallback(callback); using (var configBuilder = TurnBasedMatchConfigBuilder.Create()) { configBuilder.SetVariant(variant); configBuilder.SetMinimumAutomatchingPlayers(minOpponents); configBuilder.SetMaximumAutomatchingPlayers(maxOpponents); using (var config = configBuilder.Build()) { mTurnBasedManager.CreateMatch(config, BridgeMatchToUserCallback(callback)); } } }
/// <summary> /// Starts a game with randomly selected opponent(s) using exclusiveBitMask. /// No UI will be shown. /// </summary> /// <param name="minOpponents">Minimum number opponents, not counting the current /// player -- so for a 2-player game, use 1).</param> /// <param name="maxOpponents">Max opponents, not counting the current player.</param> /// <param name="variant">Variant. Use 0 for default.</param> /// <param name="exclusiveBitmask">The bitmask used to match players. The /// xor operation of all the bitmasks must be 0 to match players.</param> /// <param name="callback">Callback. Called when match setup is complete or fails. /// If it succeeds, will be called with (true, match); if it fails, will be /// called with (false, null).</param> public void CreateQuickMatch(uint minOpponents, uint maxOpponents, uint variant, ulong exclusiveBitmask, Action <bool, TurnBasedMatch> callback) { callback = Callbacks.AsOnGameThreadCallback(callback); using (var configBuilder = TurnBasedMatchConfigBuilder.Create()) { configBuilder.SetVariant(variant) .SetMinimumAutomatchingPlayers(minOpponents) .SetMaximumAutomatchingPlayers(maxOpponents) .SetExclusiveBitMask(exclusiveBitmask); using (var config = configBuilder.Build()) { mTurnBasedManager.CreateMatch(config, BridgeMatchToUserCallback( (status, match) => callback(status == UIStatus.Valid, match))); } } }
public void CreateWithInvitationScreen(uint minOpponents, uint maxOpponents, uint variant, Action <bool, TurnBasedMatch> callback) { callback = Callbacks.AsOnGameThreadCallback(callback); mTurnBasedManager.ShowPlayerSelectUI(minOpponents, maxOpponents, true, result => { if (result.Status() != GooglePlayGames.Native.Cwrapper.CommonErrorStatus.UIStatus.VALID) { callback(false, null); } using (var configBuilder = TurnBasedMatchConfigBuilder.Create()) { configBuilder.PopulateFromUIResponse(result); using (var config = configBuilder.Build()) { mTurnBasedManager.CreateMatch(config, BridgeMatchToUserCallback(callback)); } } }); }