Ejemplo n.º 1
0
        public UnitConfiguration(SerializationInputStream Stream)
        {
            UniqueKey = Stream.ReadString();
            Name      = Stream.ReadString();
            UnitClass = (UnitClass)Stream.ReadByte();

            PrimaryWeapon   = new Weapon(Stream);
            SecondaryWeapon = new Weapon(Stream);
            Defense         = Stream.ReadByte();
            Movement        = Stream.ReadByte();

            CanDirectFire            = Stream.ReadBoolean();
            CanIndirectFire          = Stream.ReadBoolean();
            CanOverrun               = Stream.ReadBoolean();
            CanCloseAssault          = Stream.ReadBoolean();
            CanAirAttack             = Stream.ReadBoolean();
            CanAntiAircraft          = Stream.ReadBoolean();
            CanClearMines            = Stream.ReadBoolean();
            CanPlaceMines            = Stream.ReadBoolean();
            CanPlaceBridges          = Stream.ReadBoolean();
            InnatelyClearsMines      = Stream.ReadBoolean();
            ImmuneToMines            = Stream.ReadBoolean();
            MinimumIndirectFireRange = Stream.ReadByte();

            IsVehicle     = Stream.ReadBoolean();
            IsArmored     = Stream.ReadBoolean();
            WrecksAs      = Stream.ReadObject(i => new UnitConfiguration(i), true, true);
            UnitWeight    = (UnitWeight)Stream.ReadByte();
            IsEngineer    = Stream.ReadBoolean();
            IsParatroop   = Stream.ReadBoolean();
            IsCommando    = Stream.ReadBoolean();
            HasLowProfile = Stream.ReadBoolean();

            MovementRules = Stream.ReadObject(i => new UnitMovementRules(i), false, true);

            IsCarrier                  = Stream.ReadBoolean();
            UnloadsWhenDisrupted       = Stream.ReadBoolean();
            CanOnlyCarryInfantry       = Stream.ReadBoolean();
            CanOnlyCarryLight          = Stream.ReadBoolean();
            CanCarryInWater            = Stream.ReadBoolean();
            CanOnlyOverrunUnarmored    = Stream.ReadBoolean();
            CanOnlySupportCloseAssault = Stream.ReadBoolean();
            IsPassenger                = Stream.ReadBoolean();
            IsOversizedPassenger       = Stream.ReadBoolean();
            CannotUseRoadMovementWithOversizedPassenger = Stream.ReadBoolean();
            OversizedPassengerMovementMultiplier        = Stream.ReadFloat();
            WaterDieModifier = Stream.ReadInt32();

            CanReveal  = Stream.ReadBoolean();
            CanSpot    = Stream.ReadBoolean();
            SpotRange  = Stream.ReadByte();
            SightRange = Stream.ReadByte();

            DismountAs = Stream.ReadObject(i => new UnitConfiguration(i), true, true);
            CanRemount = Stream.ReadBoolean();

            CanSupportArmored   = Stream.ReadBoolean();
            CloseAssaultCapture = Stream.ReadBoolean();
            AreaControlCapture  = Stream.ReadBoolean();
        }
Ejemplo n.º 2
0
 public Environment(SerializationInputStream Stream)
 {
     UniqueKey             = Stream.ReadString();
     TileRuleSet           = new TileRuleSet(Stream);
     MovementMultiplier    = Stream.ReadFloat();
     _RestrictRoadMovement = Stream.ReadEnumerable(i => i.ReadBoolean()).ToArray();
 }
Ejemplo n.º 3
0
 public UnitConfigurationLock(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         Stream.ReadFloat(),
         Stream.ReadEnumerable(i => GameData.UnitConfigurationLinks[i.ReadString()]))
 {
 }
Ejemplo n.º 4
0
 public MovementRule(SerializationInputStream Stream)
 {
     if (Stream.ReadBoolean())
     {
         Cost      = Stream.ReadFloat();
         BlockType = BlockType.NONE;
     }
     else
     {
         Cost      = 0;
         BlockType = (BlockType)Stream.ReadByte();
     }
 }
Ejemplo n.º 5
0
 public Polygon(SerializationInputStream Stream)
     : this(Stream.ReadEnumerable(i => new Vector2f(Stream.ReadFloat(), Stream.ReadFloat())).ToArray())
 {
 }