Exemplo n.º 1
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");
		}
Exemplo n.º 2
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);

		}
Exemplo n.º 3
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");
		}