Math is essential. Perhaps something like $calc(%variable1% - %variable2% + %variable3% * (%variable4% + %variable5%)), also %INT(), $round(), etc.
I also suggest having a variable for every stat of the ship that is currently available in the DEL menu. And in addition, add local variables, which return values for systems the display module is connected to. For example, if you connect a display module to a damage beam computer, the variable %Modules% returns the amount of damage beam modules connected to it. %damage% is the average damage per shot (added together, in the case of damage beam). %damage(1)% is the damage value of the first group per shot. %damage(2)% is the damage of the second group (if there is a second group, otherwise it returns nothing). Other examples of local variables would be, %reloadtime%, %Groupings%, %cooltime% (this would give a value between 1 and 100 for the percentage left to recharge on weapons or charged for a scanner/jump computer). For the sake of clarity, I would suggest limiting the number of of weapons/effect/whatever computers the display module can connect to be only 1.
If we want to go even further, we can have a scripting system as well. There could be "If/than/else/elseif", "for" loops, custom variables, and perhaps even functions (or methods as they are called in java). Though I think custom variables and functions should be set or scripted in a new block called a "Computer" and NOT in a display module. The display module would need to connect to a computer in order to call the function or custom variable. All functions would need to return a value in order to work - it could even be a blank value.
For example, when using a computer, you would have different tabs available to edit. One is the "variables" tab. In that, you can type something like "MyVariable=Word" or MyVariable=$calc(%shieldCap%-%shields). Then in an attached display module, the player can simply type "%MyVariable%" for it to return whatever it is set to, calculating the value if it need be.
Another example would be if a player opens up a computer, switches to the "Functions" tab, and creates a function. Here would be an example script that would be designed to display different info, depending on the state of the shields.
1. The player places a computer, opens the computer an adds the following to the "functions" tab:
MyScript{
If $calc(%shieldCap%-%Shields%) == 0 {
Then { return "SHIELDS ARE DOWN" }
ElseIf $calc(%shields%/%shieldCap%) < 1 { return "Shields are at: " $int($calc(%shields% / %shieldCap%))
Else { return "SHIELDS ARE FULL! YAY!" }
}
2. The player places a display module and connects it to the computer.
3. The player edits the text of the display module and types in simply: $MyScript
The result would be that the display module shows "SHIELDS ARE DOWN" if the shields are at 0. If somewhere in between full and empty, it shows the percentage of shields. And if full, it shows "SHIELDS ARE FULL! YAY!."
Of course, the options I discuss here could be implemented from simple to complex, but these would help improve the usage of display modules dramatically.