UpdateHeroScreen::UpdateHeroScreen(Hero *hero, QWidget *parent):
    QWidget(parent)
{
    setBackgroundRole(QPalette::Dark);
    setAutoFillBackground(true);
    setFixedSize(600, 400);
    setFocusPolicy(Qt::StrongFocus);

    _hero=hero;

    _weaponDescription= new QLabel(this);
    _weaponDescription->move(100, 90);
    _weaponDescription->setFixedWidth(300);
    _weaponDescription->show();

    _upgradeWeaponButton = new QToolButton(this);
    _upgradeWeaponButton->setText(*(new QString("Upgrade")));
    _upgradeWeaponButton->setFixedSize(100,30);
    _upgradeWeaponButton->move(100,150);


    _nextLevelButton = new QToolButton(this);
    _nextLevelButton->setText(*(new QString("Next Level")));
    _nextLevelButton->setFixedSize(100,30);
    _nextLevelButton->move(250,350);

    _speedDescription= new QLabel(this);
    _speedDescription->move(400, 90);
    _speedDescription->setFixedWidth(300);
    _speedDescription->show();

    _upgradeSpeedButton = new QToolButton(this);
    _upgradeSpeedButton->setText(*(new QString("Upgrade")));
    _upgradeSpeedButton->setFixedSize(100,30);
    _upgradeSpeedButton->move(400,150);

    _operationResult= new QLabel(this);
    _operationResult->move(150, 300);
    _operationResult->setFixedWidth(300);
    _operationResult->show();

    _accountDescription= new QLabel(this);
    _accountDescription->move(250, 70);
    _accountDescription->setFixedWidth(400);
    _accountDescription->show();
    setText();


    _operationResult->setShown(false);
    connect(_upgradeSpeedButton,SIGNAL(clicked()),this,SLOT(upgradeSpeed()));
    connect(_upgradeWeaponButton,SIGNAL(clicked()),this,SLOT(upgradeWeapon()));
    connect(_nextLevelButton,SIGNAL(clicked()),this,SLOT(nextLevelClick()));
}
/*
 *Upgrades tower stat
 */
cmdOption upgradeTowerStat(cmdOption stat, int target)  {

    switch(stat)    {
    case upgrade_power:
    {
        if(upgradeDmg(target))  {
            return upgrade_power;
        }
        break;
    }
    case upgrade_range:
    {
        if(upgradeRange(target))    {
            return upgrade_range;
        }
        break;
    }
    case upgrade_speed:
    {
        if(upgradeSpeed(target))    {
            return upgrade_speed;
        }
        break;
    }
    case upgrade_AOErange:
    {
        if(upgradeAOErange(target)) {
            return upgrade_AOErange;
        }
        break;
    }
    case upgrade_AOEpower:
    {
        if(upgradeAOEpower(target)) {
            return upgrade_AOEpower;
        }
        break;
    }
    default:
        fprintf(stderr,"upgradeTowerStat tower.c: unrecognised stat\n");
        return optionError;
    }
    return 0;
}