Table of Contents

Class MoveUnitCommand

Namespace
Core.Units
Assembly
Core.dll

Command to move a unit to a new province using time-based movement (EU4-style). Supports pathfinding for multi-province journeys.

VALIDATION:

  • Unit must exist
  • Unit must be owned by the executing country
  • Pathfinding system must be initialized
  • Unit must not already be moving (warning, but allowed)

EXECUTION:

  • Calculate path using PathfindingSystem
  • Add unit to movement queue with full path
  • Unit will automatically hop through waypoints
  • Emit UnitMovementStartedEvent
public class MoveUnitCommand : BaseCommand, ICommand
Inheritance
object
MoveUnitCommand
Implements
Inherited Members

Constructors

MoveUnitCommand(UnitSystem, PathfindingSystem, ushort, ushort, ushort, int)

public MoveUnitCommand(UnitSystem unitSystem, PathfindingSystem pathfindingSystem, ushort unitID, ushort targetProvinceID, ushort countryID, int movementDays = 2)

Parameters

unitSystem UnitSystem
pathfindingSystem PathfindingSystem
unitID ushort
targetProvinceID ushort
countryID ushort
movementDays int

Methods

Deserialize(BinaryReader)

Deserialize command data from binary reader Used for save/load and command replay Must reconstruct identical command state

public override void Deserialize(BinaryReader reader)

Parameters

reader BinaryReader

Binary reader to deserialize from

Dispose()

public void Dispose()

Execute(GameState)

Execute the command and modify game state Should emit appropriate events for other systems to react Must be deterministic for multiplayer compatibility

public override void Execute(GameState gameState)

Parameters

gameState GameState

Game state to modify

GetChecksum()

public uint GetChecksum()

Returns

uint

GetSuccessMessage(GameState)

public string GetSuccessMessage(GameState gameState)

Parameters

gameState GameState

Returns

string

GetValidationError(GameState)

public string GetValidationError(GameState gameState)

Parameters

gameState GameState

Returns

string

Serialize(BinaryWriter)

Serialize command data to binary writer Used for save/load and command logging Must be deterministic - same command = same bytes

public override void Serialize(BinaryWriter writer)

Parameters

writer BinaryWriter

Binary writer to serialize to

Undo(GameState)

Undo the command - restore previous state Required for replay systems and error recovery

public override void Undo(GameState gameState)

Parameters

gameState GameState

Game state to restore

Validate(GameState)

Validate that this command can be executed in the current game state. Should be fast and have no side effects.

public override bool Validate(GameState gameState)

Parameters

gameState GameState

Current game state for validation

Returns

bool

True if command can be executed