Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add fix to allow all unique items to drop #540

Closed
wants to merge 1 commit into from
Closed

Add fix to allow all unique items to drop #540

wants to merge 1 commit into from

Conversation

ghost
Copy link

@ghost ghost commented Jan 15, 2020

This adds an optional fix for the unique item generation bug, as well as a header file to toggle on/off optional fixes. I know that some people will want a pure vanilla experience, so it's disabled by default.

As an FYI, the bug involves unique items where more than one item of the same base type exists. The game will always pick the last occurring item in multi player, making it impossible to find any item but that. In single player the game records which uniques have already dropped so it is possible, but it starts from bottom to top making it extremely difficult since you would have to find 3-4+ uniques of the same base in the same game.

How this should be fixed can be argued, but interestingly there is an unused random call in the vanilla code. I fixed it by making the game use this call, so it picks one at random rather than the last one. Below is a screenshot of me finding both Lightforge and Constricting Ring in multiplayer:
DIABLO_20200115_024042

@ghost
Copy link
Author

ghost commented Jan 15, 2020

Also I forgot to point out. Uniques with multiple bases will still almost always "morph" when making a new game. So this fix is still not enough. The morphing bug is part of vanilla and is due to the way items are generated.

@Chance4us
Copy link
Contributor

Greetings good master @galaxyhaxz .
Below is a list with the following ideas regarding optional settings for unique items.
It may well be that some of them make less sense.

  1. make unfindable uniques findable (e.g. "Demon Plate Armor", "Armor of Gloom")
  2. make almost unfindable uniques findable
  3. make vanilla uniques findable in devilutionx hellfire branch
  4. make devilutionx hellfire branch uniques findable in vanilla
  5. make single player uniques (including quest items) findable in a multi player game
  6. make multi player uniques findable in a single player game

@qndel
Copy link
Member

qndel commented Jan 15, 2020

  1. make hellfire playable in vanilla :P

@ghost
Copy link
Author

ghost commented Jan 15, 2020

I don't really understand what you are trying to say. This is a bugfix and not a feature, it addresses 1 & 2 on your list. As DevilutionX isn't really my project, I'm not sure to what extent Ajenbo and Co. want the vanilla game changed.

One thing is for sure, and that's this bug totally crippled all the new uniques in hellfire. Since basically none of them drop in multi and require lottery luck in single.

@FitzRoyX
Copy link

I've seen the "optional bugs" people in another project and find it odd. Should we have options to revert bugs fixed by 1.09? Is 1.00 more vanilla than 1.09? Bugs are bugs. Blizzard didn't find them all and abandoned the game, the end.

@AJenbo
Copy link
Member

AJenbo commented Jan 20, 2020

The way Lightforge appears makes me think it was part of a quest and shoudn't normally drop as a random item?

@qndel
Copy link
Member

qndel commented Jan 20, 2020

oh come on, the uniques are so crappy, 1 good one that drops won't hurt :p

@qndel
Copy link
Member

qndel commented Oct 1, 2021

Replaced by #2930

@qndel qndel closed this Oct 1, 2021
@avnerO
Copy link

avnerO commented Jun 17, 2022

I know its been almost 3 years but has anyone managed to fix the Unique item generation bug in hellfire in DevilutionX

It is literally the only missing feature for me to make Devilution truly perfect. I want to be able to find all the missing uniques.

I have looked but I cant seem to download anything anywhere

@yuripourre
Copy link
Collaborator

yuripourre commented Jun 17, 2022

@avnerO if you can build it by yourself take a look at the PR mentioned above #2930.

It was marked as milestone 1.5.0 so with a bit of luck we can get it merged in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants