CPU-Ultra and Mega attack standing units in attack range first now. Lets see if this is good ...
This commit is contained in:
parent
1495ffe992
commit
00b1bea1ac
|
@ -2346,7 +2346,9 @@ bool UnitUpdater::unitOnRange(const Unit *unit, int range, Unit **rangedPtr,
|
||||||
|
|
||||||
//attack enemies that can attack first
|
//attack enemies that can attack first
|
||||||
float distToUnit=-1;
|
float distToUnit=-1;
|
||||||
|
float distToStandingUnit=-1;
|
||||||
Unit* enemySeen = NULL;
|
Unit* enemySeen = NULL;
|
||||||
|
Unit* attackingEnemySeen = NULL;
|
||||||
for(int i = 0; i< enemies.size(); ++i) {
|
for(int i = 0; i< enemies.size(); ++i) {
|
||||||
Unit *enemy = enemies[i];
|
Unit *enemy = enemies[i];
|
||||||
|
|
||||||
|
@ -2357,20 +2359,41 @@ bool UnitUpdater::unitOnRange(const Unit *unit, int range, Unit **rangedPtr,
|
||||||
enemySeen = enemy;
|
enemySeen = enemy;
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
|
float currentDist=unit->getCenteredPos().dist(enemy->getCenteredPos());
|
||||||
// Attackers get first priority
|
// Attackers get first priority
|
||||||
if(enemy->getType()->hasSkillClass(scAttack) == true) {
|
if(enemy->getType()->hasSkillClass(scAttack) == true) {
|
||||||
// Select closest attacking unit
|
// Select closest attacking unit
|
||||||
if(distToUnit < 0 || unit->getCenteredPos().dist(enemy->getCenteredPos()) < distToUnit) {
|
if(distToUnit < 0 || currentDist< distToUnit) {
|
||||||
distToUnit = unit->getCenteredPos().dist(enemy->getCenteredPos());
|
distToUnit = currentDist;
|
||||||
*rangedPtr = enemies[i];
|
*rangedPtr = enemies[i];
|
||||||
enemySeen = enemies[i];
|
enemySeen = enemies[i];
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ctCpuUltra,
|
||||||
|
// ctCpuMega,
|
||||||
|
|
||||||
|
if(unit->getFaction()->getControlType()==ctCpuUltra ||
|
||||||
|
unit->getFaction()->getControlType()==ctCpuMega) {
|
||||||
|
if(distToStandingUnit < 0 || currentDist< distToStandingUnit) {
|
||||||
|
if(enemies[i]->getCurrSkill()->getClass()==scAttack) {
|
||||||
|
distToStandingUnit = currentDist;
|
||||||
|
attackingEnemySeen=enemies[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//break;
|
//break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(unit->getFaction()->getControlType()==ctCpuUltra ||
|
||||||
|
unit->getFaction()->getControlType()==ctCpuMega) {
|
||||||
|
if(attackingEnemySeen!=NULL) {
|
||||||
|
*rangedPtr = attackingEnemySeen;
|
||||||
|
enemySeen = attackingEnemySeen;
|
||||||
|
//printf("Da hat er wen gefunden:%s\n",enemySeen->getType()->getName(false).c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if(enemies[i]->getType()->hasSkillClass(scAttack) &&
|
if(enemies[i]->getType()->hasSkillClass(scAttack) &&
|
||||||
|
|
Loading…
Reference in New Issue