예제 #1
0
        /// <summary>
        /// This routine reads a single record for a hex
        /// </summary>
        /// <param name="entries"></param>
        public void ProcessHexRecord(string[] entries)
        {
            GameObject hex;

            hex = GameObject.Find(entries[0]);

            hex.GetComponent <HexDatabaseFields>().inGermanZOC         = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[1]);
            hex.GetComponent <HexDatabaseFields>().inAlliedZOC         = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[2]);
            hex.GetComponent <HexDatabaseFields>().alliedControl       = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[3]);
            hex.GetComponent <HexDatabaseFields>().successfullyInvaded = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[4]);
            hex.GetComponent <HexDatabaseFields>().closeDefenseSupport = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[5]);
            hex.GetComponent <HexDatabaseFields>().riverInterdiction   = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[6]);

            // By calling the unhighlight rouitne (no hexes should be highlighted at this point) it will
            // turn close defense and interdicted river hexes the correct color
            GlobalDefinitions.UnhighlightHex(GameObject.Find(entries[0]));
        }
예제 #2
0
        /// <summary>
        /// This routine reads a single record for a unit
        /// </summary>
        /// <param name="entries"></param>
        public void ProcessUnitRecord(string[] entries)
        {
            GameObject unit;

            unit = GameObject.Find(entries[0]);
            if (entries[1] == "null")
            {
                unit.GetComponent <UnitDatabaseFields>().occupiedHex = null;
            }
            else
            {
                unit.GetComponent <UnitDatabaseFields>().occupiedHex = GameObject.Find(entries[1]);
            }
            if (entries[2] == "null")
            {
                unit.GetComponent <UnitDatabaseFields>().beginningTurnHex = null;
            }
            else
            {
                unit.GetComponent <UnitDatabaseFields>().beginningTurnHex = GameObject.Find(entries[2]);
            }
            unit.GetComponent <UnitDatabaseFields>().inBritain                     = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[3]);
            unit.GetComponent <UnitDatabaseFields>().unitInterdiction              = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[4]);
            unit.GetComponent <UnitDatabaseFields>().invasionAreaIndex             = Convert.ToInt32(entries[5]);
            unit.GetComponent <UnitDatabaseFields>().availableForStrategicMovement = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[6]);
            unit.GetComponent <UnitDatabaseFields>().inSupply = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[7]);
            // Need to adjust the highlighting of the unit if it is out of supply
            GlobalDefinitions.UnhighlightUnit(unit);
            if (entries[8] == "null")
            {
                unit.GetComponent <UnitDatabaseFields>().supplySource = null;
            }
            else
            {
                unit.GetComponent <UnitDatabaseFields>().supplySource = GameObject.Find(entries[8]);
            }
            unit.GetComponent <UnitDatabaseFields>().supplyIncrementsOutOfSupply = Convert.ToInt32(entries[9]);
            unit.GetComponent <UnitDatabaseFields>().unitEliminated = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[10]);


            if (unit.GetComponent <UnitDatabaseFields>().occupiedHex != null)
            {
                GeneralHexRoutines.PutUnitOnHex(unit, unit.GetComponent <UnitDatabaseFields>().occupiedHex);
                unit.transform.parent = GlobalDefinitions.allUnitsOnBoard.transform;
            }
            else if (unit.GetComponent <UnitDatabaseFields>().unitEliminated)
            {
                unit.transform.parent   = GameObject.Find("Units Eliminated").transform;
                unit.transform.position = unit.GetComponent <UnitDatabaseFields>().OOBLocation;
            }
            else if (unit.GetComponent <UnitDatabaseFields>().inBritain)
            {
                unit.transform.parent   = GameObject.Find("Units In Britain").transform;
                unit.transform.position = unit.GetComponent <UnitDatabaseFields>().locationInBritain;
            }
            else
            {
                GlobalDefinitions.WriteToLogFile("processUnitRecord: Unit read error - " + entries[1] + ": found no location to place this unit");
            }

            if (!unit.GetComponent <UnitDatabaseFields>().unitEliminated&& !unit.GetComponent <UnitDatabaseFields>().inBritain)
            {
                if (unit.GetComponent <UnitDatabaseFields>().nationality == GlobalDefinitions.Nationality.Allied)
                {
                    GlobalDefinitions.alliedUnitsOnBoard.Add(unit);
                }
                else
                {
                    GlobalDefinitions.germanUnitsOnBoard.Add(unit);
                }
            }
        }