Editing Tooltips
- Editing Hotkeys
Explains where to find hotkey entries and how to edit them
Table of Contents
Introduction to Tooltips
Path: Fleet Operations\Data\dynamic_localized_strings.h
Most of the in-game text (tooltips / verboseTooltips) is edited directly via the ODFs, without any special steps. However, these in-game tooltips are limited by how much text they can display and the type of formatting that is permitted.
For displaying longer, more complex text (paragraphs and special symbols), as well as providing text messages (relayed from the Events.dat file as explained in Sound Editing) it is necessary to use the dynamic_localized_strings.h file.
Note that this file is editable without compromising multiplayer compatibility.
Using the Dynamic Localized Strings File
The Dynamic Localized Strings allow you to create relays for your text entries.
When opening up Fleet Operations' ODFs, you will certainly see tooltip strings which begin with "AUTOTOOLTIP". This naming convention is created by the Fleet Operations' Development Tools and is not hardcoded. You can use whatever name you like, as long as the dynamic_localized_strings.h key and the reference in the ODF / events.dat file are the same (and they were not used earlier in the dynamic_localized_strings.h). For example, "MYMOD-Gigablaster".
ODF tooltip entries can take the following format - note that the string can have spaces between words and that each string (both the relay and the tooltip) are enclosed in quotations followed by a comma:
"My_ODF_Entry_Here_with or without spaces", "The text I want to have appear in-game",
In addition to determine what text appears on screen, entries within the Dynamic Localized Strings also determines the packaging of the text, unlike a tooltip within the ODFs.
The following entry is organized line by line within the dynamic_localized_strings.h file and will appear exactly like this in-game:
"AUTOTOOLTIP-domW_warfrigateZ1.odf", "
Damage
Shot Delay
Weapon range: Long
Dominion torpedo weapons are armed with
a small package of subspace particles,
contained in a multi-phase forcefield.
These Tetryons penetrate most matter,
including common armor types. They deal
heavy damage, although their effect
radius is limited compared to
antimatter based weaponry
",
Events.dat file text entries (like those for indicating resources being transferred, or being attacked) share the same format:
"My_Event.dat_Entry_Here_with or without spaces", "The text I want to have appear in-game",
Decoding the Symbols
Another advantage of using the dynamic_localized_strings.h file as a relay for tooltips is that you can add additional symbols that would not serve any function in a simple ODF string.
It is recommended that you use Notepad ++, in order to gain access to several features which will be most helpful for determining what the strange symbols that appear in lieu of numbers actually mean. To see the numbers in the Dynamic_Localized_Strings.h it is necessary to click the tab called "Encoding" in Notepad ++ and "encode in UTF-8". You should get a display of many black characters that seem to make no sense.
Although it is a bit messy, to edit existing numbers, simply highlight the UTF-8 black characters and click TextFX --> TextFX Convert --> Convert text to hex (any of the 8,16,32,64,128). This will display the characters in hexadecimal notation, which can allow you to change them.
Of course, it is far simpler to simply delete the references while in UTF-8 mode and add your own.
To do this, simply type in the Hex code that corresponds to the value in Fleet Ops. Highlight that value and click TextFX --> TextFX Convert --> Convert Hex to text . This will convert the hexadecimal notation into text that can be read by the game.
Note that if you want to add multiple characters side by side at the same time, simply insert an "x" before the Hex code in question. For example:
x81x7F // This hexadecimal notation corresponds to the number 10
Here is the translation matrix for what they are used for in Fleet Operations. Note that any numbers appear as red characters in-game (symbols, if any, by ISO 8859-1).
Decimal | Hex | Symbol | Used in FO for |
127 | 7F | 0 | |
129 | 81 | 1 | |
141 | 8D | 2 | |
143 | 8F | 3 | |
144 | 90 | 4 | |
157 | 9D | 5 | |
160 | A0 | 6 | |
173 | AD | 7 | |
190 | BE | ¾ | 8 |
215 | D7 | × | 9 |
187 | BB | » | + |
188 | BC | ¼ | - |
247 | F7 | ÷ | special weapon energy |
149 | 95 | • | bullet point |
189 | BD | ½ | . decimal separator (dot) |
172 | AC | ¬ | yellow avatar text referring to "Units Granted" |
174 | AE | ® | yellow avatar text referring to "Abilities Granted" |
182 | B6 | ¶ | yellow avatar text referring to "(Avatar)" |
183 | B7 | · | yellow mixed-technology text referring to "(Mixed-Tech)" |
171 | AB | « | gray passive text referring to "(passive)" |
161 | A1 | ¡ | yellow support vessel text referring to "Support Vessel" |
168 | A8 | ¨ | white text referring to "Fighter Carriers ()" |
169 | A9 | © | white text referring to "Troopships ()" |
133 | 85 | … | symbol for Dilithium |
134 | 86 | † | symbol for Tritanum (Latinum) |
135 | 87 | ‡ | symbol for Supply (Biomatter) |
153 | 99 | ™ | symbol for Collective Connections (Metal) |
137 | 89 | ‰ | symbol for Crew (UNTESTED) |
128 | 80 | € | € |
Translating the Dynamic Localized Strings into Other Languages
There are several projects now open in the forums to translate the Dynamic Localized Strings file into, for instance, German and French. These changes will not harm compatibility and are welcomed by the developers. Here are some pages where people are undertaking this task.
- http://www.fleetops.net/component/option,com_smf/Itemid,3/topic,6522.msg128386/#msg128386
- http://www.fleetops.net/component/option,com_smf/Itemid,3/topic,7974.msg132533/#msg132533
- http://www.fleetops.net/component/option,com_smf/Itemid,3/topic,6473.msg107930/#msg107930
- http://www.fleetops.net/component/option,com_smf/Itemid,3/topic,6724.msg111569/#msg111569
Unfortunately the Dynamic Localized Strings cannot support Mandarin (or Korean, Japanese etc) characters very well as Armada is not unicode capable - thus a complete conversion of all strings is nearly impossible so far. This is on long-term to do as it is so complex.
Armada II is limited to ASCII and extended ASCII - in other words, the first 255 symbols.
Calculating Unit Values
In Fleet Operations, the Offensive, Defensive, and System Value are “atomic values”. This means that these values are used to define and calculate all the various numbers that can be found in the ODFs. Note that factions may give bonuses that are applied to these atomic values, and these modified values are then rounded to the nearest integer. Consequently, using the values you see in-game to calculate values for Fleet Ops units can result in small errors.
Since many of the calculations for values within the ODFs are heavily interrelated, they can get quite complex and cannot be described simply enough to be placed here without the programs themselves (or without pages of formulas).
Here is a handy tool made in collaboration with Blade / Apoclaydon, using Excel, which should greatly ease calculations: Unit Value Calculator
Offensive Value
Note that the following calculations cannot yet properly account for multi-targeting or variable damage weapons.
Damage per Offensive Value Point:
Beam Weapons = 0.4113
Torpedo Weapons = 0.5263
Pulse Weapons = 0.5365
Calculations for One Weapon
To calculate Offensive Value for one weapon type (either Beam, Torpedo, or Pulse weapons), you can use the following formula:
Damage Base per Shot / (Average of all Shot Delays * Damage per Offensive Value Point)
Thus, Damage Base per Shot is defined by the following calculation:
Offensive Value * (Damage per Offensive Value Point) * Average of Shot Delays
Calculations for Multiple Weapons
To calculate Offensive Value for multiple weapon types, it is necessary to add up the results from the first formula. In other words:
[Damage Base per Beam Shot / (Average of all Beam Shot Delays * Beam Damage per Offensive Value Point)] + [Damage Base per Pulse Shot / (Average of all Pulse Shot Delays * Pulse Damage per Offensive Value Point)] + [Damage Base per Torpedo Shot / (Average of all Torpedo Shot Delays * Torpedo Damage per Offensive Value Point)]
Round the number to the nearest integer.
Defensive Value
Defensive Value is composed of Shield and Hull Hitpoints. Therefore, there are a number of equations that can be put to use:
Defensive Value = [ Hull Defensive Value + Shield Defensive Value ] / 2
Hull Defensive Value = [(Hull Hitpoints / 18) ^ (10/11) ] / (Percent of HP made of Hull)
Shield Defensive Value = [(Shield Hitpoints / 18) ^ (10/11) ] / (Percent of HP made of Shields)
Shield Hitpoints = [(Shield Defensive Value * (Percent of HP made of Shields))^1.1] * 18
Hull Hitpoints = [(Hull Defensive Value * (Percent of HP made of Hull))^1.1] * 18
Round the calculated Defensive Value to the nearest integer.
When No Shields
Defensive Value = 2* [(( 0.5 *Hull Hitpoints) / 18) ^ (10/11) ]
Round the calculated Defensive Value to the nearest integer.
Shield and Hull Regeneration Rates
Shield Regeneration Rate: (Total Hitpoints of Shields/1000) + ((System Value^1.4) * 0.023)
Hull Regeneration Rate: 0.5 ( (Total Hitpoints of Hull/1000) + ((System Value^1.4) * 0.023) )
For units that only have hull hitpoints, the calculation is slightly different: (Total Hitpoints of Hull/2000) + ((System Value^1.4) * 0.023)
Subsystem Hitpoints
Total hull strength divided by the number of subsystems (usually 5 for vessels, 4 or 3 for structures) and added to the System Value (as determined below) will give the approximate amount of hitpoints that each subsystem should have.
System Value
Total special weapons energy is defined by the System Value alone:
Reverse engineered, that means to calculate System Value:
Round to the nearest integer in all cases.
Energy Regeneration Rate
The special weapon energy regeneration rate is split into two broad categories for Fleet Ops units (with some exceptions due to passives).
Support vessels always take 104 seconds to regenerate their full amount of energy. This is defined by [(Total Energy) / (Energy Regeneration Rate)] = 104 seconds.
All other units (including structures) always take 120 seconds to regenerate their full amount of energy.