diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs
index 8ef194bdd4..5929b0baa3 100644
--- a/OpenRA.Game/Traits/TraitsInterfaces.cs
+++ b/OpenRA.Game/Traits/TraitsInterfaces.cs
@@ -36,13 +36,59 @@ namespace OpenRA.Traits
Dead = 32
}
- // NOTE: Each subsequent category is a superset of the previous categories
- // and categories are mutually exclusive.
+ ///
+ /// When performing locomotion or pathfinding related checks,
+ /// determines whether the blocking rules will be applied when encountering other actors.
+ ///
public enum BlockedByActor
{
+ ///
+ /// Actors on the map are ignored, as if they were not present.
+ /// An actor can only be blocked by impassable terrain.
+ /// An actor can never be blocked by other actors. The blocking rules will never be evaluated.
+ ///
None,
+
+ ///
+ /// Actors on the map that are moving, or moveable & allied are ignored.
+ /// An actor is Immovable is any of the following applies:
+ ///
+ /// - Lacks the Mobile trait.
+ /// - The Mobile trait is disabled or paused.
+ /// - The Mobile trait property IsImmovable is true.
+ ///
+ /// Note the above definition means an actor can be Movable, but may not be Moving, i.e. it is Stationary.
+ /// Actors are allied if their owners have the relationship.
+ /// An actor can be blocked by impassable terrain.
+ /// An actor can be blocked by immovable actors *if* they are deemed as blocking by the blocking rules.
+ /// An actor can be blocked by an actor capable of moving, if it is not an ally and *if* they are deemed as
+ /// blocking by the blocking rules.
+ /// An actor can never be blocked by an allied actor capable of moving, even if the other actor is stationary.
+ /// An actor can never be blocked by a moving actor.
+ ///
Immovable,
+
+ ///
+ /// Actors on the map that are moving are ignored.
+ /// An actor is moving if both of the following apply:
+ ///
+ /// - It is a Moveable actor (see ).
+ /// - The Mobile trait property CurrentMovementTypes contains the flag Horizontal.
+ ///
+ /// Otherwise the actor is deemed to be Stationary.
+ /// An actor can be blocked by impassable terrain.
+ /// An actor can be blocked by immovable actors and stationary actors *if* they are deemed as blocking by the
+ /// blocking rules.
+ /// An actor can never be blocked by a moving actor.
+ ///
Stationary,
+
+ ///
+ /// Actors on the map are not ignored.
+ /// An actor can be blocked by impassable terrain.
+ /// An actor can be blocked by immovable actors, stationary actors and moving actors *if* they are deemed as
+ /// blocking by the blocking rules.
+ ///
All
}