japanesemanual:ja_gm_unions
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
japanesemanual:ja_gm_unions [2023/04/22 08:19] – nichirinmotor | japanesemanual:ja_gm_unions [2023/04/28 10:23] (current) – nichirinmotor | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======= 組合とストライキのゲームメカニズム ======= | ||
+ | |||
+ | 組合とストライキのゲームメカニズム | ||
+ | マニュアルのゲームメカニクスセクションは、ゲームの計算で使用される内部式の詳細を説明します。マニュアルのこのセクションは疑似コードを使用しており、ゲーム内のコードと100%同じとは限りません。 | ||
+ | |||
+ | マニュアルのゲームメカニクスパートは、主に " | ||
+ | |||
+ | **マニュアルのゲームメカニクスセクションは、[[https:// | ||
+ | |||
+ | |||
+ | ====== 変数 ====== | ||
+ | |||
+ | |||
+ | ^ 名称 ^ 説明 ^ ^ 名称 ^ 説明 ^ | ||
+ | | **factoryWageDifficultyAddition** | この変数は、工場の従業員が要求する賃金を調整するものです。 | ||
+ | | **Factory_Wage** | 工場の従業員に支払っている金額です | ||
+ | | **Engineering_Wage** | エンジニアに支払っている金額です | ||
+ | | **Admin_Wage** | 管理の従業員に支払っている金額です | | **total_furloughed** | これは、仕事から外した従業員の数です。通常、工場のラインを調整するときに発生します。一時解雇した従業員の中には、自分から辞めていく人もいます。残りの従業員は、6ヵ月後、再び必要にならない限り、自動的に解雇されます。 | ||
+ | | **total_employees** | これは、あなたが擁している従業員の総数です | ||
+ | | **Department_Defined_Benefits** | 選択した部門の現在の年金スライダーの位置です | ||
+ | | **Employee_Moral** | これは従業員の士気です。 | ||
+ | | **valueBP** | 直接給付スライダーの現在値です | ||
+ | | **Last_5_Years_Income** | 過去5年間の総収益です | ||
+ | | **AdministrationSkill** | 管理スキルです | ||
+ | | **DBWant** | これは、組合が望む年金のスライダーの位置です。 | ||
+ | | **DCSlider** | これが現在の直接給付のスライダーの位置です | ||
+ | | **CurrentWages** | これは、部門の現在の賃金です。 | ||
+ | |||
+ | |||
+ | ====== 従業員の士気 ====== | ||
+ | |||
+ | ===== 賃金から ===== | ||
+ | |||
+ | ==== 工場 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | if( Factory_Wage < City_Average_Wage * (0.5211 + factoryWageDifficultyAddition) ) | ||
+ | Morale = Morale - (5 * (1-(Factory_Wage/ | ||
+ | else | ||
+ | Morale = Morale + (3 * (1-(1+((City_Average_Wage * (0.5211 + factoryWageDifficultyAddition ))/ | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ==== 支店 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | if( Branch_Wage < City_Average_Wage * 1.25 ) | ||
+ | Morale = Morale - (5 * (1-(Branch_Wage/ | ||
+ | else | ||
+ | Morale = Morale + (3 * (1-(1+((City_Average_Wage * 1.25 )/ | ||
+ | </ | ||
+ | |||
+ | ==== エンジニアリング ==== | ||
+ | |||
+ | <code cpp> | ||
+ | if( Engineering_Wage < City_Average_Wage * 2 ) | ||
+ | Morale = Morale - (5 * (1-(Engineering_Wage/ | ||
+ | else | ||
+ | Morale = Morale + (3 * (1-(1+((City_Average_Wage * 2)/ | ||
+ | </ | ||
+ | |||
+ | ==== マーケティング ==== | ||
+ | |||
+ | <code cpp> | ||
+ | if( Marketing_Wage < City_Average_Wage * 1.3 ) | ||
+ | Morale = Morale - (5 * (1-(Marketing_Wage/ | ||
+ | else | ||
+ | Morale = Morale + (3 * (1-(1+((City_Average_Wage * 1.3)/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 管理 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | if( Admin_Wage < City_Average_Wage * 2.5 ) | ||
+ | Morale = Morale - (5 * (1-(Admin_Wage/ | ||
+ | else | ||
+ | Morale = Morale + (3 * (1-(1+((City_Average_Wage * 2.5)/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== 休暇から ===== | ||
+ | |||
+ | 工場の士気のみ。 | ||
+ | |||
+ | <code cpp> | ||
+ | furloughRatio = total_furloughed/ | ||
+ | laidOffRatio = (furloughed * 0.1)/ | ||
+ | |||
+ | if(furloughRatio> | ||
+ | furloughRatio = 1 | ||
+ | if(laidOffRatio> | ||
+ | laidOffRatio = 1 | ||
+ | | ||
+ | Morale = Morale - ((0.075 * furloughRatio ) + ( 0.1 * laidOffRatio) ) | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== 年金 | ||
+ | |||
+ | ==== 料金から ==== | ||
+ | |||
+ | <code cpp> | ||
+ | AvgDepartmentDirectBenefits = Average Department Direct Benefits Percentage At All Companies | ||
+ | AvgDepartmentDefinedBenefits = Average Department Defined Benefits Percentage At All Companies | ||
+ | |||
+ | |||
+ | AvgDepartmentDirectBenefits = AvgDepartmentDirectBenefits * 0.9 + 0.0001 | ||
+ | AvgDepartmentDefinedBenefits = AvgDepartmentDefinedBenefits * 0.9 + 0.0001 | ||
+ | |||
+ | |||
+ | Department_Morale_Change = Department_Direct_Benefits/ | ||
+ | | ||
+ | |||
+ | if(Department_Morale_Change > 2) | ||
+ | Department_Morale_Change = 2 | ||
+ | else if(Department_Morale_Change < 2) | ||
+ | Department_Morale_Change = -2 | ||
+ | | ||
+ | Department_Morale = Department_Morale - Department_Morale_Change | ||
+ | </ | ||
+ | |||
+ | ==== 給料不足の契約 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | If(Department_Direct_Benefits < Agreed_Direct_Benefits OR | ||
+ | | ||
+ | { | ||
+ | Department_Morale = Department_Morale - 2 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 新規契約 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | Department_Morale = Department_Morale = 100 | ||
+ | </ | ||
+ | |||
+ | ===== イベントから ===== | ||
+ | |||
+ | |||
+ | ==== 着火 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | Department_Morale = Department_Morale * 0.8 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 大打撃 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | Department_Morale = Department_Morale * 0.5 | ||
+ | </ | ||
+ | ====== ストライキ ====== | ||
+ | |||
+ | |||
+ | ===== ストライキへ ===== | ||
+ | |||
+ | <code cpp> | ||
+ | if(Random Number Between (0.0 AND 1.0) > (1-(0.5-(Employee_Moral/ | ||
+ | Strike = true | ||
+ | else if(StockMarket_GrowthRate > 1.02 AND Random Number Between (0 and 120) < 2) | ||
+ | Strike = true | ||
+ | </ | ||
+ | |||
+ | ===== 賃上げ要求 ===== | ||
+ | |||
+ | <code cpp> | ||
+ | |||
+ | //Branches | ||
+ | ModValue = 1.25 | ||
+ | //Factories | ||
+ | ModValue = 0.5211 + factoryWageDifficultyAddition; | ||
+ | //Marketing | ||
+ | ModValue = 1.3; | ||
+ | // | ||
+ | ModValue = 2 | ||
+ | //Admin | ||
+ | ModValue = 2.5 | ||
+ | |||
+ | |||
+ | |||
+ | if(stockmarketRates > 1.02 ) | ||
+ | RequestedWage = (City_Average_Wage * ModValue * 1.2) * (Random Number Between (0 AND 0.13) + 1.05) + 10; | ||
+ | else | ||
+ | RequestedWage = (City_Average_Wage * ModValue) * (Random Number Between ( 0 AND 0.13)+1.05)+10; | ||
+ | |||
+ | |||
+ | if(CurrentWages > RequestedWage) | ||
+ | { | ||
+ | RequestedWage = CurrentWages * 1.05 + 5; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== ストライキの種類 ===== | ||
+ | |||
+ | |||
+ | <code cpp> | ||
+ | if(Benefits_Enabled AND Random Number Between (0 to 10) = 0) | ||
+ | { | ||
+ | //Generate Benefits Demand Here... See next segments | ||
+ | } | ||
+ | else if (Random Number Between (0 to 1) = 0) | ||
+ | { | ||
+ | No strike | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | Continue With Wage Strike | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== 福利厚生の要求 ===== | ||
+ | |||
+ | また、ゲームではストライキシステム以外の福利厚生の要求が発生することもあります。 | ||
+ | |||
+ | ==== 直接給付 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | if(Year < 2021) | ||
+ | { | ||
+ | yearAdj = 0.0095*((year-1899)/ | ||
+ | minimumRequest = 0.009*((year-1900)); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | yearAdj = 0.0095*((121)/ | ||
+ | minimumRequest = 0.009*((120)); | ||
+ | } | ||
+ | |||
+ | |||
+ | if((year < 1975 AND Random Number Between (0 AND 99) < 6) OR | ||
+ | (year > 1974 AND year < 1995 AND Random Number Between (0 AND 99) < 20) OR | ||
+ | (year > 1994 AND Random Number Between (0 AND 99) < 30)) | ||
+ | { | ||
+ | requestAmount = valueBP + Random Number Between (0 AND 0.03) + yearAdj | ||
+ | |||
+ | if(requestAmount > 2) | ||
+ | requestAmount = 2; | ||
+ | |||
+ | if(requestAmount < minimumRequest) | ||
+ | requestAmount = minimumRequest; | ||
+ | |||
+ | | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== 年金 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | |||
+ | if( (year > 1918 AND year < 1995 AND Random Number Between (0 AND 99) < 60) OR | ||
+ | (year > 1994 AND Random Number Between (0 AND 99) < 16)) | ||
+ | { | ||
+ | requestAmount = valuePA + Random Number Between (0 AND 0.03) + yearAdj | ||
+ | |||
+ | if(requestAmount > 2) | ||
+ | requestAmount = 2; | ||
+ | |||
+ | if(requestAmount < minimumRequest) | ||
+ | requestAmount = minimumRequest; | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== 組合との交渉 ====== | ||
+ | |||
+ | <code cpp> | ||
+ | negotiations = Last_5_Years_Income / (Last_5_Years_Expenses * 1.1) | ||
+ | |||
+ | if(negotiations < 0.85) | ||
+ | { | ||
+ | negotiations = 0.85 | ||
+ | } | ||
+ | else if(negotiations > 1) | ||
+ | negotiations = 1; | ||
+ | |||
+ | if(AdministrationSkill > 0) | ||
+ | { | ||
+ | negotiations = negotiations - (0.2 * (AdministrationSkill/ | ||
+ | } | ||
+ | |||
+ | if(negotiations < 1) | ||
+ | { | ||
+ | if(negotiations < 0.65) | ||
+ | { | ||
+ | negotiations = 0.65; | ||
+ | } | ||
+ | |||
+ | DCWant = DCWant * negotiations; | ||
+ | DBWant = DBWant * negotiations; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | DBWant = DBWant + (DBFeeSlider*(1.0-(0.2 * (AdministrationSkill/ | ||
+ | |||
+ | |||
+ | |||
+ | if(DCSlider >= DCWant AND DBSlider >= DBWant) | ||
+ | { | ||
+ | The Union Approves! | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | ====== ストライキを止めるタイミング ====== | ||
+ | |||
+ | <code cpp> | ||
+ | if(CurrentWages > RequestedWage) | ||
+ | Stop Striking | ||
+ | |||
+ | if Successful Benefits Negotiation | ||
+ | Stop Striking | ||
+ | | ||
+ | </ |