public boolean validate(UnitStats unit, PhysicalGameState pgs) {
		if (isValidated) {
			return true;
		}
		is_ready = true;
		if (unit.id == unitID) {
			cooldown = DEFAULT_COOLDOWN;
			switch (type) {
				case MOVE:
					cooldown = unit.definition.move_speed;
					isValidated = true;
					break;
				case ATTACK:
					cooldown = unit.definition.attack_speed;
					isValidated = true;
					break;
				case HARVEST:
					cooldown = pgs.harvestTime(targetX, targetY);
					isValidated = true;
					break;
				case RETURN:
					isValidated = true;
					break;
				case BUILD:
					cooldown = pgs.buildTime(unit.player, !unit.definition.is_building, build);
					isValidated = true;
					break;
				case UPGRADE:
					cooldown = pgs.upgradeTime(unit.player, build);
					isValidated = true;
					break;
			}
		}
		return isValidated;
	}