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

Refreshable Entity Databanks #487

Open
UltimaOath opened this issue Jun 4, 2024 · 0 comments
Open

Refreshable Entity Databanks #487

UltimaOath opened this issue Jun 4, 2024 · 0 comments
Assignees
Labels
priority: normal Normal priority status: thoughts wanted Thoughts from the community are desired type: improvement Add or adjust a feature

Comments

@UltimaOath
Copy link
Collaborator

Refreshable Entity Databank [RED]

Could include Autonomous Global Experiences System [AGES] features for better implementation;
#456 (comment)
Concept is outdated to LM4's present setup but idea is easily converted if this is of interest.
TLDR Provides a set of tags to reference based on experiences the mob has, updated on the nametag/async timer.

This idea incorporates this feature request
Prefix/Suffix/Titles for Mobs/Nametags:
#325

In general the idea is that we have a PDC setup for the contents of these tags. Each tag outputs to %tag-name% where name comes from the name provided for that tag. Next to the name is what the value of that %tag-name% outputs. These can be static values, such as giving it different ids based on different custom rule implementations. These can also be referencing an external PAPI tag. When these are used, the value of that particular tag is populated following the rules of the nametag update timer and PVM; where it updates to whatever value the nearest player to it produces within the proper range (otherwise, zero or null).

The idea is that these tags can update various things about the mob based on their existence, from it's nametag to it's attributes and possibly even it's level. On the basic side, I could apply a tag similar to "home": ['Underdark'], which would output to %tag-home%, and place this tag in the nametag: field. Now any mob which has a tag called 'home' generated from their entity's PDC, will output the value to the tag; and any mob which does not have the tag would output a null, empty; nothing.
A more advanced version would be a tag like "aurapower": ['%auraskills%']. A mob given this tag will have it null, or empty, until the first pass of the PVM/nametag update pass and it identifies the nearest player to it and then replaces the placeholder tag with the value produces by the nearest player. Now that the value is populated with the initial value, it will remain at that value until updated again.

There are a few other options, like adding a space before or after the output of the tag, mostly for nametags. Also, merge would work slightly differently. Merge would be default to true, and would need to be set to false to disable (not specified means merge true). When true, all tags are added to a mob and any tag which already existed is replaced with the new tags. When false, all previous tags are erased and then new tags are added.

  settings:
    entity-data:
      merge: true
      single-space-suffix: true
      single space-prefix: true
      databank:
        "home": 'Underdark'    #  "tag-name": ['Output']
        "job": 'Mining'
        "lastplayer": '%level%'
        "aurapower": '%auraskill%'

  settings:
    nametag: 'lvl |  %tag-home%%tag-job%%displayname%  |  hp'

    attribute-modifier:
      max-health: '%tag-aurapower% * %max-health%'
    
    construct-level: '(%tag-lastplayer% * %rand_-2_2%) + %weighted-random%'
@UltimaOath UltimaOath added type: improvement Add or adjust a feature priority: normal Normal priority status: thoughts wanted Thoughts from the community are desired labels Jun 4, 2024
@UltimaOath UltimaOath self-assigned this Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: normal Normal priority status: thoughts wanted Thoughts from the community are desired type: improvement Add or adjust a feature
Projects
None yet
Development

No branches or pull requests

1 participant