Explorar el Código

Working on improving refill time

JoostSijm hace 5 años
padre
commit
508731d98c
Se han modificado 2 ficheros con 16 adiciones y 5 borrados
  1. 4 3
      hvs/__main__.py
  2. 12 2
      hvs/app.py

+ 4 - 3
hvs/__main__.py

@@ -5,7 +5,7 @@ import random
 import time
 
 from hvs import scheduler
-from hvs.app import download_resources, need_refill, refill, save_resources, print_resources
+from hvs.app import download_resources, need_refill, max_refill_seconds, refill, save_resources, print_resources
 
 
 def job_check_resources(state_id, capital_id, resource_id):
@@ -13,8 +13,9 @@ def job_check_resources(state_id, capital_id, resource_id):
     regions = download_resources(state_id, resource_id)
     save_resources(state_id, regions, resource_id)
     print_resources(regions)
-    if need_refill(regions):
-        random_time = timedelta(seconds=random.randint(0, 300))
+    if need_refill(regions, 25):
+        max_seconds = max_refill_seconds(regions, 25, 900) 
+        random_time = timedelta(seconds=random.randint(0, max_seconds))
         scheduled_date = datetime.now() + random_time
         job_id = 'refill_{}_{}'.format(capital_id, resource_id)
         print('refill resource: {} at {} ({} minutes)'.format(

+ 12 - 2
hvs/app.py

@@ -70,15 +70,25 @@ def print_resources(regions):
         ))
 
 
-def need_refill(regions):
+def need_refill(regions, limit):
     """Check if refill is needed"""
     for region in regions.values():
         percentage = 100 / region['maximum'] * region['explored']
-        if percentage < 25 and region['limit_left']:
+        if percentage < limit and region['limit_left']:
             return True
     return False
 
 
+def max_refill_seconds(regions, limit, max_time):
+    """Give random seconds for next refill"""
+    lowest_percentage = limit
+    for region in regions.values():
+        percentage = 100 / region['maximum'] * region['explored']
+        if percentage < lowest_percentage:
+            lowest_percentage = percentage 
+    return max_time / limit * lowest_percentage
+
+
 def refill(state_id, capital_id, resource_id):
     """Main function"""
     # Check location