v2.0.0: deleted old unused WndStartGame class
This commit is contained in:
@@ -1,343 +0,0 @@
|
||||
/*
|
||||
* Pixel Dungeon
|
||||
* Copyright (C) 2012-2015 Oleg Dolya
|
||||
*
|
||||
* Shattered Pixel Dungeon
|
||||
* Copyright (C) 2014-2022 Evan Debenham
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* 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 com.shatteredpixel.shatteredpixeldungeon.windows;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.GamesInProgress;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.SPDSettings;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Document;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Journal;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.IconButton;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.watabou.noosa.ColorBlock;
|
||||
import com.watabou.noosa.Game;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Button;
|
||||
import com.watabou.noosa.ui.Component;
|
||||
import com.watabou.utils.DeviceCompat;
|
||||
|
||||
public class WndStartGame extends Window {
|
||||
|
||||
private static final int WIDTH = 120;
|
||||
private static final int HEIGHT = 140;
|
||||
|
||||
public WndStartGame(final int slot){
|
||||
|
||||
Badges.loadGlobal();
|
||||
Journal.loadGlobal();
|
||||
|
||||
RenderedTextBlock title = PixelScene.renderTextBlock(Messages.get(this, "title"), 12 );
|
||||
title.hardlight(Window.TITLE_COLOR);
|
||||
title.setPos( (WIDTH - title.width())/2f, 3);
|
||||
PixelScene.align(title);
|
||||
add(title);
|
||||
|
||||
float heroBtnSpacing = (WIDTH - 4*HeroBtn.WIDTH)/5f;
|
||||
|
||||
float curX = heroBtnSpacing;
|
||||
for (HeroClass cl : HeroClass.values()){
|
||||
HeroBtn button = new HeroBtn(cl);
|
||||
button.setRect(curX, title.height() + 7, HeroBtn.WIDTH, HeroBtn.HEIGHT);
|
||||
curX += HeroBtn.WIDTH + heroBtnSpacing;
|
||||
add(button);
|
||||
}
|
||||
|
||||
ColorBlock separator = new ColorBlock(1, 1, 0xFF222222);
|
||||
separator.size(WIDTH, 1);
|
||||
separator.x = 0;
|
||||
separator.y = title.bottom() + 6 + HeroBtn.HEIGHT;
|
||||
add(separator);
|
||||
|
||||
HeroPane ava = new HeroPane();
|
||||
ava.setRect(20, separator.y + 2, WIDTH-30, 80);
|
||||
add(ava);
|
||||
|
||||
RedButton start = new RedButton(Messages.get(this, "start")){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
if (GamesInProgress.selectedClass == null) return;
|
||||
|
||||
super.onClick();
|
||||
|
||||
GamesInProgress.curSlot = slot;
|
||||
Dungeon.hero = null;
|
||||
Dungeon.daily = Dungeon.dailyReplay = false;
|
||||
ActionIndicator.action = null;
|
||||
InterlevelScene.mode = InterlevelScene.Mode.DESCEND;
|
||||
|
||||
Game.switchScene( InterlevelScene.class );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
if( !visible && GamesInProgress.selectedClass != null){
|
||||
visible = true;
|
||||
}
|
||||
super.update();
|
||||
}
|
||||
};
|
||||
start.visible = false;
|
||||
start.setRect(0, HEIGHT - 20, WIDTH, 20);
|
||||
add(start);
|
||||
|
||||
if (DeviceCompat.isDebug() || Badges.isUnlocked(Badges.Badge.VICTORY)){
|
||||
IconButton challengeButton = new IconButton(
|
||||
Icons.get( SPDSettings.challenges() > 0 ? Icons.CHALLENGE_ON :Icons.CHALLENGE_OFF)){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndChallenges(SPDSettings.challenges(), true) {
|
||||
public void onBackPressed() {
|
||||
super.onBackPressed();
|
||||
if (parent != null) {
|
||||
icon(Icons.get(SPDSettings.challenges() > 0 ?
|
||||
Icons.CHALLENGE_ON : Icons.CHALLENGE_OFF));
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
if( !visible && GamesInProgress.selectedClass != null){
|
||||
visible = true;
|
||||
}
|
||||
super.update();
|
||||
}
|
||||
};
|
||||
challengeButton.setRect(WIDTH - 20, HEIGHT - 20, 20, 20);
|
||||
challengeButton.visible = false;
|
||||
add(challengeButton);
|
||||
|
||||
} else {
|
||||
Dungeon.challenges = 0;
|
||||
SPDSettings.challenges(0);
|
||||
}
|
||||
|
||||
resize(WIDTH, HEIGHT);
|
||||
|
||||
}
|
||||
|
||||
private static class HeroBtn extends Button {
|
||||
|
||||
private HeroClass cl;
|
||||
|
||||
private Image hero;
|
||||
|
||||
private static final int WIDTH = 24;
|
||||
private static final int HEIGHT = 16;
|
||||
|
||||
HeroBtn ( HeroClass cl ){
|
||||
super();
|
||||
|
||||
this.cl = cl;
|
||||
|
||||
add(hero = new Image(cl.spritesheet(), 0, 90, 12, 15));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void layout() {
|
||||
super.layout();
|
||||
if (hero != null){
|
||||
hero.x = x + (width - hero.width()) / 2f;
|
||||
hero.y = y + (height - hero.height()) / 2f;
|
||||
PixelScene.align(hero);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
super.update();
|
||||
if (cl != GamesInProgress.selectedClass){
|
||||
if (!cl.isUnlocked()){
|
||||
hero.brightness(0.3f);
|
||||
} else {
|
||||
hero.brightness(0.6f);
|
||||
}
|
||||
} else {
|
||||
hero.brightness(1f);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
||||
if( !cl.isUnlocked() ){
|
||||
ShatteredPixelDungeon.scene().addToFront( new WndMessage(cl.unlockMsg()));
|
||||
} else {
|
||||
GamesInProgress.selectedClass = cl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class HeroPane extends Component {
|
||||
|
||||
private HeroClass cl;
|
||||
|
||||
private Image avatar;
|
||||
|
||||
private IconButton heroItem;
|
||||
private IconButton heroLoadout;
|
||||
private IconButton heroMisc;
|
||||
private IconButton heroSubclass;
|
||||
|
||||
private RenderedTextBlock name;
|
||||
|
||||
private static final int BTN_SIZE = 20;
|
||||
|
||||
@Override
|
||||
protected void createChildren() {
|
||||
super.createChildren();
|
||||
|
||||
avatar = new Image(Assets.Sprites.AVATARS);
|
||||
avatar.scale.set(2f);
|
||||
add(avatar);
|
||||
|
||||
heroItem = new IconButton(){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
if (cl == null) return;
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndMessage(Messages.get(cl, cl.name() + "_desc_item")));
|
||||
}
|
||||
};
|
||||
heroItem.setSize(BTN_SIZE, BTN_SIZE);
|
||||
add(heroItem);
|
||||
|
||||
heroLoadout = new IconButton(){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
if (cl == null) return;
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndMessage(Messages.get(cl, cl.name() + "_desc_loadout")));
|
||||
}
|
||||
};
|
||||
heroLoadout.setSize(BTN_SIZE, BTN_SIZE);
|
||||
add(heroLoadout);
|
||||
|
||||
heroMisc = new IconButton(){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
if (cl == null) return;
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndMessage(Messages.get(cl, cl.name() + "_desc_misc")));
|
||||
}
|
||||
};
|
||||
heroMisc.setSize(BTN_SIZE, BTN_SIZE);
|
||||
add(heroMisc);
|
||||
|
||||
heroSubclass = new IconButton(new ItemSprite(ItemSpriteSheet.MASTERY, null)){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
if (cl == null) return;
|
||||
String msg = Messages.get(cl, cl.name() + "_desc_subclasses");
|
||||
for (HeroSubClass sub : cl.subClasses()){
|
||||
msg += "\n\n" + sub.shortDesc();
|
||||
}
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndMessage(msg));
|
||||
}
|
||||
};
|
||||
heroSubclass.setSize(BTN_SIZE, BTN_SIZE);
|
||||
add(heroSubclass);
|
||||
|
||||
name = PixelScene.renderTextBlock(12);
|
||||
add(name);
|
||||
|
||||
visible = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void layout() {
|
||||
super.layout();
|
||||
|
||||
avatar.x = x;
|
||||
avatar.y = y + (height - avatar.height() - name.height() - 4)/2f;
|
||||
PixelScene.align(avatar);
|
||||
|
||||
name.setPos(
|
||||
x + (avatar.width() - name.width())/2f,
|
||||
avatar.y + avatar.height() + 3
|
||||
);
|
||||
PixelScene.align(name);
|
||||
|
||||
heroItem.setPos(x + width - BTN_SIZE, y);
|
||||
heroLoadout.setPos(x + width - BTN_SIZE, heroItem.bottom());
|
||||
heroMisc.setPos(x + width - BTN_SIZE, heroLoadout.bottom());
|
||||
heroSubclass.setPos(x + width - BTN_SIZE, heroMisc.bottom());
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void update() {
|
||||
super.update();
|
||||
if (GamesInProgress.selectedClass != cl){
|
||||
cl = GamesInProgress.selectedClass;
|
||||
if (cl != null) {
|
||||
avatar.frame(cl.ordinal() * 24, 0, 24, 32);
|
||||
|
||||
name.text(Messages.capitalize(cl.title()));
|
||||
|
||||
switch(cl){
|
||||
case WARRIOR:
|
||||
heroItem.icon(new ItemSprite(ItemSpriteSheet.SEAL, null));
|
||||
heroLoadout.icon(new ItemSprite(ItemSpriteSheet.WORN_SHORTSWORD, null));
|
||||
heroMisc.icon(new ItemSprite(ItemSpriteSheet.RATION, null));
|
||||
break;
|
||||
case MAGE:
|
||||
heroItem.icon(new ItemSprite(ItemSpriteSheet.MAGES_STAFF, null));
|
||||
heroLoadout.icon(new ItemSprite(ItemSpriteSheet.HOLDER, null));
|
||||
heroMisc.icon(new ItemSprite(ItemSpriteSheet.WAND_MAGIC_MISSILE, null));
|
||||
break;
|
||||
case ROGUE:
|
||||
heroItem.icon(new ItemSprite(ItemSpriteSheet.ARTIFACT_CLOAK, null));
|
||||
heroLoadout.icon(new ItemSprite(ItemSpriteSheet.DAGGER, null));
|
||||
heroMisc.icon(Icons.get(Icons.STAIRS));
|
||||
break;
|
||||
case HUNTRESS:
|
||||
heroItem.icon(new ItemSprite(ItemSpriteSheet.SPIRIT_BOW, null));
|
||||
heroLoadout.icon(new ItemSprite(ItemSpriteSheet.GLOVES, null));
|
||||
heroMisc.icon(new Image(Assets.Environment.TILES_SEWERS, 112, 96, 16, 16 ));
|
||||
break;
|
||||
}
|
||||
|
||||
layout();
|
||||
|
||||
visible = true;
|
||||
} else {
|
||||
visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user