Example #1
0
        public GameFont(string name)
        {
            FileLocation fl = FileSystem.Instance.Locate(name + ".tex", GameFileLocs.GUI);

            font = UITextureManager.Instance.CreateInstance(fl);

            charHeight = font.Height / 7;

            fl = FileSystem.Instance.Locate(name + ".xml", GameFileLocs.Config);
            Configuration config = ConfigurationManager.Instance.CreateInstance(fl);

            charWidth = new int[byte.MaxValue];

            foreach (KeyValuePair <string, ConfigurationSection> e in config)
            {
                ConfigurationSection sect = e.Value;

                char ch = (char)sect.GetInt("Char");

                charWidth[ch] = sect.GetInt("Width");
            }
        }
Example #2
0
        public static void LoadRules()
        {
            FileLocation         fl   = FileSystem.Instance.Locate("rules.xml", GameFileLocs.Config);
            GameConfiguration    con  = new GameConfiguration(fl);// Utils.LoadConfig("rules.xml");
            ConfigurationSection sect = con["CityCommon"];

            CityBallLimit          = sect.GetInt("BallLimit");
            CityMaxDevelopment     = sect.GetSingle("MaxDevelopment", 10000);
            CityDevHealthRate      = sect.GetSingle("DevHealthRate", 0.1f);
            CityInitialDevelopment = sect.GetSingle("InitialDevelopment", 1000);
            CityRadius             = sect.GetSingle("Radius", 300);
            CityDevRBallHealthRate = sect.GetSingle("DevRBallHealthRate");
            CityArmor = sect.GetSingle("Armor");

            sect         = con["NRCommon"];
            FRecoverBias = sect.GetSingle("ORecoverBias", 1);
            ORecoverBias = sect.GetSingle("FRecoverBias", 1);
            FRecoverRate = sect.GetSingle("FRecoverRate", 0.0015f);

            sect = con["HarvCommon"];

            HarvLoadingSpeed = sect.GetSingle("LoadingSpeed", 2.5f);
            HarvLoadingTime  = sect.GetSingle("HarvLoadingTime", 3);

            #region 各种资源球配置读取
            sect = con["OilBall"];
            OilBallBaseHealth   = sect.GetSingle("BaseHealth");
            OilBallCost         = sect.GetSingle("Cost");
            OilBallContribution = sect.GetSingle("Contribution");
            OilBallBaseDamage   = sect.GetSingle("BaseDamage");
            OilBallBaseHeal     = sect.GetSingle("BaseHeal");

            sect = con["GreenBall"];
            GreenBallBaseHealth   = sect.GetSingle("BaseHealth");
            GreenBallCost         = sect.GetSingle("Cost");
            GreenBallContribution = sect.GetSingle("Contribution");
            GreenBallBaseDamage   = sect.GetSingle("BaseDamage");
            GreenBallBaseHeal     = sect.GetSingle("BaseHeal");

            sect = con["EducationBall"];
            EducationBallBaseHealth   = sect.GetSingle("BaseHealth");
            EducationBallGenInterval  = sect.GetSingle("GenInterval");
            EducationBallContribution = sect.GetSingle("Contribution");
            EducationBallBaseDamage   = sect.GetSingle("BaseDamage");
            EducationBallBaseHeal     = sect.GetSingle("BaseHeal");

            sect = con["HealthBall"];
            HealthBallBaseHealth   = sect.GetSingle("BaseHealth");
            HealthBallGenInterval  = sect.GetSingle("GenInterval");
            HealthBallContribution = sect.GetSingle("Contribution");;
            HealthBallBaseDamage   = sect.GetSingle("BaseDamage");
            HealthBallBaseHeal     = sect.GetSingle("BaseHeal");

            sect = con["DiseaseBall"];
            DiseaseBallBaseHealth   = sect.GetSingle("BaseHealth");
            DiseaseBallGenInterval  = sect.GetSingle("GenInterval");
            DiseaseBallContribution = sect.GetSingle("Contribution");
            DiseaseBallBaseDamage   = sect.GetSingle("BaseDamage");
            DiseaseBallBaseHeal     = sect.GetSingle("BaseHeal");

            sect = con["VolienceBall"];
            VolienceBallBaseHealth   = sect.GetSingle("BaseHealth");
            VolienceBallGenInterval  = sect.GetSingle("GenInterval");
            VolienceBallContribution = sect.GetSingle("Contribution");
            VolienceBallBaseDamage   = sect.GetSingle("BaseDamage");
            VolienceBallBaseHeal     = sect.GetSingle("BaseHeal");

            #endregion

            #region 各种城市的配置读取
            sect = con["OilCity"];
            OilGatherDistance = sect.GetSingle("GatherDistance", 150);
            OilHarvHP         = sect.GetSingle("HarvHealth", 300);
            OilHarvStorage    = sect.GetSingle("HarvStorage", 300);
            OilHarvSpeed      = sect.GetSingle("HarvSpeed", 1);
            OilDevelopStep    = sect.GetSingle("DevelopStep", 10);

            sect = con["GreenCity"];
            GreenGatherDistance = sect.GetSingle("GatherDistance", 150);
            GreenHarvHP         = sect.GetSingle("HarvHealth", 300);
            GreenHarvStorage    = sect.GetSingle("HarvStorage", 300);
            GreenHarvSpeed      = sect.GetSingle("HarvSpeed", 1);
            GreenDevelopStep    = sect.GetSingle("DevelopStep", 10);

            sect = con["DiseaseCity"];
            DiseaseDevelopStep = sect.GetSingle("DevelopStep", 10);

            sect = con["VolienceCity"];
            VolienceDevelopStep = sect.GetSingle("VolienceCity", 10);

            sect = con["HealthCity"];
            HealthDevelopStep = sect.GetSingle("HealthCity", 10);

            sect = con["EducationCity"];
            EducationDevelopStep = sect.GetSingle("EducationCity", 10);
            #endregion
        }
Example #3
0
        private unsafe TreeModelLibrary(RenderSystem rs)
        {
            renderSys = rs;

            FileLocation  fl   = FileSystem.Instance.Locate("trees.xml", GameFileLocs.Config);
            Configuration conf = ConfigurationManager.Instance.CreateInstance(fl);

            foreach (KeyValuePair <string, ConfigurationSection> s in conf)
            {
                ConfigurationSection sect = s.Value;
                TreeModelData        mdl;

                int          type     = sect.GetInt("Type", 0);
                string       fileName = sect.GetString("Level0", string.Empty);
                FileLocation fl2      = FileSystem.Instance.Locate(fileName, GameFileLocs.Model);

                ModelMemoryData mdlData = new ModelMemoryData(rs, fl2);

                loadedModels.Add(mdlData);

                MeshData[] dataArr = mdlData.Entities;

                if (dataArr.Length == 1)
                {
                    MeshData data = dataArr[0];

                    Material[][] mtrls = data.Materials;

                    int partCount            = mtrls.Length;
                    FastList <int>[] indices = new FastList <int> [partCount];
                    for (int i = 0; i < partCount; i++)
                    {
                        indices[i] = new FastList <int>();
                    }

                    mdl.Materials    = new Material[partCount];
                    mdl.Indices      = new int[partCount][];
                    mdl.PartVtxCount = new int[partCount];

                    MeshFace[] faces = data.Faces;

                    for (int i = 0; i < faces.Length; i++)
                    {
                        int matId = faces[i].MaterialIndex;
                        indices[matId].Add(faces[i].IndexA);
                        indices[matId].Add(faces[i].IndexB);
                        indices[matId].Add(faces[i].IndexC);
                    }


                    for (int i = 0; i < partCount; i++)
                    {
                        Material mtrl = mtrls[i][0];
                        mdl.Materials[i] = mtrl;

                        indices[i].Trim();
                        mdl.Indices[i] = indices[i].Elements;

                        int partVtxCount = 0;

                        bool[] passed = new bool[data.VertexCount];

                        for (int j = 0; j < mdl.Indices[i].Length; j++)
                        {
                            passed[indices[i][j]] = true;
                        }

                        for (int j = 0; j < data.VertexCount; j++)
                        {
                            if (passed[j])
                            {
                                partVtxCount++;
                            }
                        }

                        mdl.PartVtxCount[i] = partVtxCount;
                    }

                    mdl.VertexCount = data.VertexCount;
                    mdl.VertexData  = new byte[data.VertexCount * data.VertexSize];
                    fixed(byte *dst = &mdl.VertexData[0])
                    {
                        Memory.Copy(data.Data.ToPointer(), dst, mdl.VertexData.Length);
                    }

                    if (typedList[type] == null)
                    {
                        typedList[type] = new FastList <TreeModelData>();
                    }

                    typedList[type].Add(mdl);
                }
                BuildTrunk(rs);
            }



            for (int i = 0; i < typedList.Length; i++)
            {
                typedList[i].Trim();
            }
        }