FLAMES® supports a simple yet extremely flexible mechanism for specifying the relationships between Units (players) in a scenario. Using team objects and alliance objects, you can quickly and easily define an unlimited number of teams, an unlimited number of alliances, and almost any conceivable relationship between teams.
Team objects define the name of a team and the default background color used to draw the 2D icons of the Units that belong to the team. The team to which a Unit belongs is specified as a part of the definition of the Unit.
Units (and teams) can be related in one of three ways: they can be allies, enemies, or neutral. Units are automatically allies if they belong to the same team. However, by default, all teams (and, hence, all Units that belong to different teams) are neutral toward each other. To make one team an ally or enemy of another team, you define an alliance object.
Alliance objects list the teams that are allies (i.e. members of the alliance) and the teams that are enemies of the allies. Alliance objects can also list other alliance objects as allies or enemies thereby allowing ally and enemy relationships to be grouped and nested.
All ally relationships are mutual. For example, if TeamA is an ally of TeamB, then TeamB is automatically an ally of TeamA. However, enemy relationships are not automatically mutual. For example, if one alliance lists TeamB as an enemy of TeamA, then TeamA is not automatically an enemy of TeamB. To make TeamA an enemy of TeamB, another alliance must list TeamA as an enemy of TeamB.
Alliance objects define the “true” relationships between teams. “Perceived” relationships, such as “suspect” and “unknown,” are established and maintained during scenario execution by the models attached to individual Units (depending on the functionality of the models).