/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.petah.spring.bai.tasks.porc;
import org.petah.common.option.Option;
import org.petah.common.option.OptionsManager;
import org.petah.spring.bai.cache.CachedUnit;
import org.petah.spring.bai.delegate.AIDelegate;
import org.petah.spring.bai.group.UnitGroup;
import org.petah.spring.bai.tasks.standard.DefaultCommands;
import org.petah.spring.bai.tasks.Task;
import org.petah.spring.bai.unit.UnitInfo;
import org.petah.spring.bai.unit.UnitType;
/**
*
* @author Petah
*/
public class PorcT2ExpansionBuilder extends Task {
// Options
private static Option<Integer> updateTime = OptionsManager.getOption(
new Option<Integer>("PorcT2ExpansionBuilder.updateTime", 20));
// Class properties
private int nextUpdate = 0;
public PorcT2ExpansionBuilder(AIDelegate aiDelegate) {
super(aiDelegate);
}
public boolean update(UnitGroup group, int frame) {
// If its time to update
if (nextUpdate <= frame) {
nextUpdate = frame + updateTime.getValue();
for (CachedUnit unit : group) {
UnitInfo info = UnitInfo.getUnitInfo(unit.getDef());
if (info.isType(UnitType.Builder) && info.isType(UnitType.Level2) &&
unit.getCurrentCommands().size() == 0) {
DefaultCommands.queueClosestMetalExtractor(aiDelegate, unit);
}
}
}
return false;
}
}