net.k3rnel.unsealed.story.chapter1.Chapter1_2.java Source code

Java tutorial

Introduction

Here is the source code for net.k3rnel.unsealed.story.chapter1.Chapter1_2.java

Source

/**
 * Unsealed: Whispers of Wisdom. 
 * 
 * Copyright (C) 2012 - Juan 'Nushio' Rodriguez
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 3 of 
 * the License as published by the Free Software Foundation
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */
package net.k3rnel.unsealed.story.chapter1;

import static com.badlogic.gdx.scenes.scene2d.actions.Actions.color;
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.delay;
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.fadeIn;
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.run;
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.sequence;

import com.badlogic.gdx.graphics.Color;

import net.k3rnel.unsealed.Unsealed;
import net.k3rnel.unsealed.services.MusicManager.UnsealedMusic;
import net.k3rnel.unsealed.services.SoundManager.UnsealedSound;
import net.k3rnel.unsealed.story.AbstractChapter;
import net.k3rnel.unsealed.story.MapCharacter;
import net.k3rnel.unsealed.story.characters.FireLionMap;
import net.k3rnel.unsealed.story.characters.Kid;
import net.k3rnel.unsealed.story.characters.Lidia;

public class Chapter1_2 extends AbstractChapter {

    /**
     * Chapter One: New Girl in Town
     * @param game
     */
    public Chapter1_2(Unsealed game) {
        super(game);
        mapname = "TownOne";
    }

    @Override
    public void show() {
        super.show();

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

        tmpChar = new Lidia(getAtlas());
        tmpChar.setPosition(1924, 1608);
        tmpChar.updateAnimation();
        characters.add(tmpChar);

        tmpChar = new Kid(getAtlas(), 0);
        tmpChar.setPosition(1040, 970);
        tmpChar.setDirection(MapCharacter.dirRight);
        tmpChar.updateAnimation();
        characters.add(tmpChar);

        tmpChar = new Kid(getAtlas(), 1);
        tmpChar.setDirection(MapCharacter.dirUp);
        tmpChar.setPosition(1100, 900);
        characters.add(tmpChar);

        tmpChar = new Kid(getAtlas(), 2);
        tmpChar.setPosition(1000, 930);
        tmpChar.setDirection(MapCharacter.dirRight);
        tmpChar.updateAnimation();
        characters.add(tmpChar);

        tmpChar = new FireLionMap(getAtlas());
        tmpChar.setPosition(1080, 950);
        tmpChar.setDirection(MapCharacter.dirUp);
        tmpChar.updateAnimation();
        tmpChar.setVisible(false);
        characters.add(tmpChar);

    }

    @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:
                    centerCamera(character);
                    character.setDirection(MapCharacter.dirLeft);
                    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);
                    break;
                case 1:
                    dialog.setText("Lidia: So this is New Lion? I wonder if magic has returned here already.");
                    dialog.setVisible(true);
                    break;
                case 2:
                    dialog.setVisible(false);
                    character.setWalking(true);
                    if (character.getX() > 1050) {
                        character.setX(character.getX() - 1);
                        centerCamera(character);
                    } else {
                        game.getSoundManager().play(UnsealedSound.FIRE);
                        character.setWalking(false);
                        dialog.setText("Lidia: Hmm, I wonder what that noise was. I better check it out.");
                        dialog.setVisible(true);
                    }
                    break;
                case 3:
                    dialog.setVisible(false);
                    character.setWalking(true);
                    character.setDirection(MapCharacter.dirRight);
                    setAct(4);
                    break;
                case 4:
                    if (character.getX() < 1140) {
                        character.setX(character.getX() + 1);
                        centerCamera(character);
                    } else {
                        character.setDirection(MapCharacter.dirDown);
                        setAct(5);
                    }
                    break;
                case 5:
                    if (character.getY() > 1000) {
                        character.setY(character.getY() - 1);
                        centerCamera(character);
                    } else {
                        character.setWalking(false);
                        setAct(6);
                    }
                case 6:
                    if (character.getY() == 1000) {
                        dialog.setText("Mimi: Watch this! Watch this!");
                        dialog.setVisible(true);
                    }
                    break;
                }

            }
            if (character instanceof Kid) {
                if (((Kid) character).kid == 0) {
                    switch (act) {
                    case 7:
                        dialog.setVisible(false);
                        actions = sequence(color(Color.RED), delay(0.3f), color(Color.WHITE));
                        character.addAction(actions);
                        setAct(8);
                        break;
                    }
                }
                if (((Kid) character).kid == 1) {

                }
                if (((Kid) character).kid == 2) {
                }
            }
            if (character instanceof FireLionMap) {
                switch (act) {
                case 8:
                    character.setVisible(true);
                    if (character.getX() < 1130) {
                        character.setX(character.getX() + 2);
                    } else {
                        character.setVisible(false);
                        setAct(9);
                    }
                    break;
                case 9:
                    dialog.setText("Leon: Wow! That's amazing!");
                    dialog.setVisible(true);
                    break;
                case 10:
                    dialog.setText("Nina: Do it again! Do it again!");
                    break;
                case 11:
                    dialog.setText("Lidia: Wait!\n"
                            + "Magic can be dangerous. If you don't know what you're doing, you might hurt someone!");
                    break;
                case 12:
                    dialog.setText("Mimi: Look at those clothes! She's not from around here!");
                    break;
                case 13:
                    dialog.setText("Leon: Who are you and where did you come from?");
                    break;
                case 14:
                    dialog.setText("Lidia: You can call me Lidia, and you're right. I'm not from around here.\n"
                            + "I'm a Traveler.\n"
                            + "We travel through the lands, watching over magic, and it's usage");
                    break;
                case 15:
                    dialog.setText("Nina: You know how to use magic? Can you teach us??\n"
                            + "Mimi: Yeah, can you? Pwease?");
                    break;
                case 16:
                    dialog.setText("Lidia: Sure. Stand back everyone.");
                    break;
                case 17:
                    dialog.setVisible(false);
                    setAct(18);
                    break;
                case 18:
                    game.setScreen(new Chapter1_3(game));
                    break;
                }
            }
            character.act(delta);
            if (character.isVisible())
                character.draw(stage.getSpriteBatch(), 1);
        }
        stage.getSpriteBatch().end();

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

}