com.mygdx.gui.UpgradeButton.java Source code

Java tutorial

Introduction

Here is the source code for com.mygdx.gui.UpgradeButton.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mygdx.gui;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.mygdx.game.Game;
import com.mygdx.game.Hero;
import static com.mygdx.game.MyGdxGame.MYGDXGAME;
import com.mygdx.game.Upgrade;
import com.mygdx.game.Upgrade.Type;

/**
 *
 * @author Whizzpered
 */
public class UpgradeButton extends Element {

    public Upgrade target;
    public Hero owner;
    public int lvl = 0;
    public long price = 0;
    String desc = " ";

    public UpgradeButton(String sprite, String message, float x, float y, Upgrade up) {
        super(sprite, message, x, y);
        target = up;
        price = up.startprice;
        desc = up.description;
    }

    public UpgradeButton(String sprite, String message, float x, float y, Hero up) {
        super(sprite, message, x, y);
        owner = up;
        price = owner.startprice;
        desc = up.description;
    }

    public void action() {
        if (target != null) {
            for (Type t : target.types) {
                if (t != null) {
                    switch (t) {
                    case POINTS:
                        target.pointsBoost = lvl * 5 - 9;
                        break;
                    case GOODCOMMITS:
                        target.goodcomms = lvl * 2 / 100;
                        break;
                    case SPEED:
                        target.speedBoost = lvl * 6 / 10;
                        break;
                    }
                }
            }
        } else {

            for (Type t : owner.types) {
                if (t != null) {
                    switch (t) {
                    case POINTS:
                        owner.pointsBoost = lvl * 5 - 9;
                        break;
                    case GOODCOMMITS:
                        owner.goodcomms = lvl * 2 / 100;
                        break;
                    case SPEED:
                        owner.speedBoost = lvl * 6 / 100;
                        break;
                    }
                }
            }
        }
    }

    public void pay() {
        lvl++;
        MYGDXGAME.game.moneys -= price;
        price += price / 2;
    }

    @Override
    public void tap() {
        if (MYGDXGAME.game.moneys >= price) {
            pay();
            action();
        }
    }

    @Override
    public void draw(Batch batch, float parentAlpha) {
        sprite.setColor(MYGDXGAME.game.moneys >= price ? Color.WHITE : Color.GRAY);
        if (sprite != null) {
            sprite.setSize(width, height);
            sprite.setCenterX(x);
            sprite.setCenterY(y);
            sprite.setAlpha(parentAlpha);
            sprite.draw(batch, parentAlpha);
            if (mess != null) {
                MYGDXGAME.game.draw(batch, mess, x - 40, y + getHeight() / 2 - 20, Color.BLACK,
                        Game.fontSizes.STANDART);
            }
        }
        if (desc != null)
            MYGDXGAME.game.draw(batch, desc, x - getWidth() / 2 + 30, y + getHeight() / 2 - 60, Color.BLACK,
                    Game.fontSizes.STANDART);
        MYGDXGAME.game.draw(batch, "$" + price, x - getWidth() / 2 + 30, y + getHeight() / 2 - 100, Color.RED,
                Game.fontSizes.STANDART);
    }

}