fix bug in del tower and some ui changes

This commit is contained in:
2011-08-28 15:54:43 +04:00
parent 894e55bb41
commit 9f90c1e676
15 changed files with 212 additions and 114 deletions

View File

@@ -56,20 +56,24 @@ bool Towers::addTower(int playerId, int srcId, QPoint pos)
void Towers::delTower(QPoint pos)
{
QPoint p;
if (gameData->curTowers.contains(pos)) p = pos;
if (gameData->curTowers.contains(pos+QPoint(1,0))) p = pos+QPoint(1,0);
if (gameData->curTowers.contains(pos+QPoint(1,1))) p = pos+QPoint(1,1);
if (gameData->curTowers.contains(pos+QPoint(0,1))) p = pos+QPoint(0,1);
if (gameData->curTowers.contains(p))
// qDebug("del tower start");
// QPoint p;
// if (gameData->curTowers.contains(pos)) p = pos;
// if (gameData->curTowers.contains(pos+QPoint(1,0))) p = pos+QPoint(1,0);
// if (gameData->curTowers.contains(pos+QPoint(1,1))) p = pos+QPoint(1,1);
// if (gameData->curTowers.contains(pos+QPoint(0,1))) p = pos+QPoint(0,1);
if (gameData->curTowers.contains(pos))
{
tower_killed(pos);
TowerType * t = &(gameData->curTowers[p]);
gameData->map->delTowerOnMap(t->PlayerId,p);
// qDebug()<< "del tower contain" << pos;
// emit tower_killed(pos);
TowerType * t = &(gameData->curTowers[pos]);
gameData->map->delTowerOnMap(t->PlayerId,pos);
gameData->players[t->PlayerId]->money += t->src->cost/2;
scene->removeItem(t->item);
delete t->item;
gameData->curTowers.remove(p);
gameData->curTowers.remove(pos);
}
// qDebug("del tower end");
}
@@ -137,8 +141,9 @@ void Towers::update()
bool Towers::morphTower(QPoint id, int index)
{
if (!canMorph(id, index)) return false;
tower_killed(id);
// tower_killed(id);
TowerType & t(gameData->curTowers[id]);
gameData->players[t.PlayerId]->money -= t.src->morphs[index].cost;
t.src = t.src->morphs[index].morph;
t.build = 0;
t.reload = 0;