======= レースゲームメカニクス =======
マニュアルのゲームメカニクスセクションは、ゲームの計算で使用される内部式の詳細を説明します。マニュアルのこのセクションは疑似コードを使用しており、ゲーム内のコードと100%同じとは限りません。
マニュアルのゲームメカニクスパートは、主に "なぜX、Y、Zをするとこの評価になるのか?"というよくある質問に対するリファレンスとして設計されています。通常、この答えには多くの異なる変数が含まれており、マニュアルのこのセクションではそれを実証しています。
**マニュアルのゲームメカニクスセクションは、[[https://idioms.thefreedictionary.com/seeing+how+the+sausage+gets+made|ソーセージがどのように作られるか]]を示しています。ですから、ゲームを楽しむなら、このマニュアルの部分は避けた方がいいかもしれません。**
====== 変数 ======
^ 名称 ^ 説明 ^ ^ 名称 ^ 説明 ^
| **EngineeringEmployees** | 保有するエンジニアの数です | | **MaxEngineeringEmployees** | 必要なエンジニアの数です |
| **Morale** | エンジニアの士気です | | **RacingSeries_EndTurn** | シリーズシーズン最終ターンです |
| **RacingSeries_StartTurn** | シリーズシーズン最初のターンです | | **RacingSeries_races** | シーズン中のレース数です |
| **RacingSeries_FundingMod** | このシリーズの運営コストがどの程度になるかの修正変数です | | **NumberOfTeamsInSeries** | シリーズでレースをしているチームの数です |
| **orgRacesMonth** | 1ヶ月あたりのレース数です | | **RacingTeam_Funding** | レースチームの予算です |
| **RacingTeam_Driver_Quality** | レースチームのドライバー質スライダー | | **RacingTeam_Team_Quality** | レースチームのチームの質スライダー |
| **RacingTeam_TeamGrowthFocus** | レースチームの成長フォーカススライダー | | **RacingTeam_TeamSizeFocus** | レースチームのサイズフォーカススライダー |
| **RacingTeam_winFocus** | レースチームの勝利フォーカススライダー | | **RacingTeam_victories** | レーシングチームの当月の勝利数です |
| **RacingTeam_Car_Spec_AccellerationSix** | 車両の0-60mph加速秒です | | **RacingTeam_Car_Spec_Weight** | 車両の重量(Kg)です |
| **RacingTeam_Car_Spec_HP** | 車両の馬力です | | **RacingTeam_Car_Rating_Drivability** | 車両の運転性評価です |
| **RacingTeam_Car_Rating_Performance** | 車両のパフォーマンス評価です | | **RacingTeam_Car_Spec_TopSpeed** | 車両の最高速度(MPH)です |
| **RacingTeam_Car_Rating_Fuel** | 車両の燃費評価です | | **RacingTeam_Engine_HP** | エンジンの馬力です |
| **RacingTeam_Engine_Weight** | エンジンの重量(Kg)です | | **RacingTeam_Engine_Dependability** | エンジンのディペンダビリティ評価です |
| **RacingTeam_Engine_FuelConsumption** | エンジンの燃費(MPG)です | | **ex_1d02p_year99** | 1.02%%^%%(year-1899) |
| **ex_1d03p_year99** | 1.03%%^%%(year-1899) | | **ex_1d06p_year99** | 1.06%%^%%(year-1899) |
====== レース契約 ======
次をご覧ください: [[gamemanual:gm_contracts#generate_racing_contracts|レース契約]].
====== レース結果 ======
===== レーススコア =====
EngineeringEmployeeMod = 0.5+0.5*((EngineeringEmployees/MaxEngineeringEmployees) * (Morale/100))
For Each Series:
{
lengthOfSeries = RacingSeries_EndTurn - RacingSeries_StartTurn
if(Turn = RacingSeries_EndTurn)
{
RacesPerMonth = RacingSeries_races%lengthOfSeries
}
else
{
if(lengthOfSeries != 0)
RacesPerMonth = RacingSeries_races / lengthOfSeries
else
RacesPerMonth = 1
}
minBudget = (5000*ex_1d03p_year99)+(15000*RacingSeries_FundingMod*ex_1d06p_year99)
maxBudget = (25000*ex_1d03p_year99)+(75000*RacingSeries_FundingMod*ex_1d06p_year99) + minBudget
For Each Team in Series:
{
Team_Funding = ((RacingTeam_Funding)/(maxBudget))*2
RacingTeam_RaceValue = (20+Random Number Between ( 0 AND 5)) *
(Team_Funding-((RacingTeam_Driver_Quality*2 + RacingTeam_Team_Quality +
RacingTeam_TeamGrowthFocus + RacingTeam_TeamSizeFocus*1.5)/5.75)) * EngineeringEmployeeMod
if(RacingTeam_Car_Spec_AccellerationSix == -1 || RacingTeam_Car_Spec_AccellerationSix > 26)
RacingTeam_Car_Spec_AccellerationSix = 26
if Supplying Vehicles
{
if(RacingTeam_Car_Spec_Weight != 0)
hpWeightRatio = (RacingTeam_Car_Spec_HP)/(RacingTeam_Car_Spec_Weight)
else
hpWeightRatio = 0
if(hpWeightRatio > 2)
hpWeightRatio = 2
hpBonus = (RacingTeam_Car_Spec_HP^1.15) /(10.0 * ex_1d02p_year99)
RacingTeam_RaceValue = RacingTeam_RaceValue + (hpBonus*3.5) +
(hpWeightRatio*10 + ((25-RacingTeam_Car_Spec_AccellerationSix)/25.0)*30 +
((RacingTeam_Car_Rating_Drivability) / 100.0)*36 +
12*((RacingTeam_Car_Rating_Performance) / 100.0) +
30*((RacingTeam_Car_Spec_TopSpeed)/250.0) +
(3 * (RacingTeam_Car_Rating_Fuel/100.0)) )
}
else if Supplying Engines
{
hpWeightRatio = ((RacingTeam_Engine_HP) / (RacingTeam_Engine_Weight))
if(hpWeightRatio > 10)
hpWeightRatio = 10
hpBonus = (RacingTeam_Engine_HP) / (8.0 * ex_1d02p_year99)
RacingTeam_RaceValue = RacingTeam_RaceValue + hpBonus*3.5 + ( hpWeightRatio*5 +
((RacingTeam_Engine_Dependability) / 100.0)*(3 * ex_1d02p_year99) +
((RacingTeam_Engine_FuelConsumption/30.0)*2))
}
else Supplying Funding
{
RacingTeam_RaceValue = RacingTeam_RaceValue + Random Number Between ( 0 AND 10) +
4.5 * (RacingTeam_TeamGrowthFocus - RacingTeam_TeamSizeFocus) + 15 *
(Team_Funding*2-RacingTeam_Driver_Quality + RacingTeam_Team_Quality)
}
RacingTeam_RaceValue = RacingTeam_RaceValue + ((10+Random Number Between ( 0 AND 10)) *
((RacingTeam_Driver_Quality*3.5 + RacingTeam_Team_Quality +
RacingTeam_TeamGrowthFocus + RacingTeam_TeamSizeFocus*1.5)/5.0) *
(Team_Funding/1.75))*EngineeringEmployeeMod
RacingTeam_RaceValue = RacingTeam_RaceValue +(40 * RacingTeam_teamXP) +
(3 * RacingTeam_teamSize) + (10*RacingTeam_winFocus)*EngineeringEmployeeMod
Total_RaceSeries_RacingValues = Total_RaceSeries_RacingValues + RacingTeam_RaceValue
}
}
===== レースの勝者 =====
firstVal = 0
secondVal = 0
thirdVal = 0
forthVal = 0
fifthVal = 0
For Each Team in Series
{
For Each Team In Series
{
if(firstVal < RacingTeam_RaceValue)
{
victorID = RacingTeam_CompanyID
firstVal = RacingTeam_RaceValue
}
else if(secondVal < RacingTeam_RaceValue)
{
secondID= RacingTeam_CompanyID
secondVal = RacingTeam_RaceValue
}
else if(thirdVal < RacingTeam_RaceValue)
{
thirdID= RacingTeam_CompanyID
thirdVal = RacingTeam_RaceValue
}
else if(forthVal < RacingTeam_RaceValue)
{
forthID= RacingTeam_CompanyID
forthVal = RacingTeam_RaceValue
}
else if(fifthVal < RacingTeam_RaceValue)
{
fifthID= RacingTeam_CompanyID
fifthVal = RacingTeam_RaceValue
}
}
firstWins = ((firstVal/winsVal) * RacesPerMonth)
RacesPerMonth = RacesPerMonth - firstWins
secondWins = ((secondVal/winsVal) * RacesPerMonth)
RacesPerMonth = RacesPerMonth - secondWins
thirdWins = ((thirdVal/winsVal) * RacesPerMonth)
RacesPerMonth = RacesPerMonth - thirdWins
forthWins = ((forthVal/winsVal) * RacesPerMonth)
RacesPerMonth = RacesPerMonth - forthWins
fifthWins = ((fifthVal/winsVal) * RacesPerMonth)
RacesPerMonth = RacesPerMonth - fifthWins
if(RacesPerMonth > 0)
{
firstWins = firstWins + (RacesPerMonth/2)
RacesPerMonth = RacesPerMonth - (RacesPerMonth/2)
secondWins = secondWins + (RacesPerMonth/2)
RacesPerMonth = RacesPerMonth - (RacesPerMonth/2)
firstWins = firstWins + RacesPerMonth
RacesPerMonth = 0
}
}
===== レースポイント =====
For Each Team In Series:
RacingTeam_Points = (RacingTeam_victories * 6 *
(NumberOfTeamsInSeries)) + (orgRacesMonth - RacingTeam_victories) *
((NumberOfTeamsInSeries * 10) * (RacingTeam_RaceValue/Total_RaceSeries_RacingValues))
===== チームXP =====
TeamXP = TeamXP + (((0.75 - RacingTeam_Driver_Quality) + (0.75-RacingTeam_Team_Quality)+
(RacingTeam_TeamGrowthFocus-0.5)+(0.5-RacingTeam_TeamSizeFocus)+
(1-RacingTeam_winFocus))/300.0)