Add support for negative prerequisites (#1323)

This commit is contained in:
Chris Forbes
2012-02-11 11:13:39 +13:00
parent 1f8859f26b
commit 3cf09e656f
2 changed files with 11 additions and 8 deletions

View File

@@ -86,15 +86,18 @@ namespace OpenRA.Mods.RA
this.hasPrerequisites = false;
}
bool HasPrerequisites(Cache<string, List<Actor>> buildings)
{
foreach (var p in prerequisites)
if (p.StartsWith("!") ^
!buildings.Keys.Contains(p.Replace("!","")))
return false;
return true;
}
public void Update(Cache<string, List<Actor>> buildings)
{
var nowHasPrerequisites = true;
foreach (var p in prerequisites)
if (!buildings.Keys.Contains(p))
{
nowHasPrerequisites = false;
break;
}
var nowHasPrerequisites = HasPrerequisites(buildings);
if( nowHasPrerequisites && !hasPrerequisites )
watcher.PrerequisitesAvailable(key);