Ejemplo n.º 1
0
 public void UnregisterAcquireHook(AcquireEvent methodObject)
 {
     if (lockAcquireEvents.Contains(methodObject))
     {
         lockAcquireEvents.Remove(methodObject);
     }
 }
Ejemplo n.º 2
0
        public IEnumerator Run(
            Client client,
            GameSession session,
            string inventoryNamespaceName,
            EzInventoryModel inventoryModel,
            List <EzItemModel> itemModels,
            GetInventoryEvent onGetInventory,
            AcquireEvent onAcquire,
            ConsumeEvent onConsume,
            ErrorEvent onError
            )
        {
            if (_watching)
            {
                throw new InvalidOperationException("already started");
            }

            _watching = true;

            _client  = client;
            _session = session;

            _inventoryNamespaceName = inventoryNamespaceName;
            _inventoryModel         = inventoryModel;
            _itemModels             = itemModels;

            _onGetInventory = onGetInventory;
            _onAcquire      = onAcquire;
            _onConsume      = onConsume;
            _onError        = onError;

            onAcquire.AddListener(AcquireAction);
            onConsume.AddListener(ConsumeAction);

            yield return(Refresh());
        }
Ejemplo n.º 3
0
 public void RegisterAcquireHook(AcquireEvent methodObject)
 {
     lockAcquireEvents.Add(methodObject);
 }
Ejemplo n.º 4
0
 public void UnregisterAcquireHook(AcquireEvent methodObject)
 {
     if (lockAcquireEvents.Contains(methodObject))
     {
         lockAcquireEvents.Remove(methodObject);
     }
 }
Ejemplo n.º 5
0
 public void RegisterAcquireHook(AcquireEvent methodObject)
 {
     lockAcquireEvents.Add(methodObject);
 }
Ejemplo n.º 6
0
        public static IEnumerator Acquire(
            GameSession session,
            string identifierAcquireItemClientId,
            string identifierAcquireItemClientSecret,
            string inventoryNamespaceName,
            string inventoryModelName,
            string itemModelName,
            int value,
            AcquireEvent onAcquire,
            ErrorEvent onError
            )
        {
            // このコードは実際にアプリケーションで使用するべきではありません。
            // アプリ内から課金通貨の残高を加算できるようにすることは、事業に多大な悪い影響を及ぼす可能性があります。
            var restSession = new Gs2RestSession(
                new BasicGs2Credential(
                    identifierAcquireItemClientId,
                    identifierAcquireItemClientSecret
                    )
                );
            var error = false;

            yield return(restSession.Open(
                             r =>
            {
                if (r.Error != null)
                {
                    onError.Invoke(r.Error);
                    error = true;
                }
            }
                             ));

            if (error)
            {
                yield return(restSession.Close(() => { }));

                yield break;
            }

            var restClient = new Gs2InventoryRestClient(
                restSession
                );

            yield return(restClient.AcquireItemSetByUserId(
                             new AcquireItemSetByUserIdRequest()
                             .WithNamespaceName(inventoryNamespaceName)
                             .WithUserId(session.AccessToken.userId)
                             .WithInventoryName(inventoryModelName)
                             .WithItemName(itemModelName)
                             .WithAcquireCount(value),
                             r =>
            {
                if (r.Error != null)
                {
                    onError.Invoke(r.Error);
                    error = true;
                }
                else
                {
                    onAcquire.Invoke(
                        new EzInventory(r.Result.inventory),
                        r.Result.items.Select(item => new EzItemSet(item)).ToList(),
                        value
                        );
                }
            }
                             ));

            yield return(restSession.Close(() => { }));
        }