Data/Actors/ModelAspect

# Model Aspect

#### Description

Filters on the context in which the current game is being observed, in terms of whether it is a live game or a replay.

#### ModelAspectDuring

* **Any:** Any kind of game or replay.  Prevents a model aspect from being filtered on this field at all.
* **Hijacked Game:** Viewing a live game that was hijacked from a replay.
* **Live Game:** Viewing a live game, including one that may have been hijacked from a replay.
* **Non Hijacked Game:** Viewing a live game that was not hijacked from a replay.
* **Replay:** Viewing a replay.

#### Description

Filters which label(s) the person in the chair must or must not have.

#### Description

If the aspect rule passes, the model to swap into the owning CActorModel.

#### Description

Filters on the owning playerId of the target model. Accepts input in a form like 1 or 1,12 or 1-5, or any combination thereof.

#### Description

Filters on the team belonged to by the owner of the target model. Accepts input in a form like 1 or 1,12 or 1-5, or any combination thereof.

#### Description

Filters which label(s) the owner of the target model must or must not have.

#### Description

Filters on whether the owner of the target model is a human or a computer.

#### ModelAspectModelOwnerType

* **Any:** Any kind of player, whether human or computer.  Prevents a model aspect from being filtered on this field at all.
* **Computer:** The owning player is an AI.  (This does not include human players that are having a computer stand in for them temporarily because they have disconnected.)
* **Human:** The owning player is a human.

#### Description

Optional name for the aspect. Sent as an identifying parameter by several ModelAspect system messages.

#### Description

While observing, filters on the playerId of the observed player. Accepts input in a form like 1 or 1,12 or 1-5, or any combination thereof.

#### Description

While observing, filters on the team belonged to by the observed player. Accepts input in a form like 1 or 1,12 or 1-5, or any combination thereof.

#### Description

While observing, filters on whether the observed player is a human or a computer.

#### ModelAspectObservedPlayerType

* **Any:** Any kind of player, whether human or computer.  Prevents a model aspect from being filtered on this field at all.
* **Computer:** The observed player is an AI.  (This does not include human players that are having a computer stand in for them temporarily because they have disconnected.)
* **Human:** The observed player is a human.
* **Human Observer:** The observed player is a human that is observing the game (or was, in the case of a replay).
* **Human Participant:** The observed player is a human that is playing the game (or was, in the case of a replay).

#### Description

Filters on the point of view (PoV) through which an observer is watching the game. Only applies for observers.

#### ModelAspectObservingPoV

* **Any:** Does not matter from which perspective the observer is viewing.  Prevents a model aspect from being filtered on this field at all.
* **Default Observed Player:** Viewing from the special observer playerId, as implemented in Heroes of the Storm.
* **Everyone:** Viewing from the everyone perspective, as implemented in SC2.
* **Player:** Viewing from a specific playerId.
* **Team:** Viewing from a player belonging to a specific teamId.

#### Description

Filters on the kind of person sitting in the chair, playing or watching the game.

#### ModelAspectPerson

* **Any:** Any kind of participant or observer.  Prevents a model aspect from being filtered on this field at all.
* **Observer:** Any observer, whether spectator or referee.
* **Participant:** A player actively playing the game.
* **Referee:** A player that is observing the game with special referee status.
* **Spectator:** A player that is observing the game in the standard way.

#### Description

Filters on how the person in the chair regards the owner of a target CActorModel, in terms of alliances.

#### ModelAspectRegardsAs

* **Ally:** The model is an ally of the viewing player, but not the viewing player himself.
* **Any:** Irrelevant who owns the target model.  Prevents a model aspect from being filtered on this field at all.
* **Enemy:** The model is an enemy of the viewing player.
* **Friendly:** The model is either owned by or is an ally of the viewing player.  Logically equivalent to a combination of Self and Ally.
* **Neutral:** The model is neutral with respect to the viewing player.
* **Not Self:** The model is not owned by the viewing player, and can be ally, enemy or neutral.
* **Self:** The model is owned by the viewing player.
* **Teammate:** The model is owned by a teammate of the viewing player.  Models owned by the viewing player are not considered teammates.

#### Description

Specifies additional custom tests to be performed before validating the aspect.

#### ModelAspectTest

* **Message:** The aspect sends a ModelAspectTest message with an optional subName.  If the client data responds to the message with a ModelAspectConfirm message, then that aspect passes the message test and may be selected if it passes its remaining criteria.  This test enables arbitrary sets of terms to help select a given model aspect.
* **None:** The default.  No additional tests filter whether the aspect is chose.