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 relic activation ability #42391

Merged
merged 3 commits into from
Aug 4, 2020
Merged

Conversation

anothersimulacrum
Copy link
Member

Summary

SUMMARY: Features "Add activation abilities and charges to relics"

Purpose of change

Requested by @KorGgenT to further obsolete the artifact code.

Describe the solution

Encapsulate all the charge info about relics in a relic_charge_info struct - then allow specifying variations of this in the relic_procgen_data.

Add simple placeholder versions to this data, along with active effects for it to provide.

Attempt to recharge relics when processing them.

Testing

Spawn in a relic, activate it. See that it gives you pain. Wait for more than 6 hours, see that the relic has recharged.

Additional context

relic1
relic2

@anothersimulacrum anothersimulacrum added <Enhancement / Feature> New features, or enhancements on existing [C++] Changes (can be) made in C++. Previously named `Code` Artifacts Otherworldly items with special effects labels Jul 23, 2020
src/item.cpp Outdated Show resolved Hide resolved
@KorGgenT
Copy link
Member

This is an excellent start! I want these things for the procgen in order to be as flexible as possible:

  • A "range" of max charges (the artifact spawns with a max charges of between x and y)
  • a range of time (the artifact can recharge every z time which is between x and y)
  • a range of charges_per_use
  • these ranges are ranges in the procgen_data only, the artifact should have a singular number
  • All of these should have power level values
  • give active_procgen_values a power level as well, per spell
  • in relic::power_level() and relic_procgen_data::power_level() add all these up

I believe all of these features will make for very well-rounded procedural generation rules for artifacts.

Encapsulate all the charge info about relics in a relic_charge_info
struct. Additionally, add a template struct, and allow using this to
specify variants of relic charge info in relic_procgen_data.

Add simple placeholder versions to this data, along with active effects
for it to provide.

Attempt to recharge relics when processing them.
Copy link
Member

@KorGgenT KorGgenT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is the only thing i encountered upon generating an artifact.
The other thing i mentioned on discord (artifacts not showing up in the a menu) imo could/should be a follow up PR and not block this PR from merging.

src/relic.cpp Outdated Show resolved Hide resolved
@KorGgenT
Copy link
Member

KorGgenT commented Aug 4, 2020

image
i don't know what's going on here.

@anothersimulacrum
Copy link
Member Author

#42693

src/relic.cpp Outdated Show resolved Hide resolved
@KorGgenT KorGgenT merged commit e1ebc7b into CleverRaven:master Aug 4, 2020
@anothersimulacrum anothersimulacrum deleted the rilec branch August 4, 2020 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Artifacts Otherworldly items with special effects [C++] Changes (can be) made in C++. Previously named `Code` <Enhancement / Feature> New features, or enhancements on existing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants