From bb44cfdb7b99d079eeb378759c238c00e470df88 Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Fri, 30 Mar 2012 21:56:15 +0000 Subject: [PATCH] - cleaned up some constants in prep for allowing override of more things in the AI --- source/glest_game/ai/ai.cpp | 32 ++++++++++++++++++++------------ source/glest_game/ai/ai.h | 10 ++++++---- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/source/glest_game/ai/ai.cpp b/source/glest_game/ai/ai.cpp index 612078f1..c2326bde 100644 --- a/source/glest_game/ai/ai.cpp +++ b/source/glest_game/ai/ai.cpp @@ -641,11 +641,11 @@ void Ai::retryTask(const Task *task){ } // ==================== expansions ==================== -void Ai::addExpansion(const Vec2i &pos){ +void Ai::addExpansion(const Vec2i &pos) { //check if there is a nearby expansion - for(Positions::iterator it= expansionPositions.begin(); it!=expansionPositions.end(); ++it){ - if((*it).dist(pos)maxExpansions){ + if(expansionPositions.size() > maxExpansions){ expansionPositions.pop_back(); } } @@ -870,18 +870,24 @@ void Ai::massiveAttack(const Vec2i &pos, Field field, bool ultraAttack){ if( aiInterface->getControlType() == ctCpuEasy || aiInterface->getControlType() == ctNetworkCpuEasy) { - minWarriors+= 1; + minWarriors += minMinWarriorsExpandCpuEasy; } else if(aiInterface->getControlType() == ctCpuMega || aiInterface->getControlType() == ctNetworkCpuMega) { - minWarriors+= 3; - if(minWarriors>maxMinWarriors-1 || randomMinWarriorsReached) { + minWarriors += minMinWarriorsExpandCpuMega; + if(minWarriors > maxMinWarriors-1 || randomMinWarriorsReached) { randomMinWarriorsReached=true; minWarriors=random.randRange(maxMinWarriors-10, maxMinWarriors*2); } } - else if(minWarriorsgetControlType() == ctCpuUltra || + aiInterface->getControlType() == ctNetworkCpuUltra) { + minWarriors += minMinWarriorsExpandCpuUltra; + } + else { + minWarriors+= minMinWarriorsExpandCpuNormal; + } } aiInterface->printLog(2, "Massive attack to pos: "+ intToStr(pos.x)+", "+intToStr(pos.y)+"\n"); } @@ -891,8 +897,9 @@ void Ai::returnBase(int unitIndex) { CommandResult r; aiInterface->getFactionIndex(); pos= Vec2i( - random.randRange(-villageRadius, villageRadius), random.randRange(-villageRadius, villageRadius)) + - getRandomHomePosition(); + random.randRange(-villageRadius, villageRadius), + random.randRange(-villageRadius, villageRadius)) + + getRandomHomePosition(); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); r= aiInterface->giveCommand(unitIndex, ccMove, pos); @@ -1068,7 +1075,8 @@ void Ai::unblockUnits() { for(int moveAttempt = 1; moveAttempt <= villageRadius; ++moveAttempt) { Vec2i pos= Vec2i( - random.randRange(-villageRadius*2, villageRadius*2), random.randRange(-villageRadius*2, villageRadius*2)) + + random.randRange(-villageRadius*2, villageRadius*2), + random.randRange(-villageRadius*2, villageRadius*2)) + adjacentUnit->getPos(); bool canUnitMoveToCell = map->aproxCanMove(adjacentUnit, adjacentUnit->getPos(), pos); diff --git a/source/glest_game/ai/ai.h b/source/glest_game/ai/ai.h index 00bc9470..b5a2f368 100644 --- a/source/glest_game/ai/ai.h +++ b/source/glest_game/ai/ai.h @@ -129,12 +129,15 @@ public: class Ai { private: - static const int harvesterPercent= 30; static const int maxBuildRadius= 40; + static const int minMinWarriors= 7; + static const int minMinWarriorsExpandCpuEasy= 1; + static const int minMinWarriorsExpandCpuMega= 3; + static const int minMinWarriorsExpandCpuUltra= 3; + static const int minMinWarriorsExpandCpuNormal= 3; static const int maxMinWarriors= 20; - static const int minStaticResources= 10; - static const int minConsumableResources= 20; + static const int maxExpansions= 2; static const int villageRadius= 15; @@ -147,7 +150,6 @@ public: }; private: - //typedef vector AiRules; typedef vector AiRules; typedef list Tasks; typedef deque Positions;