ghorsington 3 vuotta sitten
vanhempi
commit
212b668e01
116 muutettua tiedostoa jossa 936 lisäystä ja 488 poistoa
  1. 5 5
      Assembly-CSharp.sln
  2. 2 2
      Assembly-CSharp/AMOrientationTrack.cs
  3. 3 3
      Assembly-CSharp/AMPropertyAction.cs
  4. 1 1
      Assembly-CSharp/AMTarget.cs
  5. 18 18
      Assembly-CSharp/AMTween.cs
  6. 1 1
      Assembly-CSharp/AdditionalScenario.cs
  7. 7 7
      Assembly-CSharp/Appeal_Mgr.cs
  8. 7 7
      Assembly-CSharp/ArcTeleport.cs
  9. 19 18
      Assembly-CSharp/Assembly-CSharp.csproj
  10. 1 1
      Assembly-CSharp/BaseKagManager.cs
  11. 1 1
      Assembly-CSharp/BasePhotoCustomObject.cs
  12. 1 1
      Assembly-CSharp/BasePhotoWindowManager.cs
  13. 4 4
      Assembly-CSharp/CMSystem.cs
  14. 4 4
      Assembly-CSharp/CharacterMgr.cs
  15. 2 2
      Assembly-CSharp/CircleCommandUI.cs
  16. 1 1
      Assembly-CSharp/CompetitiveShowMgr.cs
  17. 2 2
      Assembly-CSharp/ConfrontCutIn.cs
  18. 2 2
      Assembly-CSharp/ControllerShortcutSettingData.cs
  19. 1 1
      Assembly-CSharp/Dance_Note.cs
  20. 1 1
      Assembly-CSharp/Day_UI.cs
  21. 1 1
      Assembly-CSharp/DeskManager.cs
  22. 3 3
      Assembly-CSharp/DynamicBone.cs
  23. 1 1
      Assembly-CSharp/DynamicSkirtBone.cs
  24. 1 1
      Assembly-CSharp/EditMod.cs
  25. 1 1
      Assembly-CSharp/EmpireLifeModeManager.cs
  26. 15 9
      Assembly-CSharp/FacilityInfoUI.cs
  27. 1 1
      Assembly-CSharp/FacilityManager.cs
  28. 2 2
      Assembly-CSharp/Fade.cs
  29. 1 1
      Assembly-CSharp/FadeImage.cs
  30. 1 1
      Assembly-CSharp/FadeUI.cs
  31. 1 1
      Assembly-CSharp/FreeScene_UI.cs
  32. 130 91
      Assembly-CSharp/FreeSkillSelect.cs
  33. 1 0
      Assembly-CSharp/FullBodyIKCtrl.cs
  34. 1 1
      Assembly-CSharp/GameInShopMain.cs
  35. 2 2
      Assembly-CSharp/GameMain.cs
  36. 1 1
      Assembly-CSharp/GameModeManager.cs
  37. 8 4
      Assembly-CSharp/GameUty.cs
  38. 15 15
      Assembly-CSharp/GizmoRender.cs
  39. 2 2
      Assembly-CSharp/HandSignShortcut.cs
  40. 1 1
      Assembly-CSharp/IFade.cs
  41. 6 0
      Assembly-CSharp/KaraokeDataManager.cs
  42. 8 8
      Assembly-CSharp/KasaiUtility.cs
  43. 1 1
      Assembly-CSharp/Kasizuki/KasizukiManager.cs
  44. 16 16
      Assembly-CSharp/Leap/TestHandFactory.cs
  45. 1 1
      Assembly-CSharp/Leap/Unity/CapsuleHand.cs
  46. 4 4
      Assembly-CSharp/Leap/Unity/LeapDeviceInfo.cs
  47. 1 1
      Assembly-CSharp/Leap/Unity/RuntimeGizmos/RuntimeGizmoManager.cs
  48. 3 3
      Assembly-CSharp/Leap/Unity/Utils.cs
  49. 9 5
      Assembly-CSharp/Maid.cs
  50. 147 0
      Assembly-CSharp/MaidExtension/MaidMekureController.cs
  51. 1 1
      Assembly-CSharp/MaidParts.cs
  52. 4 0
      Assembly-CSharp/MaidPlate.cs
  53. 1 1
      Assembly-CSharp/MaidProp.cs
  54. 2 1
      Assembly-CSharp/MaidStatus/AdditionalRelation.cs
  55. 36 19
      Assembly-CSharp/MaidStatus/EnumConvert.cs
  56. 11 4
      Assembly-CSharp/MaidStatus/Status.cs
  57. 1 1
      Assembly-CSharp/Menu.cs
  58. 1 1
      Assembly-CSharp/Misc.cs
  59. 1 1
      Assembly-CSharp/ModCompile.cs
  60. 3 3
      Assembly-CSharp/MotionAction_Mgr.cs
  61. 2 2
      Assembly-CSharp/NoteEffect.cs
  62. 1 1
      Assembly-CSharp/OVRDebugInfo.cs
  63. 1 1
      Assembly-CSharp/OVROverlay.cs
  64. 1 1
      Assembly-CSharp/OVRPlayerController.cs
  65. 13 13
      Assembly-CSharp/OnaholeChuBlipDevice.cs
  66. 1 1
      Assembly-CSharp/OvrGrabObj.cs
  67. 2 2
      Assembly-CSharp/OvrIK.cs
  68. 1 1
      Assembly-CSharp/PhotoModeSaveAndLoad.cs
  69. 10 3
      Assembly-CSharp/PlayerStatus/Status.cs
  70. 8 1
      Assembly-CSharp/PrivateEventListUnit.cs
  71. 20 6
      Assembly-CSharp/PrivateMaidMode/DataBase.cs
  72. 8 3
      Assembly-CSharp/PrivateMaidMode/PrivateCharaSelectMain.cs
  73. 24 13
      Assembly-CSharp/Product_Mgr.cs
  74. 10 6
      Assembly-CSharp/ProfileCtrl.cs
  75. 16 16
      Assembly-CSharp/RenderHeads/Media/AVProVideo/CubemapCube.cs
  76. 7 7
      Assembly-CSharp/RenderHeads/Media/AVProVideo/Resampler.cs
  77. 2 2
      Assembly-CSharp/Result_Display.cs
  78. 1 1
      Assembly-CSharp/RhythmAction_Mgr.cs
  79. 1 1
      Assembly-CSharp/SceneNPCEdit/SaveData.cs
  80. 40 30
      Assembly-CSharp/Schedule/ScheduleCSVData.cs
  81. 2 2
      Assembly-CSharp/Score_Mgr.cs
  82. 21 1
      Assembly-CSharp/ScriptManager.cs
  83. 1 1
      Assembly-CSharp/SelectMessage_UI.cs
  84. 1 1
      Assembly-CSharp/ShootCutInTex.cs
  85. 6 3
      Assembly-CSharp/StatusMgr.cs
  86. 8 8
      Assembly-CSharp/SteamVR_Frustum.cs
  87. 4 4
      Assembly-CSharp/SteamVR_SphericalProjection.cs
  88. 2 2
      Assembly-CSharp/SystemShortcut.cs
  89. 8 8
      Assembly-CSharp/TBody.cs
  90. 1 1
      Assembly-CSharp/TriLib/CameraExtensions.cs
  91. 1 1
      Assembly-CSharp/Trophy_UI.cs
  92. 1 1
      Assembly-CSharp/UGuiRule.cs
  93. 1 1
      Assembly-CSharp/UIBasicSprite.cs
  94. 2 2
      Assembly-CSharp/UIButtonColor.cs
  95. 1 1
      Assembly-CSharp/UIDrawCall.cs
  96. 1 1
      Assembly-CSharp/UIPopupList.cs
  97. 1 1
      Assembly-CSharp/UIRoot.cs
  98. 3 3
      Assembly-CSharp/UITweener.cs
  99. 1 1
      Assembly-CSharp/UTY.cs
  100. 1 1
      Assembly-CSharp/UnityEngine/PostProcessing/ColorGradingComponent.cs
  101. 1 1
      Assembly-CSharp/UnityEngine/PostProcessing/DepthOfFieldComponent.cs
  102. 1 1
      Assembly-CSharp/UnityEngine/PostProcessing/ScreenSpaceReflectionComponent.cs
  103. 2 2
      Assembly-CSharp/UnityEngine/UI/uGUIInputField.cs
  104. 6 6
      Assembly-CSharp/VelocityTracker.cs
  105. 1 1
      Assembly-CSharp/ViveControllerButtons.cs
  106. 2 2
      Assembly-CSharp/Voltage_Mgr.cs
  107. 1 1
      Assembly-CSharp/WindowPartsFingerPreset.cs
  108. 1 1
      Assembly-CSharp/YotogiManager.cs
  109. 1 1
      Assembly-CSharp/YotogiOldParamBasicBar.cs
  110. 1 1
      Assembly-CSharp/YotogiParamBasicBar.cs
  111. 1 1
      Assembly-CSharp/YotogiParameterViewer.cs
  112. 116 19
      Assembly-CSharp/Yotogis/Skill.cs
  113. 10 0
      Assembly-CSharp/Yotogis/SkillAcquisitionCondition.cs
  114. 3 3
      Assembly-CSharp/jiggleBone.cs
  115. 12 0
      Assembly-CSharp/uGUIMaidPlate.cs
  116. 12 1
      Assembly-CSharp/wf/ReadOnlyDictionary.cs

+ 5 - 5
Assembly-CSharp.sln

@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.28729.10
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp\Assembly-CSharp.csproj", "{39553857-894F-46FF-B421-6D5BEA960691}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp\Assembly-CSharp.csproj", "{34835194-016C-48BF-BF42-8B9849DAC63D}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +11,10 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{39553857-894F-46FF-B421-6D5BEA960691}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{39553857-894F-46FF-B421-6D5BEA960691}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{39553857-894F-46FF-B421-6D5BEA960691}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{39553857-894F-46FF-B421-6D5BEA960691}.Release|Any CPU.Build.0 = Release|Any CPU
+		{34835194-016C-48BF-BF42-8B9849DAC63D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{34835194-016C-48BF-BF42-8B9849DAC63D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{34835194-016C-48BF-BF42-8B9849DAC63D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{34835194-016C-48BF-BF42-8B9849DAC63D}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 2 - 2
Assembly-CSharp/AMOrientationTrack.cs

@@ -218,14 +218,14 @@ public class AMOrientationTrack : AMTrack
 				{
 					if ((amaction as AMOrientationAction).isLookFollow() && (amaction as AMOrientationAction).startTarget)
 					{
-						Gizmos.color = new Color(0.9607843f, 0.419607848f, 0.117647059f, 0.2f);
+						Gizmos.color = new Color(0.9607843f, 0.41960785f, 0.11764706f, 0.2f);
 						Gizmos.DrawLine(this.obj.transform.position, (amaction as AMOrientationAction).startTarget.transform.position);
 					}
 					break;
 				}
 			}
 		}
-		Gizmos.color = new Color(0.9607843f, 0.419607848f, 0.117647059f, 1f);
+		Gizmos.color = new Color(0.9607843f, 0.41960785f, 0.11764706f, 1f);
 		Vector3 position = this.obj.transform.position;
 		float num = 1.2f * (gizmo_size / 0.1f);
 		if (num < 0.1f)

+ 3 - 3
Assembly-CSharp/AMPropertyAction.cs

@@ -1030,7 +1030,7 @@ public class AMPropertyAction : AMAction
 		{
 			return input.ToString("N2");
 		}
-		if (num >= 0.0099999997764825821)
+		if (num >= 0.009999999776482582)
 		{
 			return input.ToString("N3");
 		}
@@ -1038,11 +1038,11 @@ public class AMPropertyAction : AMAction
 		{
 			return input.ToString("N4");
 		}
-		if (num >= 9.9999997473787516E-05)
+		if (num >= 9.999999747378752E-05)
 		{
 			return input.ToString("N5");
 		}
-		if (num >= 9.9999997473787516E-06)
+		if (num >= 9.999999747378752E-06)
 		{
 			return input.ToString("N6");
 		}

+ 1 - 1
Assembly-CSharp/AMTarget.cs

@@ -5,7 +5,7 @@ public class AMTarget : MonoBehaviour
 {
 	private void OnDrawGizmos()
 	{
-		Gizmos.color = new Color(0.9607843f, 0.419607848f, 0.117647059f, 1f);
+		Gizmos.color = new Color(0.9607843f, 0.41960785f, 0.11764706f, 1f);
 		Gizmos.DrawSphere(base.transform.position, 0.2f * (this.gizmo_size / 0.1f));
 	}
 

+ 18 - 18
Assembly-CSharp/AMTween.cs

@@ -6098,7 +6098,7 @@ public class AMTween : MonoBehaviour
 	public static float spring(float start, float end, float value, AnimationCurve curve = null)
 	{
 		value = Mathf.Clamp01(value);
-		value = (Mathf.Sin(value * 3.14159274f * (0.2f + 2.5f * value * value * value)) * Mathf.Pow(1f - value, 2.2f) + value) * (1f + 1.2f * (1f - value));
+		value = (Mathf.Sin(value * 3.1415927f * (0.2f + 2.5f * value * value * value)) * Mathf.Pow(1f - value, 2.2f) + value) * (1f + 1.2f * (1f - value));
 		return start + (end - start) * value;
 	}
 
@@ -6214,19 +6214,19 @@ public class AMTween : MonoBehaviour
 	public static float easeInSine(float start, float end, float value, AnimationCurve curve = null)
 	{
 		end -= start;
-		return -end * Mathf.Cos(value / 1f * 1.57079637f) + end + start;
+		return -end * Mathf.Cos(value / 1f * 1.5707964f) + end + start;
 	}
 
 	public static float easeOutSine(float start, float end, float value, AnimationCurve curve = null)
 	{
 		end -= start;
-		return end * Mathf.Sin(value / 1f * 1.57079637f) + start;
+		return end * Mathf.Sin(value / 1f * 1.5707964f) + start;
 	}
 
 	public static float easeInOutSine(float start, float end, float value, AnimationCurve curve = null)
 	{
 		end -= start;
-		return -end / 2f * (Mathf.Cos(3.14159274f * value / 1f) - 1f) + start;
+		return -end / 2f * (Mathf.Cos(3.1415927f * value / 1f) - 1f) + start;
 	}
 
 	public static float easeInExpo(float start, float end, float value, AnimationCurve curve = null)
@@ -6295,21 +6295,21 @@ public class AMTween : MonoBehaviour
 	{
 		value /= 1f;
 		end -= start;
-		if (value < 0.363636374f)
+		if (value < 0.36363637f)
 		{
 			return end * (7.5625f * value * value) + start;
 		}
-		if (value < 0.727272749f)
+		if (value < 0.72727275f)
 		{
-			value -= 0.545454562f;
+			value -= 0.54545456f;
 			return end * (7.5625f * value * value + 0.75f) + start;
 		}
-		if ((double)value < 0.90909090909090906)
+		if ((double)value < 0.9090909090909091)
 		{
 			value -= 0.8181818f;
 			return end * (7.5625f * value * value + 0.9375f) + start;
 		}
-		value -= 0.954545438f;
+		value -= 0.95454544f;
 		return end * (7.5625f * value * value + 0.984375f) + start;
 	}
 
@@ -6366,8 +6366,8 @@ public class AMTween : MonoBehaviour
 			return 0f;
 		}
 		float num = 0.3f;
-		float num2 = num / 6.28318548f * Mathf.Asin(0f);
-		return amplitude * Mathf.Pow(2f, -10f * value) * Mathf.Sin((value * 1f - num2) * 6.28318548f / num);
+		float num2 = num / 6.2831855f * Mathf.Asin(0f);
+		return amplitude * Mathf.Pow(2f, -10f * value) * Mathf.Sin((value * 1f - num2) * 6.2831855f / num);
 	}
 
 	public static float easeInElastic(float start, float end, float value, AnimationCurve curve = null)
@@ -6392,9 +6392,9 @@ public class AMTween : MonoBehaviour
 		}
 		else
 		{
-			num4 = num2 / 6.28318548f * Mathf.Asin(end / num3);
+			num4 = num2 / 6.2831855f * Mathf.Asin(end / num3);
 		}
-		return -(num3 * Mathf.Pow(2f, 10f * (value -= 1f)) * Mathf.Sin((value * num - num4) * 6.28318548f / num2)) + start;
+		return -(num3 * Mathf.Pow(2f, 10f * (value -= 1f)) * Mathf.Sin((value * num - num4) * 6.2831855f / num2)) + start;
 	}
 
 	public static float easeOutElastic(float start, float end, float value, AnimationCurve curve = null)
@@ -6419,9 +6419,9 @@ public class AMTween : MonoBehaviour
 		}
 		else
 		{
-			num4 = num2 / 6.28318548f * Mathf.Asin(end / num3);
+			num4 = num2 / 6.2831855f * Mathf.Asin(end / num3);
 		}
-		return num3 * Mathf.Pow(2f, -10f * value) * Mathf.Sin((value * num - num4) * 6.28318548f / num2) + end + start;
+		return num3 * Mathf.Pow(2f, -10f * value) * Mathf.Sin((value * num - num4) * 6.2831855f / num2) + end + start;
 	}
 
 	public static float easeInOutElastic(float start, float end, float value, AnimationCurve curve = null)
@@ -6446,13 +6446,13 @@ public class AMTween : MonoBehaviour
 		}
 		else
 		{
-			num4 = num2 / 6.28318548f * Mathf.Asin(end / num3);
+			num4 = num2 / 6.2831855f * Mathf.Asin(end / num3);
 		}
 		if (value < 1f)
 		{
-			return -0.5f * (num3 * Mathf.Pow(2f, 10f * (value -= 1f)) * Mathf.Sin((value * num - num4) * 6.28318548f / num2)) + start;
+			return -0.5f * (num3 * Mathf.Pow(2f, 10f * (value -= 1f)) * Mathf.Sin((value * num - num4) * 6.2831855f / num2)) + start;
 		}
-		return num3 * Mathf.Pow(2f, -10f * (value -= 1f)) * Mathf.Sin((value * num - num4) * 6.28318548f / num2) * 0.5f + end + start;
+		return num3 * Mathf.Pow(2f, -10f * (value -= 1f)) * Mathf.Sin((value * num - num4) * 6.2831855f / num2) * 0.5f + end + start;
 	}
 
 	public static ArrayList tweens_ = new ArrayList();

+ 1 - 1
Assembly-CSharp/AdditionalScenario.cs

@@ -142,7 +142,7 @@ public class AdditionalScenario : MonoBehaviour
 		float timer = 0f;
 		for (;;)
 		{
-			float rate = Mathf.Sin(Mathf.Clamp01(timer / this.m_FadeTime) * 90f * 0.0174532924f);
+			float rate = Mathf.Sin(Mathf.Clamp01(timer / this.m_FadeTime) * 90f * 0.017453292f);
 			if (!is_fadein)
 			{
 				rate = 1f - rate;

+ 7 - 7
Assembly-CSharp/Appeal_Mgr.cs

@@ -508,13 +508,13 @@ public class Appeal_Mgr : PartsMgrBase
 			if (!RhythmAction_Mgr.Instance.IsPause)
 			{
 				timer += RhythmAction_Mgr.Instance.DanceDeltaTime;
-				float num = Mathf.Sin(Mathf.Clamp01(timer / this.m_CutInTime) * 90f * 0.0174532924f);
+				float num = Mathf.Sin(Mathf.Clamp01(timer / this.m_CutInTime) * 90f * 0.017453292f);
 				appeal_data.AppealCutInpanel.transform.localPosition = Vector3.Lerp(first_pos, Vector3.zero, num);
 				this.m_EffectBase.transform.localPosition = appeal_data.AppealCutInpanel.transform.localPosition;
 				appeal_data.AppealGauge = Mathf.Max((int)(first_gauge - 200f * num), 0);
 				if (timer >= this.m_FadeStartTime)
 				{
-					appeal_data.AppealCutIn.alpha = 1f - Mathf.Sin(Mathf.Clamp01((timer - this.m_FadeStartTime) / this.m_FadeOutTime) * 90f * 0.0174532924f);
+					appeal_data.AppealCutIn.alpha = 1f - Mathf.Sin(Mathf.Clamp01((timer - this.m_FadeStartTime) / this.m_FadeOutTime) * 90f * 0.017453292f);
 				}
 				if (exist_cutin || !this.m_CharaAppealList.ContainsKey(DanceBattle_Mgr.CharaType.Enemy) || (!exist_cutin && !this.GetAppealData(oppnent_type).IsCutInNow))
 				{
@@ -590,7 +590,7 @@ public class Appeal_Mgr : PartsMgrBase
 				{
 					appeal_data.AppelCoolFlash.gameObject.SetActive(true);
 					float num = timer - 5f;
-					appeal_data.AppelCoolFlash.alpha = Mathf.Sin(Mathf.Clamp01(num / this.m_GaugeFlashTime) * 180f * 0.0174532924f);
+					appeal_data.AppelCoolFlash.alpha = Mathf.Sin(Mathf.Clamp01(num / this.m_GaugeFlashTime) * 180f * 0.017453292f);
 				}
 				else
 				{
@@ -656,13 +656,13 @@ public class Appeal_Mgr : PartsMgrBase
 				if (timer >= 2.5f)
 				{
 					float num = timer - 2.5f;
-					float y = Mathf.Cos(Mathf.Clamp01(num / 0.25f) * 90f * 0.0174532924f);
+					float y = Mathf.Cos(Mathf.Clamp01(num / 0.25f) * 90f * 0.017453292f);
 					localScale.y = y;
 					mask_parent.localScale = localScale;
 				}
 				else if (timer < 0.5f)
 				{
-					float num2 = Mathf.Sin(Mathf.Clamp01(timer / 0.5f) * 90f * 0.0174532924f);
+					float num2 = Mathf.Sin(Mathf.Clamp01(timer / 0.5f) * 90f * 0.017453292f);
 					mask_parent.localPosition = Vector3.Lerp(first_pos, move_pos, num2);
 					localScale.y = num2;
 					mask_parent.localScale = localScale;
@@ -711,7 +711,7 @@ public class Appeal_Mgr : PartsMgrBase
 				}
 				foreach (CharaAppealData charaAppealData in this.m_CharaAppealList.Values)
 				{
-					float num = Mathf.Sin(Mathf.Clamp01(timer / this.m_GaugeChargeTime) * 90f * 0.0174532924f);
+					float num = Mathf.Sin(Mathf.Clamp01(timer / this.m_GaugeChargeTime) * 90f * 0.017453292f);
 					charaAppealData.AppealGauge = (int)((float)charaAppealData.AppealValue * num);
 				}
 			}
@@ -741,7 +741,7 @@ public class Appeal_Mgr : PartsMgrBase
 				{
 					break;
 				}
-				appeal_data.AppealFlashGauge.alpha = Mathf.Sin(Mathf.Clamp01(timer / this.m_GaugeFlashTime) * 180f * 0.0174532924f);
+				appeal_data.AppealFlashGauge.alpha = Mathf.Sin(Mathf.Clamp01(timer / this.m_GaugeFlashTime) * 180f * 0.017453292f);
 			}
 			yield return null;
 		}

+ 7 - 7
Assembly-CSharp/ArcTeleport.cs

@@ -42,8 +42,8 @@ public class ArcTeleport : MonoBehaviour
 		{
 			for (int j = 0; j < 4; j++)
 			{
-				array[i * 4 + j].x = Mathf.Cos(3.14159274f * (float)j) * this.m_Line_Width / 2f * (float)(1 - j / 2);
-				array[i * 4 + j].y = Mathf.Cos(3.14159274f * (float)j) * this.m_Line_Width / 2f * (float)(j / 2);
+				array[i * 4 + j].x = Mathf.Cos(3.1415927f * (float)j) * this.m_Line_Width / 2f * (float)(1 - j / 2);
+				array[i * 4 + j].y = Mathf.Cos(3.1415927f * (float)j) * this.m_Line_Width / 2f * (float)(j / 2);
 				array[i * 4 + j].z = this.m_fLineLength * ((float)i / (float)(this.m_nTrailCount - 1)) - this.m_fLineLength / 2f;
 				array2[i * 4 + j].x = (float)i / (float)(this.m_nTrailCount - 1);
 				array2[i * 4 + j].y = (float)(j % 2);
@@ -171,7 +171,7 @@ public class ArcTeleport : MonoBehaviour
 		for (;;)
 		{
 			timer += Time.deltaTime;
-			float time_rate = Mathf.Abs(Mathf.Cos(0.0174532924f * (180f * (timer / this.m_Flash_Time))));
+			float time_rate = Mathf.Abs(Mathf.Cos(0.017453292f * (180f * (timer / this.m_Flash_Time))));
 			if (!this.m_trWarpCircle.gameObject.activeSelf)
 			{
 				if (tex_name != this.m_Line_Tex_Gray.name)
@@ -234,8 +234,8 @@ public class ArcTeleport : MonoBehaviour
 			float num3 = this.m_Defo_Display_Length;
 			for (float num4 = this.m_fLineSplitLength; num4 < this.m_fLineLength; num4 += this.m_fLineSplitLength)
 			{
-				float num5 = this.m_fVelocity * Mathf.Cos(num * 0.0174532924f) * num4;
-				float num6 = this.m_fVelocity * Mathf.Sin(num * 0.0174532924f) * num4 - 0.5f * this.m_fGravity * (num4 * num4);
+				float num5 = this.m_fVelocity * Mathf.Cos(num * 0.017453292f) * num4;
+				float num6 = this.m_fVelocity * Mathf.Sin(num * 0.017453292f) * num4 - 0.5f * this.m_fGravity * (num4 * num4);
 				Vector3 vector2 = this.m_trParent.position + rotation * zero;
 				Vector3 vector3 = this.m_trParent.position + rotation * new Vector3(0f, num6, num5);
 				Debug.DrawLine(vector2, vector3);
@@ -271,8 +271,8 @@ public class ArcTeleport : MonoBehaviour
 				for (int i = 0; i < this.m_nTrailCount; i++)
 				{
 					num8 += num7;
-					float num9 = this.m_fVelocity * Mathf.Cos(num * 0.0174532924f) * num8;
-					float num10 = this.m_fVelocity * Mathf.Sin(num * 0.0174532924f) * num8 - 0.5f * this.m_fGravity * (num8 * num8);
+					float num9 = this.m_fVelocity * Mathf.Cos(num * 0.017453292f) * num8;
+					float num10 = this.m_fVelocity * Mathf.Sin(num * 0.017453292f) * num8 - 0.5f * this.m_fGravity * (num8 * num8);
 					Vector3 vector4 = this.m_trParent.position + rotation * zero;
 					Vector3 end = this.m_trParent.position + rotation * new Vector3(0f, num10, num9);
 					Debug.DrawLine(vector4, end, Color.blue);

+ 19 - 18
Assembly-CSharp/Assembly-CSharp.csproj

@@ -4,7 +4,7 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{39553857-894F-46FF-B421-6D5BEA960691}</ProjectGuid>
+    <ProjectGuid>{34835194-016C-48BF-BF42-8B9849DAC63D}</ProjectGuid>
     <OutputType>Library</OutputType>
     <RootNamespace>Assembly-CSharp</RootNamespace>
     <AssemblyName>Assembly-CSharp</AssemblyName>
@@ -34,52 +34,52 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Assembly-CSharp-firstpass">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\Assembly-CSharp-firstpass.dll</HintPath>
     </Reference>
     <Reference Include="Assembly-UnityScript-firstpass">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\Assembly-UnityScript-firstpass.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\Assembly-UnityScript-firstpass.dll</HintPath>
     </Reference>
     <Reference Include="FoveUnityPlugin">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\FoveUnityPlugin.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\FoveUnityPlugin.dll</HintPath>
     </Reference>
     <Reference Include="Ionic.Zlib">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\Ionic.Zlib.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\Ionic.Zlib.dll</HintPath>
     </Reference>
     <Reference Include="JsonFx.Json">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\JsonFx.Json.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\JsonFx.Json.dll</HintPath>
     </Reference>
     <Reference Include="LeapCSharp.NET3.5">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\LeapCSharp.NET3.5.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\LeapCSharp.NET3.5.dll</HintPath>
     </Reference>
     <Reference Include="System">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\System.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\System.dll</HintPath>
     </Reference>
     <Reference Include="System.Core">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\System.Core.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\System.Core.dll</HintPath>
     </Reference>
     <Reference Include="System.Drawing">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\System.Drawing.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\System.Drawing.dll</HintPath>
     </Reference>
     <Reference Include="System.Windows.Forms">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\System.Windows.Forms.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\System.Windows.Forms.dll</HintPath>
     </Reference>
     <Reference Include="System.Xml">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\System.Xml.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\System.Xml.dll</HintPath>
     </Reference>
     <Reference Include="System.Xml.Linq">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\System.Xml.Linq.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\System.Xml.Linq.dll</HintPath>
     </Reference>
     <Reference Include="UnityEngine">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\UnityEngine.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\UnityEngine.dll</HintPath>
     </Reference>
     <Reference Include="UnityEngine.UI">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\UnityEngine.UI.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\UnityEngine.UI.dll</HintPath>
     </Reference>
     <Reference Include="Win32">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\Win32.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\Win32.dll</HintPath>
     </Reference>
     <Reference Include="zxing.unity">
-      <HintPath>G:\com3d2_up151\data\COM3D2x64_Data\Managed\zxing.unity.dll</HintPath>
+      <HintPath>..\..\..\..\..\com\1.56\Managed\zxing.unity.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -542,7 +542,7 @@
     <Compile Include="ICODES\STUDIO\WWebView\WWebViewWin32.cs" />
     <Compile Include="IDisposableBase.cs" />
     <Compile Include="IExperienceSystem.cs" />
-    <Compile Include="IFade.cs" />
+    <Compile Include="IFadeCam.cs" />
     <Compile Include="IKCtrlData.cs" />
     <Compile Include="IKDragPoint.cs" />
     <Compile Include="IKManager.cs" />
@@ -704,6 +704,7 @@
     <Compile Include="MaidColliderCollect.cs" />
     <Compile Include="MaidExaminationCtrl.cs" />
     <Compile Include="MaidExaminationMgr.cs" />
+    <Compile Include="MaidExtension\MaidMekureController.cs" />
     <Compile Include="MaidIdleMotionAdditiveHook.cs" />
     <Compile Include="MaidItemWindow.cs" />
     <Compile Include="MaidManagement.cs" />

+ 1 - 1
Assembly-CSharp/BaseKagManager.cs

@@ -5502,7 +5502,7 @@ public class BaseKagManager : IDisposable
 	public void Serialize(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_KAG");
-		binary.Write(1510);
+		binary.Write(1550);
 		byte[] array = this.kag_.Serialize();
 		int value = array.Length;
 		binary.Write(value);

+ 1 - 1
Assembly-CSharp/BasePhotoCustomObject.cs

@@ -173,7 +173,7 @@ public abstract class BasePhotoCustomObject : MonoBehaviour, IComparable<BasePho
 			using (BinaryWriter binaryWriter = new BinaryWriter(memoryStream))
 			{
 				binaryWriter.Write("COM3D2_PHOTO_CUSTOM_OBJECT");
-				binaryWriter.Write(1510);
+				binaryWriter.Write(1550);
 				binaryWriter.Write(this.type.ToString());
 				binaryWriter.Write(this.scale_);
 				binaryWriter.Write(this.enabledTextureColor_);

+ 1 - 1
Assembly-CSharp/BasePhotoWindowManager.cs

@@ -153,7 +153,7 @@ public abstract class BasePhotoWindowManager : MonoBehaviour
 			using (BinaryWriter binaryWriter = new BinaryWriter(memoryStream))
 			{
 				binaryWriter.Write(this.save_header_uidata);
-				binaryWriter.Write(1510);
+				binaryWriter.Write(1550);
 				binaryWriter.Write(this.save_data_.Count);
 				foreach (KeyValuePair<string, Dictionary<string, Dictionary<string, string>>> keyValuePair3 in this.save_data_)
 				{

+ 4 - 4
Assembly-CSharp/CMSystem.cs

@@ -855,7 +855,7 @@ public class CMSystem
 	{
 		XElement xelement = new XElement("Config", new object[]
 		{
-			new XAttribute("Version", 1510),
+			new XAttribute("Version", 1550),
 			new XElement("System", new XElement("SysButtonShowAlways", this.SysButtonShowAlways)),
 			new XElement("Screen", new object[]
 			{
@@ -1204,7 +1204,7 @@ public class CMSystem
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_SYSTEM2");
-		binaryWriter.Write(1510);
+		binaryWriter.Write(1550);
 		binaryWriter.Write(this.m_dicEditColorPresetData.Count);
 		foreach (KeyValuePair<int, Dictionary<string, int>> keyValuePair in this.m_dicEditColorPresetData)
 		{
@@ -1910,7 +1910,7 @@ public class CMSystem
 
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1510;
+			this.m_nVersion = 1550;
 		}
 
 		public void OnAfterDeserialize()
@@ -1918,7 +1918,7 @@ public class CMSystem
 		}
 
 		[SerializeField]
-		private int m_nVersion = 1510;
+		private int m_nVersion = 1550;
 
 		[SerializeField]
 		private string m_strDShowFilter = "Microsoft DTV-DVD Video Decoder";

+ 4 - 4
Assembly-CSharp/CharacterMgr.cs

@@ -1000,7 +1000,7 @@ public class CharacterMgr : MonoBehaviour
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		string result = string.Empty;
 		binaryWriter.Write("CM3D2_PRESET_S");
-		binaryWriter.Write(1510);
+		binaryWriter.Write(1550);
 		binaryWriter.Write((char)presset_type);
 		maid.SerializePropLowCapacity(binaryWriter);
 		maid.SerializeMultiColor(binaryWriter);
@@ -1017,7 +1017,7 @@ public class CharacterMgr : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_PRESET");
-		binaryWriter.Write(1510);
+		binaryWriter.Write(1550);
 		binaryWriter.Write((int)f_type);
 		if (texture2D != null)
 		{
@@ -1062,7 +1062,7 @@ public class CharacterMgr : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_PRESET");
-		binaryWriter.Write(1510);
+		binaryWriter.Write(1550);
 		binaryWriter.Write((int)f_type);
 		if (texture2D != null)
 		{
@@ -1324,7 +1324,7 @@ public class CharacterMgr : MonoBehaviour
 	public bool Serialize(BinaryWriter bwWrite)
 	{
 		bwWrite.Write("CM3D2_CHR_MGR");
-		bwWrite.Write(1510);
+		bwWrite.Write(1550);
 		this.m_PlayerStatus.Serialize(bwWrite);
 		bwWrite.Write(this.m_listStockMan.Count);
 		for (int i = 0; i < this.m_listStockMan.Count; i++)

+ 2 - 2
Assembly-CSharp/CircleCommandUI.cs

@@ -143,8 +143,8 @@ public class CircleCommandUI : MonoBehaviour
 		{
 			Transform transform = gameObject.transform;
 			Vector3 vector = Vector3.zero;
-			vector.x = Mathf.Cos(num2 * 0.0174532924f);
-			vector.y = Mathf.Sin(num2 * 0.0174532924f) * 0.75f;
+			vector.x = Mathf.Cos(num2 * 0.017453292f);
+			vector.y = Mathf.Sin(num2 * 0.017453292f) * 0.75f;
 			vector.Normalize();
 			vector *= this.circleRadius;
 			transform.localPosition = vector;

+ 1 - 1
Assembly-CSharp/CompetitiveShowMgr.cs

@@ -153,7 +153,7 @@ public class CompetitiveShowMgr : BasePanelMgr
 		mainCamera.SetTargetPos(vector, true);
 		mainCamera.SetAroundAngle(vector2, true);
 		mainCamera.SetDistance(0.7f, true);
-		Vector3 f_vCenter = new Vector3(position.x - 0.0343059041f, position.y - 0.3253325f, position.z - 0.48361522f);
+		Vector3 f_vCenter = new Vector3(position.x - 0.034305904f, position.y - 0.3253325f, position.z - 0.48361522f);
 		Vector2 f_vRotate = new Vector2(-182.2753f, 11.24231f);
 		float f_fRadius = 2.8f;
 		float num = 5.5f;

+ 2 - 2
Assembly-CSharp/ConfrontCutIn.cs

@@ -205,7 +205,7 @@ public class ConfrontCutIn : MonoBehaviour
 		for (;;)
 		{
 			timer += this.m_MydeltaTime;
-			this.m_FadeAlpha = Mathf.Sin(Mathf.Clamp01(timer / this.m_FadeTime) * 180f * 0.0174532924f);
+			this.m_FadeAlpha = Mathf.Sin(Mathf.Clamp01(timer / this.m_FadeTime) * 180f * 0.017453292f);
 			if (timer > this.m_FadeTime)
 			{
 				break;
@@ -243,7 +243,7 @@ public class ConfrontCutIn : MonoBehaviour
 
 	private float TimeRate01(float timer, float time_max)
 	{
-		return Mathf.Sin(Mathf.Clamp01(timer / time_max) * 90f * 0.0174532924f);
+		return Mathf.Sin(Mathf.Clamp01(timer / time_max) * 90f * 0.017453292f);
 	}
 
 	public static void CutInStart(string end_label)

+ 2 - 2
Assembly-CSharp/ControllerShortcutSettingData.cs

@@ -33,7 +33,7 @@ public static class ControllerShortcutSettingData
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1510;
+			this.m_nVersion = 1550;
 		}
 
 		public void OnAfterDeserialize()
@@ -261,7 +261,7 @@ public static class ControllerShortcutSettingData
 		private const string CONF_NAME = "OvrControllerShortcutConfig.json";
 
 		[SerializeField]
-		private int m_nVersion = 1510;
+		private int m_nVersion = 1550;
 
 		[SerializeField]
 		private bool IsDirectShortcutMode = true;

+ 1 - 1
Assembly-CSharp/Dance_Note.cs

@@ -82,7 +82,7 @@ public class Dance_Note : NoteBase
 			if (!RhythmAction_Mgr.Instance.IsPause)
 			{
 				timer += RhythmAction_Mgr.Instance.DanceDeltaTime;
-				float d = Mathf.Sin(Mathf.Clamp01(timer / this.m_ScalingTime) * 90f * 0.0174532924f);
+				float d = Mathf.Sin(Mathf.Clamp01(timer / this.m_ScalingTime) * 90f * 0.017453292f);
 				base.transform.localScale = Vector3.one * d;
 				this.m_RingSprite.transform.localScale = Vector3.one / d;
 				if (timer > this.m_ScalingTime)

+ 1 - 1
Assembly-CSharp/Day_UI.cs

@@ -61,7 +61,7 @@ public class Day_UI : MonoBehaviour
 		{
 			timer += Time.deltaTime;
 			float angle = 90f * (timer / this.m_Anime_Time);
-			float rate = Mathf.Sin(0.0174532924f * angle);
+			float rate = Mathf.Sin(0.017453292f * angle);
 			this.m_My_Rect.localPosition = this.m_Start_Pos * (1f - rate) + this.m_Goal_Pos * rate;
 			if (timer >= this.m_Anime_Time)
 			{

+ 1 - 1
Assembly-CSharp/DeskManager.cs

@@ -143,7 +143,7 @@ internal class DeskManager
 	public static void SerializeSingleSaveData(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_DeskCustomize");
-		binary.Write(1510);
+		binary.Write(1550);
 		binary.Write(DeskManager.item_inst_data_.Count);
 		for (int i = 0; i < DeskManager.item_inst_data_.Count; i++)
 		{

+ 3 - 3
Assembly-CSharp/DynamicBone.cs

@@ -30,7 +30,7 @@ public class DynamicBone : MonoBehaviour
 			return false;
 		};
 		f_bw.Write("CM3D21_PHY");
-		f_bw.Write(1510);
+		f_bw.Write(1550);
 		if (this.m_Root == null)
 		{
 			NDebug.MessageBox("エラー", "×物理ルートボーンが設定されていません。");
@@ -94,7 +94,7 @@ public class DynamicBone : MonoBehaviour
 	public bool SerializeWriteCollider(BinaryWriter f_bw, string f_strFileName)
 	{
 		f_bw.Write("CM3D21_COL");
-		f_bw.Write(1510);
+		f_bw.Write(1550);
 		if (this.m_Colliders == null || this.m_Colliders.Count == 0)
 		{
 			NDebug.MessageBox("エラー", "×物理Collidersは空です。");
@@ -110,7 +110,7 @@ public class DynamicBone : MonoBehaviour
 			else
 			{
 				f_bw.Write(this.m_Colliders[i].TypeName);
-				this.m_Colliders[i].Serialize(f_bw, 1510);
+				this.m_Colliders[i].Serialize(f_bw, 1550);
 			}
 		}
 		this.m_ColliderFileName = f_strFileName;

+ 1 - 1
Assembly-CSharp/DynamicSkirtBone.cs

@@ -18,7 +18,7 @@ public class DynamicSkirtBone : MonoBehaviour
 	public bool SerializeWrite(BinaryWriter f_bw)
 	{
 		f_bw.Write("CM3D21_PSK");
-		f_bw.Write(1510);
+		f_bw.Write(1550);
 		f_bw.Write(this.m_fPanierRadius);
 		this.SerializeWriteAnimationCurve(f_bw, this.m_PanierRadiusDistrib);
 		int num = (this.m_PanierRadiusDistribGroup == null) ? 0 : this.m_PanierRadiusDistribGroup.Length;

+ 1 - 1
Assembly-CSharp/EditMod.cs

@@ -303,7 +303,7 @@ public class EditMod : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_MOD");
-		binaryWriter.Write(1510);
+		binaryWriter.Write(1550);
 		binaryWriter.Write(value);
 		binaryWriter.Write(text2.ToLower());
 		binaryWriter.Write(value2);

+ 1 - 1
Assembly-CSharp/EmpireLifeModeManager.cs

@@ -477,7 +477,7 @@ public class EmpireLifeModeManager : MonoBehaviour
 	public bool Serialize(BinaryWriter brWrite)
 	{
 		brWrite.Write("CM3D21_LIFE_MODE_MGR");
-		brWrite.Write(1510);
+		brWrite.Write(1550);
 		brWrite.Write("2");
 		DataArray<int, byte> saveDataScenarioExecuteCountArray = this.m_SaveDataScenarioExecuteCountArray;
 		if (EmpireLifeModeManager.<>f__mg$cache1 == null)

+ 15 - 9
Assembly-CSharp/FacilityInfoUI.cs

@@ -113,17 +113,23 @@ public class FacilityInfoUI : MonoBehaviour
 		if (this.m_TextFacilityName)
 		{
 			this.m_TextFacilityName.text = text;
-			Localize componentInChildren = this.m_TextFacilityName.GetComponentInChildren<Localize>();
-			if (componentInChildren != null)
+			Localize[] componentsInChildren = this.m_TextFacilityName.GetComponentsInChildren<Localize>();
+			if (componentsInChildren != null && componentsInChildren.Length > 0)
 			{
-				if (text == "空き部屋")
-				{
-					this.m_TextFacilityName.enabled = false;
-					componentInChildren.SetTerm("SceneFacilityManagement/" + text);
-				}
-				else if (this.m_Facility != null && this.m_Facility.defaultName == text)
+				foreach (Localize localize in componentsInChildren)
 				{
-					componentInChildren.SetTerm(this.m_Facility.defaultData.termName);
+					if (localize != null && localize.mLocalizeTargetName == "I2.Loc.LocalizeTarget_UnityUI_Text")
+					{
+						if (text == "空き部屋")
+						{
+							this.m_TextFacilityName.enabled = false;
+							localize.SetTerm("SceneFacilityManagement/" + text);
+						}
+						else if (this.m_Facility != null && this.m_Facility.defaultName == text)
+						{
+							localize.SetTerm(this.m_Facility.defaultData.termName);
+						}
+					}
 				}
 			}
 		}

+ 1 - 1
Assembly-CSharp/FacilityManager.cs

@@ -657,7 +657,7 @@ public class FacilityManager : MonoBehaviour
 		Stopwatch stopwatch = new Stopwatch();
 		stopwatch.Start();
 		brWrite.Write("CM3D21_FACILITY_MGR");
-		brWrite.Write(1510);
+		brWrite.Write(1550);
 		brWrite.Write("5");
 		int num = 0;
 		for (int i = 0; i < this.m_FacilityArray.Count; i++)

+ 2 - 2
Assembly-CSharp/Fade.cs

@@ -12,7 +12,7 @@ public class Fade : MonoBehaviour
 
 	private void Init()
 	{
-		this.fade = base.GetComponent<IFade>();
+		this.fade = base.GetComponent<IFadeCam>();
 	}
 
 	private void OnValidate()
@@ -81,7 +81,7 @@ public class Fade : MonoBehaviour
 		return this.FadeIn(time, null);
 	}
 
-	private IFade fade;
+	private IFadeCam fade;
 
 	private float cutoutRange;
 }

+ 1 - 1
Assembly-CSharp/FadeImage.cs

@@ -2,7 +2,7 @@
 using UnityEngine;
 using UnityEngine.UI;
 
-public class FadeImage : Graphic, IFade
+public class FadeImage : Graphic, IFadeCam
 {
 	public float Range
 	{

+ 1 - 1
Assembly-CSharp/FadeUI.cs

@@ -4,7 +4,7 @@ using UnityEngine.UI;
 
 [RequireComponent(typeof(RawImage))]
 [RequireComponent(typeof(Mask))]
-public class FadeUI : MonoBehaviour, IFade
+public class FadeUI : MonoBehaviour, IFadeCam
 {
 	public float Range
 	{

+ 1 - 1
Assembly-CSharp/FreeScene_UI.cs

@@ -168,7 +168,7 @@ public class FreeScene_UI : MonoBehaviour
 				{
 					is_end = false;
 					float num3 = 180f * (num2 / num);
-					float num4 = 1f - Mathf.Abs(Mathf.Sin(num3 * 0.0174532924f));
+					float num4 = 1f - Mathf.Abs(Mathf.Sin(num3 * 0.017453292f));
 					Vector3 vector = 0.5f * start_pos[count] + 0.5f * end_pos[count];
 					Vector3 a = vector;
 					if (timer < num / 2f)

+ 130 - 91
Assembly-CSharp/FreeSkillSelect.cs

@@ -467,14 +467,27 @@ public class FreeSkillSelect : MonoBehaviour
 		this.select_skill_ = skill_data.skill_data;
 		this.CreateStage(skill_data.skill_data);
 		FreeSkillSelect.ButtonData buttonData = (skill_data.parent == null) ? null : ((skill_data.parent.parent == null) ? null : skill_data.parent.parent);
-		FreeSkillSelect.RootType rootType = (buttonData == null) ? FreeSkillSelect.RootType.Null : buttonData.root_type;
-		if (FreeSkillSelect.RootType.GP01Harem <= rootType && rootType <= FreeSkillSelect.RootType.GP02Yuri)
+		string item = (buttonData == null) ? FreeSkillSelect.RootType.Null.ToString() : buttonData.root_type;
+		HashSet<string> hashSet = new HashSet<string>();
+		foreach (FreeSkillSelect.RootType rootType in new FreeSkillSelect.RootType[]
+		{
+			FreeSkillSelect.RootType.Null,
+			FreeSkillSelect.RootType.Drunk,
+			FreeSkillSelect.RootType.Mask,
+			FreeSkillSelect.RootType.Drug,
+			FreeSkillSelect.RootType.Faint,
+			FreeSkillSelect.RootType.Confess
+		})
+		{
+			hashSet.Add(rootType.ToString());
+		}
+		if (!hashSet.Contains(item))
 		{
 			List<Transform> childList = this.update_obj_dic_["レベル"].ui_grid.GetChildList();
 			bool flag = true;
-			for (int i = childList.Count - 1; i >= 0; i--)
+			for (int j = childList.Count - 1; j >= 0; j--)
 			{
-				UIWFTabButton componentInChildren = childList[i].gameObject.GetComponentInChildren<UIWFTabButton>();
+				UIWFTabButton componentInChildren = childList[j].gameObject.GetComponentInChildren<UIWFTabButton>();
 				if (!(componentInChildren == null) && componentInChildren.isEnabled)
 				{
 					if (flag)
@@ -492,9 +505,9 @@ public class FreeSkillSelect : MonoBehaviour
 		else
 		{
 			List<Transform> childList2 = this.update_obj_dic_["レベル"].ui_grid.GetChildList();
-			for (int j = 0; j < childList2.Count; j++)
+			for (int k = 0; k < childList2.Count; k++)
 			{
-				UIWFTabButton componentInChildren2 = childList2[j].gameObject.GetComponentInChildren<UIWFTabButton>();
+				UIWFTabButton componentInChildren2 = childList2[k].gameObject.GetComponentInChildren<UIWFTabButton>();
 				if (!(componentInChildren2 == null))
 				{
 					componentInChildren2.isEnabled = true;
@@ -518,56 +531,74 @@ public class FreeSkillSelect : MonoBehaviour
 
 	private static List<FreeSkillSelect.ButtonData> CreateButtonData(Maid maid, HashSet<int> selectableStageIds)
 	{
-		List<FreeSkillSelect.ButtonData> list = new List<FreeSkillSelect.ButtonData>();
-		Dictionary<FreeSkillSelect.RootType, KeyValuePair<FreeSkillSelect.ButtonData, Dictionary<string, FreeSkillSelect.ButtonData>>> type_data_dic = new Dictionary<FreeSkillSelect.RootType, KeyValuePair<FreeSkillSelect.ButtonData, Dictionary<string, FreeSkillSelect.ButtonData>>>();
-		List<KeyValuePair<FreeSkillSelect.RootType, string>> list2 = new List<KeyValuePair<FreeSkillSelect.RootType, string>>();
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.Null, "通常"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.Drunk, "酔い"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.Mask, "目隠し"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.Drug, "媚薬"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.Confess, "告白"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.Faint, "気絶"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP01Harem, "GP-01ハーレム"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP01Swapping, "GP-01スワッピング"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP01NTR, "GP-01寝取らせ"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP01NTRReport, "GP-01寝取らせ報告"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP02Harem, "GP-02ハーレム"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP02Swapping, "GP-02スワッピング"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP02NTR, "GP-02寝取らせ"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP02NTRReport, "GP-02寝取らせ報告"));
-		list2.Add(new KeyValuePair<FreeSkillSelect.RootType, string>(FreeSkillSelect.RootType.GP02Yuri, "GP-02百合"));
-		for (int i = 0; i < list2.Count; i++)
-		{
-			FreeSkillSelect.ButtonData buttonData = new FreeSkillSelect.ButtonData();
-			buttonData.children_list = new List<FreeSkillSelect.ButtonData>();
-			buttonData.name = list2[i].Value;
-			buttonData.nameTerm = "SceneYotogi/スキル所属/" + buttonData.name;
-			buttonData.root_type = list2[i].Key;
-			list.Add(buttonData);
-			type_data_dic.Add(buttonData.root_type, new KeyValuePair<FreeSkillSelect.ButtonData, Dictionary<string, FreeSkillSelect.ButtonData>>(buttonData, new Dictionary<string, FreeSkillSelect.ButtonData>()));
-		}
-		for (int j = 0; j < list.Count; j++)
-		{
-			for (int k = 0; k < 8; k++)
-			{
-				FreeSkillSelect.ButtonData buttonData2 = list[j];
-				FreeSkillSelect.ButtonData buttonData3 = new FreeSkillSelect.ButtonData();
-				buttonData3.children_list = new List<FreeSkillSelect.ButtonData>();
-				FreeSkillSelect.ButtonData buttonData4 = buttonData3;
-				Yotogi.Category category = (Yotogi.Category)k;
-				buttonData4.name = category.ToString();
-				buttonData3.nameTerm = "SceneYotogi/スキルカテゴリー/" + buttonData3.name;
-				buttonData3.parent = buttonData2;
-				buttonData2.children_list.Add(buttonData3);
-				type_data_dic[list[j].root_type].Value.Add(buttonData3.name, buttonData3);
+		List<FreeSkillSelect.ButtonData> top_btn_data_list = new List<FreeSkillSelect.ButtonData>();
+		Dictionary<string, KeyValuePair<FreeSkillSelect.ButtonData, Dictionary<string, FreeSkillSelect.ButtonData>>> type_data_dic = new Dictionary<string, KeyValuePair<FreeSkillSelect.ButtonData, Dictionary<string, FreeSkillSelect.ButtonData>>>();
+		List<KeyValuePair<string, string>> baseCategoryDefine = new List<KeyValuePair<string, string>>();
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.Null.ToString(), "通常"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.Drunk.ToString(), "酔い"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.Mask.ToString(), "目隠し"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.Drug.ToString(), "媚薬"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.Confess.ToString(), "告白"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.Faint.ToString(), "気絶"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP01Harem.ToString(), "GP-01ハーレム"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP01Swapping.ToString(), "GP-01スワッピング"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP01NTR.ToString(), "GP-01寝取らせ"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP01NTRReport.ToString(), "GP-01寝取らせ報告"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP02Harem.ToString(), "GP-02ハーレム"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP02Swapping.ToString(), "GP-02スワッピング"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP02NTR.ToString(), "GP-02寝取らせ"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP02NTRReport.ToString(), "GP-02寝取らせ報告"));
+		baseCategoryDefine.Add(new KeyValuePair<string, string>(FreeSkillSelect.RootType.GP02Yuri.ToString(), "GP-02百合"));
+		Func<string, KeyValuePair<FreeSkillSelect.ButtonData, Dictionary<string, FreeSkillSelect.ButtonData>>> func = delegate(string typeName)
+		{
+			KeyValuePair<FreeSkillSelect.ButtonData, Dictionary<string, FreeSkillSelect.ButtonData>> result;
+			if (type_data_dic.TryGetValue(typeName, out result))
+			{
+				return result;
+			}
+			FreeSkillSelect.ButtonData buttonData4 = new FreeSkillSelect.ButtonData();
+			buttonData4.children_list = new List<FreeSkillSelect.ButtonData>();
+			foreach (KeyValuePair<string, string> keyValuePair3 in baseCategoryDefine)
+			{
+				if (!(keyValuePair3.Key != typeName))
+				{
+					buttonData4.name = keyValuePair3.Value;
+					break;
+				}
 			}
+			if (string.IsNullOrEmpty(buttonData4.name))
+			{
+				buttonData4.name = typeName;
+			}
+			buttonData4.nameTerm = "SceneYotogi/スキル所属/" + buttonData4.name;
+			buttonData4.root_type = typeName;
+			top_btn_data_list.Add(buttonData4);
+			type_data_dic.Add(buttonData4.root_type, new KeyValuePair<FreeSkillSelect.ButtonData, Dictionary<string, FreeSkillSelect.ButtonData>>(buttonData4, new Dictionary<string, FreeSkillSelect.ButtonData>()));
+			FreeSkillSelect.ButtonData buttonData5 = top_btn_data_list[top_btn_data_list.Count - 1];
+			for (int l = 0; l < 8; l++)
+			{
+				FreeSkillSelect.ButtonData buttonData6 = new FreeSkillSelect.ButtonData();
+				buttonData6.children_list = new List<FreeSkillSelect.ButtonData>();
+				FreeSkillSelect.ButtonData buttonData7 = buttonData6;
+				Yotogi.Category category2 = (Yotogi.Category)l;
+				buttonData7.name = category2.ToString();
+				buttonData6.nameTerm = "SceneYotogi/スキルカテゴリー/" + buttonData6.name;
+				buttonData6.parent = buttonData5;
+				buttonData5.children_list.Add(buttonData6);
+				type_data_dic[buttonData5.root_type].Value.Add(buttonData6.name, buttonData6);
+			}
+			return type_data_dic[buttonData4.root_type];
+		};
+		for (int i = 0; i < baseCategoryDefine.Count; i++)
+		{
+			func(baseCategoryDefine[i].Key);
 		}
 		CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
 		int[] keyArray = maid.status.yotogiSkill.datas.GetKeyArray();
 		Dictionary<int, List<Skill.Data>> dictionary = new Dictionary<int, List<Skill.Data>>();
-		for (int l = 0; l < keyArray.Length; l++)
+		for (int j = 0; j < keyArray.Length; j++)
 		{
-			Skill.Data data = Skill.Get(keyArray[l]);
+			Skill.Data data = Skill.Get(keyArray[j]);
 			if (data.specialConditionType != Skill.Data.SpecialConditionType.NewType)
 			{
 				if (PersonalEventBlocker.IsEnabledYotodiSkill(maid.status.personal, data.id))
@@ -585,12 +616,12 @@ public class FreeSkillSelect : MonoBehaviour
 						}
 						if (flag)
 						{
-							int category2 = (int)data.category;
-							if (!dictionary.ContainsKey(category2))
+							int category = (int)data.category;
+							if (!dictionary.ContainsKey(category))
 							{
-								dictionary.Add(category2, new List<Skill.Data>());
+								dictionary.Add(category, new List<Skill.Data>());
 							}
-							dictionary[category2].Add(data);
+							dictionary[category].Add(data);
 						}
 					}
 				}
@@ -601,24 +632,24 @@ public class FreeSkillSelect : MonoBehaviour
 			List<Skill.Data> value = keyValuePair.Value;
 			value.Sort((Skill.Data a, Skill.Data b) => a.sortId - b.sortId);
 		}
-		List<Skill.Data> list3 = new List<Skill.Data>();
+		List<Skill.Data> list = new List<Skill.Data>();
 		foreach (KeyValuePair<int, List<Skill.Data>> keyValuePair2 in dictionary)
 		{
 			List<Skill.Data> value2 = keyValuePair2.Value;
 			foreach (Skill.Data item2 in value2)
 			{
-				list3.Add(item2);
+				list.Add(item2);
 			}
 		}
-		foreach (Skill.Data data2 in list3)
+		foreach (Skill.Data data2 in list)
 		{
 			int user_player_num = data2.user_player_num;
 			if (1 < user_player_num)
 			{
 				int num = 0;
-				for (int m = 0; m < characterMgr.GetMaidCount(); m++)
+				for (int k = 0; k < characterMgr.GetMaidCount(); k++)
 				{
-					if (!(characterMgr.GetMaid(m) != null))
+					if (!(characterMgr.GetMaid(k) != null))
 					{
 						break;
 					}
@@ -631,94 +662,102 @@ public class FreeSkillSelect : MonoBehaviour
 			}
 			if (data2.IsExecMaid(maid.status))
 			{
-				FreeSkillSelect.RootType key;
+				string arg = FreeSkillSelect.RootType.Null.ToString();
 				if (Skill.Data.SpecialConditionType.Null <= data2.specialConditionType && data2.specialConditionType <= Skill.Data.SpecialConditionType.Confess)
 				{
-					key = (FreeSkillSelect.RootType)data2.specialConditionType;
+					arg = ((FreeSkillSelect.RootType)data2.specialConditionType).ToString();
 				}
 				else if (data2.specialConditionType == Skill.Data.SpecialConditionType.GP01Recollect)
 				{
+					FreeSkillSelect.RootType rootType;
 					if (data2.category == Yotogi.Category.ハ\u30FCレム)
 					{
-						key = FreeSkillSelect.RootType.GP01Harem;
+						rootType = FreeSkillSelect.RootType.GP01Harem;
 					}
 					else
 					{
-						key = FreeSkillSelect.RootType.GP01Swapping;
+						rootType = FreeSkillSelect.RootType.GP01Swapping;
 						if (data2.name.Contains("報告"))
 						{
-							key = FreeSkillSelect.RootType.GP01NTRReport;
+							rootType = FreeSkillSelect.RootType.GP01NTRReport;
 						}
 						else if (data2.name.Contains("寝取り"))
 						{
-							key = FreeSkillSelect.RootType.GP01NTR;
+							rootType = FreeSkillSelect.RootType.GP01NTR;
 						}
 					}
+					arg = rootType.ToString();
 				}
-				else
+				else if (data2.specialConditionType == Skill.Data.SpecialConditionType.GP02Recollect)
 				{
-					if (data2.specialConditionType != Skill.Data.SpecialConditionType.GP02Recollect)
-					{
-						continue;
-					}
+					FreeSkillSelect.RootType rootType2;
 					if (data2.category == Yotogi.Category.ハ\u30FCレム)
 					{
 						if (data2.name.Contains("百合"))
 						{
-							key = FreeSkillSelect.RootType.GP02Yuri;
+							rootType2 = FreeSkillSelect.RootType.GP02Yuri;
 						}
 						else
 						{
-							key = FreeSkillSelect.RootType.GP02Harem;
+							rootType2 = FreeSkillSelect.RootType.GP02Harem;
 						}
 					}
 					else
 					{
-						key = FreeSkillSelect.RootType.GP02Swapping;
+						rootType2 = FreeSkillSelect.RootType.GP02Swapping;
 						if (data2.name.Contains("報告"))
 						{
-							key = FreeSkillSelect.RootType.GP02NTRReport;
+							rootType2 = FreeSkillSelect.RootType.GP02NTRReport;
 						}
 						else if (data2.name.Contains("寝取り"))
 						{
-							key = FreeSkillSelect.RootType.GP02NTR;
+							rootType2 = FreeSkillSelect.RootType.GP02NTR;
 						}
 					}
+					arg = rootType2.ToString();
+				}
+				else
+				{
+					if (data2.specialConditionType != Skill.Data.SpecialConditionType.OnlyRecollect)
+					{
+						continue;
+					}
+					arg = (string.IsNullOrEmpty(data2.customRecollectionCategoryName) ? "-" : data2.customRecollectionCategoryName);
 				}
-				FreeSkillSelect.ButtonData buttonData5 = type_data_dic[key].Value[data2.category.ToString()];
-				if (buttonData5 != null)
+				FreeSkillSelect.ButtonData buttonData = func(arg).Value[data2.category.ToString()];
+				if (buttonData != null)
 				{
-					FreeSkillSelect.ButtonData buttonData6 = new FreeSkillSelect.ButtonData();
-					buttonData6.parent = buttonData5;
-					buttonData6.name = data2.name;
-					buttonData6.skill_data = data2;
-					buttonData5.children_list.Add(buttonData6);
+					FreeSkillSelect.ButtonData buttonData2 = new FreeSkillSelect.ButtonData();
+					buttonData2.parent = buttonData;
+					buttonData2.name = data2.name;
+					buttonData2.skill_data = data2;
+					buttonData.children_list.Add(buttonData2);
 				}
 			}
 		}
-		Action<FreeSkillSelect.RootType> action = delegate(FreeSkillSelect.RootType type)
+		Action<string> action = delegate(string type)
 		{
 			Dictionary<string, FreeSkillSelect.ButtonData> value3 = type_data_dic[type].Value;
 			HashSet<string> hashSet = new HashSet<string>();
-			List<FreeSkillSelect.ButtonData> list4 = new List<FreeSkillSelect.ButtonData>();
+			List<FreeSkillSelect.ButtonData> list2 = new List<FreeSkillSelect.ButtonData>();
 			foreach (KeyValuePair<string, FreeSkillSelect.ButtonData> keyValuePair3 in value3)
 			{
 				if (keyValuePair3.Value.children_list != null && 1 <= keyValuePair3.Value.children_list.Count && !hashSet.Contains(keyValuePair3.Key))
 				{
 					hashSet.Add(keyValuePair3.Key);
-					list4.Add(keyValuePair3.Value);
+					list2.Add(keyValuePair3.Value);
 				}
 			}
-			type_data_dic[type].Key.children_list = list4;
+			type_data_dic[type].Key.children_list = list2;
 		};
-		foreach (FreeSkillSelect.ButtonData buttonData7 in list)
+		foreach (FreeSkillSelect.ButtonData buttonData3 in top_btn_data_list)
 		{
-			if (buttonData7.root_type != FreeSkillSelect.RootType.Null)
+			if (buttonData3.root_type != FreeSkillSelect.RootType.Null.ToString())
 			{
-				action(buttonData7.root_type);
+				action(buttonData3.root_type);
 			}
 		}
-		return list;
+		return top_btn_data_list;
 	}
 
 	private static FreeSkillSelect.ButtonData GetButtonData(List<FreeSkillSelect.ButtonData> check_list, string name)
@@ -807,7 +846,7 @@ public class FreeSkillSelect : MonoBehaviour
 
 		public Skill.Data skill_data;
 
-		public FreeSkillSelect.RootType root_type;
+		public string root_type;
 	}
 
 	private class UpdateObject

+ 1 - 0
Assembly-CSharp/FullBodyIKCtrl.cs

@@ -185,6 +185,7 @@ public class FullBodyIKCtrl : MonoBehaviour
 		}
 		this.BodyEffector.target = this.BodyTarget;
 		this.BodyEffector.effectChildNodes = false;
+		this.FullbodyIK.solver.spineStiffness = 0f;
 		this.m_FullbodyIK.enabled = false;
 	}
 

+ 1 - 1
Assembly-CSharp/GameInShopMain.cs

@@ -249,7 +249,7 @@ public class GameInShopMain : WfScreenChildren
 				GameMain.Instance.BgMgr.ChangeBg(Shop.bg_data_dic[this.game_in_shop_.select_bg_id].bg_prefab_name);
 				CameraMain mainCamera = GameMain.Instance.MainCamera;
 				Transform bone = this.maid_.body0.GetBone("Bip01 Head");
-				mainCamera.SetTargetPos(bone.position - new Vector3(-0.01597595f, 0.224536926f, -0.043105565f), true);
+				mainCamera.SetTargetPos(bone.position - new Vector3(-0.01597595f, 0.22453693f, -0.043105565f), true);
 				mainCamera.SetDistance(1.6f, true);
 				mainCamera.SetAroundAngle(new Vector2(173.7126f, 9.999997f), true);
 			}

+ 2 - 2
Assembly-CSharp/GameMain.cs

@@ -684,7 +684,7 @@ public class GameMain : MonoSingleton<GameMain>
 		serializeHeader.strComment = f_strComment;
 		serializeHeader.productTypeID = (int)Product.type;
 		binaryWriter.Write("COM3D2_SAVE");
-		binaryWriter.Write(1510);
+		binaryWriter.Write(1550);
 		this.SerializeWriteHeader(binaryWriter, serializeHeader);
 		binaryWriter.Write("bookmark_kk_01");
 		GameMain.BinaryBookmark binaryBookmark = new GameMain.BinaryBookmark(binaryWriter);
@@ -806,7 +806,7 @@ public class GameMain : MonoSingleton<GameMain>
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("COM3D2_SAVE");
-		binaryWriter.Write(1510);
+		binaryWriter.Write(1550);
 		this.SerializeWriteHeader(binaryWriter, saveDataHeader);
 		binaryWriter.Write(array, (int)saveDataHeader.lHeaderSize, (int)((long)array.Length - saveDataHeader.lHeaderSize));
 		File.WriteAllBytes(path, memoryStream.ToArray());

+ 1 - 1
Assembly-CSharp/GameModeManager.cs

@@ -32,7 +32,7 @@ public static class GameModeManager
 	public static bool Serialize(BinaryWriter brWrite)
 	{
 		brWrite.Write("CM3D21_GAME_MODE_MGR");
-		brWrite.Write(1510);
+		brWrite.Write(1550);
 		brWrite.Write(1);
 		brWrite.Write((int)GameModeManager.m_NowGameModeType);
 		return true;

+ 8 - 4
Assembly-CSharp/GameUty.cs

@@ -257,8 +257,11 @@ public class GameUty
 				int num2 = binaryReader.ReadInt32();
 				for (int i = 0; i < num2; i++)
 				{
-					string item = binaryReader.ReadString();
-					list.Add(item);
+					string text = binaryReader.ReadString();
+					if (!(text == "cas"))
+					{
+						list.Add(text);
+					}
 				}
 			}
 		}
@@ -272,6 +275,7 @@ public class GameUty
 		int check_ver_no = 3;
 		Func<string, bool> AddFolderOrArchive = delegate(string name)
 		{
+			NDebug.Assert(name != "parts_cas", "CC危険。" + name);
 			bool flag4 = GameUty.m_FileSystem.AddArchive(gameDataPath + "\\" + name + ".arc");
 			if (flag4)
 			{
@@ -1426,14 +1430,14 @@ public class GameUty
 
 	public static string GetBuildVersionText()
 	{
-		int num = 1510;
+		int num = 1550;
 		return (num >= 1000) ? ((float)num / 1000f).ToString("F2") : ((float)num / 100f).ToString("F2");
 	}
 
 	public static string GetGameVersionText()
 	{
 		string text = "COM3D2x64.exe";
-		int num = 1510;
+		int num = 1550;
 		string path = UTY.gameProjectPath + "\\update.lst";
 		string[] array = new string[0];
 		if (File.Exists(path))

+ 15 - 15
Assembly-CSharp/GizmoRender.cs

@@ -253,10 +253,10 @@ public class GizmoRender : MonoBehaviour
 					{
 						goto IL_1C9F;
 					}
-					float num7 = num4 + 3.14159274f;
-					if (num7 > 6.28318548f)
+					float num7 = num4 + 3.1415927f;
+					if (num7 > 6.2831855f)
 					{
-						if ((num5 < 0f || num5 > num7 - 6.28318548f) && num5 <= num4)
+						if ((num5 < 0f || num5 > num7 - 6.2831855f) && num5 <= num4)
 						{
 							num6 = -num6;
 						}
@@ -400,10 +400,10 @@ public class GizmoRender : MonoBehaviour
 					{
 						goto IL_1C9F;
 					}
-					float num13 = num10 + 3.14159274f;
-					if (num13 > 6.28318548f)
+					float num13 = num10 + 3.1415927f;
+					if (num13 > 6.2831855f)
 					{
-						if ((num11 < 0f || num11 > num13 - 6.28318548f) && num11 <= num10)
+						if ((num11 < 0f || num11 > num13 - 6.2831855f) && num11 <= num10)
 						{
 							num12 = -num12;
 						}
@@ -544,10 +544,10 @@ public class GizmoRender : MonoBehaviour
 					num18 = Mathf.Acos(num18);
 					if (num16 != num17)
 					{
-						float num19 = num16 + 3.14159274f;
-						if (num19 > 6.28318548f)
+						float num19 = num16 + 3.1415927f;
+						if (num19 > 6.2831855f)
 						{
-							if ((num17 < 0f || num17 > num19 - 6.28318548f) && num17 <= num16)
+							if ((num17 < 0f || num17 > num19 - 6.2831855f) && num17 <= num16)
 							{
 								num18 = -num18;
 							}
@@ -723,7 +723,7 @@ public class GizmoRender : MonoBehaviour
 			}
 			else
 			{
-				result = 6.28318548f - Mathf.Acos(dot);
+				result = 6.2831855f - Mathf.Acos(dot);
 			}
 		}
 		else if (y > 0f)
@@ -732,7 +732,7 @@ public class GizmoRender : MonoBehaviour
 		}
 		else
 		{
-			result = 6.28318548f - Mathf.Acos(dot);
+			result = 6.2831855f - Mathf.Acos(dot);
 		}
 		return result;
 	}
@@ -763,12 +763,12 @@ public class GizmoRender : MonoBehaviour
 		GL.Begin(4);
 		for (int i = 0; i <= 30; i++)
 		{
-			Vector3 vector = vtx * Mathf.Cos(0.209439516f * (float)i) * fct;
-			vector += vty * Mathf.Sin(0.209439516f * (float)i) * fct;
+			Vector3 vector = vtx * Mathf.Cos(0.20943952f * (float)i) * fct;
+			vector += vty * Mathf.Sin(0.20943952f * (float)i) * fct;
 			vector += axis * fct2;
 			GL.Vertex(vector);
-			vector = vtx * Mathf.Cos(0.209439516f * (float)(i + 1)) * fct;
-			vector += vty * Mathf.Sin(0.209439516f * (float)(i + 1)) * fct;
+			vector = vtx * Mathf.Cos(0.20943952f * (float)(i + 1)) * fct;
+			vector += vty * Mathf.Sin(0.20943952f * (float)(i + 1)) * fct;
 			vector += axis * fct2;
 			GL.Vertex(vector);
 			GL.Vertex(axis);

+ 2 - 2
Assembly-CSharp/HandSignShortcut.cs

@@ -506,7 +506,7 @@ public class HandSignShortcut : MonoBehaviour
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1510;
+			this.m_nVersion = 1550;
 		}
 
 		public void OnAfterDeserialize()
@@ -815,7 +815,7 @@ public class HandSignShortcut : MonoBehaviour
 		private const string CONF_NAME = "MaidFingerDataList.json";
 
 		[SerializeField]
-		private int m_nVersion = 1510;
+		private int m_nVersion = 1550;
 
 		[SerializeField]
 		private List<HandSignShortcut.MaidFingerData> MaidFingerDataList = new List<HandSignShortcut.MaidFingerData>();

+ 1 - 1
Assembly-CSharp/IFade.cs

@@ -1,6 +1,6 @@
 using System;
 
-public interface IFade
+public interface IFadeCam
 {
 	float Range { get; set; }
 }

+ 6 - 0
Assembly-CSharp/KaraokeDataManager.cs

@@ -305,6 +305,10 @@ public class KaraokeDataManager : MonoBehaviour
 		{
 			list.Add("Missy");
 		}
+		if (GameMain.Instance.CMSystem.GetTmpGenericFlag("Childhood_KARAOKE") == 1)
+		{
+			list.Add("Childhood");
+		}
 		List<Maid> list2 = new List<Maid>();
 		List<Maid> list3 = new List<Maid>();
 		CharacterSelectManager.DefaultMaidList(list3);
@@ -749,6 +753,8 @@ public class KaraokeDataManager : MonoBehaviour
 
 	public const string STR_PERSONAL_MISSY_ENABLED_FLAG = "Missy_KARAOKE";
 
+	public const string STR_PERSONAL_CHILDHOOD_ENABLED_FLAG = "Childhood_KARAOKE";
+
 	private Dictionary<int, KaraokeDataManager.MusicData> m_MusicDataArray = new Dictionary<int, KaraokeDataManager.MusicData>();
 
 	private Dictionary<int, KaraokeDataManager.BackgroundData> m_BackgroundDataArray = new Dictionary<int, KaraokeDataManager.BackgroundData>();

+ 8 - 8
Assembly-CSharp/KasaiUtility.cs

@@ -153,9 +153,9 @@ public class KasaiUtility
 	{
 		if (!is_reverse)
 		{
-			return Mathf.Sin(rate * 90f * 0.0174532924f);
+			return Mathf.Sin(rate * 90f * 0.017453292f);
 		}
-		return 1f - Mathf.Sin(rate * 90f * 0.0174532924f);
+		return 1f - Mathf.Sin(rate * 90f * 0.017453292f);
 	}
 
 	public static float CosRate11(float current_time, float total_time, bool is_abs = false, bool is_reverse = false, bool allow_timeover = false)
@@ -165,17 +165,17 @@ public class KasaiUtility
 		{
 			if (is_reverse)
 			{
-				return 1f - Mathf.Abs(Mathf.Cos(num * 180f * 0.0174532924f));
+				return 1f - Mathf.Abs(Mathf.Cos(num * 180f * 0.017453292f));
 			}
-			return Mathf.Abs(Mathf.Cos(num * 180f * 0.0174532924f));
+			return Mathf.Abs(Mathf.Cos(num * 180f * 0.017453292f));
 		}
 		else
 		{
 			if (is_reverse)
 			{
-				return -Mathf.Cos(num * 180f * 0.0174532924f);
+				return -Mathf.Cos(num * 180f * 0.017453292f);
 			}
-			return Mathf.Cos(num * 180f * 0.0174532924f);
+			return Mathf.Cos(num * 180f * 0.017453292f);
 		}
 	}
 
@@ -188,8 +188,8 @@ public class KasaiUtility
 	public static Vector2 AngleDirection(float angle)
 	{
 		Vector2 zero = Vector2.zero;
-		zero.x = Mathf.Cos(angle * 0.0174532924f);
-		zero.y = Mathf.Sin(angle * 0.0174532924f);
+		zero.x = Mathf.Cos(angle * 0.017453292f);
+		zero.y = Mathf.Sin(angle * 0.017453292f);
 		return zero;
 	}
 

+ 1 - 1
Assembly-CSharp/Kasizuki/KasizukiManager.cs

@@ -872,7 +872,7 @@ namespace Kasizuki
 		public void Serialize(BinaryWriter bw)
 		{
 			bw.Write("COM3D2_KASIZUKI");
-			bw.Write(1510);
+			bw.Write(1550);
 			this.SerializeOriginHeader(bw);
 			foreach (KeyValuePair<int, KasizukiManager.SaveData> keyValuePair in this.m_SaveDataArray)
 			{

+ 16 - 16
Assembly-CSharp/Leap/TestHandFactory.cs

@@ -29,12 +29,12 @@ namespace Leap
 			list.Add(TestHandFactory.MakeMiddleFinger(frameId, handId, isLeft));
 			list.Add(TestHandFactory.MakeRingFinger(frameId, handId, isLeft));
 			list.Add(TestHandFactory.MakePinky(frameId, handId, isLeft));
-			Vector vector = new Vector(-7.05809927f, 4f, 50f);
+			Vector vector = new Vector(-7.0580993f, 4f, 50f);
 			Vector vector2 = vector + 250f * Vector.Backward;
 			Arm arm = new Arm(vector2, vector, (vector2 + vector) / 2f, Vector.Forward, 250f, 41f, LeapQuaternion.Identity);
-			Hand hand = new Hand((long)frameId, handId, 1f, 0f, 0f, 0f, 0f, 85f, isLeft, 0f, arm, list, new Vector(0f, 0f, 0f), new Vector(0f, 0f, 0f), new Vector(0f, 0f, 0f), Vector.Down, Vector.Forward, new Vector(-4.36385775f, 6.5f, 31.0111351f));
+			Hand hand = new Hand((long)frameId, handId, 1f, 0f, 0f, 0f, 0f, 85f, isLeft, 0f, arm, list, new Vector(0f, 0f, 0f), new Vector(0f, 0f, 0f), new Vector(0f, 0f, 0f), Vector.Down, Vector.Forward, new Vector(-4.3638577f, 6.5f, 31.011135f));
 			LeapTransform identity = LeapTransform.Identity;
-			identity.rotation = TestHandFactory.AngleAxis(3.14159274f, Vector.Forward);
+			identity.rotation = TestHandFactory.AngleAxis(3.1415927f, Vector.Forward);
 			if (isLeft)
 			{
 				identity.translation = new Vector(80f, 120f, 0f);
@@ -67,9 +67,9 @@ namespace Leap
 
 		private static Finger MakeThumb(int frameId, int handId, bool isLeft)
 		{
-			Vector position = new Vector(19.33826f, -6f, 53.1684837f);
+			Vector position = new Vector(19.33826f, -6f, 53.168484f);
 			Vector forward = new Vector(0.6363291f, -0.5f, -0.8997871f);
-			Vector up = new Vector(0.804793954f, 0.447213918f, 0.390264541f);
+			Vector up = new Vector(0.80479395f, 0.44721392f, 0.39026454f);
 			float[] jointLengths = new float[]
 			{
 				0f,
@@ -82,9 +82,9 @@ namespace Leap
 
 		private static Finger MakeIndexFinger(int frameId, int handId, bool isLeft)
 		{
-			Vector position = new Vector(23.1812859f, 2f, -23.1493454f);
-			Vector forward = new Vector(0.16604431f, -0.148340449f, -0.974897146f);
-			Vector up = new Vector(0.0249066465f, 0.988936365f, -0.146234572f);
+			Vector position = new Vector(23.181286f, 2f, -23.149345f);
+			Vector forward = new Vector(0.16604431f, -0.14834045f, -0.97489715f);
+			Vector up = new Vector(0.024906646f, 0.98893636f, -0.14623457f);
 			float[] jointLengths = new float[]
 			{
 				68.12f,
@@ -97,9 +97,9 @@ namespace Leap
 
 		private static Finger MakeMiddleFinger(int frameId, int handId, bool isLeft)
 		{
-			Vector position = new Vector(2.78877831f, 4f, -23.2521057f);
-			Vector forward = new Vector(0.0295207854f, -0.148340449f, -0.988495648f);
-			Vector up = new Vector(-0.145765275f, 0.977715969f, -0.151075974f);
+			Vector position = new Vector(2.7887783f, 4f, -23.252106f);
+			Vector forward = new Vector(0.029520785f, -0.14834045f, -0.98849565f);
+			Vector up = new Vector(-0.14576527f, 0.97771597f, -0.15107597f);
 			float[] jointLengths = new float[]
 			{
 				64.6f,
@@ -112,9 +112,9 @@ namespace Leap
 
 		private static Finger MakeRingFinger(int frameId, int handId, bool isLeft)
 		{
-			Vector position = new Vector(-17.4471684f, 4f, -17.2791443f);
-			Vector forward = new Vector(-0.121317938f, -0.148340344f, -0.9814668f);
-			Vector up = new Vector(-0.216910467f, 0.968834937f, -0.1196191f);
+			Vector position = new Vector(-17.447168f, 4f, -17.279144f);
+			Vector forward = new Vector(-0.12131794f, -0.14834034f, -0.9814668f);
+			Vector up = new Vector(-0.21691047f, 0.96883494f, -0.1196191f);
 			float[] jointLengths = new float[]
 			{
 				58f,
@@ -128,8 +128,8 @@ namespace Leap
 		private static Finger MakePinky(int frameId, int handId, bool isLeft)
 		{
 			Vector position = new Vector(-35.33744f, 0f, -9.728714f);
-			Vector forward = new Vector(-0.259328932f, -0.105851226f, -0.959970832f);
-			Vector up = new Vector(-0.353350222f, 0.9354595f, -0.007693566f);
+			Vector forward = new Vector(-0.25932893f, -0.105851226f, -0.95997083f);
+			Vector up = new Vector(-0.35335022f, 0.9354595f, -0.007693566f);
 			float[] jointLengths = new float[]
 			{
 				53.69f,

+ 1 - 1
Assembly-CSharp/Leap/Unity/CapsuleHand.cs

@@ -277,7 +277,7 @@ namespace Leap.Unity
 			Vector3 a = Vector3.forward * length;
 			for (int i = 0; i < this._cylinderResolution; i++)
 			{
-				float f = 6.28318548f * (float)i / (float)this._cylinderResolution;
+				float f = 6.2831855f * (float)i / (float)this._cylinderResolution;
 				float x = 0.006f * Mathf.Cos(f);
 				float y = 0.006f * Mathf.Sin(f);
 				Vector3 b = new Vector3(x, y, 0f);

+ 4 - 4
Assembly-CSharp/Leap/Unity/LeapDeviceInfo.cs

@@ -25,8 +25,8 @@ namespace Leap.Unity
 					this.isEmbedded = false;
 					this.baseline = 0.064f;
 					this.focalPlaneOffset = 0.08f;
-					this.horizontalViewAngle = 132.000015f;
-					this.verticalViewAngle = 115.000023f;
+					this.horizontalViewAngle = 132.00002f;
+					this.verticalViewAngle = 115.00002f;
 					this.trackingRange = 0.47f;
 					this.serialID = string.Empty;
 				}
@@ -36,8 +36,8 @@ namespace Leap.Unity
 				this.isEmbedded = false;
 				this.baseline = 0.04f;
 				this.focalPlaneOffset = 0.07f;
-				this.horizontalViewAngle = 132.000015f;
-				this.verticalViewAngle = 115.000023f;
+				this.horizontalViewAngle = 132.00002f;
+				this.verticalViewAngle = 115.00002f;
 				this.trackingRange = 0.47f;
 				this.serialID = string.Empty;
 			}

+ 1 - 1
Assembly-CSharp/Leap/Unity/RuntimeGizmos/RuntimeGizmoManager.cs

@@ -233,7 +233,7 @@ namespace Leap.Unity.RuntimeGizmos
 			int num = 96;
 			for (int m = 0; m < 32; m++)
 			{
-				float f = 6.28318548f * (float)m / 32f;
+				float f = 6.2831855f * (float)m / 32f;
 				float num2 = 0.5f * Mathf.Cos(f);
 				float num3 = 0.5f * Mathf.Sin(f);
 				for (int n = 0; n < 3; n++)

+ 3 - 3
Assembly-CSharp/Leap/Unity/Utils.cs

@@ -40,8 +40,8 @@ namespace Leap.Unity
 			float num2 = 0f;
 			while (Mathf.Abs(num2) <= Mathf.Abs(arc))
 			{
-				float num3 = Mathf.Cos(num2 * 0.0174532924f);
-				float num4 = Mathf.Sin(num2 * 0.0174532924f);
+				float num3 = Mathf.Cos(num2 * 0.017453292f);
+				float num4 = Mathf.Sin(num2 * 0.017453292f);
 				vector.x = center.x + radius * (num3 * forward.x + num4 * normalized.x);
 				vector.y = center.y + radius * (num3 * forward.y + num4 * normalized.y);
 				vector.z = center.z + radius * (num3 * forward.z + num4 * normalized.z);
@@ -56,7 +56,7 @@ namespace Leap.Unity
 			float num = height / (float)quality;
 			for (float num2 = num; num2 <= height; num2 += num)
 			{
-				Utils.DrawCircle(origin + direction * num2, direction, Mathf.Tan(angle * 0.0174532924f) * num2, color, quality * 8, duration, depthTest);
+				Utils.DrawCircle(origin + direction * num2, direction, Mathf.Tan(angle * 0.017453292f) * num2, color, quality * 8, duration, depthTest);
 			}
 		}
 	}

+ 9 - 5
Assembly-CSharp/Maid.cs

@@ -3,6 +3,7 @@ using System.Collections;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using MaidExtension;
 using MaidStatus;
 using UnityEngine;
 using XVI.AniLipSync;
@@ -207,6 +208,7 @@ public class Maid : MonoBehaviour
 	public void Initialize(string f_strTypeName, bool f_bMan)
 	{
 		this.m_Parts = base.gameObject.AddComponent<MaidParts>();
+		this.mekureController.maid = this;
 		this.m_goOffset = new GameObject("Offset");
 		this.m_goOffset.transform.parent = base.gameObject.transform;
 		this.TypeName = f_strTypeName;
@@ -1486,7 +1488,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeProp(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MPROP_LIST");
-		f_bwWrite.Write(1510);
+		f_bwWrite.Write(1550);
 		f_bwWrite.Write(this.m_dicMaidProp.Count);
 		int num = 0;
 		foreach (KeyValuePair<string, MaidProp> keyValuePair in this.m_dicMaidProp)
@@ -1520,7 +1522,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeMisc(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MAID_MISC");
-		f_bwWrite.Write(1510);
+		f_bwWrite.Write(1550);
 		f_bwWrite.Write(this.m_nActiveSlotNo);
 		if (this.m_texIcon != null)
 		{
@@ -1545,7 +1547,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeBody(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MAID_BODY");
-		f_bwWrite.Write(1510);
+		f_bwWrite.Write(1550);
 		return true;
 	}
 
@@ -2596,7 +2598,7 @@ public class Maid : MonoBehaviour
 		}
 		this.FaceName2 = tag;
 		this.FacePlus = 1f / t;
-		this.FaceTime = this.FacePlus * 0.0166666675f;
+		this.FaceTime = this.FacePlus * 0.016666668f;
 	}
 
 	public void FaceBlend(string tag)
@@ -3027,7 +3029,7 @@ public class Maid : MonoBehaviour
 			if (this.MabatakiVal > 0f)
 			{
 				float num8 = this.MabatakiVal * this.MabatakiVal;
-				num8 = Mathf.Sin(num8 * 3.14159274f);
+				num8 = Mathf.Sin(num8 * 3.1415927f);
 				this.body0.Face.morph.EyeMabataki = num8;
 			}
 			else
@@ -3106,6 +3108,8 @@ public class Maid : MonoBehaviour
 
 	private bool m_visible;
 
+	public readonly MaidMekureController mekureController = new MaidMekureController();
+
 	public Action<Maid> onMouseUpEvent;
 
 	public string TypeName = string.Empty;

+ 147 - 0
Assembly-CSharp/MaidExtension/MaidMekureController.cs

@@ -0,0 +1,147 @@
+using System;
+using UnityEngine;
+
+namespace MaidExtension
+{
+	public class MaidMekureController
+	{
+		public MaidMekureController(Maid maid)
+		{
+			this.maid = maid;
+		}
+
+		public MaidMekureController()
+		{
+		}
+
+		public static string[] GetTargetMpnNames(Maid maid, MaidMekureController.MekureType type)
+		{
+			if (maid == null)
+			{
+				Debug.LogWarning("MaidMekureController::GetTargetMpnNames\n maid is null.");
+				return new string[0];
+			}
+			if (type == MaidMekureController.MekureType.MekureSkirtFront || type == MaidMekureController.MekureType.MekureSkirtBack)
+			{
+				return new string[]
+				{
+					"skirt",
+					"onepiece"
+				};
+			}
+			if (type != MaidMekureController.MekureType.ZurasiPants)
+			{
+				return new string[0];
+			}
+			return new string[]
+			{
+				"panz",
+				"mizugi"
+			};
+		}
+
+		public static string GetItemChangeNames(MaidMekureController.MekureType type)
+		{
+			if (type == MaidMekureController.MekureType.MekureSkirtFront)
+			{
+				return "めくれスカート";
+			}
+			if (type == MaidMekureController.MekureType.MekureSkirtBack)
+			{
+				return "めくれスカート後ろ";
+			}
+			if (type != MaidMekureController.MekureType.ZurasiPants)
+			{
+				return string.Empty;
+			}
+			return "パンツずらし";
+		}
+
+		public bool IsSupportedMekure(MaidMekureController.MekureType type)
+		{
+			if (this.maid == null)
+			{
+				Debug.LogWarning("MaidMekureController::IsSupportedMekure\n maid is null.");
+				return false;
+			}
+			if (Product.isPublic)
+			{
+				return false;
+			}
+			string itemChangeNames = MaidMekureController.GetItemChangeNames(type);
+			foreach (string mpn in MaidMekureController.GetTargetMpnNames(this.maid, type))
+			{
+				if (this.maid.IsItemChangeEnabled(mpn, itemChangeNames))
+				{
+					return true;
+				}
+			}
+			return false;
+		}
+
+		public bool SetEnabledMekure(MaidMekureController.MekureType type, bool enabled, bool runAllProcProp = true)
+		{
+			if (this.maid == null)
+			{
+				Debug.LogWarning("MaidMekureController::SetEnabledMekure\n maid is null.");
+				return false;
+			}
+			if (!this.IsSupportedMekure(type) || enabled == this.IsEnabledMekure(type))
+			{
+				return false;
+			}
+			string[] targetMpnNames = MaidMekureController.GetTargetMpnNames(this.maid, type);
+			if (enabled)
+			{
+				string itemChangeNames = MaidMekureController.GetItemChangeNames(type);
+				foreach (string mpn in targetMpnNames)
+				{
+					this.maid.ItemChangeTemp(mpn, itemChangeNames);
+				}
+			}
+			else
+			{
+				foreach (string mpn2 in targetMpnNames)
+				{
+					this.maid.ResetProp(mpn2, false);
+				}
+			}
+			if (runAllProcProp)
+			{
+				this.maid.AllProcProp();
+			}
+			return true;
+		}
+
+		public bool IsEnabledMekure(MaidMekureController.MekureType type)
+		{
+			if (this.maid == null)
+			{
+				Debug.LogWarning("MaidMekureController::IsEnabledMekure\n maid is null.");
+				return false;
+			}
+			if (Product.isPublic)
+			{
+				return false;
+			}
+			string itemChangeNames = MaidMekureController.GetItemChangeNames(type);
+			foreach (string mpn in MaidMekureController.GetTargetMpnNames(this.maid, type))
+			{
+				if (this.maid.IsItemChange(mpn, itemChangeNames))
+				{
+					return true;
+				}
+			}
+			return false;
+		}
+
+		public Maid maid;
+
+		public enum MekureType
+		{
+			MekureSkirtFront,
+			MekureSkirtBack,
+			ZurasiPants
+		}
+	}
+}

+ 1 - 1
Assembly-CSharp/MaidParts.cs

@@ -37,7 +37,7 @@ public class MaidParts : MonoBehaviour
 	public unsafe bool Serialize(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MULTI_COL");
-		f_bwWrite.Write(1510);
+		f_bwWrite.Write(1550);
 		f_bwWrite.Write(this.m_aryPartsColor.Length);
 		for (int i = 0; i < this.m_aryPartsColor.Length; i++)
 		{

+ 4 - 0
Assembly-CSharp/MaidPlate.cs

@@ -223,6 +223,10 @@ public class MaidPlate : MonoBehaviour
 		this.left_plate_.engage_heart.gameObject.SetActive(false);
 		this.left_plate_.contract_type_label.text = string.Empty;
 		this.left_plate_.thumbnail_sprite.sprite2D = null;
+		if (this.left_plate_.heroineTypeLocalize != null)
+		{
+			this.left_plate_.heroineTypeLocalize.GetComponent<UILabel>().text = string.Empty;
+		}
 	}
 
 	public Maid maid

+ 1 - 1
Assembly-CSharp/MaidProp.cs

@@ -8,7 +8,7 @@ public class MaidProp
 	public bool Serialize(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MPROP");
-		f_bwWrite.Write(1510);
+		f_bwWrite.Write(1550);
 		f_bwWrite.Write(this.idx);
 		f_bwWrite.Write(this.name);
 		f_bwWrite.Write(this.type);

+ 2 - 1
Assembly-CSharp/MaidStatus/AdditionalRelation.cs

@@ -6,6 +6,7 @@ namespace MaidStatus
 	{
 		Null,
 		Vigilance,
-		LoverPlus
+		LoverPlus,
+		Slave
 	}
 }

+ 36 - 19
Assembly-CSharp/MaidStatus/EnumConvert.cs

@@ -30,13 +30,25 @@ namespace MaidStatus
 			return "MaidStatus/関係タイプ/" + EnumConvert.GetString(relationSpecial);
 		}
 
-		public static string GetTerm(Relation relation, AdditionalRelation relationEnhance, SpecialRelation relationSpecial)
+		public static string GetTerm(Contract contract, Relation relation, AdditionalRelation relationEnhance, SpecialRelation relationSpecial)
 		{
 			if (relationSpecial != SpecialRelation.Null)
 			{
 				return EnumConvert.GetTerm(relationSpecial);
 			}
-			return (relationEnhance != AdditionalRelation.Null) ? EnumConvert.GetTerm(relationEnhance) : EnumConvert.GetTerm(relation);
+			if (relationSpecial != SpecialRelation.Null)
+			{
+				return EnumConvert.GetTerm(relationSpecial);
+			}
+			if (relationEnhance == AdditionalRelation.Null)
+			{
+				return EnumConvert.GetTerm(relation);
+			}
+			if (relationEnhance != AdditionalRelation.Slave)
+			{
+				return EnumConvert.GetTerm(relationEnhance);
+			}
+			return "MaidStatus/関係タイプ/" + ((contract != Contract.Free) ? "専属" : "フリー") + EnumConvert.GetString(relationEnhance);
 		}
 
 		public static string GetString(HeroineType heroineType)
@@ -135,23 +147,20 @@ namespace MaidStatus
 		public static string GetString(AdditionalRelation relation)
 		{
 			string result = string.Empty;
-			if (relation != AdditionalRelation.Vigilance)
-			{
-				if (relation != AdditionalRelation.LoverPlus)
-				{
-					if (relation == AdditionalRelation.Null)
-					{
-						result = "Null";
-					}
-				}
-				else
-				{
-					result = "恋人+";
-				}
-			}
-			else
+			switch (relation)
 			{
+			case AdditionalRelation.Null:
+				result = "Null";
+				break;
+			case AdditionalRelation.Vigilance:
 				result = "警戒";
+				break;
+			case AdditionalRelation.LoverPlus:
+				result = "恋人+";
+				break;
+			case AdditionalRelation.Slave:
+				result = "愛奴";
+				break;
 			}
 			return result;
 		}
@@ -173,13 +182,21 @@ namespace MaidStatus
 			return result;
 		}
 
-		public static string GetString(Relation relation, AdditionalRelation relationEnhance, SpecialRelation relationSpecial)
+		public static string GetString(Contract contract, Relation relation, AdditionalRelation relationEnhance, SpecialRelation relationSpecial)
 		{
 			if (relationSpecial != SpecialRelation.Null)
 			{
 				return EnumConvert.GetString(relationSpecial);
 			}
-			return (relationEnhance != AdditionalRelation.Null) ? EnumConvert.GetString(relationEnhance) : EnumConvert.GetString(relation);
+			if (relationEnhance == AdditionalRelation.Null)
+			{
+				return EnumConvert.GetString(relation);
+			}
+			if (relationEnhance != AdditionalRelation.Slave)
+			{
+				return EnumConvert.GetString(relationEnhance);
+			}
+			return ((contract != Contract.Free) ? "専属" : "フリー") + EnumConvert.GetString(relationEnhance);
 		}
 
 		public static string GetString(Relation relation)

+ 11 - 4
Assembly-CSharp/MaidStatus/Status.cs

@@ -1372,7 +1372,7 @@ namespace MaidStatus
 		{
 			this.SetFlag("__1330_specialrelation__", (int)this.specialRelation);
 			binary.Write("CM3D2_MAID_STATUS");
-			binary.Write(1510);
+			binary.Write(1550);
 			binary.Write(this.guid);
 			binary.Write(this.creationTime);
 			binary.Write((short)this.heroineType);
@@ -1485,6 +1485,7 @@ namespace MaidStatus
 			binary.Write((short)this.additionalRelation_);
 			binary.Write(this.nickName_);
 			binary.Write(this.age);
+			binary.Write(1000);
 			binary.Write(2177629204U);
 		}
 
@@ -1745,8 +1746,12 @@ namespace MaidStatus
 				this.specialRelation = (SpecialRelation)this.GetFlag("__1330_specialrelation__");
 			}
 			this.RemoveFlag("__1330_specialrelation__");
-			uint num9 = binary.ReadUInt32();
-			NDebug.Assert(2177629204U == num9, "メイドパラメータのロードに失敗しました");
+			if (1540 <= num)
+			{
+				int num9 = binary.ReadInt32();
+			}
+			uint num10 = binary.ReadUInt32();
+			NDebug.Assert(2177629204U == num10, "メイドパラメータのロードに失敗しました");
 			if (num <= 1050)
 			{
 				YotogiClass.Data data = YotogiClass.GetData("Kokuhakuplay");
@@ -1786,7 +1791,7 @@ namespace MaidStatus
 			List<Skill.Data> learnPossibleSkills = Skill.GetLearnPossibleSkills(this);
 			foreach (Skill.Data data2 in learnPossibleSkills)
 			{
-				if (data2.specialConditionType == Skill.Data.SpecialConditionType.GP01Recollect || data2.specialConditionType == Skill.Data.SpecialConditionType.GP02Recollect)
+				if (data2.specialConditionType == Skill.Data.SpecialConditionType.GP01Recollect || data2.specialConditionType == Skill.Data.SpecialConditionType.GP02Recollect || data2.specialConditionType == Skill.Data.SpecialConditionType.OnlyRecollect)
 				{
 					this.yotogiSkill.Add(data2);
 				}
@@ -2006,6 +2011,8 @@ namespace MaidStatus
 			this.profileComment = MaidProfile.Create(this.maid, true);
 		}
 
+		public const int SaveDataVersion = 1000;
+
 		public const int MaidPointUpStatus = 20;
 
 		public const int NullID = -2147483648;

+ 1 - 1
Assembly-CSharp/Menu.cs

@@ -974,7 +974,7 @@ public class Menu : MonoBehaviour
 			Directory.CreateDirectory(text);
 		}
 		StreamWriter streamWriter = new StreamWriter(text + "\\" + text2 + ".txt", false, Encoding.UTF8);
-		streamWriter.WriteLine("出力バージョン\t" + 1510);
+		streamWriter.WriteLine("出力バージョン\t" + 1550);
 		streamWriter.WriteLine("基本アイテム\t" + filename.Replace(" ", ":"));
 		try
 		{

+ 1 - 1
Assembly-CSharp/Misc.cs

@@ -2,7 +2,7 @@
 
 public class Misc
 {
-	public const int GAME_VERSION = 1510;
+	public const int GAME_VERSION = 1550;
 
 	public const string GAME_DATA_PATH = "GameData";
 

+ 1 - 1
Assembly-CSharp/ModCompile.cs

@@ -604,7 +604,7 @@ public class ModCompile : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_MESH");
-		binaryWriter.Write(1510);
+		binaryWriter.Write(1550);
 		string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(f_strMqoFile);
 		binaryWriter.Write(fileNameWithoutExtension);
 		binaryWriter.Write(exObjIn2.strName);

+ 3 - 3
Assembly-CSharp/MotionAction_Mgr.cs

@@ -394,8 +394,8 @@ public class MotionAction_Mgr : PartsMgrBase
 							{
 								float num = 1f - Mathf.Clamp01(pos.x / (float)UICamera.ScreenWidth);
 								float num2 = 1f - Mathf.Clamp01(pos.y / (float)UICamera.ScreenHeight);
-								vector2.x = Mathf.Cos(num * 180f * 0.0174532924f) * this.m_HandMoveWidth;
-								vector2.y = Mathf.Cos(num2 * 180f * 0.0174532924f) * this.m_HandMoveHeight;
+								vector2.x = Mathf.Cos(num * 180f * 0.017453292f) * this.m_HandMoveWidth;
+								vector2.y = Mathf.Cos(num2 * 180f * 0.017453292f) * this.m_HandMoveHeight;
 								this.m_CheckHand.transform.localPosition = vector2 + this.m_HandRelatePos;
 							}
 							this.m_MotionCheckDataMouse.MotionEffect.transform.localPosition = Vector3.forward * this.m_EffectAdjust;
@@ -567,7 +567,7 @@ public class MotionAction_Mgr : PartsMgrBase
 			float num2 = Vector3.Dot(checkdata.NowVec, checkdata.LastVec);
 			if (num2 < 0f)
 			{
-				float num3 = Mathf.Cos(this.m_JudgeLine * 0.0174532924f);
+				float num3 = Mathf.Cos(this.m_JudgeLine * 0.017453292f);
 				bool flag;
 				if (this.m_MotionCheckDataVR.Count > 0)
 				{

+ 2 - 2
Assembly-CSharp/NoteEffect.cs

@@ -19,8 +19,8 @@ public class NoteEffect : NoteBase
 			if (!RhythmAction_Mgr.Instance.IsPause)
 			{
 				timer += RhythmAction_Mgr.Instance.DanceDeltaTime;
-				this.m_MySprite.width = (int)((float)this.m_FirstWidth * Mathf.Sin(90f * Mathf.Clamp01(timer / this.m_EffectTime) * 0.0174532924f));
-				this.m_MySprite.height = (int)((float)this.m_FirstHeight * Mathf.Sin(90f * Mathf.Clamp01(timer / this.m_EffectTime) * 0.0174532924f));
+				this.m_MySprite.width = (int)((float)this.m_FirstWidth * Mathf.Sin(90f * Mathf.Clamp01(timer / this.m_EffectTime) * 0.017453292f));
+				this.m_MySprite.height = (int)((float)this.m_FirstHeight * Mathf.Sin(90f * Mathf.Clamp01(timer / this.m_EffectTime) * 0.017453292f));
 				if (timer >= this.m_EffectTime + this.m_WaitTime)
 				{
 					if (this.m_AllEffectList.All((ParticleSystem effect) => !effect.isPlaying))

+ 1 - 1
Assembly-CSharp/OVRDebugInfo.cs

@@ -183,7 +183,7 @@ public class OVRDebugInfo : MonoBehaviour
 		GO.AddComponent<CanvasRenderer>();
 		GO.AddComponent<Image>();
 		GO.GetComponent<RectTransform>().sizeDelta = new Vector2(350f, 50f);
-		GO.GetComponent<Image>().color = new Color(0.02745098f, 0.1764706f, 0.2784314f, 0.784313738f);
+		GO.GetComponent<Image>().color = new Color(0.02745098f, 0.1764706f, 0.2784314f, 0.78431374f);
 		this.texts = new GameObject();
 		this.texts.AddComponent<RectTransform>();
 		this.texts.AddComponent<CanvasRenderer>();

+ 1 - 1
Assembly-CSharp/OVROverlay.cs

@@ -114,7 +114,7 @@ public class OVROverlay : MonoBehaviour
 		}
 		if (this.currentOverlayShape == OVROverlay.OverlayShape.Cylinder)
 		{
-			float num = lossyScale.x / lossyScale.z / 3.14159274f * 180f;
+			float num = lossyScale.x / lossyScale.z / 3.1415927f * 180f;
 			if (num > 180f)
 			{
 				Debug.LogError("Cylinder overlay's arc angle has to be below 180 degree, current arc angle is " + num + " degree.");

+ 1 - 1
Assembly-CSharp/OVRPlayerController.cs

@@ -142,7 +142,7 @@ public class OVRPlayerController : MonoBehaviour
 		this.MoveScale = 1f;
 		if ((flag && flag2) || (flag && flag3) || (flag4 && flag2) || (flag4 && flag3))
 		{
-			this.MoveScale = 0.707106769f;
+			this.MoveScale = 0.70710677f;
 		}
 		if (!this.Controller.isGrounded)
 		{

+ 13 - 13
Assembly-CSharp/OnaholeChuBlipDevice.cs

@@ -36,7 +36,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.rawArrowUp * 1.52590219E-05f;
+			return (float)this.rawArrowUp * 1.5259022E-05f;
 		}
 	}
 
@@ -44,7 +44,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.rawArrowDown * 1.52590219E-05f;
+			return (float)this.rawArrowDown * 1.5259022E-05f;
 		}
 	}
 
@@ -52,7 +52,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.rawArrowRight * 1.52590219E-05f;
+			return (float)this.rawArrowRight * 1.5259022E-05f;
 		}
 	}
 
@@ -60,7 +60,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.rawArrowLeft * 1.52590219E-05f;
+			return (float)this.rawArrowLeft * 1.5259022E-05f;
 		}
 	}
 
@@ -84,7 +84,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.rawVertical * 1.52590219E-05f;
+			return (float)this.rawVertical * 1.5259022E-05f;
 		}
 	}
 
@@ -92,7 +92,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.rawHorizontal * 1.52590219E-05f;
+			return (float)this.rawHorizontal * 1.5259022E-05f;
 		}
 	}
 
@@ -108,7 +108,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.beforeRawArrowUp * 1.52590219E-05f;
+			return (float)this.beforeRawArrowUp * 1.5259022E-05f;
 		}
 	}
 
@@ -116,7 +116,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.beforeRawArrowDown * 1.52590219E-05f;
+			return (float)this.beforeRawArrowDown * 1.5259022E-05f;
 		}
 	}
 
@@ -124,7 +124,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.beforeRawArrowRight * 1.52590219E-05f;
+			return (float)this.beforeRawArrowRight * 1.5259022E-05f;
 		}
 	}
 
@@ -132,7 +132,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.beforeRawArrowLeft * 1.52590219E-05f;
+			return (float)this.beforeRawArrowLeft * 1.5259022E-05f;
 		}
 	}
 
@@ -156,7 +156,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.beforeRawVertical * 1.52590219E-05f;
+			return (float)this.beforeRawVertical * 1.5259022E-05f;
 		}
 	}
 
@@ -164,7 +164,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 	{
 		get
 		{
-			return (float)this.beforeRawHorizontal * 1.52590219E-05f;
+			return (float)this.beforeRawHorizontal * 1.5259022E-05f;
 		}
 	}
 
@@ -216,7 +216,7 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 
 	private float m_ArrowKeyFierceRate;
 
-	public const float RECIPROCAL_ARROW_VALUE = 1.52590219E-05f;
+	public const float RECIPROCAL_ARROW_VALUE = 1.5259022E-05f;
 
 	public static readonly float ArrowThreshold = 0.5f;
 }

+ 1 - 1
Assembly-CSharp/OvrGrabObj.cs

@@ -318,7 +318,7 @@ public class OvrGrabObj : MonoBehaviour
 			float num;
 			Vector3 a;
 			(this.nowRotation * Quaternion.Inverse(this.beforeRotation)).ToAngleAxis(out num, out a);
-			num *= 0.0174532924f;
+			num *= 0.017453292f;
 			return a * num;
 		}
 	}

+ 2 - 2
Assembly-CSharp/OvrIK.cs

@@ -1568,7 +1568,7 @@ public class OvrIK : MonoBehaviour
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1510;
+			this.m_nVersion = 1550;
 		}
 
 		public void OnAfterDeserialize()
@@ -1628,7 +1628,7 @@ public class OvrIK : MonoBehaviour
 		private const string CONF_NAME = "OvrIK.json";
 
 		[SerializeField]
-		private int m_nVersion = 1510;
+		private int m_nVersion = 1550;
 
 		[SerializeField]
 		private float solver_locomotion_weight = 1f;

+ 1 - 1
Assembly-CSharp/PhotoModeSaveAndLoad.cs

@@ -450,7 +450,7 @@ public class PhotoModeSaveAndLoad : MonoBehaviour
 	private XElement CreateCommonData(string title, string comment)
 	{
 		string value = DateTime.ParseExact(DateTime.Now.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", null).ToString("yyyy.MM.dd HH:mm");
-		XElement xelement = new XElement("GameVersion", 1510);
+		XElement xelement = new XElement("GameVersion", 1550);
 		XElement xelement2 = new XElement("SaveTime", value);
 		XElement xelement3 = new XElement("Title", title);
 		XElement xelement4 = new XElement("Comment", comment);

+ 10 - 3
Assembly-CSharp/PlayerStatus/Status.cs

@@ -831,7 +831,7 @@ namespace PlayerStatus
 		public void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_PLAYER_STATUS");
-			binary.Write(1510);
+			binary.Write(1550);
 			binary.Write(this.playerName_);
 			binary.Write(this.days_);
 			binary.Write(this.totalPurchasePrice_);
@@ -896,6 +896,7 @@ namespace PlayerStatus
 			{
 				binary.Write(value3);
 			}
+			binary.Write(1000);
 			binary.Write(3830248615U);
 		}
 
@@ -999,8 +1000,12 @@ namespace PlayerStatus
 				int item3 = binary.ReadInt32();
 				this.yotogiClassOpenFlags.Add(item3);
 			}
-			uint num8 = binary.ReadUInt32();
-			NDebug.Assert(3830248615U == num8, "プレイヤーパラメータのロードに失敗しました");
+			if (1540 <= num)
+			{
+				int num8 = binary.ReadInt32();
+			}
+			uint num9 = binary.ReadUInt32();
+			NDebug.Assert(3830248615U == num9, "プレイヤーパラメータのロードに失敗しました");
 			foreach (string key6 in Status.flagLockPartsItems)
 			{
 				if (!this.havePartsItems_.ContainsKey(key6))
@@ -1090,6 +1095,8 @@ namespace PlayerStatus
 			}
 		}
 
+		public const int SaveDataVersion = 1000;
+
 		public const int InitMaidPoint = 0;
 
 		public const long MoneyMax = 9999999999L;

+ 8 - 1
Assembly-CSharp/PrivateEventListUnit.cs

@@ -117,7 +117,14 @@ public class PrivateEventListUnit : MonoBehaviour
 			return;
 		}
 		this.conditonParent.gameObject.SetActive(true);
-		this.conditonPanel.SetTexts(this.infomation.conditions.ToArray(), 500);
+		if (Product.supportMultiLanguage)
+		{
+			this.conditonPanel.SetTexts(this.infomation.conditionTerms.ToArray(), 500);
+		}
+		else
+		{
+			this.conditonPanel.SetTexts(this.infomation.conditions.ToArray(), 500);
+		}
 		if (!this.isEnabled)
 		{
 			GameMain.Instance.SoundMgr.PlaySystem(SoundMgr.SeType.Hover);

+ 20 - 6
Assembly-CSharp/PrivateMaidMode/DataBase.cs

@@ -182,7 +182,7 @@ namespace PrivateMaidMode
 						{
 							NDebug.Assert("csv parse error.\nprivate_maidmode_eventinformation_list.nei", false);
 						}
-						dictionary2.Add(cellAsInteger, new DataBase.BG.Event.PointData.Information(cellAsString, new List<string>(cellAsString2.Split(new char[]
+						dictionary2.Add(cellAsInteger, new DataBase.BG.Event.PointData.Information(cellAsInteger, cellAsString, new List<string>(cellAsString2.Split(new char[]
 						{
 							'|'
 						})), iconType));
@@ -348,7 +348,7 @@ namespace PrivateMaidMode
 			{
 				get
 				{
-					return string.Empty;
+					return "ScenePrivate/背景/" + this.uniqueName;
 				}
 			}
 
@@ -418,7 +418,7 @@ namespace PrivateMaidMode
 				{
 					get
 					{
-						return string.Empty;
+						return "ScenePrivate/ロケーション名/" + this.drawName;
 					}
 				}
 
@@ -665,22 +665,36 @@ namespace PrivateMaidMode
 
 					public class Information
 					{
-						public Information(string title, List<string> conditions, DataBase.BG.Event.PointData.Information.IconType iconType)
+						public Information(int id, string title, List<string> conditions, DataBase.BG.Event.PointData.Information.IconType iconType)
 						{
+							this.id = id;
 							this.title = title;
 							this.conditions = conditions;
 							this.iconType = iconType;
 						}
 
+						public List<string> conditionTerms
+						{
+							get
+							{
+								List<string> list = new List<string>(this.conditions.Count);
+								foreach (string str in this.conditions)
+								{
+									list.Add("ScenePrivate/イベントテキスト/" + str);
+								}
+								return list;
+							}
+						}
+
 						public string titleTerm
 						{
 							get
 							{
-								return this.title;
+								return "ScenePrivate/イベントタイトル/" + this.id.ToString();
 							}
 						}
 
-						public readonly DataBase.BG.Event.PointData pointData;
+						public readonly int id;
 
 						public readonly string title;
 

+ 8 - 3
Assembly-CSharp/PrivateMaidMode/PrivateCharaSelectMain.cs

@@ -127,6 +127,8 @@ namespace PrivateMaidMode
 				}
 				Text component2 = UTY.GetChildObject(f_goParent, "Text", false).GetComponent<Text>();
 				component2.text = this.bgList[i].drawName;
+				component2.gameObject.name = component2.text;
+				Utility.SetLocalizeTerm(component2, this.bgList[i].drawNameTerm, false);
 			}
 			GameObject f_goParent2 = Utility.CreatePrefab(parentPanel, "ScenePrivate/RandomButton", true);
 			uGUITabButton component3 = UTY.GetChildObject(f_goParent2, "Plate", false).GetComponent<uGUITabButton>();
@@ -156,6 +158,8 @@ namespace PrivateMaidMode
 				component.onSelectEvent.Add(new EventDelegate(new EventDelegate.Callback(this.OnSelectBGPos)));
 				Text component2 = UTY.GetChildObject(f_goParent, "Text", false).GetComponent<Text>();
 				component2.text = this.m_selectBG.locations[i].drawName;
+				component2.gameObject.name = component2.text;
+				Utility.SetLocalizeTerm(component2, this.m_selectBG.locations[i].drawNameTerm, false);
 			}
 			GameObject f_goParent2 = Utility.CreatePrefab(parentPanel, "ScenePrivate/RandomButton", true);
 			uGUITabButton component3 = UTY.GetChildObject(f_goParent2, "Plate", false).GetComponent<uGUITabButton>();
@@ -410,10 +414,11 @@ namespace PrivateMaidMode
 			Transform transform = parentObj.transform;
 			for (int i = 0; i < transform.childCount; i++)
 			{
-				string text = UTY.GetChildObject(transform.GetChild(i).gameObject, "Text", false).GetComponent<Text>().text;
-				if (a == text)
+				Transform child = transform.GetChild(i);
+				string name = child.GetComponentInChildren<Text>().gameObject.name;
+				if (a == name)
 				{
-					uGUITabButton component2 = UTY.GetChildObject(transform.GetChild(i).gameObject, "Plate", false).GetComponent<uGUITabButton>();
+					uGUITabButton component2 = UTY.GetChildObject(child.gameObject, "Plate", false).GetComponent<uGUITabButton>();
 					component.Select(component2);
 					return;
 				}

+ 24 - 13
Assembly-CSharp/Product_Mgr.cs

@@ -101,7 +101,29 @@ public class Product_Mgr : PartsMgrBase
 
 	private void CheckProductAndAudience()
 	{
-		if (this.m_SpecialProduct.Count == 0)
+		for (int i = 0; i < this.m_AllAudience.Length; i++)
+		{
+			Product_Mgr.Audience audience = this.m_AllAudience[i];
+			if (audience.AudienceObj.Contains(null))
+			{
+				audience.AudienceObj.Clear();
+			}
+			else if (audience.AudienceObj.Count == 0)
+			{
+				audience.AudienceObj.Add(GameObject.Find(string.Format("psyllium_A00{0}_alpha", i + 1)));
+				audience.AudienceObj.Add(GameObject.Find(string.Format("psyllium_B00{0}_alpha", i + 1)));
+				audience.AudienceObj.Add(GameObject.Find(string.Format("psyllium_C00{0}_alpha", i + 1)));
+				if (audience.AudienceObj.Contains(null))
+				{
+					audience.AudienceObj.Clear();
+				}
+			}
+		}
+		if (this.m_SpecialProduct.Contains(null))
+		{
+			this.m_SpecialProduct.Clear();
+		}
+		else if (this.m_SpecialProduct.Count == 0)
 		{
 			this.m_SpecialProduct.Add(GameObject.Find("LiveStage_Laser_use_dance"));
 			this.m_SpecialProduct.Add(GameObject.Find("MovingLight"));
@@ -111,17 +133,6 @@ public class Product_Mgr : PartsMgrBase
 			if (this.m_SpecialProduct.Contains(null))
 			{
 				this.m_SpecialProduct.Clear();
-				return;
-			}
-		}
-		for (int i = 0; i < this.m_AllAudience.Length; i++)
-		{
-			Product_Mgr.Audience audience = this.m_AllAudience[i];
-			if (audience.AudienceObj.Count == 0)
-			{
-				audience.AudienceObj.Add(GameObject.Find(string.Format("psyllium_A00{0}_alpha", i + 1)));
-				audience.AudienceObj.Add(GameObject.Find(string.Format("psyllium_B00{0}_alpha", i + 1)));
-				audience.AudienceObj.Add(GameObject.Find(string.Format("psyllium_C00{0}_alpha", i + 1)));
 			}
 		}
 	}
@@ -304,7 +315,7 @@ public class Product_Mgr : PartsMgrBase
 			if (!RhythmAction_Mgr.Instance.IsPause)
 			{
 				timer += RhythmAction_Mgr.Instance.DanceDeltaTime;
-				float alpha = this.m_MaxFlashAlpha * Mathf.Sin(Mathf.Clamp01(timer / this.m_MaxFlashAlpha) * 180f * 0.0174532924f);
+				float alpha = this.m_MaxFlashAlpha * Mathf.Sin(Mathf.Clamp01(timer / this.m_MaxFlashAlpha) * 180f * 0.017453292f);
 				this.m_FlashGauge.alpha = alpha;
 				if (timer > this.m_MaxFlashAlpha)
 				{

+ 10 - 6
Assembly-CSharp/ProfileCtrl.cs

@@ -445,7 +445,7 @@ public class ProfileCtrl : MonoBehaviour
 		this.m_lWaist.text = this.m_maidStatus.body.waist.ToString();
 		this.m_lHip.text = this.m_maidStatus.body.hip.ToString();
 		this.m_lCup.text = this.m_maidStatus.body.cup;
-		this.m_lRelation.GetComponent<Localize>().SetTerm(this.GetCondition(this.m_maidStatus.relation, this.m_maidStatus.additionalRelation, this.m_maidStatus.specialRelation));
+		this.m_lRelation.GetComponent<Localize>().SetTerm(this.GetCondition(this.m_maidStatus.contract, this.m_maidStatus.relation, this.m_maidStatus.additionalRelation, this.m_maidStatus.specialRelation));
 		this.m_lConditionText.GetComponent<UILabel>().text = this.m_maidStatus.conditionText;
 		this.m_lConditionText.GetComponent<Localize>().SetTerm(this.m_maidStatus.conditionTermText);
 		this.m_lYotogiPlayCount.text = this.m_maidStatus.playCountYotogi.ToString();
@@ -524,13 +524,17 @@ public class ProfileCtrl : MonoBehaviour
 
 	public void SetPersonal(string selectValue)
 	{
-		Personal.Data personal;
-		if (ProfileCtrl.m_dicPersonal.TryGetValue(selectValue, out personal))
+		Personal.Data data;
+		if (ProfileCtrl.m_dicPersonal.TryGetValue(selectValue, out data))
 		{
-			this.m_maidStatus.SetPersonal(personal);
+			this.m_maidStatus.SetPersonal(data);
 			if (SceneEdit.Instance != null && (SceneEdit.Instance.modeType == SceneEdit.ModeType.OriginalChara || SceneEdit.Instance.modeType == SceneEdit.ModeType.MainChara || SceneEdit.Instance.modeType == SceneEdit.ModeType.ScoutChara))
 			{
 				this.m_maidStatus.additionalRelation = AdditionalRelation.Vigilance;
+				if ((data.id == 190 || data.id == 200) && this.m_maidStatus.additionalRelation == AdditionalRelation.Vigilance)
+				{
+					this.m_maidStatus.additionalRelation = AdditionalRelation.Null;
+				}
 			}
 			Debug.Log(string.Concat(new object[]
 			{
@@ -589,9 +593,9 @@ public class ProfileCtrl : MonoBehaviour
 		return EnumConvert.GetTerm(contractType);
 	}
 
-	private string GetCondition(Relation relation, AdditionalRelation addRelation, SpecialRelation specialRelation)
+	private string GetCondition(Contract contractType, Relation relation, AdditionalRelation addRelation, SpecialRelation specialRelation)
 	{
-		return EnumConvert.GetTerm(relation, addRelation, specialRelation);
+		return EnumConvert.GetTerm(contractType, relation, addRelation, specialRelation);
 	}
 
 	private string AdjustStrLengthIfOver(string str, int length)

+ 16 - 16
Assembly-CSharp/RenderHeads/Media/AVProVideo/CubemapCube.cs

@@ -236,17 +236,17 @@ namespace RenderHeads.Media.AVProVideo
 			{
 				array = new Vector2[]
 				{
-					new Vector2(0.333333343f + num5, 0.5f - num6),
+					new Vector2(0.33333334f + num5, 0.5f - num6),
 					new Vector2(0.6666667f - num5, 0.5f - num6),
 					new Vector2(0.6666667f - num5, num6),
-					new Vector2(0.333333343f + num5, num6),
-					new Vector2(0.333333343f + num5, 1f - num6),
+					new Vector2(0.33333334f + num5, num6),
+					new Vector2(0.33333334f + num5, 1f - num6),
 					new Vector2(0.6666667f - num5, 1f - num6),
 					new Vector2(0.6666667f - num5, 0.5f + num6),
-					new Vector2(0.333333343f + num5, 0.5f + num6),
+					new Vector2(0.33333334f + num5, 0.5f + num6),
 					new Vector2(num5, 0.5f - num6),
-					new Vector2(0.333333343f - num5, 0.5f - num6),
-					new Vector2(0.333333343f - num5, num6),
+					new Vector2(0.33333334f - num5, 0.5f - num6),
+					new Vector2(0.33333334f - num5, num6),
 					new Vector2(num5, num6),
 					new Vector2(0.6666667f + num5, 1f - num6),
 					new Vector2(1f - num5, 1f - num6),
@@ -256,8 +256,8 @@ namespace RenderHeads.Media.AVProVideo
 					new Vector2(0.6666667f + num5, 0.5f - num6),
 					new Vector2(1f - num5, 0.5f - num6),
 					new Vector2(1f - num5, num6),
-					new Vector2(0.333333343f - num5, 1f - num6),
-					new Vector2(0.333333343f - num5, 0.5f + num6),
+					new Vector2(0.33333334f - num5, 1f - num6),
+					new Vector2(0.33333334f - num5, 0.5f + num6),
 					new Vector2(num5, 0.5f + num6),
 					new Vector2(num5, 1f - num6)
 				};
@@ -266,17 +266,17 @@ namespace RenderHeads.Media.AVProVideo
 			{
 				array = new Vector2[]
 				{
-					new Vector2(0.333333343f + num5, 1f - num6),
+					new Vector2(0.33333334f + num5, 1f - num6),
 					new Vector2(0.6666667f - num5, 1f - num6),
 					new Vector2(0.6666667f - num5, 0.5f + num6),
-					new Vector2(0.333333343f + num5, 0.5f + num6),
-					new Vector2(0.333333343f + num5, 0.5f - num6),
+					new Vector2(0.33333334f + num5, 0.5f + num6),
+					new Vector2(0.33333334f + num5, 0.5f - num6),
 					new Vector2(0.6666667f - num5, 0.5f - num6),
 					new Vector2(0.6666667f - num5, num6),
-					new Vector2(0.333333343f + num5, num6),
+					new Vector2(0.33333334f + num5, num6),
 					new Vector2(num5, 1f - num6),
-					new Vector2(0.333333343f - num5, 1f - num6),
-					new Vector2(0.333333343f - num5, 0.5f + num6),
+					new Vector2(0.33333334f - num5, 1f - num6),
+					new Vector2(0.33333334f - num5, 0.5f + num6),
 					new Vector2(num5, 0.5f + num6),
 					new Vector2(0.6666667f + num5, 0.5f - num6),
 					new Vector2(1f - num5, 0.5f - num6),
@@ -284,8 +284,8 @@ namespace RenderHeads.Media.AVProVideo
 					new Vector2(0.6666667f + num5, num6),
 					new Vector2(num5, num6),
 					new Vector2(num5, 0.5f - num6),
-					new Vector2(0.333333343f - num5, 0.5f - num6),
-					new Vector2(0.333333343f - num5, num6),
+					new Vector2(0.33333334f - num5, 0.5f - num6),
+					new Vector2(0.33333334f - num5, num6),
 					new Vector2(1f - num5, 1f - num6),
 					new Vector2(1f - num5, 0.5f + num6),
 					new Vector2(0.6666667f + num5, 0.5f + num6),

+ 7 - 7
Assembly-CSharp/RenderHeads/Media/AVProVideo/Resampler.cs

@@ -192,7 +192,7 @@ namespace RenderHeads.Media.AVProVideo
 			{
 				if (this._buffer[frameIdx][i].used)
 				{
-					float num5 = (float)(this._buffer[frameIdx][i].timestamp - this._baseTimestamp) / 1E+07f;
+					float num5 = (float)(this._buffer[frameIdx][i].timestamp - this._baseTimestamp) / 10000000f;
 					if (num5 < num4)
 					{
 						num3 = i;
@@ -229,7 +229,7 @@ namespace RenderHeads.Media.AVProVideo
 			{
 				if (this._buffer[frameIdx][i].used)
 				{
-					float num2 = (float)(this._buffer[frameIdx][i].timestamp - this._baseTimestamp) / 1E+07f;
+					float num2 = (float)(this._buffer[frameIdx][i].timestamp - this._baseTimestamp) / 10000000f;
 					float num3 = Mathf.Abs(this._elapsedTimeSinceBase - num2);
 					if (num3 < num)
 					{
@@ -280,7 +280,7 @@ namespace RenderHeads.Media.AVProVideo
 				int num = this.FindBeforeFrameIndex(i);
 				if (num >= 0)
 				{
-					float num2 = (float)(this._buffer[i][num].timestamp - this._baseTimestamp) / 1E+07f;
+					float num2 = (float)(this._buffer[i][num].timestamp - this._baseTimestamp) / 10000000f;
 					if (num2 > this._elapsedTimeSinceBase)
 					{
 						this.SampleFrame(num, i);
@@ -289,7 +289,7 @@ namespace RenderHeads.Media.AVProVideo
 					else
 					{
 						int num3 = (num + 1) % this._buffer[i].Length;
-						float num4 = (float)(this._buffer[i][num3].timestamp - this._baseTimestamp) / 1E+07f;
+						float num4 = (float)(this._buffer[i][num3].timestamp - this._baseTimestamp) / 10000000f;
 						if (num4 < num2)
 						{
 							this.SampleFrame(num, i);
@@ -338,7 +338,7 @@ namespace RenderHeads.Media.AVProVideo
 			if (textureTimeStamp != this._lastTimeStamp)
 			{
 				float num = Mathf.Abs((float)(textureTimeStamp - this._lastTimeStamp));
-				float num2 = 1E+07f * (1f / this._mediaPlayer.Info.GetVideoFrameRate());
+				float num2 = 10000000f * (1f / this._mediaPlayer.Info.GetVideoFrameRate());
 				if (num > num2 * 1.1f && num < num2 * 3.1f)
 				{
 					this._droppedFrames += (int)((double)((num - num2) / num2) + 0.5);
@@ -397,10 +397,10 @@ namespace RenderHeads.Media.AVProVideo
 			{
 				long num4 = this._buffer[0][(this._start + this._bufferSize / 2) % this._bufferSize].timestamp - this._baseTimestamp;
 				double num5 = (double)Mathf.Abs((float)((double)this._elapsedTimeSinceBase * 10000000.0) - (float)num4);
-				double num6 = (double)((float)(this._buffer[0].Length / 2) / this._mediaPlayer.Info.GetVideoFrameRate() * 1E+07f);
+				double num6 = (double)((float)(this._buffer[0].Length / 2) / this._mediaPlayer.Info.GetVideoFrameRate() * 10000000f);
 				if (num5 > num6)
 				{
-					this._elapsedTimeSinceBase = (float)num4 / 1E+07f;
+					this._elapsedTimeSinceBase = (float)num4 / 10000000f;
 				}
 				if (this._resampleMode == Resampler.ResampleMode.POINT)
 				{

+ 2 - 2
Assembly-CSharp/Result_Display.cs

@@ -114,7 +114,7 @@ public abstract class Result_Display : MonoBehaviour
 		for (;;)
 		{
 			timer += this.m_MydeltaTime;
-			float rate = 1f - Mathf.Sin(timer / this.m_FadeTime * 90f * 0.0174532924f);
+			float rate = 1f - Mathf.Sin(timer / this.m_FadeTime * 90f * 0.017453292f);
 			this.m_MyPanel.alpha = rate;
 			if (timer >= this.m_FadeTime)
 			{
@@ -143,7 +143,7 @@ public abstract class Result_Display : MonoBehaviour
 
 	protected float SinRate01(float time, float total)
 	{
-		return Mathf.Sin(Mathf.Clamp01(time / total) * 90f * 0.0174532924f);
+		return Mathf.Sin(Mathf.Clamp01(time / total) * 90f * 0.017453292f);
 	}
 
 	public virtual void ClickButton()

+ 1 - 1
Assembly-CSharp/RhythmAction_Mgr.cs

@@ -438,7 +438,7 @@ public class RhythmAction_Mgr : MonoBehaviour
 					else
 					{
 						timer += this.DanceDeltaTime;
-						ready_panel.alpha = 1f - Mathf.Sin(Mathf.Clamp01(timer / this.m_ReadyFadeTime) * 90f * 0.0174532924f);
+						ready_panel.alpha = 1f - Mathf.Sin(Mathf.Clamp01(timer / this.m_ReadyFadeTime) * 90f * 0.017453292f);
 						if (timer > this.m_ReadyFadeTime)
 						{
 							ready_fade = false;

+ 1 - 1
Assembly-CSharp/SceneNPCEdit/SaveData.cs

@@ -10,7 +10,7 @@ namespace SceneNPCEdit
 		public static void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_NPCEDIT");
-			binary.Write(1510);
+			binary.Write(1550);
 			binary.Write(SaveData.presetData.Count);
 			foreach (KeyValuePair<int, byte[]> keyValuePair in SaveData.presetData)
 			{

+ 40 - 30
Assembly-CSharp/Schedule/ScheduleCSVData.cs

@@ -32,57 +32,63 @@ namespace Schedule
 			}
 		}
 
-		public static Dictionary<int, ScheduleCSVData.Work> WorkData
+		public static ReadOnlyDictionary<int, ScheduleCSVData.Work> WorkData
 		{
 			get
 			{
-				Dictionary<int, ScheduleCSVData.Work> dictionary = new Dictionary<int, ScheduleCSVData.Work>();
-				if (ScheduleCSVData.FaclityPowerUp != null)
+				if (ScheduleCSVData.cacheWorkData == null)
 				{
-					dictionary.Add(ScheduleCSVData.FaclityPowerUp.id, ScheduleCSVData.FaclityPowerUp);
-				}
-				foreach (KeyValuePair<int, ScheduleCSVData.Work> keyValuePair in FacilityDataTable.GetAllWorkData(true))
-				{
-					if (!dictionary.ContainsKey(keyValuePair.Key))
+					ScheduleCSVData.cacheWorkData = new Dictionary<int, ScheduleCSVData.Work>();
+					if (ScheduleCSVData.FaclityPowerUp != null)
+					{
+						ScheduleCSVData.cacheWorkData.Add(ScheduleCSVData.FaclityPowerUp.id, ScheduleCSVData.FaclityPowerUp);
+					}
+					foreach (KeyValuePair<int, ScheduleCSVData.Work> keyValuePair in FacilityDataTable.GetAllWorkData(true))
 					{
-						dictionary.Add(keyValuePair.Key, keyValuePair.Value);
+						if (!ScheduleCSVData.cacheWorkData.ContainsKey(keyValuePair.Key))
+						{
+							ScheduleCSVData.cacheWorkData.Add(keyValuePair.Key, keyValuePair.Value);
+						}
 					}
 				}
-				return dictionary;
+				return new ReadOnlyDictionary<int, ScheduleCSVData.Work>(ScheduleCSVData.cacheWorkData);
 			}
 		}
 
-		public static Dictionary<int, ScheduleCSVData.ScheduleBase> AllData
+		public static ReadOnlyDictionary<int, ScheduleCSVData.ScheduleBase> AllData
 		{
 			get
 			{
-				Dictionary<int, ScheduleCSVData.ScheduleBase> dictionary = new Dictionary<int, ScheduleCSVData.ScheduleBase>();
-				foreach (KeyValuePair<int, ScheduleCSVData.Training> keyValuePair in ScheduleCSVData.TrainingDataDic)
+				if (ScheduleCSVData.cacheAllDataData == null)
 				{
-					if (!dictionary.ContainsKey(keyValuePair.Key))
+					ScheduleCSVData.cacheAllDataData = new Dictionary<int, ScheduleCSVData.ScheduleBase>();
+					foreach (KeyValuePair<int, ScheduleCSVData.Training> keyValuePair in ScheduleCSVData.TrainingDataDic)
 					{
-						dictionary.Add(keyValuePair.Key, keyValuePair.Value);
+						if (!ScheduleCSVData.cacheAllDataData.ContainsKey(keyValuePair.Key))
+						{
+							ScheduleCSVData.cacheAllDataData.Add(keyValuePair.Key, keyValuePair.Value);
+						}
 					}
-				}
-				foreach (KeyValuePair<int, ScheduleCSVData.Yotogi> keyValuePair2 in ScheduleCSVData.YotogiDataDic)
-				{
-					if (!dictionary.ContainsKey(keyValuePair2.Key))
+					foreach (KeyValuePair<int, ScheduleCSVData.Yotogi> keyValuePair2 in ScheduleCSVData.YotogiDataDic)
+					{
+						if (!ScheduleCSVData.cacheAllDataData.ContainsKey(keyValuePair2.Key))
+						{
+							ScheduleCSVData.cacheAllDataData.Add(keyValuePair2.Key, keyValuePair2.Value);
+						}
+					}
+					if (ScheduleCSVData.FaclityPowerUp != null)
 					{
-						dictionary.Add(keyValuePair2.Key, keyValuePair2.Value);
+						ScheduleCSVData.cacheAllDataData.Add(ScheduleCSVData.FaclityPowerUp.id, ScheduleCSVData.FaclityPowerUp);
 					}
-				}
-				if (ScheduleCSVData.FaclityPowerUp != null)
-				{
-					dictionary.Add(ScheduleCSVData.FaclityPowerUp.id, ScheduleCSVData.FaclityPowerUp);
-				}
-				foreach (KeyValuePair<int, ScheduleCSVData.Work> keyValuePair3 in FacilityDataTable.GetAllWorkData(true))
-				{
-					if (!dictionary.ContainsKey(keyValuePair3.Key))
+					foreach (KeyValuePair<int, ScheduleCSVData.Work> keyValuePair3 in FacilityDataTable.GetAllWorkData(true))
 					{
-						dictionary.Add(keyValuePair3.Key, keyValuePair3.Value);
+						if (!ScheduleCSVData.cacheAllDataData.ContainsKey(keyValuePair3.Key))
+						{
+							ScheduleCSVData.cacheAllDataData.Add(keyValuePair3.Key, keyValuePair3.Value);
+						}
 					}
 				}
-				return dictionary;
+				return new ReadOnlyDictionary<int, ScheduleCSVData.ScheduleBase>(ScheduleCSVData.cacheAllDataData);
 			}
 		}
 
@@ -1168,6 +1174,10 @@ namespace Schedule
 
 		private static ScheduleCSVData.Work FaclityPowerUp;
 
+		private static Dictionary<int, ScheduleCSVData.Work> cacheWorkData;
+
+		private static Dictionary<int, ScheduleCSVData.ScheduleBase> cacheAllDataData;
+
 		public static SortedDictionary<int, string> TaskCategoryNameMap;
 
 		public static List<int> WorkLegacyDisableId;

+ 2 - 2
Assembly-CSharp/Score_Mgr.cs

@@ -170,7 +170,7 @@ public class Score_Mgr : PartsMgrBase
 				this.m_FlashCombo_Child.gameObject.SetActive(true);
 			}
 			Color flash_col = this.m_FlashCombo.color;
-			float rate = Mathf.Sin(Mathf.Clamp01(timer / this.m_ScalingTime) * 180f * 0.0174532924f);
+			float rate = Mathf.Sin(Mathf.Clamp01(timer / this.m_ScalingTime) * 180f * 0.017453292f);
 			flash_col.a = rate;
 			this.m_FlashCombo.color = flash_col;
 			this.m_FlashCombo_Child.color = flash_col;
@@ -189,7 +189,7 @@ public class Score_Mgr : PartsMgrBase
 
 	private void ScoreScaling(float time)
 	{
-		float t = Mathf.Sin(Mathf.Clamp01(time / this.m_ScoreScalingTime) * 180f * 0.0174532924f);
+		float t = Mathf.Sin(Mathf.Clamp01(time / this.m_ScoreScalingTime) * 180f * 0.017453292f);
 		this.m_CharaScoreList[DanceBattle_Mgr.CharaType.Player].ScoreText.transform.localScale = Vector3.Lerp(Vector3.one, Vector3.one * this.m_ScoreScaling, t);
 	}
 

+ 21 - 1
Assembly-CSharp/ScriptManager.cs

@@ -354,6 +354,7 @@ public class ScriptManager : IDisposable
 		this.tjs_.AddFunction("GetKasizukiMaidFlag", new TJSScript.FunctionCallBack(this.TJSFuncGetKasizukiMaidFlag));
 		this.tjs_.AddFunction("SetKasizukiMaidFlag", new TJSScript.FunctionCallBack(this.TJSFuncSetKasizukiMaidFlag));
 		this.tjs_.AddFunction("IsKasizukiCorrectSenarioFlag", new TJSScript.FunctionCallBack(this.TJSFuncIsKasizukiCorrectSenarioFlag));
+		this.tjs_.AddFunction("GetKasizukiGuestID", new TJSScript.FunctionCallBack(this.TJSFuncGetKasizukiGuestID));
 		this.tjs_.AddFunction("IsVRKaraokeMode", new TJSScript.FunctionCallBack(this.TJSFuncIsVRKaraokeMode));
 		this.tjs_.AddFunction("GetRemainingDanceTime", new TJSScript.FunctionCallBack(this.TJSFuncGetRemainingDanceTime));
 		this.tjs_.AddFunction("GetYotogiCommandClickCount", new TJSScript.FunctionCallBack(this.TJSFuncGetYotogiCommandClickCount));
@@ -370,6 +371,7 @@ public class ScriptManager : IDisposable
 		this.tjs_.AddFunction("HireScoutMaid", new TJSScript.FunctionCallBack(this.TJSFuncHireScoutMaid));
 		this.tjs_.AddFunction("SuspendedScout", new TJSScript.FunctionCallBack(this.TJSFuncSuspendedScout));
 		this.tjs_.AddFunction("CancelScout", new TJSScript.FunctionCallBack(this.TJSFuncCancelScout));
+		this.tjs_.AddFunction("IsCRCBody", new TJSScript.FunctionCallBack(this.TJSFuncIsCRCBody));
 		MotionKagManager motionKagManager = new MotionKagManager(this.tjs_, this);
 		motionKagManager.Initialize();
 		motionKagManager.SetSloatNo(0);
@@ -2311,6 +2313,10 @@ public class ScriptManager : IDisposable
 		{
 			maid.status.additionalRelation = AdditionalRelation.LoverPlus;
 		}
+		else if (a == "愛奴")
+		{
+			maid.status.additionalRelation = AdditionalRelation.Slave;
+		}
 		else if (a == "Null")
 		{
 			maid.status.additionalRelation = AdditionalRelation.Null;
@@ -3152,6 +3158,15 @@ public class ScriptManager : IDisposable
 		kasizukiMgr.TJSFuncIsKasizukiCorrectSenarioFlag(tjs_param, result);
 	}
 
+	public void TJSFuncGetKasizukiGuestID(TJSVariantRef[] tjs_param, TJSVariantRef result)
+	{
+		if (result == null)
+		{
+			NDebug.Assert("error GetKasizukiGuestID", false);
+		}
+		result.SetInteger(GameMain.Instance.KasizukiMgr.GetNowManType());
+	}
+
 	public void TJSFuncIsVRKaraokeMode(TJSVariantRef[] tjs_param, TJSVariantRef result)
 	{
 		if (result == null)
@@ -3276,6 +3291,11 @@ public class ScriptManager : IDisposable
 		ScoutManager.Instance.CancelScout(maid);
 	}
 
+	public void TJSFuncIsCRCBody(TJSVariantRef[] tjs_param, TJSVariantRef result)
+	{
+		result.SetBool(false);
+	}
+
 	public void TJSFuncGetRemainingDanceTime(TJSVariantRef[] tjs_param, TJSVariantRef result)
 	{
 		if (result == null)
@@ -3399,7 +3419,7 @@ public class ScriptManager : IDisposable
 	public void Serialize(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_SCRIPT");
-		binary.Write(1510);
+		binary.Write(1550);
 		this.adv_kag_.Serialize(binary);
 	}
 

+ 1 - 1
Assembly-CSharp/SelectMessage_UI.cs

@@ -114,7 +114,7 @@ public class SelectMessage_UI : MonoBehaviour
 		{
 			timer += Time.deltaTime;
 			float angle = timer / this.m_Anime_Time * 90f;
-			float rate = Mathf.Sin(0.0174532924f * angle);
+			float rate = Mathf.Sin(0.017453292f * angle);
 			this.m_Slide_Rect.localPosition = (1f - rate) * start_pos + rate * end_pos;
 			if (timer >= this.m_Anime_Time)
 			{

+ 1 - 1
Assembly-CSharp/ShootCutInTex.cs

@@ -22,7 +22,7 @@ public class ShootCutInTex : MonoBehaviour
 		base.transform.Rotate(Vector3.right * aroundAngle.y, Space.Self);
 		base.transform.position = base.transform.rotation * Vector3.forward * -distance + targetPos;
 		this.CameraValCpy(GameMain.Instance.MainCamera.camera, this.m_MyCamera);
-		this.m_MyCamera.aspect = 1.77777779f;
+		this.m_MyCamera.aspect = 1.7777778f;
 		if (RhythmAction_Mgr.IsVSDance && RhythmAction_Mgr.NowState == RhythmAction_Mgr.DanceState.Dance_First)
 		{
 			ShootCutInTex.TextureClear(DanceBattle_Mgr.CharaType.Enemy);

+ 6 - 3
Assembly-CSharp/StatusMgr.cs

@@ -104,8 +104,8 @@ public class StatusMgr : BaseCreatePanel
 		status.mValue = this.m_maid.status.mvalue;
 		status.hentai = this.m_maid.status.hentai;
 		status.housi = this.m_maid.status.housi;
-		status.relation = EnumConvert.GetString(this.m_maid.status.relation, this.m_maid.status.additionalRelation, this.m_maid.status.specialRelation);
-		status.relationTerm = EnumConvert.GetTerm(this.m_maid.status.relation, this.m_maid.status.additionalRelation, this.m_maid.status.specialRelation);
+		status.relation = EnumConvert.GetString(this.m_maid.status.contract, this.m_maid.status.relation, this.m_maid.status.additionalRelation, this.m_maid.status.specialRelation);
+		status.relationTerm = EnumConvert.GetTerm(this.m_maid.status.contract, this.m_maid.status.relation, this.m_maid.status.additionalRelation, this.m_maid.status.specialRelation);
 		if (this.m_maid.status.OldStatus != null)
 		{
 			if (this.m_maid.status.OldStatus.isMarriage)
@@ -116,7 +116,10 @@ public class StatusMgr : BaseCreatePanel
 			{
 				status.relation = "新妻";
 			}
-			status.relationTerm = string.Empty;
+			if (Product.isJapan)
+			{
+				status.relationTerm = string.Empty;
+			}
 		}
 		status.conditionText = this.m_maid.status.conditionText;
 		status.conditionTextTerm = this.m_maid.status.conditionTermText;

+ 8 - 8
Assembly-CSharp/SteamVR_Frustum.cs

@@ -14,14 +14,14 @@ public class SteamVR_Frustum : MonoBehaviour
 		this.fovBottom = Mathf.Clamp(this.fovBottom, 1f, 89f);
 		this.farZ = Mathf.Max(this.farZ, this.nearZ + 0.01f);
 		this.nearZ = Mathf.Clamp(this.nearZ, 0.01f, this.farZ - 0.01f);
-		float num = Mathf.Sin(-this.fovLeft * 0.0174532924f);
-		float num2 = Mathf.Sin(this.fovRight * 0.0174532924f);
-		float num3 = Mathf.Sin(this.fovTop * 0.0174532924f);
-		float num4 = Mathf.Sin(-this.fovBottom * 0.0174532924f);
-		float num5 = Mathf.Cos(-this.fovLeft * 0.0174532924f);
-		float num6 = Mathf.Cos(this.fovRight * 0.0174532924f);
-		float num7 = Mathf.Cos(this.fovTop * 0.0174532924f);
-		float num8 = Mathf.Cos(-this.fovBottom * 0.0174532924f);
+		float num = Mathf.Sin(-this.fovLeft * 0.017453292f);
+		float num2 = Mathf.Sin(this.fovRight * 0.017453292f);
+		float num3 = Mathf.Sin(this.fovTop * 0.017453292f);
+		float num4 = Mathf.Sin(-this.fovBottom * 0.017453292f);
+		float num5 = Mathf.Cos(-this.fovLeft * 0.017453292f);
+		float num6 = Mathf.Cos(this.fovRight * 0.017453292f);
+		float num7 = Mathf.Cos(this.fovTop * 0.017453292f);
+		float num8 = Mathf.Cos(-this.fovBottom * 0.017453292f);
 		Vector3[] array = new Vector3[]
 		{
 			new Vector3(num * this.nearZ / num5, num3 * this.nearZ / num7, this.nearZ),

+ 4 - 4
Assembly-CSharp/SteamVR_SphericalProjection.cs

@@ -11,10 +11,10 @@ public class SteamVR_SphericalProjection : MonoBehaviour
 			SteamVR_SphericalProjection.material = new Material(Shader.Find("Custom/SteamVR_SphericalProjection"));
 		}
 		SteamVR_SphericalProjection.material.SetVector("_N", new Vector4(N.x, N.y, N.z));
-		SteamVR_SphericalProjection.material.SetFloat("_Phi0", phi0 * 0.0174532924f);
-		SteamVR_SphericalProjection.material.SetFloat("_Phi1", phi1 * 0.0174532924f);
-		SteamVR_SphericalProjection.material.SetFloat("_Theta0", theta0 * 0.0174532924f + 1.57079637f);
-		SteamVR_SphericalProjection.material.SetFloat("_Theta1", theta1 * 0.0174532924f + 1.57079637f);
+		SteamVR_SphericalProjection.material.SetFloat("_Phi0", phi0 * 0.017453292f);
+		SteamVR_SphericalProjection.material.SetFloat("_Phi1", phi1 * 0.017453292f);
+		SteamVR_SphericalProjection.material.SetFloat("_Theta0", theta0 * 0.017453292f + 1.5707964f);
+		SteamVR_SphericalProjection.material.SetFloat("_Theta1", theta1 * 0.017453292f + 1.5707964f);
 		SteamVR_SphericalProjection.material.SetVector("_UAxis", uAxis);
 		SteamVR_SphericalProjection.material.SetVector("_VAxis", vAxis);
 		SteamVR_SphericalProjection.material.SetVector("_UOrigin", uOrigin);

+ 2 - 2
Assembly-CSharp/SystemShortcut.cs

@@ -455,7 +455,7 @@ public class SystemShortcut : MonoBehaviour
 			{
 				Ray ray = this.m_uiCam.ScreenPointToRay(Input.mousePosition);
 				RaycastHit raycastHit = default(RaycastHit);
-				if (this.m_hitArea.Raycast(ray, out raycastHit, 3.40282347E+38f))
+				if (this.m_hitArea.Raycast(ray, out raycastHit, 3.4028235E+38f))
 				{
 					if (!this.m_bEnablePanel)
 					{
@@ -474,7 +474,7 @@ public class SystemShortcut : MonoBehaviour
 				Ray ray2 = this.m_uiCam.ScreenPointToRay(ovrVirtualMousePos);
 				Ray ray3 = this.m_uiCam.ScreenPointToRay(ovrVirtualMousePos2);
 				RaycastHit raycastHit2 = default(RaycastHit);
-				if (this.m_hitArea.Raycast(ray2, out raycastHit2, 3.40282347E+38f) || this.m_hitArea.Raycast(ray3, out raycastHit2, 3.40282347E+38f))
+				if (this.m_hitArea.Raycast(ray2, out raycastHit2, 3.4028235E+38f) || this.m_hitArea.Raycast(ray3, out raycastHit2, 3.4028235E+38f))
 				{
 					if (!this.m_bEnablePanel)
 					{

+ 8 - 8
Assembly-CSharp/TBody.cs

@@ -2776,8 +2776,8 @@ public class TBody : MonoBehaviour
 		{
 			Quaternion localRotation = this.UpperArmL.localRotation;
 			float x = (Quaternion.Inverse(this.quaUpperArmL) * localRotation).eulerAngles.x;
-			this.Uppertwist_L.localRotation = Quaternion.Euler(-0.0174532924f * this.DegPer(x, this.fDegPer), 0f, 0f);
-			this.Uppertwist1_L.localRotation = Quaternion.Euler(-0.0174532924f * this.DegPer(x, this.fDegPer1), 0f, 0f);
+			this.Uppertwist_L.localRotation = Quaternion.Euler(-0.017453292f * this.DegPer(x, this.fDegPer), 0f, 0f);
+			this.Uppertwist1_L.localRotation = Quaternion.Euler(-0.017453292f * this.DegPer(x, this.fDegPer1), 0f, 0f);
 			this.Kata_L.localRotation = this.quaKata_L;
 			this.Kata_L.rotation = Quaternion.Slerp(this.Kata_L.rotation, this.UpperArmL.rotation, this.fRota);
 		}
@@ -2785,8 +2785,8 @@ public class TBody : MonoBehaviour
 		{
 			Quaternion localRotation2 = this.UpperArmR.localRotation;
 			float x2 = (Quaternion.Inverse(this.quaUpperArmR) * localRotation2).eulerAngles.x;
-			this.Uppertwist_R.localRotation = Quaternion.Euler(-0.0174532924f * this.DegPer(x2, this.fDegPer), 0f, 0f);
-			this.Uppertwist1_R.localRotation = Quaternion.Euler(-0.0174532924f * this.DegPer(x2, 0.2f), 0f, 0f);
+			this.Uppertwist_R.localRotation = Quaternion.Euler(-0.017453292f * this.DegPer(x2, this.fDegPer), 0f, 0f);
+			this.Uppertwist1_R.localRotation = Quaternion.Euler(-0.017453292f * this.DegPer(x2, 0.2f), 0f, 0f);
 			this.Kata_R.localRotation = this.quaKata_R;
 			this.Kata_R.rotation = Quaternion.Slerp(this.Kata_R.rotation, this.Uppertwist_R.rotation, 0.5f);
 		}
@@ -2820,8 +2820,8 @@ public class TBody : MonoBehaviour
 			{
 				num2 = 180f - num2;
 			}
-			this.momotwist_L.localRotation = Quaternion.Euler(-0.0174532924f * this.DegPer(num2, this.fDegPer), 0f, 0f) * this.q_momotwist_L;
-			this.momotwist2_L.localRotation = Quaternion.Euler(0.0174532924f * this.DegPer(num2, 0.7f), 0f, 0f) * this.q_momotwist2_L;
+			this.momotwist_L.localRotation = Quaternion.Euler(-0.017453292f * this.DegPer(num2, this.fDegPer), 0f, 0f) * this.q_momotwist_L;
+			this.momotwist2_L.localRotation = Quaternion.Euler(0.017453292f * this.DegPer(num2, 0.7f), 0f, 0f) * this.q_momotwist2_L;
 		}
 		if (this.boAutoTwistThighR & this.momotwist_R != null)
 		{
@@ -2833,8 +2833,8 @@ public class TBody : MonoBehaviour
 			{
 				num3 = 180f - num3;
 			}
-			this.momotwist_R.localRotation = Quaternion.Euler(-0.0174532924f * this.DegPer(num3, this.fDegPer), 0f, 0f) * this.q_momotwist_R;
-			this.momotwist2_R.localRotation = Quaternion.Euler(0.0174532924f * this.DegPer(num3, 0.7f), 0f, 0f) * this.q_momotwist2_R;
+			this.momotwist_R.localRotation = Quaternion.Euler(-0.017453292f * this.DegPer(num3, this.fDegPer), 0f, 0f) * this.q_momotwist_R;
+			this.momotwist2_R.localRotation = Quaternion.Euler(0.017453292f * this.DegPer(num3, 0.7f), 0f, 0f) * this.q_momotwist2_R;
 		}
 	}
 

+ 1 - 1
Assembly-CSharp/TriLib/CameraExtensions.cs

@@ -9,7 +9,7 @@ namespace TriLib
 		{
 			Bounds bounds = transform.EncapsulateBounds();
 			float magnitude = bounds.extents.magnitude;
-			float num = magnitude / (2f * Mathf.Tan(0.5f * camera.fieldOfView * 0.0174532924f)) * distance;
+			float num = magnitude / (2f * Mathf.Tan(0.5f * camera.fieldOfView * 0.017453292f)) * distance;
 			if (float.IsNaN(num))
 			{
 				return;

+ 1 - 1
Assembly-CSharp/Trophy_UI.cs

@@ -189,7 +189,7 @@ public class Trophy_UI : MonoBehaviour
 				if (timer <= num2)
 				{
 					float num3 = 90f * (timer / num2);
-					float num4 = Mathf.Sin(0.0174532924f * num3);
+					float num4 = Mathf.Sin(0.017453292f * num3);
 					keyValuePair.Value.localPosition = start_pos[text_no] * (1f - num4) + end_pos[text_no] * num4;
 				}
 				if (keyValuePair.Key.text == "\n")

+ 1 - 1
Assembly-CSharp/UGuiRule.cs

@@ -4,7 +4,7 @@ using UnityEngine.UI;
 
 [RequireComponent(typeof(RawImage))]
 [RequireComponent(typeof(Mask))]
-public class UGuiRule : Graphic, IFade
+public class UGuiRule : Graphic, IFadeCam
 {
 	protected override void Start()
 	{

+ 1 - 1
Assembly-CSharp/UIBasicSprite.cs

@@ -742,7 +742,7 @@ public abstract class UIBasicSprite : UIWidget
 		{
 			num = 1f - num;
 		}
-		num *= 1.57079637f;
+		num *= 1.5707964f;
 		float cos = Mathf.Cos(num);
 		float sin = Mathf.Sin(num);
 		UIBasicSprite.RadialCut(xy, cos, sin, invert, corner);

+ 2 - 2
Assembly-CSharp/UIButtonColor.cs

@@ -284,9 +284,9 @@ public class UIButtonColor : UIWidgetContainer
 
 	public GameObject tweenTarget;
 
-	public Color hover = new Color(0.882352948f, 0.784313738f, 0.5882353f, 1f);
+	public Color hover = new Color(0.88235295f, 0.78431374f, 0.5882353f, 1f);
 
-	public Color pressed = new Color(0.7176471f, 0.6392157f, 0.482352942f, 1f);
+	public Color pressed = new Color(0.7176471f, 0.6392157f, 0.48235294f, 1f);
 
 	public Color disabledColor = Color.grey;
 

+ 1 - 1
Assembly-CSharp/UIDrawCall.cs

@@ -512,7 +512,7 @@ public class UIDrawCall : MonoBehaviour
 
 	private void SetClipping(int index, Vector4 cr, Vector2 soft, float angle)
 	{
-		angle *= -0.0174532924f;
+		angle *= -0.017453292f;
 		Vector2 vector = new Vector2(1000f, 1000f);
 		if (soft.x > 0f)
 		{

+ 1 - 1
Assembly-CSharp/UIPopupList.cs

@@ -770,7 +770,7 @@ public class UIPopupList : UIWidgetContainer
 
 	public Color backgroundColor = Color.white;
 
-	public Color highlightColor = new Color(0.882352948f, 0.784313738f, 0.5882353f, 1f);
+	public Color highlightColor = new Color(0.88235295f, 0.78431374f, 0.5882353f, 1f);
 
 	public bool isAnimated = true;
 

+ 1 - 1
Assembly-CSharp/UIRoot.cs

@@ -171,7 +171,7 @@ public class UIRoot : MonoBehaviour
 			{
 				float num2 = 2f / num;
 				Vector3 localScale = this.mTrans.localScale;
-				if (Mathf.Abs(localScale.x - num2) > 1.401298E-45f || Mathf.Abs(localScale.y - num2) > 1.401298E-45f || Mathf.Abs(localScale.z - num2) > 1.401298E-45f)
+				if (Mathf.Abs(localScale.x - num2) > 1E-45f || Mathf.Abs(localScale.y - num2) > 1E-45f || Mathf.Abs(localScale.z - num2) > 1E-45f)
 				{
 					this.mTrans.localScale = new Vector3(num2, num2, num2);
 				}

+ 3 - 3
Assembly-CSharp/UITweener.cs

@@ -168,7 +168,7 @@ public abstract class UITweener : MonoBehaviour
 		float num = Mathf.Clamp01(factor);
 		if (this.method == UITweener.Method.EaseIn)
 		{
-			num = 1f - Mathf.Sin(1.57079637f * (1f - num));
+			num = 1f - Mathf.Sin(1.5707964f * (1f - num));
 			if (this.steeperCurves)
 			{
 				num *= num;
@@ -176,7 +176,7 @@ public abstract class UITweener : MonoBehaviour
 		}
 		else if (this.method == UITweener.Method.EaseOut)
 		{
-			num = Mathf.Sin(1.57079637f * num);
+			num = Mathf.Sin(1.5707964f * num);
 			if (this.steeperCurves)
 			{
 				num = 1f - num;
@@ -185,7 +185,7 @@ public abstract class UITweener : MonoBehaviour
 		}
 		else if (this.method == UITweener.Method.EaseInOut)
 		{
-			num -= Mathf.Sin(num * 6.28318548f) / 6.28318548f;
+			num -= Mathf.Sin(num * 6.2831855f) / 6.2831855f;
 			if (this.steeperCurves)
 			{
 				num = num * 2f - 1f;

+ 1 - 1
Assembly-CSharp/UTY.cs

@@ -270,7 +270,7 @@ public class UTY : MonoBehaviour
 
 	public static float COSS(float v)
 	{
-		return Mathf.Cos(3.14159274f * (1f - v)) * 0.5f + 0.5f;
+		return Mathf.Cos(3.1415927f * (1f - v)) * 0.5f + 0.5f;
 	}
 
 	private bool Texture2Image(RenderTexture f_rtSrc, string f_strSaveFileName)

+ 1 - 1
Assembly-CSharp/UnityEngine/PostProcessing/ColorGradingComponent.cs

@@ -14,7 +14,7 @@ namespace UnityEngine.PostProcessing
 
 		private float StandardIlluminantY(float x)
 		{
-			return 2.87f * x - 3f * x * x - 0.275095075f;
+			return 2.87f * x - 3f * x * x - 0.27509508f;
 		}
 
 		private Vector3 CIExyToLMS(float x, float y)

+ 1 - 1
Assembly-CSharp/UnityEngine/PostProcessing/DepthOfFieldComponent.cs

@@ -24,7 +24,7 @@ namespace UnityEngine.PostProcessing
 			{
 				return settings.focalLength / 1000f;
 			}
-			float num = this.context.camera.fieldOfView * 0.0174532924f;
+			float num = this.context.camera.fieldOfView * 0.017453292f;
 			return 0.012f / Mathf.Tan(0.5f * num);
 		}
 

+ 1 - 1
Assembly-CSharp/UnityEngine/PostProcessing/ScreenSpaceReflectionComponent.cs

@@ -59,7 +59,7 @@ namespace UnityEngine.PostProcessing
 			material.SetInt(ScreenSpaceReflectionComponent.Uniforms._FullResolutionFiltering, 0);
 			material.SetInt(ScreenSpaceReflectionComponent.Uniforms._HalfResolution, (settings.reflection.reflectionQuality == ScreenSpaceReflectionModel.SSRResolution.High) ? 0 : 1);
 			material.SetInt(ScreenSpaceReflectionComponent.Uniforms._HighlightSuppression, (!this.k_HighlightSuppression) ? 0 : 1);
-			float value = num4 / (-2f * Mathf.Tan(camera.fieldOfView / 180f * 3.14159274f * 0.5f));
+			float value = num4 / (-2f * Mathf.Tan(camera.fieldOfView / 180f * 3.1415927f * 0.5f));
 			material.SetFloat(ScreenSpaceReflectionComponent.Uniforms._PixelsPerMeterAtOneMeter, value);
 			material.SetFloat(ScreenSpaceReflectionComponent.Uniforms._ScreenEdgeFading, settings.screenEdgeMask.intensity);
 			material.SetFloat(ScreenSpaceReflectionComponent.Uniforms._ReflectionBlur, settings.reflection.reflectionBlur);

+ 2 - 2
Assembly-CSharp/UnityEngine/UI/uGUIInputField.cs

@@ -2460,14 +2460,14 @@ namespace UnityEngine.UI
 		private uGUIInputField.OnValidateInput m_OnValidateInput;
 
 		[SerializeField]
-		private Color m_CaretColor = new Color(0.196078435f, 0.196078435f, 0.196078435f, 1f);
+		private Color m_CaretColor = new Color(0.19607843f, 0.19607843f, 0.19607843f, 1f);
 
 		[SerializeField]
 		private bool m_CustomCaretColor;
 
 		[FormerlySerializedAs("selectionColor")]
 		[SerializeField]
-		private Color m_SelectionColor = new Color(0.65882355f, 0.807843149f, 1f, 0.7529412f);
+		private Color m_SelectionColor = new Color(0.65882355f, 0.80784315f, 1f, 0.7529412f);
 
 		[SerializeField]
 		[FormerlySerializedAs("mValue")]

+ 6 - 6
Assembly-CSharp/VelocityTracker.cs

@@ -47,7 +47,7 @@ public class VelocityTracker : MonoBehaviour
 		Vector3 deltaPosition = position - this.m_position;
 		this.m_position = position;
 		Quaternion rotation = base.transform.rotation;
-		Vector3 deltaRotation = this.DeltaRotation(rotation, this.m_rotation) * 0.0174532924f;
+		Vector3 deltaRotation = this.DeltaRotation(rotation, this.m_rotation) * 0.017453292f;
 		this.m_rotation = rotation;
 		this.AddSample(deltaPosition, deltaRotation);
 		this.m_frameLinearVelocity = this.m_samples[this.m_index].LinearVelocity;
@@ -114,7 +114,7 @@ public class VelocityTracker : MonoBehaviour
 		Vector3 vector = Vector3.zero;
 		for (int i = 0; i < num2; i++)
 		{
-			if (!this.IsSampleValid(num, 0.0222222228f))
+			if (!this.IsSampleValid(num, 0.022222223f))
 			{
 				break;
 			}
@@ -137,7 +137,7 @@ public class VelocityTracker : MonoBehaviour
 		Vector3 vector = Vector3.zero;
 		for (int i = 0; i < num2; i++)
 		{
-			if (!this.IsSampleValid(num, 0.0444444455f))
+			if (!this.IsSampleValid(num, 0.044444446f))
 			{
 				break;
 			}
@@ -169,15 +169,15 @@ public class VelocityTracker : MonoBehaviour
 		return (num3 <= Mathf.Epsilon) ? 0f : Mathf.Sqrt(num3);
 	}
 
-	public const float WINDOW_TIME = 0.0111111114f;
+	public const float WINDOW_TIME = 0.011111111f;
 
 	public const float WINDOW_EPSILON = 0.0001f;
 
 	public const float LINEAR_SPEED_WINDOW = 0.08888889f;
 
-	public const float LINEAR_VELOCITY_WINDOW = 0.0444444455f;
+	public const float LINEAR_VELOCITY_WINDOW = 0.044444446f;
 
-	public const float ANGULAR_VELOCITY_WINDOW = 0.0222222228f;
+	public const float ANGULAR_VELOCITY_WINDOW = 0.022222223f;
 
 	public const int MAX_SAMPLES = 45;
 

+ 1 - 1
Assembly-CSharp/ViveControllerButtons.cs

@@ -35,7 +35,7 @@ public class ViveControllerButtons : AVRControllerButtons
 			{
 				if (steamVR_TrackedObject.index == this.m_trackedObject.index)
 				{
-					return steamVR_TrackedObject.gameObject.transform.localScale.sqrMagnitude < 0.0100000007f;
+					return steamVR_TrackedObject.gameObject.transform.localScale.sqrMagnitude < 0.010000001f;
 				}
 			}
 			return false;

+ 2 - 2
Assembly-CSharp/Voltage_Mgr.cs

@@ -90,7 +90,7 @@ public class Voltage_Mgr : PartsMgrBase
 		for (;;)
 		{
 			timer += Time.deltaTime;
-			this.m_GaugeValue = (int)((float)first_voltage + (float)voltage_diff * Mathf.Sin(timer / 0.75f * 90f * 0.0174532924f));
+			this.m_GaugeValue = (int)((float)first_voltage + (float)voltage_diff * Mathf.Sin(timer / 0.75f * 90f * 0.017453292f));
 			for (int i = 0; i < this.m_GaugeList.Count; i++)
 			{
 				this.m_GaugeList[i].fillAmount = (float)(this.m_GaugeValue - i * 200) / 200f;
@@ -125,7 +125,7 @@ public class Voltage_Mgr : PartsMgrBase
 				}
 				this.m_FlashGauge.gameObject.SetActive(true);
 				Color white = Color.white;
-				white.a = Mathf.Sin(timer / this.m_FlashTime * 90f * 0.0174532924f);
+				white.a = Mathf.Sin(timer / this.m_FlashTime * 90f * 0.017453292f);
 				for (int i = 0; i < this.m_FlashGaugeList.Count; i++)
 				{
 					if (200 * (i + 1) <= this.m_GaugeValue)

+ 1 - 1
Assembly-CSharp/WindowPartsFingerPreset.cs

@@ -182,7 +182,7 @@ public class WindowPartsFingerPreset : MonoBehaviour
 	{
 		WindowPartsFingerBlend.Type blendType = tareget_blend.BlendType;
 		FingerBlend.BaseFinger baseFingerClass = tareget_blend.GetBaseFingerClass(tareget_blend.mgr.select_maid, blendType);
-		XElement xelement = new XElement("GameVersion", 1510);
+		XElement xelement = new XElement("GameVersion", 1550);
 		XElement xelement2 = new XElement("RightData", blendType == WindowPartsFingerBlend.Type.RightArm || blendType == WindowPartsFingerBlend.Type.RightLeg);
 		XElement xelement3 = new XElement("BinaryData", Convert.ToBase64String(baseFingerClass.GetBinary()));
 		XNode[] contents = new XNode[]

+ 1 - 1
Assembly-CSharp/YotogiManager.cs

@@ -656,7 +656,7 @@ public class YotogiManager : WfScreenManager
 			for (int i = 0; i < keyArray.Length; i++)
 			{
 				Skill.Data data = Skill.Get(keyArray[i]);
-				if (data.specialConditionType != Skill.Data.SpecialConditionType.NewType && data.specialConditionType != Skill.Data.SpecialConditionType.GP01Recollect && data.specialConditionType != Skill.Data.SpecialConditionType.GP02Recollect)
+				if (data.specialConditionType != Skill.Data.SpecialConditionType.NewType && data.specialConditionType != Skill.Data.SpecialConditionType.GP01Recollect && data.specialConditionType != Skill.Data.SpecialConditionType.GP02Recollect && data.specialConditionType != Skill.Data.SpecialConditionType.OnlyRecollect)
 				{
 					if (!hashSet.Contains(data.player_num))
 					{

+ 1 - 1
Assembly-CSharp/YotogiOldParamBasicBar.cs

@@ -56,7 +56,7 @@ public class YotogiOldParamBasicBar : MonoBehaviour
 		YotogiOldParamBasicBar.BarSet barSet = this.bar_dic_[YotogiOldParamBasicBar.Kind.Excite];
 		barSet.num_label.text = cur_num.ToString();
 		float num = (float)(cur_num + barSet.min * -1) / (float)barSet.max;
-		num -= 0.333333343f;
+		num -= 0.33333334f;
 		Color color;
 		if (200 <= cur_num)
 		{

+ 1 - 1
Assembly-CSharp/YotogiParamBasicBar.cs

@@ -60,7 +60,7 @@ public class YotogiParamBasicBar : MonoBehaviour
 		YotogiParamBasicBar.BarSet barSet = this.bar_dic_[YotogiParamBasicBar.Kind.Excite];
 		barSet.num_label.text = cur_num.ToString();
 		float num = (float)(cur_num + barSet.min * -1) / (float)barSet.max;
-		num -= 0.333333343f;
+		num -= 0.33333334f;
 		Color color;
 		if (200 <= cur_num)
 		{

+ 1 - 1
Assembly-CSharp/YotogiParameterViewer.cs

@@ -64,7 +64,7 @@ public class YotogiParameterViewer : MonoBehaviour
 		this.label_dictionary_[YotogiParameterViewer.LabelType.Name].text = status.charaName.GetFullName("\n");
 		this.label_dictionary_[YotogiParameterViewer.LabelType.YotogiPlayCount].text = status.playCountYotogi.ToString();
 		action(YotogiParameterViewer.LabelType.Seikeiken, EnumConvert.GetString(status.seikeiken), EnumConvert.GetTerm(status.seikeiken));
-		action(YotogiParameterViewer.LabelType.Relation, EnumConvert.GetString(status.relation, status.additionalRelation, status.specialRelation), EnumConvert.GetTerm(status.relation, status.additionalRelation, status.specialRelation));
+		action(YotogiParameterViewer.LabelType.Relation, EnumConvert.GetString(status.contract, status.relation, status.additionalRelation, status.specialRelation), EnumConvert.GetTerm(status.contract, status.relation, status.additionalRelation, status.specialRelation));
 		action(YotogiParameterViewer.LabelType.ConditionText, status.conditionText, status.conditionTermText);
 	}
 

+ 116 - 19
Assembly-CSharp/Yotogis/Skill.cs

@@ -1380,10 +1380,45 @@ namespace Yotogis
 				{
 					this.specialConditionType = Skill.Data.SpecialConditionType.Null;
 				}
-				else
+				else if (cellAsString.IndexOf("|") != -1)
 				{
+					string[] array10 = cellAsString.Split(new char[]
+					{
+						'|'
+					});
+					NDebug.Assert(array10.Length == 2, string.Concat(new object[]
+					{
+						"夜伽スキルID[",
+						this.id,
+						"] 名前[",
+						this.name,
+						"]の特殊状態指定が正しくありません。|でのSplitに失敗しました"
+					}));
 					int num4 = 0;
-					bool condition = int.TryParse(cellAsString, out num4);
+					bool flag = int.TryParse(array10[0], out num4);
+					NDebug.Assert(flag && num4 == 9, string.Concat(new object[]
+					{
+						"夜伽スキルID[",
+						this.id,
+						"] 名前[",
+						this.name,
+						"]の特殊状態指定が正しくありません。textList[0]のParseに失敗"
+					}));
+					this.specialConditionType = (Skill.Data.SpecialConditionType)num4;
+					this.customRecollectionCategoryName = array10[1].Trim();
+					NDebug.Assert(!string.IsNullOrEmpty(this.customRecollectionCategoryName), string.Concat(new object[]
+					{
+						"夜伽スキルID[",
+						this.id,
+						"] 名前[",
+						this.name,
+						"]の特殊状態指定が正しくありません。textList[1]が空です"
+					}));
+				}
+				else
+				{
+					int num5 = 0;
+					bool condition = int.TryParse(cellAsString, out num5);
 					NDebug.Assert(condition, string.Concat(new object[]
 					{
 						"夜伽スキルID[",
@@ -1392,7 +1427,15 @@ namespace Yotogis
 						this.name,
 						"]の特殊状態指定が正しくありません。数字指定のみ受け付けます"
 					}));
-					this.specialConditionType = (Skill.Data.SpecialConditionType)num4;
+					this.specialConditionType = (Skill.Data.SpecialConditionType)num5;
+					NDebug.Assert(this.specialConditionType != Skill.Data.SpecialConditionType.OnlyRecollect, string.Concat(new object[]
+					{
+						"夜伽スキルID[",
+						this.id,
+						"] 名前[",
+						this.name,
+						"]の特殊状態指定が正しくありません。回想オンリーのものには必ず|でカテゴリー名を記述してください"
+					}));
 				}
 				if (csv.IsCellToExistData(num++, y))
 				{
@@ -1409,20 +1452,20 @@ namespace Yotogis
 					string cellAsString3 = csv.GetCellAsString(num++, y);
 					if (string.IsNullOrEmpty(cellAsString2))
 					{
-						IL_701:
+						IL_87F:
 						NDebug.Assert(command_data_cell_dic.ContainsKey(this.id), this.name + "の情報は見つかりませんでした");
-						int[] array10 = command_data_cell_dic[this.id];
-						this.command_basic_cell_y = array10[0];
-						this.command_status_cell_y = array10[1];
+						int[] array11 = command_data_cell_dic[this.id];
+						this.command_basic_cell_y = array11[0];
+						this.command_status_cell_y = array11[1];
 						num = 0;
 						int cellAsInteger3 = csv_acq.GetCellAsInteger(num++, y);
 						num++;
 						NDebug.Assert(cellAsInteger3 == this.id, "スキル取得条件とスキル詳細のIDラインが一致していません");
 						this.getcondition_data = new Skill.Data.GetConditionData();
 						this.getcondition_data.seikeiken = new bool[4];
-						for (int num5 = 0; num5 < this.getcondition_data.seikeiken.Length; num5++)
+						for (int num6 = 0; num6 < this.getcondition_data.seikeiken.Length; num6++)
 						{
-							this.getcondition_data.seikeiken[num5] = (csv_acq.GetCellAsString(num++, y) == "〇");
+							this.getcondition_data.seikeiken[num6] = (csv_acq.GetCellAsString(num++, y) == "〇");
 						}
 						this.getcondition_data.inyoku = csv_acq.GetCellAsInteger(num++, y);
 						this.getcondition_data.m_value = csv_acq.GetCellAsInteger(num++, y);
@@ -1435,14 +1478,14 @@ namespace Yotogis
 						string cellAsString4 = csv_acq.GetCellAsString(num++, y);
 						if (!string.IsNullOrEmpty(cellAsString4))
 						{
-							string[] array11 = cellAsString4.Split(new char[]
+							string[] array12 = cellAsString4.Split(new char[]
 							{
 								','
 							});
-							this.getcondition_data.requestPersonals = new MaidStatus.Personal.Data[array11.Length];
-							for (int num6 = 0; num6 < array11.Length; num6++)
+							this.getcondition_data.requestPersonals = new MaidStatus.Personal.Data[array12.Length];
+							for (int num7 = 0; num7 < array12.Length; num7++)
 							{
-								this.getcondition_data.requestPersonals[num6] = MaidStatus.Personal.GetData(array11[num6].Trim());
+								this.getcondition_data.requestPersonals[num7] = MaidStatus.Personal.GetData(array12[num7].Trim());
 							}
 						}
 						if (csv_acq.IsCellToExistData(num, y) && csv_acq.IsCellToExistData(1, y))
@@ -1467,6 +1510,22 @@ namespace Yotogis
 						}
 						string cellAsString7 = csv_acq.GetCellAsString(num++, y);
 						this.getcondition_data.requestMarried = (cellAsString7 == "〇");
+						string cellAsString8 = csv_acq.GetCellAsString(num++, y);
+						this.getcondition_data.requestSlave = (cellAsString8 == "〇");
+						this.getcondition_data.rejectPersonals = new MaidStatus.Personal.Data[0];
+						string cellAsString9 = csv_acq.GetCellAsString(num++, y);
+						if (!string.IsNullOrEmpty(cellAsString9))
+						{
+							string[] array13 = cellAsString9.Split(new char[]
+							{
+								','
+							});
+							this.getcondition_data.rejectPersonals = new MaidStatus.Personal.Data[array13.Length];
+							for (int num8 = 0; num8 < array13.Length; num8++)
+							{
+								this.getcondition_data.rejectPersonals[num8] = MaidStatus.Personal.GetData(array13[num8].Trim());
+							}
+						}
 						return;
 					}
 					if (cellAsString3 == "〇")
@@ -1474,7 +1533,7 @@ namespace Yotogis
 						this.playable_stageid_list.Add(YotogiStage.uniqueNameToId(cellAsString2));
 					}
 				}
-				goto IL_701;
+				goto IL_87F;
 			}
 
 			public void SetOldSkillData(Skill.Old.Data data)
@@ -1509,21 +1568,39 @@ namespace Yotogis
 
 			public bool IsExecStatus(MaidStatus.Status status)
 			{
-				return status != null && (!this.getcondition_data.requestMarried || status.specialRelation == SpecialRelation.Married);
+				return status != null && (!this.getcondition_data.requestMarried || status.specialRelation == SpecialRelation.Married) && (!this.getcondition_data.requestSlave || status.additionalRelation == AdditionalRelation.Slave);
 			}
 
 			public bool IsExecPersonal(MaidStatus.Personal.Data personal_data)
 			{
-				if (this.getcondition_data.requestPersonals.Length == 0)
+				if (personal_data == null)
+				{
+					return false;
+				}
+				if (this.getcondition_data.requestPersonals.Length == 0 && this.getcondition_data.rejectPersonals.Length == 0)
 				{
 					return true;
 				}
 				if (personal_data != null)
 				{
-					foreach (MaidStatus.Personal.Data data in this.getcondition_data.requestPersonals)
+					foreach (MaidStatus.Personal.Data data in this.getcondition_data.rejectPersonals)
 					{
 						if (data.id == personal_data.id)
 						{
+							return false;
+						}
+					}
+				}
+				if (this.getcondition_data.requestPersonals.Length == 0)
+				{
+					return true;
+				}
+				if (personal_data != null)
+				{
+					foreach (MaidStatus.Personal.Data data2 in this.getcondition_data.requestPersonals)
+					{
+						if (data2.id == personal_data.id)
+						{
 							return true;
 						}
 					}
@@ -1569,6 +1646,10 @@ namespace Yotogis
 				{
 					return false;
 				}
+				if (this.getcondition_data.requestSlave && status.additionalRelation != AdditionalRelation.Slave)
+				{
+					return false;
+				}
 				if (this.getcondition_data.requestPersonals.Length != 0)
 				{
 					bool flag = false;
@@ -1581,6 +1662,16 @@ namespace Yotogis
 						return false;
 					}
 				}
+				if (this.getcondition_data.rejectPersonals.Length != 0)
+				{
+					foreach (MaidStatus.Personal.Data data2 in this.getcondition_data.rejectPersonals)
+					{
+						if (data2.id == status.personal.id)
+						{
+							return false;
+						}
+					}
+				}
 				if (this.getcondition_data.maid_class != null)
 				{
 					if (!status.jobClass.Contains(this.getcondition_data.maid_class.id))
@@ -1621,6 +1712,7 @@ namespace Yotogis
 				case Skill.Data.SpecialConditionType.NewType:
 				case Skill.Data.SpecialConditionType.GP01Recollect:
 				case Skill.Data.SpecialConditionType.GP02Recollect:
+				case Skill.Data.SpecialConditionType.OnlyRecollect:
 					return false;
 				}
 				return !lockNTRPlay || (this.category != Yotogi.Category.交換 && this.category != Yotogi.Category.乱交);
@@ -1628,7 +1720,7 @@ namespace Yotogis
 
 			public bool IsSkillListDisplay(bool lockNTRPlay)
 			{
-				return this.specialConditionType != Skill.Data.SpecialConditionType.Faint && this.specialConditionType != Skill.Data.SpecialConditionType.NewType && this.specialConditionType != Skill.Data.SpecialConditionType.GP01Recollect && this.specialConditionType != Skill.Data.SpecialConditionType.GP02Recollect && (!lockNTRPlay || (this.category != Yotogi.Category.交換 && this.category != Yotogi.Category.乱交));
+				return this.specialConditionType != Skill.Data.SpecialConditionType.Faint && this.specialConditionType != Skill.Data.SpecialConditionType.NewType && this.specialConditionType != Skill.Data.SpecialConditionType.GP01Recollect && this.specialConditionType != Skill.Data.SpecialConditionType.GP02Recollect && this.specialConditionType != Skill.Data.SpecialConditionType.OnlyRecollect && (!lockNTRPlay || (this.category != Yotogi.Category.交換 && this.category != Yotogi.Category.乱交));
 			}
 
 			public Skill.Data.Command command
@@ -1694,6 +1786,8 @@ namespace Yotogis
 
 			public readonly Skill.Data.SpecialConditionType specialConditionType;
 
+			public readonly string customRecollectionCategoryName;
+
 			public readonly string name;
 
 			public readonly string icon_file_name;
@@ -2233,7 +2327,8 @@ namespace Yotogis
 				Confess,
 				NewType,
 				GP01Recollect,
-				GP02Recollect
+				GP02Recollect,
+				OnlyRecollect
 			}
 
 			public class GetConditionData : SkillAcquisitionCondition
@@ -2262,6 +2357,8 @@ namespace Yotogis
 				public JobClass.Data maid_class;
 
 				public int maid_class_level;
+
+				public MaidStatus.Personal.Data[] rejectPersonals;
 			}
 		}
 	}

+ 10 - 0
Assembly-CSharp/Yotogis/SkillAcquisitionCondition.cs

@@ -104,6 +104,14 @@ namespace Yotogis
 					"MaidStatus/条件文/状態嫁"
 				}, value9));
 			}
+			if (this.requestSlave)
+			{
+				bool value10 = status != null && status.additionalRelation == AdditionalRelation.Slave;
+				list.Add(new KeyValuePair<string[], bool>(new string[]
+				{
+					"MaidStatus/条件文/状態愛奴"
+				}, value10));
+			}
 			return list;
 		}
 
@@ -128,5 +136,7 @@ namespace Yotogis
 		public int yotogi_class_level;
 
 		public bool requestMarried;
+
+		public bool requestSlave;
 	}
 }

+ 3 - 3
Assembly-CSharp/jiggleBone.cs

@@ -32,7 +32,7 @@ public class jiggleBone : MonoBehaviour
 			{
 				float num = (this.m_fMuneYawaraka - 0.5f) / 0.5f;
 				this.bMass = 0.4f + 1.1f * num;
-				this.bDamping = 0.3f - 0.290000021f * num;
+				this.bDamping = 0.3f - 0.29000002f * num;
 				this.BlendValueON2 = 1f;
 			}
 			else
@@ -131,7 +131,7 @@ public class jiggleBone : MonoBehaviour
 					float num5 = Vector3.Dot(Vector3.up, this.m_trParent.up);
 					if (this.m_fScaleDotRateLimit <= num5 && 0.7f < this.BlendValue)
 					{
-						this.m_fMuneScaleRate = (this.BlendValue - 0.7f) / 0.599999964f;
+						this.m_fMuneScaleRate = (this.BlendValue - 0.7f) / 0.59999996f;
 						this.m_fScaleX = 1f - this.m_fScaleMinus * ((num5 - this.m_fScaleDotRateLimit) / (1f - this.m_fScaleDotRateLimit)) * this.m_fMuneScaleRate * this.BlendValueON;
 					}
 					else
@@ -171,7 +171,7 @@ public class jiggleBone : MonoBehaviour
 			num7 = 1f;
 		}
 		num6 *= num7 * this.BlendValueON;
-		num6 += 3.14159274f;
+		num6 += 3.1415927f;
 		this.m_trSub.localRotation = Quaternion.EulerRotation(0f, 0f, num6);
 	}
 

+ 12 - 0
Assembly-CSharp/uGUIMaidPlate.cs

@@ -2,6 +2,7 @@
 using MaidStatus;
 using UnityEngine;
 using UnityEngine.UI;
+using wf;
 
 public class uGUIMaidPlate : MonoBehaviour
 {
@@ -17,6 +18,10 @@ public class uGUIMaidPlate : MonoBehaviour
 	{
 		this.m_status.main = UTY.GetChildObject(base.gameObject, "Plate", false);
 		this.m_status.leaderPlate = UTY.GetChildObject(base.gameObject, "Status/Leader", false).GetComponent<Image>();
+		if (UTY.GetChildObject(base.gameObject, "Status/Leader_en", true) != null)
+		{
+			this.m_status.leaderPlate_en = UTY.GetChildObject(base.gameObject, "Status/Leader_en", false).GetComponent<Image>();
+		}
 		this.m_status.icon = UTY.GetChildObject(base.gameObject, "Figure/Icon", false).GetComponent<Image>();
 		this.m_status.firstName = UTY.GetChildObject(base.gameObject, "Status/Name/FirstName", false).GetComponent<Text>();
 		this.m_status.lastName = UTY.GetChildObject(base.gameObject, "Status/Name/LastName", false).GetComponent<Text>();
@@ -33,12 +38,17 @@ public class uGUIMaidPlate : MonoBehaviour
 		}
 		MaidStatus.Status status = this.m_maid.status;
 		this.m_status.leaderPlate.gameObject.SetActive(status.leader);
+		if (this.m_status.leaderPlate_en != null)
+		{
+			this.m_status.leaderPlate_en.gameObject.SetActive(status.leader);
+		}
 		NamePair charaName = status.charaName;
 		this.m_status.lastName.text = charaName.name1;
 		this.m_status.firstName.text = charaName.name2;
 		if (status.heroineType != HeroineType.Sub)
 		{
 			this.m_status.contractType.text = EnumConvert.GetString(status.contract);
+			Utility.SetLocalizeTerm(this.m_status.contractType, EnumConvert.GetTerm(status.contract), false);
 		}
 		else
 		{
@@ -72,6 +82,8 @@ public class uGUIMaidPlate : MonoBehaviour
 
 		public Image leaderPlate;
 
+		public Image leaderPlate_en;
+
 		public Image icon;
 	}
 }

+ 12 - 1
Assembly-CSharp/wf/ReadOnlyDictionary.cs

@@ -1,9 +1,10 @@
 using System;
+using System.Collections;
 using System.Collections.Generic;
 
 namespace wf
 {
-	public class ReadOnlyDictionary<Tkey, TVal>
+	public class ReadOnlyDictionary<Tkey, TVal> : IEnumerable<KeyValuePair<Tkey, TVal>>, IEnumerable
 	{
 		public ReadOnlyDictionary(Dictionary<Tkey, TVal> srcData)
 		{
@@ -63,6 +64,16 @@ namespace wf
 			return new Dictionary<Tkey, TVal>(this.srcData);
 		}
 
+		public IEnumerator<KeyValuePair<Tkey, TVal>> GetEnumerator()
+		{
+			return this.srcData.GetEnumerator();
+		}
+
+		IEnumerator IEnumerable.GetEnumerator()
+		{
+			return this.srcData.GetEnumerator();
+		}
+
 		private Dictionary<Tkey, TVal> srcData;
 	}
 }