All monsters in the game are categorized among the 3 monster types:
Various game mechanics are dependent on monster type. For example, swords deal 50% more damage to animal monsters, but 50% less damage against undead. Conversely, blunt weapons deal 50% extra damage to undead monsters, but 50% less damage to animals.
Same goes for spells. Holy Bolt only damages undead monsters, while going directly through any other monster type.
Sometimes it is hard to tell precisely what the monster type is for a given monster. Thus, I propose we expose this information in the monster data displayed at the bottom of the screen.
| | Current | Proposal |
| --- | --- | --- |
| Normal |
|
|
| Unique |
|
|
_PS: Screenshots with #803 applied_
I purposefully reduced "TOTAL KILLS" to just "KILLS" to try and use the space a little better in the second line. I thought leaving the original text resulted in too big of a line and it looked strange to me.
Additionally, it felt natural to me because of how items are displayed: damage and durability on the same line. So I think it doesn't feel out of place.
Lastly, I proposed using the "KILLS" like to put the monster type because normal monsters already use up all 5 lines for some information:
| Line | Text |
| --- | --- |
| Line1 | {Name} |
| Line2 | TOTAL KILLS: {n} |
| Line3 (> 30 kills) | HIT POINTS: {n0 - n1} |
| Line4 (> 15 kills) | RESISTS: {magic} {fire} {lightning} |
| Line5 (> 15 kills) | IMMUNE: {magic} {fire} {lightning} |
If we add the enemy type as a brand new line, then we get into situations where the full info has 6 lines, which cannot be displayed in the panel (maximum of 5 lines).
The total number of lines for unique monsters is less, because it doesn't have the total kill line and the hit points line.
I like it, but this for me hits right on the border of how much we want to change the game. The biggest problem is that the same arguments for this could be used for floating damage, orb numbers, and monster health bars, and I'm against all of that.
For that reason, this might be better as a QoL patch or something similar.
BTW, while working on checking the code and grabbing screenshots for this I realized fallen are of type 'animal' and not of type 'demon'. I've been playing this damn game for 20+ years and ALWAYS thought they were demons. Looks like out of all imp-type monsters, only "familiars" in particular are demons: all others are animals.
I feel dumb now for only swapping to a sword vs scavengers and fiends in early levels 馃槅
The biggest problem is that the same arguments for this could be used for floating damage, orb numbers, and monster health bars, and I'm against all of that.
@AJenbo I don't think they are really comparable. I'm with you: I'm also against all of those things, but those directly alter the feel and presentation of the game. This proposal is minimally invasive and does not introduce any extra visual noise to the game.
I think this one plays an important role by letting the player know that these aspects exists right out of the gate. Griswold has a couple lines detailing this difference with weapons, but it's hidden as random gossip that most people will never get to hear.
I wanted to get this out of the way so that I could add information to swords and maces on the +50% damage vs undead/demons as well (incoming issue), which is another aspect that is deeply hidden. For that reason, I'd kindly as you to reconsider here 馃槅
Sent the PR anyway. We can convert it to draft if the proposal is not accepted.
Would you say that it's comparable to adding more info about what a shrine does, and are you for or against that?
Would you say that it's comparable to adding more info about what a shrine does, and are you for or against that?
I think the way shrines work is intentionally vague, since their effects are not mentioned in the manual or anywhere in the actual game. They were created to be tried, so to speak, without any previous information. So no, I don't think they are comparable in that sense.
To me, adding the information on what a shrine does, alters gameplay considerably since new players will think twice before clicking on them. It also completely removes the first-time surprise of shrines like Thaumaturgic shrine which re-rolls all chests in the level or Spiritual which gives gold per inv slot. Players with upfront knowledge of these mechanics will ensure they open all chests in the level or drop all their inventory items before touching it. Their text clearly indicates they should be a surprise to the player.
If we were going to be explicit on what shrines do, maybe an idea would be to start showing their effects only after N activations (like monster kill shows HP and resistances), or have a different, more visual way of showing their effect in the character or inventory screens somehow.
The discussion around shrine effects to me is vastly more complicated than this one. The only argument I could see for this would maybe either:
Monster types are also not in the manual. To me, this could be a mechanic that the player was meant to figure out on there own, which is why I'm hesitant to bring it to the UI.
Regarding the N-kill option, a player could actually figure out what type a monster is by trying various weapons on them, so actually that seems reasonable to me.
Monster types are also not in the manual.
They are, to some extent. If you look at the section on swords and maces, you see the mention there that "maces work well against undead" while "words work against armor or flesh".
Maces and Clubs
Sometimes the simplest tools are the best. Whether it be a
stout piece of wood or a spiked mace, a good clubbing weapon
can be deadly in the hands of a strong warrior. The minions of
Mephisto鈥攖he undead鈥攁re said to have an especially difficult
time resisting the effects of broken bones and shattered limbs.
Swords
The sword is the epitome of the warrior鈥檚 weapon. Forged in
fire and tempered to a fine edge, a good blade can cut through
armor or a demon鈥檚 thick hide with equal ease.
On Holy Bolt there is also a mention about undead monsters, of course.
Now yes... I know, there is no specific section discussing enemy types. Also, there is no distinction between "animals" and "demons" anywhere at all, which actually makes me even more in favor of adding this information. It is impossible to figure out the sword damage bonus vs "flesh" because animals and demons can be confused a lot. As I said, I play this game for 20 years and I always thought fallen were demons instead of animals. I just realized this after implementing the labels 馃槅
This is why I wanted to expose the enemy type. After exposing the enemy type, my idea would be to expose the bonuses against undead/animals for maces and swords in a succinct manner (to be discussed in a separate issue).
To me, this could be a mechanic that the player was meant to figure out on there own, which is why I'm hesitant to bring it to the UI.
I honestly just don't see how one would figure this out on their own... the game just doesn't give you the proper tools or hints to do it. You would never be able to tell proper effectiveness of swords vs maces due to the randomness of damage ranges, for example. It's just asking too much of players to figure that out IMHO.
Regarding the N-kill option, a player could actually figure out what type a monster is by trying various weapons on them, so actually that seems reasonable to me.
What do you have in mind here? Any specific numbers or ideas? I mean... implementing it based on the kill counter is quite easy (we define a number when the info starts appearing, like other stats), but that still feels unnatural to me. What would make more sense for this particular thing would be if the kill counter was "per weapon", or something like this. You'd never know if clubs work against undead if you only kill them with swords, for example.
However there is no support at the moment to do this "per weapon type" kill analysis, and there would be no space on the UI either to convey this right now I think.
Maybe if we had some sort of bestiary section where more information about monsters was opening up with time or something, but that's just too big of a feature to consider.
It was the 90's games where not intuitive and detailed ofthen had to be looked up in magazins.
You'd never know if clubs work against undead if you only kill them with swords
But shooting them with arrows alows you to know that they are recistant to lightning :)
It was the 90's games where not intuitive and detailed ofthen had to be looked up in magazins.
Sure. So what I'm getting here is that you want to maintain that feeling, then? I think overloading the player with information is kinda bad and worsens atmosphere and all that (so I'm mostly with you). However, I think the whole enemy type / weapon bonuses is TOO hidden in this game to a point where it becomes a non-factor, an "automatic bonus" or "automatic detriment" that most people will not notice. I figure we want new players to play the game as well, so if there is at least _some_ form of showing the player why these aspects are important I'd be all for it.
But shooting them with arrows alows you to know that they are resistant to lightning :)
Touche. So the point to me is that the existing system is also unintuitive. Would you be open to changing that whole system? This is something I thought about some time ago, but it is not a simple change.
Say:
Perhaps only allow # 1 and # 3 after HP is already known or if the player has already killed that monster with another element type before (or something similar) so that it would be impossible for a character to know whether or not the monster has really high life, or is just resistant to the spell, if he didn't know his total HP before or the effects of using another damage type.
I think that would be an interesting system, but it is a bit complex under the hoods. Obviously, the good aspect of it is that it is 100% transparent to the player, he'll end up discovering every attribute of every monster eventually if he is experimental enough (which sounds good IMHO).
Under that system, I agree "enemy type" is not intuitive or relevant. What would be relevant is "monster weaknesses". Say, for example, that similarly to resistances, we showed something like "weak vs blunt weapons"/"weak against blunt attacks" or "weak vs sharp weapons" etc. Or even introduce "new resistances" and mention then on the "Resists" line, like "Resists: blunt" or something (kinda weird to read, but you get the point). I could get down to that.
We could even expand on this idea and make it more dynamic. For instance, say my character does 2-6 damage. If I 1-shot a fallen, then my character should only be able to deduce about his HP:
On the first enemy killed, then, his "estimated HP" would be updated to 1-12.
Say now I kill a second fallen, with a more "balanced" weapon, 3-4 damage. Repeating the above:
Based on previous understanding about the monster's potential life, the new estimate would be 1-8. If he had up to 12 HP, there is no way I could kill it with a single hit having 3-4 damage.
Now we switch to a different weapon type (say we were using swords thus far, and are now using a club). It does 1-3 damage. However, we now have to hit the enemy 3 times to kill it:
Estimate is not updated, still set at 1-8. We don't know whether the enemy is weak against swords vs maces yet.
We now proceed to kill a bunch more with the mace, taking 3+ hits every time. Then the game shows the weakness and updates the HP accordingly. Estimate 1-8, strong against blunt weapons, weak against sharp weapons.
So on and so forth. While it sounds complex (and it is), the player is not aware of the complexity and doesn't need to. He'll see what the latest probabilities are based on his current stats. Expand this to all damage types, elements, ranges, etc, and you have a fully dynamic, automatic discovery system for HP, weaknesses and immunities, that start of as complete unknowns and populate itself as more data becomes available.
Needless to say this would entail saving a lot more than "kill count". We'd probably need to consider a whole history of "kill events", store the element/type used to perform the kill for each monster/for each kill, etc. So it would impact save data as well.
In any case, we'd need to carefully consider concise messages so as to not overload the information panel, or show this information somewhere else (a bestiary, a popup panel, etc... a new feature, basically).
I really like your ideas here, but I consider DevilutionX a chocolate port; meaning that we are going to be very conservative about the changes we make to the game. There are other attempts at developing a modern take on Diablo 1, but for a lot of people these end up having so many changes that it ends up changing the game for them. For version 1.0.x we want to have the same bugs as the original game, for 1.x we will be fixing things that are definite bugs and adding some optional enhancements to the engine.
Also discussing it on GitHub doesn't feel like the right place, I would recommend joining the chat where the community can engage and we can have some more feedback from other viewpoints.
but I consider DevilutionX a chocolate port; meaning that we are going to be very conservative about the changes we make to the game.
Never heard of that term before, thanks for the link.
I understand where you are coming from, but from some of the discussions and proposals here, like the complete UI revamp, I thought the scope of new features wasn't going to be that limited. If we really want to have feature parity with the original and only focus on mostly bugs and code redesign, then I agree this change I'm proposing is not fit for the repo.
Also discussing it on GitHub doesn't feel like the right place, I would recommend joining the chat where the community can engage and we can have some more feedback from other viewpoints.
I'm sorry, I'm just used to discussing these topics in github itself as I feel they are important to expose to everybody looking into these issues in the future to understand the rationale going for each change (see discussions on C# language features, for example, like this https://github.com/dotnet/csharplang/discussions/164). Actually, that issue has now been converted into a "discussion", which seems to be a new feature of github.
I see this is not what we tend to do here so my apologies. You have already pointed me to the discord chat and I'll try to use that for future discussions.

I understand where you are coming from, but from some of the discussions and proposals here, like the complete UI revamp, I thought the scope of new features wasn't going to be that limited.
Having an informal chat about ideas can sometimes be good to figure out the scope of an issue since they can be a bit more free form. Having the discussion in the issue itself will make it a bit daunting for late comments to see what needs to be solved. I do appreciate the effort and level of details you put into your issue reports. Even though it requires me to read more than I usually do :D
Tbh it is probably a chocolate, chocolate chip port so there is room for considering some tweaks. This somewhat comes down to how Diablo historically has received mods (there is no way to support exe replacements) and our desire to support a very wide range of devices.
Closing as it is outside of scope