コード例 #1
0
  public WndBlacksmith(Blacksmith troll, Hero hero) {

    super();

    IconTitle titlebar = new IconTitle();
    titlebar.icon(troll.sprite());
    titlebar.label(Utils.capitalize(troll.name));
    titlebar.setRect(0, 0, WIDTH, 0);
    add(titlebar);

    BitmapTextMultiline message = PixelScene.createMultiline(TXT_PROMPT, 6);
    message.maxWidth = WIDTH;
    message.measure();
    message.y = titlebar.bottom() + GAP;
    add(message);

    btnItem1 =
        new ItemButton() {
          @Override
          protected void onClick() {
            btnPressed = btnItem1;
            GameScene.selectItem(itemSelector, WndBag.Mode.UPGRADEABLE, TXT_SELECT);
          }
        };
    btnItem1.setRect(
        (WIDTH - BTN_GAP) / 2 - BTN_SIZE,
        message.y + message.height() + BTN_GAP,
        BTN_SIZE,
        BTN_SIZE);
    add(btnItem1);

    btnItem2 =
        new ItemButton() {
          @Override
          protected void onClick() {
            btnPressed = btnItem2;
            GameScene.selectItem(itemSelector, WndBag.Mode.UPGRADEABLE, TXT_SELECT);
          }
        };
    btnItem2.setRect(btnItem1.right() + BTN_GAP, btnItem1.top(), BTN_SIZE, BTN_SIZE);
    add(btnItem2);

    btnReforge =
        new RedButton(TXT_REFORGE) {
          @Override
          protected void onClick() {
            Blacksmith.upgrade(btnItem1.item, btnItem2.item);
            hide();
          }
        };
    btnReforge.enable(false);
    btnReforge.setRect(0, btnItem1.bottom() + BTN_GAP, WIDTH, 20);
    add(btnReforge);

    resize(WIDTH, (int) btnReforge.bottom());
  }
コード例 #2
0
ファイル: WndInfoCell.java プロジェクト: udawos/pioneer
  public WndInfoCell(int cell) {

    super();

    int tile = Dungeon.level.map[cell];
    if (Level.water[cell]) {
      tile = Terrain.WATER;
    } else if (Level.pit[cell]) {
      tile = Terrain.CHASM;
    }

    IconTitle titlebar = new IconTitle();
    if (tile == Terrain.WATER) {
      Image water = new Image(Dungeon.level.waterTex());
      water.frame(0, 0, DungeonTilemap.SIZE, DungeonTilemap.SIZE);
      titlebar.icon(water);
    } else {
      titlebar.icon(DungeonTilemap.tile(tile));
    }
    titlebar.label(Dungeon.level.tileName(tile));
    titlebar.setRect(0, 0, WIDTH, 0);
    add(titlebar);

    BitmapTextMultiline info = PixelScene.createMultiline(6);
    add(info);

    StringBuilder desc = new StringBuilder(Dungeon.level.tileDesc(tile));

    final char newLine = '\n';
    for (Blob blob : Dungeon.level.blobs.values()) {
      if (blob.cur[cell] > 0 && blob.tileDesc() != null) {
        if (desc.length() > 0) {
          desc.append(newLine);
        }
        desc.append(blob.tileDesc());
      }
    }

    info.text(desc.length() > 0 ? desc.toString() : TXT_NOTHING);
    info.maxWidth = WIDTH;
    info.measure();
    info.x = titlebar.left();
    info.y = titlebar.bottom() + GAP;

    resize(WIDTH, (int) (info.y + info.height()));
  }
コード例 #3
0
    public StatsTab() {
      super();

      if (Dungeon.challenges > 0) GAP--;

      String heroClass = Dungeon.hero.className();

      IconTitle title = new IconTitle();
      title.icon(HeroSprite.avatar(Dungeon.hero.heroClass, Dungeon.hero.tier()));
      title.label(Utils.format(TXT_TITLE, Dungeon.hero.lvl, heroClass).toUpperCase(Locale.ENGLISH));
      title.color(Window.SHPX_COLOR);
      title.setRect(0, 0, WIDTH, 0);
      add(title);

      float pos = title.bottom();

      if (Dungeon.challenges > 0) {
        RedButton btnCatalogus =
            new RedButton(TXT_CHALLENGES) {
              @Override
              protected void onClick() {
                Game.scene().add(new WndChallenges(Dungeon.challenges, false));
              }
            };
        btnCatalogus.setRect(0, pos, btnCatalogus.reqWidth() + 2, btnCatalogus.reqHeight() + 2);
        add(btnCatalogus);

        pos = btnCatalogus.bottom();
      }

      pos += GAP + GAP;

      pos = statSlot(this, TXT_STR, Integer.toString(Dungeon.hero.STR), pos);
      pos = statSlot(this, TXT_HEALTH, Integer.toString(Dungeon.hero.HT), pos);

      pos += GAP;

      pos = statSlot(this, TXT_DURATION, Integer.toString((int) Statistics.duration), pos);

      pos += GAP;

      pos = statSlot(this, TXT_DEPTH, Integer.toString(Statistics.deepestFloor), pos);
      pos = statSlot(this, TXT_ENEMIES, Integer.toString(Statistics.enemiesSlain), pos);
      pos = statSlot(this, TXT_GOLD, Integer.toString(Statistics.goldCollected), pos);

      pos += GAP;

      pos = statSlot(this, TXT_FOOD, Integer.toString(Statistics.foodEaten), pos);
      pos = statSlot(this, TXT_ALCHEMY, Integer.toString(Statistics.potionsCooked), pos);
      pos = statSlot(this, TXT_ANKHS, Integer.toString(Statistics.ankhsUsed), pos);
    }
コード例 #4
0
  private float createCommonStuff(TomeOfMastery tome, String text) {
    IconTitle titlebar = new IconTitle();
    titlebar.icon(new ItemSprite(tome.image(), null));
    titlebar.label(tome.name());
    titlebar.setRect(0, 0, WIDTH, 0);
    add(titlebar);

    HighlightedText hl = new HighlightedText(6);
    hl.text(text, WIDTH);
    hl.setPos(titlebar.left(), titlebar.bottom() + GAP);
    add(hl);

    return hl.bottom();
  }
コード例 #5
0
  public WndInfoPlant(Plant plant) {

    super();

    IconTitle titlebar = new IconTitle();
    titlebar.icon(new PlantSprite(plant.image));
    titlebar.label(plant.plantName);
    titlebar.setRect(0, 0, WIDTH, 0);
    add(titlebar);

    BitmapTextMultiline info = PixelScene.createMultiline(6);
    add(info);

    info.text(plant.desc());
    info.maxWidth = WIDTH;
    info.measure();
    info.x = titlebar.left();
    info.y = titlebar.bottom() + GAP;

    resize(WIDTH, (int) (info.y + info.height()));
  }
コード例 #6
0
  public WndInfoBuff(Buff buff) {
    super();

    IconTitle titlebar = new IconTitle();

    icons = TextureCache.get(Assets.BUFFS_LARGE);
    film = new TextureFilm(icons, 16, 16);

    Image buffIcon = new Image(icons);
    buffIcon.frame(film.get(buff.icon()));

    titlebar.icon(buffIcon);
    titlebar.label(Messages.titleCase(buff.toString()), Window.TITLE_COLOR);
    titlebar.setRect(0, 0, WIDTH, 0);
    add(titlebar);

    RenderedTextMultiline txtInfo = PixelScene.renderMultiline(buff.desc(), 6);
    txtInfo.maxWidth(WIDTH);
    txtInfo.setPos(titlebar.left(), titlebar.bottom() + GAP);
    add(txtInfo);

    resize(WIDTH, (int) (txtInfo.top() + txtInfo.height()));
  }