Fix NullReferenceException in HackyAI.BuildUnit

HackyAIInfo grew a UnitLimits Dictionary that was not null-checked.
Also null-check UnitsToBuild.
This commit is contained in:
Taryn Hill
2015-09-27 08:25:09 -05:00
parent 699a7f8227
commit 3d7e49655d

View File

@@ -1036,12 +1036,20 @@ namespace OpenRA.Mods.Common.AI
ChooseRandomUnitToBuild(queue) :
ChooseUnitToBuild(queue);
if (unit != null
&& Info.UnitsToBuild.ContainsKey(unit.Name)
&& (!Info.UnitLimits.ContainsKey(unit.Name)
|| World.Actors.Count(a => a.Info.Name == unit.Name && a.Owner == Player) < Info.UnitLimits[unit.Name]))
if (unit == null)
return;
QueueOrder(Order.StartProduction(queue.Actor, unit.Name, 1));
var name = unit.Name;
if (Info.UnitsToBuild != null && !Info.UnitsToBuild.ContainsKey(name))
return;
if (Info.UnitLimits != null &&
Info.UnitLimits.ContainsKey(name) &&
World.Actors.Count(a => a.Owner == Player && a.Info.Name == name) >= Info.UnitLimits[name])
return;
QueueOrder(Order.StartProduction(queue.Actor, name, 1));
}
void BuildUnit(string category, string name)