Assemberist / cppRpg

0 stars 0 forks source link

Refactor interface, spell-shop and inventory. #17

Closed Assemberist closed 5 months ago

Assemberist commented 2 years ago

TUI had not union plan and it was designed step by step. Required after #14 Required after #13 Required after #16

Assemberist commented 2 years ago

Gamer should be possible to see effects of objects. Window of effects should be added.

Assemberist commented 2 years ago

Text fields can't use more elements than it request the strings on creation.

Assemberist commented 2 years ago

Code can be separated to 3 common parts:

  1. Graphical functionality (card and text_field).
  2. Game core (object and all parts that it include).
  3. "Business-logic" (all other functions).
Assemberist commented 2 years ago

There is too much elements that uses text fields (spell choose, inventory, spell shop, log). Requirements and object system for text_field should be updated.

Assemberist commented 2 years ago

log was used for effect calculation and executed actions logging. It can be replaced in separate core module.

Assemberist commented 2 years ago

Enemyes don't need menu's so it can be placed in separate structure to not transfer it in structure screen.

Assemberist commented 1 year ago

Instruction in README is obsolete. It should be updated.

Assemberist commented 1 year ago

Un/equip opertions returns bool. This enough to check result of operations but it makes calculation of position real items dificult. It can be reworked: Un/equip can return iterator instead bool to show irght position of element.

Assemberist commented 1 year ago

Makefile should be updated but it should be done last.

Assemberist commented 1 year ago

Main loop of user interface contains many strings. Part of blocks code takes too much attention because it is simple (but long) instructions what to do. This coed can be replaced with new functions with names that describe only performed action. User interface is not timing-critical part so here we can use two-three of additional calls. Also many of functionality is duplicated so this step can improve code.

Assemberist commented 1 year ago

Blocker-activity #20 was created. Flow of an improvements during this feature will be also moved here.

Assemberist commented 1 year ago

There is too much elements that uses text fields (spell choose, inventory, spell shop, log). Requirements and object system for text_field should be updated.

Menu used for part of this objects. Different types of elements handled here but most operations same. Menu can be changed to templated class or union functionality can be moved to new separated class menu.

Assemberist commented 1 year ago

Menu's are used only in user_ifc/user_ifc_lib modules. So them may not be part of struct screen. Log perhaps will be accessed anywhere (or only in this modules) so it can be also removed from the structure. Also this classes can be changed to static in user_ifc/user_ifc_lib.

Assemberist commented 1 year ago

21 was implemented without possibility of hide help. It is needed or not?

Assemberist commented 1 year ago

Permanent effects have field time but it is not needed. Every object have propertyes. But from programm side it also enum-type and 1 value. It can be united in 1 field.

Assemberist commented 10 months ago

There is menu implemented in ncurses. It can be used instead of my bycicles.

Assemberist commented 9 months ago

31 is suitable as part of refactoring.

Assemberist commented 8 months ago

Statusbar is planned. It should describe current mode (action). And also log used to describe chosen object in observe mode. It is ok, but numeration is "cut eyes". New class can be implemented in graphical library (like label).

Assemberist commented 8 months ago

Menu-based classes inventory and inventory_with_owner are similar. They can be collapsed to one class.

Assemberist commented 5 months ago

There is too much separated activities were created from the ticket. All improvements for implementation were moved to separate activities, so the issue can be closed in the release.