Data/Actors/Quad

## Quad (WIP)

### Description

Actor capable of automatic scaling between two points which is often used to indicate the predicted path of abilities during selection and casting

### Hints

* When scaling the **Actor: Center Actor**s are created for the entire height and then hidden if the quad scaled length is less than the height.
* If the length of the scaled quad is less than the sum of the heights of the **Actor: Launch Actor** and **Actor: Impact Actor** actors no **Actor: Center Actor** will be revealed and the Y axis scale of both actors will be equally adjusted to fit them.
* When changing the scale of the quad, revealed **Actor: Center Actor**s scale along their Y axis based on the **Actor: Center Height** between half and the full height before revealing or hiding an actor and readjusting their scale to fill between the launch and impact actor
* The **Quad** actor itself must create the **Region** type actor used for automatic scaling.
* The scope of the hosting of the **Quad** actor is important for automatic scaling and must be within the scope of a unit and not an effect. This means what actor is used to host the quad will affect if it scales properly.
* The **Actor: Notify Closest Scale Key** field of the **Region** actor determines which quad actor to scale and only accepts actor ID, aliases and ::scope or ::global actor references meaning the ::Creator system reference cannot be used.
* The scale is determined by the **Hosting: Host - Subject** host and scope of the **Closest To Ref Key** field of a **Query Persistent** actor event action used by the region actor.

## Example Usage

### Penetrating Shot Indicator

A scaled Quad created during the prepare phase of using the Ghost - Penetrating Shot ability scaling between the caster and target point.

#### URL

The Ghost - Penetrating Shot ability is present in the editor by default.

### Creep Spray Guide

A non scaled Quad created by the Creep Tower when selecting where to cast the Digester - Creep Spray ability to indicate the direction and length of the creep path created

#### URL

The Creep Tower is present in the editor by default.

## Fields Description

### (None): Decoration - Flags

* Enables or disables creation of the **Actor: Decoration - Actor** actors

### (None): Filter At Creation

* Filters for what players the actor is created depending on their alliance relative to the caster source or target.

### (None): Host Impact - Actor

* **Actor Find:** Means the actor is found using the scope of the effect
* **Creation:** Creates the subject actor
* **Implicit:** is the default

### (None): Host Impact - Effect

* The effect whose scope is used in combination with the **(None): Host Impact - Scope** field to determine valid subjects

### (None): Host Impact - Fail If No host

* Destroys the actor if no valid subject actor can be found

### (None): Host Impact - Scope

* **Implicit:** is the default but gives an error message if using the scope of an effect
* **Scope Caster:** Uses the scope of the caster of the effect to choose the caster unit as the subject
* **Scope Effect:** (Unknown)
* **Scope Missile:** (Unknown)
* **Scope Outer:** (Unknown)
* **Scope Source:** Uses the scope of the source of the effect to choose the source unit as the subject
* **Scope Target:** Uses the scope of the target of the effect to choose the target unit as the subject

### (None): Host Impact - Subject

* Actor, alias or reference used to determine the actor the quad faces

### (None): Host Impact Site Operations - Hold Position

* Makes the quad only look for the impact bearings once on creation
* Not useful if the quad has to follow a target

### (None): Host Impact Site Operations - Hold Rotation

* Makes the quad only look for the impact rotation once on creation
* Not useful if the quad has to follow a target

### (None): Host Impact Site Operations - Operations

* Site operations applied relative to the impact subject actor when hosting

### (None): Player ID Source

* **Auto:** (Unknown)
* **Containing Scope:** (Unknown)

### (None): Visible To

* Hides the actor for certain alliance groups
* **All:** Hides the actor from all players. Pretty pointless since actors can use the invisible model if they are not to be visible.
* **Ally:** Allies of the player cannot see the actor
* **Enemy:** Enemy players cannot see the actor
* **Neutral:** Neutral players cannot see the actor. Pretty pointless since neutral is almost always NPC.
* **Self:** The player themselves cannot see the actor

### (None): Visible To At Creation

* Hides the actor for certain alliance groups relative to the caster source or target.

### (None): Visible To Players

* Specific player numbers who cannot see the actor

### Actor: Add To Proximity System

* Makes hovering the mouse cursor over this actor highlight the parent unit

### Actor: Aliases

* Aliases that refer to the actor in Events or in Hosting as a subject

### Actor: Center Actor

* Model type actor used to tile the height of the actor between the launch and impact actors
* The number of center actors spawned is (**Actor: Height** - **Actor: Impact height** - **Actor: Launch Height**)/**Actor: Center Height**

### Actor: Center Height

* Max height of each center actor used to determine how many to spawn relative to the **Actor: Height** of the quad.

### Actor: Decoration - Actor

* Model type actor used for the decoration
* The actor is created at the host for the quad and travels along the length of the quad before being destroyed at the impact

### Actor: Decoration - Spawn Interval

* How frequently the decoration actor is spawned

### Actor: Decoration - Travel Function

* **Bias:** Decoration actor moves faster/slower as it approaches one end
* **Gain:** Decoration actor moves faster/slower at the ends compared to the middle
* **Linear:** Decoration actor moves at a constant speed. Default value

### Actor: Decoration - Travel Function Param

* Accepts values between 0 and 1
* Acceleration factor for the decoration actor movement. Values <0.5 cause the actor to slow and values >0.5 cause the actor to speed up

### Actor: Decoration - Travel Speed

* Height units per second the decoration actor travels at when not modified by the travel function

### Actor: Filter

* Determines what players can see the actor depending on their diplomatic status eg. Nuke Target/Indicator

### Actor: Filter Players

* Determines what player numbers can see the actor

### Actor: Flags

* Yes this actor has two!
* **Align Vertically On Origin:** (Unknown)
* **e\_actorQuadFlagIgnoreLaunchAndImpactForHeight:** (Unknown)
* **Forward Anim Messages To Center Actors:** (Unknown)
* **Forward Anim Messages To Impact Actor:** (Unknown)
* **Forward Anim Messages To Launch Actor:** (Unknown)
* **Forward Messages To Decoration Actor:** (Unknown)
* **Preserve Proportions During Width Scaling:** (Unknown)
* **Respect Width Scaling:** (Unknown)

### Actor: Flags

* **Add To External Finder:** (Unknown)
* **Not Saved:** Actor is not saved so is not preserved when doing a save/load cycle
* **Responds To Unit Player Change:** Updates the player ID of the actor if the host unit changes ownership for adjusting the player colour of the actor
* **Skip Preload**: (Unknown)
* **Suppress Creation Errors:** Stops error messages generated by this actor in the debug window when testing the map
* **Vision Test Center Only:** (Unknown)

### Actor: Fog Visibility

* Determines how the actor appears under the fog of war
* Limited by the setting of the **UI: Fog Visibility** field under the Units data type

### Actor: Impact Actor

* Model type actor used to tile the height of the actor near the impact

### Actor: Launch Actor

* Model type actor used to tile the height of the actor near the host

### Actor: Quad

* Used to determine the centre point of the quad relative to the host (Min) or impact (Max) locations
* If the Quad actor is created by the cursor of an ability this field can be used to set the height of the quad however this method is unreliable.
* Values for dimensions are overridden by the **Actor: Height** and **Actor: Width** fields.

### Actor: Scope Bearing Tracking

* (Not Sure) Determines whether the Quad updates its position and rotation from the host or not

### Actor: Sharing

* Determines to what degree the same actor is shared by a unit if there are multiple functions referring to it
* **Always:** means the actor is always shared
* **None:** means the actor is never shared
* **Per Effect Tree:** means that effects within an effect tree share the actor but different effect trees can't

### Event: Events+

* Series of minitriggers that determine the motions and visual effects of the model
* Covered in detail in the Events section of the wiki
* Must use an **Actor Creation** actor event to use a **Create** action to create the **Region** type actor used for auto scaling

### Event: Macros

The Event Macro actors used to supplement the events

### Hosting: Host - Actor

* **Actor Find:** Means the actor is found using the scope of the effect
* **Creation:** Creates the subject actor
* **Implicit:** is the default

### Hosting: Host - Effect

* The effect whose scope is used in combination with the Hosting: Host - Scope field to determine valid subjects

### Hosting: Host - Fail If No Host

* Causes the model to be automatically destroyed if no host

### Hosting: Host - Scope

* **Implicit:** Is the default but causes an error message if the subject is to be found using the scope of an effect
* **Scope Caster:** Uses the caster unit of the effect scope as the subject
* **Scope Effect**: (Unknown)
* **Scope Missile:** (Unknown)
* **Scope Outer:** (Unknown)
* **Scope Source:** Uses the source unit of the effect scope as the subject
* **Scope Target:** Uses the target unit of the effect scope as the subject

### Hosting: Host - Subject

* The actor, alias or reference that this actor is hosted on
* Can use \_Unit or \_Selectable for undefined hosting eg. buffs
* The scope of the host cannot be an effect or auto scaling will fail

### Hosting: Host For Properties - Actor

* **Actor Find:** Means the actor is found using the scope of the effect
* **Creation:** Creates the subject actor
* **Implicit:** is the default

### Hosting: Host For Properties - Effect

* The effect whose scope is used in combination with the Hosting: Host For Properties - Scope field to determine valid subjects

### Hosting: Host For Properties - Fail If No Host

* Causes the model to be automatically destroyed if no host

### Hosting: Host For Properties - Scope

* **Implicit:** Is the default but causes an error message if the subject is to be found using the scope of an effect
* **Scope Caster:** Uses the caster unit of the effect scope as the subject
* **Scope Effect**: (Unknown)
* **Scope Missile:** (Unknown)
* **Scope Outer:** (Unknown)
* **Scope Source:** Uses the source unit of the effect scope as the subject
* **Scope Target:** Uses the target unit of the effect scope as the subject

### Hosting: Host For Properties - Subject

* The actor, alias or reference that this actor inherits properties from

### Hosting: Host Site Operations - Hold Position

* Locks the model in position according to the global 2D grid system but still allows for rotation relative to the host unit

### Hosting: Host Site Operations - Hold Rotation

* Prevents the model turning relative to the host and locks it in the direction it was created in relative to the global 2D grid system while still allowing movement

### Hosting - Host Site Operations - Operations

* This field is for applying all SOps that affect this model
* Determines where it is attached, the offset, the rotation and a lot more
* The order in the list is important with SOps being applied from top to bottom so an offset, offset and rotation is not the same as an offset, rotation and an offset
* For more details about SOps please look at the individual pages for each SOp

### Hosting - Host Supporter - Actor

* **Actor Find:** Means the actor is found using the scope of the effect
* **Creation:** Creates the subject actor
* **Implicit:** is the default

### Hosting: Host Supporter - Effect

* The effect whose scope is used in combination with the **Hosting: Host Supporter - Scope** field to determine valid subjects

### Hosting: Host Supporter - Fail If No Host

* Causes the model to be automatically destroyed if no host

### Hosting: Host Supporter - Scope

* **Implicit:** is the default but gives an error message if using the scope of an effect
* **Scope Caster:** Uses the scope of the caster of the effect to choose the caster unit as the subject
* **Scope Effect:** (Unknown)
* **Scope Missile:** (Unknown)
* **Scope Outer:** (Unknown)
* **Scope Source:** Uses the scope of the source of the effect to choose the source unit as the subject
* **Scope Target:** Uses the scope of the target of the effect to choose the target unit as the subject

### Hosting: Host Supporter - Subject

* Actor, alias or reference refered to by the **::Supporter** system reference for Events

### Properties - Accepted Property Transfers

* When this actor is in the Hosting: Host - Subject field of another actor, this field determines what properties are able to be inherited from this actor
* **Cast Shadows:** allows the attached actor to cast shadows
* **Cloak Effect:** allows the attached actor to show the cloaking bluish effect
* **Decal:** allows the attached actor to show the host unit decal
* **Local Tint Color:** (Unknown)
* **Model Scale:** makes the actor inherit the scale for the host model
* **Opacity:** spreads the opacity set by the Set Opacity event to attached actors
* **Physics State:** (Unknown)
* **Scale:** Transfers the scale of the host actor to the attached actors
* **Team Color:** Makes the attached actor show the team colour if it can
* **Time Scale:** Means the animations of the attached actor are the same as the host actors timescale
* **Tint Color:** If this actor is tinted actors hosted on it will inherit the tint
* **Visibility:** Allows the attached actor to share the host actor's Actor - Fog Visibility
* **Warp Group:** (Unknown)

### Properties - Accepted Transfers

* **Animation Properties:** (Unknown)
* **Animator:** (Unknown)
* **Fog Of War Color:** (Unknown)
* **Fog Of War Shader:** (Unknown)
* **Model:** (Unknown)
* **Model Materials:** (Unknown)
* **Position:** (Unknown)
* **Rotation:** (Unknown)
* **Status:** (Unknown)
* **Textures:** (Unknown)

### Properties - Inherit Type

* Determines how often the host properties are inherited
* **Continuous:** means the properties are continuously inherited from the host
* **None:** means properties are not inherited from the host
* **Once:** means properties are only inherited on actor creation

### Properties - Inherited Properties

* This field determines what properties are able to be inherited from the actor in the **Hosting - Host - Subject** or **Hosting - Host For Properties - Subject** field
* **Cast Shadows:** allows the attached actor to cast shadows
* **Cloak Effect:** allows the attached actor to show the cloaking bluish effect
* **Decal:** allows the attached actor to show the host unit decal
* **Local Tint Color:** (Unknown)
* **Model Materials:** (Unknown)
* **Model Scale:** makes the actor inherit the scale for the host model
* **Opacity:** spreads the opacity set by the Set Opacity event to attached actors
* **Physics State:** (Unknown)
* **Scale:** transfers the scale of the host actor to the attached actors
* **Team Color:** makes the attached actor show the team colour if it can
* **Time Scale:** means the animations of the attached actor are the same as the host actors timescale
* **Tint Color:** If the host actor is tinted this actor will inherit the tint
* **Visibility:** allows the attached actor to share the host actor's Actor - Fog Visibility
* **Warp Group:** (Unknown)