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

Add support for experimental flag #6304

Draft
wants to merge 3 commits into
base: base
Choose a base branch
from
Draft

Add support for experimental flag #6304

wants to merge 3 commits into from

Conversation

zach2good
Copy link
Contributor

@zach2good zach2good commented Oct 2, 2024

I affirm:

  • I understand that if I do not agree to the following points by completing the checkboxes my PR will be ignored.
  • I understand I should leave resolving conversations to the LandSandBoat team so that reviewers won't miss what was said.
  • I have read and understood the Contributing Guide and the Code of Conduct.
  • I have tested my code and the things my code has changed since the last commit in the PR and will test after any later commits.

What does this pull request do?

As seen in the AV commit:

---@type TMobEntity
local entity = {}

entity.experimental = true

entity.onMobSpawn = function(mob)
    ...

This allows us to mark an entity as experimental at the engine level. We'll use this to hook in messaging, remove loot drops, make fights unwinnable, etc.

The goal is to start allowing partial implementations of things into the codebase while providing an intrusive and player-facing mechanism to mark them as incomplete.

An experimental mob/npc will:

  • Announce to the log and all players in range that it's experimental and incomplete on spawn/engage/deathtrigger/trade. This message cannot be turned off easily.
  • Not produce any loot/exp/prizes on kill/trigger/trade (settings dependant)
  • Buff itself up to 2-3x its starting level (settings dependent)

TODO:

  • Refactor entity:printToArea() to be usable on mobs, and for the messaging/args around it to be clearer.
  • Add an arbitrary range :printToRange() helper
  • Hook up the relevant settings for experimental loot disable and experimental level buffing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant