import { Unit, Location } from "./types"; import { rule } from "./../rule"; import { MilitaryBranch } from "./data"; export declare enum OrderType { Hold = 1, Move = 2, Support = 3, Convoy = 4, Retreat = 5, Disband = 6, Build = 7, } /** * Order of the standard rule */ export declare abstract class Order implements rule.Order { unit: Unit; tpe: OrderType; /** * @param unit The unit that corresponds to this order. * @param tpe The type of the order */ constructor(unit: Unit, tpe: OrderType); } /** * Hold order */ export declare class Hold extends Order { /** * @param unit The unit that corresponds to this order. */ constructor(unit: Unit); toString(): string; } /** * Move order */ export declare class Move extends Order { destination: Location; /** * The flag whether this move order uses convoy or not. */ useConvoy: boolean; /** * @param unit The unit that corresponds to this order. * @param destination The destination of this move order. * @param useConvoy The flag whether this move order uses convoy or not. */ constructor(unit: Unit, destination: Location, useConvoy?: boolean); toString(): string; } /** * Support order */ export declare class Support extends Order { target: Move | Hold; /** * The destination of this support order (the move destination or the location of the holded unit). */ destination: Location; /** * @param unit The unit that corresponds to this order. * @param target The target order of this support. */ constructor(unit: Unit, target: Move | Hold); toString(): string; } /** * Convoy order */ export declare class Convoy extends Order { target: Move; /** * @param unit The unit that corresponds to this order. * @param target The target order of this convoy. */ constructor(unit: Unit, target: Move); toString(): string; } /** * Retreat order */ export declare class Retreat extends Order { destination: Location; /** * @param unit The unit that corresponds to this order. * @param destination The destination of this retreat. */ constructor(unit: Unit, destination: Location); toString(): string; } /** * Disband order */ export declare class Disband extends Order { /** * @param unit The unit that corresponds to this order. */ constructor(unit: Unit); toString(): string; } /** * Build order */ export declare class Build extends Order { /** * @param unit The unit that corresponds to this order. */ constructor(unit: Unit); toString(): string; }