some improve game ui and bugfixes

This commit is contained in:
2011-09-11 01:26:06 +04:00
committed by unknown
parent 9f90c1e676
commit 714154a6fd
19 changed files with 363 additions and 392 deletions

View File

@@ -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--;