From 55e262a9ed03bd518807089b298f7b23ca3cafff Mon Sep 17 00:00:00 2001 From: Egor Egorov Date: Sun, 4 Oct 2020 15:18:09 +0500 Subject: [PATCH] some shit --- LAN | 0 antimatter.py | 293 ++++++++++++++++++++++++++++++++++++++++++++++ hdd_analyze.py | 4 +- printnewfiles.py | 2 +- signfuckingapp.py | 3 + 5 files changed, 299 insertions(+), 3 deletions(-) create mode 100644 LAN create mode 100644 antimatter.py diff --git a/LAN b/LAN new file mode 100644 index 00000000..e69de29b diff --git a/antimatter.py b/antimatter.py new file mode 100644 index 00000000..e21e1537 --- /dev/null +++ b/antimatter.py @@ -0,0 +1,293 @@ +from commands import * +from commands.mouse9 import Mouse + +__version__ = "2.8.3" + +PRINT_START_FINISH = False +PRINT_DIMENSIONAL_SACRIFICE = False + +SLEEP_BETWEEN_MOUSE_CLICKS = 0.1 + +DISABLE_DS_AM_AT_INFINITY_PERCENT = 100 # this is managed automatically since 2.5.0 +DISABLE_DS_AM_BEFORE_THIS_SECONDS_BEFORE_INFINITY = 240 + +print(f"antimatter v{__version__}") + + +class Logger: + def __init__(self, prefix, verbose=True): + self.check_every = 3 + self.previous_value = None + self.value_change_time = Time.stamp() + self.prefix = prefix + self.verbose = verbose + + def _set_new_value(self, new_value): + self.previous_value = new_value + self.value_change_time = Time.stamp() + + def check(self, new_value): + single_change_time = 0 + # first run + if self.previous_value is None: + self._set_new_value(new_value) + Print.rewrite() + if self.verbose: + print(f"{self.prefix} started as {self.previous_value}") + # usual case + elif new_value > self.previous_value: + changed_by = new_value - self.previous_value + time_passed = Time.delta(self.value_change_time, Time.stamp()) + single_change_time = time_passed/changed_by + Print.rewrite() + if self.verbose: + for i in range(changed_by): + print(f"{self.prefix} {self.previous_value + i + 1} in {single_change_time:.2f}s") + self._set_new_value(new_value) + # new value 50% lower than previous + elif new_value <= self.previous_value*0.5: + self._set_new_value(new_value) + global LOGGER_LAST_RESET + if Time.delta(LOGGER_LAST_RESET, Time.stamp()) > 5: + if self.verbose: + print() + LOGGER_LAST_RESET = Time.stamp() + if self.verbose: + print(f"{self.prefix} reset to {self.previous_value}") + return single_change_time + + +def get_info_from_screen(): + if PRINT_START_FINISH: print("start text capturing") + with LOCK_TEXT_CAPTURING: + Mouse.Click.left(position=(Random.integer(100,200), Random.integer(100,200)), quiet=True) + Keyboard.hotkey("ctrl", "a") + # Time.sleep(1) + Keyboard.hotkey("ctrl", "c") + # Time.sleep(1) + stats = paste() + stats = Str.nl(stats) + Time.sleep(SLEEP_BETWEEN_MOUSE_CLICKS) + Mouse.Click.left(position=(Random.integer(100,200), Random.integer(100,200)), quiet=True) + if PRINT_START_FINISH: print("end text capturing") + return stats + + +# добавить функционал выбора времени, а не количества запусков +get_info_from_screen = CachedFunction(get_info_from_screen, 1, quiet=True) + + +def logger_antimatter(): + while True: + if PRINT_START_FINISH: print("start antimatter logger") + with LOCK_KEYBOARD_MOUSE: + info = get_info_from_screen() + if "antimatter" in info[2]: + am_string = info[2] + elif "antimatter" in info[3]: + am_string = info[3] + else: + print("cannot get antimatter string") + continue + + try: + am_string = Str.substring(am_string, "You are getting ", " antimatter per second.") + except KeyError: + print("cannot get antimatter power") + continue + + try: + am_float, am_power = Str.get_integers(am_string, float_support=True) + except ValueError: + try: + am_int = Str.get_integers(am_string, float_support=True)[0] + except IndexError: + print("cannot get antimatter power simple") + continue + am_power = len(str(float(am_int)))-1 + + LOGGER_ANTIMATTER.check(am_power) + if PRINT_START_FINISH: print("end antimatter logger") + Time.sleep(LOGGER_ANTIMATTER.check_every, verbose=False) + + +def get_infinity_int(): + if PRINT_START_FINISH: print("start getting infinity_int") + infinity_int = None + with LOCK_KEYBOARD_MOUSE: + info = get_info_from_screen() + try: + if "%" in info[-1]: + infinity_string = info[-1] + elif "%" in info[-2]: + infinity_string = info[-2] + else: + print("cannot get infinity string") + except IndexError: + print("cannot get text infinity") + + try: + infinity_int = int(float(infinity_string[:-1])) + except ValueError: + pass + except NameError: + pass + return infinity_int + + +def logger_infinity(): + while True: + if PRINT_START_FINISH: print("start infinity logger") + + infinity_int = get_infinity_int() + if infinity_int is not None: + single_infinity_percent_time = LOGGER_INFINITY_PERCENTAGE.check(infinity_int) + global DISABLE_DS_AM_AT_INFINITY_PERCENT + try: + DISABLE_DS_AM_AT_INFINITY_PERCENT = 100 - DISABLE_DS_AM_BEFORE_THIS_SECONDS_BEFORE_INFINITY/single_infinity_percent_time + except ZeroDivisionError: + pass + + if PRINT_START_FINISH: print("end infinity logger") + + Time.sleep(LOGGER_INFINITY_PERCENTAGE.check_every, verbose=False) + + +def logger_infinity_points(): + while True: + if PRINT_START_FINISH: print("start infinity points logger") + with LOCK_KEYBOARD_MOUSE: + info = get_info_from_screen() + if "Infinity points" in info[0]: + infinity_string = info[0] + elif "Infinity points" in info[1]: + infinity_string = info[1] + else: + print("cannot get infinity points string") + continue + + try: + infinity_string = Str.substring(infinity_string, "You have ", " Infinity points.") + except KeyError: + print("cannot get infinity points power") + continue + + try: + ip_float, ip_power = Str.get_integers(infinity_string, float_support=True) + ip_int = int(ip_float * (10 ** ip_power)) + except ValueError: + try: + ip_int = Str.get_integers(infinity_string, float_support=True)[0] + except IndexError: + print("cannot get infinity points power simple") + continue + + LOGGER_INFINITY_POINTS.check(ip_int) + if PRINT_START_FINISH: print("end infinity points logger") + Time.sleep(LOGGER_INFINITY_POINTS.check_every, verbose=False) + + +def buyer(): + while True: + if PRINT_START_FINISH: print("start buying") + infinity_int = get_infinity_int() + with LOCK_KEYBOARD_MOUSE: + Keyboard.hotkey("c", verbose=False) # big crunch + Keyboard.hotkey("t", verbose=False) # tickspeed + Keyboard.hotkey("t", verbose=False) # tickspeed + Keyboard.hotkey("t", verbose=False) # tickspeed + Keyboard.hotkey("t", verbose=False) # tickspeed + Keyboard.hotkey("t", verbose=False) # tickspeed + if infinity_int is not None: + if infinity_int < DISABLE_DS_AM_AT_INFINITY_PERCENT: + Keyboard.hotkey("g", verbose=False) # antimatter galaxy + Keyboard.hotkey("d", verbose=False) # dimension shift + keys = Int.from_to(1, 8, to_str=True) + keys.reverse() + for i in keys: # buy dimensions (from bigger to smaller) todo: determine max dimension and buy it + Keyboard.hotkey(i) + Keyboard.hotkey("shift", i) + Keyboard.hotkey("m", verbose=False) # max all + if PRINT_START_FINISH: print("end buying") + Time.sleep(1) + + +def dimensional_sacrifice(): + while True: + if PRINT_START_FINISH: print("start check for sacrificing") + with LOCK_KEYBOARD_MOUSE: + stats = get_info_from_screen() + try: + dimensional_sacrifice_multiplier = stats[9] + except IndexError: + print("cannot find dimensional sacrifice multiplier") + continue + try: + dimensional_sacrifice_multiplier = Str.substring(dimensional_sacrifice_multiplier, "(", "x)") + dimensional_sacrifice_multiplier = float(dimensional_sacrifice_multiplier) + Print.rewrite(f"{Time.dotted()[:-10]} DS x{dimensional_sacrifice_multiplier}") + if dimensional_sacrifice_multiplier >= 2: + with LOCK_KEYBOARD_MOUSE: + Keyboard.hotkey("s") + Print.rewrite() + if PRINT_DIMENSIONAL_SACRIFICE: + print(f"used dimensional sacrifice x{dimensional_sacrifice_multiplier}") + except KeyError: + print("cannot find dimensional sacrifice multiplier precisely") + if PRINT_START_FINISH: print("end checking for sacrificing") + Time.sleep(10, verbose=False) + + +LOGGER_ANTIMATTER = Logger("am power") +LOGGER_INFINITY_PERCENTAGE = Logger("% of infinity", verbose=False) +LOGGER_INFINITY_POINTS = Logger("infinity points") + +LOGGER_LAST_RESET = Time.stamp() + +LOCK_KEYBOARD_MOUSE = Lock() +LOCK_TEXT_CAPTURING = Lock() + + +t = Threading() +t.add(buyer) +t.add(dimensional_sacrifice) +# t.add(logger_antimatter) +t.add(logger_infinity) +t.add(logger_infinity_points) + +t.start(wait_for_keyboard_interrupt = True) + + +example = '''You have 0 Infinity points. +You have 7.54e12 antimatter. + +You are getting 9.91e11 antimatter per second. +Reduce the tick interval by 14%. +Cost: 1e14 Buy Max +Tickspeed: 190 +Dimensions Options Statistics Achievements Challenges Infinity +DimensionsProduction +Dimensional Sacrifice (1.00x) Max all (M) +First Dimension x110.4 +1.71e9 (0) (+2.46%/s) +Cost: 1e13 Until 10, Cost: 1e14 +Second Dimension x26.3 +3.04e6 (0) (+1.10%/s) +Cost: 1e14 Until 10, Cost: 1e15 +Third Dimension x6.6 +9.67e3 (0) (+5.21%/s) +Cost: 1e14 Until 10, Cost: 1e15 +Fourth Dimension x6.6 +147 (0) (+11.76%/s) +Cost: 1e18 Until 10, Cost: 1e19 +Fifth Dimension x3.3 +10 (0) (+0.00%/s) +Cost: 1e17 Until 10, Cost: 1e18 +Sixth Dimension x1.6 +0 (0) (+0.00%/s) +Cost: 1e13 Until 10, Cost: 1e14 +Dimension Shift (2): requires 20 Sixth Dimensions Reset the game for a new Dimension +Antimatter Galaxies (2): requires 200 Eighth Dimensions Lose all your previous progress, but get a tickspeed boost +How to play | Donate | Changelog | Discord | Subreddit | Savefixer +4.18% +Game saved''' \ No newline at end of file diff --git a/hdd_analyze.py b/hdd_analyze.py index a29bc270..bd8f55c6 100644 --- a/hdd_analyze.py +++ b/hdd_analyze.py @@ -95,7 +95,7 @@ def printer(): f"{' '.join(Console.fit('Last file:', State.last_path))}{newline}" f"analyze_files threads: {len(State.running_threads)}{newline}" f"Time passed: {round(State.bench.get(), 2)}s{newline}") - Time.sleep(0.97, quiet_small=True) + Time.sleep(1) t = Threading() @@ -106,7 +106,7 @@ def printer(): try: while not State.finished or State.extensions: print("no exts") - Time.sleep(0.5, quiet_small=True) + Time.sleep(0.5) # clean State.extensions for ext in bad_ext: try: diff --git a/printnewfiles.py b/printnewfiles.py index ea893e0a..63edd996 100644 --- a/printnewfiles.py +++ b/printnewfiles.py @@ -8,7 +8,7 @@ printed_files = [] while True: - Time.sleep(0.5, quiet_small=True) + Time.sleep(0.5) filepaths = [] for root, dirs, files in OS.walk(dir): for file in files: diff --git a/signfuckingapp.py b/signfuckingapp.py index 0e133754..8de5c015 100755 --- a/signfuckingapp.py +++ b/signfuckingapp.py @@ -34,6 +34,9 @@ .csv .config .lang +.strings +.stringsdict +.sql ''' SKIPPED_EXTENSIONS = Str.nl(SKIPPED_EXTENSIONS) SKIPPED_EXTENSIONS = List.remove_empty_strings(SKIPPED_EXTENSIONS)