Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        /// <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);
                }
            }
        }