-
Notifications
You must be signed in to change notification settings - Fork 0
Train
Now that we are successfully gathering minerals, we need to spend them somehow.
Let's train some workers when we have the minerals for them!
Lets go trough all our buildings in theonFrame
method, check if and what they can make and then train the first UnitType
they can make if we have enough resources. This code will NOT work for Zerg
as Larvae are not buildings.
// Train units while we can
for (Unit trainer : self.getUnits()) {
UnitType unitType = trainer.getType();
if (unitType.isBuilding() && !unitType.buildsWhat().isEmpty()) {
UnitType toTrain = unitType.buildsWhat().get(0);
if (game.canMake(toTrain, trainer)) {
trainer.train(toTrain);
}
}
}
A cool thing is that these new workers will automatically start gathering because of the gathering code we wrote in onUnitComplete
!
The buildsWhat()
method in UnitType
is used to check what a specific Unit can build.
Furthermore the canMake(target, builder)
method in Game
is used to check if we can currently build this unit (e.g. have all the necessary prerequisites.
Finally training a unit is a simple as
trainer.train(toTrain);
Another more specific example would be
commandCenter.train(UnitType.Terran_SCV);
Our Zerg
friends should use
larva.morph(UnitType.Zerg_Drone);
After this short example on how to train units, let's dive into how to build some Buildings!