@Override protected void createChildren() { shield = new NinePatch(Assets.STATUS, 80, 0, 30 + 18, 0); add(shield); add( new TouchArea(0, 1, 31, 31) { @Override protected void onClick(Touch touch) { Image sprite = Dungeon.hero.sprite; if (!sprite.isVisible()) { Camera.main.focusOn(sprite); } GameScene.show(new WndHero()); } }); btnMenu = new MenuButton(); add(btnMenu); avatar = HeroSprite.avatar(Dungeon.hero.heroClass, lastTier); add(avatar); blood = new Emitter(); blood.pos(avatar); blood.pour(BloodParticle.FACTORY, 0.3f); blood.autoKill = false; blood.on = false; add(blood); compass = new Compass(Dungeon.level.exit); add(compass); hp = new Image(Assets.HP_BAR); add(hp); exp = new Image(Assets.XP_BAR); add(exp); level = new BitmapText(PixelScene.font1x); level.hardlight(0xFFEBA4); add(level); depth = new BitmapText(Integer.toString(Dungeon.depth), PixelScene.font1x); depth.hardlight(0xCACFC2); depth.measure(); add(depth); Dungeon.hero.belongings.countIronKeys(); keys = new BitmapText(PixelScene.font1x); keys.hardlight(0xCACFC2); add(keys); danger = new DangerIndicator(); add(danger); buffs = new BuffIndicator(Dungeon.hero); add(buffs); }
@Override public void update() { super.update(); float health = (float) Dungeon.hero.HP / Dungeon.hero.HT; if (health == 0) { avatar.tint(0x000000, 0.6f); blood.on = false; } else if (health < 0.25f) { avatar.tint(0xcc0000, 0.4f); blood.on = true; } else { avatar.resetColor(); blood.on = false; } hp.scale.x = health; exp.scale.x = (width / exp.width) * Dungeon.hero.exp / Dungeon.hero.maxExp(); if (Dungeon.hero.lvl != lastLvl) { if (lastLvl != -1) { Emitter emitter = (Emitter) recycle(Emitter.class); emitter.revive(); emitter.pos(27, 27); emitter.burst(Speck.factory(Speck.STAR), 12); } lastLvl = Dungeon.hero.lvl; level.text(Integer.toString(lastLvl)); level.measure(); level.x = PixelScene.align(27.0f - level.width() / 2); level.y = PixelScene.align(27.5f - level.baseLine() / 2); } int k = IronKey.curDepthQuantity; if (k != lastKeys) { lastKeys = k; keys.text(Integer.toString(lastKeys)); keys.measure(); keys.x = width - 8 - keys.width() - 18; } int tier = Dungeon.hero.tier(); if (tier != lastTier) { lastTier = tier; avatar.copy(HeroSprite.avatar(Dungeon.hero.heroClass, tier)); } }