ToroCraft / LegendaryLoot

GNU General Public License v3.0
0 stars 0 forks source link

Determine loot chance #2

Open zeriley opened 6 years ago

zeriley commented 6 years ago

My thought is that the tougher the enemy, the more likely they should drop good gear, which may not be how Diablo III does it, but think it makes sense. A good standard for determining enemy toughness tends to be max HP + armor. Initial thought would be that a zombie with 20 max hp and 2 armor points would have a 22/1000 chance to drop a legendary item; the Wither with 600 hp would have a 600/1000 chance to drop a legendary item.

In addition, there should be math to determine the number of drops possible. Could also be based on max HP. Something like every 10 HP, there is a 5% chance they'll drop an item, determined individually, so an enemy with a max HP of 20 could drop two pieces of loot, but is very unlikely to because each drop has a 5% chance.

Naturally, we'll have to play around with it to determine what the numbers will be, but this is more as a general approach of using max HP to determine both number of drops and drop rarity.

Thoughts?

frodare commented 6 years ago

My vote would be to only ever have one legendary drop at a time.

Also, I think we need a way to classify the loot first. Like this is a level 230 item. Then drop better loot the stronger the enemies get. Maybe that is too complex?

I guess one question is, will this be like Destiny and Diablo, where there same item has different "levels" or souls where pretty much everything always drops at the same level.

zeriley commented 6 years ago

I would like to not limit it to one legendary at a time, but rather have the chances be low enough that you're only likely to get one legendary at a time. But I think a Wither should have a high chance of dropping a legendary, plus a couple uncommons, and a rare, for instance.

Definitely Destiny and Diablo style. Each drop has stat rolls which are determined by the slayer's level (level being determined by gear quality; cumulative attack and defense power). Which introduces some issues... If the slayer is not a player, etc.

Also Diablo drops different loot on each client and only the client can see those drops. Maybe we should do the same. So that any enemy that dies can drop loot based on each player's level. So you kill a Wither with three other players and each player gets a sword from him. One player gets a 200 attack power sword, one gets a 30 attack power sword, and another gets a 4000 attack power sword.

zeriley commented 6 years ago

Additionally, legendaries only drop after level 70 in Diablo, so we should maybe do something similar. Player level (again attack + defense power) needs to be over 300 for legendaries to drop.

frodare commented 6 years ago

the drop should be effected by the enemy too right? That way you can't keep getting better and better gear from low level mobs.

zeriley commented 6 years ago

Nope. You can get a legendary weapon from a baby zombie in Diablo III. Motivates you to kill everything.

zeriley commented 6 years ago

Although that does raise an issue with max HP. With Rifts, we'll be scaling all enemy HP up to crazy amounts eventually, so we can't use a set ceiling for the chance.

Maybe the difficulty scaling should be a separate mod?

zeriley commented 6 years ago

We could use the base max hp to determine the chance, so that low-level mobs are unlikely to give you legendaries. Then we can scale without fear of throwing off loot chance.

frodare commented 6 years ago

I guess what I was thinking is the "roll level" of the item would affected by the enemy that dropped it, and not entirely based (or not at all based) on the player that killed it.

zeriley commented 6 years ago

Summing up our side discussion we had on gchat:

Add weapon attack damage (strongest weapon in inventory) + equipped armor defense to get a player level. Use that player level to determine the level of the weapon dropped (weapon level determines base attack power and stat roll range). Use the adjusted max HP to determine the stat, so that lower HP enemies weight towards the bottom of the stat roll range, and higher HP enemies weight towards the top of the stat roll range.