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 ArmyConfiguration(SerializationInputStream Stream)
 {
     UniqueKey = Stream.ReadString();
     Faction   = GameData.Factions[Stream.ReadString()];
     Team      = Stream.ReadByte();
     DeploymentConfigurations = Stream.ReadEnumerable(DeploymentConfigurationSerializer.Deserialize).ToList();
     VictoryCondition         = new VictoryCondition(Stream);
 }
Ejemplo n.º 3
0
 public MatchSetting(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         GameData.Environments[Stream.ReadString()],
         (Front)Stream.ReadByte(),
         new MapGeneratorConfiguration(Stream))
 {
 }
Ejemplo n.º 4
0
 public Faction(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         Stream.ReadString(),
         Stream.ReadEnumerable(FileUtils.DeserializeColor).ToArray(),
         Stream.ReadByte(),
         Stream.ReadBoolean())
 {
 }
Ejemplo n.º 5
0
 public Scenario(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         Stream.ReadEnumerable(i => new ArmyConfiguration(Stream)).ToList(),
         new TurnConfiguration(Stream),
         GameData.Environments[Stream.ReadString()],
         (MapConfiguration)MapConfigurationSerializer.Instance.Deserialize(Stream),
         new ScenarioRules(Stream))
 {
 }
Ejemplo n.º 6
0
        public UnitRenderDetails(SerializationInputStream Stream, string Path)
        {
            _RootPath = Path;

            if (Stream.ReadBoolean())
            {
                OverrideDisplayName = Stream.ReadString();
            }
            OverrideColor = FileUtils.DeserializeColor(Stream);
            _ImagePath    = Stream.ReadString();
        }
Ejemplo n.º 7
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);
        }
Ejemplo n.º 8
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))
 {
 }
Ejemplo n.º 10
0
 public Environment(SerializationInputStream Stream)
 {
     UniqueKey             = Stream.ReadString();
     TileRuleSet           = new TileRuleSet(Stream);
     MovementMultiplier    = Stream.ReadFloat();
     _RestrictRoadMovement = Stream.ReadEnumerable(i => i.ReadBoolean()).ToArray();
 }
Ejemplo n.º 11
0
 public UnitConfigurationLock(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         Stream.ReadFloat(),
         Stream.ReadEnumerable(i => GameData.UnitConfigurationLinks[i.ReadString()]))
 {
 }
Ejemplo n.º 12
0
 public TileRenderer(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         Stream.ReadString(),
         FileUtils.DeserializeColor(Stream),
         FileUtils.DeserializeColor(Stream),
         Stream.ReadEnumerable(i => FileUtils.DeserializeColor(i)).ToArray(),
         Stream.ReadEnumerable(i => FileUtils.DeserializeColor(i)).ToArray(),
         Stream.ReadEnumerable(i => FileUtils.DeserializeColor(i)).ToArray(),
         Stream.ReadEnumerable(i => FileUtils.DeserializeColor(i)).ToArray(),
         Stream.ReadEnumerable(i => FileUtils.DeserializeColor(i)).ToArray(),
         Stream.ReadEnumerable(i => FileUtils.DeserializeColor(i)).ToArray(),
         Stream.ReadEnumerable(i => i.ReadFloat()).ToArray(),
         Stream.ReadEnumerable(i => i.ReadFloat()).ToArray())
 {
 }
Ejemplo n.º 13
0
 public UnitConfigurationPack(SerializationInputStream Stream)
     : this(
         Stream.ReadInt32(),
         Stream.ReadString(),
         Stream.ReadInt32(),
         Stream.ReadEnumerable(i => new UnitConfigurationLock(i)))
 {
 }
Ejemplo n.º 14
0
 public TileRuleSet(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         Stream.ReadEnumerable(PARSER).ToArray(),
         Stream.ReadEnumerable(PARSER).ToArray(),
         Stream.ReadEnumerable(PARSER).ToArray())
 {
 }
Ejemplo n.º 15
0
 public ScenarioParameters(SerializationInputStream Stream)
     : this(
         Stream.ReadUInt32(),
         GameData.MatchSettings[Stream.ReadString()],
         Stream.ReadByte(),
         new Coordinate(Stream),
         Stream.ReadBoolean())
 {
 }
 public TerrainGeneratorConfiguration(SerializationInputStream Stream)
     : this(
         Stream.ReadString(),
         new FeatureGenerator(Stream),
         new FeatureGenerator(Stream),
         new FeatureGenerator(Stream),
         new FeatureGenerator(Stream),
         new FeatureGenerator(Stream))
 {
 }
Ejemplo n.º 17
0
        public UnitMovementRules(SerializationInputStream Stream)
        {
            UniqueKey = Stream.ReadString();

            BaseCost = Stream.ReadInt32();
            IgnoresEnvironmentMovement = Stream.ReadBoolean();
            CannotUseRoadMovement      = Stream.ReadBoolean();

            MovementRules = Stream.ReadEnumerable(i => new MovementRule(i)).ToArray();
        }
Ejemplo n.º 18
0
        public TileComponentRules(SerializationInputStream Stream)
            : this(
                Stream.ReadString(),

                Stream.ReadBoolean(),
                Stream.ReadInt32(),
                Stream.ReadBoolean(),
                Stream.ReadBoolean(),
                Stream.ReadBoolean(),

                Stream.ReadBoolean(),
                Stream.ReadBoolean(),
                Stream.ReadBoolean(),
                Stream.ReadBoolean(),
                Stream.ReadBoolean(),
                Enumerable.Empty <TerrainAttribute>())
        {
            _TerrainAttributes = Stream.ReadEnumerable(Stream.ReadBoolean).ToArray();
        }
Ejemplo n.º 19
0
 public RandomMapConfiguration(SerializationInputStream Stream)
     : this(Stream.ReadInt32(), Stream.ReadInt32(), GameData.MatchSettings[Stream.ReadString()])
 {
 }
Ejemplo n.º 20
0
 public BoardConfiguration(SerializationInputStream Stream)
     : this(Stream.ReadString(), Stream.ReadBoolean())
 {
 }
Ejemplo n.º 21
0
 public FactionRenderDetails(SerializationInputStream Stream, string Path)
 {
     _RootPath  = Path;
     _ImagePath = Stream.ReadString();
 }
Ejemplo n.º 22
0
 public ChatMessage(SerializationInputStream Stream)
 {
     Player  = new Player(Stream);
     Time    = new DateTime(Stream.ReadInt64());
     Message = Stream.ReadString();
 }
Ejemplo n.º 23
0
 public UnitGroup(SerializationInputStream Stream)
 {
     Name        = Stream.ReadString();
     _UnitCounts = Stream.ReadEnumerable(i => new UnitCount(i)).ToList();
 }
Ejemplo n.º 24
0
 public BoardCompositeMapConfiguration(SerializationInputStream Stream)
     : this(Stream.ReadEnumerable(
                i => Stream.ReadEnumerable(
                    j => new BoardConfiguration(Stream.ReadString(), Stream.ReadBoolean()))))
 {
 }
Ejemplo n.º 25
0
 public UnitCount(SerializationInputStream Stream)
     : this(GameData.UnitConfigurations[Stream.ReadString()], Stream.ReadInt32())
 {
 }
Ejemplo n.º 26
0
 public Player(SerializationInputStream Stream)
     : this(new OnlineId(Stream), Stream.ReadString())
 {
 }
Ejemplo n.º 27
0
 public MapRegion(SerializationInputStream Stream, Tile[,] Tiles)
     : this(Stream.ReadString(), Stream.ReadEnumerable(i => Tiles[Stream.ReadInt32(), Stream.ReadInt32()]))
 {
 }
 public UnitHasConfiguration(SerializationInputStream Stream)
     : this(GameData.UnitConfigurations[Stream.ReadString()])
 {
 }
Ejemplo n.º 29
0
 public TileInRegion(SerializationInputStream Stream)
     : this(Stream.ReadString())
 {
 }
Ejemplo n.º 30
0
 public LogInPlayerRequest(SerializationInputStream Stream)
     : base(Stream)
 {
     Username = Stream.ReadString();
     Password = Stream.ReadString();
 }