예제 #1
0
 public override void LoadRules(FileFormats.IniFile.IniSection rules)
 {
     Crater = rules.ReadBool("Crater");
     Burn   = rules.ReadBool("Burn");
     Width  = rules.ReadInt("Width", 1);
     Height = rules.ReadInt("Height", 1);
 }
예제 #2
0
 public override void LoadArt(FileFormats.IniFile.IniSection art)
 {
     base.LoadArt(art);
     Rotors      = art.ReadBool("Rotors");
     CustomRotor = art.ReadBool("CustomRotor");
     Trailer     = TypesRepository.GetAnimType(art.ReadString("Trailer"));
     SpawnDelay  = art.ReadInt("SpawnDelay", 3);
 }
예제 #3
0
 public override void LoadArt(FileFormats.IniFile.IniSection art)
 {
     base.LoadArt(art);
     UseLineTrail            = art.ReadBool("UseLineTrail");
     LineTrailColor          = art.ReadColor("LineTrailColor");
     LineTrailColorDecrement = art.ReadInt("LineTrailColorDecrement");
     Theater    = art.ReadBool("Theater");
     NewTheater = art.ReadBool("NewTheater");
     Voxel      = art.ReadBool("Voxel");
 }
예제 #4
0
 public override void LoadRules(FileFormats.IniFile.IniSection rules)
 {
     base.LoadRules(rules);
     Landable     = rules.ReadBool("Landable");
     AirportBound = rules.ReadBool("AirportBound");
     Fighter      = rules.ReadBool("Fighter");
     Carryall     = rules.ReadBool("Carryall");
     FlyBy        = rules.ReadBool("FlyBy");
     FlyBack      = rules.ReadBool("FlyBack");
 }
예제 #5
0
        public override void LoadArt(FileFormats.IniFile.IniSection art)
        {
            base.LoadArt(art);

            Crawls         = art.ReadBool("Crawls", true);
            FireUp         = art.ReadInt("FireUp");
            FireProne      = art.ReadInt("FireProne");
            SecondaryFire  = art.ReadInt("SecondaryFire");
            SecondaryProne = art.ReadInt("SecondaryProne");
            SequenceName   = art.ReadString("Sequence");
        }
예제 #6
0
        public override void LoadRules(FileFormats.IniFile.IniSection rules)
        {
            base.LoadRules(rules);

            IsVeinhole              = rules.ReadBool("IsVeinhole");
            WaterBound              = rules.ReadBool("WaterBound");
            SpawnsTiberium          = rules.ReadBool("SpawnsTiberium");
            IsFlammable             = rules.ReadBool("IsFlammable");
            RadarColor              = rules.ReadColor("RadarColor");
            IsAnimated              = rules.ReadBool("IsAnimated");
            AnimationRate           = rules.ReadInt("AnimationRate");
            AnimationProbability    = rules.ReadFloat("AnimationProbability");
            TemperateOccupationBits = rules.ReadInt("TemperateOccupationBits", 7);
            SnowOccupationBits      = rules.ReadInt("SnowOccupationBits", 7);
        }
예제 #7
0
        public override void LoadArt(FileFormats.IniFile.IniSection art)
        {
            base.LoadArt(art);

            WalkFrames       = art.ReadInt("WalkFrames", 12);
            FiringFrames     = art.ReadInt("FiringFrames");
            StandingFrames   = art.ReadInt("StandingFrames");
            DeathFrames      = art.ReadInt("DeathFrames");
            DeathFrameRate   = art.ReadInt("DeathFrameRate", 1);
            Facings          = art.ReadInt("Facings", 8);
            StartStandFrame  = art.ReadInt("StartStandFrame", -1);
            StartWalkFrame   = art.ReadInt("StartWalkFrame", -1);
            StartFiringFrame = art.ReadInt("StartFiringFrame", -1);
            StartDeathFrame  = art.ReadInt("StartDeathFrame", -1);
            MaxDeathCounter  = art.ReadInt("MaxDeathCounter", -1);
            FiringSyncFrameX = art.ReadInt("FiringSyncFrameX", -1);
        }
예제 #8
0
        public override void LoadArt(FileFormats.IniFile.IniSection art)
        {
            base.LoadArt(art);

            CanBeHidden        = art.ReadBool("CanBeHidden", true);
            UseBuffer          = art.ReadBool("UseBuffer");
            Palette            = art.ReadString("Palette");
            TurretOffset       = art.ReadXYZ("TurretOffset");
            RotCount           = art.ReadInt("RotCount");
            Remapable          = art.ReadBool("Remapable");
            Normalized         = art.ReadBool("Normalized");
            VisibleLoad        = art.ReadBool("VisibleLoad");
            ShadowIndex        = art.ReadInt("ShadowIndex");
            DisableVoxelCache  = art.ReadBool("DisableVoxelCache");
            DisableShadowCache = art.ReadBool("DisableShadowCache");
            Cameo                       = art.ReadString("Cameo");
            AltCameo                    = art.ReadString("AltCameo");
            WeaponXFLH                  = art.ReadXYZ("WeaponXFLH");
            WeaponXBarrelLength         = art.ReadInt("WeaponXBarrelLength");
            WeaponXBarrelThickness      = art.ReadInt("WeaponXBarrelThickness");
            WeaponXTurretLocked         = art.ReadBool("WeaponXTurretLocked");
            EliteWeaponXFLH             = art.ReadXYZ("EliteWeaponXFLH");
            EliteWeaponXBarrelLength    = art.ReadInt("EliteWeaponXBarrelLength");
            EliteWeaponXBarrelThickness = art.ReadInt("EliteWeaponXBarrelThickness");
            EliteWeaponXTurretLocked    = art.ReadBool("EliteWeaponXTurretLocked");
            PrimaryFireFLH              = art.ReadXYZ("PrimaryFireFLH");
            PBarrelLength               = art.ReadInt("PBarrelLength");
            PBarrelThickness            = art.ReadInt("PBarrelThickness");
            SecondaryFireFLH            = art.ReadXYZ("SecondaryFireFLH");
            SBarrelLength               = art.ReadInt("SBarrelLength");
            SBarrelThickness            = art.ReadInt("SBarrelThickness");
            ElitePrimaryFireFLH         = art.ReadXYZ("ElitePrimaryFireFLH");
            ElitePBarrelLength          = art.ReadInt("ElitePBarrelLength");
            ElitePBarrelThickness       = art.ReadInt("ElitePBarrelThickness");
            EliteSecondaryFireFLH       = art.ReadXYZ("EliteSecondaryFireFLH");
            EliteSBarrelLength          = art.ReadInt("EliteSBarrelLength");
            EliteSBarrelThickness       = art.ReadInt("EliteSBarrelThickness");
            AlternateFLHX               = art.ReadXYZ("AlternateFLHX");
            TurretNotExportedOnGround   = art.ReadBool("TurretNotExportedOnGround");
            SecondSpawnOffset           = art.ReadXYZ("SecondSpawnOffset");
        }
예제 #9
0
        public override void LoadRules(FileFormats.IniFile.IniSection rules)
        {
            base.LoadRules(rules);

            Land              = rules.ReadEnum("Land", LandType.Clear);
            Strength          = rules.ReadInt("Strength", 1);
            Wall              = rules.ReadBool("Wall");
            Tiberium          = rules.ReadBool("Tiberium");
            Crate             = rules.ReadBool("Crate");
            CrateTrigger      = rules.ReadBool("CrateTrigger");
            Explodes          = rules.ReadBool("Explodes");
            Overrides         = rules.ReadBool("Overrides");
            CellAnim          = Get <Animation>(rules.ReadString("CellAnim"));
            DamageLevels      = rules.ReadInt("DamageLevels", 1);
            RadarColor        = rules.ReadColor("RadarColor");
            NoUseLandTileType = rules.ReadBool("NoUseLandTileType", true);
            IsVeinholeMonster = rules.ReadBool("IsVeinholeMonster");
            IsVeins           = rules.ReadBool("IsVeins");
            ChainReaction     = rules.ReadBool("ChainReaction");
            DrawFlat          = rules.ReadBool("DrawFlat", true);
            IsARock           = rules.ReadBool("IsARock");
            IsRubble          = rules.ReadBool("IsRubble");
        }
예제 #10
0
 public override void LoadRules(FileFormats.IniFile.IniSection rules)
 {
     base.LoadRules(rules);
     DeployToFire            = rules.ReadBool("DeployToFire");
     IsSimpleDeployer        = rules.ReadBool("IsSimpleDeployer");
     Harvester               = rules.ReadBool("Harvester");
     Weeder                  = rules.ReadBool("Weeder");
     SpeedType               = rules.ReadEnum("SpeedType", SpeedType.Clear);
     IsTilter                = rules.ReadBool("IsTilter");
     CarriesCrate            = rules.ReadBool("CarriesCrate");
     TooBigToFitUnderBridge  = rules.ReadBool("TooBigToFitUnderBridge");
     HalfDamageSmokeLocation = rules.ReadXYZ("HalfDamageSmokeLocation");
     UseTurretShadow         = rules.ReadBool("UseTurretShadow");
     Passive                 = rules.ReadBool("Passive");
     MovementRestrictedTo    = rules.ReadEnum("MovementRestrictedTo", LandType.Clear);
     CanBeach                = rules.ReadBool("CanBeach");
     SmallVisceroid          = rules.ReadBool("SmallVisceroid");
     LargeVisceroid          = rules.ReadBool("LargeVisceroid");
     NonVehicle              = rules.ReadBool("NonVehicle");
     BurstDelayX             = rules.ReadInt("BurstDelayX", -1);
     AltImage                = rules.ReadString("AltImage");
     CrateGoodie             = rules.ReadBool("CrateGoodie");
 }
예제 #11
0
        public override void LoadRules(FileFormats.IniFile.IniSection rules)
        {
            base.LoadRules(rules);

            Image              = rules.ReadString("Image");
            AlphaImage         = rules.ReadString("AlphaImage");
            CrushSound         = rules.ReadString("CrushSound");
            AmbientSound       = rules.ReadString("AmbientSound");
            Crushable          = rules.ReadBool("Crushable");
            Bombable           = rules.ReadBool("Bombable");
            NoSpawnAlt         = rules.ReadBool("NoSpawnAlt");
            AlternateArcticArt = rules.ReadBool("AlternateArcticArt");
            RadarInvisible     = rules.ReadBool("RadarInvisible");
            Selectable         = rules.ReadBool("Selectable");
            LegalTarget        = rules.ReadBool("LegalTarget");

            Armor              = rules.ReadString("Armor");
            Strength           = rules.ReadInt("Strength");
            Immune             = rules.ReadBool("Immune");
            Insignificant      = rules.ReadBool("Insignificant");
            HasRadialIndicator = rules.ReadBool("HasRadialIndicator");
            RadialColor        = rules.ReadColor("RadialColor");
            IgnoresFirestorm   = rules.ReadBool("IgnoresFirestorm");
        }
예제 #12
0
 public override void LoadRules(FileFormats.IniFile.IniSection rules)
 {
     base.LoadRules(rules);
 }
예제 #13
0
        public override void LoadArt(FileFormats.IniFile.IniSection art)
        {
            base.LoadArt(art);

            Foundation = art.ReadSize("Foundation", new Size(1, 1));
        }
예제 #14
0
        public override void LoadArt(FileFormats.IniFile.IniSection art)
        {
            base.LoadArt(art);

            Shadow                = art.ReadBool("Shadow");
            Layer                 = art.ReadEnum("Layer", Layer.Ground);
            AltPalette            = art.ReadBool("AltPalette");
            DoubleThick           = art.ReadBool("DoubleThick");
            Flat                  = art.ReadBool("Flat");
            Flamer                = art.ReadBool("Flamer");
            Normalized            = art.ReadBool("Normalized");
            Translucent           = art.ReadBool("Translucent");
            Scorch                = art.ReadBool("Scorch");
            Crater                = art.ReadBool("Crater");
            ForceBigCraters       = art.ReadBool("ForceBigCraters");
            Sticky                = art.ReadBool("Sticky");
            PingPong              = art.ReadBool("PingPong");
            Reverse               = art.ReadBool("Reverse");
            PsiWarning            = art.ReadBool("PsiWarning");
            TiberiumChainReaction = art.ReadBool("TiberiumChainReaction");
            Rate                  = art.ReadInt("Rate", 1);
            Damage                = art.ReadFloat("Damage");
            Start                 = art.ReadInt("Start");
            End       = art.ReadInt("End");
            LoopStart = art.ReadInt("LoopStart");
            LoopEnd   = art.ReadInt("LoopEnd");
            LoopCount = art.ReadInt("LoopCount");
            //Next = Get<Animation>(art.ReadString("Next"));
            DetailLevel             = art.ReadInt("DetailLevel");
            TranslucencyDetailLevel = art.ReadInt("TranslucencyDetailLevel");
            RandomLoopDelay         = art.ReadXY("RandomLoopDelay");
            Translucency            = art.ReadInt("Translucency");
            IsTiberium   = art.ReadBool("IsTiberium");
            HideIfNoOre  = art.ReadBool("HideIfNoOre");
            YSortAdjust  = art.ReadInt("YSortAdjust");
            Elasticity   = art.ReadFloat("Elasticity", 0.8f);
            MaxXYVel     = art.ReadFloat("MaxXYVel", 2.71875f);
            MinZVel      = art.ReadFloat("MinZVel", 2.1875f);
            MakeInfantry = art.ReadInt("MakeInfantry", -1);
            //Spawns = Get<Animation>(art.ReadString("Spawns"));
            SpawnCount           = art.ReadInt("SpawnCount");
            IsMeteor             = art.ReadBool("IsMeteor");
            IsVeins              = art.ReadBool("IsVeins");
            TiberiumSpreadRadius = art.ReadInt("TiberiumSpreadRadius");
            //TiberiumSpawnType = Get<OverlayType>(art.ReadString("TiberiumSpawnType"));
            IsAnimatedTiberium = art.ReadBool("IsAnimatedTiberium");
            ShouldFogRemove    = art.ReadBool("ShouldFogRemove", true);
            IsFlamingGuy       = art.ReadBool("IsFlamingGuy");
            RunningFrames      = art.ReadInt("RunningFrames");
            YDrawOffset        = art.ReadInt("YDrawOffset");
            ZAdjust            = art.ReadInt("ZAdjust");
            //StartSound = Get<Sound>(art.ReadString("StartSound"));
            //Report = Get<Sound>(art.ReadString("Report"));
            //StopSound = Get<Sound>(art.ReadString("StopSound"));
            //BounceAnim = Get<Animation>(art.ReadString("BounceAnim"));
            //ExpireAnim = Get<Animation>(art.ReadString("ExpireAnim"));
            //TrailerAnim = Get<Animation>(art.ReadString("TrailerAnim"));
            TrailerSeperation = art.ReadInt("TrailerSeperation", 0);
            DamageRadius      = art.ReadInt("DamageRadius", 0);
            //Warhead = Get<WarheadType>(art.ReadString("Warhead"));
            Bouncer             = art.ReadBool("Bouncer");
            Tiled               = art.ReadBool("Tiled");
            ShouldUseCellDrawer = art.ReadBool("ShouldUseCellDrawer", true);
            UseNormalLight      = art.ReadBool("UseNormalLight");
            //SpawnsParticle =Get<ParticleType>(art.ReadString("SpawnsParticle"));
            NumParticles = art.ReadInt("NumParticles");
            RandomRate   = art.ReadXY("RandomRate");
        }
예제 #15
0
        public override void LoadRules(FileFormats.IniFile.IniSection rules)
        {
            base.LoadRules(rules);

            LandTargeting              = rules.ReadInt("LandTargeting");
            NavalTargeting             = rules.ReadInt("NavalTargeting");
            SpeedType                  = rules.ReadEnum <SpeedType>("SpeedType", SpeedType.Clear);
            TypeImmune                 = rules.ReadBool("TypeImmune");
            WalkRate                   = rules.ReadFloat("WalkRate", 1);
            MoveRate                   = rules.ReadFloat("MoveRate");
            MoveToShroud               = rules.ReadBool("MoveToShroud", true);
            IsTrain                    = rules.ReadBool("IsTrain");
            DoubleOwned                = rules.ReadBool("DoubleOwned");
            GuardRange                 = (int)rules.ReadFloat("GuardRange");
            Explodes                   = rules.ReadBool("Explodes");
            DeathWeapon                = TypesRepository.GetWeaponType(rules.ReadString("DeathWeapon"));
            DeathWeaponDamageModifier  = rules.ReadFloat("DeathWeaponDamageModifier", 1);
            FlightLevel                = rules.ReadInt("FlightLevel", -1);
            IsDropship                 = rules.ReadBool("IsDropship");
            PitchAngle                 = rules.ReadFloat("PitchAngle", 0.349066f);
            RollAngle                  = rules.ReadFloat("RollAngle", 0.523599f);
            PitchSpeed                 = rules.ReadFloat("PitchSpeed", 0.25f);
            Locomotor                  = Guid.Parse(rules.ReadString("Locomotor", "{4A582747-9839-11d1-B709-00A024DDAFD1}"));
            CloakingSpeed              = rules.ReadInt("CloakingSpeed", 7);
            ThreatAvoidanceCoefficient = rules.ReadFloat("ThreatAvoidanceCoefficient");
            SlowdownDistance           = rules.ReadInt("SlowdownDistance", 500);
            DeaccelerationFactor       = rules.ReadFloat("DeaccelerationFactor", 0.002f);
            AccelerationFactor         = rules.ReadFloat("AccelerationFactor", 0.03f);
            Weight                          = rules.ReadFloat("Weight", 1);
            PhysicalSize                    = rules.ReadFloat("PhysicalSize", 2);
            Size                            = rules.ReadFloat("Size", 1);
            SizeLimit                       = rules.ReadFloat("SizeLimit");
            HoverAttack                     = rules.ReadBool("HoverAttack");
            VHPScan                         = rules.ReadEnum <VHPScan>("VHPScan", VHPScan.None);
            MaxDebris                       = rules.ReadInt("MaxDebris");
            MinDebris                       = rules.ReadInt("MinDebris");
            DebrisTypes                     = GetList <VoxelAnimation>(rules.ReadList("DebrisTypes"));
            DebrisMaximums                  = rules.ReadList("DebrisMaximums").Select(int.Parse).ToList();
            DebrisAnims                     = GetList <VoxelAnimation>(rules.ReadList("DebrisAnims"));
            HasTurretTooltips               = rules.ReadBool("HasTurretTooltips");
            TurretCount                     = rules.ReadInt("TurretCount");
            WeaponCount                     = rules.ReadInt("WeaponCount");
            IsChargeTurret                  = rules.ReadBool("IsChargeTurret");
            ClearAllWeapons                 = rules.ReadBool("ClearAllWeapons");
            Primary                         = TypesRepository.GetWeaponType(rules.ReadString("Primary"));
            Secondary                       = TypesRepository.GetWeaponType(rules.ReadString("Secondary"));
            ElitePrimary                    = TypesRepository.GetWeaponType(rules.ReadString("ElitePrimary"));
            EliteSecondary                  = TypesRepository.GetWeaponType(rules.ReadString("EliteSecondary"));
            WeaponX                         = TypesRepository.GetWeaponType(rules.ReadString("WeaponX"));
            EliteWeaponX                    = TypesRepository.GetWeaponType(rules.ReadString("EliteWeaponX"));
            VoiceMove                       = GetList <Sound>(rules.ReadList("VoiceMove"));
            VoiceSelect                     = GetList <Sound>(rules.ReadList("VoiceSelect"));
            VoiceSelectEnslaved             = GetList <Sound>(rules.ReadList("VoiceSelectEnslaved"));
            VoiceSelectDeactivated          = GetList <Sound>(rules.ReadList("VoiceSelectDeactivated"));
            VoiceAttack                     = GetList <Sound>(rules.ReadList("VoiceAttack"));
            VoiceSpecialAttack              = GetList <Sound>(rules.ReadList("VoiceSpecialAttack"));
            VoiceDie                        = GetList <Sound>(rules.ReadList("VoiceDie"));
            VoiceFeedback                   = GetList <Sound>(rules.ReadList("VoiceFeedback"));
            AuxSound1                       = TypesRepository.GetSound(rules.ReadString("AuxSound1"));
            AuxSound2                       = TypesRepository.GetSound(rules.ReadString("AuxSound2"));
            CreateSound                     = TypesRepository.GetSound(rules.ReadString("CreateSound"));
            DamageSound                     = TypesRepository.GetSound(rules.ReadString("DamageSound"));
            ImpactWaterSound                = TypesRepository.GetSound(rules.ReadString("ImpactWaterSound"));
            ImpactLandSound                 = TypesRepository.GetSound(rules.ReadString("ImpactLandSound"));
            CrashingSound                   = TypesRepository.GetSound(rules.ReadString("CrashingSound"));
            SinkingSound                    = TypesRepository.GetSound(rules.ReadString("SinkingSound"));
            VoiceFalling                    = TypesRepository.GetSound(rules.ReadString("VoiceFalling"));
            VoiceCrashing                   = TypesRepository.GetSound(rules.ReadString("VoiceCrashing"));
            VoiceSinking                    = TypesRepository.GetSound(rules.ReadString("VoiceSinking"));
            VoiceEnter                      = TypesRepository.GetSound(rules.ReadString("VoiceEnter"));
            VoiceCapture                    = TypesRepository.GetSound(rules.ReadString("VoiceCapture"));
            CloakStop                       = rules.ReadBool("CloakStop");
            Storage                         = rules.ReadInt("Storage");
            BuildLimit                      = rules.ReadInt("BuildLimit", 2147483647);
            Category                        = rules.ReadEnum <Category>("Category", Category.None);
            Dock                            = GetList <BuildingType>(rules.ReadList("Dock"));
            DeploysInto                     = Get <BuildingType>("DeploysInto");
            UndeploysInto                   = Get <VehicleType>("UndeploysInto");
            PowersUnit                      = Get <VehicleType>(rules.ReadString("PowersUnit"));
            PoweredUnit                     = rules.ReadBool("PoweredUnit");
            LightningRod                    = rules.ReadBool("LightningRod");
            ManualReload                    = rules.ReadBool("ManualReload");
            TurretSpins                     = rules.ReadBool("TurretSpins");
            TiltCrashJumpjet                = rules.ReadBool("TiltCrashJumpjet");
            Turret                          = rules.ReadBool("Turret");
            TurretRotateSound               = TypesRepository.GetSound(rules.ReadString("TurretRotateSound"));
            EnterTransportSound             = TypesRepository.GetSound(rules.ReadString("EnterTransportSound"));
            LeaveTransportSound             = TypesRepository.GetSound(rules.ReadString("LeaveTransportSound"));
            MoveSound                       = GetList <Sound>(rules.ReadList("MoveSound"));
            DieSound                        = GetList <Sound>(rules.ReadList("DieSound"));
            DeploySound                     = TypesRepository.GetSound(rules.ReadString("DeploySound"));
            UndeploySound                   = TypesRepository.GetSound(rules.ReadString("UndeploySound"));
            ChronoInSound                   = TypesRepository.GetSound(rules.ReadString("ChronoInSound"));
            ChronoOutSound                  = TypesRepository.GetSound(rules.ReadString("ChronoOutSound"));
            VoiceHarvest                    = TypesRepository.GetSound(rules.ReadString("VoiceHarvest"));
            VoicePrimaryWeaponAttack        = TypesRepository.GetSound(rules.ReadString("VoicePrimaryWeaponAttack"));
            VoicePrimaryEliteWeaponAttack   = TypesRepository.GetSound(rules.ReadString("VoicePrimaryEliteWeaponAttack"));
            VoiceSecondaryWeaponAttack      = TypesRepository.GetSound(rules.ReadString("VoiceSecondaryWeaponAttack"));
            VoiceSecondaryEliteWeaponAttack = TypesRepository.GetSound(rules.ReadString("VoiceSecondaryEliteWeaponAttack"));
            VoiceDeploy                     = TypesRepository.GetSound(rules.ReadString("VoiceDeploy"));
            VoiceUndeploy                   = TypesRepository.GetSound(rules.ReadString("VoiceUndeploy"));
            EnterGrinderSound               = TypesRepository.GetSound(rules.ReadString("EnterGrinderSound"));
            LeaveGrinderSound               = TypesRepository.GetSound(rules.ReadString("LeaveGrinderSound"));
            EnterBioReactorSound            = TypesRepository.GetSound(rules.ReadString("EnterBioReactorSound"));
            LeaveBioReactorSound            = TypesRepository.GetSound(rules.ReadString("LeaveBioReactorSound"));
            ActivateSound                   = TypesRepository.GetSound(rules.ReadString("ActivateSound"));
            DeactivateSound                 = TypesRepository.GetSound(rules.ReadString("DeactivateSound"));
            MindClearedSound                = TypesRepository.GetSound(rules.ReadString("MindClearedSound"));

            Explosion                   = GetList <Animation>(rules.ReadList("Explosion"));
            DestroyAnim                 = GetList <Animation>(rules.ReadList("DestroyAnim"));
            NaturalParticleSystem       = Get <ParticleSystem>(rules.ReadString("NaturalParticleSystem"));
            RefinerySmokeParticleSystem = Get <ParticleSystem>(rules.ReadString("RefinerySmokeParticleSystem"));
            NaturalParticleLocation     = rules.ReadXYZ("NaturalPrules.cleLocation");
            DamageParticleSystems       = GetList <ParticleSystem>(rules.ReadList("DamageParticleSystems"));
            DestroyParticleSystems      = GetList <ParticleSystem>(rules.ReadList("DestroyParticleSystems"));
            DamageSmokeOffset           = rules.ReadXYZ("DamageSmokeOffset");
            DamSmkOffScrnRel            = rules.ReadBool("DamSmkOffScrnRel");
            DestroySmokeOffset          = rules.ReadXYZ("DestroySmokeOffset");
            RefinerySmokeOffsetOne      = rules.ReadXYZ("RefinerySmokeOffsetOne");
            RefinerySmokeOffsetTwo      = rules.ReadXYZ("RefinerySmokeOffsetTwo");
            RefinerySmokeOffsetThree    = rules.ReadXYZ("RefinerySmokeOffsetThree");
            RefinerySmokeOffsetFour     = rules.ReadXYZ("RefinerySmokeOffsetFour");
            Nominal               = rules.ReadBool("Nominal");
            DontScore             = rules.ReadBool("DontScore");
            DamageSelf            = rules.ReadBool("DamageSelf");
            Cloakable             = rules.ReadBool("Cloakable");
            GapGenerator          = rules.ReadBool("GapGenerator");
            GapRadiusInCells      = rules.ReadInt("GapRadiusInCells");
            SuperGapRadiusInCells = rules.ReadInt("SuperGapRadiusInCells");
            Teleporter            = rules.ReadBool("Teleporter");
            Sensors               = rules.ReadBool("Sensors");
            IsGattling            = rules.ReadBool("IsGattling");
            WeaponStages          = rules.ReadInt("WeaponStages");
            RateUp                     = rules.ReadInt("RateUp");
            RateDown                   = rules.ReadInt("RateDown");
            StageX                     = rules.ReadInt("StageX");
            EliteStageX                = rules.ReadInt("EliteStageX");
            PipScale                   = rules.ReadEnum("PipScale", PipScale.none);
            PipsDrawForAll             = rules.ReadBool("PipsDrawForAll");
            LeptonMindControlOffset    = rules.ReadInt("LeptonMindControlOffset", 70);
            PixelSelectionBracketDelta = rules.ReadBool("PixelSelectionBracketDelta");
            PipWrap                    = rules.ReadInt("PipWrap");
            Prerequisite               = GetList <Prerequisite>(rules.ReadList("Prerequisite"));
            PrerequisiteOverride       = GetList <Prerequisite>(rules.ReadList("PrerequisiteOverride"));
            Sight                      = rules.ReadInt("Sight");
            ReselectIfLimboed          = rules.ReadBool("ReselectIfLimboed");
            RejoinTeamIfLimboed        = rules.ReadBool("RejoinTeamIfLimboed");
            SensorsSight               = rules.ReadInt("SensorsSight");
            DetectDisguiseRange        = rules.ReadInt("DetectDisguiseRange");
            BombSight                  = rules.ReadInt("BombSight");
            LeadershipRating           = rules.ReadInt("LeadershipRating", 5);
            MindControlRingOffset      = rules.ReadInt("MindControlRingOffset", 140);
            BuildTimeMultiplier        = rules.ReadFloat("BuildTimeMultiplier", 1);
            RevealToAll                = rules.ReadBool("RevealToAll");
            Drainable                  = rules.ReadBool("Drainable");
            OpenTopped                 = rules.ReadBool("OpenTopped");
            ResourceGatherer           = rules.ReadBool("ResourceGatherer");
            ResourceDestination        = rules.ReadBool("ResourceDestination");
            CanDisguise                = rules.ReadBool("CanDisguise");
            PermaDisguise              = rules.ReadBool("PermaDisguise");
            DetectDisguise             = rules.ReadBool("DetectDisguise");
            DisguiseWhenStill          = rules.ReadBool("DisguiseWhenStill");
            CanPassiveAquire           = rules.ReadBool("CanPassiveAquire", true);
            CanRetaliate               = rules.ReadBool("CanRetaliate", true);
            CanApproachTarget          = rules.ReadBool("CanApproachTarget", true);
            CanRecalcApproachTarget    = rules.ReadBool("CanRecalcApproachTarget", true);
            RequiresStolenThirdTech    = rules.ReadBool("RequiresStolenThirdTech");
            RequiresStolenSovietTech   = rules.ReadBool("RequiresStolenSovietTech");
            RequiresStolenAlliedTech   = rules.ReadBool("RequiresStolenAlliedTech");
            RequiredHouses             = GetList <House>(rules.ReadList("RequiredHouses"));
            SecretHouses               = GetList <House>(rules.ReadList("SecretHouses"));
            ForbiddenHouses            = GetList <House>(rules.ReadList("ForbiddenHouses"));
            TechLevel                  = rules.ReadInt("TechLevel", 255);
            AirstrikeTeam              = rules.ReadInt("AirstrikeTeam");
            EliteAirstrikeTeam         = rules.ReadInt("EliteAirstrikeTeam");
            AirstrikeTeamType          = Get <AircraftType>(rules.ReadString("AirstrikeTeamType"));
            EliteAirstrikeTeamType     = Get <AircraftType>(rules.ReadString("EliteAirstrikeTeamType"));
            AirstrikeRechargeTime      = rules.ReadInt("AirstrikeRechargeTime");
            EliteAirstrikeRechargeTime = rules.ReadInt("EliteAirstrikeRechargeTime");
            Speed                      = rules.ReadInt("Speed");
            Cost                         = rules.ReadInt("Cost");
            Soylent                      = rules.ReadInt("Soylent");
            UnloadingClass               = Get <VehicleType>(rules.ReadString("UnloadingClass"));
            DeployingAnim                = Get <Animation>(rules.ReadString("DeployingAnim"));
            InitialAmmo                  = rules.ReadInt("InitialAmmo", -1);
            Ammo                         = rules.ReadInt("Ammo", -1);
            IFVMode                      = rules.ReadInt("IFVMode");
            AirRangeBonus                = rules.ReadFloat("AirRangeBonus");
            RadialFireSegments           = rules.ReadInt("RadialFireSegments");
            DeployFireWeapon             = rules.ReadInt("DeployFireWeapon", 1);
            DeployFire                   = rules.ReadBool("DeployFire");
            DeployToLand                 = rules.ReadBool("DeployToLand");
            MobileFire                   = rules.ReadBool("MobileFire", true);
            OpportunityFire              = rules.ReadBool("OpportunityFire");
            DistributedFire              = rules.ReadBool("DistributedFire");
            Reload                       = rules.ReadInt("Reload");
            EmptyReload                  = rules.ReadInt("EmptyReload", -1);
            ReloadIncrement              = rules.ReadInt("ReloadIncrement");
            DamageReducesReadiness       = rules.ReadBool("DamageReducesReadiness");
            ReadinessReductionMultiplier = rules.ReadFloat("ReadinessReductionMultiplier");
            BerserkFriendly              = rules.ReadBool("BerserkFriendly");
            SprayAttack                  = rules.ReadBool("SprayAttack");
            Pushy                        = rules.ReadBool("Pushy");
            Natural                      = rules.ReadBool("Natural");
            Unnatural                    = rules.ReadBool("Unnatural");
            CloseRange                   = rules.ReadBool("CloseRange");
            PreventAttackMove            = rules.ReadBool("PreventAttackMove");
            Points                       = rules.ReadInt("Points");
            ThreatPosed                  = rules.ReadInt("ThreatPosed");
            Owner                        = GetList <House>(rules.ReadList("Owner"));
            AIBasePlanningSide           = rules.ReadInt("AIBasePlanningSide", -1);
            Trainable                    = rules.ReadBool("Trainable", true);
            Crewed                       = rules.ReadBool("Crewed");
            Gunner                       = rules.ReadBool("Gunner");
            Naval                        = rules.ReadBool("Naval");
            Repairable                   = rules.ReadBool("Repairable", true);
            Invisible                    = rules.ReadBool("Invisible");
            RadarVisible                 = rules.ReadBool("RadarVisible");
            SelfHealing                  = rules.ReadBool("SelfHealing");
            NoAutoFire                   = rules.ReadBool("NoAutoFire");
            ROT           = rules.ReadInt("ROT");
            Passengers    = rules.ReadInt("Passengers");
            FireAngle     = rules.ReadInt("FireAngle", 8);
            DeployTime    = rules.ReadFloat("DeployTime");
            UndeployDelay = rules.ReadInt("UndeployDelay", -1);
            Disableable   = rules.ReadBool("Disableable", true);
            ToProtect     = rules.ReadBool("ToProtect");
            TiberiumHeal  = rules.ReadBool("TiberiumHeal");
            ImmuneToVeins = rules.ReadBool("ImmuneToVeins");
            AllowedToStartInMultiplayer = rules.ReadBool("AllowedToStrules.nMultiplayer", true);
            StupidHunt                     = rules.ReadBool("StupidHunt");
            TargetLaser                    = rules.ReadBool("TargetLaser");
            HunterSeeker                   = rules.ReadBool("HunterSeeker");
            Crusher                        = rules.ReadBool("Crusher");
            OmniCrusher                    = rules.ReadBool("OmniCrusher");
            OmniCrushResistant             = rules.ReadBool("OmniCrushResistant");
            AutoCrush                      = rules.ReadBool("AutoCrush");
            ImmuneToRadiation              = rules.ReadBool("ImmuneToRadiation");
            Underwater                     = rules.ReadBool("Underwater");
            BalloonHover                   = rules.ReadBool("BalloonHover");
            Slaved                         = rules.ReadBool("Slaved");
            Enslaves                       = TypesRepository.GetInfantryType(rules.ReadString("Enslaves"));
            SlaveRegenRate                 = rules.ReadInt("SlaveRegenRate");
            SlavesNumber                   = rules.ReadInt("SlavesNumber");
            SlaveReloadRate                = rules.ReadInt("SlaveReloadRate");
            OpenTransportWeapon            = rules.ReadInt("OpenTransportWeapon", -1);
            Spawned                        = rules.ReadInt("Spawned");
            Spawns                         = TypesRepository.GetAircraftType(rules.ReadString("Spawns"));
            SpawnRegenRate                 = rules.ReadInt("SpawnRegenRate");
            SpawnsNumber                   = rules.ReadInt("SpawnsNumber");
            SpawnReloadRate                = rules.ReadInt("SpawnReloadRate");
            MissileSpawn                   = rules.ReadBool("MissileSpawn");
            DefaultToGuardArea             = rules.ReadBool("DefaultToGuardArea");
            Warpable                       = rules.ReadBool("Warpable", true);
            Parasiteable                   = rules.ReadBool("Parasiteable");
            ImmuneToPsionics               = rules.ReadBool("ImmuneToPsionics");
            ImmuneToPsionicWeapons         = rules.ReadBool("ImmuneToPsionicWeapons");
            ConsideredAircraft             = rules.ReadBool("ConsideredAircraft");
            Bunkerable                     = rules.ReadBool("Bunkerable");
            Organic                        = rules.ReadBool("Organic");
            ImmuneToPoison                 = rules.ReadBool("ImmuneToPoison");
            SuppressionThreshold           = rules.ReadFloat("SuppressionThreshold");
            NoShadow                       = rules.ReadBool("NoShadow");
            JumpjetTurnRate                = rules.ReadInt("JumpjetTurnRate", 4);
            JumpjetSpeed                   = rules.ReadFloat("JumpjetSpeed", 14);
            JumpjetClimb                   = rules.ReadFloat("JumpjetClimb", 5);
            JumpjetCrash                   = rules.ReadFloat("JumpjetCrash", 5);
            JumpjetHeight                  = rules.ReadInt("JumpjetHeight", 500);
            JumpjetAccel                   = rules.ReadFloat("JumpjetAccel", 2);
            JumpjetWobbles                 = rules.ReadFloat("JumpjetWobbles", 0.15f);
            JumpjetNoWobbles               = rules.ReadBool("JumpjetNoWobbles");
            JumpjetDeviation               = rules.ReadInt("JumpjetDeviation", 40);
            JumpJet                        = rules.ReadBool("JumpJet");
            Crashable                      = rules.ReadBool("Crashable");
            AttackFriendlies               = rules.ReadBool("AttackFriendlies");
            AttackCursorOnFriendlies       = rules.ReadBool("AttackCursorOnFriendlies");
            TurretRecoil                   = rules.ReadBool("TurretRecoil");
            TurretTravel                   = rules.ReadInt("TurretTravel", 2);
            TurretCompressFrames           = rules.ReadInt("TurretCompressFrames", 1);
            TurretHoldFrames               = rules.ReadInt("TurretHoldFrames", 1);
            TurretRecoverFrames            = rules.ReadInt("TurretRecoverFrames", 1);
            BarrelTravel                   = rules.ReadInt("BarrelTravel", 2);
            BarrelCompressFrames           = rules.ReadInt("BarrelCompressFrames", 1);
            BarrelHoldFrames               = rules.ReadInt("BarrelHoldFrames", 1);
            BarrelRecoverFrames            = rules.ReadInt("BarrelRecoverFrames", 1);
            TiltsWhenCrushes               = rules.ReadBool("TiltsWhenCrushes", true);
            Accelerates                    = rules.ReadBool("Accelerates", true);
            ZFudgeCliff                    = rules.ReadInt("ZFudgeCliff", 10);
            ZFudgeColumn                   = rules.ReadInt("ZFudgeColumn", 5);
            ZFudgeTunnel                   = rules.ReadInt("ZFudgeTunnel", 10);
            ZFudgeBridge                   = rules.ReadInt("ZFudgeBridge");
            VeteranAbilities               = ReadFlags <Abilities>(rules.ReadList("VeteranAbilities"));
            EliteAbilities                 = ReadFlags <Abilities>(rules.ReadList("EliteAbilities"));
            MyEffectivenessCoefficient     = rules.ReadFloat("MyEffectivenessCoefficient");
            TargetEffectivenessCoefficient = rules.ReadFloat("TargetEffectivenessCoefficient");
            TargetSpecialThreatCoefficient = rules.ReadFloat("TargetSpecialThreatCoefficient");
            TargetStrengthCoefficient      = rules.ReadFloat("TargetStrengthCoefficient");
            TargetDistanceCoefficient      = rules.ReadFloat("TargetDistanceCoefficient");
            SpecialThreatValue             = rules.ReadFloat("SpecialThreatValue");
            IsSelectableCombatant          = rules.ReadBool("IsSelectableCombatant");
            MovementZone                   = rules.ReadEnum <MovementZone>("MovementZone", MovementZone.Normal);
        }