Feature/bugs and extra modules#11
Conversation
Market wasn't searching becuase of the Christmas UI. AutoPY was taking 1min to load because I have millions of files in Local App Data
| # Log screen resolution | ||
| logger.info(f"Detected screen resolution: width={self.width}, height={self.height}, primary={main}") | ||
|
|
||
| if main: # Only consider the primary monitor |
There was a problem hiding this comment.
I have two different sized monitors and this error kept kicking off for me even though my main is set to 1920x1080.
moving the main check up here fixed it for me.
| logger.info("Starting focused search for Raid.exe...") | ||
| appdata_local = os.path.join(os.environ['LOCALAPPDATA']) | ||
| raid_feature = "Raid.exe" | ||
| for root, dirs, files in os.walk(appdata_local): |
There was a problem hiding this comment.
Making this change made my start up time go from 1min to 2s
| try: | ||
| # Attempt to locate the image | ||
| if pyautogui.locateOnScreen(exit_add_image, confidence=0.7) is not None: | ||
| if pyautogui.locateOnScreen(exit_add_image, confidence=0.7) is not None or pyautogui.locateOnScreen(home_battle_button, confidence=0.7): |
There was a problem hiding this comment.
If exit image wasn't on the screen it would loop here without the tk ui popping up. Now I also check for being on the bastion without a pop up by looking for the battle button
There was a problem hiding this comment.
I've realised this one might not be the intention you had. Is it supposed to attempt to escape so the exit button comes up and then close to make sure we are in the bastion without popups?
|
@ToonDawg I appreciate the work , and am looking to refactor a lot of this very soon. I will review all of this and love your additions. Thanks for the help! |
|
Hey man! No worries. I haven't looked at this or tried it in a while. It may be risky PR now. Specially with the shop updates and stuff. I'm happy to close it |
|
No I pulled this PR and testing. I was wanting to do these things but got busy. Im sure we can get this working and add it to the functionality |
…ttribution Investigated per-hero damage attribution divergence (task #10/#11) on Spirit BT50 fixture. Found three real game-truth bugs that each correctly improve their own area but un-stack a balancing wrong: 1. Demytha A2 `shrink_debuffs` (line 2576-2588): per skill description shrinks ALLY debuffs (debuffs ON heroes), but cb_sim shrinks BOSS debuffs. Game-truth: should be no-op. Removing it pushed Venom poison from 2.5M to 5.5M (over real 3.45M). 2. DebuffBar.tick `< 0` (line 314): gives N+1 ticks of activity for an N-turn debuff. Real game gives N. Tightening to `<= 0` halves Venom poison ticks (104 sim → ~50, real 69). Fits Spirit/Magic, breaks Force. 3. Venom A3 Count=2 placement: per static `ApplyDebuff Count=2 + TargetType=AllEnemies` the loader expands to 2 poison placements per cast. Real seems to place ~1.4× per cast not 2× — possibly game's Count semantics differ with single-target enemies. Each fix alone is game-correct. Together they over-correct Magic+Spirit and break Force calibration. Need coordinated multi-fix session with Force-specific source telemetry to identify the underlying Force-only over-prediction these are compensating for. For now: only Mane A3 phantom WM/PT fix kept (shipped previous commit, self-contained, no Force regression beyond -6.1% on one BT24 fixture). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
After dumping IL2CPP dump.cs + static effect_manifest.json + skills_all.json for the debuff lifetime mechanics, applied two coordinated game-truth fixes that the previous compensating-wrong scaffolding had been masking. 1. Demytha A2 scope (cb_sim.py line ~2575): static skill 65102 effect[0] is `kind=ReduceDebuffLifetime tgt=AllAllies cnt=1`. AllAllies = HEROES not BOSS, so the previous behavior of shrinking boss debuffs every Demy A2 cast was unambiguously wrong. Now no-op against boss debuffs (cb_sim doesn't model per-hero debuff state). 2. DebuffBar.tick expire condition (cb_sim.py line ~314): tightened `s.remaining < 0` to `<= 0`. Real Spirit BT50 tick log shows 69 poison events vs sim's old 104 at `< 0` (N+1 ticks). With the Demy scope fix shipping together, both align with the AppliedEffect Lifetime/TurnLeft semantics in `dump.cs` line 383767. Result on Spirit BT50 fixture 20260623_123712: Mane +12.3% (was +31.7% pre-Mane-A3-fix this session) Demy -15.5% Ninja +2.7% Geomancer -26.4% (Stoneguard fire count still under — task #10) Venomage -10.9% TOTAL -3.2% (within ±5%) Fixture pass rate ±5% on user's MEN tune: Spirit BT49 full -1.9% ✓ Magic BT49 ×3 -1.1% / +1.2% / -3.3% ✓ ✓ ✓ Force BT24 -7.2% ❌ (exposes separate Force-day under-modeling) Force BT19 -6.0% ❌ The Force regression is REAL game-truth gap that the previous wrong code was compensating for. Force has an unfound damage source that needs fresh fixture telemetry to identify. Task #10/#11 remains open for that work. See `project_debuff_lifetime_il2cpp_findings` memory for IL2CPP verification details + capstone targets for the next iteration. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
tools/cb_attribution_diff.py — aggregates real per-hero/per-source damage from the tick log (key `ticks`; producer 0-4 -> boss target 5, split by kind_id) and diffs vs each SimChampion's DamageTracker. Spirit-day MEN is the calibrated-total baseline, so per-hero divergence isolates attribution bugs. Spirit fixture 20260623_162050 (real 36.85M full T50) diagnosis: - Geomancer UNDER -24.5%: Stoneguard deflect (kind_id 4017 PassiveReflectDamage) real 21 procs / 1.17M (capped 75K/proc) vs sim passive 0.21M. Task #10's "Geo over +17.5%" was STALE — the shipped debuff fixes flipped it to under. - Venomage UNDER -9.4%: poison 74 real ticks x 50K vs sim 50 ticks; the debuff <=0 expiry fix over-cut ~24 ticks. - Ninja Brimstone (kind 3021) real 19x250K vs sim 16x250K (minor). CB damage caps confirmed game-truth: poison 50K/tick, deflect 75K/proc, Brimstone/Smite 250K/proc. Tasks #10/#11 updated with root causes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Investigated the Venom poison under-attribution (#11) against Spirit fixture 20260623_162050. Cadence is perfect (sim casts == real exactly), so the gap is poison tick production: real 74 ticks vs sim 50. Pinned the mechanic: 72 poison placements (Maneater A1 x40 + Venom A3 x2x16) -> 74 real ticks ~= 1 tick/placement. Real poisons are detonation-consumed by Venom A1 (tick once, then removed), NOT lasting 2 full turns. Tested reordering the DoT damage loops before debuff_bar.tick() (deal on the expiry turn): total -5.6% -> -1.2% but Venom flipped to +16.2% OVER (50 -> 94 ticks). That's a compensating-wrong swap (double-ticks long poisons), so REVERTED. Left an explanatory comment at the tick site. The clean fix is modeling poison detonation-consumption, validated against this fixture's 74-tick / 37.87M target — fixed together with the Geo deflect (downstream of burns), not in isolation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Yo! A bit of a bigger PR here that fixed 2 issues I was having. I wasn't able to comment on the PR lines to explain my thoughts, so Ill just do it here.
Cheers mate!