package com.lyndir.omicron.api;
public interface IMobilityModule extends IModule {
@Override
default PublicModuleType<? extends IMobilityModule> getType() {
return PublicModuleType.MOBILITY;
}
/**
* @return The amount of movement power this unit is able to spend in a turn.
*/
double getMovementSpeed();
/**
* @return The amount of movement power remaining for this unit in the current turn.
*/
double getRemainingSpeed();
/**
* @param levelType The level to move around in.
*
* @return The speed cost.
*/
double costForMovingInLevel(LevelType levelType);
/**
* Get the speed cost related to leveling from the current level type to the given level type.
*
* @param levelType The level to transition to.
*
* @return The costs associated for levelling to a destination level from an adjacent level for this unit.
*/
double costForLevelingToLevel(LevelType levelType);
@Override
IMobilityModuleController getController();
}