1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#include "../role.as"
#include "../commander.as"
namespace Builder {
//AIFloat3 lastPos;
IUnitTask@ MakeTask(CCircuitUnit@ unit)
{
// const CCircuitDef@ cdef = unit.GetCircuitDef();
//
// if (cdef.IsRoleAny(RM::COMM)) { // hide commander?
// const Hide::SHide@ hide = Hide::getForUnitDef(cdef);
// if (hide !is null) {
// if ((ai.GetLastFrame() < hide.frame) || (aiBuilderMgr.GetWorkerCount() <= 2)) {
// return aiBuilderMgr.MakeBuilderTask(unit);
// }
// if (enemyMgr.GetMobileThreat()/* / ai.GetAllySize()*/ >= hide.threat) {
// return aiBuilderMgr.MakeCommTask(unit);
// }
// const bool isHide = hide.isAir && (aiEnemyMgr.GetEnemyCost(RT::AIR) > 1.f);
// return isHide ? aiBuilderMgr.MakeCommTask(unit) : aiBuilderMgr.MakeBuilderTask(unit);
// }
// }
//
// return aiBuilderMgr.MakeBuilderTask(unit);
// aiDelPoint(lastPos);
// lastPos = unit.GetPos(ai.GetLastFrame());
// aiAddPoint(lastPos, "task");
// return aiBuilderMgr.DefaultMakeTask(unit);
IUnitTask@ task = aiBuilderMgr.DefaultMakeTask(unit);
// if ((task !is null) && (task.GetType() == 5) && (task.GetBuildType() == 5)) {
// aiDelPoint(task.GetBuildPos());
// aiAddPoint(task.GetBuildPos(), "def");
// }
return task;
}
} // namespace Builder
|