Commit Graph
50 Commits
Author SHA1 Message Date
Francesco bc24fea4e9 No diablo by default (#441)
* My pick up and sorc parameters

* Moved the game logic away from the main within the new GameController class.
Refactored the main to use built-in keyboard add_hotkey and wait functions instead of self-written main loop.

* Revert "My pick up and sorc parameters"

This reverts commit 0920a406

* Changed number of loot columns

* Changes as per the comments:
Handle non-existing backup file.
Removed newline at the beginning of GameController class.
Changed line splitted into multiple lines back to a single line.

* Refactored graphic debugger with similar logic to botty to now have a controller.

* Added a small comment on the graphic debugger class and fixed a now-typo on the presented menu

* Bug Fix: if pressing F11 repeatedly the main loop may crash due to self.bot not yet initialized in the game_controller.

A safe solution would be to try and catch all but that would also be an overkill as it would most likely mask exceptions that we might want to make the program crash.

Checking that self.bot is initialized should work for the time being.

* No need to re-assign the resume key within the game controlelr anymore

* Urgent 1 liner bug fix for always_on_top: name 'config' is not defined

* Bug fix, keyboard dependency on game_recovery.py
For some reason PyCharm seems to flag this import as unused while it is actually used.

* Set diablo to not run by default
2022-01-13 12:37:30 +01:00
1fe56c95c6 Merge Diablo (#435)
* integrated diablo scaffold

still pending pathing & kill logic

* minor changes to cross river of flame - but loop not working

* River of Flame sucessfully skipped - CS Entrance cleared

* Seal B works.

* Everthing is slow :(

* reparied slowness

* revert deleted main code

* Added CS Entrance recognition & changed Pentagram templates

* Merge branch 'diablo' of https://github.com/jobithu/botty into diablo

* Seal B works for both layouts - still clumsy, but it works.

* added Vizier (A). working: A1, B1, B2 - pending: A2,C1,C2,Diaaaa

* C identifcation implemented.

* All seals done, optimization needed for pathing & fighting sequences

* fixed minor error in game.ini

* should now run - badly. all seal spots & paths need optimization

* A1Y works stable

* A1Y stable, WP now has issues

* A2Y seal mouseover added - new bug, could not determine window offset

* Both A seals work great now!

* A2L Seals work consistently. A1Y quite good.

* easteregg

* A2L improvements

* Succesful kill on A2L, B1S, C1G

* Tweaked Diablo Kill Wait Time

* start cleanup

* added functions for each seal layout

* First stable dia kills with fixed map layout

* added Sealdance function

* Fixed Sealdance. A1L is finished. All others work in Progress.

* A2L + B1S Works

* A2L and B1S works

* Script runs well now on A1L, B1S, C1G. Sealdance needs more movement.

* Update diablo.py

* A1L, C2F, B2F working. Kills Dia Hell well.

* added issue log. testing all layouts now.

* Individual runs work, Sealdance needs tweaking

* All seals work, got frustrated, added sorc&she rox

* tweaked sorc vizier & infector fights

* rebuild templates & nodes for A2Y, B1U, C2G

* Forgot to add Seal A to the run oO

* renamed forgotten templates for A2Y

* fixed minor bugs on A1Y. succesfull dia kill

* Optimized A2Y

* Reworked A1Y templates & fight - very stable! Yay!

* A2Y, B2U, C2G work - but i think it should be B1U

* 4/6 seals work (B1S & C1F pending)

* some clean up

* remove unwated code

* 5/6 Seals done - added C1F

* sealdance and error handling

* try to merge stuff somehow

* add additional template coordinates to failed nodes

* fix health manager by adding diablo lcoation

* remove thresholds

* fix template names and error handling for c seals

* C1F added. 5/6 seals done.

* All seals work - let's get it tested!

* B1S fight coregraphy improvements

* New paths for layout check to increase consistency

* fixed A2Y edge lava port (625>626)

* All seals work, lets test with more ppl & finetune

* 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

Co-authored-by: aeon0 <[email protected]>
Co-authored-by: WiZ <[email protected]>
2022-01-12 23:05:23 +01:00
Francesco 5f1ffd153b D2r restart optional (#417)
* My pick up and sorc parameters

* Moved the game logic away from the main within the new GameController class.
Refactored the main to use built-in keyboard add_hotkey and wait functions instead of self-written main loop.

* Revert "My pick up and sorc parameters"

This reverts commit 0920a406

* Changed number of loot columns

* Changes as per the comments:
Handle non-existing backup file.
Removed newline at the beginning of GameController class.
Changed line splitted into multiple lines back to a single line.

* Refactored graphic debugger with similar logic to botty to now have a controller.

* Added a small comment on the graphic debugger class and fixed a now-typo on the presented menu

* Bug Fix: if pressing F11 repeatedly the main loop may crash due to self.bot not yet initialized in the game_controller.

A safe solution would be to try and catch all but that would also be an overkill as it would most likely mask exceptions that we might want to make the program crash.

Checking that self.bot is initialized should work for the time being.

* No need to re-assign the resume key within the game controlelr anymore

* Urgent 1 liner bug fix for always_on_top: name 'config' is not defined

* Bug fix, keyboard dependency on game_recovery.py
For some reason PyCharm seems to flag this import as unused while it is actually used.

* game_controller.py changes

* config and params.ini changes

* config and params.ini changes

* Added else statement to prevent double logging in case of failed restart

* Removed botty name from logging and api messages as it is redundant information.

Fixed issue with gamerecovery constructor - now it takes template finder as a parameter
2022-01-12 17:53:22 +01:00
aeon0 7f7acf1e2a Bug fix round (#431)
* etheral

* devision by zero

* force move in a2
2022-01-11 19:29:40 +01:00
aeon0 8104b87083 Configure war cry cast frequency (#424) 2022-01-10 23:08:49 +01:00
Legitandaeon0 f450dc7591 Light Sorc Trav/shenk Update (#404)
* Light Sorc Trav/shenk Update

Requires Frozen orb added in params.

* frozen or for lightning sorc

* removed ;

* added frozen orb

* added move outside of trav for pickit start

* Last minute small trav changes

* Added fail safe for loot check

* update light sorc trav

* remove one chain lighting

* revert back to original start

Co-authored-by: aeon0 <[email protected]>
2022-01-08 18:53:54 +01:00
Legitandaeon0 19f45d0270 Add some items and filters (rare matriarchal jav, +3 tornado pels, +3 warcry helmets) (#386)
* Fix for blizz_sorc master

* removed delay

* Update src/char/sorceress/blizz_sorc.py

* Additiona pickit items

* Missing items on pickit

* updated pickit

fixed rare jav missing added couple socketed items.

* Garbage item not needed

* Changed eth_ to grey_

* Dont know how to delete eth assets I added.

* revert blizz

* clean unused item assets

* bring back missing file, fix typos

Co-authored-by: aeon0 <[email protected]>
2022-01-08 10:20:45 +01:00
aeon0andFrancesco faed0154aa Char selector after restart (#403)
* Char selector after restart

* at least make it work...

* Scroll the characters if the template was not found.

TODO: Ideally we would like to understand which character is currently selected rather than assuming we'll always be using the top one.

* make it fancy

Co-authored-by: Francesco <[email protected]>
2022-01-07 19:38:21 +01:00
egut125 dff178bbc7 Breaking Messenger Module into something more flexible for specif… (#370)
* WIP Breaking Messenger Module into something more flexible for specific apis

* Cleanup and removal of data class

* Working embeds sort of

* Simple embeds set up

* Adding image of stashing items to discord embed

* Discord Embed updates with images

death_manager and game_controller both store path to last death/chicken screenshot
Pass last screenshot path along to game_stats and discord_embeds to place in discord message

* Color adjust

* Updating filenames formobile notifications

* Create loot_screenshots folder if it doesn't exist and api=discord

* Fixing missed messenger.send calls

* UI for discord updates

* Switching to i_api and explicit functions

* Update all messenger calls to new functions

* Param name change

* Simplify discord_basic api

* Switching from interface to generic api class

* One new messenger call from master

* spacing
2022-01-06 18:33:59 +01:00
nlapinskiandnlapinski b01ff94b8a Necro class (#337)
* necro rebase

* merge

* necro readme

* removed import

* a

* necro char

* necro parms

* config fix

* example planner

* clear pindle pack

* pindle pack config cast

Co-authored-by: nlapinski <[email protected]>
2022-01-05 23:43:14 +01:00
Francesco c92d32b6de Improved debugger (#361) 2022-01-05 22:15:10 +01:00
skizotenigma 2924836a32 "Basic" classes (#352)
* Start of "Basic" classes

will left attack unless right attack is available.

* Update basic_ranged.py

* Update basic.py
2022-01-05 22:14:14 +01:00
aeon0 e099848ed4 Npc serach optimization (#391)
* NPC search optimization

* fix pywin32 version
2022-01-04 12:24:43 +01:00
Matt StiehmandMatt fdfdd81b84 Restart game (#374)
* removed 1920_1080 support

* Update ui_manager.py

Fixed bug...

* Update pather.py

fixed scale factor

* Update i_char.py

* Update game.ini

removed tp locations

* Bump version to v0.4.3

* Bump version to v0.4.3

* added working restart module

* tested and looks stable after refactor

* fixed a few things after looking at PR

* switched things back to search after testing and removed 1s delay in save_and_exit search

* fixed tab select bug where the exit game prompt was up, and also fixed max game length bug on WP use

* Update a5.py

Changing back, as not needed.

* adding requested changes

* keyboard went missing from game_recovery

* missed case where restart fails then loops infinitely

* fixed typo. all tested now

* also removed flag resets since we're recreating hm and dm

Co-authored-by: Matt <[email protected]>
2022-01-04 10:08:50 +01:00
aeon0 e3093ee50a Clean unused templates (#387) 2022-01-03 20:10:24 +01:00
Fiseandaeon0 992bfa91e8 Feature Request: Allow Classic players to show hammerdin scepters from Drogan (#379)
Co-authored-by: aeon0 <[email protected]>
2022-01-03 18:40:24 +01:00
Francesco 01e8078067 set D2R window to be always on top (#382)
* My pick up and sorc parameters

* Moved the game logic away from the main within the new GameController class.
Refactored the main to use built-in keyboard add_hotkey and wait functions instead of self-written main loop.

* Revert "My pick up and sorc parameters"

This reverts commit 0920a406

* Changed number of loot columns

* Changes as per the comments:
Handle non-existing backup file.
Removed newline at the beginning of GameController class.
Changed line splitted into multiple lines back to a single line.

* Refactored graphic debugger with similar logic to botty to now have a controller.

* Added a small comment on the graphic debugger class and fixed a now-typo on the presented menu

* Bug Fix: if pressing F11 repeatedly the main loop may crash due to self.bot not yet initialized in the game_controller.

A safe solution would be to try and catch all but that would also be an overkill as it would most likely mask exceptions that we might want to make the program crash.

Checking that self.bot is initialized should work for the time being.

* No need to re-assign the resume key within the game controlelr anymore

* Saving changes before switching repo

* Move the logic to set d2r always on top in the utils package.

* Remvoed unused dependency

* Always on top currently only works in Windows

* Removed one-time used variable

* Moved D2R window always on top to advanced_options.

Now the D2R window is set always on top only when the bot start (F11) and when it pause or F12 is pressed the D2R window (if it still exists) will be restored to its original value
2022-01-03 17:26:07 +01:00
aeon0 777c6da302 Optimize nova sorc for trav (#364) 2022-01-01 15:26:15 +01:00
aeon0 d8942f92b4 A2 Pathing + Arcane run + Static for Sorc + Static Tele robustification + Chest class (#348) 2022-01-01 14:15:13 +01:00
Francesco 268652b4ff Backup and Restore settings (#349)
* My pick up and sorc parameters

* Moved the game logic away from the main within the new GameController class.
Refactored the main to use built-in keyboard add_hotkey and wait functions instead of self-written main loop.

* Revert "My pick up and sorc parameters"

This reverts commit 0920a406

* Changed number of loot columns

* Changes as per the comments:
Handle non-existing backup file.
Removed newline at the beginning of GameController class.
Changed line splitted into multiple lines back to a single line.

* Refactored graphic debugger with similar logic to botty to now have a controller.

* Added a small comment on the graphic debugger class and fixed a now-typo on the presented menu
2021-12-31 09:06:27 +01:00
aeon0 88c9e28d45 Nova Sorc (#350)
* Nova Sorc

* formating
2021-12-30 17:02:03 +01:00
skizotenigma badcd77ea6 Identify Items at Chain (A5) (#339) 2021-12-30 14:12:43 +01:00
skizotenigma f1dbce3a69 Repair Each Run (#338)
* Update bot.py

* Update config.py

* Update params.ini

* Update params.ini

removing comments

* Update bot.py

removing comments

* Update config.py

removing comments

* Update README.md
2021-12-28 00:04:41 +01:00
aeon0 bb523b34fe Trapsin updates (#325) 2021-12-24 12:24:10 +01:00
aeon0 43244e85b9 Light sorc overhaul (#323)
* Light sorc overhaul

* also use lightning

* readme update
2021-12-24 10:01:15 +01:00
Legit ddd92ad303 Cold-sorc-trav-eld-shenk (#300) 2021-12-23 22:03:06 +01:00
aeon0 f60f6539ff If in doubt, just use path a (#318) 2021-12-23 21:53:09 +01:00
Luiz Felipe Aranha 2cc9ee36c7 include mangsong to pickit (#317)
* include mangsong to pickit

* Add files via upload
2021-12-23 21:14:51 +01:00
aeon0 d6a8de3c80 Configurable ordering of runs (#314) 2021-12-22 21:48:05 +01:00
mgleed b5805a19aa Add require/exclude properties to pickit.ini when stashing items. Also more item templates. (#295) 2021-12-21 20:46:27 +01:00
egut125 5993e876e8 Config discord condensed (#310)
* Added new discord_status_condensed that can be set =1 to get condensed status report

* Readme update
2021-12-20 20:28:00 +01:00
yhkinsar db63ce66b6 adding more uniq items (#299) 2021-12-17 19:52:15 +01:00
aeon0 29a4eaf9b2 Fix static field param (#296) 2021-12-15 23:53:43 +01:00
tw1st40 be1f1ce08c Barbarian support (currently War Cry/singer only) with Horking (#288)
* Added Barbarian support (currently War Cry/singer only) with Horking (find item) - thanks Outburst.

* Changes as requested by aeon for pull request to be merged.
2021-12-15 15:49:09 +01:00
yhkinsar 7b7815a021 Support Greater Potion (#290) 2021-12-15 15:47:40 +01:00
aeon0 4d083bee83 Use static for sorc at trav (#285)
* Sorc use static at trav

* Sorc use static at trav
2021-12-13 23:03:41 +01:00
aeon0 857052c75d Tele dancing sorc nil (#282)
* Implement simple "tele-dancing" for sorc nil

* increase trav atk len
2021-12-13 19:13:53 +01:00
aeon0 bf7ce99c5f Implement Nihlatak for Sorc (#281) 2021-12-13 18:14:03 +01:00
aeon0 fa1297e15e Config to force prebuff every run (#274) 2021-12-12 18:09:44 +01:00
aeon0 e184db7045 Rename region of interest (#275) 2021-12-12 18:08:38 +01:00
aeon0 d46624e932 Support for trapsin build (#273) 2021-12-12 18:06:23 +01:00
aeon0 6d88ccb379 Fix gold stashing turn off (#272) 2021-12-12 17:21:56 +01:00
aeon0 2d9307cb94 Static path trav and some renaming (#271)
* Static path trav and some renaming

* no random

* fix b node

* fix game recover issue

* adapt dclone stuff

* add back rand
2021-12-12 16:35:15 +01:00
cutebeast 2aff1800ef dclone ip hunting (#270)
* dclone ip hunting

This is add on to pause the bot and send msg to discord if we are able to obtain the correct hot ip for dclone.

* Update for dclone ip check

using messenger instead of discord
update param for section on dclone
move the block to check for ip to after town spawn

* update for dclone for ip hunting

allow setting to disable to ip search
2021-12-12 16:15:20 +01:00
jobithuandaeon0 17b7fcc2a2 Nihlatak (#244)
* nihlatak for testing

* comitting staged changes

* fixed some issues on template syntax

* merged nihlatak routine to all other files in the bot

merged nihlatak routine to all other files in the bot (next to pindle & shenk)

* make it run

* improved consistency for traverse LVL1_B & finding start at LVL2

improved consistency for traverse LVL1_B & finding start at LVL2

* further optimized pathing for LVL1 C & LVL2A

* nil update, pathing on lvl 2 fine tuning still needed

* optimized pathing lvl2

might needs some tweaks on 2_D, but otherwise fine.

* fine tune pathes lvl 2

* adapt to template matching nil arm C

* arm b

* fail save for branch a

* fail save for arm c

* arm d

* small clean up

Co-authored-by: aeon0 <[email protected]>
2021-12-12 13:00:31 +01:00
aeon0 1e1b4a2da0 Code improve for eth only filter (#269)
* Adapt eth checking

* update pickit
2021-12-12 09:57:09 +01:00
mgleed 68f2f0f3ce Allow item = 3 in pickit to make ethereal required to stash (#268)
* initial

* clarify
2021-12-12 08:46:38 +01:00
nekolr c2a017c517 Use message template to support other hooks (#265) 2021-12-12 08:22:36 +01:00
aeon0 0f156be4d6 Params for shop (#262) 2021-12-11 15:41:54 +01:00
aeon0 86db356ca4 Split params and seperate .exe for shop and health manager (#261)
* Split Params and add shop to exe

* rename folder
2021-12-11 15:02:20 +01:00