@Override
    public GameUnit create(GameUnit.Type type) {
        GameUnit gameUnit = new GameUnit();

        switch (type) {
            case Footman: {
                gameUnit.setParams(4, 21, 2, 2);
                gameUnit.setName("Пехотинец");
                gameUnit.setImage(ImageHelper.getImage("footman.jpg"));
                gameUnit.addSkill(new Armor(2));
                break;
            }
            case Archer: {
                gameUnit.setParams(2, 30, 1, 1);
                gameUnit.setName("Лучник");
                gameUnit.setImage(ImageHelper.getImage("archer.jpg"));
                gameUnit.addPerk(new BowShot(gameUnit));
                break;
            }
            case Inquisitor: {
                gameUnit.setParams(5, 25, 1, 2);
                gameUnit.setName("Инквизитор");
                gameUnit.setImage(ImageHelper.getImage("inquisitor.jpg"));
                gameUnit.addSkill(new MagicSword(1));
                gameUnit.addSkill(new MagicArmor(2));
                break;
            }
            case Scout: {
                gameUnit.setParams(4, 31, 1, 2);
                gameUnit.setName("Скаут");
                gameUnit.setImage(ImageHelper.getImage("scout.jpg"));
                gameUnit.addSkill(new Masking());
                gameUnit.addSkill(new Sabotage());
                break;
            }
            case Mage: {
                gameUnit.setParams(2, 25, 0, 2);
                gameUnit.setName("Маг");
                gameUnit.setImage(ImageHelper.getImage("mage.jpg"));
                gameUnit.addPerk(new FireBall(gameUnit));
                break;
            }
            default: {
                gameUnit.setParams(5, 25, 1, 2);
                gameUnit.setName("Неизвестный юнит");
                break;
            }
        }

        gameUnit.setType(type);
        return gameUnit;
    }