From d0e170c6b584c31d544e58ae83684774cdc727af Mon Sep 17 00:00:00 2001 From: Semjon Kerner Date: Mon, 7 Dec 2020 22:02:32 +0100 Subject: [PATCH 1/4] add option to have human like jitter in delays --- fishy/engine/semifisher/fishing_event.py | 16 +++++++++++++--- fishy/gui/config_top.py | 5 +++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/fishy/engine/semifisher/fishing_event.py b/fishy/engine/semifisher/fishing_event.py index c9e544f..e56f2d2 100644 --- a/fishy/engine/semifisher/fishing_event.py +++ b/fishy/engine/semifisher/fishing_event.py @@ -16,6 +16,7 @@ import keyboard from fishy.helper.config import config +import random class FishEvent: fishCaught = 0 @@ -24,6 +25,7 @@ class FishEvent: fish_times = [] hole_start_time = 0 FishingStarted = False + jitter = False previousState = State.IDLE # initialize these @@ -32,9 +34,16 @@ class FishEvent: uid = None sound = False +def _fishing_sleep(waittime, lower_limit = 16, upper_limit = 58): + reaction = 0.0 + if (FishEvent.jitter): + reaction = float( random.randrange(lower_limit, upper_limit) )/100.0 + time.sleep(waittime+reaction) + def init(): subscribe() + FishEvent.jitter = config.get("jitter", False) FishEvent.action_key = config.get("action_key", 'e') FishEvent.collect_key = config.get("collect_key", 'r') FishEvent.collect_allow_auto = config.get("collect_allow_auto", False) @@ -73,13 +82,14 @@ def on_hook(): FishEvent.fish_times.append(time_to_hook) logging.info("HOOOOOOOOOOOOOOOOOOOOOOOK....... " + str(FishEvent.fishCaught) + " caught " + "in " + str( round(time_to_hook, 2)) + " secs. " + "Total: " + str(FishEvent.totalFishCaught)) - + _fishing_sleep(0.0) keyboard.press_and_release(FishEvent.action_key) if FishEvent.collect_allow_auto: - time.sleep(0.1) + _fishing_sleep(0.1) keyboard.press_and_release('r') - time.sleep(0.1) + _fishing_sleep(0.1) + _fishing_sleep(0.0, upper_limit=48) def on_look(): diff --git a/fishy/gui/config_top.py b/fishy/gui/config_top.py index f93f3d8..96623c8 100644 --- a/fishy/gui/config_top.py +++ b/fishy/gui/config_top.py @@ -53,6 +53,7 @@ def start_semifisher_config(gui: 'GUI'): gui.config.set("collect_key", collect_key_entry.get(), False) gui.config.set("collect_allow_auto", collect_allow_auto.instate(['selected']), False) gui.config.set("borderless", borderless.instate(['selected']), False) + gui.config.set("jitter", jitter.instate(['selected']), False) gui.config.set("sound_notification", sound.instate(['selected']), False) gui.config.save_config() @@ -107,5 +108,9 @@ def start_semifisher_config(gui: 'GUI'): sound = Checkbutton(controls_frame, var=BooleanVar(value=config.get("sound_notification"))) sound.grid(row=5, column=1) + Label(controls_frame, text="Human-Like Delay: ").grid(row=4, column=0, pady=(5, 5)) + jitter = Checkbutton(controls_frame, var=BooleanVar(value=config.get("jitter"))) + jitter.grid(row=4, column=1) + controls_frame.pack(padx=(5, 5), pady=(5, 5)) top.start() From 38df2713767c58fcd287748e54000e603b600b37 Mon Sep 17 00:00:00 2001 From: Semjon Kerner Date: Sun, 13 Dec 2020 20:13:15 +0100 Subject: [PATCH 2/4] fixup rebase and max waittime --- fishy/engine/semifisher/fishing_event.py | 13 +++++++------ fishy/gui/config_top.py | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/fishy/engine/semifisher/fishing_event.py b/fishy/engine/semifisher/fishing_event.py index e56f2d2..c297280 100644 --- a/fishy/engine/semifisher/fishing_event.py +++ b/fishy/engine/semifisher/fishing_event.py @@ -34,11 +34,12 @@ class FishEvent: uid = None sound = False -def _fishing_sleep(waittime, lower_limit = 16, upper_limit = 58): +def _fishing_sleep(waittime, lower_limit_ms = 16, upper_limit_ms = 2500): reaction = 0.0 - if (FishEvent.jitter): - reaction = float( random.randrange(lower_limit, upper_limit) )/100.0 - time.sleep(waittime+reaction) + if (FishEvent.jitter and (upper_limit_ms > lower_limit_ms)): + reaction = float( random.randrange(lower_limit_ms, upper_limit_ms) )/1000.0 + max_wait_t = waittime+reaction if (waittime+reaction <= 2.5) else 2.5 + time.sleep(max_wait_t) def init(): @@ -82,14 +83,14 @@ def on_hook(): FishEvent.fish_times.append(time_to_hook) logging.info("HOOOOOOOOOOOOOOOOOOOOOOOK....... " + str(FishEvent.fishCaught) + " caught " + "in " + str( round(time_to_hook, 2)) + " secs. " + "Total: " + str(FishEvent.totalFishCaught)) - _fishing_sleep(0.0) + keyboard.press_and_release(FishEvent.action_key) if FishEvent.collect_allow_auto: _fishing_sleep(0.1) keyboard.press_and_release('r') _fishing_sleep(0.1) - _fishing_sleep(0.0, upper_limit=48) + _fishing_sleep(0.0) def on_look(): diff --git a/fishy/gui/config_top.py b/fishy/gui/config_top.py index 96623c8..c22ff99 100644 --- a/fishy/gui/config_top.py +++ b/fishy/gui/config_top.py @@ -108,9 +108,9 @@ def start_semifisher_config(gui: 'GUI'): sound = Checkbutton(controls_frame, var=BooleanVar(value=config.get("sound_notification"))) sound.grid(row=5, column=1) - Label(controls_frame, text="Human-Like Delay: ").grid(row=4, column=0, pady=(5, 5)) + Label(controls_frame, text="Human-Like Delay: ").grid(row=6, column=0, pady=(5, 5)) jitter = Checkbutton(controls_frame, var=BooleanVar(value=config.get("jitter"))) - jitter.grid(row=4, column=1) + jitter.grid(row=6, column=1) controls_frame.pack(padx=(5, 5), pady=(5, 5)) top.start() From 797663ff5a23604af3084755d60abf9b3fe1c810 Mon Sep 17 00:00:00 2001 From: Semjon Kerner Date: Sun, 13 Dec 2020 21:04:45 +0100 Subject: [PATCH 3/4] fixup remove condition parantheses --- fishy/engine/semifisher/fishing_event.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fishy/engine/semifisher/fishing_event.py b/fishy/engine/semifisher/fishing_event.py index c297280..c566346 100644 --- a/fishy/engine/semifisher/fishing_event.py +++ b/fishy/engine/semifisher/fishing_event.py @@ -36,9 +36,9 @@ class FishEvent: def _fishing_sleep(waittime, lower_limit_ms = 16, upper_limit_ms = 2500): reaction = 0.0 - if (FishEvent.jitter and (upper_limit_ms > lower_limit_ms)): + if (FishEvent.jitter and upper_limit_ms > lower_limit_ms): reaction = float( random.randrange(lower_limit_ms, upper_limit_ms) )/1000.0 - max_wait_t = waittime+reaction if (waittime+reaction <= 2.5) else 2.5 + max_wait_t = waittime+reaction if waittime+reaction <= 2.5 else 2.5 time.sleep(max_wait_t) From 291cbf08098c12fb8a8fa9203f5d3c1e9c843153 Mon Sep 17 00:00:00 2001 From: Semjon Kerner Date: Sun, 13 Dec 2020 21:07:06 +0100 Subject: [PATCH 4/4] fixupfixup remove condition parantheses --- fishy/engine/semifisher/fishing_event.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fishy/engine/semifisher/fishing_event.py b/fishy/engine/semifisher/fishing_event.py index c566346..a16b204 100644 --- a/fishy/engine/semifisher/fishing_event.py +++ b/fishy/engine/semifisher/fishing_event.py @@ -36,7 +36,7 @@ class FishEvent: def _fishing_sleep(waittime, lower_limit_ms = 16, upper_limit_ms = 2500): reaction = 0.0 - if (FishEvent.jitter and upper_limit_ms > lower_limit_ms): + if FishEvent.jitter and upper_limit_ms > lower_limit_ms: reaction = float( random.randrange(lower_limit_ms, upper_limit_ms) )/1000.0 max_wait_t = waittime+reaction if waittime+reaction <= 2.5 else 2.5 time.sleep(max_wait_t)