public CarPart GetPartWithHighestStat(CarPart.PartType inType, CarPartStats.CarPartStat inStat) { CarPart carPart = (CarPart)null; List <CarPart> partInventory = this.GetPartInventory(inType); for (int index = 0; index < partInventory.Count; ++index) { switch (inStat) { case CarPartStats.CarPartStat.MainStat: if (!partInventory[index].IsBanned && (carPart == null || (double)partInventory[index].stats.statWithPerformance > (double)carPart.stats.statWithPerformance)) { carPart = partInventory[index]; break; } break; case CarPartStats.CarPartStat.Reliability: if (!partInventory[index].IsBanned && (carPart == null || (double)partInventory[index].stats.reliability > (double)carPart.stats.reliability)) { carPart = partInventory[index]; break; } break; } } return(carPart); }
public static CarStats.StatType GetStatForPartType(CarPart.PartType inPartType) { switch (inPartType) { case CarPart.PartType.Brakes: case CarPart.PartType.BrakesGT: return(CarStats.StatType.Braking); case CarPart.PartType.Engine: case CarPart.PartType.EngineGT: return(CarStats.StatType.TopSpeed); case CarPart.PartType.FrontWing: return(CarStats.StatType.LowSpeedCorners); case CarPart.PartType.Gearbox: case CarPart.PartType.GearboxGT: return(CarStats.StatType.Acceleration); case CarPart.PartType.RearWing: case CarPart.PartType.RearWingGT: return(CarStats.StatType.HighSpeedCorners); case CarPart.PartType.Suspension: case CarPart.PartType.SuspensionGT: return(CarStats.StatType.MediumSpeedCorners); default: return(CarStats.StatType.Count); } }
public override void SetImpact(ChampionshipRules inRules) { switch (this.impactType) { case PoliticalImpactSpecPart.ImpactType.Activate: for (int index = 0; index < this.partTypes.Count; ++index) { CarPart.PartType partType = this.partTypes[index]; if (!inRules.SpecParts.Contains(partType)) { inRules.SpecParts.Add(this.partTypes[index]); } } inRules.ApplySpecParts(); break; case PoliticalImpactSpecPart.ImpactType.Remove: for (int index = 0; index < this.partTypes.Count; ++index) { CarPart.PartType partType = this.partTypes[index]; if (inRules.SpecParts.Contains(partType)) { inRules.SpecParts.Remove(partType); inRules.GenerateDefaultParts(partType); } } break; } }
public List <CarPart> GetPartInventory(CarPart.PartType inPartType) { switch (inPartType) { case CarPart.PartType.Brakes: return(this.brakesInventory); case CarPart.PartType.Engine: return(this.engineInventory); case CarPart.PartType.FrontWing: return(this.frontWingInventory); case CarPart.PartType.Gearbox: return(this.gearboxInventory); case CarPart.PartType.RearWing: return(this.rearWingInventory); case CarPart.PartType.Suspension: return(this.suspensionInventory); case CarPart.PartType.RearWingGT: return(this.rearWingGTInventory); case CarPart.PartType.BrakesGT: return(this.brakesGTInventory); case CarPart.PartType.EngineGT: return(this.engineGTInventory); case CarPart.PartType.GearboxGT: return(this.gearboxGTInventory); case CarPart.PartType.SuspensionGT: return(this.suspensionGTInventory); case CarPart.PartType.BrakesGET: return(this.brakesGETInventory); case CarPart.PartType.EngineGET: return(this.engineGETInventory); case CarPart.PartType.FrontWingGET: return(this.frontWingGETInventory); case CarPart.PartType.GearboxGET: return(this.gearboxGETInventory); case CarPart.PartType.RearWingGET: return(this.rearWingGETInventory); case CarPart.PartType.SuspensionGET: return(this.suspensionGETInventory); default: return((List <CarPart>)null); } }
public void GenerateDefaultParts(CarPart.PartType inPartType) { int teamEntryCount = this.championship.standings.teamEntryCount; for (int inIndex = 0; inIndex < teamEntryCount; ++inIndex) { this.ApplyDefaultPart(this.championship.standings.GetTeamEntry(inIndex).GetEntity <Team>(), inPartType); } }
public float GetHighestStatOfType(CarPart.PartType inType, CarPartStats.CarPartStat inStat) { CarPart partWithHighestStat = this.GetPartWithHighestStat(inType, inStat); if (partWithHighestStat == null) { return(0.0f); } return(partWithHighestStat.stats.statWithPerformance); }
private void UpdatePartsFittedToCarArray() { CarPart.PartType[] partType1 = CarPart.GetPartType(this.mCarManager.team.championship.series, false); this.mPartsFittedToCar = new CarPart[partType1.Length]; for (int index = 0; index < partType1.Length; ++index) { CarPart.PartType partType2 = partType1[index]; this.mPartsFittedToCar[index] = this.mCurrentPart[(int)partType2]; } }
public void DestroyParts(CarPart.PartType inType) { List <CarPart> partInventory = this.GetPartInventory(inType); for (int index = 0; index < partInventory.Count; ++index) { CarPart carPart = partInventory[index]; partInventory[index] = (CarPart)null; carPart.DestroyCarPart(); } partInventory.Clear(); }
public void ResetPartTypeStatsProgression(params CarPart.PartType[] inType) { for (int index1 = 0; index1 < inType.Length; ++index1) { CarPart.PartType index2 = inType[index1]; PartTypeSlotSettings typeSlotSettings = Game.instance.partSettingsManager.championshipPartSettings[this.championshipID][index2]; this.rules.PartStatSeasonMinValue[index2] = typeSlotSettings.baseMinStat; this.rules.PartStatSeasonMaxValue[index2] = typeSlotSettings.baseMaxStat; this.nextYearsRules.PartStatSeasonMinValue[index2] = typeSlotSettings.baseMinStat; this.nextYearsRules.PartStatSeasonMaxValue[index2] = typeSlotSettings.baseMaxStat; } }
public void ApplyDefaultPart(Team inTeam, CarPart.PartType inPartType) { CarManager carManager = inTeam.carManager; carManager.UnfitAllParts(carManager.GetCar(0)); carManager.UnfitAllParts(carManager.GetCar(1)); CarPartInventory partInventory = inTeam.carManager.partInventory; partInventory.DestroyParts(inPartType); partInventory.AddPart(this.GetDefaultPart(inPartType, inTeam)); partInventory.AddPart(this.GetDefaultPart(inPartType, inTeam)); carManager.AutoFit(carManager.GetCar(0), CarManager.AutofitOptions.Performance, CarManager.AutofitAvailabilityOption.UnfitedParts); carManager.AutoFit(carManager.GetCar(1), CarManager.AutofitOptions.Performance, CarManager.AutofitAvailabilityOption.UnfitedParts); }
public PoliticalImpactSpecPart(string inName, string inEffects) { if (inEffects.Contains("Remove")) { this.impactType = PoliticalImpactSpecPart.ImpactType.Remove; } else { this.impactType = PoliticalImpactSpecPart.ImpactType.Activate; } inEffects = inEffects.Replace("Remove", string.Empty); CarPart.PartType item = (CarPart.PartType)((int)Enum.Parse(typeof(CarPart.PartType), inEffects)); this.partTypes.Add(item); }
public CarPart GetHighestStatPartOfType(CarPart.PartType inType) { CarPart carPart = (CarPart)null; List <CarPart> partInventory = this.GetPartInventory(inType); for (int index = 0; index < partInventory.Count; ++index) { if (!partInventory[index].IsBanned && (carPart == null || (double)partInventory[index].stats.statWithPerformance > (double)carPart.stats.statWithPerformance)) { carPart = partInventory[index]; } } return(carPart); }
private CarPart GetDefaultPart(CarPart.PartType inType, Team inTeam) { CarPart partEntity = CarPart.CreatePartEntity(inType, this.championship); partEntity.stats.SetStat(CarPartStats.CarPartStat.MainStat, (float)(GameStatsConstants.specPartValues[this.championship.championshipID] + RandomUtility.GetRandom(0, 10))); partEntity.stats.SetStat(CarPartStats.CarPartStat.Reliability, 0.8f); partEntity.stats.partCondition.SetCondition(0.8f); partEntity.stats.partCondition.redZone = GameStatsConstants.initialRedZone; partEntity.stats.maxReliability = 1f; partEntity.stats.maxPerformance = 0.0f; partEntity.buildDate = Game.instance.time.now; partEntity.stats.level = 0; partEntity.PostStatsSetup(this.championship); return(partEntity); }
public List <CarPartComponent> GetComponentsOfLevel(CarPart.PartType inPartType, int inLevel, params CarPartComponent.ComponentType[] inComponentType) { List <CarPartComponent> carPartComponentList1 = new List <CarPartComponent>(); List <CarPartComponent.ComponentType> componentTypeList = new List <CarPartComponent.ComponentType>((IEnumerable <CarPartComponent.ComponentType>)inComponentType); carPartComponentList1.AddRange((IEnumerable <CarPartComponent>) this.components.Values); List <CarPartComponent> carPartComponentList2 = new List <CarPartComponent>(); for (int index = 0; index < carPartComponentList1.Count; ++index) { CarPartComponent carPartComponent = carPartComponentList1[index]; if (carPartComponent.level == inLevel && componentTypeList.Contains(carPartComponent.componentType) && carPartComponent.partsAvailableTo.Contains(inPartType)) { carPartComponentList2.Add(carPartComponent); } } return(carPartComponentList2); }
public List <CarPartComponent> GetAllComponents(CarPartComponent.ComponentType inComponentType, CarPart.PartType inPartType) { List <CarPartComponent> inList = new List <CarPartComponent>(); inList.AddRange((IEnumerable <CarPartComponent>) this.components.Values); return(CarPartComponentsManager.GetAllComponents(inList, inComponentType, inPartType)); }
public static CarPart CreatePartEntity(CarPart.PartType inType, Championship inChampionship) { CarPart carPart = (CarPart)null; switch (inType) { case CarPart.PartType.Brakes: carPart = (CarPart)Game.instance.entityManager.CreateEntity <BrakesPart>(); break; case CarPart.PartType.Engine: carPart = (CarPart)Game.instance.entityManager.CreateEntity <EnginePart>(); break; case CarPart.PartType.FrontWing: carPart = (CarPart)Game.instance.entityManager.CreateEntity <FrontWingPart>(); break; case CarPart.PartType.Gearbox: carPart = (CarPart)Game.instance.entityManager.CreateEntity <GearboxPart>(); break; case CarPart.PartType.RearWing: carPart = (CarPart)Game.instance.entityManager.CreateEntity <RearWingPart>(); break; case CarPart.PartType.Suspension: carPart = (CarPart)Game.instance.entityManager.CreateEntity <SuspensionPart>(); break; case CarPart.PartType.RearWingGT: carPart = (CarPart)Game.instance.entityManager.CreateEntity <RearWingGTPart>(); break; case CarPart.PartType.BrakesGT: carPart = (CarPart)Game.instance.entityManager.CreateEntity <BrakesGTPart>(); break; case CarPart.PartType.EngineGT: carPart = (CarPart)Game.instance.entityManager.CreateEntity <EngineGTPart>(); break; case CarPart.PartType.GearboxGT: carPart = (CarPart)Game.instance.entityManager.CreateEntity <GearBoxGTPart>(); break; case CarPart.PartType.SuspensionGT: carPart = (CarPart)Game.instance.entityManager.CreateEntity <SuspensionGTPart>(); break; case CarPart.PartType.BrakesGET: carPart = (CarPart)Game.instance.entityManager.CreateEntity <BrakesGETPart>(); break; case CarPart.PartType.EngineGET: carPart = (CarPart)Game.instance.entityManager.CreateEntity <EngineGETPart>(); break; case CarPart.PartType.FrontWingGET: carPart = (CarPart)Game.instance.entityManager.CreateEntity <FrontWingGETPart>(); break; case CarPart.PartType.GearboxGET: carPart = (CarPart)Game.instance.entityManager.CreateEntity <GearboxGETPart>(); break; case CarPart.PartType.RearWingGET: carPart = (CarPart)Game.instance.entityManager.CreateEntity <RearWingGETPart>(); break; case CarPart.PartType.SuspensionGET: carPart = (CarPart)Game.instance.entityManager.CreateEntity <SuspensionGETPart>(); break; } carPart.Setup(inChampionship); return(carPart); }
public static List <CarPartComponent> GetAllComponents(List <CarPartComponent> inList, CarPartComponent.ComponentType inComponentType, CarPart.PartType inPartType) { List <CarPartComponent> carPartComponentList = new List <CarPartComponent>(); for (int index = 0; index < inList.Count; ++index) { CarPartComponent carPartComponent = inList[index]; if (carPartComponent.componentType == inComponentType && carPartComponent.partsAvailableTo.Contains(inPartType)) { carPartComponentList.Add(carPartComponent); } } return(carPartComponentList); }