예제 #1
0
  @Override
  public void show() {
    super.show();

    game.getMusicManager().play(UnsealedMusic.CAVE);

    tmpChar = new Lidia(getAtlas());
    tmpChar.setPosition(115, 140);
    tmpChar.updateAnimation();
    characters.add(tmpChar);
    tmpChar = new Whisperer(getAtlas());
    tmpChar.updateAnimation();
    tmpChar.addAction(fadeIn(0.75f));
    tmpChar.setPosition(291, 470);
    tmpChar.setVisible(false);
    characters.add(tmpChar);
    tmpChar = new Penguin(getAtlas());
    tmpChar.updateAnimation();
    tmpChar.setPosition(87, 660);
    characters.add(tmpChar);
  }
예제 #2
0
  @Override
  public void render(float delta) {
    super.render(delta);

    stage.getSpriteBatch().begin();

    // This is probably the bestest "Scene Director" ever made.
    // Valve should totally hire me.
    for (MapCharacter character : characters) {
      if (character instanceof Lidia) {
        switch (act) {
          case 0:
            character.getColor().a = 0;
            character.setWalking(false);
            actions =
                sequence(
                    fadeIn(0.75f),
                    delay(0.75f),
                    run(
                        new Runnable() {
                          @Override
                          public void run() {
                            setAct(1);
                          }
                        }));
            character.addAction(actions);
            character.setWalking(true);
            break;
          case 1:
            if (character.getY() > 120) {
              character.setY(character.getY() - 1);
              centerCamera(character);
            } else {
              character.setDirection(MapCharacter.dirRight);
              setAct(2);
            }
            break;
          case 2:
            if (character.getX() < 291) {
              character.setX(character.getX() + 1);
              centerCamera(character);
            } else {
              character.setDirection(MapCharacter.dirUp);
              setAct(3);
            }
            break;
          case 3:
            if (character.getY() < 400) {
              character.setY(character.getY() + 1);
              centerCamera(character);
            } else {
              character.setDirection(MapCharacter.dirUp);
              character.setWalking(false);
              setAct(4);
            }
            break;
          case 19:
            if (character.getY() < 470) {
              character.setWalking(true);
              character.setY(character.getY() + 1);
              centerCamera(character);
            } else {
              character.setDirection(MapCharacter.dirLeft);
              setAct(20);
            }
            break;
          case 20:
            if (character.getX() > 70) {
              character.setX(character.getX() - 1);
              centerCamera(character);
            } else {
              character.setDirection(MapCharacter.dirUp);
              setAct(21);
            }
            break;
          case 21:
            if (character.getY() < 580) {
              character.setY(character.getY() + 1);
              centerCamera(character);
            } else {
              character.setWalking(false);
              setAct(22);
            }
            break;
          case 22:
            dialog.setText(
                "Lidia: You poor thing....\n"
                    + "Awaken from your slumber. Let the seal be broken.\n"
                    + "I, Lidia Terious, UNSEAL YOU!");
            dialog.setVisible(true);
            break;
          case 23:
            dialog.setVisible(false);
            setAct(24);
            break;
        }
      }
      if (character instanceof Whisperer) {
        switch (act) {
          case 4:
            character.getColor().a = 0;
            actions =
                sequence(
                    fadeIn(0.75f),
                    run(
                        new Runnable() {
                          @Override
                          public void run() {
                            setAct(5);
                          }
                        }));
            character.addAction(actions);
            character.setVisible(true);
            break;
          case 5:
            dialog.setText("Lidia: I was wondering when you'd show up. ");
            dialog.setVisible(true);
            break;
          case 6:
            dialog.setText("Whisperer: You know I am but a mere whisper away from being summoned");
            break;
          case 7:
            dialog.setText("Lidia: I found the next Guardian. It's up ahead, I can sense it.");
            break;
          case 8:
            dialog.setText("Whisperer: It is calling out for you. It's been sealed for so long. ");
            break;
          case 9:
            dialog.setText(
                "Lidia: If I was sealed for 300 years I wouldn't just whisper for help... I'd shout too.");
            break;
          case 10:
            dialog.setText(
                "Lidia: The locals think of them as just statues, they've forgotten that they are much more than that.\n"
                    + "It's always up to a Traveler to set things right and undo their damage!");
            break;
          case 11:
            dialog.setText(
                "Whisperer: You sound weary. This'll be the Fifth Guardian and you're already tired?");
            break;
          case 12:
            dialog.setText(
                "Lidia: You say it as if it were easy. You simply appear and disappear at the slightest sign of trouble.\n"
                    + "After what happened at Marblehead, I'm taking things a little more calmed this time.");
            break;
          case 13:
            dialog.setText(
                "Whisperer: Marblehead was different. New Lion has always allied with Spellweavers");
            break;
          case 14:
            dialog.setText(
                "Lidia: And apparently, Marblehead has always been against Spellweavers!\n"
                    + "You should've warned me!");
            break;
          case 15:
            dialog.setText("Whisperer: You were distracted...");
            break;
          case 16:
            dialog.setVisible(false);
            actions =
                sequence(
                    fadeOut(0.75f),
                    run(
                        new Runnable() {
                          @Override
                          public void run() {
                            setAct(17);
                          }
                        }));
            character.addAction(actions);
            break;
          case 17:
            dialog.setText("Lidia: She just *had* to bring that up again...  ");
            dialog.setVisible(true);
            break;
          case 18:
            dialog.setVisible(false);
            act = 19;
            break;
        }
      }
      if (character instanceof Penguin) {
        switch (act) {
          case 24:
            actions =
                sequence(
                    fadeOut(0.75f),
                    run(
                        new Runnable() {
                          @Override
                          public void run() {
                            setAct(25);
                          }
                        }),
                    fadeIn(0.75f));
            character.addAction(actions);
            break;
          case 25:
            character.setWalking(true);
            setAct(26);
            break;

          case 26:
            dialog.setText(
                "Penguin: *Squeeak*!"
                    + "Thank you, Traveler! I've been calling out for so long!\n"
                    + "I am Archimides, The Guardian of this area.");
            dialog.setVisible(true);
            break;
          case 27:
            dialog.setText(
                "Penguin: Now that I've been unsealed, magic will return to this area.\n"
                    + "Thank you for your help");
            break;
          case 28:
            dialog.setText(
                "Lidia: I'm glad to hear that. I'll talk with the people of New Lion to let them know");
            break;
          case 29:
            dialog.setVisible(false);
            game.setScreen(new Chapter1_2(game));
            break;
        }
      }
      character.act(delta);
      if (character.isVisible()) character.draw(stage.getSpriteBatch(), 1);
    }
    stage.getSpriteBatch().end();

    if (dialog.isVisible()) {
      hud.act(delta);
      hud.draw();
    }
  }