Пример #1
0
    public long GetRetry(TResource resource, string?bucket)
    {
        long retry = 0;

        lock (_sharedResourceTimes)
        {
            if (_sharedResourceTimes.TryGetValue(resource, out Cached <long> sharedRetry))
            {
                retry = sharedRetry;
            }
        }

        if (bucket is null)
        {
            return(retry);
        }

        var resourceBucket = new ResourceBucket(resource, bucket);

        lock (_userResourceTimes)
        {
            if (_userResourceTimes.TryGetValue(resourceBucket, out Cached <long> userRetry) &&
                retry < userRetry)
            {
                retry = userRetry;
            }
        }

        return(retry);
    }
Пример #2
0
        public void OnSelectTarget(Mobile from, object obj)
        {
            if (!(obj is ResourceBucket))
            {
                from.SendMessage("Vous devriez utiliser un seau adéquat");
                return;
            }

            ResourceBucket bucket = (ResourceBucket)obj;

            if (bucket.MilkType != Milk.None)
            {
                from.SendMessage("Cela ferait un trop curieux mélange");
                return;
            }

            if (bucket.Quantity >= bucket.MaxQuantity)
            {
                from.SendMessage("Votre seau est plein");
                return;
            }

            bucket.ResourceType = BucketLiquid.SugarWater;
            bucket.Quantity    += Utility.Random(1, 5);

            return;
        }
Пример #3
0
 public void SetRetry(TResource resource, string bucket, long retry)
 {
     lock (_userResourceTimes)
     {
         var resourceBucket = new ResourceBucket(resource, bucket);
         if (!_userResourceTimes.TryGetValue(resourceBucket, out Cached <long> sharedRetryAfter))
         {
             _userResourceTimes.Add(resourceBucket, new Cached <long>(retry, DateTimeOffset.UtcNow));
         }
         else if (sharedRetryAfter <= retry)
         {
             _userResourceTimes[resourceBucket] = new Cached <long>(retry, DateTimeOffset.UtcNow);
         }
     }
 }