Exemplo n.º 1
0
        private IEnumerator Lob()
        {
            var overrides = new LobOverrides
            {
                From = LobberOrigin
            };

            yield return(StartCoroutine(OptionalLobber.LobCurrency(Currency, Amount, overrides)));

            _lobbing = false;
            OnReward?.Invoke(Currency, Amount);
        }
Exemplo n.º 2
0
        private IEnumerator _Lob(Currency currency, ulong amount, bool spend)
        {
            LobCount++;
            Debug.Log($"Begin Lob: {currency}");

            // Lob to from/to combinations.
            var froms    = CurrencyLobTarget.GetTargets(currency, LobTargetType.From, spend);
            var tos      = CurrencyLobTarget.GetTargets(currency, LobTargetType.To, spend);
            var lobs     = new List <Coroutine>();
            var delayEnd = this.delayEnd;

            foreach (var from in froms)
            {
                foreach (var to in tos)
                {
                    var overrides = new LobOverrides
                    {
                        From           = from.transform,
                        To             = to.transform,
                        OnManyComplete = () => to.onLobsCompleted?.Invoke()
                    };
                    lobs.Add(StartCoroutine(_lobber.LobMany(amount, overrides)));
                    delayEnd = delayEnd.AtLeast(to.delayEnd);
                }
            }

            if (_lobber.From != null && _lobber.To != null)
            {
                lobs.Add(StartCoroutine(_lobber.LobMany(amount)));
            }

            if (delayEnd > 0f)
            {
                yield return(new WaitForSeconds(delayEnd));
            }
            foreach (var coroutine in lobs)
            {
                yield return(coroutine);
            }

            Debug.Log($"Finish Lob: {currency}");
            LobCount--;
        }