Attributes determined via Level Trees #316
Labels
priority: normal
Normal priority
status: confirmed
Confirmed by a maintainer
type: improvement
Add or adjust a feature
Milestone
All of this was listed here in the Discord:
https://discord.com/channels/752310043214479462/757933745620779033/904041595983253605
It was in response to the idea (though I have been working on something similar for my 'LM4 suggestions'
https://discord.com/channels/752310043214479462/760051505067458590/903982514119516200
-- SECTION ONE --
In this section, I have a normal multipliers section as we currently have it, however I have added the config option
use-exact-values: true
. If this is not included, by default we would havefalse
and use the currently established multiplier system as default.However, with this set to
true
as demonstrated above, the values listed below would use a different formula when calculating the amount added to the entity (in a similar fashion to how LM originally handled this I believe from memory).finalValue = defaultValue + ((entityLevel / maxLevel) x configValue)
For example, if I have an entity that spawns in vanilla default with
30hp
, with LMmaxLevel: 25
. Using the values demonstrated above, if I spawned this entity atlvl20
, the final amount of health the entity at that level would have is:150 = 30 + ((20 / 25) x 150)
The final applied HP would be
150hp
.-- SECTION TWO (PART 1) --
In addition to the above section, I would recommend the addition of the following new
constructed-multipliers:
system of applying attributes to entities in a structured, tiered method. This can be used as the full multiplier arrangement for all entities, or using Custom Rules, they can be limited or adjusted to needs and wants (certain entities being easier at various tiers, or perhaps biome specific levelling structures, or special types of entities at random chance, etc.). As this system was designed for my LM4 ideas, I had to restructure things a bit.This system would use the level assigned by the levelling strategy, and then refer to the table of attributes which are being added together tier by tier to formulate a final attribute value. Below I've copied the first half of this section for easier reference:
For the purposes of explaining how the levels override each other:
If a level has been singled out, such as
1:
above, then that will take priority over any other listing of the level within a range.If a level range fits within another level range, such as
1-4
and1-10
, then the smallest range will be processed first, IE 1-4.Using the numbers above, the attributes would be added as follows (described in detail below):
default+1+2+2+2+3+3+3+3+3+3
-- SECTION TWO (PART 2) --
As this is arranged, a level 0 entity, or unlevelled, would be considered default vanilla attributes with no change by LM.
For the purposes of this section I will be using a fake entity with the following vanilla attributes:
On the first line of the
constructed-multipliers:
, I am specifying that all level 1 entities will be given a movement speed increase of0.05
from their default values. Since the default for my entity is0.2mvs
, then my new movement speed is0.2mvs+0.05
.From there we have a tier that includes level 1, even though I have already listed this level. However, since I do not have movement-speed listed within this tier of attributes, there's no worry of conflict. If I had it listed within this range, the override rules would take effect, and the single level would win out on the application of the attributes.
In the ranged
1-2:
section:With Level 1, I would take the entity's default attribute and refer to the table. I only have the
max-health:
attribute listed, so using the values above, I will take the entity's default attributes and add3
. That means the LVL1 entity has30hp+3
. It would still retain the increasedmovement-speed:
from the prior increase as well.With Level 2, since it's in the same range, I do the same steps as before. However, I now need to take any prior addition into account. So far all that's been changed was the health. A level 1 entity has
33hp
, so a level 2 entity would have33hp+3
. It would still retain the increasedmovement-speed:
from the prior increase as well.With Level 3, we have our first new tier of constructed attributes. Now we have two attributes to modify: the health and attack damage. Since nothing else has been changed, that means we're still using the default values for those attributes; except for the movement-speed, which was altered previously. We will use the most recent alteration as the added amount.
36hp
, so a level 3 entity would have36hp+5
, since this tier increases the hp by 5 points per level listed.2.5atk
, and this tier adds2
, that means a level 3 entity would have2.5atk+2
.0.2mvs+0.05
.With Level 4, we are repeating the same steps once again since it's in the same range. We're going to modify the health and damage again, retaining the movement-speed from prior edits, and any remaining are still at the default values.
41hp
, so a level 4 entity would have41hp+5
, since this tier increases the hp by 5 points per level listed.4.5atk
. Since this tier adds2
, that means a level 4 entity would have4.5atk+2
.0.2mvs+0.05
.From here, Level 5 is the same as all the prior steps before, just with even more multipliers. This is getting quite lengthy so I won't bore with this part. Anything not previously established would use the default value, anything that has been established would use the cumulative amount on top of default.
I have an excel spreadsheet that helps explain this, and have included a screenshot with a demonstration of how this would apply over 25 levels with an imaginary set of alterations made. On the left are those
constructed-multiplers:
, and on the right would be the final amount that the imaginary entity would have at each level, to help demonstrate the effect.The text was updated successfully, but these errors were encountered: