some improve game ui and bugfixes
This commit is contained in:
27
adcore.cpp
27
adcore.cpp
@@ -16,7 +16,7 @@ AD_Core::AD_Core(QObject *parent) :
|
||||
connect(adtowers,SIGNAL(shot(TowerType)),adsplashes,SLOT(addSplash(TowerType)));
|
||||
connect(adsplashes,SIGNAL(killAlien(int,int)),this,SLOT(killAlien(int,int)));
|
||||
waveInProgress = false;
|
||||
waveEnd = false;
|
||||
waveEnd = true;
|
||||
timer = startTimer(40);
|
||||
}
|
||||
|
||||
@@ -26,10 +26,10 @@ void AD_Core::next()
|
||||
adtowers->update();
|
||||
adsplashes->update();
|
||||
addata->aliens->update();
|
||||
foreach(Player * p, addata->players)
|
||||
{
|
||||
if (!addata->aliens->curAliens.contains(p->selectAlienId)) p->selectAlienId = -1;
|
||||
}
|
||||
// foreach(Player * p, addata->players)
|
||||
// {
|
||||
// if (!addata->aliens->curAliens.contains(p->selectAlienId)) p->selectAlienId = -1;
|
||||
// }
|
||||
waveProcessing();
|
||||
step++;
|
||||
}
|
||||
@@ -43,26 +43,31 @@ void AD_Core::timerEvent(QTimerEvent * )
|
||||
|
||||
void AD_Core::nextWave()
|
||||
{
|
||||
if (waveInProgress) return;
|
||||
if (!waveEnd && waveInProgress)
|
||||
{
|
||||
qDebug("wave in progress");
|
||||
return;
|
||||
}
|
||||
if (addata->curWave >= addata->waves.size()) {
|
||||
qDebug("level finished");
|
||||
waveEnd = false;
|
||||
return;
|
||||
}
|
||||
//wavetime = addata->waves.at(addata->curWave).timeout;
|
||||
qDebug() << tr("Next wave %1").arg(addata->curWave+1);
|
||||
wavetime = 0;
|
||||
addata->curWave++;
|
||||
waveInProgress = true;
|
||||
waveEnd = false;
|
||||
qDebug() << tr("Next wave %1").arg(addata->curWave+1);
|
||||
}
|
||||
|
||||
|
||||
void AD_Core::waveProcessing()
|
||||
{
|
||||
/// FIXME : resolve problem with prise for finish wave, it is calculated wrong!
|
||||
if (addata->aliens->curAliens.isEmpty() && waveEnd)
|
||||
if (addata->aliens->curAliens.isEmpty() && !waveInProgress && !waveEnd)
|
||||
{
|
||||
if(addata->curWave > 0) addata->players.at(0)->money += addata->waves.at(addata->curWave-1).prise;
|
||||
waveEnd = false;
|
||||
waveEnd = true;
|
||||
}
|
||||
if (!waveInProgress) return;
|
||||
if (wavetime <= 0) {
|
||||
@@ -71,11 +76,9 @@ void AD_Core::waveProcessing()
|
||||
addata->aliens->addAlien(addata->waves.at(addata->curWave).types.at(i));
|
||||
addata->waves[addata->curWave].counts[i]--;
|
||||
wavetime = addata->waves.at(addata->curWave).timeout;
|
||||
waveEnd = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
addata->curWave++;
|
||||
waveInProgress = false;
|
||||
} else {
|
||||
wavetime--;
|
||||
|
||||
Reference in New Issue
Block a user