Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
        }
    }
Esempio n. 3
0
    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;
        }
    }
Esempio n. 4
0
    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);
        }
    }
Esempio n. 5
0
    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);
        }
    }
Esempio n. 6
0
    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);
    }
Esempio n. 7
0
 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];
     }
 }
Esempio n. 8
0
    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();
    }
Esempio n. 9
0
 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;
     }
 }
Esempio n. 10
0
    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);
    }
Esempio n. 11
0
 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);
 }
Esempio n. 12
0
    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);
    }
Esempio n. 13
0
    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));
    }
Esempio n. 16
0
    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);
    }