Class Formation
- Namespace
- TaleWorlds.MountAndBlade
- Assembly
- TaleWorlds.MountAndBlade.dll
public sealed class Formation : IFormation
- Inheritance
-
Formation
- Implements
- Inherited Members
- Extension Methods
Constructors
Formation(Team, int)
public Formation(Team team, int index)
Parameters
Fields
AveragePositionCalculatePeriod
public const float AveragePositionCalculatePeriod = 0.05
Field Value
Banner
public Banner Banner
Field Value
FormationIndex
public readonly FormationClass FormationIndex
Field Value
HasBeenPositioned
public bool HasBeenPositioned
Field Value
Index
public readonly int Index
Field Value
MaximumUnitSpacing
public const int MaximumUnitSpacing = 2
Field Value
MinimumUnitSpacing
public const int MinimumUnitSpacing = 0
Field Value
ReferencePosition
public Vec2? ReferencePosition
Field Value
- Vec2?
RetreatPositionCacheUseDistanceSquared
public const float RetreatPositionCacheUseDistanceSquared = 400
Field Value
RetreatPositionDistanceCacheCount
public const int RetreatPositionDistanceCacheCount = 2
Field Value
Team
public readonly Team Team
Field Value
Properties
AI
public FormationAI AI { get; }
Property Value
Arrangement
public IFormationArrangement Arrangement { get; set; }
Property Value
ArrangementOrder
public ArrangementOrder ArrangementOrder { get; set; }
Property Value
AttackEntityOrderDetachment
public AttackEntityOrderDetachment AttackEntityOrderDetachment { get; }
Property Value
BannerCode
public string BannerCode { get; set; }
Property Value
CalculateHasSignificantNumberOfMounted
public bool CalculateHasSignificantNumberOfMounted { get; }
Property Value
Captain
public Agent Captain { get; set; }
Property Value
ContainsAgentVisuals
public bool ContainsAgentVisuals { get; set; }
Property Value
CountOfDetachableNonplayerUnits
public int CountOfDetachableNonplayerUnits { get; }
Property Value
CountOfDetachedUnits
public int CountOfDetachedUnits { get; }
Property Value
CountOfUndetachableNonPlayerUnits
public int CountOfUndetachableNonPlayerUnits { get; }
Property Value
CountOfUnits
public int CountOfUnits { get; }
Property Value
CountOfUnitsWithoutDetachedOnes
public int CountOfUnitsWithoutDetachedOnes { get; }
Property Value
CountOfUnitsWithoutLooseDetachedOnes
public int CountOfUnitsWithoutLooseDetachedOnes { get; }
Property Value
CurrentDirection
public Vec2 CurrentDirection { get; }
Property Value
CurrentPosition
public Vec2 CurrentPosition { get; }
Property Value
Depth
public float Depth { get; }
Property Value
DetachedUnits
public MBReadOnlyList<Agent> DetachedUnits { get; }
Property Value
Detachments
public MBReadOnlyList<IDetachment> Detachments { get; }
Property Value
Direction
public Vec2 Direction { get; }
Property Value
Distance
public float Distance { get; }
Property Value
EnforceNotSplittableByAI
public bool EnforceNotSplittableByAI { get; }
Property Value
FacingOrder
public FacingOrder FacingOrder { get; set; }
Property Value
FiringOrder
public FiringOrder FiringOrder { get; set; }
Property Value
FormOrder
public FormOrder FormOrder { get; set; }
Property Value
HasAnyMountedUnit
public bool HasAnyMountedUnit { get; }
Property Value
HasPlayerControlledTroop
public bool HasPlayerControlledTroop { get; }
Property Value
Interval
public float Interval { get; }
Property Value
IsAIControlled
public bool IsAIControlled { get; }
Property Value
IsAIOwned
public bool IsAIOwned { get; }
Property Value
IsAITickedAfterSplit
public bool IsAITickedAfterSplit { get; set; }
Property Value
IsConvenientForTransfer
public bool IsConvenientForTransfer { get; }
Property Value
IsDeployment
public bool IsDeployment { get; }
Property Value
IsLoose
public bool IsLoose { get; }
Property Value
IsPlayerTroopInFormation
public bool IsPlayerTroopInFormation { get; }
Property Value
IsSpawning
public bool IsSpawning { get; }
Property Value
IsSplittableByAI
public bool IsSplittableByAI { get; }
Property Value
LogicalClass
public FormationClass LogicalClass { get; }
Property Value
LooseDetachedUnits
public MBReadOnlyList<Agent> LooseDetachedUnits { get; }
Property Value
MaximumDistance
public float MaximumDistance { get; }
Property Value
MaximumInterval
public float MaximumInterval { get; }
Property Value
MaximumWidth
public float MaximumWidth { get; }
Property Value
MinimumDistance
public float MinimumDistance { get; }
Property Value
MinimumInterval
public float MinimumInterval { get; }
Property Value
MinimumWidth
public float MinimumWidth { get; }
Property Value
OrderGroundPosition
public Vec3 OrderGroundPosition { get; }
Property Value
OrderLocalAveragePosition
public Vec2 OrderLocalAveragePosition { get; }
Property Value
OrderPosition
public Vec2 OrderPosition { get; }
Property Value
OrderPositionIsValid
public bool OrderPositionIsValid { get; }
Property Value
OverridenUnitCount
public int? OverridenUnitCount { get; }
Property Value
- int?
PhysicalClass
public FormationClass PhysicalClass { get; }
Property Value
PlayerOwner
public Agent PlayerOwner { get; set; }
Property Value
QuerySystem
public FormationQuerySystem QuerySystem { get; }
Property Value
RepresentativeClass
public FormationClass RepresentativeClass { get; }
Property Value
RetreatPositionCache
public Formation.RetreatPositionCacheSystem RetreatPositionCache { get; }
Property Value
RidingOrder
public RidingOrder RidingOrder { get; set; }
Property Value
SecondaryLogicalClasses
public IEnumerable<FormationClass> SecondaryLogicalClasses { get; }
Property Value
SecondaryPhysicalClasses
public IEnumerable<FormationClass> SecondaryPhysicalClasses { get; }
Property Value
SmoothedAverageUnitPosition
public Vec2 SmoothedAverageUnitPosition { get; }
Property Value
TargetFormation
public Formation TargetFormation { get; }
Property Value
UnitDiameter
public float UnitDiameter { get; }
Property Value
UnitSpacing
public int UnitSpacing { get; }
Property Value
UnitsWithoutLooseDetachedOnes
public MBReadOnlyList<IFormationUnit> UnitsWithoutLooseDetachedOnes { get; }
Property Value
Width
public float Width { get; }
Property Value
Methods
AddUnit(Agent)
public void AddUnit(Agent unit)
Parameters
unit
Agent
ApplyActionOnEachAttachedUnit(Action<Agent>)
public void ApplyActionOnEachAttachedUnit(Action<Agent> action)
Parameters
ApplyActionOnEachDetachedUnit(Action<Agent>)
public void ApplyActionOnEachDetachedUnit(Action<Agent> action)
Parameters
ApplyActionOnEachUnit(Action<Agent, List<WorldPosition>>, List<WorldPosition>)
public void ApplyActionOnEachUnit(Action<Agent, List<WorldPosition>> action, List<WorldPosition> list)
Parameters
action
Action<Agent, List<WorldPosition>>list
List<WorldPosition>
ApplyActionOnEachUnit(Action<Agent>, Agent)
public void ApplyActionOnEachUnit(Action<Agent> action, Agent ignoreAgent = null)
Parameters
ApplyActionOnEachUnitViaBackupList(Action<Agent>)
public void ApplyActionOnEachUnitViaBackupList(Action<Agent> action)
Parameters
AttachUnit(Agent)
public void AttachUnit(Agent unit)
Parameters
unit
Agent
BeginSpawn(int, bool)
public void BeginSpawn(int unitCount, bool isMounted)
Parameters
CalculateFormationDirectionEnforcingFactorForRank(int)
public float CalculateFormationDirectionEnforcingFactorForRank(int rankIndex)
Parameters
rankIndex
int
Returns
CavalryDistance(int)
public static float CavalryDistance(int unitSpacing)
Parameters
unitSpacing
int
Returns
CavalryInterval(int)
public static float CavalryInterval(int unitSpacing)
Parameters
unitSpacing
int
Returns
CollectUnitIndices()
public int[] CollectUnitIndices()
Returns
- int[]
CountUnitsOnNavMeshIDMod10(int, bool)
public int CountUnitsOnNavMeshIDMod10(int navMeshID, bool includeOnlyPositionedUnits)
Parameters
Returns
CreateNewOrderWorldPosition(WorldPositionEnforcedCache)
public WorldPosition CreateNewOrderWorldPosition(WorldPosition.WorldPositionEnforcedCache worldPositionEnforcedCache)
Parameters
worldPositionEnforcedCache
WorldPosition.WorldPositionEnforcedCache
Returns
DebugArrangements()
[Conditional("DEBUG")]
public void DebugArrangements()
DetachUnit(Agent, bool)
public void DetachUnit(Agent unit, bool isLoose)
Parameters
DisbandAttackEntityDetachment()
public void DisbandAttackEntityDetachment()
EndSpawn()
public void EndSpawn()
~Formation()
protected ~Formation()
FormAttackEntityDetachment(GameEntity)
public void FormAttackEntityDetachment(GameEntity targetEntity)
Parameters
targetEntity
GameEntity
GetAverageMaximumMovementSpeedOfUnits()
public float GetAverageMaximumMovementSpeedOfUnits()
Returns
GetAveragePositionOfUnits(bool, bool)
public Vec2 GetAveragePositionOfUnits(bool excludeDetachedUnits, bool excludePlayer)
Parameters
Returns
GetCountOfUnitsBelongingToLogicalClass(FormationClass)
public int GetCountOfUnitsBelongingToLogicalClass(FormationClass logicalClass)
Parameters
logicalClass
FormationClass
Returns
GetCountOfUnitsBelongingToPhysicalClass(FormationClass, bool)
public int GetCountOfUnitsBelongingToPhysicalClass(FormationClass physicalClass, bool excludeBannerBearers)
Parameters
physicalClass
FormationClassexcludeBannerBearers
bool
Returns
GetCountOfUnitsWithCondition(Func<Agent, bool>)
public int GetCountOfUnitsWithCondition(Func<Agent, bool> function)
Parameters
Returns
GetCurrentGlobalPositionOfUnit(Agent, bool)
public Vec2 GetCurrentGlobalPositionOfUnit(Agent unit, bool blendWithOrderDirection)
Parameters
Returns
GetDefaultMaximumDistance(bool)
public static float GetDefaultMaximumDistance(bool isMounted)
Parameters
isMounted
bool
Returns
GetDefaultMaximumInterval(bool)
public static float GetDefaultMaximumInterval(bool isMounted)
Parameters
isMounted
bool
Returns
GetDefaultMinimumDistance(bool)
public static float GetDefaultMinimumDistance(bool isMounted)
Parameters
isMounted
bool
Returns
GetDefaultMinimumInterval(bool)
public static float GetDefaultMinimumInterval(bool isMounted)
Parameters
isMounted
bool
Returns
GetDefaultUnitDiameter(bool)
public static float GetDefaultUnitDiameter(bool isMounted)
Parameters
isMounted
bool
Returns
GetDetachmentFrame(Agent)
public WorldFrame? GetDetachmentFrame(Agent agent)
Parameters
agent
Agent
Returns
GetDetachmentOrDefault(Agent)
public IDetachment GetDetachmentOrDefault(Agent agent)
Parameters
agent
Agent
Returns
GetDirectionOfUnit(Agent)
public Vec2 GetDirectionOfUnit(Agent unit)
Parameters
unit
Agent
Returns
GetFirstUnit()
public Agent GetFirstUnit()
Returns
GetFormationFramesForBeforeFormationCreation(float, int, bool, WorldPosition, Mat3)
public static List<WorldFrame> GetFormationFramesForBeforeFormationCreation(float width, int manCount, bool areMounted, WorldPosition spawnOrigin, Mat3 spawnRotation)
Parameters
width
floatmanCount
intareMounted
boolspawnOrigin
WorldPositionspawnRotation
Mat3
Returns
GetFormationMeleeFightingPower()
public float GetFormationMeleeFightingPower()
Returns
GetFormationPower()
public float GetFormationPower()
Returns
GetHashCode()
public override int GetHashCode()
Returns
GetLastSimulatedFormationsOccupationWidthIfLesserThanActualWidth(Formation)
public static float GetLastSimulatedFormationsOccupationWidthIfLesserThanActualWidth(Formation simulationFormation)
Parameters
simulationFormation
Formation
Returns
GetMedianAgent(bool, bool, Vec2)
public Agent GetMedianAgent(bool excludeDetachedUnits, bool excludePlayer, Vec2 averagePosition)
Parameters
Returns
GetMiddleFrontUnitPositionOffset()
public Vec2 GetMiddleFrontUnitPositionOffset()
Returns
GetMovementSpeedOfUnits()
public float GetMovementSpeedOfUnits()
Returns
GetMovementTypeOfUnits()
public Agent.MovementBehaviorType GetMovementTypeOfUnits()
Returns
GetNextSpawnIndex()
public int GetNextSpawnIndex()
Returns
GetOrderPositionOfUnit(Agent)
public WorldPosition GetOrderPositionOfUnit(Agent unit)
Parameters
unit
Agent
Returns
GetReadonlyMovementOrderReference()
public ref readonly MovementOrder GetReadonlyMovementOrderReference()
Returns
GetUnavailableUnitPositionsAccordingToNewOrder(Formation, in WorldPosition, in Vec2, float, int)
public IEnumerable<(WorldPosition, Vec2)> GetUnavailableUnitPositionsAccordingToNewOrder(Formation simulationFormation, in WorldPosition position, in Vec2 direction, float width, int unitSpacing)
Parameters
simulationFormation
Formationposition
WorldPositiondirection
Vec2width
floatunitSpacing
int
Returns
GetUnderAttackTypeOfUnits(float)
public Agent.UnderAttackType GetUnderAttackTypeOfUnits(float timeLimit = 3)
Parameters
timeLimit
float
Returns
GetUnitPositionWithIndexAccordingToNewOrder(Formation, int, in WorldPosition, in Vec2, float, int, int, out WorldPosition?, out Vec2?)
public void GetUnitPositionWithIndexAccordingToNewOrder(Formation simulationFormation, int unitIndex, in WorldPosition formationPosition, in Vec2 formationDirection, float width, int unitSpacing, int overridenUnitCount, out WorldPosition? unitPosition, out Vec2? unitDirection)
Parameters
simulationFormation
FormationunitIndex
intformationPosition
WorldPositionformationDirection
Vec2width
floatunitSpacing
intoverridenUnitCount
intunitPosition
WorldPosition?unitDirection
Vec2?
GetUnitPositionWithIndexAccordingToNewOrder(Formation, int, in WorldPosition, in Vec2, float, int, out WorldPosition?, out Vec2?)
public void GetUnitPositionWithIndexAccordingToNewOrder(Formation simulationFormation, int unitIndex, in WorldPosition formationPosition, in Vec2 formationDirection, float width, int unitSpacing, out WorldPosition? unitSpawnPosition, out Vec2? unitSpawnDirection)
Parameters
simulationFormation
FormationunitIndex
intformationPosition
WorldPositionformationDirection
Vec2width
floatunitSpacing
intunitSpawnPosition
WorldPosition?unitSpawnDirection
Vec2?
GetUnitPositionWithIndexAccordingToNewOrder(Formation, int, in WorldPosition, in Vec2, float, int, out WorldPosition?, out Vec2?, out float)
public void GetUnitPositionWithIndexAccordingToNewOrder(Formation simulationFormation, int unitIndex, in WorldPosition formationPosition, in Vec2 formationDirection, float width, int unitSpacing, out WorldPosition? unitSpawnPosition, out Vec2? unitSpawnDirection, out float actualWidth)
Parameters
simulationFormation
FormationunitIndex
intformationPosition
WorldPositionformationDirection
Vec2width
floatunitSpacing
intunitSpawnPosition
WorldPosition?unitSpawnDirection
Vec2?actualWidth
float
GetUnitSpawnFrameWithIndex(int, in WorldPosition, in Vec2, float, int, int, bool, out WorldPosition?, out Vec2?)
public void GetUnitSpawnFrameWithIndex(int unitIndex, in WorldPosition formationPosition, in Vec2 formationDirection, float width, int unitCount, int unitSpacing, bool isMountedFormation, out WorldPosition? unitSpawnPosition, out Vec2? unitSpawnDirection)
Parameters
unitIndex
intformationPosition
WorldPositionformationDirection
Vec2width
floatunitCount
intunitSpacing
intisMountedFormation
boolunitSpawnPosition
WorldPosition?unitSpawnDirection
Vec2?
GetUnitWithIndex(int)
public Agent GetUnitWithIndex(int unitIndex)
Parameters
unitIndex
int
Returns
GetUnitsToPop(int)
public List<IFormationUnit> GetUnitsToPop(int count)
Parameters
count
int
Returns
GetUnitsToPopWithReferencePosition(int, Vec3)
public List<IFormationUnit> GetUnitsToPopWithReferencePosition(int count, Vec3 targetPosition)
Parameters
Returns
GetUnitsWithoutDetachedOnes()
public IEnumerable<Agent> GetUnitsWithoutDetachedOnes()
Returns
GetWallDirectionOfRelativeFormationLocation(Agent)
public Vec2 GetWallDirectionOfRelativeFormationLocation(Agent unit)
Parameters
unit
Agent
Returns
HasAnyEnemyFormationsThatIsNotEmpty()
public bool HasAnyEnemyFormationsThatIsNotEmpty()
Returns
HasUnitWithConditionLimitedRandom(Func<Agent, bool>, int, int, out Agent)
public bool HasUnitWithConditionLimitedRandom(Func<Agent, bool> function, int startingIndex, int willBeCheckedUnitCount, out Agent resultAgent)
Parameters
Returns
HasUnitsWithCondition(Func<Agent, bool>)
public bool HasUnitsWithCondition(Func<Agent, bool> function)
Parameters
Returns
HasUnitsWithCondition(Func<Agent, bool>, out Agent)
public bool HasUnitsWithCondition(Func<Agent, bool> function, out Agent result)
Parameters
Returns
InfantryDistance(int)
public static float InfantryDistance(int unitSpacing)
Parameters
unitSpacing
int
Returns
InfantryInterval(int)
public static float InfantryInterval(int unitSpacing)
Parameters
unitSpacing
int
Returns
IsDefenseRelatedAIDrivenComponent(DrivenProperty)
public static bool IsDefenseRelatedAIDrivenComponent(DrivenProperty drivenProperty)
Parameters
drivenProperty
DrivenProperty
Returns
JoinDetachment(IDetachment)
public void JoinDetachment(IDetachment detachment)
Parameters
detachment
IDetachment
LeaveDetachment(IDetachment)
public void LeaveDetachment(IDetachment detachment)
Parameters
detachment
IDetachment
OnAgentControllerChanged(Agent, ControllerType)
public void OnAgentControllerChanged(Agent agent, Agent.ControllerType oldController)
Parameters
agent
AgentoldController
Agent.ControllerType
OnAgentLostMount(Agent)
public void OnAgentLostMount(Agent agent)
Parameters
agent
Agent
OnBatchUnitRemovalEnd()
public void OnBatchUnitRemovalEnd()
OnBatchUnitRemovalStart()
public void OnBatchUnitRemovalStart()
OnDeploymentFinished()
public void OnDeploymentFinished()
OnFormationDispersed()
public void OnFormationDispersed()
OnMassUnitTransferEnd()
public void OnMassUnitTransferEnd()
OnMassUnitTransferStart()
public void OnMassUnitTransferStart()
OnUndetachableNonPlayerUnitAdded(Agent)
public void OnUndetachableNonPlayerUnitAdded(Agent unit)
Parameters
unit
Agent
OnUndetachableNonPlayerUnitRemoved(Agent)
public void OnUndetachableNonPlayerUnitRemoved(Agent unit)
Parameters
unit
Agent
OnUnitAddedOrRemoved()
public void OnUnitAddedOrRemoved()
OnUnitDetachmentChanged(Agent, bool, bool)
public void OnUnitDetachmentChanged(Agent unit, bool isOldDetachmentLoose, bool isNewDetachmentLoose)
Parameters
Rearrange(IFormationArrangement)
public void Rearrange(IFormationArrangement arrangement)
Parameters
arrangement
IFormationArrangement
RemoveUnit(Agent)
public void RemoveUnit(Agent unit)
Parameters
unit
Agent
Reset()
public void Reset()
ResetArrangementOrderTickTimer()
public void ResetArrangementOrderTickTimer()
ResetMovementOrderPositionCache()
public void ResetMovementOrderPositionCache()
SetControlledByAI(bool, bool)
public void SetControlledByAI(bool isControlledByAI, bool enforceNotSplittableByAI = false)
Parameters
SetMovementOrder(MovementOrder)
public void SetMovementOrder(MovementOrder input)
Parameters
input
MovementOrder
SetPositioning(WorldPosition?, Vec2?, int?)
public void SetPositioning(WorldPosition? position = null, Vec2? direction = null, int? unitSpacing = null)
Parameters
position
WorldPosition?direction
Vec2?unitSpacing
int?
SetSpawnIndex(int)
public void SetSpawnIndex(int value = 0)
Parameters
value
int
SetTargetFormation(Formation)
public void SetTargetFormation(Formation targetFormation)
Parameters
targetFormation
Formation
Split(int)
public IEnumerable<Formation> Split(int count = 2)
Parameters
count
int
Returns
SwitchUnitLocations(Agent, Agent)
public void SwitchUnitLocations(Agent firstUnit, Agent secondUnit)
Parameters
Tick(float)
public void Tick(float dt)
Parameters
dt
float
TickForColumnArrangementInitialPositioning(Formation)
public void TickForColumnArrangementInitialPositioning(Formation formation)
Parameters
formation
Formation
TransferUnits(Formation, int)
public void TransferUnits(Formation target, int unitCount)
Parameters
TransferUnitsAux(Formation, int, bool, bool)
public void TransferUnitsAux(Formation target, int unitCount, bool isPlayerOrder, bool useSelectivePop)
Parameters
Events
OnAfterArrangementOrderApplied
public event Action<Formation, ArrangementOrder.ArrangementOrderEnum> OnAfterArrangementOrderApplied
Event Type
OnBeforeMovementOrderApplied
public event Action<Formation, MovementOrder.MovementOrderEnum> OnBeforeMovementOrderApplied
Event Type
OnTick
public event Action<Formation> OnTick
Event Type
OnUnitAdded
public event Action<Formation, Agent> OnUnitAdded
Event Type
OnUnitCountChanged
public event Action<Formation> OnUnitCountChanged
Event Type
OnUnitRemoved
public event Action<Formation, Agent> OnUnitRemoved
Event Type
OnUnitSpacingChanged
public event Action<Formation> OnUnitSpacingChanged
Event Type
OnWidthChanged
public event Action<Formation> OnWidthChanged
Event Type
This page was last modified at 09/01/2024 16:12:00 +00:00 (UTC).