dungeons-of-moria / umoria

Moria: a roguelike Dungeon Crawler game | Umoria Source Code
https://umoria.org
GNU General Public License v3.0
345 stars 74 forks source link

Added color support #59

Closed acahir closed 2 years ago

acahir commented 2 years ago

Color support added for many items in main cave display (seams, monsters, treasure, doors, stairs, etc). Also added color to minimap.

Dynamic color added to character, stats, chp, and mana. As these values change, color changes as warnings (green, orange, red for good, warning, critical).

Also added support for multi-color strings used in battle messages to highlight hits and misses. Item descriptions (inventory/equip list) would be logical next area for improvement. Changes would be involved, but straighforward to convert to a multicolor_msg type given how the strings are built up.

mrcook commented 2 years ago

Hi acahir, thanks for the PR, however, I don't believe this is appropriate for inclusion. When Andrew Weber made the umoria-color additions we were in contact and he decided to keep it as a separate project. As I'm sure you've already seen, he is still active on it.

The goal of this repository was as a "restoration" project rather than adding new features: so updates to run on modern OS and some refactoring and modernising of the code - as noted in the README.

Adding a colour option in the future might be desirable, but only after the display code has been abstracted to allow both ncurses and SDL (or similar) support. I actually think both the display and control input code need abstracting, but either of those alone would be a huge task, and as you can see from my recent lack of commits, not something I'm likely to tackle in the near future.

Thanks again, Michael.

acahir commented 2 years ago

I wasn't aware of the umoria-color project, so I'll check it out. I had added color support to a copy of 5.6 I had found back in 2017 after getting it to compile on macOS, so it wasn't a lot of work forward porting from that. Have to say, finding my way through this code was a lot easier, thanks for the update/cleanup!