예제 #1
0
 public void OpenOneGift(FacebookGift gift)
 {
     if (!GiftOpenBlocked.Value)
     {
         OpenGift(gift);
     }
 }
예제 #2
0
    public void Init(FacebookGift gift)
    {
        Gift = gift;
        string    fileName  = Gift.FromId + ".png";
        Texture2D texture2D = PngTexture.LoadPNGAsTexture2D(fileName, 120, 120);

        if (texture2D != null)
        {
            Material material = new Material(m_friendImage.material);
            material.SetTexture("_MainTex", texture2D);
            m_friendImage.material = material;
        }
        if (PersistentSingleton <FacebookAPIService> .Instance.FBPlayers.ContainsKey(Gift.FromId))
        {
            m_friendName.text = PersistentSingleton <FacebookAPIService> .Instance.FBPlayers[Gift.FromId].Name;
        }
        (from g in Singleton <FacebookRunner> .Instance.GiftConsuming
         where g.FromId == Gift.FromId
         select g).Subscribe(delegate
        {
            m_button.SetActive(value: false);
        }).AddTo(this);
        (from g in Singleton <FacebookRunner> .Instance.GiftConsumeFailed
         where g.FromId == Gift.FromId
         select g).Subscribe(delegate
        {
            m_button.SetActive(value: true);
        }).AddTo(this);
    }
예제 #3
0
 public void RemoveGift(FacebookGift gift)
 {
     for (int num = base.transform.childCount - 1; num >= 0; num--)
     {
         Transform child = base.transform.GetChild(num);
         if (child.gameObject.GetComponent <UIOpenFacebookGift>().Gift.GiftId == gift.GiftId)
         {
             UnityEngine.Object.DestroyImmediate(child.gameObject);
         }
     }
 }
예제 #4
0
 private void OpenGiftCallback(FacebookGift gift, bool ok)
 {
     if (ok)
     {
         m_allGifts.RemoveAll((FacebookGift g) => g.FromId == gift.FromId);
         NumUnopenedGifts.Value = UniqueGifts().Count;
         GiftConsumeSuccess.OnNext(gift);
         if (m_allGifts.Count == 0)
         {
             GetAllRequests();
         }
     }
     else
     {
         GiftConsumeFailed.OnNext(gift);
     }
 }
예제 #5
0
    private void ConsumeGiftsForPlayer(FacebookGift oneGift)
    {
        int  counter             = 0;
        bool consumeOk           = true;
        List <FacebookGift> list = m_allGifts.FindAll((FacebookGift g) => g.FromId == oneGift.FromId);

        foreach (FacebookGift item in list)
        {
            counter++;
            PersistentSingleton <FacebookAPIService> .Instance.ConsumeGift(item.GiftId, delegate(IGraphResult res)
            {
                counter--;
                consumeOk &= WasGiftConsumed(res);
                if (counter == 0)
                {
                    OpenGiftCallback(oneGift, consumeOk);
                }
            });
        }
    }
예제 #6
0
 private void OpenGift(FacebookGift gift)
 {
     GiftConsuming.OnNext(gift);
     ConsumeGiftsForPlayer(gift);
 }
예제 #7
0
 private void GiveGift(FacebookGift gift)
 {
     GiveRandomReward(gift.FromId);
 }