コード例 #1
0
 public MoraleState(MoraleLevel level, int requiredPoints, int powerBonus, int researchBonus, int factoryBonus, int foodBonus, int defectRate, int fertilityRate, int deathRate)
 {
     MoraleType     = level;
     RequiredPoints = requiredPoints;
     PowerBonus     = powerBonus;
     ResearchBonus  = researchBonus;
     FactoryBonus   = factoryBonus;
     FoodBonus      = foodBonus;
     DefectRate     = defectRate;
     FertilityRate  = fertilityRate;
     DeathRate      = deathRate;
 }
コード例 #2
0
ファイル: SheetReader.cs プロジェクト: TechCor8/OP2TerraNova
        /// <summary>
        /// Read morale sheet.
        /// </summary>
        public static GlobalMoraleInfo ReadMoraleSheet()
        {
            string[][] miningSheet = ReadSheet("morale.txt");
            if (miningSheet == null)
            {
                return(null);
            }

            // Read MoraleState rows
            List <MoraleState> moraleStates = new List <MoraleState>();

            int rowIndex = 0;

            for ( ; rowIndex < miningSheet.GetLength(0); ++rowIndex)
            {
                string[] row = miningSheet[rowIndex];

                // Table ends when row is empty
                if (row[0] == "")
                {
                    break;
                }

                // Skip rows that don't contain enough data (probably empty line)
                if (row.Length < 9)
                {
                    continue;
                }

                string codeName       = row[0];
                int    requiredPoints = ReadInt(row[1]);
                int    powerBonus     = ReadInt(row[2]);
                int    researchBonus  = ReadInt(row[3]);
                int    factoryBonus   = ReadInt(row[4]);
                int    foodBonus      = ReadInt(row[5]);
                int    defectRate     = ReadInt(row[6]);
                int    fertilityRate  = ReadInt(row[7]);
                int    deathRate      = ReadInt(row[8]);

                MoraleLevel level = GetMoraleLevelFromCodeName(codeName);

                moraleStates.Add(new MoraleState(level, requiredPoints, powerBonus, researchBonus, factoryBonus, foodBonus, defectRate, fertilityRate, deathRate));
            }

            // Read event rows
            Dictionary <MoraleEvent, int> moraleEvents = new Dictionary <MoraleEvent, int>();

            for ( ; rowIndex < miningSheet.GetLength(0); ++rowIndex)
            {
                string[] row = miningSheet[rowIndex];

                // Skip empty rows
                if (row[0] == "")
                {
                    continue;
                }

                string codeName = row[0];
                int    value    = ReadInt(GetFirstColumnWithData(row, 1));

                MoraleEvent moraleEvent = GetMoraleEventFromCodeName(codeName);

                moraleEvents[moraleEvent] = value;
            }

            return(new GlobalMoraleInfo(moraleStates, moraleEvents));
        }