Can now set the race of the TechTree

git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1139 993157c7-ee19-0410-b2c4-bb4e9862e678
This commit is contained in:
beedee
2007-07-07 08:30:47 +00:00
parent 9484b231e3
commit 27c74b1ef1
3 changed files with 8 additions and 5 deletions

View File

@@ -90,9 +90,9 @@ namespace OpenRa.TechTreeTest
bool buildable = false; bool buildable = false;
public bool Buildable { get { return buildable; } } public bool Buildable { get { return buildable; } }
public void CheckPrerequisites(IEnumerable<string> buildings) public void CheckPrerequisites(IEnumerable<string> buildings, BuildingRace currentRace)
{ {
if (buildable && ShouldMakeUnbuildable(buildings)) if ((buildable && ShouldMakeUnbuildable(buildings)) || !((owner & currentRace) == currentRace))
buildable = false; buildable = false;
else if (!buildable && ShouldMakeBuildable(buildings)) else if (!buildable && ShouldMakeBuildable(buildings))
buildable = true; buildable = true;

View File

@@ -10,7 +10,7 @@ namespace OpenRa.TechTreeTest
{ {
public partial class Form1 : Form public partial class Form1 : Form
{ {
TechTree techTree = new TechTree(); TechTree techTree = new TechTree(BuildingRace.Soviet);
public Form1() public Form1()
{ {

View File

@@ -11,8 +11,11 @@ namespace OpenRa.TechTreeTest
{ {
Dictionary<string, Building> buildings = new Dictionary<string, Building>(); Dictionary<string, Building> buildings = new Dictionary<string, Building>();
public ICollection<string> built = new List<string>(); public ICollection<string> built = new List<string>();
public TechTree() readonly BuildingRace currentRace;
public TechTree(BuildingRace race)
{ {
this.currentRace = race;
LoadBuildings(); LoadBuildings();
LoadRules(); LoadRules();
@@ -85,7 +88,7 @@ namespace OpenRa.TechTreeTest
void CheckAll() void CheckAll()
{ {
foreach (Building building in buildings.Values) foreach (Building building in buildings.Values)
building.CheckPrerequisites(built); building.CheckPrerequisites(built, currentRace);
} }
public IEnumerable<Building> BuildableItems public IEnumerable<Building> BuildableItems