-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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 weariness and activity sidebar display and panels, display effects on weariness in effect description #46340
Conversation
630c32f
to
5797dcb
Compare
@@ -1027,6 +1061,30 @@ static void draw_stats( avatar &u, const catacurses::window &w ) | |||
mvwprintz( w, point( 25, 0 ), c_light_gray, _( "PER" ) ); | |||
mvwprintz( w, point( stat < 10 ? 30 : 29, 0 ), stat_clr, | |||
stat < 100 ? to_string( stat ) : "99+" ); | |||
|
|||
int weariness = u.weariness_level(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think these weariness levels belongs with stats, which is for DEX, STR, INT, and PER. If you do it this way, when you also force the user to arrange the weariness bar under the stats bar for things to look correct. Why not add a two-line weariness bar?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I stated in the commit adding these panels, I think the weariness and activity level displays are very important, while the stuff I included in the panel is a bit more extraneous, and would be something that would make a lot of sense to give up if you're short on log space.
I don't feel strongly this way, and am definitely open to changing it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that we should go with a two line weariness panel and default it to being enabled, but would prefer to see weariness added to the bottom of the Needs panel rather than the Stats panel if we want to make sure people see it.
I also want to support putting weariness anywhere in the side panel that the player wants, rather than splitting the basics into one of the current panels and then adding the details in a new panel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was going to say I don't think it fits better in stats than in needs, but I don't actually find myself very convinced by that.
I think I may need some time to think this over, there are good arguments for both methods.
5797dcb
to
43c6ce6
Compare
Spectacular work. I would suggest adding a blurb of text in the @ menu specifically telling you how bad you are at melee at this point in time. |
This tracks the highest activity level of the Character for the current turn and the last turn. Add hack for cases (such as diagonal moves with circular distances) to keep the last activity taken in the cache and not clear it. All of this commit will become obsolete when we have turn-granularity activity tracking. This is a little spotty, but it work wells enough.
This can be used to create a hp_bar or similar showing how far away the character is from the next weariness level.
Add weariness and activity level display to the stat panel (in all layouts except the classic one), and a separate weariness panel showing distance from weariness transition as well as the malus to the current activity level. I should rewrite this code to be more generic and reduce duplication. The basic info is included in the stats panel because it is fairly vital to know, but the transition and extent of the malus are more reasonable to not know if you want more space in the sidebar panels. The names and contextualization for the data could probably use some work.
Now that activity levels are publicly shown, these can explain their effects in detail.
43c6ce6
to
30fc49b
Compare
Summary
SUMMARY: Interface "Show weariness and activity level in sidebar panels"
Purpose of change
Fixes #44428
Alternative to #46193
I wanted to demonstrate how I thought this information should be displayed, instead of just saying that #46193 should be changed to meet my standards.
Now that we're displaying information about what activity level you're in, we can also display the exact penalties for proficiencies, as I have done in the effects menu.
I'm looking for feedback in particular on how I'm framing the UI, and the adjectives I'm using for activities and weariness.
Describe the solution
Add instantaneous activity tracking to Character
b1f41ba
This tracks the highest activity level of the Character for the current turn and the last turn.
Add hack for cases (such as diagonal moves with circular distances) to keep the last activity taken in the cache and not clear it.
All of this commit will become obsolete when we have turn-granularity activity tracking.
This is a little spotty, but it work wells enough.
Add weariness transition information function
e598d91
This can be used to create a hp_bar or similar showing how far away the character is from the next weariness level.
Add weariness and activity panel displays
17b93ad
Add weariness and activity level display to the stat panel (in all layouts except the classic one), and a separate weariness panel showing distance from weariness transition as well as the malus to the currentactivity level.
I should rewrite this code to be more generic and reduce duplication.
The basic info is included in the stats panel because it is fairly vital to know, but the transition and extent of the malus are more reasonable to not know if you want more space in the sidebar panels.
The names and contextualization for the data could probably use some work.
Show effects of weariness in effect description
43c6ce6
Now that activity levels are publicly shown, these can explain their effects in detail.
Describe alternatives you've considered
See #46193
In particular, I think that the speed panel here would be worth considering over the current malus display.
Testing
Classic:
Compact:
Labels:
Labels Narrow:
Effects:
Every state with the 'compact' sidebar layout:
Sidebar:
Recovering/Becoming more weary: