• This project
    • Loading...
  • Sign in

tome / Tales of MajEyal · Merge Requests

GitLab

  • Go to group
  • Project
  • Activity
  • Files
  • Commits
  • Builds 0
  • Graphs
  • Milestones
  • Merge Requests 57
  • Labels
  • Forks
  • Snippets
  • Network
Merged
MR Merge Request !692 opened
2020-12-11 06:55:47 UTC by Ryan Yappert @RootOfAllThings

Resource-ification project for Life, Feedback, etc.

Expands the resource system and streamlines some edge cases into the main resource paradigm.

Resource definitions are rather finicky, and the Feedback change deprecates the psionic_feedback actor parameter, so this will break saves.

Changelog

  • Life and Feedback are now actual resources, as opposed to pseudo-resources. Among other effects, this means that they easily appear in talent descriptions, along with new talent descriptors sustain_life, drain_life, and drain_feedback.
  • Resource system expansions:
    • New no_reset flag for a resource definition. Resources flagged as such don't reset to full on level up or actor birth (as part of Actor:resetToFull()).
    • All resources automatically generate an Actor:regenFoo(fake, force) function. By default, this increases the resource (or decreases for decrementing resources) based on the regen_prop supplied in the definition. fake=true prevents the actual regeneration, force=true prevents the result from being bounded by the resource limits (i.e. force=false returns the actual delta, force=true returns the ideal delta).
    • All resources automatically generate a foo_rating parameter (subject to overwrite in params). They also automatically an Actor:levelupIncFoo function. This is part of levelup and is expected to interpret the foo_rating parameter. The default function increases max_foo by foo_rating, but can be over/superloaded.
    • The individual levelupIncFoo functions are moved collectively to Actor:resolveResourceRatings(), called during levelup.
    • New function_overrides table can be passed as part of defineResource. This is a fancy way of overloading functions in this framework rather than overloading them elsewhere (e.g. when defining Life, passing {regenFunction = function(self, fake, force) ... end} rather than defining elsewhere _M:regenLife)
    • The regenResourcesFast framework is deprecated, due to the loss of the assumption that resource regeneration is a simple process. Tinkering with returning it to life.
  • UI Changes
    • On the life bar and character sheets, the life regen and psi regen displayed now appropriately account for T_SOLIPSISM; if life regen is being reduced to regenerate psi instead, the displayed life regen will be appropriately smaller. Thus, the delta on a given turn (outside of combat, obviously) now matches the numbers displayed.
    • In character sheets, Feedback now is its proper yellow color instead of the odd light-green-blue. This makes it consistent across the resource bars, character sheets, and talent descriptions.
  • AI Changes
    • New no_want flag for a resource definition. Resources flagged as such don't generate want entries in improved_tactical AI. This is done to prevent double-checking shenanigans for Life, in particular.
    • The AI will probably continue to not amazingly handle the resource changes, because the regen_prop can now easily lie (e.g. feedback_regen isn't used to handle feedback degeneration).
  • Various tweaks here and there to support Feedback no longer being a pseudo-resource.

Update 12/21/2020

  • Major changes to how Life is interpreted. The life gained from Constitution is now computed in Actor:getMaxLife which means the max_life parameter now lies a lot. As such, you should always use the getter.
  • Similar changes to Mana, Stamina, and Psi to reflect their attribute dependence.
  • Multipliers to max life from sustains (Last Stand, Icy Skin, Chant of Fortress) are moved into Actor:getMaxLife to alleviate snapshotting bugs. For cleanliness, multipliers to resources from temporary effects weren't changed.
    • Debating the introduction of a foo_mult_add property to make this a bit more general, but I've added about a dozen new parameters with this MR alone.
  • Actor.die_at is now respected by Actor:getMinLife. This means that Actor:getMinLife should be used in place of accessing the raw Actor.die_at for life calculations.
  • Sweeping changes to a million talents, effects, UI, and AI to make them properly use getters and setters instead of accessing raw parameters.
    • The Air meter now shows your real degeneration if you're standing on a tile you can't breathe on.
  • Consistency pass on "execution" mechanics like Blade Shear and Coup de Grace to make them respect the changes to Actor:getMinLife. They're all worded the same, they should all operate the same with regards to enemies at negative life. Previously, they had inconsistent behavior about executing these enemies.
Edited 2021-11-26 14:38:24 UTC
Request to merge RootOfAllThings:resourcification into master
×

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch https://git.net-core.org/RootOfAllThings/t-engine4.git resourcification
git checkout -b RootOfAllThings/t-engine4-resourcification FETCH_HEAD

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git checkout master
git merge --no-ff RootOfAllThings/t-engine4-resourcification

Step 4. Push the result of the merge to GitLab

git push origin master

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines

CI build passed for 9f7c3808. View details
CI build skipped for 9f7c3808. View details
CI build canceled for 9f7c3808. View details
CI build failed for 9f7c3808. View details
CI build running for 9f7c3808. View details
CI build pending for 9f7c3808. View details

Merged by DarkGod 2021-10-26 10:03:21 UTC

  • Discussion 1
  • Commits 6
  • Builds 0
  • Changes 70
  • Ryan Yappert
    @RootOfAllThings commented 2020-12-11 07:01:45 UTC

    Added 1 commit:

    • dabf7032 - polop (res_def.ai.no_want)
  • Ryan Yappert
    @RootOfAllThings commented 2020-12-21 23:20:01 UTC

    Added 2 commits:

    • efc265af - WIP regenResourcesFast change.
    • 0ad45908 - Use Actor:getMaxLife() or else.
  • DarkGod
    @darkgod commented 2021-04-29 13:01:05 UTC

    mentioned in merge request !708

  • Ryan Yappert
    @RootOfAllThings commented 2021-10-01 23:11:41 UTC

    Added 569 commits:

    • 0ad45908...b5e41cbe - 568 commits from branch tome:master
    • 8a0253b9 - merges changes from resourcification
  • Ryan Yappert
    @RootOfAllThings commented 2021-10-02 03:42:36 UTC

    Added 1 commit:

    • 9f7c3808 - Cleanup crappy merge leftovers, helper function for common operation.
  • DarkGod
    @darkgod commented 2021-10-26 10:03:21 UTC

    Status changed to merged

  • DarkGod
    @darkgod commented 2021-10-26 10:03:21 UTC

    mentioned in commit 11f6e0ff

  • Please register or login to post a comment
692 of 849
Prev Next
Assignee
No assignee
Assign to
No
Milestone
None
Assign milestone
0
Labels
None
Assign labels
  • View labels
3
3 participants
Reference: tome/t-engine4!692
×

Revert this merge request

Cancel
A new branch will be created in your fork and a new merge request will be started.