/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System;
using System.Collections.Generic;
using UnityEngine;
internal class TournamentsMenu : MenuBase
{
private string score = string.Empty;
private string tournamentID = string.Empty;
protected override void GetGui()
{
bool enabled = GUI.enabled;
GUI.enabled = enabled && FB.IsLoggedIn;
if (this.Button("Get Tournament"))
{
FB.Mobile.GetTournaments(this.GetTournamentsHandleResult);
}
GUILayout.Space(24);
this.LabelAndTextField("Score:", ref this.score);
this.LabelAndTextField("TournamentID:", ref this.tournamentID);
if (this.Button("Post Score to Tournament"))
{
FB.Mobile.UpdateTournament(tournamentID, int.Parse(score), this.HandleResult);
}
if (this.Button("Update Tournament and Share"))
{
FB.Mobile.UpdateAndShareTournament(tournamentID, int.Parse(score), this.HandleResult);
}
if (this.Button("Create Tournament and Share"))
{
FB.Mobile.CreateAndShareTournament(
int.Parse(score),
"Unity Tournament",
TournamentSortOrder.HigherIsBetter,
TournamentScoreFormat.Numeric,
DateTime.UtcNow.AddHours(2),
"Unity SDK Tournament",
this.HandleResult
);
}
GUI.enabled = enabled;
}
private void GetTournamentsHandleResult(IGetTournamentsResult result)
{
LogView.AddLog("Getting first tournament id...");
if (result == null)
{
this.tournamentID = "Empty result";
LogView.AddLog("NULL result");
return;
}
if (result.ResultDictionary != null)
{
string dic;
result.ResultDictionary.TryGetValue("0", out dic);
if (dic != null)
{
LogView.AddLog("ResultDictionary");
TournamentResult tournament = new TournamentResult(new ResultContainer(dic));
if (tournament != null)
{
LogView.AddLog("Tournament info ready");
this.tournamentID = tournament.TournamentId;
LogView.AddLog("First id: " + this.tournamentID + " / " + tournament.TournamentTitle);
}
else
{
LogView.AddLog("No tournament info");
}
}
else
{
LogView.AddLog("No TryGetValue data");
}
}
else
{
this.tournamentID = "Empty result";
LogView.AddLog("Empty result");
}
this.HandleResult(result);
}
}
}