package ru.vagrant_ai.questionmarkgame.obj.scenes;
import org.newdawn.slick.Color;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import ru.vagrant_ai.questionmarkgame.main.Game;
import ru.vagrant_ai.questionmarkgame.main.GameplayState;
import ru.vagrant_ai.questionmarkgame.util.MenuButton;
import ru.vagrant_ai.questionmarkgame.util.Text;
import ru.vagrant_ai.questionmarkgame.util.Util;
import ru.vagrant_ai.questionmarkgame.util.list.ITEM;
public class Shop extends Scene {
private Image border, background, deal, upgrade;
private Image[] button = new Image[2];
private boolean pressed = false;
private ITEM item = ITEM.pickRand();
private ITEM upg = ITEM.pickRandUpg();
public Shop()
{
Game.app.getInput().clearKeyPressedRecord();
deal = item.getIcon();
if (upg != null)
{
upgrade = upg.getIcon();
upgrade.getScaledCopy(3f);
upgrade.setFilter(Image.FILTER_NEAREST);
}
background = Util.loadImage("background/shop_background");
border = Util.loadImage("background/shop_terminal");
button[0] = Util.loadImage("background/button");
button[1] = Util.loadImage("background/button_pr");
background.setAlpha(0.85f);
deal.setFilter(Image.FILTER_NEAREST);
}
public void render(Graphics g)
{
GameplayState.render_world(g);
background.draw(0,0);
Text.drawString(200, Text.extractLength("SHOP", 200), 60, "SHOP", Color.blue);
drawDeal(g);
drawUpgrade(g);
border.draw(0, 0);
button[(pressed?1:0)].draw(693,531);
}
private void drawDeal(Graphics g)
{
Text.drawString(65, Text.extractLength("Today's deal:", 65), 150, "Today's deal:", Color.black);
g.setColor(new Color(255, 236, 129, 248));
g.fillRoundRect(368, 198, 64, 64, 9);
deal.getScaledCopy(3f).draw(372, 202);
if (MenuButton.create("Afford", Text.extractLength("Afford", 80), 280, Color.red, 80))
affordItem();
}
private void drawUpgrade(Graphics g)
{
if (upg != null)
{
Text.drawString(65, Text.extractLength("Purchase upgrade:", 65), 330, "Purchase upgrade:", Color.black);
g.setColor(new Color(255, 236, 129, 248));
g.fillRoundRect(368, 378, 64, 64, 9);
upgrade.getScaledCopy(3f).draw(372, 382);
if (MenuButton.create("Afford", Text.extractLength("Afford", 80), 456, Color.red, 80))
affordUpg();
}
}
public void update()
{
pressed = false;
if (Util.MouseOver(692, 530, 63, 63))
{
if (Util.MouseIsPressed(1))
pressed = true;
if (Util.MouseReleased(1, 692, 530, 63, 63))
GameplayState.scene_handler.deactivateScene();
}
}
private void affordItem()
{
GameplayState.dispenser.dispenseItem(item);
item = ITEM.pickRand();
deal = item.getIcon();
deal.getScaledCopy(3f);
deal.setFilter(Image.FILTER_NEAREST);
}
private void affordUpg()
{
GameplayState.dispenser.dispenseUpgrade(upg);
upg = ITEM.pickRandUpg();
if (upg != null)
{
upgrade = upg.getIcon();
upgrade.getScaledCopy(3f);
upgrade.setFilter(Image.FILTER_NEAREST);
}
else
{
upg = null;
upgrade = null;
}
}
}