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();
        }
Пример #2
0
 public UnitConfigurationLink(SerializationInputStream Stream)
 {
     UniqueKey         = Stream.ReadString();
     Faction           = Stream.ReadObject(i => new Faction(i), false, true);
     UnitConfiguration = Stream.ReadObject(i => new UnitConfiguration(i), false, true);
     Constraints       = new UnitConstraints(Stream);
 }
 public MapGeneratorConfiguration(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         Stream.ReadObject(i => new MarkovGenerator <char>(i), false, true),
         Stream.ReadObject(i => new TerrainGeneratorConfiguration(i), false, true))
 {
 }
Пример #4
0
        public static void Load(string Module, SerializationInputStream Stream)
        {
            LoadedModule = Module;
            string Path = "./Modules/" + Module;

            ClassLibrary.Instance.ReadBlock(new ParseBlock(new ParseBlock[]
            {
                ParseBlock.FromFile(Path + "/Theme/Fonts.blk"),
                new ParseBlock(
                    "class<>",
                    "classes",
                    Enumerable.Repeat(Path + "/Theme/Base.blk", 1)
                    .Concat(Directory.EnumerateFiles(
                                Path + "/Theme/Components", "*", SearchOption.AllDirectories))
                    .SelectMany(i => ParseBlock.FromFile(i).Break()))
            }));

            UnitMovementRules = Stream.ReadEnumerable(
                i => i.ReadObject(j => new UnitMovementRules(j), false, true)).ToDictionary(i => i.UniqueKey);
            TileComponentRules = Stream.ReadEnumerable(
                i => i.ReadObject(j => new TileComponentRules(j), false, true)).ToDictionary(i => i.UniqueKey);
            Environments = Stream.ReadEnumerable(
                i => i.ReadObject(j => new Environment(j), false, true)).ToDictionary(i => i.UniqueKey);
            Factions = Stream.ReadEnumerable(
                i => i.ReadObject(j => new Faction(j), false, true)).ToDictionary(i => i.UniqueKey);
            FactionRenderDetails = Stream.ReadEnumerable(
                i => new KeyValuePair <string, FactionRenderDetails>(
                    i.ReadString(),
                    new FactionRenderDetails(i, Path + "/FactionSymbols/"))).ToDictionary(i => i.Key, i => i.Value);
            UnitConfigurations = Stream.ReadEnumerable(
                i => i.ReadObject(j => new UnitConfiguration(j), false, true)).ToDictionary(i => i.UniqueKey);
            UnitRenderDetails = Stream.ReadEnumerable(
                i => new KeyValuePair <string, UnitRenderDetails>(
                    i.ReadString(),
                    new UnitRenderDetails(i, Path + "/UnitSprites/"))).ToDictionary(i => i.Key, i => i.Value);
            UnitConfigurationLinks =
                Stream.ReadEnumerable(i => new UnitConfigurationLink(i)).ToDictionary(i => i.UniqueKey);
            UnitConfigurationLocks =
                Stream.ReadEnumerable(i => new UnitConfigurationLock(i)).ToDictionary(i => i.UniqueKey);
            Scenarios      = Stream.ReadEnumerable(i => new Scenario(i)).ToList();
            TileRenderers  = Stream.ReadEnumerable(i => new TileRenderer(i)).ToDictionary(i => i.UniqueKey);
            NameGenerators = Stream.ReadEnumerable(
                i => new KeyValuePair <string, MarkovGenerator <char> >(
                    Stream.ReadString(), Stream.ReadObject(j => new MarkovGenerator <char>(j))))
                             .ToDictionary(i => i.Key, i => i.Value);
            TerrainGenerators = Stream.ReadEnumerable(
                i => new KeyValuePair <string, TerrainGeneratorConfiguration>(
                    Stream.ReadString(), Stream.ReadObject(j => new TerrainGeneratorConfiguration(j))))
                                .ToDictionary(i => i.Key, i => i.Value);
            MatchSettings = Stream.ReadEnumerable(i => new MatchSetting(i)).ToDictionary(i => i.UniqueKey);
        }
 public ObjectiveSuccessTrigger(SerializationInputStream Stream)
     : this(
         (ObjectiveSuccessLevel)Stream.ReadByte(),
         Stream.ReadInt32(),
         Stream.ReadBoolean(),
         (Objective)Stream.ReadObject(i => ObjectiveSerializer.Instance.Deserialize(Stream), false, true))
 {
 }
Пример #6
0
 public UnitConstraints(SerializationInputStream Stream)
 {
     IntroduceYear = Stream.ReadInt32();
     ObsoleteYear  = Stream.ReadInt32();
     Front         = (Front)Stream.ReadByte();
     Environments  = Stream.ReadEnumerable(
         i => Stream.ReadObject(j => new Environment(j), false, true)).ToList();
 }
 public ConvoyDeploymentConfiguration(SerializationInputStream Stream)
     : this(
         new UnitGroup(Stream),
         Stream.ReadBoolean(),
         (Matcher <Tile>)MatcherSerializer.Instance.Deserialize(Stream),
         Stream.ReadObject(i => new ConvoyMovementAutomator(Stream), true),
         Stream.ReadByte())
 {
 }
Пример #8
0
 public FeatureGenerator(SerializationInputStream Stream)
     : this(
         Stream.ReadObject(FunctionFactory.Read, false, true),
         Stream.ReadObject(FunctionFactory.Read, false, true))
 {
 }
 public LogInPlayerResponse(SerializationInputStream Stream)
     : base(Stream)
 {
     Player = Stream.ReadObject(i => new Player(Stream), true);
 }