public AudioTab() { OptionSlider musicVol = new OptionSlider(Messages.get(this, "music_vol"), "0", "10", 0, 10) { @Override protected void onChange() { Music.INSTANCE.volume(getSelectedValue() / 10f); ShatteredPixelDungeon.musicVol(getSelectedValue()); } }; musicVol.setSelectedValue(ShatteredPixelDungeon.musicVol()); musicVol.setRect(0, 0, WIDTH, SLIDER_HEIGHT); add(musicVol); CheckBox musicMute = new CheckBox(Messages.get(this, "music_mute")) { @Override protected void onClick() { super.onClick(); ShatteredPixelDungeon.music(!checked()); } }; musicMute.setRect(0, musicVol.bottom() + GAP_SML, WIDTH, BTN_HEIGHT); musicMute.checked(!ShatteredPixelDungeon.music()); add(musicMute); OptionSlider SFXVol = new OptionSlider(Messages.get(this, "sfx_vol"), "0", "10", 0, 10) { @Override protected void onChange() { Sample.INSTANCE.volume(getSelectedValue() / 10f); ShatteredPixelDungeon.SFXVol(getSelectedValue()); } }; SFXVol.setSelectedValue(ShatteredPixelDungeon.SFXVol()); SFXVol.setRect(0, musicMute.bottom() + GAP_LRG, WIDTH, SLIDER_HEIGHT); add(SFXVol); CheckBox btnSound = new CheckBox(Messages.get(this, "sfx_mute")) { @Override protected void onClick() { super.onClick(); ShatteredPixelDungeon.soundFx(!checked()); Sample.INSTANCE.play(Assets.SND_CLICK); } }; btnSound.setRect(0, SFXVol.bottom() + GAP_SML, WIDTH, BTN_HEIGHT); btnSound.checked(!ShatteredPixelDungeon.soundFx()); add(btnSound); resize(WIDTH, (int) btnSound.bottom()); }
public WndSettings() { super(); screen = new ScreenTab(); add(screen); ui = new UITab(); add(ui); audio = new AudioTab(); add(audio); add( new LabeledTab(Messages.get(this, "screen")) { @Override protected void select(boolean value) { super.select(value); screen.visible = screen.active = value; if (value) last_index = 0; } }); add( new LabeledTab(Messages.get(this, "ui")) { @Override protected void select(boolean value) { super.select(value); ui.visible = ui.active = value; if (value) last_index = 1; } }); add( new LabeledTab(Messages.get(this, "audio")) { @Override protected void select(boolean value) { super.select(value); audio.visible = audio.active = value; if (value) last_index = 2; } }); resize(WIDTH, HEIGHT); layoutTabs(); select(last_index); }
@Override public boolean act() { if (target.isAlive()) { if ((level = Random.NormalIntRange(level / 2, level)) > 0) { target.damage(level, this); if (target.sprite.visible) { Splash.at( target.sprite.center(), -PointF.PI / 2, PointF.PI / 6, target.sprite.blood(), Math.min(10 * level / target.HT, 10)); } if (target == Dungeon.hero && !target.isAlive()) { Dungeon.fail(getClass()); GLog.n(Messages.get(this, "ondeath")); } spend(TICK); } else { detach(); } } else { detach(); } return true; }
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())); }
public WndGame() { super(); addButton( new RedButton(Messages.get(this, "settings")) { @Override protected void onClick() { hide(); GameScene.show(new WndSettings()); } }); // Challenges window if (Dungeon.challenges > 0) { addButton( new RedButton(Messages.get(this, "challenges")) { @Override protected void onClick() { hide(); GameScene.show(new WndChallenges(Dungeon.challenges, false)); } }); } // Restart if (!Dungeon.hero.isAlive()) { RedButton btnStart; addButton( btnStart = new RedButton(Messages.get(this, "start")) { @Override protected void onClick() { Dungeon.hero = null; ShatteredPixelDungeon.challenges(Dungeon.challenges); InterlevelScene.mode = InterlevelScene.Mode.DESCEND; InterlevelScene.noStory = true; Game.switchScene(InterlevelScene.class); } }); btnStart.icon(Icons.get(Dungeon.hero.heroClass)); addButton( new RedButton(Messages.get(this, "rankings")) { @Override protected void onClick() { InterlevelScene.mode = InterlevelScene.Mode.DESCEND; Game.switchScene(RankingsScene.class); } }); } addButtons( // Main menu new RedButton(Messages.get(this, "menu")) { @Override protected void onClick() { try { Dungeon.saveAll(); } catch (IOException e) { ShatteredPixelDungeon.reportException(e); } Game.switchScene(TitleScene.class); } }, // Quit new RedButton(Messages.get(this, "exit")) { @Override protected void onClick() { Game.instance.finish(); } }); // Cancel addButton( new RedButton(Messages.get(this, "return")) { @Override protected void onClick() { hide(); } }); resize(WIDTH, pos); }
@Override public String description() { return Messages.get(this, "desc", weapon.name()); }
@Override public String desc() { return Messages.get(this, "desc", dispTurns(left), damage); }
@Override public String toString() { return Messages.get(this, "name"); }
@Override public String tileDesc() { return Messages.get(this, "desc"); }
@Override public String desc() { return Messages.get(this, "desc", level); }
@Override public String heroMessage() { return Messages.get(this, "heromsg"); }
public UITab() { super(); RenderedText barDesc = PixelScene.renderText(Messages.get(this, "mode"), 9); barDesc.x = (WIDTH - barDesc.width()) / 2; PixelScene.align(barDesc); add(barDesc); RedButton btnSplit = new RedButton(Messages.get(this, "split")) { @Override protected void onClick() { ShatteredPixelDungeon.toolbarMode(Toolbar.Mode.SPLIT.name()); Toolbar.updateLayout(); } }; btnSplit.setRect(1, barDesc.y + barDesc.baseLine() + GAP_TINY, 36, 16); add(btnSplit); RedButton btnGrouped = new RedButton(Messages.get(this, "group")) { @Override protected void onClick() { ShatteredPixelDungeon.toolbarMode(Toolbar.Mode.GROUP.name()); Toolbar.updateLayout(); } }; btnGrouped.setRect(btnSplit.right() + 1, barDesc.y + barDesc.baseLine() + GAP_TINY, 36, 16); add(btnGrouped); RedButton btnCentered = new RedButton(Messages.get(this, "center")) { @Override protected void onClick() { ShatteredPixelDungeon.toolbarMode(Toolbar.Mode.CENTER.name()); Toolbar.updateLayout(); } }; btnCentered.setRect( btnGrouped.right() + 1, barDesc.y + barDesc.baseLine() + GAP_TINY, 36, 16); add(btnCentered); CheckBox chkFlipToolbar = new CheckBox(Messages.get(this, "flip_toolbar")) { @Override protected void onClick() { super.onClick(); ShatteredPixelDungeon.flipToolbar(checked()); Toolbar.updateLayout(); } }; chkFlipToolbar.setRect(0, btnGrouped.bottom() + GAP_TINY, WIDTH, BTN_HEIGHT); chkFlipToolbar.checked(ShatteredPixelDungeon.flipToolbar()); add(chkFlipToolbar); final CheckBox chkFlipTags = new CheckBox(Messages.get(this, "flip_indicators")) { @Override protected void onClick() { super.onClick(); ShatteredPixelDungeon.flipTags(checked()); GameScene.layoutTags(); } }; chkFlipTags.setRect(0, chkFlipToolbar.bottom() + GAP_TINY, WIDTH, BTN_HEIGHT); chkFlipTags.checked(ShatteredPixelDungeon.flipTags()); add(chkFlipTags); OptionSlider slots = new OptionSlider(Messages.get(this, "quickslots"), "0", "4", 0, 4) { @Override protected void onChange() { ShatteredPixelDungeon.quickSlots(getSelectedValue()); Toolbar.updateLayout(); } }; slots.setSelectedValue(ShatteredPixelDungeon.quickSlots()); slots.setRect(0, chkFlipTags.bottom() + GAP_TINY, WIDTH, SLIDER_HEIGHT); add(slots); CheckBox chkFont = new CheckBox(Messages.get(this, "system_font")) { @Override protected void onClick() { super.onClick(); ShatteredPixelDungeon.switchNoFade( (Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass(), new Game.SceneChangeCallback() { @Override public void beforeCreate() { ShatteredPixelDungeon.classicFont(!checked()); } @Override public void afterCreate() { Game.scene().add(new WndSettings()); } }); } }; chkFont.setRect(0, slots.bottom() + GAP_SML, WIDTH, BTN_HEIGHT); chkFont.checked(!ShatteredPixelDungeon.classicFont()); add(chkFont); }
public ScreenTab() { super(); OptionSlider scale = new OptionSlider( Messages.get(this, "scale"), (int) Math.ceil(2 * Game.density) + "X", PixelScene.maxDefaultZoom + "X", (int) Math.ceil(2 * Game.density), PixelScene.maxDefaultZoom) { @Override protected void onChange() { if (getSelectedValue() != ShatteredPixelDungeon.scale()) { ShatteredPixelDungeon.scale(getSelectedValue()); ShatteredPixelDungeon.switchNoFade( (Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass(), new Game.SceneChangeCallback() { @Override public void beforeCreate() { // do nothing } @Override public void afterCreate() { Game.scene().add(new WndSettings()); } }); } } }; scale.setSelectedValue(PixelScene.defaultZoom); scale.setRect(0, 0, WIDTH, SLIDER_HEIGHT); if ((int) Math.ceil(2 * Game.density) < PixelScene.maxDefaultZoom) add(scale); OptionSlider brightness = new OptionSlider( Messages.get(this, "brightness"), Messages.get(this, "dark"), Messages.get(this, "bright"), -2, 2) { @Override protected void onChange() { ShatteredPixelDungeon.brightness(getSelectedValue()); } }; brightness.setSelectedValue(ShatteredPixelDungeon.brightness()); brightness.setRect(0, scale.bottom() + GAP_TINY, WIDTH, SLIDER_HEIGHT); add(brightness); CheckBox chkImmersive = new CheckBox(Messages.get(this, "soft_keys")) { @Override protected void onClick() { super.onClick(); ShatteredPixelDungeon.immerse(checked()); } }; chkImmersive.setRect(0, brightness.bottom() + GAP_SML, WIDTH, BTN_HEIGHT); chkImmersive.checked(ShatteredPixelDungeon.immersed()); chkImmersive.enable(android.os.Build.VERSION.SDK_INT >= 19); add(chkImmersive); CheckBox chkSaver = new CheckBox(Messages.get(this, "saver")) { @Override protected void onClick() { super.onClick(); if (checked()) { checked(!checked()); ShatteredPixelDungeon.scene() .add( new WndOptions( Messages.get(ScreenTab.class, "saver"), Messages.get(ScreenTab.class, "saver_desc"), Messages.get(ScreenTab.class, "okay"), Messages.get(ScreenTab.class, "cancel")) { @Override protected void onSelect(int index) { if (index == 0) { checked(!checked()); ShatteredPixelDungeon.powerSaver(checked()); } } }); } else { ShatteredPixelDungeon.powerSaver(checked()); } } }; chkSaver.setRect(0, chkImmersive.bottom() + GAP_TINY, WIDTH, BTN_HEIGHT); chkSaver.checked(ShatteredPixelDungeon.powerSaver()); if (PixelScene.maxScreenZoom >= 2) add(chkSaver); RedButton btnOrientation = new RedButton( ShatteredPixelDungeon.landscape() ? Messages.get(this, "portrait") : Messages.get(this, "landscape")) { @Override protected void onClick() { ShatteredPixelDungeon.landscape(!ShatteredPixelDungeon.landscape()); } }; btnOrientation.setRect(0, chkSaver.bottom() + GAP_SML, WIDTH, BTN_HEIGHT); add(btnOrientation); }