From 27c74b1ef10121f6f1df77bc1ce8b6061c69640f Mon Sep 17 00:00:00 2001 From: beedee Date: Sat, 7 Jul 2007 08:30:47 +0000 Subject: [PATCH] Can now set the race of the TechTree git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1139 993157c7-ee19-0410-b2c4-bb4e9862e678 --- OpenRa.TechTreeTest/Building.cs | 4 ++-- OpenRa.TechTreeTest/Form1.cs | 2 +- OpenRa.TechTreeTest/TechTree.cs | 7 +++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/OpenRa.TechTreeTest/Building.cs b/OpenRa.TechTreeTest/Building.cs index a864bb60ca..d7178bc1db 100644 --- a/OpenRa.TechTreeTest/Building.cs +++ b/OpenRa.TechTreeTest/Building.cs @@ -90,9 +90,9 @@ namespace OpenRa.TechTreeTest bool buildable = false; public bool Buildable { get { return buildable; } } - public void CheckPrerequisites(IEnumerable buildings) + public void CheckPrerequisites(IEnumerable buildings, BuildingRace currentRace) { - if (buildable && ShouldMakeUnbuildable(buildings)) + if ((buildable && ShouldMakeUnbuildable(buildings)) || !((owner & currentRace) == currentRace)) buildable = false; else if (!buildable && ShouldMakeBuildable(buildings)) buildable = true; diff --git a/OpenRa.TechTreeTest/Form1.cs b/OpenRa.TechTreeTest/Form1.cs index 8f06ad6a2b..be074b44bc 100644 --- a/OpenRa.TechTreeTest/Form1.cs +++ b/OpenRa.TechTreeTest/Form1.cs @@ -10,7 +10,7 @@ namespace OpenRa.TechTreeTest { public partial class Form1 : Form { - TechTree techTree = new TechTree(); + TechTree techTree = new TechTree(BuildingRace.Soviet); public Form1() { diff --git a/OpenRa.TechTreeTest/TechTree.cs b/OpenRa.TechTreeTest/TechTree.cs index 1b4bc5dbc7..f1d783c4a0 100644 --- a/OpenRa.TechTreeTest/TechTree.cs +++ b/OpenRa.TechTreeTest/TechTree.cs @@ -11,8 +11,11 @@ namespace OpenRa.TechTreeTest { Dictionary buildings = new Dictionary(); public ICollection built = new List(); - public TechTree() + readonly BuildingRace currentRace; + + public TechTree(BuildingRace race) { + this.currentRace = race; LoadBuildings(); LoadRules(); @@ -85,7 +88,7 @@ namespace OpenRa.TechTreeTest void CheckAll() { foreach (Building building in buildings.Values) - building.CheckPrerequisites(built); + building.CheckPrerequisites(built, currentRace); } public IEnumerable BuildableItems