From 5dbb5c86d420bae508860025013a10fa020b2711 Mon Sep 17 00:00:00 2001 From: egut125 Date: Thu, 30 Dec 2021 23:37:41 -0500 Subject: [PATCH 1/5] only log item on keep of item uiManager now knows game_stats keep item now logs items pickit --- src/bot.py | 2 +- src/game_stats.py | 2 +- src/item/pickit.py | 1 - src/ui/ui_manager.py | 6 +++++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bot.py b/src/bot.py index cbb685e..7586958 100644 --- a/src/bot.py +++ b/src/bot.py @@ -43,7 +43,7 @@ class Bot: self._config = Config() self._template_finder = TemplateFinder(self._screen) self._item_finder = ItemFinder(self._config) - self._ui_manager = UiManager(self._screen, self._template_finder) + self._ui_manager = UiManager(self._screen, self._template_finder, self._game_stats) self._belt_manager = BeltManager(self._screen, self._template_finder) self._pather = Pather(self._screen, self._template_finder) self._pickit = PickIt(self._screen, self._item_finder, self._ui_manager, self._belt_manager, self._game_stats) diff --git a/src/game_stats.py b/src/game_stats.py index f2ec9e2..f1e79a0 100644 --- a/src/game_stats.py +++ b/src/game_stats.py @@ -52,7 +52,7 @@ class GameStats: if self._location not in self._location_stats: self._location_stats[self._location] = { "items": [], "deaths": 0, "chickens": 0, "merc_deaths": 0, "failed_runs": 0 } - def log_item_pickup(self, item_name: str, send_message: bool): + def log_item_keep(self, item_name: str, send_message: bool): filtered_items = ["_potion", "misc_gold"] if self._location is not None and not any(substring in item_name for substring in filtered_items): self._location_stats[self._location]["items"].append(item_name) diff --git a/src/item/pickit.py b/src/item/pickit.py index 31a564d..12c79ac 100644 --- a/src/item/pickit.py +++ b/src/item/pickit.py @@ -130,7 +130,6 @@ class PickIt: # send log to discord if found_items and closest_item.name not in picked_up_items: Logger.info(f"Picking up: {closest_item.name} ({closest_item.score*100:.1f}% confidence)") - self._game_stats.log_item_pickup(closest_item.name, self._config.items[closest_item.name].pickit_type == 2) picked_up_items.append(closest_item.name) else: char.pre_move() diff --git a/src/ui/ui_manager.py b/src/ui/ui_manager.py index c2bd894..cbba396 100644 --- a/src/ui/ui_manager.py +++ b/src/ui/ui_manager.py @@ -16,15 +16,17 @@ from item import ItemFinder from template_finder import TemplateFinder from messenger import Messenger +from game_stats import GameStats class UiManager(): """Everything that is clicking on some static 2D UI or is checking anything in regard to it should be placed here.""" - def __init__(self, screen: Screen, template_finder: TemplateFinder): + def __init__(self, screen: Screen, template_finder: TemplateFinder, game_stats: GameStats = None): self._config = Config() self._template_finder = template_finder self._messenger = Messenger() + self._game_stats = game_stats self._screen = screen self._curr_stash = {"items": 0, "gold": 0} #0: personal, 1: shared1, 2: shared2, 3: shared3 @@ -267,6 +269,7 @@ class UiManager(): exclude_props = self._config.items[x.name].exclude if not (include_props or exclude_props): Logger.debug(f"{x.name}: Stashing") + self._game_stats.log_item_keep(x.name, self._config.items[x.name].pickit_type == 2, "Stashed") filtered_list.append(x) continue include = True @@ -316,6 +319,7 @@ class UiManager(): break if include and not exclude: Logger.debug(f"{x.name}: Stashing. Required {include_logic_type}({include_props})={include}, exclude {exclude_logic_type}({exclude_props})={exclude}") + self._game_stats.log_item_keep(x.name, self._config.items[x.name].pickit_type == 2, "Stashed") filtered_list.append(x) return len(filtered_list) > 0 From 430b6f53940aedcb8b70a7a8480c5353459280e4 Mon Sep 17 00:00:00 2001 From: egut125 Date: Thu, 30 Dec 2021 23:52:09 -0500 Subject: [PATCH 2/5] Forgot the test name change --- src/game_stats.py | 2 +- test/game_stats_test.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/game_stats.py b/src/game_stats.py index f1e79a0..c8bb63b 100644 --- a/src/game_stats.py +++ b/src/game_stats.py @@ -184,5 +184,5 @@ class GameStats: if __name__ == "__main__": game_stats = GameStats() - game_stats.log_item_pickup("rune_12", True) + game_stats.log_item_keep("rune_12", True) game_stats._save_stats_to_file() diff --git a/test/game_stats_test.py b/test/game_stats_test.py index 4f27429..32a6b25 100644 --- a/test/game_stats_test.py +++ b/test/game_stats_test.py @@ -16,10 +16,10 @@ class TestGameStats: ("some_potion", False), ("super_healing_potion", False), ]) - def test_log_item_pickup(self, item_name: str, item_should_be_added: bool): + def test_log_item_keep(self, item_name: str, item_should_be_added: bool): self.game_stats.update_location("test_location") previous_item_count = len(self.game_stats._location_stats["test_location"]["items"]) - self.game_stats.log_item_pickup(item_name, send_message=False) + self.game_stats.log_item_keep(item_name, send_message=False) new_item_count = len(self.game_stats._location_stats["test_location"]["items"]) item_was_added = previous_item_count < new_item_count assert(item_was_added == item_should_be_added) From d4de72b285a0ecd4b76986deca213cac5d84ed6e Mon Sep 17 00:00:00 2001 From: egut125 Date: Fri, 31 Dec 2021 00:02:05 -0500 Subject: [PATCH 3/5] Left in a removed param... --- src/ui/ui_manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ui/ui_manager.py b/src/ui/ui_manager.py index cbba396..52fa451 100644 --- a/src/ui/ui_manager.py +++ b/src/ui/ui_manager.py @@ -269,7 +269,7 @@ class UiManager(): exclude_props = self._config.items[x.name].exclude if not (include_props or exclude_props): Logger.debug(f"{x.name}: Stashing") - self._game_stats.log_item_keep(x.name, self._config.items[x.name].pickit_type == 2, "Stashed") + self._game_stats.log_item_keep(x.name, self._config.items[x.name].pickit_type == 2) filtered_list.append(x) continue include = True @@ -319,7 +319,7 @@ class UiManager(): break if include and not exclude: Logger.debug(f"{x.name}: Stashing. Required {include_logic_type}({include_props})={include}, exclude {exclude_logic_type}({exclude_props})={exclude}") - self._game_stats.log_item_keep(x.name, self._config.items[x.name].pickit_type == 2, "Stashed") + self._game_stats.log_item_keep(x.name, self._config.items[x.name].pickit_type == 2) filtered_list.append(x) return len(filtered_list) > 0 From 96bc1ef7cb4661d383935297d804126eb66a4bc1 Mon Sep 17 00:00:00 2001 From: egut125 Date: Sat, 1 Jan 2022 10:47:57 -0500 Subject: [PATCH 4/5] Removing Game_stats from Pickit --- src/item/pickit.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/item/pickit.py b/src/item/pickit.py index 12c79ac..300981f 100644 --- a/src/item/pickit.py +++ b/src/item/pickit.py @@ -6,7 +6,6 @@ from utils.custom_mouse import mouse from config import Config from logger import Logger from screen import Screen -from game_stats import GameStats from item import ItemFinder, Item from ui import UiManager from ui import BeltManager @@ -14,12 +13,11 @@ from char import IChar class PickIt: - def __init__(self, screen: Screen, item_finder: ItemFinder, ui_manager: UiManager, belt_manager: BeltManager, game_stats: GameStats = None): + def __init__(self, screen: Screen, item_finder: ItemFinder, ui_manager: UiManager, belt_manager: BeltManager): self._item_finder = item_finder self._screen = screen self._belt_manager = belt_manager self._ui_manager = ui_manager - self._game_stats = game_stats self._config = Config() self._last_closest_item: Item = None @@ -152,13 +150,11 @@ if __name__ == "__main__": from ui import UiManager from template_finder import TemplateFinder from pather import Pather - from game_stats import GameStats import keyboard keyboard.add_hotkey('f12', lambda: Logger.info('Force Exit (f12)') or os._exit(1)) keyboard.wait("f11") config = Config() - game_states = GameStats() screen = Screen(config.general["monitor"]) t_finder = TemplateFinder(screen) ui_manager = UiManager(screen, t_finder) @@ -167,5 +163,5 @@ if __name__ == "__main__": pather = Pather(screen, t_finder) item_finder = ItemFinder(config) char = Hammerdin(config.hammerdin, config.char, screen, t_finder, ui_manager, pather) - pickit = PickIt(screen, item_finder, ui_manager, belt_manager, game_states) + pickit = PickIt(screen, item_finder, ui_manager, belt_manager) print(pickit.pick_up_items(char)) From e66661c3c8ff486d97ed23523c028947e82941c1 Mon Sep 17 00:00:00 2001 From: egut125 Date: Sat, 1 Jan 2022 14:32:19 -0500 Subject: [PATCH 5/5] maye last removal? Probably not --- src/bot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bot.py b/src/bot.py index 7586958..0cb2781 100644 --- a/src/bot.py +++ b/src/bot.py @@ -46,7 +46,7 @@ class Bot: self._ui_manager = UiManager(self._screen, self._template_finder, self._game_stats) self._belt_manager = BeltManager(self._screen, self._template_finder) self._pather = Pather(self._screen, self._template_finder) - self._pickit = PickIt(self._screen, self._item_finder, self._ui_manager, self._belt_manager, self._game_stats) + self._pickit = PickIt(self._screen, self._item_finder, self._ui_manager, self._belt_manager) # Create Character if self._config.char["type"] in ["sorceress", "light_sorc"]: