User Tools

Site Tools


gm_skills_image

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
gm_skills_image [2022/08/08 14:16] – [Variables] admingm_skills_image [2022/10/28 10:19] (current) – [Variables] admin
Line 1: Line 1:
 +======= Skills and Image Ratings =======
  
 +
 +The Game Mechanics section of the manual details the internal formula used in the game's calculations.  This section of the manual uses pseudo-code and may not be 100% the same as the code in the game. 
 +
 +The Game Mechanics part of the manual is mainly designed to be a reference for the frequently asked question, "Why do I get this rating when I do X, Y, Z?!" Usually, this answer involves many different variables, which this section of the manual demonstrates. 
 +
 +**The game mechanics section of the manual shows [[https://idioms.thefreedictionary.com/seeing+how+the+sausage+gets+made|how the sausage gets made]]. So you really may want to avoid this portion of the manual if you enjoy the game.** 
 +
 +
 +===== Variables =====
 +
 +
 +^ Name ^ Description ^ ^ Name ^ Description ^
 +| **IMAGE_WORK** | Workmanship Image Rating | | **IMAGE_RACING** | Racing Image Rating | 
 +| **IMAGE_QUALITY** | Quality Image Rating | | **IMAGE_GLOBAL_GENERAL** | Global Image Rating | 
 +| **SKILL_MARKETING** | Marketing Skills | | **DESIGN_ENGINE** | Engine Design Skills | 
 +| **DESIGN_CHASSIS** | Chassis Design Skills | | **DESIGN_TRANSMISSION** | Gearbox Design Skills | 
 +| **DESIGN_BODY** | Body Design Skills | | **DESIGN_LUX** | Luxury Design Skills | 
 +| **DESIGN_SAFETY** | Safety Design Skills | | **SKILL_MANUFACTORING** | Manufacturing Skills | 
 +| **SKILL_ADMIN** | Administration Skills | | **SKILL_DEALER** | Dealership Skills | 
 +| **researchChassisEffect** | Chassis Research Teams Effect | | **researchEngineEffect** | Engine Research Teams Effect | 
 +| **researchGearboxEffect** | Gearbox Research Teams Effect | | **researchVehicleEffect** | Vehicle Research Teams Effect | 
 +| **CarInfo.Rating_Overall** | Current Vehicle's Overall Rating | | **CarInfo.Rating_Luxury** | Current Vehicle's Luxury Rating | 
 +| **CarInfo.Rating_Safety** | Current Vehicle's Safety Rating | | **CarInfo.designreq** | Current Vehicle's Design Requirements Rating | 
 +| **CarInfo.Rating_Quality** | Current Vehicle's Quality Rating | | **CarInfo.Rating_Dependability** | Current Vehicle's Dependability Rating | 
 +| **CarInfo.manureq** | Current Vehicle's Manufacturing Requirement Rating | | **CarInfo.Vehicle_Image** | Current Vehicle's Vehicle Image Rating | 
 +| **CarInfo.Rating_Drivability** | Current Vehicle's Drivability Rating | | **CarInfo.Rating_Performance** | Current Vehicle's Performance Rating | 
 +| **ChassisInfo.Overall_Comfort** | Chassis Comfort Rating | | **ChassisInfo.Overall_Strength** | Chassis Strength Rating | 
 +| **ChassisInfo.Overall** | Chassis Overall Rating | | **ChassisInfo.Req_Design** | Chassis Design Requirement Rating | 
 +| **ChassisInfo.Req_Manu** | Chassis Manufacturing Requirement Rating | | **ChassisInfo.Overall_Dependabilty** | Chassis Dependability Rating | 
 +| **ChassisInfo.Overall_Performance** | Chassis Performance Rating | | **Engine.Power** | Engine Power Rating | 
 +| **Engine.FuelEconomy** | Engine Fuel Economy Rating | | **Engine.OverallRating** | Engine Overall Rating | 
 +| **Engine.DesighnRequirements** | Engine Design Requirement Rating | | **Engine.Reliability** | Engine Reliability Rating | 
 +| **Engine.ManufacturingRequirement** | Engine Manufacturing Requirement Rating | | **Gearbox.PowerRating** | Gearbox Power Rating | 
 +| **Gearbox.FuelRating** | Gearbox Fuel Economy Rating | | **Gearbox.OverallRating** | Gearbox Overall Rating | 
 +| **Gearbox.Design_Requirement** | Gearbox Design Requirements Rating | | **Gearbox.ReliabiltyRating** | Gearbox Reliability Rating | 
 +| **Gearbox.Manufacturing_Requirement** | Gearbox Manufacturing Requirements Rating | | **Gearbox.PerformanceRating** | Gearbox Performance Rating | 
 +| **Number Of Cars** | The total number of cars designed in the last 5 years | | **RacingHistory.PlayerWins** | All company's racing wins in a series. | 
 +| **Racing.Popularity** | The popularity of the racing series | | **Marketing_*Efficency** | Marketing efficiency value, where * is the type of marketing | 
 +| **RacingRnDFocus** | Racing focus set to development, divided by the number of races, divided by 6. | | **** | |  
 +
 +
 +
 +===== Value Assignments =====
 +
 +
 +<code cpp>
 +
 +current_ImgWork = IMAGE_WORK
 +current_ImgRace = IMAGE_RACING
 +current_ImgQual = IMAGE_QUALITY
 +current_ImgGlobal = IMAGE_GLOBAL_GENERAL
 +current_MarketingSkill = SKILL_MARKETING
 +
 +current_DesignEngineSkills = DESIGN_ENGINE
 +current_DesignChassisSkills = DESIGN_CHASSIS
 +current_DesignGearboxSkills = DESIGN_TRANSMISSION
 +current_DesignBodySkills = DESIGN_BODY
 +current_DesignLuxSkills = DESIGN_LUX
 +current_DesignSafeSkills = DESIGN_SAFETY
 +
 +manuSkill = SKILL_MANUFACTORING
 +adminSkill = SKILL_ADMIN
 +dealerSkill = SKILL_DEALER
 +
 +
 +effectCemps = researchChassisEffect
 +effectEemps = researchEngineEffect
 +effectGemps = researchGearboxEffect
 +effectVemps = researchVehicleEffect
 +
 +
 +
 +for( Cars Year > Current Year - 3 )
 +{
 +    Workmanship = Workmanship + (TOTAL(CarInfo.Rating_Overall+(CarInfo.Rating_Luxury*21)+
 +        CarInfo.Rating_Safety+(CarInfo.designreq*2) ) +
 +        (ChassisInfo.Overall_Comfort+ChassisInfo.Overall_Strength+ChassisInfo.Overall+(ChassisInfo.Req_Design*2) ))
 +        
 +    workmanship_Quality = workmanship_Quality + (TOTAL( (CarInfo.Rating_Quality*3) + 
 +    (CarInfo.Rating_Dependability*3) + CarInfo.manureq + CarInfo.Rating_Overall ) + 
 +    ( (ChassisInfo.Overall_Dependabilty*3) +ChassisInfo.Overall_Strength+ChassisInfo.Req_Manu+ChassisInfo.Overall))
 +    
 +    workmanship_Racing = workmanship_Racing + (TOTAL(CarInfo.Rating_Performance*3 + 
 +        CarInfo.Rating_Drivability*3 ) +  TOTAL(ChassisInfo.Overall_Performance))
 +        
 +    workGlobal = workGlobal + TOTAL(CarInfo.Rating_Overall*10)
 +    
 +    counts = Number Of Cars * 25 + 5
 +    
 +    counts_Quality =  Number Of Cars * 8 + 6
 +    
 +    counts_Racing = Number Of Cars * 8 + 3
 +    
 +    counts_Global = Number Of Cars * 10
 +
 +}
 +
 +
 +
 +for ( Every Engine Design Year > Current Year - 3  )
 +{
 +    Workmanship = Workmanship + (Engine.FuelEconomy+Engine.OverallRating+(Engine.DesighnRequirements*2) )
 +    
 +    workmanship_Quality = workmanship_Quality + ( (Engine.Reliability*5) + Engine.OverallRating + Engine.ManufacturingRequirement )
 +    
 +    workmanship_Racing = workmanship_Racing + Engine.Power*5
 +    
 +    counts = counts + 4
 +    
 +    counts_Quality = counts_Quality + 7
 +    
 +    counts_Racing = counts_Racing + 6
 +
 +}
 +
 +                    
 + 
 +      
 +
 +for ( Every Gearbox Design Year > Current Year - 3  )
 +{
 +    Workmanship = Workmanship + Gearbox.FuelRating+Gearbox.OverallRating+(Gearbox.Design_Requirement*2) ) 
 +    
 +    workmanship_Quality = workmanship_Quality + ( (Gearbox.ReliabiltyRating*5) +Gearbox.OverallRating+Gearbox.Manufacturing_Requirement )
 +    
 +    workmanship_Racing = (Gearbox.PerformanceRating*2+Gearbox.PowerRating*2)
 +    
 +    counts = counts + 4
 +    
 +    counts_Quality = counts_Quality + 7
 +    
 +    counts_Racing = counts_Racing + 5
 +
 +}
 +
 +
 +
 +
 +
 +//Race Results
 +for(Racing results over the last 6 years, using this trim or an car or engine from this trim)
 +{
 +    workmanship_Racing =  workmanship_Racing + TOTAL(RacingHistory.PlayerWins*Racing.Popularity)*0.3
 +}
 +
 +
 +
 +
 +for each racing championship over the last 6 years, using this trim or an car or engine from this trim
 +{
 +    workmanship_Racing = workmanship_Racing + 20;        
 +}
 +
 +
 +
 +marketing_Effecents =  Average((Marketing_NewspaperEfficency + Marketing_BillboardsEfficency + 
 +    Marketing_MagsEfficency + Marketing_SportsEfficency + 
 +    Marketing_EventsEfficency + Marketing_RadioEfficency + 
 +    Marketing_TVEfficency + Marketing_InternetEfficency + Marketing_MiscEfficency)/6.0) * 100
 +
 +
 +</code>
 +
 +
 +===== Images =====
 +
 +
 +==== Workmanship ====
 +
 +<code cpp>
 +if(counts>0)
 +{
 +        workmanship_image = Workmanship/counts;
 +
 +        if(workmanship_image > 110)
 +            workmanship_image = 110;
 +
 +        if(workmanship_image > (current_Workmanship_Image+0.5) )
 +        {
 +            newImg = current_Workmanship_Image + 0.25 + (marketing_Effecents/3000.0) + ((workmanship_image-current_Workmanship_Image)/250.0)
 +            
 +            if(newImg > 100)
 +            {
 +                newImg = 100
 +            }
 +
 +           IMAGE_WORK = NewImg
 +
 +        }
 +        else if(workmanship_image<current_Workmanship_Image)
 +        {
 +            newImg = current_Workmanship_Image -0.4+(marketing_Effecents/3000.0);
 +            
 +            if(newImg < 1)
 +            {
 +                newImg = 1;
 +            }
 +
 +           IMAGE_WORK = NewImg
 +           
 +        }
 +
 +}
 +
 +
 +</code>
 +==== Quality ====
 +
 +<code cpp>
 +
 +if(counts>0)
 +{
 +        adjust_image = workmanship_Quality/counts_Quality;
 +
 +        if(adjust_image > 110)
 +            adjust_image = 110;
 +
 +        if(adjust_image > (current_ImgQual+0.5) )
 +        {
 +            newImg = current_ImgQual + 0.25 + (marketing_Effecents/3000.0) + ((adjust_image-current_ImgQual)/250.0);
 +            
 +            if(newImg > 100)
 +            {
 +                newImg = 100;
 +            }
 +
 +           IMAGE_QUALITY = NewImg
 +
 +        }
 +        else if(adjust_image<current_ImgQual)
 +        {
 +            newImg = current_ImgQual -0.4+(marketing_Effecents/3000.0);
 +            
 +            if(newImg < 1)
 +            {
 +                newImg = 1;
 +            }
 +
 +            IMAGE_QUALITY = NewImg
 +           
 +        }
 +
 +}
 +</code>
 +==== Racing ====
 +
 +<code cpp>
 + //Racing
 +if(Doing Racing)
 +{
 +        adjust_image = workmanship_Racing/counts_Racing;
 +
 +
 +        if(adjust_image > 100)
 +        {
 +            adjust_image = 100;
 +        }
 +
 +        if(current_ImgRace <= 0)
 +            current_ImgRace = 1;
 +
 +
 +
 +        if(adjust_image > current_ImgRace)
 +        {
 +            newImg = current_ImgRace + 0.25 + (marketing_Effecents/3000.0) + ((adjust_image-current_ImgRace)/250.0);
 +
 +            if(newImg > 100)
 +            {
 +                newImg = 100;
 +            }
 +
 +            IMAGE_RACING = newImg
 +
 +        }
 +        else if(adjust_image<=current_ImgRace)
 +        {
 +            newImg = current_ImgRace -0.4+(marketing_Effecents/3000.0);
 +            if(newImg < 1)
 +            {
 +                newImg = 1;
 +            }
 +
 +             IMAGE_RACING = newImg
 +
 +        }
 +
 +}
 +</code>
 +==== Global ====
 +
 +
 +<code cpp>
 +Global_Total_Img = Global_Total_Img + ((current_ImgWork + current_ImgRace + current_ImgQual)*10);
 +counts_Global += 30;
 +
 +//Global
 +if(counts_Global>0)
 +{
 +
 +
 +        adjust_image = Global_Total_Img/counts_Global;
 +
 +            if(adjust_image > 100)
 +            {
 +                adjust_image = 100;
 +            }
 +
 +
 +
 +        if(adjust_image>current_ImgGlobal+0.5)
 +        {
 +            newImg = current_ImgGlobal + 0.25 + (marketing_Effecents/3000.0) + ((adjust_image-current_ImgGlobal)/250.0);
 +            if(newImg > 100)
 +            {
 +                newImg = 100;
 +            }
 +
 +            IMAGE_GLOBAL_GENERAL = newImg
 +
 +        }
 +        else if(adjust_image<current_ImgGlobal)
 +        {
 +            newImg = current_ImgGlobal-0.4+(marketing_Effecents/3000.0) ;
 +            if(newImg < 1)
 +            {
 +                newImg = 1;
 +            }
 +
 +            IMAGE_GLOBAL_GENERAL = newImg
 +
 +        }
 +
 +}
 +</code>
 +===== Skills =====
 +
 +
 +==== Marketing ====
 +
 +
 +<code cpp>
 +
 +if(marketing_Effecents > current_MarketingSkill * 0.6)
 +{
 +    current_MarketingSkill = current_MarketingSkill + 0.5 + ((marketing_Effecents-current_MarketingSkill)/10.0);
 +
 +}
 +else if(marketing_Effecents < current_MarketingSkill * 0.6)
 +{
 +    current_MarketingSkill = current_MarketingSkill - 0.1;
 +
 +}
 +
 +if(current_MarketingSkill>100)
 +{
 +    current_MarketingSkill = 100;
 +}
 +else if(current_MarketingSkill < 0)
 +{
 +    current_MarketingSkill = 0.1;
 +}
 +
 +
 +SKILL_MARKETING = current_MarketingSkill
 +
 +</code>
 +
 +
 +==== Manufacturing ====
 +
 +
 +<code cpp>
 +
 +Adjusted_Manufacturing = TOTAL( (1.35-Speed) * (Moral/100.0) * (Lines/1.35) ) From Non-Contract Lines
 +
 +
 +if(Adjusted_Manufacturing > (manuSkill*1.02))
 +{
 +    manuSkill = manuSkill+0.25+ ((Adjusted_Manufacturing-manuSkill)/250.0);
 +    
 +    if(manuSkill>100)
 +    {
 +        manuSkill = 100;
 +    }
 +    
 +    SKILL_MANUFACTORING=manuSkill
 +
 +
 +}
 +else if(Adjusted_Manufacturing < (manuSkill*0.98))
 +{
 +    manuSkill = manuSkill-0.25;
 +    
 +    if(manuSkill < 0)
 +    {
 +        manuSkill = 0.1;
 +    }
 +    
 +    SKILL_MANUFACTORING=manuSkill
 +}
 +
 +</code>
 +
 +
 +==== RnD ====
 +
 +<code cpp>
 +Researching_Average = (effectCemps+effectEemps+effectGemps+effectVemps)/4.0;
 +
 +    
 +RnDCounter =Number of designs started within in the last 2 years.
 +    
 +if(RnDCounter == 0)
 +{
 +        rndSkillChange = -0.08 + (Researching_Average/12.0);
 +}
 +else
 +{
 +        rndSkillChange = (RnDCounter) * 0.02 + (Researching_Average/12.0);
 +}
 +
 +
 +
 +SET SKILL_RND = SKILL_RND + rndSkillChange
 +
 +</code>
 +
 +
 +==== Administrative ====
 +
 +<code cpp>
 +
 +For All Branches
 +{
 +    dealerFocus = TOTAL(Dealer_Resources)
 +    branchNumber =  COUNT(Branch_ID
 +    branchMorale = AVG(Employee_Moral) 
 +}
 +
 +
 +
 +if((branchNumber/(numOfCities/1.5)) * 100 < (adminSkill * 0.9))
 +{
 +   SET SKILL_ADMIN = SKILL_ADMIN - 0.5
 +}
 +else if((branchNumber/(numOfCities/1.5)) * 100  > (adminSkill * 1.1) && branchMorale >= 98)
 +{
 +   SET SKILL_ADMIN = SKILL_ADMIN + 0.7 
 +}
 +
 +</code>
 +
 +
 +==== Dealer ====
 +
 +<code cpp>
 +
 +For All Branches
 +{
 +    dealerFocus = TOTAL(Dealer_Resources)
 +    branchNumber =  COUNT(Branch_ID
 +    branchMorale = AVG(Employee_Moral) 
 +}
 +
 +
 +if(branchNumber != 0)
 +    dealerFocus = (dealerFocus*100)/(branchNumber);
 +
 +
 +if(dealerFocus < (dealerSkill * 0.95))
 +{
 +    SET SKILL_DEALER= SKILL_DEALER - 0.3 
 +}
 +else if(dealerFocus > (dealerSkill))
 +{
 +    SET SKILL_DEALER= SKILL_DEALER + 0.5 
 +}
 +</code>
 +
 +
 +===== Design Skills =====
 +
 +
 +
 +
 +==== Engine ====
 +
 +<code cpp>
 +
 +Self designed engines over the last 5 years.
 +{
 +    overallDesignRating = Average(Engine.OverallRating);
 +}
 +
 +
 +oldDesignSkill = current_DesignEngineSkills;
 +
 +
 +
 +if(overallDesignRating > (current_DesignEngineSkills*1.02) AND current_DesignEngineSkills < 95.5)
 +{
 +    current_DesignEngineSkills = current_DesignEngineSkills + RacingRnDFocus;
 +    
 +    current_DesignEngineSkills = current_DesignEngineSkills + 0.25 +(0.65*effectEemps);
 +    
 +    SET DESIGN_ENGINE = current_DesignEngineSkills
 +
 +}
 +else if(overallDesignRating<1)
 +{
 +    current_DesignEngineSkills = current_DesignEngineSkills + RacingRnDFocus;
 +    
 +    current_DesignEngineSkills = current_DesignEngineSkills - 0.1 + (0.4*effectEemps);
 +    
 +    if(current_DesignEngineSkills < 0.1)
 +        current_DesignEngineSkills = 0.1;
 +    
 +    SET DESIGN_ENGINE = current_DesignEngineSkills
 +
 +}
 +else if(current_DesignEngineSkills < 101 && current_DesignEngineSkills > 1)
 +{
 +    current_DesignEngineSkills = current_DesignEngineSkills + RacingRnDFocus;
 +    
 +    current_DesignEngineSkills = current_DesignEngineSkills - 0.25 +(0.85*effectEemps);
 +    
 +    if(current_DesignEngineSkills < 0.1)
 +        current_DesignEngineSkills = 0.1;
 +    else if(current_DesignEngineSkills > 99.99)
 +        current_DesignEngineSkills = 99.99;
 +
 +    SET DESIGN_ENGINE = current_DesignEngineSkills
 +}
 +
 +</code>
 +
 +==== Chassis ====
 +
 +<code cpp>
 +
 +
 +Self designed chassis over the last 5 years.
 +{
 +    overallDesignRating = Average(Chassis.OverallRating);
 +}
 +
 +
 +oldDesignSkill = current_DesignChassisSkills;
 +
 +
 +if(overallDesignRating > (current_DesignChassisSkills*1.02) && current_DesignChassisSkills < 95.5)
 +{
 +    current_DesignChassisSkills = current_DesignChassisSkills + RacingRnDFocus;
 +    
 +    current_DesignChassisSkills = current_DesignChassisSkills + 0.25+(0.65*effectCemps);
 +    
 +    SET DESIGN_CHASSIS = current_DesignChassisSkills
 +
 +}
 +else if(overallDesignRating<1)
 +{
 +    current_DesignChassisSkills = current_DesignChassisSkills + RacingRnDFocus;
 +    
 +    current_DesignChassisSkills = current_DesignChassisSkills - 0.1 + (0.4*effectCemps);
 +    
 +    SET DESIGN_CHASSIS = current_DesignChassisSkills
 +}
 +else if(current_DesignChassisSkills < 101  && current_DesignChassisSkills > 1)
 +{
 +    current_DesignChassisSkills = current_DesignChassisSkills + RacingRnDFocus;
 +    
 +    current_DesignChassisSkills = current_DesignChassisSkills - 0.25+(0.85*effectCemps);
 +    
 +    if(current_DesignChassisSkills > 99.99)
 +        current_DesignChassisSkills = 99.99;
 +
 +    SET DESIGN_CHASSIS = current_DesignChassisSkills
 +
 +}
 +
 +</code>
 +
 +==== Gearbox ====
 +
 +<code cpp>
 +
 +Self designed gearboxes over the last 5 years.
 +{
 +    overallDesignRating = Average(Gearbox.OverallRating);
 +}
 +pStmt->FreeQuery();
 +
 +oldDesignSkill = current_DesignGearboxSkills;
 +
 +
 +if(overallDesignRating > (current_DesignGearboxSkills*1.02) && current_DesignGearboxSkills < 95.5)
 +{
 +   current_DesignGearboxSkills = current_DesignGearboxSkills + RacingRnDFocus;
 +   
 +   current_DesignGearboxSkills = current_DesignGearboxSkills + 0.25 +(0.65*effectGemps);
 +   
 +   SET DESIGN_TRANSMISSION = (current_DesignGearboxSkills)
 +
 +}
 +else if(overallDesignRating<1)
 +{
 +    current_DesignGearboxSkills = current_DesignGearboxSkills + RacingRnDFocus;
 +    
 +    current_DesignGearboxSkills = current_DesignGearboxSkills - 0.1 + (0.4*effectGemps);
 +    
 +    SET DESIGN_TRANSMISSION = (current_DesignGearboxSkills)
 +}
 +else if(current_DesignGearboxSkills < 101 && current_DesignGearboxSkills > 1)
 +{
 +    current_DesignGearboxSkills = current_DesignGearboxSkills + RacingRnDFocus;
 +    
 +    current_DesignGearboxSkills = current_DesignGearboxSkills - 0.25+(0.85*effectGemps);
 +
 +    if(current_DesignGearboxSkills > 99.99)
 +        current_DesignGearboxSkills = 99.99;
 +
 +   SET DESIGN_TRANSMISSION = (current_DesignGearboxSkills)
 +}
 +
 +
 +
 +</code>
 +
 +===== Vehicle Design Skills =====
 +
 +==== Body ====
 +
 +<code cpp>
 +
 +
 +For Every Vehicle Self Designed For This Marque In The Last 5 Years
 +{
 +    overallDesignRating = AVERAGE Rating_Overall
 +    
 +    if(overallDesignRating > (current_DesignBodySkills*1.02) AND current_DesignBodySkills < 95.5)
 +    {
 +       current_DesignBodySkills = current_DesignBodySkills + 0.25+(0.65*effectVemps);
 +        
 +       SET DESIGN_BODY = current_DesignBodySkills
 +    }
 +    else if(overallDesignRating == 0)
 +    {
 +        current_DesignBodySkills = current_DesignBodySkills - 0.1 + (0.4*effectVemps);
 +        
 +        SET DESIGN_BODY = current_DesignBodySkills
 +    }
 +    else if(current_DesignBodySkills < 101  AND current_DesignBodySkills > 1)
 +    {
 +        current_DesignBodySkills = current_DesignBodySkills - 0.25+(0.85*effectVemps);
 +        
 +        if(current_DesignBodySkills > 99.99)
 +            current_DesignBodySkills = 99.99;
 +
 +        SET DESIGN_BODY = current_DesignBodySkills
 +    }
 +    
 +}
 +
 +</code>
 +
 +
 +==== Luxury ====
 +
 +<code cpp>
 +For Every Vehicle Self Designed For This Marque In The Last 5 Years
 +{
 +    overallDesignRating = AVERAEG Rating_Luxury
 +    
 +    if(overallDesignRating > (current_DesignLuxSkills*1.02)  AND current_DesignLuxSkills < 95.5)
 +    {
 +        current_DesignLuxSkills = current_DesignLuxSkills + 0.25 +(0.65*effectVemps);
 +        
 +        DESIGN_LUX = current_DesignLuxSkills
 +    }
 +    else if(overallDesignRating==0)
 +    {
 +        current_DesignLuxSkills = current_DesignLuxSkills - 0.1 + (0.4*effectVemps);
 +        
 +        DESIGN_LUX = current_DesignLuxSkills
 +    }
 +    else if(current_DesignLuxSkills<101  AND current_DesignLuxSkills > 1)
 +    {
 +        current_DesignLuxSkills = current_DesignLuxSkills - 0.25 +(0.85*effectVemps);
 +        
 +        if(current_DesignLuxSkills > 99.99)
 +            current_DesignLuxSkills = 99.99;
 +        
 +        DESIGN_LUX = current_DesignLuxSkills
 +    }
 +    
 +}
 +</code>
 +
 +
 +
 +==== Safety ====
 +
 +<code cpp>
 +For Every Vehicle Self Designed For This Marque In The Last 5 Years
 +{
 +    overallDesignRating = AVGERAGE Rating_Safety
 +    
 +    if(overallDesignRating > (current_DesignSafeSkills*1.02)  AND current_DesignSafeSkills < 95.5)
 +    {
 +        current_DesignSafeSkills = current_DesignSafeSkills + 0.25 +(0.65*effectVemps);
 +        
 +        DESIGN_SAFETY = current_DesignSafeSkills
 +    }
 +    else if(overallDesignRating==0)
 +    {
 +        current_DesignSafeSkills = current_DesignSafeSkills - 0.1 + (0.4*effectVemps);
 +        
 +        DESIGN_SAFETY = current_DesignSafeSkills
 +    }
 +    else if(current_DesignSafeSkills<101  AND current_DesignSafeSkills > 1)
 +    {
 +        current_DesignSafeSkills = current_DesignSafeSkills - 0.25 +(0.85*effectVemps);
 +        
 +        if(current_DesignSafeSkills > 99.99)
 +            current_DesignSafeSkills = 99.99;
 +        
 +        DESIGN_SAFETY = current_DesignSafeSkills
 +    }
 +}
 +</code>
 +
 +
 +===== Vehicle Image =====
 +
 +
 +==== Vehicle Image ====
 +
 +<code cpp>
 +
 +newVehicleImg = 0;
 +movementAmount = 0;
 +
 +
 +marketingEffect = AVERAGE (Marketing_NewspaperEfficency + Marketing_BillboardsEfficency + 
 +                    Marketing_MagsEfficency + Marketing_SportsEfficency + Marketing_EventsEfficency +
 +                    Marketing_RadioEfficency + Marketing_TVEfficency + Marketing_InternetEfficency + Marketing_MiscEfficency)
 +
 +
 +
 +
 +
 +For Every Active Vehicle:
 +{
 +    currentVehicleIMG = CarInfo.Vehicle_Image
 +
 +
 +    if( (CarInfo.CarTypeRating+ CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2) / 6.0 > currentVehicleIMG*1.2)
 +    {
 +        newVehicleImg = currentVehicleIMG + (0.25 + ((CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2)/2000.0) +
 +            (((current_ImgGlobal*2) + current_ImgQual  + current_ImgWork + marketingEffect+  (current_ImgRace/2.0))/2200.0)); //.35 to  .6 Max
 +    }
 +    else if((CarInfo.CarTypeRating+CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2) / 6.0< currentVehicleIMG * 0.85)
 +    {
 +        newVehicleImg = currentVehicleIMG + (-0.50  + ((CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2)/2000.0)+
 +            (((current_ImgGlobal*2) + current_ImgQual  + current_ImgWork + marketingEffect +  (current_ImgRace/2.0))/2200.0)); //-.4 to -.15
 +    }
 +    else
 +    {
 +        newVehicleImg = currentVehicleIMG + (-0.25  + ((CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2)/5000.0) +
 +            (((current_ImgGlobal*2) + current_ImgQual  + current_ImgWork + marketingEffect +  (current_ImgRace/2.0))/1100.0)); //-.20 to .30
 +    }
 +
 +    movementAmount = (newVehicleImg-currentVehicleIMG)/4.0;
 +
 +    newVehicleImg = (Random Number Between (0 and movementAmount)) + currentVehicleIMG;
 +
 +    if(newVehicleImg <=1)
 +    {
 +        newVehicleImg = 1;
 +    }
 +    else if(newVehicleImg >= 100)
 +    {
 +        newVehicleImg = 100;
 +    }
 +
 +    if(currentVehicleIMG DOES NOT EQUAL newVehicleImg)
 +    {
 +        VehicleImg = newVehicleImg
 +    }
 +
 +}
 +
 +</code>