Commit Graph
190 Commits
Author SHA1 Message Date
Randi 466c698b1d Updated Anya shopper to properly filter on +3 3/20 gloves. Also added MA 3/20 gloves in addition to the current jav gloves. 2024-06-24 20:54:15 -04:00
Randi 58bc20ce0e Made fixes to anya shop for shopping 3/20 jav gloves as previous implementation used old font which didn't work. 2024-06-20 19:50:53 -04:00
Randi ed70c8e688 Tried to fixed issue of failed teleport at start. Fixed issue that prevented potions from being picked up. Fixed item inspection issue with tooltip. 2024-05-23 19:33:11 -04:00
Randi 39788df29c Set params.ini to match sorc. Updated environment.yml to set dependencies on package versions such as mss 7.0.1. Updated discord_embeds.py to work with latest discord version. Updated save_exit button image. Updated char_state image and roi. 2024-05-19 21:44:00 -04:00
Gleed 4a0396fe81 Enhancement: Replace pather.adjust_abs_range_to_screen() with ui_manager.get_closest_non_hud_pixel() (#908) 2022-06-19 15:06:15 -04:00
Gleed 21a79272ea Bugfix: Esc/close space on common.close() (#876)
* init

* more robust inventory close() logic, added asset

* leave health manager, probably better performance
2022-06-16 13:28:52 -04:00
Gleed 5127417bd3 Major feature: NTIP pickit syntax integration, OCR pickit, OCR item property filtering (#724)
By @Riddle1001 @Ezro @mgleed @D2RLegit Sosa
2022-06-16 09:46:14 -04:00
mgleed 16a9832af0 Bugfix: update active character template 2022-06-12 14:18:46 -04:00
NeoIsrafil cdd16dbb92 Enhancement: Sazabi set
* Add files via upload

Sazabis sword found to add since its decent for barb fury mercs.

* Update pickit.ini

Adds sazabi sword to pickit so users can turn it on if they want it.

* Update pickit.ini

* Add files via upload

sazabi helmet for addition to complete sazabi set

* Add files via upload

there, the pngs.  I don't know why I missed them the first time....sorry bout that

* Add files via upload

* Delete set_sazabi_sword.png

* Delete set_sazabi_helmet.JPG

* Delete set_sazabi_helmet.png

* Delete set_sazabi_sword.JPG

* Add files via upload

Fixed images
2022-06-10 22:01:00 -04:00
Legitandmgleed 54888942f5 Bugfix: Better pathing for walkers in trav (#790)
* Better pathing for walkers in trav

* Add files via upload

* trim a few templates

* re-add column asset, utilize another v2 asset

* fix tab/space issue

Co-authored-by: mgleed <[email protected]>
2022-06-07 00:00:04 -04:00
badbrad2889andmgleed 129c00ac44 Feature: Support transmute of all gem quality (chipped, etc.) (#736)
* Added the ability to transmute all gem types and select in params.ini

* Added the assets

* Updated STD to standard for transmute and updated ini for list style

* Changed the assets to standard

* changed list in INI to run only flawless by default

* Optimized the transmute: will only need to go through search once

* update tab selection

* Update params.ini

Co-authored-by: mgleed <[email protected]>
2022-06-06 23:27:13 -04:00
mgleed f7ea236823 Bugfix: character select active asset ignored hardcore characters (#838) 2022-06-06 21:53:35 -04:00
Legitandmgleed f0c6d5a6b7 Bugfix: getting stuck at act 2 portal location
* Updates act 2 template

* Add files via upload

* Delete a2_town_27.png

* Delete a2_town_22.png

* Add files via upload

* Delete a2_town_20.png

* Add files via upload

* Add files via upload

* Delete a2_town_22.png

* Add files via upload

* Update a2.py

* Update params.ini

* remove guy with shadow. asset already existed and added

Co-authored-by: mgleed <[email protected]>
2022-06-06 11:16:03 -04:00
Legitandmgleed cf7eaa6d09 Bugfix: Non-UTF-8 characters in corpse pickup text caused corpse to be missed
* Update to corpse pickup

* Add files via upload

* Update ui_manager.py

Co-authored-by: mgleed <[email protected]>
2022-05-20 22:51:01 -04:00
mgleed 580d9c6253 Bugfix: Revert keyboard save/exit 2022-05-14 05:32:51 -04:00
roozhou 376fb05225 Enhancement: Faster save and exit using keyboard (#697)
* Enhancement: Faster save and exit using keyboard

* Enhancement: faster chicken

1) Remove delay among key/mouse release (human can do it simutaneously
2) Save screenshot after save_and_exit
2022-05-09 04:07:48 -04:00
mgleed a15f7207fe Bugfix: Cleanup assets at bottom of shenk stairs, add two more templates 2022-04-23 15:21:10 -04:00
mgleedandaeon0 2dc1356cf7 Bugfixes: A2 TP stuck, also recapture some templates for d2r v2.4
* add _capture_template switch to template_finder.py _main function, replace eldritch templates

* update some trav templates

* update template_finder.py, update act 3 town templates

* update missing Eldritch templates

* add redudant eldritch templates and update nodes

* update shenk templates

* update trav assets, add redundant assets w nodes

* bugfix: a2 tp out of range of a2 templates

Co-authored-by: aeon0 <[email protected]>
2022-04-20 19:06:55 -04:00
mgleed 811d656022 Increase padding from 1 to 2 spaces, pad gold (#711) 2022-04-20 12:16:24 +02:00
aeon0andmgleed 9bc085af3a feat/restricted-mouse-clicks (#709)
* feat/restricted-mouse-clicks

* fix typos, use GoldBtnInventory ScreenObject, use personal.specific_inventory_roi()

* make smaller gold button, trim ROI, and use grayscale to search

* remove unused roi

* fix circular import by reverting to Config inventory area and adding open_inventory_area variable, adjust code throughout

* simplify

* revert to template finding due to circular import with ui_manager

* grayscale template match

Co-authored-by: mgleed <[email protected]>
2022-04-18 17:00:18 +02:00
mgleed 470f42b1b9 Bugfix: renamed mod folder from ifilter to botty and narrowed rmtree (#690)
* fix

* didn't save
2022-04-03 21:13:03 -04:00
mgleed 09a33ccf3d Feature/enhancement: Support for D2R launch options and cosmetic mods (#677)
Breaking change to param: `d2r_path`
2022-04-02 21:27:03 -04:00
mgleed 82576282ab Enhancement: Update OCR model for large numbers 2022-03-31 17:16:09 -04:00
e64f1151f3 Enhancement: Use keyboard to select difficulty (#661)
* Enhancement: Use keyboard to select difficulty

* press instead of send

if somehow the select difficult menu is not available when the while True: loop is running, will still work.

* simplify, delete now unused assets

* cleanup more

Co-authored-by: jagarop <[email protected]>
Co-authored-by: mgleed <[email protected]>
2022-03-25 22:35:45 -04:00
mgleed 1adeb3a32a Bugfix: Some NPC's don't open to misc tab (#642)
* init

* cleanup

* clean

* cleanup
2022-03-16 21:52:29 -04:00
mgleed 1abf57eae1 Bugfix/refactor: Safer screen transitions for laggy setups (#641)
* init

* update

* WIP. cleanup code. refactor stashing routines, etc. hopefully now closer to lag-proof

* more simplification, ready for testing

* change default normalize_monitor and adjust code accordingly. testing

* undo save/exit keyboard

* forgot to save a couple

* fix gold checking
2022-03-16 16:06:12 -04:00
mgleed 95b27f099f Bugfix/refactor: Search for open panels instead of skill icons (#631)
* init

* add town logic

* add additional close asset for HELP menu

* fin

* a
2022-03-11 17:46:30 -05:00
mgleed 54203ff036 Bugfix: Chicken if stats/skill icons pop up to avoid accidental allocations (#618)
* init

* simplify

* undo
2022-03-09 15:39:44 -05:00
mgleed 029b8dcdc6 Bugfix: Lack of item tooltip causing item_cropper errors for users who turn it off (#612)
* Bugfix: Lack of item tooltip causing item_cropper errors.

* lol
2022-03-06 21:24:15 -05:00
mgleed 400d43c49c Bugfix: Tome discrepancies on some platforms (#611) 2022-03-06 20:55:50 -05:00
mgleed f51de30fbd Major feature: Town routine overhaul, id tome, scrolls/keys, simplify gambling (#588)
* init, wip

* migration from original ocr complete, now troubleshooting phase

* first

* starts now

* catching more

* pause here, fix keep_item for ItemText class

* getting close

* adjust consumable quantity to refill per Legit

* fix import, refactor tp scroll tracking

* fixed property checking

* merge master, fix discord embed

* move tp charge setter

* properly track id scrolls after use

* fix accidental stashing

* fix sell_junk and chest_label bugs

* working on drognan instead of lysander

* a2 pathing, drognan support

* fix town-start to wp pathing, change key counting

* better drognan pathing

* comment out pather stuff

* restore old asset

* proper tp tracking

* revert key pickup to decrease need by 1

* fixing gambling, WIP

* working on gambling

* add comments to transfer_items

* add comments to transfer_items

* gambling semi-working, not stashing right

* simplify gambling process

* incorporate OCR gold reading to gamble, WIP

* gambling is painful

* simplified gambling - ~done

* finally finished gambling!

* fix diablo inventory check

* do not fail purchasing routine if item template is not seen

* fix condition

* deprioritize keys, scrolls during pickit; stop clicking Misc tab at repair

* cleanup

* init

* add support for grayscale + color_filtered

* cleanup logic

* only generate grayscale templates if use_grayscale=True

* simplify template_gray logic

* fix false detection of out of gold

* gambling with OCR was too buggy--replace with max gamble item count

* cleanup
2022-03-05 17:47:50 -05:00
mgleed 8515b6da92 Refactor: Rearrange inventory functions, code cleanup (#577)
* init

* cleanup, fix messanger typo

* cleanup

* rename player. to personal.

* saved

* merge artifact
2022-02-23 20:20:54 -05:00
mgleed 47993f141c Bugfix/enhancement: Function to show all ScreenObjects (#582)
* init

* cleanup

* cleanup

* bugfix. ran 8 hours without error after this
2022-02-23 10:03:11 -05:00
mgleed 994646d811 Bugfix: Made corpse pickup more robust (#575) 2022-02-21 21:09:57 -05:00
mgleed c8eb88f672 Feature: OCR for item drops and item description boxes (#570)
* initial

* bugfixes. now stable & testing

* narrow ROI to search for 'CLICK TO' tooltip
2022-02-21 19:54:29 -05:00
mgleed 9b22917660 Refactor: UI overhaul (#558)
Summary of changes:
-Rearranged many UI-related functions across the codebase (particularly in ui_manager.py) into individual components. See src/ui_components/. Functions related to components can be called like if waypoint.use_wp("Arcane Sanctuary"): or loading.wait_for_loading_screen(2.0)
-Removed Screen and TemplateFinder dependencies across the codebase
-Screen functions separated from class
-TemplateFinder made into a singleton
-Added generic ScreenObject UI functions to simply detect UI elements on screen; e.g., detect_screen_object(ScreenObjects.TownPortal), wait_for_screen_object(ScreenObjects.Loading, 2). Also included related functions like select_screen_object_match(template_match) to automatically select the match.
-Consolidated assets. Organized templates folder into components. Adjusted some asset ROI's and alpha channels.
-Changed some template searches to grayscale for speed
-Reworked save/exit routine, should now be more consistent and faster with normal exit, chicken exit, and death exit.
-Got rid of unused and consolidated duplicate game.ini parameters
-spelling fix _last_merc_healh
-NPC manager class removed and replaced with functions
-D2 window detection now runs on its own thread for semi-live window position offsets.
-Character selection reworked. OCR your selected character for fun (not that accurate, lol)
-Simplified game start and difficulty select
-Added a get experience function, but this is not called anywhere yet
-Reworked corpse pickup. pickup_corpse is no longer a necessary argument/parameter throughout the codebase (bot.py, game_controller.py, runs, etc.)
2022-02-20 18:49:04 -05:00
mischavandenburg 637920fc4e Feature: Added 46 uniqe / set items to pickit (#552)
by @mischavandenburg
2022-02-17 15:03:00 -05:00
John Wu 6a213014b8 Enhancement: Add more chest assets (#547) 2022-02-14 21:08:02 -05:00
a9c3e125ab Feature: Diablo optimization & Killing Trash in Chaos Sanctuary (#460)
* C1F & B1S switched to static pathing

* Improved overall robustness

* improved A layout check consistency

* added A layout check consistency & CTA rebuff

* Home now a loop, B now first seal to pop.

* Trash clear at pentagram, B1S, C1F loop added.

* Changed DeSeis attack pattern so MERC can kill

* tweaked diablo spawn timer & vizier attack pattern

* fixed minor pickit error.

* fixed Layout B Check loop & improved C1F

* improved C1F pathing home

* improved B layout check by removing trash kill

* added C2G static path to infector & loop home

* tweaked pathing

* lots of pathing tweaks to increase consistency

* Clarified Logger.Info

* Fixed A1L Tele to Lava Bug

* Fixed A1Y Tele Lava bug

* Fixed B2U missing pentagram on loop back

* fixed logger

* Completely reworked layout checks

* Reworked C seal layout check

* fixed ending up too low at Diablo

* optimized loop home for C

* added all seals

* removed duplicate trash sequence at C

* Fixed B2U looping home, added essence

* Template Check Threshold raised for Layout Checks

* Reverted A layout check back to inital version

* Aggressive Layout Checks implemented.

* Replaced Pentagram Templates to improve [602]

* Fixed loops for new pent layout

* Reverted A layout checks back to initial version

* merged 6.1?

i hope it worked.

* Pressure Test: A2Y 98% layout check success

* Massive improvements on Layout Checks

* Integrated Skizot's A4 merchants

* Fixed an error on A1L.

* fixed a small error on final pickit

* Slight Cleanup

* tweaked A2Y nodes to avoid lava jumps

* Added B2U Seal Logging

* Add templ. to 611 & 610 to fix stuck pather

* WiZ/SwePow suggestions

* Some more tweaking

* Trying to improve B layout checks (not full run)

* Seal B logic pressure test (no full run)

* added timeouts to weak traversenodes (no full run)

* Pacifist Version - just checking layouts no bosses

* Pure Layoutcheck Pressure Test (double checks)

* Pacifist mode: Layout Check

* Update bot.py

* Added Templates to improve Layoutchecks

* Tweaked B2U Templates (Pacifist Version)

* add B2U nodes & calibration to impr. layout check

* added nodes to layout checks

* Added A1L Calibration Node for Layoutcheck

* Full running script

* Fixed Calibrations - Full Run

* fixed mousover keyerror

* yet another mousover

* fixed a pather issue on B1S, full run

* yet another mousover. full run.

* mousover... ful run

* yet another mousover. full run

* fixed C2G looping across pentagram

* Update game.ini

* WiZ testing

* added seal_node to sealdance

* added C1F layoutcheck nodes

* Added Wiz Speedrun

* tweaked wait in sealdance

* A1L-Static path to Pentagrram

* added A2Y hop 622

* A2Y static path home

* B1S static path home

* changed C1F fake template

* added new C1F seals & static home

* Speed or no speed

Using kill_cs_trash config

* fixed a 36b key error

* Random guess actually is random now

It wasnt random at all before so trying out if this is better

* Minor fixes and tweaks

* B2U - Static Path Home

* Redworked C1F - not stable yet

* Seal order B,C,A and DeSeis fix

There was copy/paste bug in DeSeis making it use wrong atk_len and then I also tuned the attacks a bit.

* fixed final B2U issue, should be stable now!

* added B2U 644_646 static path

* added mapping

* A seals fixed hopefully

More testing tomorrow!

* run diablo py

Yours is the diabloC, I didnt have time to compare them before sleep and wanted you to have both in case

* so this should be super stable now!

* Reverted A1L & A2Y Seal Order (but kept WiZ Idea)

* Reverted Seal Order

* Added Rudi TP :)

* all loop home now

* added TP  template to loop

* typo

* stashs & shrine gfx, TP counter

* removed pent_6 (many false positives looping home)

* clean up for aeon

* fixed typos

* New A2Y & C2G home pathing

* Reworked C1F 704 to avoid stuck

* Ready to test!

* fixed pather clicking outside D2R

* Tweaked Seal A

* Loot to Sealdance() & A2Y tweaks

* removed FALSE from TP fail

* Updated Readme.md

* remove env

* clean up code

* account for used tp

* Removed Dia C1F 700s and replaced with 650s

* Moved Seals, Fights & Pickit to Hammerdin file

* #Trapsin now supported for Arcane and CS
#Trapsin now optionally uses defensive spells Cloak of Shadows and Mind Blast
#Trapsin now waits for Shadow Warrior before using CTA

* Update readme

* Working version

* added  trapsin

* added nova sorc

* added nova sorc

* added light & nova sorc

* added clear trash, issue on 1 function

* Added Clearing Trash

* added 1 tele stop between WP & Pentagram

* fixed mistake on i_char

* CS Trash is now available for beta testing

* fixed a minor issue

* percised some debug logging

* Added CS Trash for Necro, Trapsin, Sorc (no blizz)

* added CS trash to Necro, Trapsin, Sorc_Light _Nova

* # moved functions from chars back to diablo.py
# removed CS for all chars execept hammerdin
# added seal_layout to sealboss functions
# added location to cs_kill_trash functions

* removed pickit from hammerdin.py

* trying to fix some attribute errors for pre_move

* forgot to add _char for pather.traverse_nodes

* added & removed some ._char, now it runs :)

* fixed a missing argument & cleaned up

* clear_trash=1 implemented & working

* added more kill_trash options

* added more debug info & generic kill trash spots

* fixed some debugger errors

* hammerdin done

* updated readme for cs_trash

* #merged A1L and A2Y pathing to char.py
# added A2Y static pathing to Pentagram

* fixed some errors ...

* A1L & A2Y work with new pathing logic

* Ok generic Diablo.py should now work

* and hammerdin.py aswell

* full run

* moved C1F static path to hammerdin.py

* fixed an error for pathing

* Improved A LC consistency to >99%

* Colors!

* added 2 A1L LC templates

* moved pickit to hammerdin.py

* 4min runs

* removed timeouts. 88% killrate right now.

* Added Logparser (thanks famE)

* separated log parser columns

* tweaked log parser

* changed positions of de seis kill screenshots

* added clearing trash between Pent & LC

* fixed missing _self

* Added option for cs_town_visits between seals

* Improved B1S loop home & tweaked some messages

* fixed an error not clearing seals & added colors

* removed 632 duplication & not needed LC templates

* added clear trash to A & B LC

* added pickup at 646

* added PENT_2 Template & removed fail shrine checks

* Added C2G Templates currently only 82% good runs

* Added Hybrid Calibration Nodes

* re-added templates for LC

* added 1px to WP->PENT traverse to avoid missing it

* tweaked home from 632 for not missing pent

* added more redemption before 632 calibration

* merged individual seals to one function

* fixed seal template error

* Added LC function. Fixed C2G & Loop to Pent-Stable

* added atk_len for diablo

* fixed typo so log parser stats are right

* added & increased threshold to LC calibration

* fixed new LC threshold oO - should push less often

* reverted B LC back to initial order

* log parser tweaks

* added shrine check to pather.py

* replaced 630640 with 647

* added B1S LC templates & changed shrine check

* swapped LC for B (current had 75%)

* reworked cs_trash up to LC

* log parse counts templates used

* Fixed B Layout checks

* log parser now w. templates. shrine check added

* just changes to debug names & adding a nicer table for botty start :P

* #best match & time_out=0.1,
#return false on nodes
#new shrine ROI

* Force Stashing before running Dia, logger wording

* shrine check less frequent. char.py cleaned up

* reworked trash layout B

* added 603 ROF1 templates

* added info to params.ini to reduce Q&A in discord

* # added stash every run param
# transferred trash choreography to char.py
# reverted some template changes.

* Ready to merge. Not perfect, but much better!

* small fix before merging

* Update nova_sorc.py

* Update basic.py

* added missing templates causing an error @602

* C2G: static path LC 661 & comment screenshots

* various changes--changed some info to debug, changed floats in config, adjusted runs_per_stash logic

* autoformatting made me commit

* nodes for trash between pent & seal. A works B is bad.

* fix bool -> bool(int(

* added calibration nodes for trash pent>seal

* Full run for testing efficacy of new trash nodes

* fixed a pathing issue

* reverted back to old method for trash.

* Ready for merge.

Co-authored-by: WiZ <[email protected]>
Co-authored-by: aeon0 <[email protected]>
Co-authored-by: mgleed <[email protected]>
2022-02-14 16:25:45 -05:00
Steve6030 4e35b8a1a8 Correcting poison resist asset spelling. (#523) 2022-02-08 20:32:10 -05:00
mgleed b83dbb8e8d Track item charges with OCR (#516) 2022-02-06 00:12:45 -05:00
mgleed f8e41d525b OCR as a service (#505) 2022-02-05 23:49:17 -05:00
mgleed 5d4e7e8dec Add more act 5 paths (#506)
* initial

* finished a TODO!
2022-02-05 13:22:52 -05:00
mgleed 1315d9decb Bugfix for TP charge detection: use color_filter instead of template match threshold (#513) 2022-02-05 10:29:36 -05:00
c358282e68 Launch botty from town or main menu; fix character recovery after restart/death (#494)
* Add ability to launch botty from either main menu or town

* Fix game recovery routine is stuck forever on character selection screen

* Move _char_template to class variable to be able to share among instances

* fix character recovery and character select, support offline/online. WIP

Co-authored-by: Vladimir Makayev <[email protected]>
Co-authored-by: mgleed <[email protected]>
2022-02-04 20:27:56 -05:00
Vladimir MakaevandVladimir Makayev 6b1e155197 Support Gem Transmuting (#491)
Co-authored-by: Vladimir Makayev
2022-02-04 17:58:41 -05:00
Vladimir Makaev 47c5e20238 Optimized handling of teleport charges (#476) 2022-02-04 14:59:39 -05:00
RB-Development 36d3c2e913 Gambling by @RB-Development (#445)
This branch will detect if stash is full of gold. Afterwards the gambling functionality (currently only in act 4 implemented) will be called. The bot will gamble for specific items (determined in params.ini) until no gold is left. He will check for properties specified in pickit.ini and sell not matching items.
Supported items are: ring, amulet, circlet, coronet, talon

Leverages recent advanced pickit PR.
2022-02-04 14:12:56 -05:00
mgleed 06623142f7 Controller item spacing 2022-02-04 12:42:38 -05:00
RB-Developmentaeon0mgleed
551a547ddb Advanced pickit (#383)
* logic for ident, first attr. advanced pickit

* logic advanced vs normal pickit

* logic_empty_ID_Tome

* small adj. to fit PR

* converted yaml to ini. changed some val.

* changed param to auto_ident

* pickit integration

* added set in routine

* reset bot init value

* bugfix

* removed old id logic

* added_nested_filter

* changed pickit

* bugfix replace

* added some more props

* Cleanup

* cleanup

* cleanup

* started unittests

* unittest

* small pickit adjustments

* Added missing fct. after merge

* bugfix due to static method in config.py

* added comments in pickit.ini

* Update pickit.ini

* Update params.ini

* Update ui_manager.py

* Update pickit.ini

Co-authored-by: aeon0
Co-authored-by: mgleed
2022-01-30 19:40:36 -05:00