public static Enemy initEnemy(World world, JSONObject jEnemy) throws JSONException { Vector3 position = new Vector3((float) jEnemy.getDouble("posx"), (float) jEnemy.getDouble("posy"), 0); String enemyClassString = jEnemy.getString("enemy_class"); Vector2 size = new Vector2((float) jEnemy.getDouble("width"), (float) jEnemy.getDouble("height")); CLASS enemyClass = CLASS.fromString(enemyClassString); Enemy enemy = null; switch (enemyClass) { case eato: enemy = new Eato(world, size, position, jEnemy.optString("direction")); break; case flyon: enemy = new Flyon( world, size, position, (float) jEnemy.getDouble("max_distance"), (float) jEnemy.getDouble("speed"), jEnemy.optString("direction", "up")); break; case furball: position.z = Furball.POS_Z; enemy = new Furball(world, size, position, jEnemy.optInt("max_downgrade_count")); break; case turtle: position.z = Turtle.POS_Z; enemy = new Turtle(world, size, position, jEnemy.optString("color")); break; case gee: enemy = new Gee( world, size, position, (float) jEnemy.getDouble("fly_distance"), jEnemy.getString("color"), jEnemy.getString("direction"), (float) jEnemy.getDouble("wait_time")); break; case krush: enemy = new Krush(world, size, position); break; case thromp: enemy = new Thromp( world, size, position, (float) jEnemy.getDouble("max_distance"), (float) jEnemy.getDouble("speed"), jEnemy.optString("direction", "up")); break; case spika: enemy = new Spika(world, size, position, jEnemy.optString("color")); break; case rokko: enemy = new Rokko(world, size, position, jEnemy.optString("direction")); world.screen.game.assets.manager.load("data/sounds/enemy/rokko/hit.mp3", Sound.class); break; case _static: enemy = new Static( world, size, position, jEnemy.optInt("rotation_speed"), jEnemy.optInt("fire_resistance"), jEnemy.optInt("ice_resistance")); break; case spikeball: enemy = new Spikeball(world, size, position); break; } return enemy; }