Android Open Source - Station42 Levels






From Project

Back to project page Station42.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUC...

If you think the Android project Station42 listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.station42.game;
/*from  w  w  w  . j  av  a 2 s.c  o  m*/
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.station42.base.Engine;
import com.station42.base.Entity;
import com.station42.death.SpawnRoom;
import com.station42.faction.EntityFaction;
import com.station42.loot.LootDrop;
import com.station42.sentries.SentrySpawner;
import com.station42.world.Room;
import com.station42.world.Wall;
import com.station42.world.World;

public class Levels {
  private enum RoomTypes {
    Scoring,
    Danger,
    Spawning,
    Looting,
  };
  private static final int ROOM_SIZE = Room.ROOM_SIZE;
  private static final int SENTRY_OFFSET = ROOM_SIZE / 4;
  private static RoomTypes Scoring = RoomTypes.Scoring;
  private static RoomTypes Danger = RoomTypes.Danger;
  private static RoomTypes Spawning = RoomTypes.Spawning;
  private static RoomTypes Looting = RoomTypes.Looting;
  private static final int GREEN = World.greenWorld.worldId;
  private static final int ORANGE = World.orangeWorld.worldId;
  public static RoomTypes[][][] roomGrid;
  public static final String[] levelNames = {
    "Capture Points",
    "King of the Hill",
    "Deathmatch"
  };
  public static void setRoom0(){ 
    roomGrid = new RoomTypes[2][][];
    roomGrid[0] = new RoomTypes[][] {
        new RoomTypes[] {Spawning, Danger, Scoring, Looting},
        new RoomTypes[] {Danger, Scoring, Danger, Danger},
        new RoomTypes[] {Looting, Looting, Danger, Danger},
        new RoomTypes[] {Danger, Looting, Danger, Looting},
      };
    roomGrid[1] = new RoomTypes[][] {
        new RoomTypes[] {Danger, Danger, Looting, Looting},
        new RoomTypes[] {Danger, Danger, Looting, Looting},
        new RoomTypes[] {Danger, Danger, Scoring, Danger},
        new RoomTypes[] {Looting, Scoring, Danger, Spawning},
      };
  }
  public static void setRoom1(){ 
    roomGrid = new RoomTypes[2][][];
    roomGrid[0] = new RoomTypes[][] {
        new RoomTypes[] {Spawning, Danger, Looting},
        new RoomTypes[] {Danger, Scoring, Danger},
        new RoomTypes[] {Looting, Danger, Danger},
      };
    roomGrid[1] = new RoomTypes[][] {
        new RoomTypes[] {Danger, Danger, Looting},
        new RoomTypes[] {Danger, Danger, Danger},
        new RoomTypes[] {Looting, Danger, Spawning},
      };
  }
  public static void setRoom2(){ 
    roomGrid = new RoomTypes[2][][];
    roomGrid[0] = new RoomTypes[][] {
        new RoomTypes[] {Spawning, Looting, Danger},
        new RoomTypes[] {Looting, Danger, Looting},
        new RoomTypes[] {Danger, Looting, Danger},
      };
    roomGrid[1] = new RoomTypes[][] {
        new RoomTypes[] {Spawning, Danger, Looting},
        new RoomTypes[] {Danger, Looting, Danger},
        new RoomTypes[] {Looting, Danger, Spawning},
      };
  }
  public void setupLevel(Engine engine) {
    setupWorld(engine, World.greenWorld, true);
    setupWorld(engine, World.orangeWorld, false);
  }
  public void setupWorld(Engine engine, World world, boolean spawnSharedSentries) {
    RoomTypes[][] worldRooms;
    RoomTypes[][] otherWorldRooms;
    if (world == World.greenWorld) {
      worldRooms = roomGrid[ORANGE];
      otherWorldRooms = roomGrid[GREEN];
    } else {
      worldRooms = roomGrid[GREEN];
      otherWorldRooms = roomGrid[ORANGE];
    }
    for (int x = 0;x < worldRooms.length;x++) {
      for (int y = 0;y < worldRooms[x].length;y++) {
        Entity newRoom = Room.spawn(engine, new Rectangle(x * ROOM_SIZE, y * ROOM_SIZE, ROOM_SIZE, ROOM_SIZE), 
            getUp(worldRooms, x, y), getRight(worldRooms, x, y), getDown(worldRooms, x, y), getLeft(worldRooms, x, y), world);
        if (worldRooms[x][y] == Spawning) {
          newRoom.setComponent(SpawnRoom.class, new SpawnRoom(world.getHomeFaction()));
        } else if (worldRooms[x][y] == Danger) {
          float centerX = newRoom.getComponent(Room.class).getCenterX();
          float centerY = newRoom.getComponent(Room.class).getCenterY();
          for (int i = 0;i < 4;i++) {
            float sentryX = centerX + (i == 0 ? -SENTRY_OFFSET : (i == 1 ? SENTRY_OFFSET : 0));
            float sentryY = centerY + (i == 2 ? -SENTRY_OFFSET : (i == 3 ? SENTRY_OFFSET : 0));
            EntityFaction sentryFaction = world.getHomeFaction();
            if (otherWorldRooms[x][y] == Danger)
              sentryFaction = null;
            Entity sentry = SentrySpawner.spawnSentry(engine, sentryX, sentryY, sentryFaction);
            if (otherWorldRooms[x][y] != Danger) {
              sentry.setComponent(World.class, world);
            } else if (!spawnSharedSentries) {
              engine.despawnEntity(sentry);
            }
          }
        } else if (worldRooms[x][y] == Scoring) {
          float centerX = newRoom.getComponent(Room.class).getCenterX();
          float centerY = newRoom.getComponent(Room.class).getCenterY();
          ScoringPortal.spawnPortal(engine, centerX, centerY, world);
        } else if (worldRooms[x][y] == Looting) {
          newRoom.setComponent(LootDrop.class, new LootDrop(5, 5));
        }
      }
    }
  }
  private boolean getLeft(RoomTypes[][] worldRooms, int x, int y) {
    return x == 0;
  }
  private boolean getDown(RoomTypes[][] worldRooms, int x, int y) {
    return y == 0;
  }
  private boolean getRight(RoomTypes[][] worldRooms, int x, int y) {
    return x == worldRooms.length - 1;
  }
  private boolean getUp(RoomTypes[][] worldRooms, int x, int y) {
    return y == worldRooms[0].length - 1;
  }
}




Java Source Code List

com.station40.game.IOSLauncher.java
com.station40.game.android.AndroidLauncher.java
com.station40.game.android.OuyaMenuScreen.java
com.station40.game.android.OuyaPlayerJoiner.java
com.station40.game.client.HtmlLauncher.java
com.station40.game.desktop.DesktopLauncher.java
com.station42.base.EngineMessageListener.java
com.station42.base.EngineRenderer.java
com.station42.base.EngineUpdateListener.java
com.station42.base.Engine.java
com.station42.base.Entity.java
com.station42.basic.EntityFacing.java
com.station42.basic.EntityLocation.java
com.station42.basic.EntityRenderer.java
com.station42.basic.EntitySprite.java
com.station42.bullet.BulletCollisionSystem.java
com.station42.bullet.BulletRenderer.java
com.station42.bullet.BulletSpawner.java
com.station42.bullet.BulletUpdateSystem.java
com.station42.bullet.Bullet.java
com.station42.death.BulletDamageMessage.java
com.station42.death.BulletDamageSystem.java
com.station42.death.DeathMessage.java
com.station42.death.HealthRenderer.java
com.station42.death.Health.java
com.station42.death.PlayerRespawnSystem.java
com.station42.death.SpawnRoom.java
com.station42.faction.EntityFaction.java
com.station42.game.GameScreen.java
com.station42.game.Levels.java
com.station42.game.MainMenuScreen.java
com.station42.game.MatchSystem.java
com.station42.game.ScoringPortalHackingSystem.java
com.station42.game.ScoringPortalRenderer.java
com.station42.game.ScoringPortal.java
com.station42.game.Station40Game.java
com.station42.hacking.Hackable.java
com.station42.hacking.HackingActionParticles.java
com.station42.hacking.HackingActionRenderer.java
com.station42.hacking.HackingActionUpdater.java
com.station42.hacking.HackingAction.java
com.station42.hacking.HackingSystem.java
com.station42.hacking.HackingUI.java
com.station42.hacking.PlayerHacker.java
com.station42.hopping.HoppingAction.java
com.station42.hopping.HoppingSystem.java
com.station42.hopping.HoppingUI.java
com.station42.hopping.OffensiveHackingSystem.java
com.station42.hopping.PlayerHopper.java
com.station42.input.MouseAndKeyboardController.java
com.station42.loot.HealthBoost.java
com.station42.loot.LootDropSystem.java
com.station42.loot.LootDrop.java
com.station42.loot.LootPickupSystem.java
com.station42.loot.Loot.java
com.station42.loot.Looter.java
com.station42.loot.PointBoost.java
com.station42.loot.SpeedBoost.java
com.station42.loot.WorldSwap.java
com.station42.optimizations.CroppingHelper.java
com.station42.optimizations.RoomResidentSystem.java
com.station42.optimizations.RoomResident.java
com.station42.player.PlayerTrackingCameraSystem.java
com.station42.player.mouse.EntityMouseState.java
com.station42.player.mouse.PlayerActionStateSetter.java
com.station42.player.mouse.PlayerClientGunSystem.java
com.station42.player.mouse.PlayerControllerMouseStateSetter.java
com.station42.player.mouse.PlayerGunSystem.java
com.station42.player.mouse.PlayerMouseStateSetter.java
com.station42.player.move.EntityMoveState.java
com.station42.player.move.PlayerControllerMoveStateSetter.java
com.station42.player.move.PlayerMoveStateSetter.java
com.station42.player.move.PlayerWalker.java
com.station42.sentries.FactionSentrySystem.java
com.station42.sentries.SentryHackingSystem.java
com.station42.sentries.SentrySpawner.java
com.station42.sentries.Sentry.java
com.station42.server.BulletRequest.java
com.station42.server.ProtocolSetup.java
com.station42.server.Station40Client.java
com.station42.server.Station40Server.java
com.station42.server.serializers.EntitySerializer.java
com.station42.world.RoomRenderer.java
com.station42.world.Room.java
com.station42.world.WallCollisionSystem.java
com.station42.world.WallRenderer.java
com.station42.world.Wall.java
com.station42.world.WorldUI.java
com.station42.world.World.java