-
Notifications
You must be signed in to change notification settings - Fork 381
Conversation
The Hammerdin often accidentally clicked on monsters while walking to the end location. The fix to activate Concentration early did not work. Now it does.
Not at a pc but it looks like you took out vigor altogether for the run and replaced it with concentration? Have you verified this still works with a hdin wearing a enigma and also when using charges? |
Using teleport charges that much would get expensive.
Vigor is still being use like before, up until the safe spot right before a boss. Just the last few meters are done with Concentration. Works fine with teleport charges. |
Hammerdin now uses teleport charges inside Pindle's house, because why not. Prevents the zombies from charging you. Before no teleport charges were being used.
I realized that I could just test it in singleplayer, so I did that. No issues with Enigma. Teleports happily around. |
def on_capabilities_discovered(self, capabilities: CharacterCapabilities): | ||
# In case we have a running pala, we want to switch to concentration when moving to the boss | ||
# ass most likely we will click on some mobs and already cast hammers | ||
if capabilities.can_teleport_natively: | ||
self._do_pre_move = False | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why was this function removed? I'm not 100% sure of the consequences of this but @VladimirMakaev might know
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wondering the same which is why I asked if it still works for hdin with tele. Ive been running as a walkadin and seems fine. Ill double verify in a bit if enigma still works.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When debugging self._do_pre_move it turned out that it reverts back to true. The Hammerdin class logic expected it to stay false though. It was the main culprit of why the Hammerdin seemed to "attack" while having Vigor turned on. It should have switched to Concentration, but didn't. Not relying on self._do_pre_move fixed it immediately and then the on_capabilities_discovered wasn't required anymore.
Also it lead to unneccesarily complicated logic constructs that were hard to follow and could be done in a simpler and more readable way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wouldn't touch this code. It can easily break something for Enigma / Tele-Charge paladin . And you need to test 3 different version of paladin on all routes to make sure it's sound:
- Walkdadin Trav/Shenk/...
- Enigma Paladin Trav/Shenk/...
- Tele-Charge Paladin Trav/Shenk
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should just cast Concentration and move with PreMove=False that way you won't change to Vigor.
preMove() will flip to Vigor in case of Walkadin or Tele-Charge (there is no way to pass that telecharge is to be used based on current code structure). So in case you're opting to tele-charge then you should manage PreMove part manually. E.g. casting concentration and doing PreMove=False, TeleCharge = True or PreMove=True if you want Vigor to be on for walking / running out of tele charges and walking.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wouldn't touch this code. It can easily break something for Enigma / Tele-Charge paladin . And you need to test 3 different version of paladin on all routes to make sure it's sound:
1. Walkdadin Trav/Shenk/... 2. Enigma Paladin Trav/Shenk/... 3. Tele-Charge Paladin Trav/Shenk
It didn't even work the way it was intended to work. No need to re-introduce bugs.
This PR has been tested extensively with all three variants. Some people even happily and successfully use it for their daily runs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should just cast Concentration and move with PreMove=False that way you won't change to Vigor. preMove() will flip to Vigor in case of Walkadin or Tele-Charge (there is no way to pass that telecharge is to be used based on current code structure). So in case you're opting to tele-charge then you should manage PreMove part manually. E.g. casting concentration and doing PreMove=False, TeleCharge = True or PreMove=True if you want Vigor to be on for walking / running out of tele charges and walking.
Which is what I did.
[0.7.3-dev 2022-05-09 06:47:41,781] INFO Capabilities: CharacterCapabilities(can_teleport_natively=False, can_teleport_with_charges=True) Populates when using walkadin for pindle. |
I get: Did you get that message while having a teleport charge item equipped and ready? I can only achieve In short: I can't see a bug here (that didn't already exist). |
It saying i have teleport charges when i run pindle even though im not using any teleport or teleport charge items. it should be a walkdin and its being recognized that it has teleport charges. I will try again if you say your not getting that error. |
Thanks. |
Pretty sure its because you removed
but i could be wrong. I am trying pindle on another pr real quick. Works on other pr's your seems to have problems with pindle and a walkadin. |
What exactly does happen to your Hammerdin when you do Pindle with this PR? |
It's actually this #758 bug. |
def on_capabilities_discovered(self, capabilities: CharacterCapabilities): | ||
# In case we have a running pala, we want to switch to concentration when moving to the boss | ||
# ass most likely we will click on some mobs and already cast hammers | ||
if capabilities.can_teleport_natively: | ||
self._do_pre_move = False | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wouldn't touch this code. It can easily break something for Enigma / Tele-Charge paladin . And you need to test 3 different version of paladin on all routes to make sure it's sound:
- Walkdadin Trav/Shenk/...
- Enigma Paladin Trav/Shenk/...
- Tele-Charge Paladin Trav/Shenk
def on_capabilities_discovered(self, capabilities: CharacterCapabilities): | ||
# In case we have a running pala, we want to switch to concentration when moving to the boss | ||
# ass most likely we will click on some mobs and already cast hammers | ||
if capabilities.can_teleport_natively: | ||
self._do_pre_move = False | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should just cast Concentration and move with PreMove=False that way you won't change to Vigor.
preMove() will flip to Vigor in case of Walkadin or Tele-Charge (there is no way to pass that telecharge is to be used based on current code structure). So in case you're opting to tele-charge then you should manage PreMove part manually. E.g. casting concentration and doing PreMove=False, TeleCharge = True or PreMove=True if you want Vigor to be on for walking / running out of tele charges and walking.
The Hammerdin often accidentally clicked on monsters while walking to the end location. He did so while having Vigor active (because the bot thinks he's still walking). The existing fix to activate Concentration early did not work. Now it does.
You might have noticed many complaints about it in Discord.
If you want to test:
Do Eldritch or Trav 10x without the fix as a Hammerdin without any form of teleport. You will notice him casting hammers with Vigor active at the beginning.
With my fix that doesn't happen anymore.
Eld, Shenk, Trav, Pindle fixed. The others not, because they're impossible without teleport anyway.