public virtual SC2APIProtocol.Action CreateAction(Unit u, ABILITY_ID ability) { SC2APIProtocol.Action answer = NewAction(); answer.ActionRaw.UnitCommand = new ActionRawUnitCommand(); answer.ActionRaw.UnitCommand.AbilityId = (int)ability; answer.ActionRaw.UnitCommand.UnitTags.Add(u.Tag); return(answer); }
public static bool HasOrder(this Unit u, ABILITY_ID ability) { foreach (UnitOrder o in u.Orders) { if (o.AbilityId == (int)ability) { return(true); } } return(false); }
public SC2APIProtocol.Action BuildOption(Unit u, ABILITY_ID ability) { if (!coolDownCommand.IsDelayed("BuildOption")) { coolDownCommand.Add(new CoolDownCommandData() { key = "BuildOption", finishStep = gameLoop + 10 }); return(CreateAction(u, ability)); } return(null); }
public int CountBuildingOnProgress(List <Unit> SCVs, ABILITY_ID id) { int ret = 0; foreach (Unit scv in SCVs) { if (scv.HasOrder(id)) { ret++; } } return(ret); }
public SC2APIProtocol.Action TrainUnit(Unit cc, ABILITY_ID ability) { SC2APIProtocol.Action answer = CreateAction(cc, ability); return(answer); }
public static bool hasOrder(this List <Unit> self, ABILITY_ID ability) { return(self.FirstOrDefault(u => u.HasOrder(ability)) != null); }