I now have added functioning armor to the game so I have been able to do significant prototyping of the combat system. There are still a lot of things that aren’t implemented that will make a difference, but I can still go ahead and state the basic design goals of the system I want.
The most critical goal of the combat system is that it is not random at all. This is something that I really liked from desktop dungeons and added a fun strategic element where you need to calculate several turns in advance. I’m hoping a little bit of that will rub off into GTLAR and allow for some strategic encounters. I achieve this by having all creature’s damage and armor values constant and visible on the interface. You can use this to calculate exact outcome of a turn. The formula is very simple:
Damage Inflicted = Maximum(Attack – Armor,1)
The maximum there just forces all attacks result in at least 1 HP damage be done, even if the armor would be sufficient to block it. This system is non random and is simple to understand… but it also is boring. It doesn’t really allow much creativity in weapons. For instance, in Brogue there are weapons that have a chance to inflict effects on monsters (Paralyze, Death, ect). This percent chance effect violates my non random rule, so it is not allowed. To combat this I have introduces a critical hit mechanic. It is currently a bar that is incremented when you are hit. Once the bar is full your next attack will be classified as a critical hit. The effect of a critical hit will be determined by the gear you are wearing (mostly weapon and rings) but will allow for interesting effects. I think this will add interesting dynamic of trying to build your critical hit up to use against certain enemies. The only downside is that its growth is triggered by getting hit, which almost encourages getting hit. I’m still brainstorming ideas to combat this.
The above screenshot shows the damage and armor indicator in the top left corner as well as the critical bar. It’s also possible that all of this could change as more of it gets implemented and it gets refined more. The end result is that I want combat to be fun and for the player to have to make meaningful decisions.