From 3e57c91b14980b5264451093cd1f3d140269190a Mon Sep 17 00:00:00 2001 From: jerick Date: Sun, 25 Jan 2026 19:01:20 -0500 Subject: [PATCH] Changed timer to 60 seconds --- main.py | 6 ++-- .../bot_assignment.cpython-311.pyc | Bin 13360 -> 13974 bytes services/bot_assignment.py | 34 ++++++++++++------ 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/main.py b/main.py index b7f2edf..97a25a3 100644 --- a/main.py +++ b/main.py @@ -353,12 +353,12 @@ assignment_manager = None @bot.event async def on_ready(): global assignment_manager - print(f"✓ Discord bot logged in as {bot.user.name} (ID: {bot.user.id})") - print(f"✓ Bot is in {len(bot.guilds)} server(s)") + print(f"Discord bot logged in as {bot.user.name} (ID: {bot.user.id})") + print(f"Bot is in {len(bot.guilds)} server(s)") # Initialize assignment manager assignment_manager = BotAssignmentManager(bot) - print("✓ Bot assignment manager initialized") + print("Bot assignment manager initialized") async def start_bot(): try: diff --git a/services/__pycache__/bot_assignment.cpython-311.pyc b/services/__pycache__/bot_assignment.cpython-311.pyc index f283f3d5e1db563fce4921a3e9b2158f9876ba23..2825f991f4fbcf450c686f16317b0942f4c56b81 100644 GIT binary patch delta 1497 zcmZ`&O>7%Q6rS2!keUL_iZUlvxyymOjA2V9dWnO_DLv zYYEdxy13_mhXgbKe>;N^Yi}65GKtQH*Ifmdfe-C-Pyt^MXQ+gc;hII)BZdUF-IvEE zQY3jnGnX`7+xMWYru8*KH9bvIijCD^z`q0fD`V@95)a*Z1kg8S-61%50vUftm_`ti z66$#_5df#&Fs)>k8i|}mC`3IH8^UK;I(8V}Dcy?I*0d~fYLZiHQ(0@(w4qgmwMllj zyU)8UEU{m^pReY7iuLsj;PdQUPuCUUg-7CeEnBy9mg7lhFM%5o!!$qH&LPdg&%xx7 z;c$Y(0*8|vpy5$GQ0=qxAVZ&J6VS4vGwE?oIl{MVNLpXDpj9E_QOE#Sh-mp`X_mtn z2cB+=cQLf*!4Qo~&$98}qj;x8dvCk2!hHQxPr1)!vuW|N9LcgN&2t+fFj3SYzT_do z+137b{1Us_Z@=vEG!&B+1k*Q$m>z|o>ggyBRuD}0fC1BYZ*IM|@WZ;0ABAVw(7<2# iE!IESi{EC8gSpYXgiqiKdi?aTs{8%_6v_fa9sdAvm5u@c delta 959 zcmZ`$T}TvB6rQ`|jO(tm|NfMk`InikF0Mx5V&qz+L?DK#DXOj}NExXEjTj3aFk{Ql2^RxE?R8P$ij}21!dD+ zo)N^nCJqb1O}p!cc0IOXuV&x7l(!&E9Q@KQY$j^DO50(zu%Gm&z85Y^Bna0^-^eGi zZ6}1v^h21Ownhv?ABl}?v4lYbDDrZ%7SqP3!@8Qb{&vj{bU!Ba!**GaXsN)i5274K zCY0J;`BZeDVDYg!nQ|9d0k&#>Sc8~TgU}71_w;)I(2?YFH%1W#>3mf;hT>EWPZ}C! zPnf7}mQOQbrV<_#4?M56k=4}eT66Bs^H>wY8gn#mOz4To80Bpb! bool: + """Check if a friendly player already has an active target assigned""" + for target_data in self.active_targets.values(): + if target_data["friendly_id"] == friendly_id: + return True + return False + def get_next_friendly_in_group(self, group_id: str, friendly_ids: list) -> Optional[int]: """ Get the next friendly in the group who should receive a target. Prioritizes members with fewer hits. + Only returns friendlies who DON'T already have an active assignment. """ if not friendly_ids: return None - # Get hit counts for all friendlies in this group + # Get hit counts for all friendlies in this group who DON'T have active targets friendly_hits = [] for fid in friendly_ids: if fid in STATE.friendly: + # Skip if this friendly already has an active target + if self.friendly_has_active_target(fid): + continue + hits = STATE.friendly[fid].hits friendly_hits.append((fid, hits)) @@ -83,7 +95,7 @@ class BotAssignmentManager: # Sort by hit count (ascending) - members with fewer hits first friendly_hits.sort(key=lambda x: x[1]) - # Return the friendly with the fewest hits + # Return the friendly with the fewest hits who doesn't have an active target return friendly_hits[0][0] def get_next_enemy_in_group(self, group_id: str, enemy_ids: list) -> Optional[int]: @@ -101,7 +113,7 @@ class BotAssignmentManager: async def assignment_loop(self): """Main loop that assigns targets and monitors status""" await self.bot.wait_until_ready() - print("✓ Bot is ready, assignment loop running") + print("Bot is ready, assignment loop running") first_run = True while self.running: @@ -109,13 +121,13 @@ class BotAssignmentManager: # Check if bot is enabled via STATE if not STATE.bot_running: if first_run: - print("⏸ Bot paused - waiting for Start Bot button to be clicked") + print("Bot paused - waiting for Start Bot button to be clicked") first_run = False await asyncio.sleep(5) continue if first_run: - print("▶ Bot activated - processing assignments") + print("Bot activated - processing assignments") first_run = False # Process each group @@ -139,7 +151,7 @@ class BotAssignmentManager: await self.assign_target(group_id, friendly_id, enemy_id) if not has_assignments and STATE.bot_running: - print("⚠ No group assignments found - drag members into groups first!") + print("No group assignments found - drag members into groups first!") # Monitor active targets for status changes or timeouts await self.monitor_active_targets() @@ -148,7 +160,7 @@ class BotAssignmentManager: await asyncio.sleep(5) except Exception as e: - print(f"❌ Error in assignment loop: {e}") + print(f"Error in assignment loop: {e}") import traceback traceback.print_exc() await asyncio.sleep(5) @@ -187,7 +199,7 @@ class BotAssignmentManager: # Send Discord message enemy_link = f"https://www.torn.com/profiles.php?XID={enemy_id}" - message = f"🎯 **New target for {discord_user.mention}!**\n\nAttack **{enemy.name}** (Level {enemy.level})\n{enemy_link}\n\n⏰ You have 30 seconds!" + message = f"**New target for {discord_user.mention}!**\n\nAttack **{enemy.name}** (Level {enemy.level})\n{enemy_link}\n\n⏰ You have 60 seconds!" try: await discord_user.send(message) @@ -229,8 +241,8 @@ class BotAssignmentManager: except: pass - # Reassign after 30 seconds - if elapsed >= 30: + # Reassign after 60 seconds + if elapsed >= 60: to_reassign.append((data["group_id"], enemy_id)) del self.active_targets[key] @@ -239,7 +251,7 @@ class BotAssignmentManager: friendly_ids = STATE.groups[group_id].get("friendly", []) friendly_id = self.get_next_friendly_in_group(group_id, friendly_ids) if friendly_id: - print(f"⚠ Reassigning enemy {enemy_id} (timeout)") + print(f"Reassigning enemy {enemy_id} (timeout)") await self.assign_target(group_id, friendly_id, enemy_id) # Global instance (will be initialized with bot in main.py)