LM4 / Entity Experiences Modifier #456
Labels
status: thoughts wanted
Thoughts from the community are desired
status: unconfirmed
Needs confirmation
status: waiting for approval
Waiting for approval from maintainers
type: improvement
Add or adjust a feature
Milestone
TLDR A modifier tag similar to
%mob-gainedexp%
which is populated by an internal value on each entity.I imagined a system which when configured would give an entity 'internal experience points' for certain configured events which a rule is listening for. A few suggested events to start would be 'when an entity has remaining health' (
formula: '(%entity-max-health-rounded% - %entity-health-rounded%) * 0.1'
) , 'when an entity has damaged a player' (formula: 'SQRT(%damage-output%)'
), and 'when an entity killed a player' (formula: '%players-killed-by-entity%'
). This would necessitate the creation of the tags%damage-output%
which simply reflects the last amount of damage which successfully output from the entity, stored on the same entity; as well as%players-killed-by-entity%
which reflects the number of players the entity has killed, starting with zero and increasing by one for each kill attributed to the specified entity stored on the same entity.Using the conditions above, when an entity comes into contact with a player and is engaged, if any of the configured events occur, the entity will store the internal experience gained by events such as entity damaging or killing a player; the remaining health would not need to be factored at this time. With this information saved during it's interaction with players, it does nothing to adjust the modifier value present on the entity (all of whom start with a modifier of zero). Assuming the entity is still alive at this stage, once a player has left the area of an entity which has interacted with them (once the entity has returned to it's neutral state when not hostile), and gained experience from that interaction OR their health points have reduced from their maximum, their modifier value is to be calculated. Whatever stored internal experience will be added to the modifier value and the stored experience is wiped. Then the output of the 'remaining health' is calculated and also added to the modifier value. With the new modifier value complete the entities' attributes can be recalculated using the adjusted modifier value in the form of the
%mob-gainedexp%
placeholder tag. This does not change the entities' level, but it would potentially change their stat values based on how the player incorporates the optional tag.The reason I suggest considering the separate mechanic of checking the health is because it is meant to be a consequence of a player choosing to knock entities down into pits and the like so they need not deal with them; but if the entity survives the fall it gains a boost to their stats from it and down the road will be a bigger hassle for the player to manage since they didn't handle the issue before. The same argument is said for when entities successfully hit a player or kill them and they survive the encounter; the entity is rewarded by a configured boost in it's stats.
While a cap mechanic would prevent this, should a user not wish to use a cap, this system could lead to funny intentionally over-buffed entities that are used for interesting purposes like protecting a home with a zombie trained via the modifier to be like a 1ko. But as said this is resolved with associated caps either per-check or for the modifier generally.
The text was updated successfully, but these errors were encountered: