Data/Effects/Load Container

### Explanation

The word container here is generic term, designating 3 types of containement: Transport ability, Inventory ability or Arm Magazine ability.

The simplest way to see this effect would be to imagine your Medivac casting an ability that INSTANTLY makes the targeted unit part of its cargo. This effect doesn't require range, but requires has some conditions for succeeding.

* One generic condition is that, it is impossible to load a unit that's currently inside another container unit and that, even if using an "Iterate" effect that aims inside the container unit. Only an external unit can be claimed.

### Known Bug

Once this effect has affected a unit, this unit cannot be released from a Release Magazine effect. This is a bug.

### Transport interactions

Tested with the medivac transport ability has shown some interesting features:

* If the targeted unit is not customized to be inside a cargo (no cargo value on its unit field), the effect will never be able to load this unit into the container unit (medivac), since this unit isn't configured for it.
* The effect also respects the transport ability's validator and filters. No actual transport can carry a burrowed unit, and the effect will end up null on them.

### Arm Magazine interactions

Tested with the arm magazine ability has shown interesting features:

* The first slot in the info section (00) remains the only reference the unit's placement range, flags, etc. Even if you configure a unit in there, the Loaded unit from this effect always obeys this first slot.
* Stealing a unit that is already part of another Magazine creates some hysterical outcomes, especially if the unit is external. Further testing would demonstrate in which container it will end up returning to, if idle. Yet, conflicted units seems to be highly confused and tend to have a seizure on trying to return to both magazines at once. Further more, both container units count this unit as their own, which makes things even more complicated. To solve all of this, make sure to include a Release Magazine effect into the pool of effects to unbind the unit from its original owner.
* The settings in the arm magazine ability that will possess this unit are relevant. The leash range, flags, angle, all these fields are taken into account except for the max count and any requirements. To solve this, it is probably required to have a validator check the current amount of units inside the magazine (perhaps use a behavior on possessed unit since no validator exist to determine a magazine size yet). There is also another problematic regarding the target unit's location. When using this effect, the unit will simply start over from the Arm Magazine's ability Launch type. Also, in some situations, it will copy the new container's facing. Solving the position problem can be done with a teleport effect, as for the facing, probably using a precusor unit from a Create Unit effect, just for temporary reference for facing direction. Otherwise, it would be welcome from Blizzard to add an option that prevents this.
* Using the effect twice on a unit that was already loaded inside self's magazine generate another count of unit inside the magazine. Odd part, this is very same unit, and not a duplicate. This means that if this unit dies, all the dummy spots generated by over using this effect will be dismissed.
* If using on any unit and the user loses track of this unit (example using it on a mineral field and not remembering which), consider adding a behavior on it when loaded, something that uses an actor showing that this unit is controlled by a container unit. Otherwise, retrieving it can be troublesome.

### Example use:

If a unit devours another unit, the victim will go inside his belly (a transport ability that accepts enemy units). If set with a reasonable range (for visual effect of the caster eating the unit), this effect will teleport the victim directly inside the caster's belly (transport abil). Back in the past before patch 5.0, it was possible to do, but it required a more complicated work around. For example, you could make a unit be loaded in the transport, but you had to use an issue order that obliges the caster to try to load the unit, at the proper moment of another ability. Now with this effect, it's a direct impact, from any range at will.

## Field Categories

### (None): Container Abil

Which ability is to be the receiver of the loaded unit.

* If no ability is specified, the effect will choose any ability.
* If an ability is specified, the effect will never fill up any other similar ability, as long as the name doesn't match.

### (None): Container Type

The type of containement ability that is to be filled with the target unit.

Use this field to avoid confusion. These flags are the "container" abilities type.

* **Any:**Takes any suitable ability that will work, that is valid as well. It doesn't seem to pick randomly, nor does it fill another ability once another one is full. It is unclear/untested how this priotizes the ability type.
* **Inventory:** Will fill up an Inventory ability only.
* **Magazine:** Will fill up an Arm Magazine ability only.
* **Transport:** Will fill up a Transport ability only.

### (None): Container Unit

Which location unit with a valid ability, which will receive the target unit.

* If this unit doesn't have a matching ability for the least, this effect will just return null.
* Whether the modder uses Caster or Target, etc, this makes sense as long as the **Which Unit** is a valid relative unit. For example, it doesn't make sense that the container unit be the target unit, and the **Which Unit** be the target unit as well. This would mean that the target unit has to go inside itself (like eating itself up). That doesn't make any sense and will return null. The effect however, will still have run (for actor purpose).

#### Effect

Parent effect used to relate the value from.

#### Value

Location of unit that is the receiver (which has the container ability)

### (None):Which Unit

Which location of unit will be moved inside the container. Stats of this unit are considered for filters or validators that allow the effect to move it successfully.

#### Effect

Parent effect used to relate the value from.

#### Value

Location of unit that is loaded inside the container unit.