Data/Actors/Site Operation (Random Point in Circle)

## Site Operation (Random Point In Circle)

### Description

Used to randomise the position of visual effects. Cannot affect gameplay mechanics, but if only the visual portion needs to be random this is a very simple solution.

### Hints

* May need alot of fine tuning to get just right
* The distributions don't always work as they should based on their mathematical definitions
* In most cases this doesn't matter as it would take a lot of samples to reconstruct the probability distribution
* The angle coordinate seems to be tied to a uniform distribution regardless of settings
* This page currently only details the **Random Point In Circle** variant, the **Random Point In Sphere** is the same plus another uncontrollable angle coordinate but **Random Point in Crossbar** uses different distribution functions
* Add to Action actor **Combat: Impact Site Ops - Operations** field for a semi random impact visual

## Example Usage

### Thor Barrage Variance

Used to randomise the impact effects during the Thor's 250mm Strike Cannons barrage. Its derivates each have their own SiteOp.

#### URL

The Thor is part of the core game, no URL is needed. To access the 330mm Barrage and Odin's Barrage you must have Campaign Dependencies enabled.

## Fields Description

### Actor - Aliases

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

### Actor - Distribution

* The probability distribution used for the radial coordinate. The exact interactions with other input parameters are explained in their respective entries. \*Note that since the circumference scales with the radius the "area density" of chosen points decreases towards larger radii even when using a Uniform distribution. To learn more about these distributions refer to Wikipedia or your favorite textbook on statistics.
* **Exponential:** An exponential falloff function. Note that "exponential" is very fast.
* **Gaussian:** The well-known "bell curve", it has a large falloff zone then quickly becomes near-zero like the Exponential distribution.
* **Uniform:** Equal probability for all values. Has no intrinsic falloff, but as noted above the visuals still "thin out" due to area scaling.

### Actor - Filter

* Determines what players can see the actor depending on their diplomatic status eg. Nuke Target/Indicator
* Pointless as this actor has no visuals

### Actor - Flags

* **Add To External Finder:** (Unknown)
* **Not Saved:** (Unknown) used by all temporary Model actors
* **Scale To Host:** overrides any scaling the actor has and sets it to the host Unit actor
* **Suppress Creation Errors:** (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
* Pointless as this actor has no visuals

### Actor - Hold Position

* If enabled the actor with this SOp is locked in the position relative to the global map grid but turns to face the desired direction
* Useful for stationary abilities or structures that have parts which need to face a moving target

### Actor - Hold Rotation

* If enabled the actor with this SOp is locked with it's rotation facing the direction of creation relative to the global map grid

### Actor - Mean

* The Mean, Expected or "average" value of the distribution
* **Exponential:** This value is used as the scale, the inverse of the falloff rate; This should be the same order of magnitude as the Radius field as the probability quickly approaches zero. Using negative values can generate points outside the desired radius.
* **Gaussian:** (unconfirmed) This should set the maximum of the bell curve, allowing the creation of ring-like effects.
* **Uniform:** The Uniform distribution has no free parameters, this field should have no effect (unconfirmed)

### Actor - Radius

* (Unconfirmed) The intended maximum radius upon which the probability distribution is calculated.
* An Exponential distribution with a negative Mean value can generate points outside this radius.

### Actor - Restrict To Circumference

* Only generates points in a circle defined by the Radius field, disabling radial randomisation
* Doesn't seem to apply the chosen distribution function for the angle, always uses a Uniform distribution (unconfirmed)

### Actor - Sharing

* Determines to the extent the actor is shared
* **Always:** makes the actor always shared
* **None:** makes the actor never shared
* **Per Effect Tree:** makes the actor only shared amoung one effect tree
* Sharing this actor type would probably break the randomisation effect (unconfirmed)

### Actor - Variance

* The Variance parameter for the probability distribution
* Only affects the Gaussian distribution, the others don't have enough free parameters
* This is the square of the standard deviation/"sigma" parameter usually used for this distribution
* Very small values don't yield thin rings of points, either due to area scaling or because of bad coding
* Indeed setting this field to 0 doesn't produce the "delta distribution" (which leaves the Mean as the only possible value) and instead produces a rather uniform spread, unless the Mean is also zero in which case this SiteOp produces no change

### 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
* Apparently have no effect on SOps

### Event - Macros

* The Event Macro actors used to supplement the events

### Hosting - Host Supporter - Actor

* **Actor Find:** (Not Sure) means the actor has to be found using the scope
* **Creation:** (Not Sure) is the actor that creates this actor is given priority for hosting if there is a choice of several
* **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
* As this actor has no visuals this field is pointless
* **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:** (Unknown)
* **Visibility:** allows the attached actor to share the host actor's Actor - Fog Visibility
* **Warp Group:** (Unknown)

### Properties - Accepted Transfers

* As this actor has no visuals this field is pointless
* **Animation Properties:** (Unknown)
* **Animator:** (Unknown)
* **Fog Of War Color:** (Unknown)
* **Fog Of War Shader:** (Unknown)
* **Model:** (Unknown)
* **Position:** (Unknown)
* **Rotation:** (Unknown)
* **Status:** (Unknown)
* **Textures:** (Unknown)

### Properties - Inherit Type

* As this actor has no visuals this field is pointless
* 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 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:** (Unknown)
* **Visibility:** allows the attached actor to share the host actor's Actor - Fog Visibility
* **Warp Group:** (Unknown)
* As this actor has no visuals this field is pointless

### Related

* Actors
* Model (actor)

## Wiki Notes

Data obtained through casual observation; not confirmed through rigorous experiments or viewing the source code. This is very important due to the nature of randomness and probability. Also, most humans (including the original author) have a very bad instinctive grasp for random chance and probability, which quickly leads to erroneous assumptions.