Search in sources :

Example 1 with SkinnedBlock

use of com.watabou.noosa.SkinnedBlock in project pixel-dungeon by watabou.

the class GameScene method create.

@Override
public void create() {
    Music.INSTANCE.play(Assets.TUNE, true);
    Music.INSTANCE.volume(1f);
    PixelDungeon.lastClass(Dungeon.hero.heroClass.ordinal());
    super.create();
    Camera.main.zoom(defaultZoom + PixelDungeon.zoom());
    scene = this;
    terrain = new Group();
    add(terrain);
    water = new SkinnedBlock(Level.WIDTH * DungeonTilemap.SIZE, Level.HEIGHT * DungeonTilemap.SIZE, Dungeon.level.waterTex());
    terrain.add(water);
    ripples = new Group();
    terrain.add(ripples);
    tiles = new DungeonTilemap();
    terrain.add(tiles);
    Dungeon.level.addVisuals(this);
    plants = new Group();
    add(plants);
    int size = Dungeon.level.plants.size();
    for (int i = 0; i < size; i++) {
        addPlantSprite(Dungeon.level.plants.valueAt(i));
    }
    heaps = new Group();
    add(heaps);
    size = Dungeon.level.heaps.size();
    for (int i = 0; i < size; i++) {
        addHeapSprite(Dungeon.level.heaps.valueAt(i));
    }
    emitters = new Group();
    effects = new Group();
    emoicons = new Group();
    mobs = new Group();
    add(mobs);
    for (Mob mob : Dungeon.level.mobs) {
        addMobSprite(mob);
        if (Statistics.amuletObtained) {
            mob.beckon(Dungeon.hero.pos);
        }
    }
    add(emitters);
    add(effects);
    gases = new Group();
    add(gases);
    for (Blob blob : Dungeon.level.blobs.values()) {
        blob.emitter = null;
        addBlobSprite(blob);
    }
    fog = new FogOfWar(Level.WIDTH, Level.HEIGHT);
    fog.updateVisibility(Dungeon.visible, Dungeon.level.visited, Dungeon.level.mapped);
    add(fog);
    brightness(PixelDungeon.brightness());
    spells = new Group();
    add(spells);
    statuses = new Group();
    add(statuses);
    add(emoicons);
    hero = new HeroSprite();
    hero.place(Dungeon.hero.pos);
    hero.updateArmor();
    mobs.add(hero);
    add(new HealthIndicator());
    add(cellSelector = new CellSelector(tiles));
    StatusPane sb = new StatusPane();
    sb.camera = uiCamera;
    sb.setSize(uiCamera.width, 0);
    add(sb);
    toolbar = new Toolbar();
    toolbar.camera = uiCamera;
    toolbar.setRect(0, uiCamera.height - toolbar.height(), uiCamera.width, toolbar.height());
    add(toolbar);
    AttackIndicator attack = new AttackIndicator();
    attack.camera = uiCamera;
    attack.setPos(uiCamera.width - attack.width(), toolbar.top() - attack.height());
    add(attack);
    log = new GameLog();
    log.camera = uiCamera;
    log.setRect(0, toolbar.top(), attack.left(), 0);
    add(log);
    busy = new BusyIndicator();
    busy.camera = uiCamera;
    busy.x = 1;
    busy.y = sb.bottom() + 1;
    add(busy);
    switch(InterlevelScene.mode) {
        case RESURRECT:
            WandOfBlink.appear(Dungeon.hero, Dungeon.level.entrance);
            new Flare(8, 32).color(0xFFFF66, true).show(hero, 2f);
            break;
        case RETURN:
            WandOfBlink.appear(Dungeon.hero, Dungeon.hero.pos);
            break;
        case FALL:
            Chasm.heroLand();
            break;
        case DESCEND:
            switch(Dungeon.depth) {
                case 1:
                    WndStory.showChapter(WndStory.ID_SEWERS);
                    break;
                case 6:
                    WndStory.showChapter(WndStory.ID_PRISON);
                    break;
                case 11:
                    WndStory.showChapter(WndStory.ID_CAVES);
                    break;
                case 16:
                    WndStory.showChapter(WndStory.ID_METROPOLIS);
                    break;
                case 22:
                    WndStory.showChapter(WndStory.ID_HALLS);
                    break;
            }
            if (Dungeon.hero.isAlive() && Dungeon.depth != 22) {
                Badges.validateNoKilling();
            }
            break;
        default:
    }
    ArrayList<Item> dropped = Dungeon.droppedItems.get(Dungeon.depth);
    if (dropped != null) {
        for (Item item : dropped) {
            int pos = Dungeon.level.randomRespawnCell();
            if (item instanceof Potion) {
                ((Potion) item).shatter(pos);
            } else if (item instanceof Plant.Seed) {
                Dungeon.level.plant((Plant.Seed) item, pos);
            } else {
                Dungeon.level.drop(item, pos);
            }
        }
        Dungeon.droppedItems.remove(Dungeon.depth);
    }
    Camera.main.target = hero;
    if (InterlevelScene.mode != InterlevelScene.Mode.NONE) {
        if (Dungeon.depth < Statistics.deepestFloor) {
            GLog.h(TXT_WELCOME_BACK, Dungeon.depth);
        } else {
            GLog.h(TXT_WELCOME, Dungeon.depth);
            Sample.INSTANCE.play(Assets.SND_DESCEND);
        }
        switch(Dungeon.level.feeling) {
            case CHASM:
                GLog.w(TXT_CHASM);
                break;
            case WATER:
                GLog.w(TXT_WATER);
                break;
            case GRASS:
                GLog.w(TXT_GRASS);
                break;
            default:
        }
        if (Dungeon.level instanceof RegularLevel && ((RegularLevel) Dungeon.level).secretDoors > Random.IntRange(3, 4)) {
            GLog.w(TXT_SECRETS);
        }
        if (Dungeon.nightMode && !Dungeon.bossLevel()) {
            GLog.w(TXT_NIGHT_MODE);
        }
        InterlevelScene.mode = InterlevelScene.Mode.NONE;
        fadeIn();
    }
}
Also used : Group(com.watabou.noosa.Group) Mob(com.watabou.pixeldungeon.actors.mobs.Mob) FogOfWar(com.watabou.pixeldungeon.FogOfWar) Blob(com.watabou.pixeldungeon.actors.blobs.Blob) StatusPane(com.watabou.pixeldungeon.ui.StatusPane) Flare(com.watabou.pixeldungeon.effects.Flare) Potion(com.watabou.pixeldungeon.items.potions.Potion) AttackIndicator(com.watabou.pixeldungeon.ui.AttackIndicator) DungeonTilemap(com.watabou.pixeldungeon.DungeonTilemap) Item(com.watabou.pixeldungeon.items.Item) Plant(com.watabou.pixeldungeon.plants.Plant) HealthIndicator(com.watabou.pixeldungeon.ui.HealthIndicator) BusyIndicator(com.watabou.pixeldungeon.ui.BusyIndicator) SkinnedBlock(com.watabou.noosa.SkinnedBlock) HeroSprite(com.watabou.pixeldungeon.sprites.HeroSprite) GameLog(com.watabou.pixeldungeon.ui.GameLog) Toolbar(com.watabou.pixeldungeon.ui.Toolbar) RegularLevel(com.watabou.pixeldungeon.levels.RegularLevel)

Example 2 with SkinnedBlock

use of com.watabou.noosa.SkinnedBlock in project pixel-dungeon by watabou.

the class Archs method createChildren.

@Override
protected void createChildren() {
    arcsBg = new SkinnedBlock(1, 1, Assets.ARCS_BG);
    arcsBg.autoAdjust = true;
    arcsBg.offsetTo(0, offsB);
    add(arcsBg);
    arcsFg = new SkinnedBlock(1, 1, Assets.ARCS_FG);
    arcsFg.autoAdjust = true;
    arcsFg.offsetTo(0, offsF);
    add(arcsFg);
}
Also used : SkinnedBlock(com.watabou.noosa.SkinnedBlock)

Aggregations

SkinnedBlock (com.watabou.noosa.SkinnedBlock)2 Group (com.watabou.noosa.Group)1 DungeonTilemap (com.watabou.pixeldungeon.DungeonTilemap)1 FogOfWar (com.watabou.pixeldungeon.FogOfWar)1 Blob (com.watabou.pixeldungeon.actors.blobs.Blob)1 Mob (com.watabou.pixeldungeon.actors.mobs.Mob)1 Flare (com.watabou.pixeldungeon.effects.Flare)1 Item (com.watabou.pixeldungeon.items.Item)1 Potion (com.watabou.pixeldungeon.items.potions.Potion)1 RegularLevel (com.watabou.pixeldungeon.levels.RegularLevel)1 Plant (com.watabou.pixeldungeon.plants.Plant)1 HeroSprite (com.watabou.pixeldungeon.sprites.HeroSprite)1 AttackIndicator (com.watabou.pixeldungeon.ui.AttackIndicator)1 BusyIndicator (com.watabou.pixeldungeon.ui.BusyIndicator)1 GameLog (com.watabou.pixeldungeon.ui.GameLog)1 HealthIndicator (com.watabou.pixeldungeon.ui.HealthIndicator)1 StatusPane (com.watabou.pixeldungeon.ui.StatusPane)1 Toolbar (com.watabou.pixeldungeon.ui.Toolbar)1