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
unitAgent
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
actionAction<Agent, List<WorldPosition>>listList<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
unitAgent
BeginSpawn(int, bool)
public void BeginSpawn(int unitCount, bool isMounted)
Parameters
CalculateFormationDirectionEnforcingFactorForRank(int)
public float CalculateFormationDirectionEnforcingFactorForRank(int rankIndex)
Parameters
rankIndexint
Returns
CavalryDistance(int)
public static float CavalryDistance(int unitSpacing)
Parameters
unitSpacingint
Returns
CavalryInterval(int)
public static float CavalryInterval(int unitSpacing)
Parameters
unitSpacingint
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
worldPositionEnforcedCacheWorldPosition.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
targetEntityGameEntity
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
logicalClassFormationClass
Returns
GetCountOfUnitsBelongingToPhysicalClass(FormationClass, bool)
public int GetCountOfUnitsBelongingToPhysicalClass(FormationClass physicalClass, bool excludeBannerBearers)
Parameters
physicalClassFormationClassexcludeBannerBearersbool
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
isMountedbool
Returns
GetDefaultMaximumInterval(bool)
public static float GetDefaultMaximumInterval(bool isMounted)
Parameters
isMountedbool
Returns
GetDefaultMinimumDistance(bool)
public static float GetDefaultMinimumDistance(bool isMounted)
Parameters
isMountedbool
Returns
GetDefaultMinimumInterval(bool)
public static float GetDefaultMinimumInterval(bool isMounted)
Parameters
isMountedbool
Returns
GetDefaultUnitDiameter(bool)
public static float GetDefaultUnitDiameter(bool isMounted)
Parameters
isMountedbool
Returns
GetDetachmentFrame(Agent)
public WorldFrame? GetDetachmentFrame(Agent agent)
Parameters
agentAgent
Returns
GetDetachmentOrDefault(Agent)
public IDetachment GetDetachmentOrDefault(Agent agent)
Parameters
agentAgent
Returns
GetDirectionOfUnit(Agent)
public Vec2 GetDirectionOfUnit(Agent unit)
Parameters
unitAgent
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
widthfloatmanCountintareMountedboolspawnOriginWorldPositionspawnRotationMat3
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
simulationFormationFormation
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
unitAgent
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
simulationFormationFormationpositionWorldPositiondirectionVec2widthfloatunitSpacingint
Returns
GetUnderAttackTypeOfUnits(float)
public Agent.UnderAttackType GetUnderAttackTypeOfUnits(float timeLimit = 3)
Parameters
timeLimitfloat
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
simulationFormationFormationunitIndexintformationPositionWorldPositionformationDirectionVec2widthfloatunitSpacingintoverridenUnitCountintunitPositionWorldPosition?unitDirectionVec2?
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
simulationFormationFormationunitIndexintformationPositionWorldPositionformationDirectionVec2widthfloatunitSpacingintunitSpawnPositionWorldPosition?unitSpawnDirectionVec2?
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
simulationFormationFormationunitIndexintformationPositionWorldPositionformationDirectionVec2widthfloatunitSpacingintunitSpawnPositionWorldPosition?unitSpawnDirectionVec2?actualWidthfloat
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
unitIndexintformationPositionWorldPositionformationDirectionVec2widthfloatunitCountintunitSpacingintisMountedFormationboolunitSpawnPositionWorldPosition?unitSpawnDirectionVec2?
GetUnitWithIndex(int)
public Agent GetUnitWithIndex(int unitIndex)
Parameters
unitIndexint
Returns
GetUnitsToPop(int)
public List<IFormationUnit> GetUnitsToPop(int count)
Parameters
countint
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
unitAgent
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
unitSpacingint
Returns
InfantryInterval(int)
public static float InfantryInterval(int unitSpacing)
Parameters
unitSpacingint
Returns
IsDefenseRelatedAIDrivenComponent(DrivenProperty)
public static bool IsDefenseRelatedAIDrivenComponent(DrivenProperty drivenProperty)
Parameters
drivenPropertyDrivenProperty
Returns
JoinDetachment(IDetachment)
public void JoinDetachment(IDetachment detachment)
Parameters
detachmentIDetachment
LeaveDetachment(IDetachment)
public void LeaveDetachment(IDetachment detachment)
Parameters
detachmentIDetachment
OnAgentControllerChanged(Agent, ControllerType)
public void OnAgentControllerChanged(Agent agent, Agent.ControllerType oldController)
Parameters
agentAgentoldControllerAgent.ControllerType
OnAgentLostMount(Agent)
public void OnAgentLostMount(Agent agent)
Parameters
agentAgent
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
unitAgent
OnUndetachableNonPlayerUnitRemoved(Agent)
public void OnUndetachableNonPlayerUnitRemoved(Agent unit)
Parameters
unitAgent
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
arrangementIFormationArrangement
RemoveUnit(Agent)
public void RemoveUnit(Agent unit)
Parameters
unitAgent
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
inputMovementOrder
SetPositioning(WorldPosition?, Vec2?, int?)
public void SetPositioning(WorldPosition? position = null, Vec2? direction = null, int? unitSpacing = null)
Parameters
positionWorldPosition?directionVec2?unitSpacingint?
SetSpawnIndex(int)
public void SetSpawnIndex(int value = 0)
Parameters
valueint
SetTargetFormation(Formation)
public void SetTargetFormation(Formation targetFormation)
Parameters
targetFormationFormation
Split(int)
public IEnumerable<Formation> Split(int count = 2)
Parameters
countint
Returns
SwitchUnitLocations(Agent, Agent)
public void SwitchUnitLocations(Agent firstUnit, Agent secondUnit)
Parameters
Tick(float)
public void Tick(float dt)
Parameters
dtfloat
TickForColumnArrangementInitialPositioning(Formation)
public void TickForColumnArrangementInitialPositioning(Formation formation)
Parameters
formationFormation
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).