Closed Assemberist closed 5 months ago
Gamer should be possible to see effects of objects. Window of effects should be added.
Text fields can't use more elements than it request the strings on creation.
Code can be separated to 3 common parts:
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.
log was used for effect calculation and executed actions logging. It can be replaced in separate core module.
Enemyes don't need menu's so it can be placed in separate structure to not transfer it in structure screen.
Instruction in README is obsolete. It should be updated.
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.
Makefile should be updated but it should be done last.
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.
Blocker-activity #20 was created. Flow of an improvements during this feature will be also moved here.
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.
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.
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.
There is menu implemented in ncurses. It can be used instead of my bycicles.
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).
Menu-based classes inventory and inventory_with_owner are similar. They can be collapsed to one class.
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.
TUI had not union plan and it was designed step by step. Required after #14 Required after #13 Required after #16