diff --git a/module/os_handler/os_status.py b/module/os_handler/os_status.py index 92a186b86..b42e75903 100644 --- a/module/os_handler/os_status.py +++ b/module/os_handler/os_status.py @@ -61,9 +61,13 @@ class OSStatus(UI): tasks = SelectedGrids(self.config.pending_task + self.config.waiting_task).filter(func).sort('next_run') return tasks.first_or_none() + @property + def bought_all_yellow_coin_items_in_port_shop(self) -> bool: + return self.config.cross_get("OpsiShop.Storage.Storage.BoughtAllYellowCoinItems", False) + @cached_property def yellow_coins_preserve(self): - if self.is_cl1_enabled: + if self.is_cl1_enabled and not self.bought_all_yellow_coin_items_in_port_shop: return 100000 else: return 35000 diff --git a/module/os_shop/shop.py b/module/os_shop/shop.py index 161aff586..a9d123776 100644 --- a/module/os_shop/shop.py +++ b/module/os_shop/shop.py @@ -210,11 +210,19 @@ class OSShop(PortShop, AkashiShop): items = self.scan_all() if not len(items): logger.warning('Empty OS shop.') + self.config.cross_set("OpsiShop.Storage.Storage.BoughtAllYellowCoinItems", True) return False items = self.items_filter_in_os_shop(items) if not len(items): logger.warning('Nothing to buy.') + self.config.cross_set("OpsiShop.Storage.Storage.BoughtAllYellowCoinItems", True) return False + if all(item.cost == 'PurpleCoins' for item in items): + logger.info("All yellow coin items are bought.") + self.config.cross_set("OpsiShop.Storage.Storage.BoughtAllYellowCoinItems", True) + else: + logger.info("There are still yellow coin items to buy.") + self.config.cross_set("OpsiShop.Storage.Storage.BoughtAllYellowCoinItems", False) self.os_shop_get_coins() skip_get_coins = True items.reverse()