Beispiel #1
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);

		}