git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1207 993157c7-ee19-0410-b2c4-bb4e9862e678

This commit is contained in:
beedee
2007-07-13 16:26:32 +00:00
parent b0f4f08938
commit 8ac1535e13
5 changed files with 66 additions and 25 deletions

View File

@@ -117,14 +117,28 @@ namespace OpenRa.TechTree
return p.Count == racePrerequisites.Length;
}
void CheckForBoth(IEnumerable<string> buildings)
{
if (canBuild && (ShouldMakeUnbuildable(buildings, alliedPrerequisites) && ShouldMakeUnbuildable(buildings, sovietPrerequisites)))
canBuild = false;
else if (!canBuild && (ShouldMakeBuildable(buildings, alliedPrerequisites) || ShouldMakeBuildable(buildings, sovietPrerequisites)))
canBuild = true;
}
public void CheckPrerequisites(IEnumerable<string> buildings, Race currentRace)
{
string[] racePrerequisites = (currentRace == Race.Allies) ? alliedPrerequisites : sovietPrerequisites;
if (currentRace == Race.None || currentRace == (Race.Allies | Race.Soviet))
CheckForBoth(buildings);
else
{
string[] racePrerequisites = (currentRace == Race.Allies) ? alliedPrerequisites : sovietPrerequisites;
if ((canBuild && ShouldMakeUnbuildable(buildings, racePrerequisites)) || !((owner & currentRace) == currentRace))
canBuild = false;
else if (!canBuild && ShouldMakeBuildable(buildings, racePrerequisites))
canBuild = true;
if ((canBuild && ShouldMakeUnbuildable(buildings, racePrerequisites)) || !((owner & currentRace) == currentRace))
canBuild = false;
else if (!canBuild && ShouldMakeBuildable(buildings, racePrerequisites))
canBuild = true;
}
}
bool canBuild;