Table of Contents

Class LandUnitCostCalculator

Namespace
StarterKit
Assembly
StarterKit.dll

STARTERKIT: Movement cost calculator for land units.

Wraps TerrainMovementCostCalculator and adds GAME policy:

  • Land units cannot traverse water provinces
  • Uses terrain movement costs from terrain.json5

For naval units, create NavalUnitCostCalculator that blocks land instead.

public class LandUnitCostCalculator : IMovementCostCalculator
Inheritance
object
LandUnitCostCalculator
Implements

Constructors

LandUnitCostCalculator(TerrainMovementCostCalculator)

public LandUnitCostCalculator(TerrainMovementCostCalculator terrainCalculator)

Parameters

terrainCalculator TerrainMovementCostCalculator

Methods

CanTraverse(ushort, PathContext)

Land units cannot traverse water provinces.

public bool CanTraverse(ushort provinceId, PathContext context)

Parameters

provinceId ushort
context PathContext

Returns

bool

GetHeuristic(ushort, ushort)

Heuristic for A* - delegate to terrain calculator.

public FixedPoint64 GetHeuristic(ushort fromProvinceId, ushort goalProvinceId)

Parameters

fromProvinceId ushort
goalProvinceId ushort

Returns

FixedPoint64

GetMovementCost(ushort, ushort, PathContext)

Get movement cost based on destination terrain. Delegates to terrain calculator.

public FixedPoint64 GetMovementCost(ushort fromProvinceId, ushort toProvinceId, PathContext context)

Parameters

fromProvinceId ushort
toProvinceId ushort
context PathContext

Returns

FixedPoint64