void AddResources(BattleField field) { NaturalResource[] res = field.NaturalResources; for (int i = 0; i < res.Length; i++) { NaturalResource obj = res[i]; switch (obj.Type) { case NaturalResourceType.Oil: OilFieldObject oilfld = obj as OilFieldObject; if (oilfld != null) { oilfld.ResVisible += scene.Resource_Visible; oilfld.InitalizeGraphics(renderSys); scene.Scene.AddObjectToScene(oilfld); } break; case NaturalResourceType.Wood: ForestObject forest = obj as ForestObject; if (forest != null) { forest.ResVisible += scene.Resource_Visible; forest.InitalizeGraphics(renderSys); scene.Scene.AddObjectToScene(forest); } break; } } }
void RenderOil(Sprite sprite) { OilFieldObject oil = (OilFieldObject)selectedResource; sprite.Draw(statusOilBackground, 405, 580, ColorValue.White); { int hp = (int)oil.CurrentAmount; int hpFull = (int)(oil.MaxAmount); int hpTexWidth = (int)(statusOilBarValue.Width * (oil.CurrentAmount / oil.MaxAmount)); sprite.Draw(statusOilBarValue, new Rectangle(580, 615, hpTexWidth, statusOilBarValue.Height), new Rectangle(0, 0, hpTexWidth, statusOilBarValue.Height), ColorValue.White); sprite.Draw(statusOilBarEdge, 566, 615, ColorValue.White); string hpInfo = hp.ToString() + "/" + hpFull.ToString(); Matrix trans = Matrix.Scaling(0.8f, 0.8f, 1) * Matrix.Translation(new Vector3(666, 622, 0)); sprite.SetTransform(trans); f8.DrawString(sprite, hpInfo, 0, 0, ColorValue.White); sprite.SetTransform(Matrix.Identity); } }
/// <summary> /// 初始化自然资源 /// </summary> void InitializeNaturalResource() { FileLocation fl = FileSystem.Instance.Locate("resources.xml", GameFileLocs.Config); GameConfiguration resCon = new GameConfiguration(fl); GameConfiguration.ValueCollection resVals = resCon.Values; List <NaturalResource> resources = new List <NaturalResource>(MaxCities); foreach (GameConfigurationSection sect in resVals) { string type = sect.GetString("Type", string.Empty).ToLowerInvariant(); if (type == "wood") { ForestObject forest = new ForestObject(this); forest.Parse(sect); resources.Add(forest); } else if (type == "petro") { OilFieldObject fld = new OilFieldObject(this); fld.Parse(sect); resources.Add(fld); } } naturalResource = resources.ToArray(); for (int i = 0; i < cities.Length; i++) { if (cities[i].Type == CityType.Oil || cities[i].Type == CityType.Green) { ((GatherCity)cities[i]).FindResources(resources); } } }