denikson 5 years ago
parent
commit
e3b77b2234
217 changed files with 5546 additions and 1811 deletions
  1. 5 5
      Assembly-CSharp.sln
  2. 37 28
      Assembly-CSharp/Assembly-CSharp.csproj
  3. 606 19
      Assembly-CSharp/BaseKagManager.cs
  4. 4 4
      Assembly-CSharp/BasePanelMgr.cs
  5. 1 1
      Assembly-CSharp/BasePhotoCustomObject.cs
  6. 32 7
      Assembly-CSharp/BasePhotoWindow.cs
  7. 3 3
      Assembly-CSharp/BasePhotoWindowManager.cs
  8. 1 1
      Assembly-CSharp/BetSetUI.cs
  9. 214 0
      Assembly-CSharp/BipedIKCtrlData.cs
  10. 2 2
      Assembly-CSharp/BjMotionControl.cs
  11. 13 13
      Assembly-CSharp/BlackjackGame.cs
  12. 202 0
      Assembly-CSharp/BodyCtrlData.cs
  13. 63 0
      Assembly-CSharp/CCDIKCtrlData.cs
  14. 4 4
      Assembly-CSharp/CMSystem.cs
  15. 3 3
      Assembly-CSharp/CharacterMgr.cs
  16. 19 11
      Assembly-CSharp/CharacterSelectMain.cs
  17. 8 0
      Assembly-CSharp/ChuBlipManager.cs
  18. 12 4
      Assembly-CSharp/ColorPaletteManager.cs
  19. 3 3
      Assembly-CSharp/ConfigCtrl.cs
  20. 3 3
      Assembly-CSharp/ConfigMgr.cs
  21. 8 8
      Assembly-CSharp/ConfigVRCtrl.cs
  22. 2 2
      Assembly-CSharp/ControllerShortcutSettingData.cs
  23. 2 2
      Assembly-CSharp/ControllerShortcutWindow.cs
  24. 3 3
      Assembly-CSharp/DanceBattle_Mgr.cs
  25. 42 31
      Assembly-CSharp/DanceMain.cs
  26. 6 0
      Assembly-CSharp/DanceSelect.cs
  27. 66 29
      Assembly-CSharp/DanceSetting.cs
  28. 2 2
      Assembly-CSharp/DeskManager.cs
  29. 3 3
      Assembly-CSharp/DynamicBone.cs
  30. 82 9
      Assembly-CSharp/DynamicSkirtBone.cs
  31. 1 1
      Assembly-CSharp/EditMod.cs
  32. 1 1
      Assembly-CSharp/ExChangeUI.cs
  33. 63 0
      Assembly-CSharp/FABRIKCtrlData.cs
  34. 9 0
      Assembly-CSharp/FFNameDialog.cs
  35. 1 1
      Assembly-CSharp/FacilityFlag/Util.cs
  36. 1 1
      Assembly-CSharp/FacilityManager.cs
  37. 2 2
      Assembly-CSharp/FacilityUIList.cs
  38. 11 8
      Assembly-CSharp/FacilityUIPowerUpList.cs
  39. 9 7
      Assembly-CSharp/FacilityUIPowerUpMaterialList.cs
  40. 1 1
      Assembly-CSharp/FluctuationOfParameterUnit.cs
  41. 663 0
      Assembly-CSharp/FullBodyIKCtrl.cs
  42. 5 3
      Assembly-CSharp/GameMain.cs
  43. 2 2
      Assembly-CSharp/GameUty.cs
  44. 1 1
      Assembly-CSharp/GravityControlWindow.cs
  45. 22 1
      Assembly-CSharp/HairLongWindow.cs
  46. 3 3
      Assembly-CSharp/HandSignShortcut.cs
  47. 52 0
      Assembly-CSharp/HeightIKCtrlData.cs
  48. 7 5
      Assembly-CSharp/I2/Loc/LanguageSource.cs
  49. 2 0
      Assembly-CSharp/I2/Loc/LocalizationManager.cs
  50. 59 0
      Assembly-CSharp/I2/Loc/LocalizeTarget_NGUI_Button.cs
  51. 5 0
      Assembly-CSharp/I2/Loc/LocalizeTarget_NGUI_Label.cs
  52. 0 24
      Assembly-CSharp/I2/Loc/NGUI_LanguagePopup.cs
  53. 1093 0
      Assembly-CSharp/IKCtrlData.cs
  54. 122 281
      Assembly-CSharp/IKManager.cs
  55. 0 405
      Assembly-CSharp/IKMgrData.cs
  56. 4 2
      Assembly-CSharp/ItemInfoWnd.cs
  57. 25 9
      Assembly-CSharp/KaraokeDataManager.cs
  58. 45 0
      Assembly-CSharp/KasaiUtility.cs
  59. 1 1
      Assembly-CSharp/Kasizuki/ClubRoomSelectCtrl.cs
  60. 1 1
      Assembly-CSharp/Kasizuki/KasizukiCharacterSelectCtrl.cs
  61. 113 26
      Assembly-CSharp/Kasizuki/KasizukiMainMenu.cs
  62. 8 6
      Assembly-CSharp/Kasizuki/KasizukiManSelectCtrl.cs
  63. 19 3
      Assembly-CSharp/Kasizuki/KasizukiManager.cs
  64. 29 19
      Assembly-CSharp/Kasizuki/KasizukiPlayInfoCtrl.cs
  65. 6 6
      Assembly-CSharp/Kasizuki/KasizukiSaveAndLoadCtrl.cs
  66. 2 2
      Assembly-CSharp/Kasizuki/MaidAppealComment.cs
  67. 4 0
      Assembly-CSharp/Kasizuki/MaidDataType.cs
  68. 29 1
      Assembly-CSharp/Kasizuki/MaidLikabilityCtrl.cs
  69. 2 2
      Assembly-CSharp/Kasizuki/MaidMiniStatusCtrl.cs
  70. 15 0
      Assembly-CSharp/Kasizuki/ManData.cs
  71. 5 1
      Assembly-CSharp/Kasizuki/ManDataType.cs
  72. 3 3
      Assembly-CSharp/Kasizuki/NGUIWindow.cs
  73. 38 6
      Assembly-CSharp/Kasizuki/PlayData.cs
  74. 3 0
      Assembly-CSharp/Leap/Unity/IHandModel.cs
  75. 3 3
      Assembly-CSharp/Leap/Unity/LeapImageRetriever.cs
  76. 3 0
      Assembly-CSharp/Leap/Unity/LeapProvider.cs
  77. 4 0
      Assembly-CSharp/Leap/Unity/LeapVRCameraControl.cs
  78. 4 2
      Assembly-CSharp/Leap/Unity/RuntimeGizmos/RuntimeGizmoManager.cs
  79. 1 1
      Assembly-CSharp/LightWindow.cs
  80. 4 4
      Assembly-CSharp/LimbControl.cs
  81. 79 115
      Assembly-CSharp/Maid.cs
  82. 1 1
      Assembly-CSharp/MaidParts.cs
  83. 6 0
      Assembly-CSharp/MaidPlate.cs
  84. 1 1
      Assembly-CSharp/MaidProp.cs
  85. 10 0
      Assembly-CSharp/MaidStatus/CsvData/AbstractClassData.cs
  86. 15 0
      Assembly-CSharp/MaidStatus/EnumConvert.cs
  87. 10 0
      Assembly-CSharp/MaidStatus/Feature.cs
  88. 8 0
      Assembly-CSharp/MaidStatus/JobClass.cs
  89. 10 0
      Assembly-CSharp/MaidStatus/Personal.cs
  90. 10 0
      Assembly-CSharp/MaidStatus/Propensity.cs
  91. 9 1
      Assembly-CSharp/MaidStatus/Status.cs
  92. 8 0
      Assembly-CSharp/MaidStatus/YotogiClass.cs
  93. 6 1
      Assembly-CSharp/MaidTouch.cs
  94. 1 1
      Assembly-CSharp/MaidTransferMain.cs
  95. 20 18
      Assembly-CSharp/MainBusinessWindow.cs
  96. 2 2
      Assembly-CSharp/Menu.cs
  97. 5 3
      Assembly-CSharp/MessageClass.cs
  98. 1 1
      Assembly-CSharp/Misc.cs
  99. 1 1
      Assembly-CSharp/ModCompile.cs
  100. 1 1
      Assembly-CSharp/MotionAction_Mgr.cs
  101. 13 0
      Assembly-CSharp/MouseExposition.cs
  102. 1 1
      Assembly-CSharp/MyRoomCustom/CreativeRoom.cs
  103. 29 24
      Assembly-CSharp/MyRoomCustom/CreativeRoomUIObjectSettings.cs
  104. 2 2
      Assembly-CSharp/MyRoomCustom/CreativeRoomUISaveLoad.cs
  105. 87 0
      Assembly-CSharp/NGUILabelSpacingHold.cs
  106. 22 0
      Assembly-CSharp/NGUI_LanguagePopup.cs
  107. 1 1
      Assembly-CSharp/Note_Mgr.cs
  108. 2 0
      Assembly-CSharp/OVRCameraRig.cs
  109. 2 0
      Assembly-CSharp/OVRDisplay.cs
  110. 6 0
      Assembly-CSharp/OVRLipSync.cs
  111. 1 0
      Assembly-CSharp/OVRLipSyncContextBase.cs
  112. 3 3
      Assembly-CSharp/OVRLipSyncContextMorphTarget.cs
  113. 30 2
      Assembly-CSharp/OVRLipSyncMicInput.cs
  114. 26 14
      Assembly-CSharp/OVRManager.cs
  115. 2 1
      Assembly-CSharp/OVROverlay.cs
  116. 2 0
      Assembly-CSharp/OVRTouchpad.cs
  117. 4 4
      Assembly-CSharp/ObjectCreateWindow.cs
  118. 2 2
      Assembly-CSharp/ObjectManagerWindow.cs
  119. 2 2
      Assembly-CSharp/OnaholeBaseNodeMenuManager.cs
  120. 96 0
      Assembly-CSharp/OnaholeChuBlipDevice.cs
  121. 4 0
      Assembly-CSharp/OnaholeMotion.cs
  122. 3 3
      Assembly-CSharp/OnaholeNodeMenuChildSecondRow.cs
  123. 37 2
      Assembly-CSharp/OvrIK.cs
  124. 4 1
      Assembly-CSharp/OvrMgr.cs
  125. 8 0
      Assembly-CSharp/PhotoFaceData.cs
  126. 28 0
      Assembly-CSharp/PhotoFaceDataShortcut.cs
  127. 27 4
      Assembly-CSharp/PhotoFaceDataShortcutSetter.cs
  128. 2 2
      Assembly-CSharp/PhotoModeObjectSave.cs
  129. 2 2
      Assembly-CSharp/PhotoModePoseSave.cs
  130. 5 5
      Assembly-CSharp/PhotoModeSaveAndLoad.cs
  131. 2 2
      Assembly-CSharp/PhotoMotionData.cs
  132. 3 3
      Assembly-CSharp/PhotoMotionDataShortcutSetter.cs
  133. 1 1
      Assembly-CSharp/PlacementWindow.cs
  134. 1 1
      Assembly-CSharp/PlayerStatus/Status.cs
  135. 2 2
      Assembly-CSharp/PoseEditWindow.cs
  136. 5 6
      Assembly-CSharp/PresetCtrl.cs
  137. 44 25
      Assembly-CSharp/ProfileCtrl.cs
  138. 4 5
      Assembly-CSharp/RandomPresetCtrl.cs
  139. 0 1
      Assembly-CSharp/RenderHeads/Media/AVProVideo/WindowsMediaPlayer.cs
  140. 1 1
      Assembly-CSharp/SaveAndLoadMgr.cs
  141. 40 16
      Assembly-CSharp/ScenarioData.cs
  142. 6 6
      Assembly-CSharp/SceneCasino.cs
  143. 5 5
      Assembly-CSharp/SceneCasinoShop.cs
  144. 39 19
      Assembly-CSharp/SceneEdit.cs
  145. 2 2
      Assembly-CSharp/SceneEditNameSettingPanel.cs
  146. 1 1
      Assembly-CSharp/SceneEditWindow/BaseIconWindow.cs
  147. 6 3
      Assembly-CSharp/SceneEditWindow/CustomPartsWindow.cs
  148. 11 15
      Assembly-CSharp/SceneEditWindow/PresetSaveWindow.cs
  149. 1 1
      Assembly-CSharp/SceneEditWindow/UndressWindow.cs
  150. 1 1
      Assembly-CSharp/SceneEditWindow/VoiceIconWindow.cs
  151. 57 49
      Assembly-CSharp/SceneFacilityManagement.cs
  152. 1 1
      Assembly-CSharp/SceneUserEditMain.cs
  153. 4 4
      Assembly-CSharp/SceneVRCommunication.cs
  154. 3 7
      Assembly-CSharp/SceneWarning.cs
  155. 1 1
      Assembly-CSharp/ScheduleTaskViewer.cs
  156. 33 1
      Assembly-CSharp/ScriptManager.cs
  157. 96 14
      Assembly-CSharp/SelectButtonCtrl.cs
  158. 1 1
      Assembly-CSharp/SlotManager.cs
  159. 1 1
      Assembly-CSharp/SlotUImgr.cs
  160. 2 2
      Assembly-CSharp/StaffRollCtrl.cs
  161. 2 2
      Assembly-CSharp/StatusViewer.cs
  162. 3 0
      Assembly-CSharp/SteamVR_GazeTracker.cs
  163. 3 0
      Assembly-CSharp/SteamVR_LaserPointer.cs
  164. 12 0
      Assembly-CSharp/SteamVR_TrackedController.cs
  165. 7 2
      Assembly-CSharp/SubtitleDisplayManager.cs
  166. 10 0
      Assembly-CSharp/SystemDialog.cs
  167. 19 18
      Assembly-CSharp/SystemShortcut.cs
  168. 35 65
      Assembly-CSharp/TBody.cs
  169. 3 2
      Assembly-CSharp/TatooAlphaWindow.cs
  170. 6 6
      Assembly-CSharp/TitleMgr.cs
  171. 8 0
      Assembly-CSharp/TriLib/AssetLoader.cs
  172. 2 0
      Assembly-CSharp/TriLib/Samples/FileOpenDialog.cs
  173. 1 1
      Assembly-CSharp/TriLib/Samples/URIDialog.cs
  174. 11 2
      Assembly-CSharp/UICamera.cs
  175. 14 1
      Assembly-CSharp/UILabel.cs
  176. 6 1
      Assembly-CSharp/UIPopupList.cs
  177. 3 3
      Assembly-CSharp/UIStates.cs
  178. 9 5
      Assembly-CSharp/UndressDance_Mgr.cs
  179. 4 2
      Assembly-CSharp/UnityEngine/UI/uGUIScrollRect.cs
  180. 3 3
      Assembly-CSharp/VRCanvasManager.cs
  181. 1 1
      Assembly-CSharp/VRCanvasManagerMini.cs
  182. 2 2
      Assembly-CSharp/VRChangeBackGroundMenu.cs
  183. 17 17
      Assembly-CSharp/VRConfigMenu.cs
  184. 1 1
      Assembly-CSharp/VRCultivationSeedInventory.cs
  185. 6 6
      Assembly-CSharp/VRDialogMenu.cs
  186. 24 24
      Assembly-CSharp/VRExternalFileLoader.cs
  187. 5 5
      Assembly-CSharp/VRFaceShortcutConfig.cs
  188. 1 1
      Assembly-CSharp/VRIKGeneralObjectSetter.cs
  189. 3 3
      Assembly-CSharp/VRManualMenu.cs
  190. 2 2
      Assembly-CSharp/VRMiniGameManager.cs
  191. 2 2
      Assembly-CSharp/VRMiniGameScoreBoard.cs
  192. 6 6
      Assembly-CSharp/VRMiniGameSetup.cs
  193. 1 1
      Assembly-CSharp/VRNeiLetterMenu.cs
  194. 3 3
      Assembly-CSharp/VRRentalMaidMenu.cs
  195. 1 1
      Assembly-CSharp/VRSelectorMenu.cs
  196. 1 1
      Assembly-CSharp/VRTutorialMenu.cs
  197. 5 5
      Assembly-CSharp/VRVIPMenu.cs
  198. 1 1
      Assembly-CSharp/WindowPartsFingerPreset.cs
  199. 1 1
      Assembly-CSharp/WindowPartsPopUpList.cs
  200. 3 3
      Assembly-CSharp/WindowPartsTransform.cs
  201. 92 0
      Assembly-CSharp/XVI/AniLipSync/LowLatencyLipSyncContext.cs
  202. 20 10
      Assembly-CSharp/YotogiCommandFactory.cs
  203. 4 10
      Assembly-CSharp/YotogiManager.cs
  204. 4 4
      Assembly-CSharp/YotogiOldManager.cs
  205. 3 3
      Assembly-CSharp/YotogiOldPlayManager.cs
  206. 9 9
      Assembly-CSharp/YotogiOldSkillContainerViewer.cs
  207. 1 1
      Assembly-CSharp/YotogiOldSkillUnit.cs
  208. 29 13
      Assembly-CSharp/YotogiParamScroll.cs
  209. 5 6
      Assembly-CSharp/YotogiParameterViewer.cs
  210. 13 7
      Assembly-CSharp/YotogiPlayManager.cs
  211. 9 9
      Assembly-CSharp/YotogiSkillContainerViewer.cs
  212. 3 2
      Assembly-CSharp/YotogiSkillSelectManager.cs
  213. 3 1
      Assembly-CSharp/YotogiSkillUnit.cs
  214. 10 0
      Assembly-CSharp/YotogiStage.cs
  215. 24 0
      Assembly-CSharp/Yotogis/Skill.cs
  216. 70 64
      Assembly-CSharp/uGUIKaraokeSelect.cs
  217. 12 10
      Assembly-CSharp/uGUITutorialPanel.cs

+ 5 - 5
Assembly-CSharp.sln

@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 15
 VisualStudioVersion = 15.0.26228.4
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp\Assembly-CSharp.csproj", "{3C774868-C2C7-4676-938B-45C4722B18E8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp\Assembly-CSharp.csproj", "{76F74361-87FC-4BC2-9EC7-6D84812CCBA5}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +11,10 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3C774868-C2C7-4676-938B-45C4722B18E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3C774868-C2C7-4676-938B-45C4722B18E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3C774868-C2C7-4676-938B-45C4722B18E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3C774868-C2C7-4676-938B-45C4722B18E8}.Release|Any CPU.Build.0 = Release|Any CPU
+		{76F74361-87FC-4BC2-9EC7-6D84812CCBA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{76F74361-87FC-4BC2-9EC7-6D84812CCBA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{76F74361-87FC-4BC2-9EC7-6D84812CCBA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{76F74361-87FC-4BC2-9EC7-6D84812CCBA5}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 37 - 28
Assembly-CSharp/Assembly-CSharp.csproj

@@ -4,7 +4,7 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{3C774868-C2C7-4676-938B-45C4722B18E8}</ProjectGuid>
+    <ProjectGuid>{76F74361-87FC-4BC2-9EC7-6D84812CCBA5}</ProjectGuid>
     <OutputType>Library</OutputType>
     <RootNamespace>Assembly-CSharp</RootNamespace>
     <AssemblyName>Assembly-CSharp</AssemblyName>
@@ -33,47 +33,47 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="UnityEngine">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.dll</HintPath>
+    <Reference Include="Assembly-CSharp-firstpass">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
     </Reference>
-    <Reference Include="System">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.dll</HintPath>
+    <Reference Include="Assembly-UnityScript-firstpass">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-UnityScript-firstpass.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.UI">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.UI.dll</HintPath>
+    <Reference Include="FoveUnityPlugin">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\FoveUnityPlugin.dll</HintPath>
     </Reference>
-    <Reference Include="System.Core">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Core.dll</HintPath>
+    <Reference Include="Ionic.Zlib">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\Ionic.Zlib.dll</HintPath>
+    </Reference>
+    <Reference Include="JsonFx.Json">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\JsonFx.Json.dll</HintPath>
     </Reference>
     <Reference Include="LeapCSharp.NET3.5">
       <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\LeapCSharp.NET3.5.dll</HintPath>
     </Reference>
-    <Reference Include="Assembly-UnityScript-firstpass">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-UnityScript-firstpass.dll</HintPath>
+    <Reference Include="System">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.dll</HintPath>
     </Reference>
-    <Reference Include="Assembly-CSharp-firstpass">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
+    <Reference Include="System.Core">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Core.dll</HintPath>
     </Reference>
-    <Reference Include="System.Xml.Linq">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.Linq.dll</HintPath>
+    <Reference Include="System.Drawing">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Drawing.dll</HintPath>
     </Reference>
-    <Reference Include="JsonFx.Json">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\JsonFx.Json.dll</HintPath>
+    <Reference Include="System.Windows.Forms">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Windows.Forms.dll</HintPath>
     </Reference>
     <Reference Include="System.Xml">
       <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.dll</HintPath>
     </Reference>
-    <Reference Include="System.Windows.Forms">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Windows.Forms.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Drawing">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Drawing.dll</HintPath>
+    <Reference Include="System.Xml.Linq">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.Linq.dll</HintPath>
     </Reference>
-    <Reference Include="FoveUnityPlugin">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\FoveUnityPlugin.dll</HintPath>
+    <Reference Include="UnityEngine">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.dll</HintPath>
     </Reference>
-    <Reference Include="Ionic.Zlib">
-      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\Ionic.Zlib.dll</HintPath>
+    <Reference Include="UnityEngine.UI">
+      <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.UI.dll</HintPath>
     </Reference>
     <Reference Include="zxing.unity">
       <HintPath>..\..\..\Programs\Gams\COM3D2\COM3D2\COM3D2x64_Data\Managed\zxing.unity.dll</HintPath>
@@ -189,6 +189,7 @@
     <Compile Include="BGWindow.cs" />
     <Compile Include="BigThumbnail.cs" />
     <Compile Include="Billboard.cs" />
+    <Compile Include="BipedIKCtrlData.cs" />
     <Compile Include="BjMotionControl.cs" />
     <Compile Include="BjPlayer.cs" />
     <Compile Include="BjVoiceMgr.cs" />
@@ -197,6 +198,7 @@
     <Compile Include="BMFont.cs" />
     <Compile Include="BMGlyph.cs" />
     <Compile Include="BMSymbol.cs" />
+    <Compile Include="BodyCtrlData.cs" />
     <Compile Include="BodyStatusCtrl.cs" />
     <Compile Include="BodyStatusMgr.cs" />
     <Compile Include="BoneAttachPos.cs" />
@@ -224,6 +226,7 @@
     <Compile Include="CasinoDataMgr.cs" />
     <Compile Include="CasinoItemUI.cs" />
     <Compile Include="CasinoShopItem.cs" />
+    <Compile Include="CCDIKCtrlData.cs" />
     <Compile Include="ChallengeResult.cs" />
     <Compile Include="CharaAppealData.cs" />
     <Compile Include="CharacterMgr.cs" />
@@ -362,6 +365,7 @@
     <Compile Include="ExampleDragDropSurface.cs" />
     <Compile Include="ExChangeUI.cs" />
     <Compile Include="ExtensionsDictionaryClass.cs" />
+    <Compile Include="FABRIKCtrlData.cs" />
     <Compile Include="FaceWindow.cs" />
     <Compile Include="Facility.cs" />
     <Compile Include="FacilityDataTable.cs" />
@@ -398,6 +402,7 @@
     <Compile Include="FreeSkillSelect.cs" />
     <Compile Include="FreeSkillSelectOld.cs" />
     <Compile Include="FrontCamera.cs" />
+    <Compile Include="FullBodyIKCtrl.cs" />
     <Compile Include="GameInShop.cs" />
     <Compile Include="GameInShopMain.cs" />
     <Compile Include="GameMain.cs" />
@@ -415,6 +420,7 @@
     <Compile Include="Hand.cs" />
     <Compile Include="HandEnableDisableNotifier.cs" />
     <Compile Include="HandSignShortcut.cs" />
+    <Compile Include="HeightIKCtrlData.cs" />
     <Compile Include="HideScroll.cs" />
     <Compile Include="HideScrollEventCatch.cs" />
     <Compile Include="HyperlinkText\ObjectPool.cs" />
@@ -459,6 +465,7 @@
     <Compile Include="I2\Loc\LocalizeTargetDesc_Child.cs" />
     <Compile Include="I2\Loc\LocalizeTargetDesc_Prefab.cs" />
     <Compile Include="I2\Loc\LocalizeTargetDesc_Type.cs" />
+    <Compile Include="I2\Loc\LocalizeTarget_NGUI_Button.cs" />
     <Compile Include="I2\Loc\LocalizeTarget_NGUI_Label.cs" />
     <Compile Include="I2\Loc\LocalizeTarget_NGUI_Sprite.cs" />
     <Compile Include="I2\Loc\LocalizeTarget_NGUI_Texture.cs" />
@@ -472,7 +479,6 @@
     <Compile Include="I2\Loc\LocalizeTarget_UnityUI_Image.cs" />
     <Compile Include="I2\Loc\LocalizeTarget_UnityUI_RawImage.cs" />
     <Compile Include="I2\Loc\LocalizeTarget_UnityUI_Text.cs" />
-    <Compile Include="I2\Loc\NGUI_LanguagePopup.cs" />
     <Compile Include="I2\Loc\PersistentStorage.cs" />
     <Compile Include="I2\Loc\RealTimeTranslation.cs" />
     <Compile Include="I2\Loc\RegisterBundlesManager.cs" />
@@ -506,9 +512,9 @@
     <Compile Include="IDisposableBase.cs" />
     <Compile Include="IExperienceSystem.cs" />
     <Compile Include="IFade.cs" />
+    <Compile Include="IKCtrlData.cs" />
     <Compile Include="IKDragPoint.cs" />
     <Compile Include="IKManager.cs" />
-    <Compile Include="IKMgrData.cs" />
     <Compile Include="ImgDisplay.cs" />
     <Compile Include="ImportCM.cs" />
     <Compile Include="InfinityColorTextureCache.cs" />
@@ -743,9 +749,11 @@
     <Compile Include="MyRoomCustom\TextureData.cs" />
     <Compile Include="NewBehaviourScript.cs" />
     <Compile Include="NGUIDebug.cs" />
+    <Compile Include="NGUILabelSpacingHold.cs" />
     <Compile Include="NGUIMath.cs" />
     <Compile Include="NGUIText.cs" />
     <Compile Include="NGUITools.cs" />
+    <Compile Include="NGUI_LanguagePopup.cs" />
     <Compile Include="NightTaskUnit.cs" />
     <Compile Include="NodeButtonData.cs" />
     <Compile Include="NoteBase.cs" />
@@ -1526,6 +1534,7 @@
     <Compile Include="WorldTransformRotate.cs" />
     <Compile Include="XOR128.cs" />
     <Compile Include="XOR32.cs" />
+    <Compile Include="XVI\AniLipSync\LowLatencyLipSyncContext.cs" />
     <Compile Include="Yotogi.cs" />
     <Compile Include="YotogiAppearanceWithChubLip.cs" />
     <Compile Include="YotogiChuBLipSetting.cs" />

+ 606 - 19
Assembly-CSharp/BaseKagManager.cs

@@ -50,7 +50,16 @@ public class BaseKagManager : IDisposable
 		this.kag_.AddTagCallBack("ikattachpoint", new KagScript.KagTagCallBack(this.TagIKAttachPoint));
 		this.kag_.AddTagCallBack("ikattachbone", new KagScript.KagTagCallBack(this.TagIKAttachBone));
 		this.kag_.AddTagCallBack("ikdetach", new KagScript.KagTagCallBack(this.TagIKDetach));
+		this.kag_.AddTagCallBack("allikdetach", new KagScript.KagTagCallBack(this.TagAllIKDetach));
 		this.kag_.AddTagCallBack("ikattachodogu", new KagScript.KagTagCallBack(this.TagIKAttachOdogu));
+		this.kag_.AddTagCallBack("ikattachikbone", new KagScript.KagTagCallBack(this.TagIKAttachIKBone));
+		this.kag_.AddTagCallBack("setbodypos", new KagScript.KagTagCallBack(this.TagSetBodyPos));
+		this.kag_.AddTagCallBack("ikcheckthrough", new KagScript.KagTagCallBack(this.TagIKCheckThrough));
+		this.kag_.AddTagCallBack("nextikflag", new KagScript.KagTagCallBack(this.TagNextIKFlag));
+		this.kag_.AddTagCallBack("ikattachpointnext", new KagScript.KagTagCallBack(this.TagIKAttachPointNext));
+		this.kag_.AddTagCallBack("ikattachbonenext", new KagScript.KagTagCallBack(this.TagIKAttachBoneNext));
+		this.kag_.AddTagCallBack("ikattachodogunext", new KagScript.KagTagCallBack(this.TagIKAttachOdoguNext));
+		this.kag_.AddTagCallBack("ikattachikbonenext", new KagScript.KagTagCallBack(this.TagIKAttachIKBoneNext));
 		this.kag_.AddTagCallBack("allpos", new KagScript.KagTagCallBack(this.TagAllPos));
 		this.kag_.AddTagCallBack("alloffset", new KagScript.KagTagCallBack(this.TagAllOffSet));
 		this.kag_.AddTagCallBack("addalloffset", new KagScript.KagTagCallBack(this.TagAddAllOffset));
@@ -944,9 +953,14 @@ public class BaseKagManager : IDisposable
 		{
 			return false;
 		}
-		string strMyHand = tag_data.GetTagProperty("srcbone").AsString();
-		string f_strTargetAttachPointName = tag_data.GetTagProperty("targetpoint").AsString();
-		string f_strTargetSlotName = tag_data.GetTagProperty("targetobj").AsString();
+		string text = tag_data.GetTagProperty("srcbone").AsString();
+		string attachpoint_name = tag_data.GetTagProperty("targetpoint").AsString();
+		string tgt_name = tag_data.GetTagProperty("targetobj").AsString();
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
+		{
+			return false;
+		}
 		Vector3 zero = Vector3.zero;
 		if (tag_data.IsValid("offsetx"))
 		{
@@ -960,17 +974,27 @@ public class BaseKagManager : IDisposable
 		{
 			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
 		}
-		IKMgrData.IKAttachType attach_type = IKMgrData.IKAttachType.Point;
+		IKCtrlData.IKAttachType attach_type = IKCtrlData.IKAttachType.Point;
 		if (tag_data.IsValid("attach_type"))
 		{
-			attach_type = (IKMgrData.IKAttachType)Enum.Parse(typeof(IKMgrData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+			attach_type = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
 		}
 		string axisbone = string.Empty;
 		if (tag_data.IsValid("axisbone"))
 		{
 			axisbone = tag_data.GetTagProperty("axisbone").AsString();
 		}
-		maidAndMan.IKTargetToAttachPoint(strMyHand, maidAndMan2, f_strTargetSlotName, f_strTargetAttachPointName, zero, attach_type, axisbone);
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		bool do_animation = false;
+		if (tag_data.IsValid("do_animation"))
+		{
+			do_animation = true;
+		}
+		maidAndMan.IKTargetToAttachPoint(text, maidAndMan2, tgt_name, attachpoint_name, zero, attach_type, axisbone, blend_time, do_animation, false);
 		return false;
 	}
 
@@ -989,8 +1013,13 @@ public class BaseKagManager : IDisposable
 		{
 			return false;
 		}
-		string strMyHand = tag_data.GetTagProperty("srcbone").AsString();
-		string f_strTargetBoneName = tag_data.GetTagProperty("targetbone").AsString();
+		string text = tag_data.GetTagProperty("srcbone").AsString();
+		string tgtbone_name = tag_data.GetTagProperty("targetbone").AsString();
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
+		{
+			return false;
+		}
 		bool search_sm = tag_data.IsValid("Search_SM_Body");
 		Vector3 zero = Vector3.zero;
 		if (tag_data.IsValid("offsetx"))
@@ -1005,12 +1034,27 @@ public class BaseKagManager : IDisposable
 		{
 			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
 		}
-		IKMgrData.IKAttachType attach_type = IKMgrData.IKAttachType.Point;
+		IKCtrlData.IKAttachType ikattachType = IKCtrlData.IKAttachType.Point;
 		if (tag_data.IsValid("attach_type"))
 		{
-			attach_type = (IKMgrData.IKAttachType)Enum.Parse(typeof(IKMgrData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+			ikattachType = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
 		}
-		maidAndMan.IKTargetToBone(strMyHand, maidAndMan2, f_strTargetBoneName, zero, attach_type, search_sm);
+		if (ikattachType == IKCtrlData.IKAttachType.NewPoint)
+		{
+			ikdata.OffsetWorld = tag_data.IsValid("offset_world");
+			ikdata.OffsetBone = tag_data.IsValid("offset_bone");
+		}
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		bool do_animation = false;
+		if (tag_data.IsValid("do_animation"))
+		{
+			do_animation = true;
+		}
+		maidAndMan.IKTargetToBone(text, maidAndMan2, tgtbone_name, zero, ikattachType, search_sm, blend_time, do_animation, false);
 		return false;
 	}
 
@@ -1027,11 +1071,37 @@ public class BaseKagManager : IDisposable
 			return false;
 		}
 		string text = tag_data.GetTagProperty("srcbone").AsString();
-		if (text == null)
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
 		{
-			text = string.Empty;
+			return false;
+		}
+		float blendtime = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blendtime = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
 		}
-		maidAndMan.IKTargetToBone(text, null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+		maidAndMan.IKDetach(text, blendtime);
+		return false;
+	}
+
+	public bool TagAllIKDetach(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "allikdetach", new string[]
+		{
+			"src"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		if (maidAndMan == null)
+		{
+			return false;
+		}
+		float blendtime = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blendtime = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		maidAndMan.IKDetach(blendtime);
 		return false;
 	}
 
@@ -1048,8 +1118,455 @@ public class BaseKagManager : IDisposable
 		{
 			return false;
 		}
-		string strMyHand = tag_data.GetTagProperty("srcbone").AsString();
+		string text = tag_data.GetTagProperty("srcbone").AsString();
+		string odogu_name = tag_data.GetTagProperty("odogu").AsString();
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
+		{
+			return false;
+		}
+		string tgt_name = string.Empty;
+		if (tag_data.IsValid("target"))
+		{
+			tgt_name = tag_data.GetTagProperty("target").AsString();
+		}
+		Vector3 zero = Vector3.zero;
+		if (tag_data.IsValid("offsetx"))
+		{
+			zero.x = tag_data.GetTagProperty("offsetx").AsReal();
+		}
+		if (tag_data.IsValid("offsety"))
+		{
+			zero.y = tag_data.GetTagProperty("offsety").AsReal();
+		}
+		if (tag_data.IsValid("offsetz"))
+		{
+			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
+		}
+		IKCtrlData.IKAttachType ikattachType = IKCtrlData.IKAttachType.Point;
+		if (tag_data.IsValid("attach_type"))
+		{
+			ikattachType = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+		}
+		if (ikattachType == IKCtrlData.IKAttachType.NewPoint)
+		{
+			ikdata.OffsetWorld = tag_data.IsValid("offset_world");
+			ikdata.OffsetBone = tag_data.IsValid("offset_bone");
+		}
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		bool do_animation = false;
+		if (tag_data.IsValid("do_animation"))
+		{
+			do_animation = true;
+		}
+		maidAndMan.IKTargetToOdogu(text, odogu_name, tgt_name, zero, ikattachType, blend_time, do_animation, false);
+		return false;
+	}
+
+	public bool TagIKAttachIKBone(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "ikattachbone", new string[]
+		{
+			"src",
+			"srcbone",
+			"target",
+			"targetbone"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		Maid maidAndMan2 = this.GetMaidAndMan(tag_data.GetTagProperty("target").AsString());
+		if (maidAndMan == null || maidAndMan2 == null)
+		{
+			return false;
+		}
+		string text = tag_data.GetTagProperty("srcbone").AsString();
+		string bone_name = tag_data.GetTagProperty("targetbone").AsString();
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
+		{
+			return false;
+		}
+		Vector3 zero = Vector3.zero;
+		if (tag_data.IsValid("offsetx"))
+		{
+			zero.x = tag_data.GetTagProperty("offsetx").AsReal();
+		}
+		if (tag_data.IsValid("offsety"))
+		{
+			zero.y = tag_data.GetTagProperty("offsety").AsReal();
+		}
+		if (tag_data.IsValid("offsetz"))
+		{
+			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
+		}
+		IKCtrlData.IKAttachType ikattachType = IKCtrlData.IKAttachType.Point;
+		if (tag_data.IsValid("attach_type"))
+		{
+			ikattachType = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+		}
+		if (ikattachType == IKCtrlData.IKAttachType.NewPoint)
+		{
+			ikdata.OffsetWorld = tag_data.IsValid("offset_world");
+			ikdata.OffsetBone = tag_data.IsValid("offset_bone");
+		}
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		bool do_animation = tag_data.IsValid("do_animation");
+		maidAndMan.IKTargetToIKBone(text, maidAndMan2, bone_name, zero, ikattachType, blend_time, do_animation, false);
+		return false;
+	}
+
+	public bool TagSetBodyPos(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "setbodypos", new string[]
+		{
+			"src",
+			"srcbone",
+			"target",
+			"targetbone"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		Maid maidAndMan2 = this.GetMaidAndMan(tag_data.GetTagProperty("target").AsString());
+		if (maidAndMan == null || maidAndMan2 == null)
+		{
+			return false;
+		}
+		string tgtbone_name = tag_data.GetTagProperty("targetbone").AsString();
+		Vector3 zero = Vector3.zero;
+		if (tag_data.IsValid("offsetx"))
+		{
+			zero.x = tag_data.GetTagProperty("offsetx").AsReal();
+		}
+		if (tag_data.IsValid("offsety"))
+		{
+			zero.y = tag_data.GetTagProperty("offsety").AsReal();
+		}
+		if (tag_data.IsValid("offsetz"))
+		{
+			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
+		}
+		IKCtrlData.IKAttachType attach_type = IKCtrlData.IKAttachType.NewPoint;
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		bool search_sm = tag_data.IsValid("Search_SM_Body");
+		maidAndMan.IKCtrl.BodyCtrlData.OffsetEnable.Recet();
+		if (tag_data.IsValid("disable"))
+		{
+			string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
+			{
+				','
+			});
+			int i = 0;
+			while (i < array.Length)
+			{
+				string text = array[i];
+				string text2 = text.ToLower();
+				if (text2 != null)
+				{
+					if (!(text2 == "x"))
+					{
+						if (!(text2 == "y"))
+						{
+							if (text2 == "z")
+							{
+								maidAndMan.IKCtrl.BodyCtrlData.OffsetEnable.EnableZ = false;
+							}
+						}
+						else
+						{
+							maidAndMan.IKCtrl.BodyCtrlData.OffsetEnable.EnableY = false;
+						}
+					}
+					else
+					{
+						maidAndMan.IKCtrl.BodyCtrlData.OffsetEnable.EnableX = false;
+					}
+				}
+				IL_238:
+				i++;
+				continue;
+				goto IL_238;
+			}
+		}
+		if (tag_data.IsValid("heighttype"))
+		{
+			BodyCtrlData.HeightFitType heightFit = (BodyCtrlData.HeightFitType)Enum.Parse(typeof(BodyCtrlData.HeightFitType), tag_data.GetTagProperty("heighttype").AsString());
+			maidAndMan.IKCtrl.BodyCtrlData.HeightFit = heightFit;
+		}
+		maidAndMan.IKCtrl.BodyCtrlData.PosBaseBone = maidAndMan.body0.GetBone(tag_data.GetTagProperty("srcbone").AsString());
+		maidAndMan.IKCtrl.BodyCtrlData.OffsetWorld = tag_data.IsValid("offset_world");
+		maidAndMan.IKCtrl.BodyCtrlData.OffsetBone = tag_data.IsValid("offset_bone");
+		maidAndMan.IKTargetToBone("体全体", maidAndMan2, tgtbone_name, zero, attach_type, search_sm, blend_time, false, false);
+		return false;
+	}
+
+	public bool TagIKCheckThrough(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "ikcheckthrough", new string[]
+		{
+			"src",
+			"srcbone",
+			"checkobj"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		if (maidAndMan == null)
+		{
+			return false;
+		}
+		string tag_name = tag_data.GetTagProperty("srcbone").AsString();
+		BipedIKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData<BipedIKCtrlData>(tag_name);
+		if (tag_data.IsValid("correctbone"))
+		{
+			ikdata.ToCorrectBone = maidAndMan.body0.GetBone(tag_data.GetTagProperty("correctbone").AsString());
+		}
+		string text = tag_data.GetTagProperty("checkobj").AsString();
+		float weight = 1f;
+		if (tag_data.IsValid("bendweight"))
+		{
+			weight = tag_data.GetTagProperty("bendweight").AsReal();
+		}
+		BipedIKCtrlData.BorderCorrectData borderCorrectData;
+		if (text.Contains("Floor"))
+		{
+			borderCorrectData = ikdata.FloorCorrect;
+		}
+		else
+		{
+			if (!text.Contains("Wall"))
+			{
+				Debug.LogErrorFormat("{0}は定義できません", new object[]
+				{
+					text
+				});
+				return false;
+			}
+			borderCorrectData = ikdata.WallCorrect;
+		}
+		if (tag_data.IsValid("correcttype"))
+		{
+			ikdata.CorrectType = (BipedIKCtrlData.BorderCorrectType)Enum.Parse(typeof(BipedIKCtrlData.BorderCorrectType), tag_data.GetTagProperty("correcttype").AsString());
+			if (ikdata.CorrectType == BipedIKCtrlData.BorderCorrectType.HalfBody)
+			{
+				ikdata.RootEffector.positionWeight = 1f;
+			}
+		}
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		ikdata.ForceIK = true;
+		ikdata.Chain.bendConstraint.weight = weight;
+		ikdata.SetIKSetting(IKCtrlData.IKAttachType.NewPoint, false, null, null, Vector3.zero, false, blend_time);
+		borderCorrectData.Enable = true;
+		borderCorrectData.Border = float.Parse(text.Split(new char[]
+		{
+			':'
+		})[1]);
+		return false;
+	}
+
+	public bool TagNextIKFlag(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "nextikflag", new string[]
+		{
+			"src",
+			"srcbone",
+			"flagobj"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		if (maidAndMan == null)
+		{
+			return false;
+		}
+		string tag_name = tag_data.GetTagProperty("srcbone").AsString();
+		IKCtrlData ik_data = maidAndMan.IKCtrl.GetIKData(tag_name);
+		if (!ik_data)
+		{
+			return false;
+		}
+		Action<IKCtrlData.IKAttachType> action = delegate(IKCtrlData.IKAttachType attach_type)
+		{
+			if (tag_data.IsValid("axis"))
+			{
+				ik_data.GetFlagData(attach_type).Axis = KasaiUtility.Vec3Parse(tag_data.GetTagProperty("axis").AsString(), ',');
+			}
+			if (tag_data.IsValid("value"))
+			{
+				ik_data.GetFlagData(attach_type).OnValue = tag_data.GetTagProperty("value").AsReal();
+			}
+			ik_data.GetFlagData(attach_type).BlendCtrlSelf = tag_data.IsValid("blendself");
+			string name = tag_data.GetTagProperty("flagobj").AsString();
+			ik_data.SetFlagTarget(attach_type, name);
+		};
+		if (tag_data.IsValid("attach_type"))
+		{
+			IKCtrlData.IKAttachType obj = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+			action(obj);
+		}
+		else
+		{
+			action(IKCtrlData.IKAttachType.NewPoint);
+			action(IKCtrlData.IKAttachType.Rotate);
+		}
+		return false;
+	}
+
+	public bool TagIKAttachPointNext(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "ikattachpointnext", new string[]
+		{
+			"src",
+			"srcbone",
+			"target",
+			"targetobj",
+			"targetpoint"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		Maid maidAndMan2 = this.GetMaidAndMan(tag_data.GetTagProperty("target").AsString());
+		if (maidAndMan == null || maidAndMan2 == null)
+		{
+			return false;
+		}
+		string text = tag_data.GetTagProperty("srcbone").AsString();
+		string attachpoint_name = tag_data.GetTagProperty("targetpoint").AsString();
+		string tgt_name = tag_data.GetTagProperty("targetobj").AsString();
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
+		{
+			return false;
+		}
+		Vector3 zero = Vector3.zero;
+		if (tag_data.IsValid("offsetx"))
+		{
+			zero.x = tag_data.GetTagProperty("offsetx").AsReal();
+		}
+		if (tag_data.IsValid("offsety"))
+		{
+			zero.y = tag_data.GetTagProperty("offsety").AsReal();
+		}
+		if (tag_data.IsValid("offsetz"))
+		{
+			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
+		}
+		IKCtrlData.IKAttachType ikattachType = IKCtrlData.IKAttachType.Point;
+		if (tag_data.IsValid("attach_type"))
+		{
+			ikattachType = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+		}
+		if (ikattachType == IKCtrlData.IKAttachType.NewPoint)
+		{
+			ikdata.OffsetWorld = tag_data.IsValid("offset_world");
+			ikdata.OffsetBone = tag_data.IsValid("offset_bone");
+		}
+		string axisbone = string.Empty;
+		if (tag_data.IsValid("axisbone"))
+		{
+			axisbone = tag_data.GetTagProperty("axisbone").AsString();
+		}
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		bool do_animation = false;
+		if (tag_data.IsValid("do_animation"))
+		{
+			do_animation = true;
+		}
+		maidAndMan.IKTargetToAttachPoint(text, maidAndMan2, tgt_name, attachpoint_name, zero, ikattachType, axisbone, blend_time, do_animation, true);
+		return false;
+	}
+
+	public bool TagIKAttachBoneNext(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "ikattachbonenext", new string[]
+		{
+			"src",
+			"srcbone",
+			"target",
+			"targetbone"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		Maid maidAndMan2 = this.GetMaidAndMan(tag_data.GetTagProperty("target").AsString());
+		if (maidAndMan == null || maidAndMan2 == null)
+		{
+			return false;
+		}
+		string text = tag_data.GetTagProperty("srcbone").AsString();
+		string tgtbone_name = tag_data.GetTagProperty("targetbone").AsString();
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
+		{
+			return false;
+		}
+		bool search_sm = tag_data.IsValid("Search_SM_Body");
+		Vector3 zero = Vector3.zero;
+		if (tag_data.IsValid("offsetx"))
+		{
+			zero.x = tag_data.GetTagProperty("offsetx").AsReal();
+		}
+		if (tag_data.IsValid("offsety"))
+		{
+			zero.y = tag_data.GetTagProperty("offsety").AsReal();
+		}
+		if (tag_data.IsValid("offsetz"))
+		{
+			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
+		}
+		IKCtrlData.IKAttachType ikattachType = IKCtrlData.IKAttachType.Point;
+		if (tag_data.IsValid("attach_type"))
+		{
+			ikattachType = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+		}
+		if (ikattachType == IKCtrlData.IKAttachType.NewPoint)
+		{
+			ikdata.OffsetWorld = tag_data.IsValid("offset_world");
+			ikdata.OffsetBone = tag_data.IsValid("offset_bone");
+		}
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		bool do_animation = false;
+		if (tag_data.IsValid("do_animation"))
+		{
+			do_animation = true;
+		}
+		maidAndMan.IKTargetToBone(text, maidAndMan2, tgtbone_name, zero, ikattachType, search_sm, blend_time, do_animation, true);
+		return false;
+	}
+
+	public bool TagIKAttachOdoguNext(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "ikattachodogunext", new string[]
+		{
+			"src",
+			"srcbone",
+			"odogu"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		if (!maidAndMan)
+		{
+			return false;
+		}
+		string text = tag_data.GetTagProperty("srcbone").AsString();
 		string odogu_name = tag_data.GetTagProperty("odogu").AsString();
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
+		{
+			return false;
+		}
 		string tgt_name = string.Empty;
 		if (tag_data.IsValid("target"))
 		{
@@ -1068,12 +1585,82 @@ public class BaseKagManager : IDisposable
 		{
 			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
 		}
-		IKMgrData.IKAttachType attach_type = IKMgrData.IKAttachType.Point;
+		IKCtrlData.IKAttachType ikattachType = IKCtrlData.IKAttachType.Point;
 		if (tag_data.IsValid("attach_type"))
 		{
-			attach_type = (IKMgrData.IKAttachType)Enum.Parse(typeof(IKMgrData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+			ikattachType = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+		}
+		if (ikattachType == IKCtrlData.IKAttachType.NewPoint)
+		{
+			ikdata.OffsetWorld = tag_data.IsValid("offset_world");
+			ikdata.OffsetBone = tag_data.IsValid("offset_bone");
+		}
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
+		}
+		bool do_animation = false;
+		if (tag_data.IsValid("do_animation"))
+		{
+			do_animation = true;
+		}
+		maidAndMan.IKTargetToOdogu(text, odogu_name, tgt_name, zero, ikattachType, blend_time, do_animation, true);
+		return false;
+	}
+
+	public bool TagIKAttachIKBoneNext(KagTagSupport tag_data)
+	{
+		this.CheckAbsolutelyNecessaryTag(tag_data, "ikattachbonenext", new string[]
+		{
+			"src",
+			"srcbone",
+			"target",
+			"targetbone"
+		});
+		Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
+		Maid maidAndMan2 = this.GetMaidAndMan(tag_data.GetTagProperty("target").AsString());
+		if (maidAndMan == null || maidAndMan2 == null)
+		{
+			return false;
+		}
+		string text = tag_data.GetTagProperty("srcbone").AsString();
+		string bone_name = tag_data.GetTagProperty("targetbone").AsString();
+		IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
+		if (!ikdata)
+		{
+			return false;
+		}
+		Vector3 zero = Vector3.zero;
+		if (tag_data.IsValid("offsetx"))
+		{
+			zero.x = tag_data.GetTagProperty("offsetx").AsReal();
+		}
+		if (tag_data.IsValid("offsety"))
+		{
+			zero.y = tag_data.GetTagProperty("offsety").AsReal();
+		}
+		if (tag_data.IsValid("offsetz"))
+		{
+			zero.z = tag_data.GetTagProperty("offsetz").AsReal();
+		}
+		IKCtrlData.IKAttachType ikattachType = IKCtrlData.IKAttachType.Point;
+		if (tag_data.IsValid("attach_type"))
+		{
+			ikattachType = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
+		}
+		if (ikattachType == IKCtrlData.IKAttachType.NewPoint)
+		{
+			ikdata.OffsetWorld = tag_data.IsValid("offset_world");
+			ikdata.OffsetBone = tag_data.IsValid("offset_bone");
+		}
+		float blend_time = 0f;
+		if (tag_data.IsValid("blendtime"))
+		{
+			blend_time = GameUty.MillisecondToSecond(tag_data.GetTagProperty("blendtime").AsInteger());
 		}
-		maidAndMan.IKTargetToOdogu(strMyHand, odogu_name, tgt_name, zero, attach_type);
+		bool do_animation = tag_data.IsValid("do_animation");
+		maidAndMan.IKTargetToIKBone(text, maidAndMan2, bone_name, zero, ikattachType, blend_time, do_animation, true);
 		return false;
 	}
 
@@ -4145,7 +4732,7 @@ public class BaseKagManager : IDisposable
 	public void Serialize(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_KAG");
-		binary.Write(1160);
+		binary.Write(1170);
 		byte[] array = this.kag_.Serialize();
 		int value = array.Length;
 		binary.Write(value);

+ 4 - 4
Assembly-CSharp/BasePanelMgr.cs

@@ -172,7 +172,7 @@ public abstract class BasePanelMgr : MonoBehaviour
 		tweenAlpha.from = 0f;
 		tweenAlpha.to = 1f;
 		tweenAlpha.duration = this.durationToFadeIn;
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			this.ChangeFadeState(BasePanelMgr.FadeState.EndFadeIn);
 			this.AfterFadeIn();
@@ -224,7 +224,7 @@ public abstract class BasePanelMgr : MonoBehaviour
 			return;
 		}
 		TweenAlpha tweenAlpha = TweenAlpha.Begin(this.fadeTargetPanel, this.durationToFadeOut, 0f);
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			this.fadeTargetPanel.SetActive(false);
 			this.ChangeFadeState(BasePanelMgr.FadeState.EndFadeOut);
@@ -237,7 +237,7 @@ public abstract class BasePanelMgr : MonoBehaviour
 		this.BeforeFadeOut();
 		this.ChangeFadeState(BasePanelMgr.FadeState.StartFadeOut);
 		TweenAlpha tweenAlpha = TweenAlpha.Begin(this.fadeTargetPanel, this.durationToFadeOut, 0f);
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			this.fadeTargetPanel.SetActive(false);
 			this.ChangeFadeState(BasePanelMgr.FadeState.EndFadeOut);
@@ -251,7 +251,7 @@ public abstract class BasePanelMgr : MonoBehaviour
 		this.BeforeFadeOut();
 		this.ChangeFadeState(BasePanelMgr.FadeState.StartFadeOut);
 		TweenAlpha tweenAlpha = TweenAlpha.Begin(this.fadeTargetPanel, this.durationToFadeOut, 0f);
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			this.fadeTargetPanel.SetActive(false);
 			this.ChangeFadeState(BasePanelMgr.FadeState.EndFadeOut);

+ 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(1160);
+				binaryWriter.Write(1170);
 				binaryWriter.Write(this.type.ToString());
 				binaryWriter.Write(this.scale_);
 				binaryWriter.Write(this.enabledTextureColor_);

+ 32 - 7
Assembly-CSharp/BasePhotoWindow.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 
 public abstract class BasePhotoWindow : MonoBehaviour
@@ -19,7 +20,11 @@ public abstract class BasePhotoWindow : MonoBehaviour
 		UTY.GetChildObject(base.gameObject, "Parent/BG2", false).transform.localPosition = new Vector3(-100f, (float)((num2 - 100) * -1), 0f);
 		UTY.GetChildObject(base.gameObject, "Parent/BG/TitleBar", false).GetComponent<UIWidget>().width = num;
 		UTY.GetChildObject(base.gameObject, "Parent/BG/TitleBar/Btn", false).transform.localPosition = new Vector3((float)(num - 10), -10f, 0f);
-		(this.windowTitle = UTY.GetChildObject(base.gameObject, "Parent/BG/TitleBar/Text", false).GetComponent<UILabel>()).text = this.InitTitle;
+		this.windowTitle = UTY.GetChildObject(base.gameObject, "Parent/BG/TitleBar/Text", false).GetComponent<UILabel>();
+		if (this.windowTitle.GetComponent<Localize>() == null)
+		{
+			this.windowTitle.text = this.InitTitle;
+		}
 	}
 
 	public virtual void SetWindowTitle(string title)
@@ -27,6 +32,15 @@ public abstract class BasePhotoWindow : MonoBehaviour
 		this.windowTitle.text = title;
 	}
 
+	public virtual void SetWindowTitleFromLocalizeTerm(string termName)
+	{
+		Localize component = this.windowTitle.gameObject.GetComponent<Localize>();
+		if (component != null)
+		{
+			component.SetTerm(termName);
+		}
+	}
+
 	public virtual void Awake()
 	{
 		GameObject gameObject = GameObject.Find("/UI Root");
@@ -44,10 +58,10 @@ public abstract class BasePhotoWindow : MonoBehaviour
 		}
 		this.title_bar_label_ = UTY.GetChildObject(childObject, "Text", false).GetComponent<UILabel>();
 		Dictionary<BasePhotoWindow.BtnType, string> dictionary = new Dictionary<BasePhotoWindow.BtnType, string>();
-		dictionary.Add(BasePhotoWindow.BtnType.Help, "ヘルプ");
-		dictionary.Add(BasePhotoWindow.BtnType.Min, "最小化");
-		dictionary.Add(BasePhotoWindow.BtnType.Reset, "UI位置初期化");
-		dictionary.Add(BasePhotoWindow.BtnType.End, "閉じる");
+		dictionary.Add(BasePhotoWindow.BtnType.Help, "System/ヘルプ");
+		dictionary.Add(BasePhotoWindow.BtnType.Min, "System/最小化");
+		dictionary.Add(BasePhotoWindow.BtnType.Reset, "System/UI位置初期化");
+		dictionary.Add(BasePhotoWindow.BtnType.End, "System/閉じる");
 		this.btn_dic_ = new Dictionary<BasePhotoWindow.BtnType, KeyValuePair<UIButton, List<Action>>>();
 		for (int i = 0; i <= 3; i++)
 		{
@@ -221,6 +235,14 @@ public abstract class BasePhotoWindow : MonoBehaviour
 		}
 	}
 
+	public string uniqueName
+	{
+		get
+		{
+			return this.uniqueWindowName;
+		}
+	}
+
 	public int depth
 	{
 		get
@@ -389,7 +411,7 @@ public abstract class BasePhotoWindow : MonoBehaviour
 	protected void OnBtnMouseHoverIn(string text)
 	{
 		MouseExposition @object = MouseExposition.GetObject();
-		@object.text = text;
+		@object.textFromLanguageTerm = text;
 	}
 
 	protected void OnMouseHoverOut()
@@ -400,6 +422,9 @@ public abstract class BasePhotoWindow : MonoBehaviour
 
 	public string InitTitle = "キャラクター";
 
+	[SerializeField]
+	private string uniqueWindowName;
+
 	public Vector2 WindowSize;
 
 	public bool InitVisible = true;
@@ -416,7 +441,7 @@ public abstract class BasePhotoWindow : MonoBehaviour
 
 	protected Camera uiCamera;
 
-	protected UILabel title_bar_label_;
+	private UILabel title_bar_label_;
 
 	protected UIPanel panel_;
 

+ 3 - 3
Assembly-CSharp/BasePhotoWindowManager.cs

@@ -72,11 +72,11 @@ public abstract class BasePhotoWindowManager : MonoBehaviour
 		return true;
 	}
 
-	public BasePhotoWindow GetWindow(string title)
+	public BasePhotoWindow GetWindow(string uniqueWindowName)
 	{
 		foreach (KeyValuePair<BasePhotoWindow, int> keyValuePair in this.window_dic_)
 		{
-			if (keyValuePair.Key.title == title)
+			if (keyValuePair.Key.uniqueName == uniqueWindowName)
 			{
 				return keyValuePair.Key;
 			}
@@ -153,7 +153,7 @@ public abstract class BasePhotoWindowManager : MonoBehaviour
 			using (BinaryWriter binaryWriter = new BinaryWriter(memoryStream))
 			{
 				binaryWriter.Write(this.save_header_uidata);
-				binaryWriter.Write(1160);
+				binaryWriter.Write(1170);
 				binaryWriter.Write(this.save_data_.Count);
 				foreach (KeyValuePair<string, Dictionary<string, Dictionary<string, string>>> keyValuePair3 in this.save_data_)
 				{

+ 1 - 1
Assembly-CSharp/BetSetUI.cs

@@ -100,7 +100,7 @@ public class BetSetUI : MonoBehaviour
 			{
 				if (flag)
 				{
-					SystemDialog.OnClick f_dgOk = delegate
+					SystemDialog.OnClick f_dgOk = delegate()
 					{
 						GameMain.Instance.SysDlg.Show(warning_message, SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.BetFadeOut), null);
 					};

+ 214 - 0
Assembly-CSharp/BipedIKCtrlData.cs

@@ -0,0 +1,214 @@
+using System;
+using System.Linq;
+using RootMotion.FinalIK;
+using UnityEngine;
+
+[Serializable]
+public class BipedIKCtrlData : IKCtrlData
+{
+	public BipedIKCtrlData(IKEffector effector, FBIKChain chain, IKMappingLimb ik_mapping, FullBodyIKCtrl ik_ctrl, Transform tgt_bone, IKEffector sub_effector, bool use_old = false) : base(ik_ctrl, tgt_bone, use_old, false)
+	{
+		this.Effector = effector;
+		this.Effector.target = base.IKTarget;
+		this.Chain = chain;
+		this.IKMapping = ik_mapping;
+		this.RootEffector = sub_effector;
+		Transform transform = this.CreateSubTarget("BendBone");
+		this.m_BoneBendGoal = new IKCtrlData.BoneTgtPair(this.Chain.bendConstraint.bone2, transform);
+		this.Chain.bendConstraint.bendGoal = transform;
+		this.Chain.bendConstraint.weight = 1f;
+		this.RootEffector.target = this.CreateSubTarget("ChainRootBone");
+		this.m_RootBoneTgtPair = new IKCtrlData.BoneTgtPair(this.RootEffector.bone, this.RootEffector.target);
+		this.m_ForceIKEnable = true;
+		this.ToCorrectBone = base.TargetBone;
+	}
+
+	public Transform BendBone
+	{
+		get
+		{
+			return this.m_BoneBendGoal.Bone;
+		}
+	}
+
+	public override Transform[] ChainBones
+	{
+		get
+		{
+			return (from node in this.Chain.nodes
+			select node.transform).ToArray<Transform>();
+		}
+	}
+
+	public override float PositionWeight
+	{
+		get
+		{
+			return this.Effector.positionWeight;
+		}
+		set
+		{
+			this.Effector.positionWeight = value;
+		}
+	}
+
+	public override float RotationWeight
+	{
+		get
+		{
+			return this.Effector.rotationWeight;
+		}
+		set
+		{
+			this.Effector.rotationWeight = value;
+		}
+	}
+
+	private Transform CreateSubTarget(string name)
+	{
+		Transform transform = base.IKTarget.parent.Find(name);
+		if (!transform)
+		{
+			transform = new GameObject(name).transform;
+			transform.SetParent(base.IKTarget.parent, false);
+		}
+		return transform;
+	}
+
+	private void CheckBorder(BipedIKCtrlData.BorderCorrectData correctData)
+	{
+		if (!correctData.Enable)
+		{
+			return;
+		}
+		float num = 0f;
+		Vector3 check_pos = this.ToCorrectBone.position + this.MyIKCtrl.BodyCtrlData.BodyOffset;
+		if (correctData.CheckBorder(check_pos, ref num))
+		{
+			switch (this.CorrectType)
+			{
+			case BipedIKCtrlData.BorderCorrectType.Bone:
+				base.IKTarget.position += correctData.Axis * num;
+				this.m_BoneBendGoal.Target.position += correctData.Axis * num;
+				break;
+			case BipedIKCtrlData.BorderCorrectType.HalfBody:
+				base.IKTarget.position += correctData.Axis * num;
+				this.m_BoneBendGoal.Target.position += correctData.Axis * num;
+				this.m_RootBoneTgtPair.Target.position += correctData.Axis * num;
+				break;
+			case BipedIKCtrlData.BorderCorrectType.Chara:
+				if (correctData.GetValue(this.MyIKCtrl.BodyCtrlData.AddOffset) < num)
+				{
+					this.MyIKCtrl.BodyCtrlData.SetAddOffset(correctData.Axis * num);
+				}
+				break;
+			case BipedIKCtrlData.BorderCorrectType.All:
+				if (correctData.GetValue(this.MyIKCtrl.BodyCtrlData.AllOffset) < num)
+				{
+					this.MyIKCtrl.BodyCtrlData.SetAllOffset(correctData.Axis * num);
+				}
+				break;
+			}
+		}
+	}
+
+	public override void ApplyIKSetting()
+	{
+		this.m_BoneBendGoal.Cppy();
+		this.m_RootBoneTgtPair.Cppy();
+		base.ApplyIKSetting();
+		if (base.ForceIK)
+		{
+			this.CheckBorder(this.WallCorrect);
+			this.CheckBorder(this.FloorCorrect);
+		}
+	}
+
+	public override void Detach(IKCtrlData.IKAttachType attachType, float blend_time = 0f)
+	{
+		base.Detach(attachType, blend_time);
+		this.Chain.bendConstraint.weight = 1f;
+		this.RootEffector.positionWeight = 0f;
+		this.RootEffector.rotationWeight = 0f;
+		this.m_BoneBendGoal.PosOffset = Vector3.zero;
+		this.m_RootBoneTgtPair.PosOffset = Vector3.zero;
+		this.WallCorrect.Reset();
+		this.FloorCorrect.Reset();
+		this.ToCorrectBone = base.TargetBone;
+		this.CorrectType = BipedIKCtrlData.BorderCorrectType.Bone;
+	}
+
+	public override void SetTargetOffset(Vector3 offset, bool inverse = false)
+	{
+		if (base.IsIKExec)
+		{
+			return;
+		}
+		base.SetTargetOffset(offset, inverse);
+		this.m_BoneBendGoal.PosOffset = this.m_OffsetEnable.GetEnablePos(offset, inverse);
+		this.m_RootBoneTgtPair.PosOffset = this.m_OffsetEnable.GetEnablePos(offset, inverse);
+	}
+
+	private IKCtrlData.BoneTgtPair m_BoneBendGoal;
+
+	private IKCtrlData.BoneTgtPair m_RootBoneTgtPair;
+
+	[Header("壁・床補正情報")]
+	public BipedIKCtrlData.BorderCorrectData WallCorrect = new BipedIKCtrlData.BorderCorrectData(Vector3.forward);
+
+	public BipedIKCtrlData.BorderCorrectData FloorCorrect = new BipedIKCtrlData.BorderCorrectData(Vector3.up);
+
+	public BipedIKCtrlData.BorderCorrectType CorrectType;
+
+	public Transform ToCorrectBone;
+
+	public readonly IKEffector Effector;
+
+	public readonly FBIKChain Chain;
+
+	public readonly IKMappingLimb IKMapping;
+
+	public readonly IKEffector RootEffector;
+
+	public enum BorderCorrectType
+	{
+		Bone,
+		HalfBody,
+		Chara,
+		All
+	}
+
+	[Serializable]
+	public class BorderCorrectData
+	{
+		public BorderCorrectData(Vector3 axis)
+		{
+			this.Axis = axis;
+		}
+
+		public void Reset()
+		{
+			this.Border = 0f;
+			this.Enable = false;
+		}
+
+		public float GetValue(Vector3 pos)
+		{
+			pos = KasaiUtility.Vec3Multiply(pos, this.Axis);
+			return pos.magnitude * Vector3.Dot(this.Axis, pos.normalized);
+		}
+
+		public bool CheckBorder(Vector3 check_pos, ref float diff)
+		{
+			float value = this.GetValue(check_pos);
+			diff = this.Border - value;
+			return value < this.Border;
+		}
+
+		public float Border;
+
+		public bool Enable;
+
+		public Vector3 Axis;
+	}
+}

+ 2 - 2
Assembly-CSharp/BjMotionControl.cs

@@ -127,9 +127,9 @@ public class BjMotionControl : MonoBehaviour
 	{
 		float timer = 0f;
 		int wait_time = UnityEngine.Random.Range(this.m_WaitMinTime, this.m_WaitMaxTime);
-		Action end_action = delegate
+		Action end_action = delegate()
 		{
-			this.$this.m_DoLeaveMotion = true;
+			this.m_DoLeaveMotion = true;
 		};
 		for (;;)
 		{

+ 13 - 13
Assembly-CSharp/BlackjackGame.cs

@@ -76,12 +76,12 @@ public class BlackjackGame : MonoBehaviour
 			ExChangeUI.Instance.TextUIUpdate();
 		}
 		bool need_costumeload = CasinoDataMgr.Instance.DealerMaid && CasinoDataMgr.Instance.CurrentCasino.typeCostume != Facility.CostumeType.Heroine;
-		Action load_end = delegate
+		Action load_end = delegate()
 		{
 			BjMotionControl.Instance.Init();
-			this.$this.m_ChaOffsetRot = GameMain.Instance.CharacterMgr.GetCharaAllOfsetRot();
-			GameMain.Instance.CharacterMgr.CharaAllOfsetRot(this.$this.m_DealerMaidAngle);
-			this.$this.m_UIRaycaster.enabled = true;
+			this.m_ChaOffsetRot = GameMain.Instance.CharacterMgr.GetCharaAllOfsetRot();
+			GameMain.Instance.CharacterMgr.CharaAllOfsetRot(this.m_DealerMaidAngle);
+			this.m_UIRaycaster.enabled = true;
 			GameMain.Instance.MainCamera.FadeIn(0.5f, false, null, false, true, default(Color));
 		};
 		while (GameMain.Instance.CharacterMgr.IsBusy())
@@ -166,7 +166,7 @@ public class BlackjackGame : MonoBehaviour
 		ActionDirect.Instance.ActionStart(Translations.Instance.HIT);
 		UIStates.Instance.SetEnabled(false);
 		BjMotionControl.Instance.DoLeaveMotion = false;
-		Action end_action = delegate
+		Action end_action = delegate()
 		{
 			BjMotionControl.Instance.PlayMotion(BjMotionControl.Instance.GetHaihuMotion(), new Action(this.FinishedDealing), false, false);
 			if (!BjPlayer.Instance.IsPlacingBet())
@@ -183,10 +183,10 @@ public class BlackjackGame : MonoBehaviour
 		ActionDirect.Instance.ActionStart(Translations.Instance.DOUBLE_DOWN);
 		UIStates.Instance.SetEnabled(false);
 		BjMotionControl.Instance.DoLeaveMotion = false;
-		Action end_action = delegate
+		Action end_action = delegate()
 		{
 			ChipManager instance = ChipManager.Instance;
-			instance.StackEndCallBack = (Action)Delegate.Combine(instance.StackEndCallBack, new Action(delegate
+			instance.StackEndCallBack = (Action)Delegate.Combine(instance.StackEndCallBack, new Action(delegate()
 			{
 				BjVoiceMgr.Instance.PlayVoice("ダブルダウンオープン", new Action(this.DoDoubleDown), 0f);
 			}));
@@ -212,7 +212,7 @@ public class BlackjackGame : MonoBehaviour
 		ActionDirect.Instance.ActionStart(Translations.Instance.STAND);
 		UIStates.Instance.SetEnabled(false);
 		BjMotionControl.Instance.DoLeaveMotion = false;
-		Action end_action = delegate
+		Action end_action = delegate()
 		{
 			if (!BjPlayer.Instance.IsSplitGame())
 			{
@@ -234,10 +234,10 @@ public class BlackjackGame : MonoBehaviour
 		ActionDirect.Instance.ActionStart(Translations.Instance.SPLIT);
 		BjMotionControl.Instance.DoLeaveMotion = false;
 		UIStates.Instance.SetEnabled(false);
-		Action end_action = delegate
+		Action end_action = delegate()
 		{
 			ChipManager instance = ChipManager.Instance;
-			instance.StackEndCallBack = (Action)Delegate.Combine(instance.StackEndCallBack, new Action(delegate
+			instance.StackEndCallBack = (Action)Delegate.Combine(instance.StackEndCallBack, new Action(delegate()
 			{
 				GameMain.Instance.MainCamera.FadeOut(0.5f, false, new CameraMain.dgOnCompleteFade(this.SplitFadeIn), false, default(Color));
 			}));
@@ -270,7 +270,7 @@ public class BlackjackGame : MonoBehaviour
 		ActionDirect.Instance.ActionStart(Translations.Instance.SURRENDER);
 		UIStates.Instance.SetEnabled(false);
 		BjMotionControl.Instance.DoLeaveMotion = false;
-		Action end_action = delegate
+		Action end_action = delegate()
 		{
 			BjPlayer.Instance.Surrender();
 			this.CheckIfEnded();
@@ -295,7 +295,7 @@ public class BlackjackGame : MonoBehaviour
 		BjMotionControl.Instance.SetWaitMotion(BjMotionControl.WaitType.Normal);
 		if (Dealer.Instance.HasFacedownCard())
 		{
-			Action end_call = delegate
+			Action end_call = delegate()
 			{
 				BjMotionControl.Instance.PlayMotion("*カード開く", new Action(this.FinishedAnimating), false, false);
 				this.m_DealQueue.CardOpen(Dealer.Instance.GetFacedownCard());
@@ -356,7 +356,7 @@ public class BlackjackGame : MonoBehaviour
 		else if (BjPlayer.Instance.IsSplitGame() && BjPlayer.Instance.HandIsEnded() && BjPlayer.Instance.CurrentHand == BjPlayer.Instance.splitHand)
 		{
 			bool is_bust = BjPlayer.Instance.CurrentHand.IsBust();
-			Action action = delegate
+			Action action = delegate()
 			{
 				BjPlayer.Instance.NextHand();
 				BjMotionControl.Instance.PlayMotion(BjMotionControl.Instance.GetHaihuMotion(), new Action(this.FinishedDealing), is_bust, true);

+ 202 - 0
Assembly-CSharp/BodyCtrlData.cs

@@ -0,0 +1,202 @@
+using System;
+using UnityEngine;
+
+[Serializable]
+public class BodyCtrlData : IKCtrlData
+{
+	public BodyCtrlData(FullBodyIKCtrl ik_ctrl) : base(ik_ctrl, ik_ctrl.GetIKBone(IKManager.BoneType.Root), false, false)
+	{
+		this.PosBaseBone = base.TargetBone;
+		this.m_ForceIKEnable = false;
+	}
+
+	public Vector3 OrijinMaidPos { get; private set; }
+
+	public Vector3 OrijinAllPos { get; private set; }
+
+	public bool DoAllOffset { get; private set; }
+
+	public Vector3 BodyOffset
+	{
+		get
+		{
+			return this.m_PosOffset + this.m_AddOffset;
+		}
+	}
+
+	public Vector3 AllOffset
+	{
+		get
+		{
+			return this.m_AllOffset;
+		}
+	}
+
+	public Vector3 AddOffset
+	{
+		get
+		{
+			return this.m_AddOffset;
+		}
+	}
+
+	public override Transform[] ChainBones
+	{
+		get
+		{
+			return new Transform[]
+			{
+				this.MyIKCtrl.GetIKBone(IKManager.BoneType.Root)
+			};
+		}
+	}
+
+	public override float PositionWeight { get; set; }
+
+	public override float RotationWeight { get; set; }
+
+	private bool CheckDoIK()
+	{
+		if (!base.IsIKExec)
+		{
+			return false;
+		}
+		if (this.HeightFit == BodyCtrlData.HeightFitType.None)
+		{
+			return true;
+		}
+		int value = this.MyIKCtrl.TgtMaid.GetProp(MPN.sintyou).value;
+		int value2 = base.PointIK.TgtMaid.GetProp(MPN.sintyou).value;
+		if (this.HeightFit == BodyCtrlData.HeightFitType.Higher)
+		{
+			return value < value2;
+		}
+		return value > value2;
+	}
+
+	protected override void SetTargetTransform(IKCtrlData.IKParam data, Vector3 pos, Quaternion rot)
+	{
+		if (!data.IsPointAttach || !this.CheckDoIK())
+		{
+			return;
+		}
+		if (data.FirstFrame && !data.BlendNow)
+		{
+			this.m_FirstBonePos = this.PosBaseBone.position;
+		}
+		Vector3 b = (!data.BlendNow) ? this.m_FirstBonePos : this.PosBaseBone.position;
+		pos = ((!data.BlendNow) ? this.m_FirstTgtPosRot.pos : pos);
+		if (!data.DoSetOffset)
+		{
+			if (this.OffsetWorld)
+			{
+				base.IKTarget.position = pos + data.TgtOffset;
+			}
+			else if (this.OffsetBone)
+			{
+				KasaiUtility.DrawAxis(pos, base.TargetBone.rotation, 0.0625f);
+				base.IKTarget.position = pos + base.TargetBone.rotation * data.TgtOffset;
+			}
+			else
+			{
+				base.IKTarget.position = pos + rot * data.TgtOffset;
+			}
+			Debug.DrawLine(pos, base.IKTarget.position, Color.white);
+		}
+		Vector3 enablePos = this.m_OffsetEnable.GetEnablePos(base.IKTarget.position - b, false);
+		if (data.BlendType == IKCtrlData.IKBlendType.IK_To_IK)
+		{
+			this.m_PosOffset += Vector3.Lerp(this.m_lastPosOffset, enablePos, data.BlendWeight);
+		}
+		else if (data.BlendType == IKCtrlData.IKBlendType.IK_To_Detach)
+		{
+			this.m_PosOffset += Vector3.Lerp(Vector3.zero, enablePos, 1f - data.BlendWeight);
+		}
+		else
+		{
+			this.m_PosOffset += Vector3.Lerp(Vector3.zero, enablePos, data.BlendWeight);
+		}
+	}
+
+	public void SetAllOffset(Vector3 offset)
+	{
+		if (!base.IsIKExec)
+		{
+			base.PointIK.IsIKExec = true;
+		}
+		this.DoAllOffset = true;
+		this.m_AllOffset = offset;
+	}
+
+	public void SetAddOffset(Vector3 offset)
+	{
+		if (!base.IsIKExec)
+		{
+			base.PointIK.IsIKExec = true;
+		}
+		this.m_AddOffset = offset;
+	}
+
+	public override void ApplyIKSetting()
+	{
+		this.m_AddOffset = Vector3.zero;
+		this.DoAllOffset = false;
+		this.m_PosOffset = this.OrijinMaidPos;
+		this.m_AllOffset = this.OrijinAllPos;
+		base.ApplyIKSetting();
+	}
+
+	public override void SetIKSetting(IKCtrlData.IKAttachType attachType, bool is_another, Maid tgt_maid, int slot_no, string attach_name, Transform axis_bone, Transform target, Vector3 f_vecOffset, bool do_animation, float blend_time)
+	{
+		this.OrijinMaidPos = this.MyIKCtrl.TgtMaid.GetPos();
+		this.OrijinAllPos = GameMain.Instance.CharacterMgr.GetCharaAllPos();
+		base.SetIKSetting(attachType, is_another, tgt_maid, slot_no, attach_name, axis_bone, target, f_vecOffset, do_animation, blend_time);
+	}
+
+	public override void Update()
+	{
+		if (this.DoAllOffset)
+		{
+			GameMain.Instance.CharacterMgr.SetCharaAllPos(this.m_AllOffset);
+		}
+		if (!this.CheckDoIK())
+		{
+			return;
+		}
+		this.MyIKCtrl.TgtMaid.SetPos(this.BodyOffset);
+	}
+
+	public override void Detach(IKCtrlData.IKAttachType attachType, float blend_time = 0f)
+	{
+		this.m_lastPosOffset = this.m_PosOffset - this.OrijinMaidPos;
+		base.Detach(attachType, blend_time);
+		base.BlendPosRot.Copy(this.PosBaseBone);
+		this.m_AddOffset = Vector3.zero;
+		this.HeightFit = BodyCtrlData.HeightFitType.None;
+		this.OrijinMaidPos = this.MyIKCtrl.TgtMaid.GetPos();
+		this.OrijinAllPos = GameMain.Instance.CharacterMgr.GetCharaAllPos();
+	}
+
+	[SerializeField]
+	private Vector3 m_PosOffset = Vector3.zero;
+
+	private Vector3 m_AddOffset = Vector3.zero;
+
+	private Vector3 m_FirstBonePos = Vector3.zero;
+
+	private Vector3 m_lastPosOffset = Vector3.zero;
+
+	[SerializeField]
+	private Vector3 m_AllOffset = Vector3.zero;
+
+	public Transform PosBaseBone;
+
+	public BodyCtrlData.HeightFitType HeightFit = BodyCtrlData.HeightFitType.None;
+
+	public enum HeightFitType
+	{
+		Higher,
+		Lower,
+		None
+	}
+}

+ 63 - 0
Assembly-CSharp/CCDIKCtrlData.cs

@@ -0,0 +1,63 @@
+using System;
+using System.Linq;
+using RootMotion.FinalIK;
+using UnityEngine;
+
+[Serializable]
+public class CCDIKCtrlData : IKCtrlData
+{
+	public CCDIKCtrlData(CCDIK ccd_ik, Transform[] chain_bones, FullBodyIKCtrl ik_ctrl, bool weight_fade = true, bool attach_ik = false) : base(ik_ctrl, chain_bones.Last<Transform>(), false, attach_ik)
+	{
+		this.CCDIK = ccd_ik;
+		this.CCDIK.fixTransforms = false;
+		this.IKSolver.target = base.IKTarget;
+		this.IKSolver.useRotationLimits = false;
+		this.IKSolver.maxIterations = 4;
+		this.IKSolver.Initiate(chain_bones[0]);
+		this.IKSolver.SetChain(chain_bones, chain_bones[0]);
+		if (weight_fade)
+		{
+			this.IKSolver.FadeOutBoneWeights();
+		}
+		this.CCDIK.enabled = false;
+		this.m_ForceIKEnable = false;
+	}
+
+	public IKSolverCCD IKSolver
+	{
+		get
+		{
+			return this.CCDIK.solver;
+		}
+	}
+
+	public override Transform[] ChainBones
+	{
+		get
+		{
+			return (from bone in this.IKSolver.bones
+			select bone.transform).ToArray<Transform>();
+		}
+	}
+
+	public override float PositionWeight
+	{
+		get
+		{
+			return this.IKSolver.IKPositionWeight;
+		}
+		set
+		{
+			this.IKSolver.IKPositionWeight = value;
+		}
+	}
+
+	public override float RotationWeight { get; set; }
+
+	public override void Update()
+	{
+		this.CCDIK.solver.Update();
+	}
+
+	public readonly CCDIK CCDIK;
+}

+ 4 - 4
Assembly-CSharp/CMSystem.cs

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

+ 3 - 3
Assembly-CSharp/CharacterMgr.cs

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

+ 19 - 11
Assembly-CSharp/CharacterSelectMain.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Runtime.CompilerServices;
 using com.workman.cm3d2.scene.dailyEtc;
+using I2.Loc;
 using MaidStatus;
 using PlayerStatus;
 using Schedule;
@@ -82,7 +83,7 @@ public class CharacterSelectMain : WfScreenChildren
 			{
 				GameMain.Instance.SoundMgr.PlayBGM("BGM015.ogg", 0.5f, true);
 			}
-			this.explanatory_label_.text = "コミュニケーションを行うメイドを選択してください。";
+			this.SetExplanatoryLabel("コミュニケーションを行うメイドを選択してください。");
 		}
 		else if (this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.Yotogi || this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.Vip || this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.Facility)
 		{
@@ -131,15 +132,15 @@ public class CharacterSelectMain : WfScreenChildren
 			}
 			if (this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.Yotogi)
 			{
-				this.explanatory_label_.text = "夜伽を行うメイドを選択してください。";
+				this.SetExplanatoryLabel("夜伽を行うメイドを選択してください。");
 			}
 			else if (this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.Vip)
 			{
-				this.explanatory_label_.text = "Hイベントを行うメイドを選択してください。";
+				this.SetExplanatoryLabel("Hイベントを行うメイドを選択してください。");
 			}
 			else
 			{
-				this.explanatory_label_.text = "施設強化を行うメイドを選択してください。";
+				this.SetExplanatoryLabel("施設強化を行うメイドを選択してください。");
 			}
 			if (!this.auto_select_)
 			{
@@ -226,7 +227,7 @@ public class CharacterSelectMain : WfScreenChildren
 			this.button_dic_["全解除"].gameObject.SetActive(true);
 			this.button_dic_["全選択"].isEnabled = true;
 			this.button_dic_["全解除"].isEnabled = false;
-			this.explanatory_label_.text = "品評会を行うメイドを選択してください。";
+			this.SetExplanatoryLabel("品評会を行うメイドを選択してください。");
 		}
 		else if (this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.Free)
 		{
@@ -255,7 +256,7 @@ public class CharacterSelectMain : WfScreenChildren
 					}
 				}
 			});
-			this.explanatory_label_.text = "メイドを選択してください。";
+			this.SetExplanatoryLabel("メイドを選択してください。");
 			this.chara_select_mgr_.SetCallBackCallBackOnSelect(new CharacterSelectManager.CallBackOnSelect(this.OnSelectChara));
 			this.chara_select_mgr_.Create(CharacterSelectManager.Type.Select, 3, true);
 			if (this.chara_select_mgr_.maid_list_count == 1)
@@ -300,7 +301,7 @@ public class CharacterSelectMain : WfScreenChildren
 			{
 				GameMain.Instance.SoundMgr.PlayBGM("BGM015.ogg", 0.5f, true);
 			}
-			this.explanatory_label_.text = "おさわりを行うメイドを選択してください。";
+			this.SetExplanatoryLabel("おさわりを行うメイドを選択してください。");
 		}
 		else if (this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.VRComSelect)
 		{
@@ -326,7 +327,7 @@ public class CharacterSelectMain : WfScreenChildren
 			{
 				this.auto_select_ = true;
 			}
-			this.explanatory_label_.text = "バカンスに連れていくメイドを選択してください。";
+			this.SetExplanatoryLabel("バカンスに連れていくメイドを選択してください。");
 		}
 		else if (this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.VRKaraokeSelect)
 		{
@@ -342,7 +343,7 @@ public class CharacterSelectMain : WfScreenChildren
 			{
 				this.auto_select_ = true;
 			}
-			this.explanatory_label_.text = "カラオケに連れていくメイドを選択してください。";
+			this.SetExplanatoryLabel("カラオケに連れていくメイドを選択してください。");
 		}
 		else if (this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.Recollection)
 		{
@@ -390,7 +391,7 @@ public class CharacterSelectMain : WfScreenChildren
 					}
 				}
 			});
-			this.explanatory_label_.text = "メイドを選択してください。";
+			this.SetExplanatoryLabel("メイドを選択してください。");
 			this.chara_select_mgr_.SetCallBackCallBackOnSelect(new CharacterSelectManager.CallBackOnSelect(this.OnSelectChara));
 			this.chara_select_mgr_.Create(CharacterSelectManager.Type.Select, 3, true);
 			if (this.chara_select_mgr_.maid_list_count == 1)
@@ -426,7 +427,7 @@ public class CharacterSelectMain : WfScreenChildren
 		{
 			this.auto_select_ = true;
 		}
-		this.explanatory_label_.text = "*メイドの追加呼び出し*";
+		this.SetExplanatoryLabel("*メイドの追加呼び出し*");
 		CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
 		for (int i = 0; i < characterMgr.GetStockMaidCount(); i++)
 		{
@@ -454,6 +455,13 @@ public class CharacterSelectMain : WfScreenChildren
 		return 2 < this.wait_count_;
 	}
 
+	public void SetExplanatoryLabel(string text)
+	{
+		this.explanatory_label_.text = text;
+		Localize component = this.explanatory_label_.gameObject.GetComponent<Localize>();
+		component.SetTerm("SceneCharaSelect/" + text);
+	}
+
 	public void SetCancelLabel(string cancel_call_label)
 	{
 		this.cancel_call_label_ = cancel_call_label;

+ 8 - 0
Assembly-CSharp/ChuBlipManager.cs

@@ -24,6 +24,14 @@ public class ChuBlipManager : MonoBehaviour
 		}
 	}
 
+	public OnaholeChuBlipDevice device
+	{
+		get
+		{
+			return this.holeDevice;
+		}
+	}
+
 	private YotogiManager yotogiMgr;
 
 	private YotogiPlayManagerWithChubLip yotogiPlayMgr;

+ 12 - 4
Assembly-CSharp/ColorPaletteManager.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 using wf;
@@ -60,19 +61,26 @@ public class ColorPaletteManager : EmptyWindow
 		this.colorData = ColorPaletteManager.ColorData.Create(this.maid, colorType);
 		UIWFTabButton[] componentsInChildren = this.categoryTabPanel.GetComponentsInChildren<UIWFTabButton>(true);
 		componentsInChildren[2].gameObject.SetActive(this.colorData.enabledOutLine);
+		Localize component = componentsInChildren[2].GetComponent<Localize>();
 		if (this.colorData.enabledOutLine)
 		{
+			component = componentsInChildren[0].GetComponent<Localize>();
+			component.SetTerm("SceneEdit/カラーパレット/スプライト/タブ_基本色");
+			component = componentsInChildren[1].GetComponent<Localize>();
+			component.SetTerm("SceneEdit/カラーパレット/スプライト/タブ_影色");
 			componentsInChildren[0].pixelSnap = true;
-			componentsInChildren[0].normalSprite = "colorpalette_tab_s_basecolor";
 			componentsInChildren[1].pixelSnap = true;
-			componentsInChildren[1].normalSprite = "colorpalette_tab_s_shadowcolor";
 		}
 		else
 		{
+			component = componentsInChildren[0].GetComponent<Localize>();
+			component.SetTerm("SceneEdit/カラーパレット/スプライト/タブ_基本色_ロング");
+			component = componentsInChildren[1].GetComponent<Localize>();
+			component.SetTerm("SceneEdit/カラーパレット/スプライト/タブ_影色_ロング");
 			componentsInChildren[0].pixelSnap = true;
-			componentsInChildren[0].normalSprite = "colorpalette_tab_basecolor";
 			componentsInChildren[1].pixelSnap = true;
-			componentsInChildren[1].normalSprite = "colorpalette_tab_shadowcolor";
+			componentsInChildren[0].GetComponent<UISprite>().MakePixelPerfect();
+			componentsInChildren[1].GetComponent<UISprite>().MakePixelPerfect();
 		}
 		Vector3 localPosition = componentsInChildren[1].transform.localPosition;
 		Vector3 localPosition2 = new Vector3(componentsInChildren[0].transform.localPosition.x + (float)componentsInChildren[0].GetComponent<UIWidget>().width, localPosition.y, localPosition.z);

+ 3 - 3
Assembly-CSharp/ConfigCtrl.cs

@@ -127,7 +127,7 @@ public class ConfigCtrl : MonoBehaviour
 			while (enumerator6.MoveNext())
 			{
 				object obj5 = enumerator6.Current;
-				this.MakePopupListOption(this.m_plSubtitleType, SubtitleDisplayManager.EnumConvert.GetString((SubtitleDisplayManager.DisplayType)obj5));
+				this.MakePopupListOption(this.m_plSubtitleType, SubtitleDisplayManager.EnumConvert.GetTerm((SubtitleDisplayManager.DisplayType)obj5));
 			}
 		}
 		finally
@@ -170,7 +170,7 @@ public class ConfigCtrl : MonoBehaviour
 		this.m_okButton = UTY.GetChildObject(configPanel, "OK", false).GetComponent<UIButton>();
 		EventDelegate.Add(this.m_okButton.onClick, new EventDelegate.Callback(BaseMgr<ConfigMgr>.Instance.CloseConfigPanel));
 		this.m_changeVRConfigButton = UTY.GetChildObject(configPanel, "Change VR", false).GetComponent<UIButton>();
-		EventDelegate.Add(this.m_changeVRConfigButton.onClick, delegate
+		EventDelegate.Add(this.m_changeVRConfigButton.onClick, delegate()
 		{
 			BaseMgr<ConfigMgr>.Instance.CloseConfigPanel();
 			ConfigVRCtrl.Open(null);
@@ -271,7 +271,7 @@ public class ConfigCtrl : MonoBehaviour
 			num
 		}));
 		SubtitleDisplayManager.DisplayType subtitleType = GameMain.Instance.CMSystem.SubtitleType;
-		this.m_plSubtitleType.value = SubtitleDisplayManager.EnumConvert.GetString(subtitleType);
+		this.m_plSubtitleType.value = SubtitleDisplayManager.EnumConvert.GetTerm(subtitleType);
 		bool msgVoiceNoStop = GameMain.Instance.CMSystem.MsgVoiceNoStop;
 		Debug.Log("Load alreadyReadSkipEnabled:" + msgVoiceNoStop);
 		this.SetButtonActive(this.m_sequentialVoiceOn, this.m_sequentialVoiceOff, msgVoiceNoStop);

+ 3 - 3
Assembly-CSharp/ConfigMgr.cs

@@ -127,8 +127,8 @@ public class ConfigMgr : BaseMgr<ConfigMgr>
 			while (enumerator.MoveNext())
 			{
 				object obj = enumerator.Current;
-				string @string = SubtitleDisplayManager.EnumConvert.GetString((SubtitleDisplayManager.DisplayType)obj);
-				if (typeName == @string)
+				string term = SubtitleDisplayManager.EnumConvert.GetTerm((SubtitleDisplayManager.DisplayType)obj);
+				if (typeName == term)
 				{
 					GameMain.Instance.CMSystem.SubtitleType = (SubtitleDisplayManager.DisplayType)obj;
 					break;
@@ -336,7 +336,7 @@ public class ConfigMgr : BaseMgr<ConfigMgr>
 		this.m_configCtrl.SetOKButtonActive(false);
 		this.cblConfig.OnClose();
 		TweenAlpha tweenAlpha = TweenAlpha.Begin(this.m_goPanel, 0.3f, 0f);
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			this.m_goPanel.SetActive(false);
 		});

+ 8 - 8
Assembly-CSharp/ConfigVRCtrl.cs

@@ -122,12 +122,12 @@ public class ConfigVRCtrl : NGUIWindow
 	private void SetupAllUI()
 	{
 		base.cachedObjectDic.CacheChildObject<UIButton>(base.gameObject, "OK", "ButtonOK");
-		EventDelegate.Add(base.cachedObjectDic.GetCache<UIButton>("ButtonOK").onClick, delegate
+		EventDelegate.Add(base.cachedObjectDic.GetCache<UIButton>("ButtonOK").onClick, delegate()
 		{
 			ConfigVRCtrl.Close(true);
 		});
 		base.cachedObjectDic.CacheChildObject<UIButton>(base.gameObject, "Change Normal", "ButtonChange");
-		EventDelegate.Add(base.cachedObjectDic.GetCache<UIButton>("ButtonChange").onClick, delegate
+		EventDelegate.Add(base.cachedObjectDic.GetCache<UIButton>("ButtonChange").onClick, delegate()
 		{
 			ConfigVRCtrl.Close(true);
 			BaseMgr<ConfigMgr>.Instance.OpenConfigPanel();
@@ -348,12 +348,12 @@ public class ConfigVRCtrl : NGUIWindow
 		foreach (Collider collider in componentsInChildren)
 		{
 			UIEventTrigger uieventTrigger = collider.gameObject.AddComponent<UIEventTrigger>();
-			EventDelegate.Add(uieventTrigger.onPress, delegate
+			EventDelegate.Add(uieventTrigger.onPress, delegate()
 			{
 				UISprite cache = base.cachedObjectDic.GetCache<UISprite>("Background");
 				TweenAlpha.Begin(cache.gameObject, 0.25f, 0.25f);
 			});
-			EventDelegate.Add(uieventTrigger.onRelease, delegate
+			EventDelegate.Add(uieventTrigger.onRelease, delegate()
 			{
 				UISprite cache = base.cachedObjectDic.GetCache<UISprite>("Background");
 				TweenAlpha.Begin(cache.gameObject, 0.25f, 1f);
@@ -724,7 +724,7 @@ public class ConfigVRCtrl : NGUIWindow
 				NDebug.Assert(message, false);
 				Debug.LogError(message);
 			}
-			EventDelegate.Add(this.slider.onChange, delegate
+			EventDelegate.Add(this.slider.onChange, delegate()
 			{
 				if (this.onValueChanged != null)
 				{
@@ -732,7 +732,7 @@ public class ConfigVRCtrl : NGUIWindow
 				}
 			});
 			UISlider slider = this.slider;
-			slider.onDragFinished = (UIProgressBar.OnDragFinished)Delegate.Combine(slider.onDragFinished, new UIProgressBar.OnDragFinished(delegate
+			slider.onDragFinished = (UIProgressBar.OnDragFinished)Delegate.Combine(slider.onDragFinished, new UIProgressBar.OnDragFinished(delegate()
 			{
 				if (this.onDragFinished != null)
 				{
@@ -814,7 +814,7 @@ public class ConfigVRCtrl : NGUIWindow
 				NDebug.Assert(message2, false);
 				Debug.LogError(message2);
 			}
-			EventDelegate.Add(this.buttonRight.onClick, delegate
+			EventDelegate.Add(this.buttonRight.onClick, delegate()
 			{
 				if (this.onClickIsLeft != null)
 				{
@@ -822,7 +822,7 @@ public class ConfigVRCtrl : NGUIWindow
 				}
 				this.OnClickButton(false);
 			});
-			EventDelegate.Add(this.buttonLeft.onClick, delegate
+			EventDelegate.Add(this.buttonLeft.onClick, delegate()
 			{
 				if (this.onClickIsLeft != null)
 				{

+ 2 - 2
Assembly-CSharp/ControllerShortcutSettingData.cs

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

+ 2 - 2
Assembly-CSharp/ControllerShortcutWindow.cs

@@ -64,7 +64,7 @@ public class ControllerShortcutWindow : MonoBehaviour
 		EventDelegate.Add(uiwftabButton5.onClick, new EventDelegate.Callback(this.OpenWindowMotionShortcut));
 		EventDelegate.Add(uiwftabButton6.onClick, new EventDelegate.Callback(this.OpenWindowGeneralObject));
 		this.m_FadeWindowHideButton = UTY.GetChildObject(this.m_FadeWindowParent.gameObject, "parent button/Button Hide", false).GetComponent<UIButton>();
-		EventDelegate.Add(this.m_FadeWindowHideButton.onClick, delegate
+		EventDelegate.Add(this.m_FadeWindowHideButton.onClick, delegate()
 		{
 			this.m_FadeWindowParent.Close(0.25f, null);
 		});
@@ -87,7 +87,7 @@ public class ControllerShortcutWindow : MonoBehaviour
 		UIButton uibutton = this.m_FadeWindowCalibration.CacheChildObject<UIButton>("Window Start/button start", "startButton");
 		UIButton uibutton2 = this.m_FadeWindowCalibration.CacheChildObject<UIButton>("Window Start/button end", "endButton");
 		NGUIWindow fadeWindowCalibration = this.m_FadeWindowCalibration;
-		fadeWindowCalibration.OnOpen = (Action)Delegate.Combine(fadeWindowCalibration.OnOpen, new Action(delegate
+		fadeWindowCalibration.OnOpen = (Action)Delegate.Combine(fadeWindowCalibration.OnOpen, new Action(delegate()
 		{
 			NGUIWindow cache = this.m_FadeWindowCalibration.GetCache<NGUIWindow>("FadeWindow Start");
 			NGUIWindow cache2 = this.m_FadeWindowCalibration.GetCache<NGUIWindow>("FadeWindow Countdown");

+ 3 - 3
Assembly-CSharp/DanceBattle_Mgr.cs

@@ -166,10 +166,10 @@ public class DanceBattle_Mgr : PartsMgrBase
 		Vector3 end_pos = Vector3.zero;
 		Action<UISprite[], Color> line_setting = delegate(UISprite[] line_array, Color line_col)
 		{
-			float num = (float)line_array.Count<UISprite>() * this.$this.m_LineRate;
+			float num = (float)line_array.Count<UISprite>() * this.m_LineRate;
 			for (int i = 0; i < line_array.Count<UISprite>(); i++)
 			{
-				float num2 = Mathf.Max(timer - this.$this.m_LineRate * (float)i, 0f);
+				float num2 = Mathf.Max(timer - this.m_LineRate * (float)i, 0f);
 				float num3 = num2 - (float)Mathf.FloorToInt(num2 / num) * num;
 				float num4 = Mathf.Clamp01(num3 / num);
 				if (num4 > 0f && !line_array[i].gameObject.activeSelf)
@@ -180,7 +180,7 @@ public class DanceBattle_Mgr : PartsMgrBase
 				color.a = 1f - num4;
 				line_array[i].color = color;
 				line_array[i].transform.position = Vector3.Lerp(start_pos, end_pos, num4);
-				line_array[i].transform.localScale = Vector3.one * this.$this.m_LineMaxSize * (1f - num4);
+				line_array[i].transform.localScale = Vector3.one * this.m_LineMaxSize * (1f - num4);
 			}
 		};
 		for (;;)

+ 42 - 31
Assembly-CSharp/DanceMain.cs

@@ -142,12 +142,6 @@ public class DanceMain : MonoBehaviour
 		}
 		this.m_AnimatorData.playOnStart = null;
 		this.m_AnimatorData.bAutoTimeUpdate = false;
-		bool flag2 = this.m_strMasterAudioFileName == "happy_happy_scandal1.ogg" && this.m_listKuchiPakuFile.Count == 4;
-		if (flag2)
-		{
-			Transform transform = GameObject.Find("effect").transform;
-			transform.Find("FloorTile").GetComponent<Renderer>().material.shader = Shader.Find("BetterDiffuse");
-		}
 		if (GameMain.Instance.VRMode && GameMain.Instance.CMSystem.GetTmpGenericFlag("ダンスOVRカメラタイプ") == 1)
 		{
 			this.m_trOvrDummyCam = new GameObject("OvrDummyDanceCam").transform;
@@ -166,27 +160,7 @@ public class DanceMain : MonoBehaviour
 		for (int l = 0; l < this.m_listTestPreset.Count; l++)
 		{
 			Maid maid = GameMain.Instance.CharacterMgr.GetMaid(l);
-			if (!maid)
-			{
-				maid = GameMain.Instance.CharacterMgr.AddStockMaid();
-				GameMain.Instance.CharacterMgr.SetActiveMaid(maid, l);
-				CharacterMgr.Preset preset;
-				if (DanceMain.SelectDanceData != null && !string.IsNullOrEmpty(DanceMain.SelectDanceData.preset_name[l]))
-				{
-					preset = GameMain.Instance.CharacterMgr.PresetLoadFromResources(DanceMain.SelectDanceData.preset_name[l]);
-				}
-				else
-				{
-					preset = GameMain.Instance.CharacterMgr.PresetLoadFromResources(this.m_listTestPreset[l]);
-				}
-				if (preset != null)
-				{
-					GameMain.Instance.CharacterMgr.PresetSet(maid, preset);
-				}
-				this.m_listTempMaid.Add(maid);
-				maid.Visible = true;
-			}
-			else
+			if (maid)
 			{
 				if (!this.m_maidUser)
 				{
@@ -218,13 +192,50 @@ public class DanceMain : MonoBehaviour
 			{
 				list.Add(GameMain.Instance.CharacterMgr.GetMaid(n));
 			}
+			GameMain.Instance.CharacterMgr.DeactivateCharaAll();
+			GameMain.Instance.CharacterMgr.DeactivateMaid(0);
 			for (int num = 0; num < DanceMain.SelectDanceData.maid_order.Count; num++)
 			{
-				if (!(GameMain.Instance.CharacterMgr.GetMaid(num) == list[DanceMain.SelectDanceData.maid_order[num]]))
+				int index = DanceMain.SelectDanceData.maid_order[num];
+				if (list[index])
+				{
+					GameMain.Instance.CharacterMgr.SetActiveMaid(list[index], num);
+					list[index].Visible = true;
+				}
+			}
+		}
+		if (RhythmAction_Mgr.Instance.FactOrderList.Any((Maid e) => !e))
+		{
+			for (int num2 = 0; num2 < this.m_listTestPreset.Count; num2++)
+			{
+				Maid maid2 = GameMain.Instance.CharacterMgr.GetMaid(num2);
+				if (!maid2)
+				{
+					maid2 = GameMain.Instance.CharacterMgr.AddStockMaid();
+					GameMain.Instance.CharacterMgr.SetActiveMaid(maid2, num2);
+					CharacterMgr.Preset preset;
+					if (DanceMain.SelectDanceData != null && !string.IsNullOrEmpty(DanceMain.SelectDanceData.preset_name[num2]))
+					{
+						preset = GameMain.Instance.CharacterMgr.PresetLoadFromResources(DanceMain.SelectDanceData.preset_name[num2]);
+					}
+					else
+					{
+						preset = GameMain.Instance.CharacterMgr.PresetLoadFromResources(this.m_listTestPreset[num2]);
+					}
+					if (preset != null)
+					{
+						GameMain.Instance.CharacterMgr.PresetSet(maid2, preset);
+					}
+					this.m_listTempMaid.Add(maid2);
+					maid2.Visible = true;
+				}
+			}
+			for (int num3 = 0; num3 < DanceMain.SelectDanceData.maid_order.Count; num3++)
+			{
+				int index2 = DanceMain.SelectDanceData.maid_order[num3];
+				if (!RhythmAction_Mgr.Instance.FactOrderList[index2])
 				{
-					GameMain.Instance.CharacterMgr.DeactivateMaid(num);
-					GameMain.Instance.CharacterMgr.SetActiveMaid(list[DanceMain.SelectDanceData.maid_order[num]], num);
-					list[num].Visible = true;
+					RhythmAction_Mgr.Instance.FactOrderList[index2] = GameMain.Instance.CharacterMgr.GetMaid(num3);
 				}
 			}
 		}

+ 6 - 0
Assembly-CSharp/DanceSelect.cs

@@ -2,6 +2,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
+using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 using wf;
@@ -228,6 +229,11 @@ public class DanceSelect : WfScreenChildren
 			NDebug.AssertNull(this.select_panelset_array_[i].ContentsPanel != null && this.select_panelset_array_[i].ParentPanel != null);
 		}
 		this.m_CharaSelectLabel = UTY.GetChildObject(this.CharaSelectPanel.ParentPanel.gameObject, "ExplanatoryText/Value", false).GetComponent<UILabel>();
+		Localize component3 = this.m_CharaSelectLabel.GetComponent<Localize>();
+		if (component3 != null)
+		{
+			UnityEngine.Object.DestroyImmediate(component3);
+		}
 		this.m_CharaSelectLabel.text = "ダンスを行うメイドを選択してください。";
 		this.chara_select_mgr_ = this.CharaSelectPanel.ParentPanel.gameObject.GetComponentInChildren<CharacterSelectManager>();
 		NDebug.AssertNull(this.chara_select_mgr_ != null);

+ 66 - 29
Assembly-CSharp/DanceSetting.cs

@@ -6,6 +6,7 @@ using System.Linq;
 using System.Runtime.Serialization.Formatters.Binary;
 using System.Text;
 using Dance;
+using I2.Loc;
 using UnityEngine;
 
 public class DanceSetting : MonoBehaviour
@@ -99,7 +100,7 @@ public class DanceSetting : MonoBehaviour
 
 	private void Start()
 	{
-		EventDelegate.Callback callback = delegate
+		EventDelegate.Callback callback = delegate()
 		{
 			GameObject gameObject = GameObject.Find("Drop-down List");
 			if (gameObject)
@@ -122,6 +123,7 @@ public class DanceSetting : MonoBehaviour
 					if (transform.Find("Label"))
 					{
 						needData.Label = transform.Find("Label").GetComponent<UILabel>();
+						needData.localize = needData.Label.GetComponent<Localize>();
 					}
 					needData.Button = transform.GetComponentInChildren<UIButton>();
 					EventDelegate.Add(needData.Button.onClick, callback);
@@ -152,48 +154,60 @@ public class DanceSetting : MonoBehaviour
 		foreach (string text in list.items)
 		{
 			bool flag = false;
+			bool flag2 = false;
+			string text2 = text.Replace("\r", string.Empty);
+			string text3 = text2;
+			string[] array = text2.Split(new char[]
+			{
+				'/'
+			});
+			if (array != null && 1 < array.Length)
+			{
+				text3 = array[array.Length - 1];
+				flag2 = true;
+			}
 			switch (uiinspectorSetting.MyType)
 			{
 			case DanceSetting.SettingType.Product:
-				flag = this.IsProductMatch(text);
+				flag = this.IsProductMatch(text3);
 				break;
 			case DanceSetting.SettingType.Audience:
-				flag = this.IsAudienceMatch(text);
+				flag = this.IsAudienceMatch(text3);
 				break;
 			case DanceSetting.SettingType.DepthofField:
-				flag = this.IsSettingOn(text, DanceSetting.Settings.IsDepthOfFieldOn);
+				flag = this.IsSettingOn(text3, DanceSetting.Settings.IsDepthOfFieldOn);
 				break;
 			case DanceSetting.SettingType.SePlay:
-				flag = this.IsSettingOn(text, DanceSetting.Settings.IsSEPlay);
+				flag = this.IsSettingOn(text3, DanceSetting.Settings.IsSEPlay);
 				break;
 			case DanceSetting.SettingType.Voltage:
-				flag = this.IsVoltageMatch(text);
+				flag = this.IsVoltageMatch(text3);
 				break;
 			case DanceSetting.SettingType.BlackBg:
-				flag = this.IsSettingOn(text, DanceSetting.Settings.IsblackBGon);
+				flag = this.IsSettingOn(text3, DanceSetting.Settings.IsblackBGon);
 				break;
 			case DanceSetting.SettingType.NoteEffect:
-				flag = this.IsEffectLigthtMatch(text);
+				flag = this.IsEffectLigthtMatch(text3);
 				break;
 			case DanceSetting.SettingType.NoteTiming:
-				flag = this.IsTimingMatch(text);
+				flag = this.IsTimingMatch(text3);
 				break;
 			case DanceSetting.SettingType.JudgeTiming:
-				flag = this.IsJudgeTimingMatch(text);
+				flag = this.IsJudgeTimingMatch(text3);
 				break;
 			case DanceSetting.SettingType.FpsCam:
-				flag = this.IsSettingOn(text, DanceSetting.Settings.FPSCamMode);
+				flag = this.IsSettingOn(text3, DanceSetting.Settings.FPSCamMode);
 				break;
 			case DanceSetting.SettingType.Cutin:
-				flag = this.IsCutinMatch(text);
+				flag = this.IsCutinMatch(text3);
 				break;
 			case DanceSetting.SettingType.Undress:
-				flag = this.IsUndressFaceMatch(text);
+				flag = this.IsUndressFaceMatch(text3);
 				break;
 			}
 			if (flag)
 			{
-				list.value = text;
+				list.value = ((!flag2) ? text3 : text2);
 				break;
 			}
 		}
@@ -452,7 +466,20 @@ public class DanceSetting : MonoBehaviour
 
 	private void ValueSetting()
 	{
-		string value = UIPopupList.current.value;
+		string text = UIPopupList.current.value.Replace("\r", string.Empty);
+		string text2 = text;
+		bool isLocalized = UIPopupList.current.isLocalized;
+		if (isLocalized)
+		{
+			string[] array = text2.Split(new char[]
+			{
+				'/'
+			});
+			if (array != null && 1 < array.Length)
+			{
+				text2 = array[array.Length - 1];
+			}
+		}
 		DanceSetting.UIInspectorSetting uiinspectorSetting = this.m_SettingList.SingleOrDefault((DanceSetting.UIInspectorSetting e) => e.PopUpUI == UIPopupList.current);
 		if (uiinspectorSetting == null)
 		{
@@ -461,46 +488,54 @@ public class DanceSetting : MonoBehaviour
 		switch (uiinspectorSetting.MyType)
 		{
 		case DanceSetting.SettingType.Product:
-			this.SetProduct(value);
+			this.SetProduct(text2);
 			break;
 		case DanceSetting.SettingType.Audience:
-			this.SetAudience(value);
+			this.SetAudience(text2);
 			break;
 		case DanceSetting.SettingType.DepthofField:
-			this.SwitchFlag(value, ref DanceSetting.Settings.IsDepthOfFieldOn);
+			this.SwitchFlag(text2, ref DanceSetting.Settings.IsDepthOfFieldOn);
 			break;
 		case DanceSetting.SettingType.SePlay:
-			this.SwitchFlag(value, ref DanceSetting.Settings.IsSEPlay);
+			this.SwitchFlag(text2, ref DanceSetting.Settings.IsSEPlay);
 			break;
 		case DanceSetting.SettingType.Voltage:
-			this.SetVoltage(value);
+			this.SetVoltage(text2);
 			break;
 		case DanceSetting.SettingType.BlackBg:
-			this.SwitchFlag(value, ref DanceSetting.Settings.IsblackBGon);
+			this.SwitchFlag(text2, ref DanceSetting.Settings.IsblackBGon);
 			break;
 		case DanceSetting.SettingType.NoteEffect:
-			this.SetEffectLight(value);
+			this.SetEffectLight(text2);
 			break;
 		case DanceSetting.SettingType.NoteTiming:
-			this.SetNoteTiming(value);
+			this.SetNoteTiming(text2);
 			break;
 		case DanceSetting.SettingType.JudgeTiming:
-			this.SetJudgeTiming(value);
+			this.SetJudgeTiming(text2);
 			break;
 		case DanceSetting.SettingType.FpsCam:
-			this.SwitchFlag(value, ref DanceSetting.Settings.FPSCamMode);
+			this.SwitchFlag(text2, ref DanceSetting.Settings.FPSCamMode);
 			break;
 		case DanceSetting.SettingType.Cutin:
-			this.SetCutInGrade(value);
+			this.SetCutInGrade(text2);
 			break;
 		case DanceSetting.SettingType.Undress:
-			this.SetUndressFace(value);
+			this.SetUndressFace(text2);
 			break;
 		}
 		if (this.m_SettingUIList[UIPopupList.current].Label)
 		{
-			this.m_IsSettingChange = (this.m_SettingUIList[UIPopupList.current].Label.text != UIPopupList.current.value);
-			this.m_SettingUIList[UIPopupList.current].Label.text = UIPopupList.current.value;
+			if (isLocalized && this.m_SettingUIList[UIPopupList.current].localize != null)
+			{
+				this.m_IsSettingChange = (this.m_SettingUIList[UIPopupList.current].localize.Term != text);
+				this.m_SettingUIList[UIPopupList.current].localize.SetTerm(text);
+			}
+			else
+			{
+				this.m_IsSettingChange = (this.m_SettingUIList[UIPopupList.current].Label.text != text);
+				this.m_SettingUIList[UIPopupList.current].Label.text = text;
+			}
 		}
 	}
 
@@ -619,6 +654,8 @@ public class DanceSetting : MonoBehaviour
 	{
 		public UILabel Label;
 
+		public Localize localize;
+
 		public UIButton Button;
 
 		public BoxCollider Collider;

+ 2 - 2
Assembly-CSharp/DeskManager.cs

@@ -143,7 +143,7 @@ internal class DeskManager
 	public static void SerializeSingleSaveData(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_DeskCustomize");
-		binary.Write(1160);
+		binary.Write(1170);
 		binary.Write(DeskManager.item_inst_data_.Count);
 		for (int i = 0; i < DeskManager.item_inst_data_.Count; i++)
 		{
@@ -423,7 +423,7 @@ internal class DeskManager
 
 		public void Deserialize(BinaryReader binary, int game_ver)
 		{
-			Func<Vector3> func = delegate
+			Func<Vector3> func = delegate()
 			{
 				Vector3 zero = Vector3.zero;
 				zero.x = binary.ReadSingle();

+ 3 - 3
Assembly-CSharp/DynamicBone.cs

@@ -30,7 +30,7 @@ public class DynamicBone : MonoBehaviour
 			return false;
 		};
 		f_bw.Write("CM3D21_PHY");
-		f_bw.Write(1160);
+		f_bw.Write(1170);
 		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(1160);
+		f_bw.Write(1170);
 		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, 1160);
+				this.m_Colliders[i].Serialize(f_bw, 1170);
 			}
 		}
 		this.m_ColliderFileName = f_strFileName;

+ 82 - 9
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(1160);
+		f_bw.Write(1170);
 		f_bw.Write(this.m_fPanierRadius);
 		this.SerializeWriteAnimationCurve(f_bw, this.m_PanierRadiusDistrib);
 		int num = (this.m_PanierRadiusDistribGroup == null) ? 0 : this.m_PanierRadiusDistribGroup.Length;
@@ -962,12 +962,77 @@ public class DynamicSkirtBone : MonoBehaviour
 			this.m_aryPanierBonePos[3 * num28 + 1] = transform13.position.y;
 			this.m_aryPanierBonePos[3 * num28 + 2] = transform13.position.z;
 		}
+		if (GameMain.Instance.VRMode)
+		{
+			Transform transform14 = GameMain.Instance.OvrMgr.GetVRControllerTransform(true).transform;
+			Transform transform15 = GameMain.Instance.OvrMgr.GetVRControllerTransform(false).transform;
+			AVRControllerButtons vrcontrollerButtons = GameMain.Instance.OvrMgr.GetVRControllerButtons(true);
+			AVRControllerButtons vrcontrollerButtons2 = GameMain.Instance.OvrMgr.GetVRControllerButtons(false);
+			Func<int, Transform, AVRControllerButtons, int> func = delegate(int grabIdx, Transform handTrans, AVRControllerButtons handBtns)
+			{
+				if (grabIdx == -1)
+				{
+					for (int num37 = 0; num37 < this.m_nHookBoneCount; num37++)
+					{
+						int num38 = this.m_nBoneCount / this.m_nHookBoneCount;
+						for (int num39 = 0; num39 < num38; num39++)
+						{
+							int num40 = num37 + num39 * this.m_nHookBoneCount;
+							Transform transform18 = this.m_aryBoneTrs[num40];
+							if (handBtns.GetPressDown(AVRControllerButtons.BTN.VIRTUAL_GRUB) && (transform18.position - handTrans.position).magnitude < 0.2f)
+							{
+								grabIdx = num40;
+								break;
+							}
+						}
+					}
+				}
+				else if (handBtns.GetPress(AVRControllerButtons.BTN.VIRTUAL_GRUB))
+				{
+					for (int num41 = grabIdx; num41 < this.m_nBoneCount; num41 += this.m_nHookBoneCount)
+					{
+						this.m_aryPanierForce[num41] = 0f;
+					}
+					Vector3 position9 = handTrans.position;
+					this.m_aryPanierBonePos[3 * grabIdx] = position9.x;
+					this.m_aryPanierBonePos[3 * grabIdx + 1] = position9.y;
+					this.m_aryPanierBonePos[3 * grabIdx + 2] = position9.z;
+					this.m_aryPanierForce[grabIdx] = 1f;
+					Transform transform19 = this.m_aryBoneTrs[grabIdx];
+					for (int num42 = 0; num42 < this.m_nHookBoneCount; num42++)
+					{
+						int num43 = this.m_nBoneCount / this.m_nHookBoneCount;
+						for (int num44 = 0; num44 < num43; num44++)
+						{
+							int num45 = num42 + num44 * this.m_nHookBoneCount;
+							if (grabIdx != num45)
+							{
+								Transform transform20 = this.m_aryBoneTrs[num45];
+								float magnitude2 = (transform19.position - transform20.position).magnitude;
+								if (magnitude2 <= 0.5f)
+								{
+									this.m_aryPanierForce[num45] *= magnitude2 / 0.5f;
+								}
+							}
+						}
+					}
+					Debug.DrawLine(this.m_aryBoneTrs[grabIdx].position, this.m_aryBoneTrs[grabIdx].position + Vector3.up, Color.red);
+				}
+				else
+				{
+					grabIdx = -1;
+				}
+				return grabIdx;
+			};
+			this.m_nGrabIdxLeft = func(this.m_nGrabIdxLeft, transform14, vrcontrollerButtons);
+			this.m_nGrabIdxRight = func(this.m_nGrabIdxRight, transform15, vrcontrollerButtons2);
+		}
 		for (int num29 = 0; num29 < this.m_nBodyBallCount; num29++)
 		{
-			Transform transform14 = this.m_listBodyBallPos[num29];
-			this.m_aryBodyBallPos[3 * num29] = transform14.position.x;
-			this.m_aryBodyBallPos[3 * num29 + 1] = transform14.position.y;
-			this.m_aryBodyBallPos[3 * num29 + 2] = transform14.position.z;
+			Transform transform16 = this.m_listBodyBallPos[num29];
+			this.m_aryBodyBallPos[3 * num29] = transform16.position.x;
+			this.m_aryBodyBallPos[3 * num29 + 1] = transform16.position.y;
+			this.m_aryBodyBallPos[3 * num29 + 2] = transform16.position.z;
 		}
 		for (int num30 = 0; num30 < this.m_nBodyCapsuleCount; num30++)
 		{
@@ -1000,8 +1065,8 @@ public class DynamicSkirtBone : MonoBehaviour
 			{
 				int num34 = num31 + num33 * this.m_nHookBoneCount;
 				Vector3 vector17 = new Vector3(this.m_aryBonePos[3 * num34], this.m_aryBonePos[3 * num34 + 1], this.m_aryBonePos[3 * num34 + 2]);
-				Transform transform15 = this.m_aryBoneTrs[num34];
-				transform15.position = vector17;
+				Transform transform17 = this.m_aryBoneTrs[num34];
+				transform17.position = vector17;
 				if (num33 < num32 - 1)
 				{
 					int num35 = num31 + (num33 + 1) * this.m_nHookBoneCount;
@@ -1011,11 +1076,11 @@ public class DynamicSkirtBone : MonoBehaviour
 					Vector3 vector19 = Vector3.Cross(lhs, vector18);
 					Quaternion rotation = Quaternion.AngleAxis(-90f, vector19);
 					vector18 = rotation * vector18;
-					transform15.rotation = Quaternion.LookRotation(vector19, vector18);
+					transform17.rotation = Quaternion.LookRotation(vector19, vector18);
 				}
 				if (this.m_bOldBone && this.m_bPanierOldBoneRotRev[num34])
 				{
-					transform15.Rotate(this.m_vPanierOldBoneRotRevAfter[num34], Space.Self);
+					transform17.Rotate(this.m_vPanierOldBoneRotRevAfter[num34], Space.Self);
 				}
 			}
 		}
@@ -1277,6 +1342,14 @@ public class DynamicSkirtBone : MonoBehaviour
 
 	private Plane[] m_aryLegSegPlane;
 
+	private int m_nGrabIdxLeft = -1;
+
+	private int m_nGrabIdxRight = -1;
+
+	private Vector3 m_vGrabPos = Vector3.zero;
+
+	private float m_grabDistance;
+
 	[Serializable]
 	public class PanierRadiusGroup
 	{

+ 1 - 1
Assembly-CSharp/EditMod.cs

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

+ 1 - 1
Assembly-CSharp/ExChangeUI.cs

@@ -18,7 +18,7 @@ public class ExChangeUI : MonoBehaviour
 	private void Awake()
 	{
 		ExChangeUI.Instance = this;
-		this.FadeInStartAction = (Action)Delegate.Combine(this.FadeInStartAction, new Action(delegate
+		this.FadeInStartAction = (Action)Delegate.Combine(this.FadeInStartAction, new Action(delegate()
 		{
 			this.m_ExchangeButton.interactable = false;
 		}));

+ 63 - 0
Assembly-CSharp/FABRIKCtrlData.cs

@@ -0,0 +1,63 @@
+using System;
+using System.Linq;
+using RootMotion.FinalIK;
+using UnityEngine;
+
+[Serializable]
+public class FABRIKCtrlData : IKCtrlData
+{
+	public FABRIKCtrlData(FABRIK fabr_ik, Transform[] chain_bones, FullBodyIKCtrl ik_ctrl, bool attach_ik = false) : base(ik_ctrl, chain_bones.Last<Transform>(), false, attach_ik)
+	{
+		this.FABRIK = fabr_ik;
+		this.FABRIK.fixTransforms = false;
+		this.IKSolver.target = base.IKTarget;
+		this.IKSolver.useRotationLimits = false;
+		this.IKSolver.maxIterations = 4;
+		this.IKSolver.Initiate(chain_bones[0]);
+		this.IKSolver.SetChain(chain_bones, chain_bones[0]);
+		this.FABRIK.enabled = false;
+		this.m_ForceIKEnable = false;
+	}
+
+	public IKSolverFABRIK IKSolver
+	{
+		get
+		{
+			return this.FABRIK.solver;
+		}
+	}
+
+	public override Transform[] ChainBones
+	{
+		get
+		{
+			return (from bone in this.IKSolver.bones
+			select bone.transform).ToArray<Transform>();
+		}
+	}
+
+	public override float PositionWeight
+	{
+		get
+		{
+			return this.IKSolver.IKPositionWeight;
+		}
+		set
+		{
+			this.IKSolver.IKPositionWeight = value;
+		}
+	}
+
+	public override float RotationWeight { get; set; }
+
+	public override void Update()
+	{
+		this.FABRIK.solver.Update();
+		if (base.RotateIK.IsIKExec)
+		{
+			base.TargetBone.rotation = Quaternion.Lerp(base.TargetBone.rotation, base.IKTarget.rotation, this.RotationWeight);
+		}
+	}
+
+	public readonly FABRIK FABRIK;
+}

+ 9 - 0
Assembly-CSharp/FFNameDialog.cs

@@ -1,4 +1,5 @@
 using System;
+using I2.Loc;
 using UnityEngine;
 
 public class FFNameDialog : MonoBehaviour
@@ -66,6 +67,14 @@ public class FFNameDialog : MonoBehaviour
 		this.m_bDecided = false;
 	}
 
+	public void ShowFromLanguageTerm(string messageTerm, string resultATerm, FFNameDialog.OnClick f_dgA, string resultBTerm, FFNameDialog.OnClick f_dgB = null)
+	{
+		messageTerm = LocalizationManager.GetTranslation(messageTerm, true, 0, true, false, null, null);
+		resultATerm = LocalizationManager.GetTranslation(resultATerm, true, 0, true, false, null, null);
+		resultBTerm = LocalizationManager.GetTranslation(resultBTerm, true, 0, true, false, null, null);
+		this.Show(messageTerm, resultATerm, f_dgA, resultBTerm, f_dgB);
+	}
+
 	public void UpdateAlpha(float f_fNewValue)
 	{
 		this.m_uiPanel.alpha = f_fNewValue;

+ 1 - 1
Assembly-CSharp/FacilityFlag/Util.cs

@@ -169,7 +169,7 @@ namespace FacilityFlag
 			List<byte> prefixBytes = new List<byte>();
 			byte b = 0;
 			Action f = null;
-			f = delegate
+			f = delegate()
 			{
 				b = (byte)(value & 127);
 				value >>= 7;

+ 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(1160);
+		brWrite.Write(1170);
 		brWrite.Write("5");
 		int num = 0;
 		for (int i = 0; i < this.m_FacilityArray.Count; i++)

+ 2 - 2
Assembly-CSharp/FacilityUIList.cs

@@ -45,8 +45,8 @@ public class FacilityUIList : MonoBehaviour
 				{
 					return;
 				}
-				this.m_Manager.OpenFacilityUIPowerUpList(facility);
-				this.m_Manager.UpdateFacilityInfo(facility);
+				<SetupFacilityListButton>c__AnonStorey.m_Manager.OpenFacilityUIPowerUpList(facility);
+				<SetupFacilityListButton>c__AnonStorey.m_Manager.UpdateFacilityInfo(facility);
 			});
 		});
 	}

+ 11 - 8
Assembly-CSharp/FacilityUIPowerUpList.cs

@@ -12,15 +12,18 @@ public class FacilityUIPowerUpList : MonoBehaviour
 
 	private void SetupFacilityPowerUpListButton(Facility facility, Action<Facility.PowerUpRecipe> callbackSelect)
 	{
+		FacilityUIPowerUpList.<SetupFacilityPowerUpListButton>c__AnonStorey0 <SetupFacilityPowerUpListButton>c__AnonStorey = new FacilityUIPowerUpList.<SetupFacilityPowerUpListButton>c__AnonStorey0();
+		<SetupFacilityPowerUpListButton>c__AnonStorey.callbackSelect = callbackSelect;
+		<SetupFacilityPowerUpListButton>c__AnonStorey.$this = this;
 		this.m_uGUIListViewer.parentItemArea.gameObject.SetActive(true);
-		int[] powerUpRecipeIDArray = new int[0];
+		<SetupFacilityPowerUpListButton>c__AnonStorey.powerUpRecipeIDArray = new int[0];
 		if (FacilityDataTable.IsExistFacilityPowerUpRecipe(facility.param.typeID, true))
 		{
-			powerUpRecipeIDArray = FacilityDataTable.GetFacilityPowerUpRecipeIDArray(facility.param.typeID, true);
+			<SetupFacilityPowerUpListButton>c__AnonStorey.powerUpRecipeIDArray = FacilityDataTable.GetFacilityPowerUpRecipeIDArray(facility.param.typeID, true);
 		}
-		this.m_uGUIListViewer.Show<Transform>(powerUpRecipeIDArray.Length, delegate(int i, Transform trans)
+		this.m_uGUIListViewer.Show<Transform>(<SetupFacilityPowerUpListButton>c__AnonStorey.powerUpRecipeIDArray.Length, delegate(int i, Transform trans)
 		{
-			Facility.PowerUpRecipe powerUpRecipe = FacilityDataTable.GetFacilityPowerUpRecipe(powerUpRecipeIDArray[i]);
+			Facility.PowerUpRecipe powerUpRecipe = FacilityDataTable.GetFacilityPowerUpRecipe(<SetupFacilityPowerUpListButton>c__AnonStorey.powerUpRecipeIDArray[i]);
 			Toggle componentInChildren = trans.GetComponentInChildren<Toggle>();
 			Text componentInChildren2 = trans.GetComponentInChildren<Text>();
 			componentInChildren2.text = powerUpRecipe.name;
@@ -31,14 +34,14 @@ public class FacilityUIPowerUpList : MonoBehaviour
 				{
 					return;
 				}
-				if (callbackSelect != null)
+				if (<SetupFacilityPowerUpListButton>c__AnonStorey.callbackSelect != null)
 				{
-					callbackSelect(powerUpRecipe);
+					<SetupFacilityPowerUpListButton>c__AnonStorey.callbackSelect(powerUpRecipe);
 				}
-				this.UpdateConditionsText(powerUpRecipe.id);
+				<SetupFacilityPowerUpListButton>c__AnonStorey.UpdateConditionsText(powerUpRecipe.id);
 			});
 		});
-		if (powerUpRecipeIDArray.Length <= 0)
+		if (<SetupFacilityPowerUpListButton>c__AnonStorey.powerUpRecipeIDArray.Length <= 0)
 		{
 			this.m_uGUIListViewer.Show<Transform>(1, delegate(int i, Transform trans)
 			{

+ 9 - 7
Assembly-CSharp/FacilityUIPowerUpMaterialList.cs

@@ -25,14 +25,16 @@ public class FacilityUIPowerUpMaterialList : MonoBehaviour
 
 	private void SetupFacilityPowerUpMaterialListDropDown(int id, Facility facility)
 	{
+		FacilityUIPowerUpMaterialList.<SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey0 <SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey = new FacilityUIPowerUpMaterialList.<SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey0();
+		<SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.$this = this;
 		this.m_uGUIListViewer.parentItemArea.gameObject.SetActive(true);
 		this.DeleteDropdown();
 		Facility.PowerUpRecipe facilityPowerUpRecipe = FacilityDataTable.GetFacilityPowerUpRecipe(id);
-		int[] materialCategoryIDArray = facilityPowerUpRecipe.materialCategoryIDArray;
-		Facility.RecipeData recipeData = facility.GetRecipeData(id);
-		this.m_uGUIListViewer.Show<Transform>(materialCategoryIDArray.Length, delegate(int i, Transform trans)
+		<SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.materialCategoryIDArray = facilityPowerUpRecipe.materialCategoryIDArray;
+		<SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.recipeData = facility.GetRecipeData(id);
+		this.m_uGUIListViewer.Show<Transform>(<SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.materialCategoryIDArray.Length, delegate(int i, Transform trans)
 		{
-			int num = materialCategoryIDArray[i];
+			int num = <SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.materialCategoryIDArray[i];
 			Dropdown componentInChildren = trans.GetComponentInChildren<Dropdown>();
 			Text[] componentsInChildren = trans.GetComponentsInChildren<Text>();
 			FacilityUIPowerUpMaterialList.DropdownPowerUpMaterial dropdownPowerUpMaterial = trans.gameObject.AddComponent<FacilityUIPowerUpMaterialList.DropdownPowerUpMaterial>();
@@ -40,13 +42,13 @@ public class FacilityUIPowerUpMaterialList : MonoBehaviour
 			componentsInChildren[0].text = facilityPowerUpMaterialCategoryName;
 			componentsInChildren[1].text = string.Format("CATEGORY{0}", i + 1);
 			componentInChildren.ClearOptions();
-			Facility.PowerUpMaterial[] materialArray = this.FacilityMgr.GetFacilityPowerUpItemEnableArray(num);
+			Facility.PowerUpMaterial[] materialArray = <SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.$this.FacilityMgr.GetFacilityPowerUpItemEnableArray(num);
 			if (materialArray.Length > 0)
 			{
 				for (int j = 0; j < materialArray.Length; j++)
 				{
 					componentInChildren.options.Add(new Dropdown.OptionData(materialArray[j].name));
-					if (recipeData.materialIDArray[i] == materialArray[j].id)
+					if (<SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.recipeData.materialIDArray[i] == materialArray[j].id)
 					{
 						dropdownPowerUpMaterial.materialID = materialArray[j].id;
 						componentInChildren.value = j;
@@ -75,7 +77,7 @@ public class FacilityUIPowerUpMaterialList : MonoBehaviour
 			componentInChildren.onValueChanged.AddListener(delegate(int value)
 			{
 				dropdownPowerUpMaterial.materialID = materialArray[value].id;
-				this.OnUpdateDropdownParams();
+				<SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.OnUpdateDropdownParams();
 			});
 			if (i == 0)
 			{

+ 1 - 1
Assembly-CSharp/FluctuationOfParameterUnit.cs

@@ -49,7 +49,7 @@ public class FluctuationOfParameterUnit : MonoBehaviour
 		}
 		else
 		{
-			this.anime_event_ = delegate
+			this.anime_event_ = delegate()
 			{
 				iTween.ValueTo(this.gameObject, iTween.Hash(new object[]
 				{

+ 663 - 0
Assembly-CSharp/FullBodyIKCtrl.cs

@@ -0,0 +1,663 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using RootMotion.FinalIK;
+using UnityEngine;
+
+public class FullBodyIKCtrl : MonoBehaviour
+{
+	private HeightIKCtrlData m_MouthIKData
+	{
+		get
+		{
+			return (!this.m_strIKDataPair.ContainsKey("口")) ? null : ((HeightIKCtrlData)this.m_strIKDataPair["口"]);
+		}
+	}
+
+	public Transform BodyTarget { get; private set; }
+
+	public bool IsUpdateEnd { get; private set; }
+
+	public BodyCtrlData BodyCtrlData
+	{
+		get
+		{
+			return this.m_BodyCtrlData;
+		}
+	}
+
+	public TBody TgtBody
+	{
+		get
+		{
+			return this.m_TgtBody;
+		}
+	}
+
+	public Maid TgtMaid
+	{
+		get
+		{
+			return this.m_TgtBody.maid;
+		}
+	}
+
+	public FullBodyBipedIK FullbodyIK
+	{
+		get
+		{
+			return this.m_FullbodyIK;
+		}
+	}
+
+	public Transform IKTgtRoot
+	{
+		get
+		{
+			return this.m_IKTgtRoot;
+		}
+	}
+
+	public IKEffector BodyEffector
+	{
+		get
+		{
+			return this.m_FullbodyIK.solver.bodyEffector;
+		}
+	}
+
+	public Dictionary<string, IKCtrlData> strIKDataPair
+	{
+		get
+		{
+			return this.m_strIKDataPair;
+		}
+	}
+
+	public bool IsIKExec
+	{
+		get
+		{
+			return this.m_strIKDataPair.Any((KeyValuePair<string, IKCtrlData> ik) => ik.Value.IsIKExec) && this.IKActive;
+		}
+	}
+
+	private void Update()
+	{
+		this.IsUpdateEnd = false;
+		if (this.BodyCtrlData.IsIKExec && this.IKActive)
+		{
+			this.TgtMaid.SetPos(this.BodyCtrlData.OrijinMaidPos);
+			if (this.BodyCtrlData.DoAllOffset)
+			{
+				GameMain.Instance.CharacterMgr.SetCharaAllPos(this.BodyCtrlData.OrijinAllPos);
+			}
+		}
+	}
+
+	private void OnDestroy()
+	{
+		if (this.m_IKTgtRoot)
+		{
+			UnityEngine.Object.Destroy(this.m_IKTgtRoot);
+		}
+	}
+
+	private BodyCtrlData SafeAddBodyCtrlData(string key_str)
+	{
+		BodyCtrlData bodyCtrlData = new BodyCtrlData(this);
+		if (this.m_strIKDataPair.ContainsKey(key_str))
+		{
+			this.m_strIKDataPair[key_str] = bodyCtrlData;
+		}
+		else
+		{
+			this.m_strIKDataPair.Add(key_str, bodyCtrlData);
+		}
+		this.m_BodyCtrlData = bodyCtrlData;
+		return (BodyCtrlData)this.m_strIKDataPair[key_str];
+	}
+
+	private BipedIKCtrlData SafeAddFullbodyIKData(string key_str, IKEffector effector, FBIKChain chain, IKMappingLimb ik_mapping, IKEffector sub_effector, bool use_old = false)
+	{
+		BipedIKCtrlData value = new BipedIKCtrlData(effector, chain, ik_mapping, this, effector.bone, sub_effector, use_old);
+		if (this.m_strIKDataPair.ContainsKey(key_str))
+		{
+			this.m_strIKDataPair[key_str] = value;
+		}
+		else
+		{
+			this.m_strIKDataPair.Add(key_str, value);
+		}
+		this.m_FullbodyDataList.Add((BipedIKCtrlData)this.m_strIKDataPair[key_str]);
+		return (BipedIKCtrlData)this.m_strIKDataPair[key_str];
+	}
+
+	private CCDIKCtrlData SafeAddCCDIKData(string key_str, ref CCDIK ccd_ik, bool weight_fade, bool attach_ik, IKManager.BoneType boneType, bool affect_height)
+	{
+		if (ccd_ik)
+		{
+			UnityEngine.Object.DestroyImmediate(ccd_ik);
+		}
+		ccd_ik = this.IKTgtRoot.gameObject.AddComponent<CCDIK>();
+		CCDIKCtrlData value = (!affect_height) ? new CCDIKCtrlData(ccd_ik, this.GetChainBonesToInit(boneType), this, weight_fade, attach_ik) : new HeightIKCtrlData(ccd_ik, this.GetChainBonesToInit(boneType), this, weight_fade, attach_ik);
+		if (this.m_strIKDataPair.ContainsKey(key_str))
+		{
+			this.m_strIKDataPair[key_str] = value;
+		}
+		else
+		{
+			this.m_strIKDataPair.Add(key_str, value);
+		}
+		this.m_CCDDataList.Add((CCDIKCtrlData)this.m_strIKDataPair[key_str]);
+		return (CCDIKCtrlData)this.m_strIKDataPair[key_str];
+	}
+
+	private FABRIKCtrlData SafeAddFABRIKData(string key_str, ref FABRIK fabr_ik, bool weight_fade, bool attach_ik, IKManager.BoneType boneType, bool affect_height)
+	{
+		if (fabr_ik)
+		{
+			UnityEngine.Object.DestroyImmediate(fabr_ik);
+		}
+		fabr_ik = this.IKTgtRoot.gameObject.AddComponent<FABRIK>();
+		FABRIKCtrlData value = new FABRIKCtrlData(fabr_ik, this.GetChainBonesToInit(boneType), this, attach_ik);
+		if (this.m_strIKDataPair.ContainsKey(key_str))
+		{
+			this.m_strIKDataPair[key_str] = value;
+		}
+		else
+		{
+			this.m_strIKDataPair.Add(key_str, value);
+		}
+		this.m_FABRDataList.Add((FABRIKCtrlData)this.m_strIKDataPair[key_str]);
+		return (FABRIKCtrlData)this.m_strIKDataPair[key_str];
+	}
+
+	public void LateIKUpdate()
+	{
+		this.IKUpdate();
+		this.TgtBody.AutoTwist();
+		for (int i = 0; i < this.TgtBody.goSlot.Count; i++)
+		{
+			if (this.TgtBody.goSlot[i].obj != null)
+			{
+				this.TgtBody.goSlot[i].CopyTrans();
+			}
+			this.TgtBody.goSlot[i].Update();
+		}
+	}
+
+	public void Init()
+	{
+		this.m_TgtBody = base.GetComponent<TBody>();
+		if (!this.m_IKTgtRoot)
+		{
+			this.m_IKTgtRoot = new GameObject("IK Target Root").transform;
+			this.m_IKTgtRoot.SetParent(this.m_TgtBody.m_trBones, false);
+		}
+		if (!this.TgtMaid.boMAN)
+		{
+			this.m_STRoot = this.m_TgtBody.m_trBones.Find("ST_Root");
+		}
+		if (this.m_FullbodyIK)
+		{
+			UnityEngine.Object.DestroyImmediate(this.m_FullbodyIK);
+		}
+		this.m_FullbodyIK = this.m_IKTgtRoot.gameObject.AddComponent<FullBodyBipedIK>();
+		this.m_Mouth = new GameObject("Mouth").transform;
+		this.m_Mouth.SetParent(this.TgtBody.trsHead, false);
+		this.m_Mouth.localEulerAngles = new Vector3(-90f, 90f, 0f);
+		if (!this.TgtMaid.boMAN)
+		{
+			this.m_NippleL = new GameObject("Nipple_L").transform;
+			this.m_NippleL.SetParent(CMT.SearchObjName(this.TgtBody.m_trBones, "Mune_L_sub", true), false);
+			this.m_NippleR = new GameObject("Nipple_R").transform;
+			this.m_NippleR.SetParent(CMT.SearchObjName(this.TgtBody.m_trBones, "Mune_R_sub", true), false);
+		}
+		this.m_FullbodyDataList.Clear();
+		this.m_CCDDataList.Clear();
+		this.m_ForearmCalfIKList.Clear();
+		this.m_FABRDataList.Clear();
+		this.m_IKBoneDic = IKManager.CreateBoneDic(this.TgtMaid);
+		this.m_FullbodyIK.references.root = this.m_TgtBody.m_trBones;
+		this.m_FullbodyIK.references.pelvis = this.GetIKBone(IKManager.BoneType.Root);
+		if (!this.TgtMaid.boMAN)
+		{
+			this.m_FullbodyIK.references.spine = new Transform[]
+			{
+				this.m_IKBoneDic[IKManager.BoneType.Spine0].Value.transform,
+				this.m_IKBoneDic[IKManager.BoneType.Spine3].Value.transform
+			};
+		}
+		else
+		{
+			this.m_FullbodyIK.references.spine = new Transform[]
+			{
+				this.m_IKBoneDic[IKManager.BoneType.Spine0].Value.transform,
+				this.m_IKBoneDic[IKManager.BoneType.Spine2].Value.transform
+			};
+		}
+		this.m_FullbodyIK.references.head = this.GetIKBone(IKManager.BoneType.Head);
+		this.m_FullbodyIK.references.leftUpperArm = this.GetIKBone(IKManager.BoneType.UpperArm_L);
+		this.m_FullbodyIK.references.leftForearm = this.GetIKBone(IKManager.BoneType.Forearm_L);
+		this.m_FullbodyIK.references.leftHand = this.GetIKBone(IKManager.BoneType.Hand_L);
+		this.m_FullbodyIK.references.rightUpperArm = this.GetIKBone(IKManager.BoneType.UpperArm_R);
+		this.m_FullbodyIK.references.rightForearm = this.GetIKBone(IKManager.BoneType.Forearm_R);
+		this.m_FullbodyIK.references.rightHand = this.GetIKBone(IKManager.BoneType.Hand_R);
+		this.m_FullbodyIK.references.leftThigh = this.GetIKBone(IKManager.BoneType.Thigh_L);
+		this.m_FullbodyIK.references.leftCalf = this.GetIKBone(IKManager.BoneType.Calf_L);
+		this.m_FullbodyIK.references.leftFoot = this.GetIKBone(IKManager.BoneType.Foot_L);
+		this.m_FullbodyIK.references.rightThigh = this.GetIKBone(IKManager.BoneType.Thigh_R);
+		this.m_FullbodyIK.references.rightCalf = this.GetIKBone(IKManager.BoneType.Calf_R);
+		this.m_FullbodyIK.references.rightFoot = this.GetIKBone(IKManager.BoneType.Foot_R);
+		this.m_FullbodyIK.solver.SetToReferences(this.m_FullbodyIK.references, null);
+		this.m_FullbodyIK.fixTransforms = false;
+		foreach (IKEffector ikeffector in this.m_FullbodyIK.solver.effectors)
+		{
+			ikeffector.positionWeight = 0f;
+			ikeffector.rotationWeight = 0f;
+		}
+		foreach (FBIKChain fbikchain in this.m_FullbodyIK.solver.chain)
+		{
+			fbikchain.bendConstraint.weight = 0f;
+		}
+		this.m_BodyCtrlData = this.SafeAddBodyCtrlData("体全体");
+		this.SafeAddFullbodyIKData("左手", this.m_FullbodyIK.solver.leftHandEffector, this.m_FullbodyIK.solver.leftArmChain, this.m_FullbodyIK.solver.leftArmMapping, this.m_FullbodyIK.solver.leftShoulderEffector, true);
+		this.SafeAddFullbodyIKData("右手", this.m_FullbodyIK.solver.rightHandEffector, this.m_FullbodyIK.solver.rightArmChain, this.m_FullbodyIK.solver.rightArmMapping, this.m_FullbodyIK.solver.rightShoulderEffector, true);
+		this.SafeAddFullbodyIKData("左足", this.m_FullbodyIK.solver.leftFootEffector, this.m_FullbodyIK.solver.leftLegChain, this.m_FullbodyIK.solver.leftLegMapping, this.m_FullbodyIK.solver.leftThighEffector, false);
+		this.SafeAddFullbodyIKData("右足", this.m_FullbodyIK.solver.rightFootEffector, this.m_FullbodyIK.solver.rightLegChain, this.m_FullbodyIK.solver.rightLegMapping, this.m_FullbodyIK.solver.rightThighEffector, false);
+		this.SafeAddCCDIKData("口", ref this.m_MouthIK, true, true, IKManager.BoneType.Mouth, true);
+		this.m_ForearmCalfIKList.Add(this.SafeAddFABRIKData("右肘", ref this.m_ForearmRIK, false, true, IKManager.BoneType.Forearm_R, false));
+		this.m_ForearmCalfIKList.Add(this.SafeAddFABRIKData("左肘", ref this.m_ForearmLIK, false, true, IKManager.BoneType.Forearm_L, false));
+		this.m_ForearmCalfIKList.Add(this.SafeAddFABRIKData("右膝", ref this.m_CalfRIK, false, true, IKManager.BoneType.Calf_R, false));
+		this.m_ForearmCalfIKList.Add(this.SafeAddFABRIKData("左膝", ref this.m_CalfLIK, false, true, IKManager.BoneType.Calf_L, false));
+		if (!this.BodyTarget)
+		{
+			Transform transform = this.m_IKTgtRoot.Find(this.BodyEffector.bone.name);
+			transform = new GameObject(this.BodyEffector.bone.name).transform;
+			transform.SetParent(this.m_IKTgtRoot, false);
+			this.BodyTarget = new GameObject("IKTarget").transform;
+			this.BodyTarget.SetParent(transform, false);
+		}
+		this.BodyEffector.target = this.BodyTarget;
+		this.m_FullbodyIK.enabled = false;
+	}
+
+	public void IKUpdate()
+	{
+		if (this.TgtMaid.boMAN)
+		{
+			this.m_Mouth.localPosition = new Vector3(-0.013f, 0.1115f, 0f);
+		}
+		else
+		{
+			this.AttachPointTransCpy(this.m_Mouth, "head", "歯", false);
+			this.AttachPointTransCpy(this.m_NippleL, "body", "乳首左", false);
+			this.AttachPointTransCpy(this.m_NippleR, "body", "乳首右", false);
+		}
+		this.BodyEffector.positionWeight = 0f;
+		this.BodyTarget.position = this.BodyEffector.bone.position;
+		this.DoHeightCover = false;
+		this.IsUpdateLate = false;
+		if (!this.IKActive)
+		{
+			return;
+		}
+		bool flag = false;
+		foreach (IKCtrlData ikctrlData in this.m_strIKDataPair.Values)
+		{
+			ikctrlData.ApplyIKSetting();
+			flag |= ikctrlData.IsIKExec;
+		}
+		if (!this.IsUpdateLate && (flag || this.AllForceIK))
+		{
+			this.SolverUpdate();
+		}
+	}
+
+	public void SolverUpdate()
+	{
+		this.IsUpdateEnd = true;
+		Action postSolverUpdate = this.PostSolverUpdate;
+		this.PostSolverUpdate = null;
+		if (this.BodyCtrlData.IsIKExec)
+		{
+			this.BodyCtrlData.Update();
+		}
+		bool flag = this.m_FullbodyDataList.Any((BipedIKCtrlData data) => data.IsIKExec && !data.OldIkExec);
+		if (this.m_MouthIKData.IsIKExec)
+		{
+			this.m_MouthIKData.Update();
+		}
+		flag |= (this.BodyEffector.positionWeight == 1f);
+		if (flag)
+		{
+			Vector3 position = this.m_FullbodyIK.references.spine[0].InverseTransformPoint(this.m_FullbodyIK.references.spine[1].position);
+			this.m_FullbodyIK.solver.Update();
+			if (this.GetIKData("右足").IsIKExec || this.GetIKData("左足").IsIKExec)
+			{
+				this.m_FullbodyIK.references.spine[1].position = this.m_FullbodyIK.references.spine[0].TransformPoint(position);
+			}
+		}
+		for (int i = 0; i < this.m_ForearmCalfIKList.Count; i++)
+		{
+			if (this.m_ForearmCalfIKList[i].IsIKExec)
+			{
+				this.m_ForearmCalfIKList[i].Update();
+			}
+		}
+		foreach (IKCtrlData ikctrlData in this.m_strIKDataPair.Values)
+		{
+			ikctrlData.LateUpdate();
+		}
+		if (postSolverUpdate != null)
+		{
+			postSolverUpdate();
+		}
+	}
+
+	public void AttachPointTransCpy(Transform trans, string slot_name, string attach_name, bool scale_cpy = false)
+	{
+		int slotNo = this.TgtBody.GetSlotNo(slot_name);
+		if (this.TgtBody.goSlot[slotNo].morph == null)
+		{
+			return;
+		}
+		Vector3 position;
+		Quaternion rotation;
+		Vector3 localScale;
+		this.TgtBody.goSlot[slotNo].morph.GetAttachPoint(attach_name, out position, out rotation, out localScale, false);
+		trans.position = position;
+		trans.rotation = rotation;
+		if (scale_cpy)
+		{
+			trans.localScale = localScale;
+		}
+	}
+
+	public Transform GetIKBone(IKManager.BoneType boneType)
+	{
+		return (!this.m_IKBoneDic.ContainsKey(boneType)) ? null : this.m_IKBoneDic[boneType].Value.transform;
+	}
+
+	public Transform[] GetChainBonesToInit(IKManager.BoneType boneType)
+	{
+		Transform[] result = new Transform[0];
+		switch (boneType)
+		{
+		case IKManager.BoneType.Forearm_R:
+			result = new Transform[]
+			{
+				this.GetIKBone(IKManager.BoneType.Clavicle_R),
+				this.GetIKBone(IKManager.BoneType.UpperArm_R),
+				this.GetIKBone(IKManager.BoneType.Forearm_R)
+			};
+			break;
+		case IKManager.BoneType.Hand_R:
+			result = new Transform[]
+			{
+				this.GetIKBone(IKManager.BoneType.UpperArm_R),
+				this.GetIKBone(IKManager.BoneType.Forearm_R),
+				this.GetIKBone(IKManager.BoneType.Hand_R)
+			};
+			break;
+		default:
+			switch (boneType)
+			{
+			case IKManager.BoneType.Head:
+				if (!this.TgtMaid.boMAN)
+				{
+					result = new Transform[]
+					{
+						this.GetIKBone(IKManager.BoneType.Spine0),
+						this.GetIKBone(IKManager.BoneType.Spine1),
+						this.GetIKBone(IKManager.BoneType.Spine2),
+						this.GetIKBone(IKManager.BoneType.Spine3),
+						this.GetIKBone(IKManager.BoneType.Neck),
+						this.GetIKBone(IKManager.BoneType.Head)
+					};
+				}
+				else
+				{
+					result = new Transform[]
+					{
+						this.GetIKBone(IKManager.BoneType.Spine0),
+						this.GetIKBone(IKManager.BoneType.Spine1),
+						this.GetIKBone(IKManager.BoneType.Spine2),
+						this.GetIKBone(IKManager.BoneType.Neck),
+						this.GetIKBone(IKManager.BoneType.Head)
+					};
+				}
+				break;
+			case IKManager.BoneType.Neck:
+				if (!this.TgtMaid.boMAN)
+				{
+					result = new Transform[]
+					{
+						this.GetIKBone(IKManager.BoneType.Spine0),
+						this.GetIKBone(IKManager.BoneType.Spine1),
+						this.GetIKBone(IKManager.BoneType.Spine2),
+						this.GetIKBone(IKManager.BoneType.Spine3),
+						this.GetIKBone(IKManager.BoneType.Neck)
+					};
+				}
+				else
+				{
+					result = new Transform[]
+					{
+						this.GetIKBone(IKManager.BoneType.Spine0),
+						this.GetIKBone(IKManager.BoneType.Spine1),
+						this.GetIKBone(IKManager.BoneType.Spine2),
+						this.GetIKBone(IKManager.BoneType.Neck)
+					};
+				}
+				break;
+			default:
+				switch (boneType)
+				{
+				case IKManager.BoneType.Mouth:
+					if (!this.TgtMaid.boMAN)
+					{
+						result = new Transform[]
+						{
+							this.GetIKBone(IKManager.BoneType.Spine0),
+							this.GetIKBone(IKManager.BoneType.Spine1),
+							this.GetIKBone(IKManager.BoneType.Spine2),
+							this.GetIKBone(IKManager.BoneType.Spine3),
+							this.GetIKBone(IKManager.BoneType.Neck),
+							this.GetIKBone(IKManager.BoneType.Head),
+							this.GetIKBone(IKManager.BoneType.Mouth)
+						};
+					}
+					else
+					{
+						result = new Transform[]
+						{
+							this.GetIKBone(IKManager.BoneType.Spine0),
+							this.GetIKBone(IKManager.BoneType.Spine1),
+							this.GetIKBone(IKManager.BoneType.Spine2),
+							this.GetIKBone(IKManager.BoneType.Neck),
+							this.GetIKBone(IKManager.BoneType.Head),
+							this.GetIKBone(IKManager.BoneType.Mouth)
+						};
+					}
+					break;
+				case IKManager.BoneType.Nipple_L:
+					if (!this.TgtMaid.boMAN)
+					{
+						result = new Transform[]
+						{
+							this.GetIKBone(IKManager.BoneType.Bust_L),
+							this.GetIKBone(IKManager.BoneType.Bust_L_Sub),
+							this.GetIKBone(IKManager.BoneType.Nipple_L)
+						};
+					}
+					break;
+				case IKManager.BoneType.Nipple_R:
+					if (!this.TgtMaid.boMAN)
+					{
+						result = new Transform[]
+						{
+							this.GetIKBone(IKManager.BoneType.Bust_R),
+							this.GetIKBone(IKManager.BoneType.Bust_R_Sub),
+							this.GetIKBone(IKManager.BoneType.Nipple_R)
+						};
+					}
+					break;
+				}
+				break;
+			case IKManager.BoneType.Spine2:
+				result = new Transform[]
+				{
+					this.GetIKBone(IKManager.BoneType.Spine0),
+					this.GetIKBone(IKManager.BoneType.Spine1),
+					this.GetIKBone(IKManager.BoneType.Spine2)
+				};
+				break;
+			case IKManager.BoneType.Spine3:
+				if (!this.TgtMaid.boMAN)
+				{
+					result = new Transform[]
+					{
+						this.GetIKBone(IKManager.BoneType.Spine0),
+						this.GetIKBone(IKManager.BoneType.Spine1),
+						this.GetIKBone(IKManager.BoneType.Spine2),
+						this.GetIKBone(IKManager.BoneType.Spine3)
+					};
+				}
+				break;
+			}
+			break;
+		case IKManager.BoneType.Calf_R:
+			result = new Transform[]
+			{
+				this.GetIKBone(IKManager.BoneType.Thigh_R),
+				this.GetIKBone(IKManager.BoneType.Calf_R)
+			};
+			break;
+		case IKManager.BoneType.Foot_R:
+			result = new Transform[]
+			{
+				this.GetIKBone(IKManager.BoneType.Thigh_R),
+				this.GetIKBone(IKManager.BoneType.Calf_R),
+				this.GetIKBone(IKManager.BoneType.Foot_R)
+			};
+			break;
+		case IKManager.BoneType.Forearm_L:
+			result = new Transform[]
+			{
+				this.GetIKBone(IKManager.BoneType.Clavicle_L),
+				this.GetIKBone(IKManager.BoneType.UpperArm_L),
+				this.GetIKBone(IKManager.BoneType.Forearm_L)
+			};
+			break;
+		case IKManager.BoneType.Hand_L:
+			result = new Transform[]
+			{
+				this.GetIKBone(IKManager.BoneType.UpperArm_L),
+				this.GetIKBone(IKManager.BoneType.Forearm_L),
+				this.GetIKBone(IKManager.BoneType.Hand_L)
+			};
+			break;
+		case IKManager.BoneType.Calf_L:
+			result = new Transform[]
+			{
+				this.GetIKBone(IKManager.BoneType.Thigh_L),
+				this.GetIKBone(IKManager.BoneType.Calf_L)
+			};
+			break;
+		case IKManager.BoneType.Foot_L:
+			result = new Transform[]
+			{
+				this.GetIKBone(IKManager.BoneType.Thigh_L),
+				this.GetIKBone(IKManager.BoneType.Calf_L),
+				this.GetIKBone(IKManager.BoneType.Foot_L)
+			};
+			break;
+		}
+		return result;
+	}
+
+	public IKCtrlData GetIKData(string tag_name)
+	{
+		if (this.m_strIKDataPair.ContainsKey(tag_name))
+		{
+			return this.m_strIKDataPair[tag_name];
+		}
+		return null;
+	}
+
+	public T GetIKData<T>(string tag_name) where T : IKCtrlData
+	{
+		if (this.m_strIKDataPair.ContainsKey(tag_name) && this.m_strIKDataPair[tag_name] is T)
+		{
+			return this.m_strIKDataPair[tag_name] as T;
+		}
+		return (T)((object)null);
+	}
+
+	public Transform GetSTFlagObj(string name)
+	{
+		return this.m_STRoot.Find(name);
+	}
+
+	[SerializeField]
+	private TBody m_TgtBody;
+
+	[SerializeField]
+	private Transform m_IKTgtRoot;
+
+	[SerializeField]
+	private Transform m_STRoot;
+
+	[SerializeField]
+	private FullBodyBipedIK m_FullbodyIK;
+
+	private CCDIK m_MouthIK;
+
+	private CCDIK m_MuneLIK;
+
+	private CCDIK m_MuneRIK;
+
+	private FABRIK m_ForearmLIK;
+
+	private FABRIK m_ForearmRIK;
+
+	private FABRIK m_CalfLIK;
+
+	private FABRIK m_CalfRIK;
+
+	private Dictionary<IKManager.BoneType, KeyValuePair<IKManager.BoneSetType, GameObject>> m_IKBoneDic = new Dictionary<IKManager.BoneType, KeyValuePair<IKManager.BoneSetType, GameObject>>();
+
+	[SerializeField]
+	private BodyCtrlData m_BodyCtrlData;
+
+	[SerializeField]
+	private List<BipedIKCtrlData> m_FullbodyDataList = new List<BipedIKCtrlData>();
+
+	[SerializeField]
+	private List<CCDIKCtrlData> m_CCDDataList = new List<CCDIKCtrlData>();
+
+	[SerializeField]
+	private List<FABRIKCtrlData> m_FABRDataList = new List<FABRIKCtrlData>();
+
+	private Transform m_NippleL;
+
+	private Transform m_NippleR;
+
+	private Transform m_Mouth;
+
+	private Dictionary<string, IKCtrlData> m_strIKDataPair = new Dictionary<string, IKCtrlData>();
+
+	private List<FABRIKCtrlData> m_ForearmCalfIKList = new List<FABRIKCtrlData>();
+
+	public bool IKActive = true;
+
+	public bool DoHeightCover;
+
+	public bool IsUpdateLate;
+
+	public Action PostSolverUpdate;
+
+	public bool AllForceIK;
+}

+ 5 - 3
Assembly-CSharp/GameMain.cs

@@ -6,6 +6,7 @@ using System.Globalization;
 using System.IO;
 using System.Linq;
 using System.Threading;
+using I2.Loc;
 using Kasizuki;
 using MaidStatus;
 using Schedule;
@@ -328,6 +329,7 @@ public class GameMain : MonoSingleton<GameMain>
 			}
 		}
 		UnityEngine.Debug.Log("TestSingleton#OnInitialize");
+		LocalizationManager.CurrentLanguage = "Japanese";
 		Thread.CurrentThread.CurrentCulture = new CultureInfo("ja-JP");
 		UnityEngine.Debug.Log(SystemInfo.operatingSystem);
 		UnityEngine.Debug.Log(string.Concat(new object[]
@@ -666,7 +668,7 @@ public class GameMain : MonoSingleton<GameMain>
 		serializeHeader.nMaidNum = this.m_CharacterMgr.GetStockMaidCount();
 		serializeHeader.strComment = f_strComment;
 		binaryWriter.Write("COM3D2_SAVE");
-		binaryWriter.Write(1160);
+		binaryWriter.Write(1170);
 		this.SerializeWriteHeader(binaryWriter, serializeHeader);
 		binaryWriter.Write("bookmark_kk_01");
 		GameMain.BinaryBookmark binaryBookmark = new GameMain.BinaryBookmark(binaryWriter);
@@ -780,7 +782,7 @@ public class GameMain : MonoSingleton<GameMain>
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("COM3D2_SAVE");
-		binaryWriter.Write(1160);
+		binaryWriter.Write(1170);
 		this.SerializeWriteHeader(binaryWriter, saveDataHeader);
 		binaryWriter.Write(array, (int)saveDataHeader.lHeaderSize, (int)((long)array.Length - saveDataHeader.lHeaderSize));
 		File.WriteAllBytes(path, memoryStream.ToArray());
@@ -1286,7 +1288,7 @@ public class GameMain : MonoSingleton<GameMain>
 		}
 		else
 		{
-			GameMain.Instance.SysDlg.Show("終了しますか?", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.OnToEnd), new SystemDialog.OnClick(this.OnCancel));
+			GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/終了しますか?", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.OnToEnd), new SystemDialog.OnClick(this.OnCancel));
 		}
 	}
 

+ 2 - 2
Assembly-CSharp/GameUty.cs

@@ -912,14 +912,14 @@ public class GameUty
 
 	public static string GetBuildVersionText()
 	{
-		int num = 1160;
+		int num = 1170;
 		return (num >= 1000) ? ((float)num / 1000f).ToString("F2") : ((float)num / 100f).ToString("F2");
 	}
 
 	public static string GetGameVersionText()
 	{
 		string text = "COM3D2x64.exe";
-		int num = 1160;
+		int num = 1170;
 		string path = Path.GetFullPath(".\\") + "update.lst";
 		string[] array = new string[0];
 		if (File.Exists(path))

+ 1 - 1
Assembly-CSharp/GravityControlWindow.cs

@@ -15,7 +15,7 @@ public class GravityControlWindow : BaseMaidPhotoWindow
 		{
 			NDebug.Assert(!string.IsNullOrEmpty(gravityData.categoryName), "GravityControlWindow 初期化エラーcategoryNameが不正です");
 			NDebug.Assert(0 < gravityData.slotIds.Length, "GravityControlWindow 初期化エラーslotIdsが不正です");
-			EventDelegate.Add(gravityData.button.onClick, delegate
+			EventDelegate.Add(gravityData.button.onClick, delegate()
 			{
 				for (int j = 0; j < this.gravityDatas.Length; j++)
 				{

+ 22 - 1
Assembly-CSharp/HairLongWindow.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 
 public class HairLongWindow : BasePhotoWindow
@@ -98,7 +99,27 @@ public class HairLongWindow : BasePhotoWindow
 			this.slider.MaxNum = 100f;
 			this.slider.ResetNum = 50f;
 			this.slider.onChangeValue.Add(new Action<float>(this.OnChangeValue));
-			this.label.text = f_kvNameAndHl.Key;
+			string str = string.Empty;
+			string str2 = string.Empty;
+			int num = f_kvNameAndHl.Key.Length - 1;
+			while (0 <= num)
+			{
+				if ('1' > f_kvNameAndHl.Key[num] || f_kvNameAndHl.Key[num] > '9')
+				{
+					str = f_kvNameAndHl.Key.Substring(0, num + 1);
+					str2 = f_kvNameAndHl.Key.Substring(num + 1, f_kvNameAndHl.Key.Length - (num + 1));
+					break;
+				}
+				num--;
+			}
+			Localize localize = this.label.gameObject.GetComponent<Localize>();
+			if (localize == null)
+			{
+				localize = this.label.gameObject.AddComponent<Localize>();
+			}
+			localize.SetTerm("SceneEdit/カテゴリー/サブ/" + str);
+			UILabel uilabel = this.label;
+			uilabel.text += str2;
 			this.slider.value = (this.m_fBackValue = this.hl.GetLengthRate() * 100f);
 		}
 

+ 3 - 3
Assembly-CSharp/HandSignShortcut.cs

@@ -363,9 +363,9 @@ public class HandSignShortcut : MonoBehaviour
 		}
 	}
 
+	// Note: this type is marked as 'beforefieldinit'.
 	static HandSignShortcut()
 	{
-		// Note: this type is marked as 'beforefieldinit'.
 		Quaternion[,] array = new Quaternion[4, 15];
 		array[0, 0] = new Quaternion(1.379457E-08f, -1.907173E-10f, -0.1001217f, 0.9949752f);
 		array[0, 1] = new Quaternion(-3.348364E-08f, -2.288052E-09f, -0.05697599f, 0.9983756f);
@@ -494,7 +494,7 @@ public class HandSignShortcut : MonoBehaviour
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1160;
+			this.m_nVersion = 1170;
 		}
 
 		public void OnAfterDeserialize()
@@ -803,7 +803,7 @@ public class HandSignShortcut : MonoBehaviour
 		private const string CONF_NAME = "MaidFingerDataList.json";
 
 		[SerializeField]
-		private int m_nVersion = 1160;
+		private int m_nVersion = 1170;
 
 		[SerializeField]
 		private List<HandSignShortcut.MaidFingerData> MaidFingerDataList = new List<HandSignShortcut.MaidFingerData>();

+ 52 - 0
Assembly-CSharp/HeightIKCtrlData.cs

@@ -0,0 +1,52 @@
+using System;
+using RootMotion.FinalIK;
+using UnityEngine;
+
+[Serializable]
+public class HeightIKCtrlData : CCDIKCtrlData
+{
+	public HeightIKCtrlData(CCDIK ccd_ik, Transform[] chain_bones, FullBodyIKCtrl ik_ctrl, bool weight_fade = true, bool attach_ik = false) : base(ccd_ik, chain_bones, ik_ctrl, weight_fade, attach_ik)
+	{
+	}
+
+	public void CheckReachTarget()
+	{
+		if (!base.PointIK.IsIKExec || base.PointIK.BlendType == IKCtrlData.IKBlendType.IK_To_Detach)
+		{
+			return;
+		}
+		float num = Vector3.Distance(base.IKTarget.position, base.TargetBone.position);
+		if (num <= 0.05f || (num > 1f && base.PointIK.BlendNow))
+		{
+			return;
+		}
+		int value = this.MyIKCtrl.TgtMaid.GetProp(MPN.sintyou).value;
+		int value2 = base.PointIK.TgtMaid.GetProp(MPN.sintyou).value;
+		if (this.m_EachOtherIK && value < value2)
+		{
+			IKCtrlData ikdata = base.PointIK.TgtMaid.IKCtrl.GetIKData(base.PointIK.Tgt_AttachName);
+			if (base.PointIK.TgtMaid.IKCtrl.IsUpdateEnd)
+			{
+				ikdata.IKTarget.position += (base.TargetBone.position - base.IKTarget.position) * ikdata.PointIK.BlendWeight;
+				base.PointIK.TgtMaid.IKCtrl.SolverUpdate();
+			}
+		}
+		else if (!this.MyIKCtrl.DoHeightCover && !base.PointIK.BlendNow)
+		{
+			Vector3 vector = base.IKTarget.position - base.TargetBone.position;
+			this.MyIKCtrl.BodyTarget.position += vector;
+			foreach (IKCtrlData ikctrlData in this.MyIKCtrl.strIKDataPair.Values)
+			{
+				ikctrlData.SetTargetOffset(vector, false);
+			}
+			this.MyIKCtrl.BodyEffector.positionWeight = 1f;
+		}
+		this.MyIKCtrl.DoHeightCover = true;
+	}
+
+	public override void Update()
+	{
+		base.Update();
+		this.CheckReachTarget();
+	}
+}

+ 7 - 5
Assembly-CSharp/I2/Loc/LanguageSource.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using System.Text;
 using UnityEngine;
@@ -679,6 +680,7 @@ namespace I2.Loc
 			}
 		}
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event Action<LanguageSource, bool, string> Event_OnSourceUpdateFromGoogle;
 
 		public static void FreeUnusedLanguages()
@@ -836,7 +838,7 @@ namespace I2.Loc
 				{
 					if (!flag)
 					{
-						Debug.LogWarning("Spreadsheet is not up-to-date and Google Live Synchronization is enabled\nWhen playing in the device the Spreadsheet will be downloaded and translations may not behave as what you see in the editor.\nTo fix this, Import or Export replace to Google");
+						UnityEngine.Debug.LogWarning("Spreadsheet is not up-to-date and Google Live Synchronization is enabled\nWhen playing in the device the Spreadsheet will be downloaded and translations may not behave as what you see in the editor.\nTo fix this, Import or Export replace to Google");
 					}
 					yield break;
 				}
@@ -850,7 +852,7 @@ namespace I2.Loc
 							this.Event_OnSourceUpdateFromGoogle(this, true, www.error);
 						}
 						LocalizationManager.LocalizeAll(true);
-						Debug.Log("Done Google Sync");
+						UnityEngine.Debug.Log("Done Google Sync");
 					}
 					else
 					{
@@ -858,7 +860,7 @@ namespace I2.Loc
 						{
 							this.Event_OnSourceUpdateFromGoogle(this, false, www.error);
 						}
-						Debug.Log("Done Google Sync: source was up-to-date");
+						UnityEngine.Debug.Log("Done Google Sync: source was up-to-date");
 					}
 					yield break;
 				}
@@ -867,7 +869,7 @@ namespace I2.Loc
 			{
 				this.Event_OnSourceUpdateFromGoogle(this, false, www.error);
 			}
-			Debug.Log("Language Source was up-to-date with Google Spreadsheet");
+			UnityEngine.Debug.Log("Language Source was up-to-date with Google Spreadsheet");
 			yield break;
 		}
 
@@ -972,7 +974,7 @@ namespace I2.Loc
 			}
 			catch (Exception ex)
 			{
-				Debug.LogWarning(ex);
+				UnityEngine.Debug.LogWarning(ex);
 				result = ex.ToString();
 			}
 			return result;

+ 2 - 0
Assembly-CSharp/I2/Loc/LocalizationManager.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Globalization;
 using System.Linq;
 using System.Text.RegularExpressions;
@@ -819,6 +820,7 @@ namespace I2.Loc
 			LocalizationManager.mLocalizeTargets.Add(desc);
 		}
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public static event LocalizationManager.OnLocalizeCallback OnLocalizeEvent;
 
 		public static string GetTranslation(string Term, bool FixForRTL = true, int maxLineLengthForRTL = 0, bool ignoreRTLnumbers = true, bool applyParameters = false, GameObject localParametersRoot = null, string overrideLanguage = null)

+ 59 - 0
Assembly-CSharp/I2/Loc/LocalizeTarget_NGUI_Button.cs

@@ -0,0 +1,59 @@
+using System;
+using UnityEngine;
+
+namespace I2.Loc
+{
+	public class LocalizeTarget_NGUI_Button : LocalizeTarget<UIButton>
+	{
+		static LocalizeTarget_NGUI_Button()
+		{
+			LocalizeTarget_NGUI_Button.AutoRegister();
+		}
+
+		[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
+		private static void AutoRegister()
+		{
+			LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type<UIButton, LocalizeTarget_NGUI_Button>
+			{
+				Name = "NGUI UIButton",
+				Priority = 30
+			});
+		}
+
+		public override eTermType GetPrimaryTermType(Localize cmp)
+		{
+			return eTermType.Text;
+		}
+
+		public override eTermType GetSecondaryTermType(Localize cmp)
+		{
+			return eTermType.UIAtlas;
+		}
+
+		public override bool CanUseSecondaryTerm()
+		{
+			return false;
+		}
+
+		public override bool AllowMainTermToBeRTL()
+		{
+			return false;
+		}
+
+		public override bool AllowSecondTermToBeRTL()
+		{
+			return false;
+		}
+
+		public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm)
+		{
+			primaryTerm = ((!this.mTarget) ? null : this.mTarget.normalSprite);
+			secondaryTerm = null;
+		}
+
+		public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation)
+		{
+			this.mTarget.normalSprite = mainTranslation;
+		}
+	}
+}

+ 5 - 0
Assembly-CSharp/I2/Loc/LocalizeTarget_NGUI_Label.cs

@@ -100,6 +100,11 @@ namespace I2.Loc
 				{
 					this.mTarget.alignment = ((!LocalizationManager.IsRight2Left) ? this.mAlignment_LTR : this.mAlignment_RTL);
 				}
+				if (((!this.mTarget.useFloatSpacing && (this.mTarget.spacingX != 0 || this.mTarget.spacingY != 0)) || (this.mTarget.useFloatSpacing && (this.mTarget.floatSpacingX != 0f || this.mTarget.floatSpacingY != 0f))) && cmp.GetComponent<NGUILabelSpacingHold>() == null)
+				{
+					cmp.gameObject.AddComponent<NGUILabelSpacingHold>();
+				}
+				this.mTarget.overflowMethod = UILabel.Overflow.ShrinkContent;
 				this.mTarget.text = mainTranslation;
 			}
 		}

+ 0 - 24
Assembly-CSharp/I2/Loc/NGUI_LanguagePopup.cs

@@ -1,24 +0,0 @@
-using System;
-using UnityEngine;
-
-namespace I2.Loc
-{
-	public class NGUI_LanguagePopup : MonoBehaviour
-	{
-		private void Start()
-		{
-			UIPopupList component = base.GetComponent<UIPopupList>();
-			component.items = this.Source.GetLanguages(true);
-			EventDelegate.Add(component.onChange, new EventDelegate.Callback(this.OnValueChange));
-			int num = component.items.IndexOf(LocalizationManager.CurrentLanguage);
-			component.value = component.items[(num < 0) ? 0 : num];
-		}
-
-		public void OnValueChange()
-		{
-			LocalizationManager.CurrentLanguage = UIPopupList.current.value;
-		}
-
-		public LanguageSource Source;
-	}
-}

File diff suppressed because it is too large
+ 1093 - 0
Assembly-CSharp/IKCtrlData.cs


+ 122 - 281
Assembly-CSharp/IKManager.cs

@@ -14,285 +14,121 @@ public class IKManager : MonoBehaviour
 			return null;
 		}
 		NDebug.Assert(maid.body0 != null, "[body0] it does not end load.");
-		return new Dictionary<IKManager.BoneType, KeyValuePair<IKManager.BoneSetType, GameObject>>
+		string text = (!maid.boMAN) ? "Bip01" : "ManBip";
+		Dictionary<IKManager.BoneType, KeyValuePair<IKManager.BoneSetType, GameObject>> dictionary = new Dictionary<IKManager.BoneType, KeyValuePair<IKManager.BoneSetType, GameObject>>();
+		dictionary.Add(IKManager.BoneType.TopFixed, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text).parent.gameObject));
+		dictionary.Add(IKManager.BoneType.Root, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text).gameObject));
+		dictionary.Add(IKManager.BoneType.Head, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Head").gameObject));
+		dictionary.Add(IKManager.BoneType.Neck, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Neck").gameObject));
+		dictionary.Add(IKManager.BoneType.Pelvis, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Pelvis").gameObject));
+		dictionary.Add(IKManager.BoneType.Spine0, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Spine").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Spine1, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Spine0a").gameObject));
+			dictionary.Add(IKManager.BoneType.Spine2, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Spine1").gameObject));
+			dictionary.Add(IKManager.BoneType.Spine3, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Spine1a").gameObject));
+		}
+		else
 		{
-			{
-				IKManager.BoneType.TopFixed,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01").parent.gameObject)
-			},
-			{
-				IKManager.BoneType.Root,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01").gameObject)
-			},
-			{
-				IKManager.BoneType.Head,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 Head").gameObject)
-			},
-			{
-				IKManager.BoneType.Neck,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 Neck").gameObject)
-			},
-			{
-				IKManager.BoneType.Pelvis,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 Pelvis").gameObject)
-			},
-			{
-				IKManager.BoneType.Spine0,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 Spine").gameObject)
-			},
-			{
-				IKManager.BoneType.Spine1,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 Spine0a").gameObject)
-			},
-			{
-				IKManager.BoneType.Spine2,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 Spine1").gameObject)
-			},
-			{
-				IKManager.BoneType.Spine3,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 Spine1a").gameObject)
-			},
-			{
-				IKManager.BoneType.Bust_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Mune_R").gameObject)
-			},
-			{
-				IKManager.BoneType.Clavicle_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 R Clavicle").gameObject)
-			},
-			{
-				IKManager.BoneType.UpperArm_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 R UpperArm").gameObject)
-			},
-			{
-				IKManager.BoneType.Forearm_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 R Forearm").gameObject)
-			},
-			{
-				IKManager.BoneType.Hand_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 R Hand").gameObject)
-			},
-			{
-				IKManager.BoneType.Bust_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Mune_L").gameObject)
-			},
-			{
-				IKManager.BoneType.Clavicle_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 L Clavicle").gameObject)
-			},
-			{
-				IKManager.BoneType.UpperArm_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 L UpperArm").gameObject)
-			},
-			{
-				IKManager.BoneType.Forearm_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 L Forearm").gameObject)
-			},
-			{
-				IKManager.BoneType.Hand_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 L Hand").gameObject)
-			},
-			{
-				IKManager.BoneType.Hip_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Hip_R").gameObject)
-			},
-			{
-				IKManager.BoneType.Thigh_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 R Thigh").gameObject)
-			},
-			{
-				IKManager.BoneType.Calf_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 R Calf").gameObject)
-			},
-			{
-				IKManager.BoneType.Foot_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 R Foot").gameObject)
-			},
-			{
-				IKManager.BoneType.Hip_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Hip_L").gameObject)
-			},
-			{
-				IKManager.BoneType.Thigh_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 L Thigh").gameObject)
-			},
-			{
-				IKManager.BoneType.Calf_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 L Calf").gameObject)
-			},
-			{
-				IKManager.BoneType.Foot_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Bip01 L Foot").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger0_Root_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger0").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger0_0_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger01").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger0_1_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger02").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger1_Root_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger1").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger1_0_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger11").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger1_1_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger12").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger2_Root_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger2").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger2_0_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger21").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger2_1_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger22").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger3_Root_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger3").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger3_0_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger31").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger3_1_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger32").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger4_Root_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger4").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger4_0_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger41").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger4_1_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone("Bip01 R Finger42").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger0_Root_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger0").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger0_0_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger01").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger0_1_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger02").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger1_Root_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger1").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger1_0_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger11").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger1_1_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger12").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger2_Root_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger2").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger2_0_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger21").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger2_1_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger22").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger3_Root_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger3").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger3_0_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger31").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger3_1_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger32").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger4_Root_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger4").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger4_0_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger41").gameObject)
-			},
-			{
-				IKManager.BoneType.Finger4_1_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone("Bip01 L Finger42").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe0_Root_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone("Bip01 R Toe2").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe0_0_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone("Bip01 R Toe21").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe1_Root_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone("Bip01 R Toe1").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe1_0_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone("Bip01 R Toe11").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe2_Root_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone("Bip01 R Toe0").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe2_0_R,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone("Bip01 R Toe01").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe0_Root_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone("Bip01 L Toe2").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe0_0_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone("Bip01 L Toe21").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe1_Root_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone("Bip01 L Toe1").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe1_0_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone("Bip01 L Toe11").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe2_Root_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone("Bip01 L Toe0").gameObject)
-			},
-			{
-				IKManager.BoneType.Toe2_0_L,
-				new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone("Bip01 L Toe01").gameObject)
-			}
-		};
+			dictionary.Add(IKManager.BoneType.Spine1, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Spine1").gameObject));
+			dictionary.Add(IKManager.BoneType.Spine2, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " Spine2").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Mouth, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Mouth").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Bust_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Mune_R").gameObject));
+			dictionary.Add(IKManager.BoneType.Bust_R_Sub, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Mune_R_sub").gameObject));
+			dictionary.Add(IKManager.BoneType.Nipple_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Nipple_R").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Clavicle_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " R Clavicle").gameObject));
+		dictionary.Add(IKManager.BoneType.UpperArm_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " R UpperArm").gameObject));
+		dictionary.Add(IKManager.BoneType.Forearm_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " R Forearm").gameObject));
+		dictionary.Add(IKManager.BoneType.Hand_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " R Hand").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Bust_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Mune_L").gameObject));
+			dictionary.Add(IKManager.BoneType.Bust_L_Sub, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Mune_L_sub").gameObject));
+			dictionary.Add(IKManager.BoneType.Nipple_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Nipple_L").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Clavicle_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " L Clavicle").gameObject));
+		dictionary.Add(IKManager.BoneType.UpperArm_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " L UpperArm").gameObject));
+		dictionary.Add(IKManager.BoneType.Forearm_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " L Forearm").gameObject));
+		dictionary.Add(IKManager.BoneType.Hand_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " L Hand").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Hip_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Hip_R").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Thigh_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " R Thigh").gameObject));
+		dictionary.Add(IKManager.BoneType.Calf_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " R Calf").gameObject));
+		dictionary.Add(IKManager.BoneType.Foot_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " R Foot").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Hip_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone("Hip_L").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Thigh_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " L Thigh").gameObject));
+		dictionary.Add(IKManager.BoneType.Calf_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " L Calf").gameObject));
+		dictionary.Add(IKManager.BoneType.Foot_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.Body, maid.body0.GetBone(text + " L Foot").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger0_Root_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger0").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger0_0_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger01").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger0_1_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger02").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger1_Root_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger1").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger1_0_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger11").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger1_1_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger12").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger2_Root_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger2").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger2_0_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger21").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger2_1_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger22").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger3_Root_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger3").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger3_0_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger31").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger3_1_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger32").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger4_Root_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger4").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger4_0_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger41").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger4_1_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightArmFinger, maid.body0.GetBone(text + " R Finger42").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger0_Root_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger0").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger0_0_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger01").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger0_1_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger02").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger1_Root_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger1").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger1_0_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger11").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger1_1_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger12").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger2_Root_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger2").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger2_0_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger21").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger2_1_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger22").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger3_Root_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger3").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger3_0_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger31").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger3_1_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger32").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger4_Root_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger4").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger4_0_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger41").gameObject));
+		dictionary.Add(IKManager.BoneType.Finger4_1_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftArmFinger, maid.body0.GetBone(text + " L Finger42").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Toe0_Root_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone(text + " R Toe2").gameObject));
+			dictionary.Add(IKManager.BoneType.Toe0_0_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone(text + " R Toe21").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Toe1_Root_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone(text + " R Toe1").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Toe1_0_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone(text + " R Toe11").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Toe2_Root_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone(text + " R Toe0").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Toe2_0_R, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone(text + " R Toe01").gameObject));
+		}
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Toe0_Root_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.RightLegFinger, maid.body0.GetBone(text + " L Toe2").gameObject));
+			dictionary.Add(IKManager.BoneType.Toe0_0_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone(text + " L Toe21").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Toe1_Root_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone(text + " L Toe1").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Toe1_0_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone(text + " L Toe11").gameObject));
+		}
+		dictionary.Add(IKManager.BoneType.Toe2_Root_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone(text + " L Toe0").gameObject));
+		if (!maid.boMAN)
+		{
+			dictionary.Add(IKManager.BoneType.Toe2_0_L, new KeyValuePair<IKManager.BoneSetType, GameObject>(IKManager.BoneSetType.LeftLegFinger, maid.body0.GetBone(text + " L Toe01").gameObject));
+		}
+		return dictionary;
 	}
 
 	public void Awake()
@@ -361,11 +197,11 @@ public class IKManager : MonoBehaviour
 		}
 		this.root_drag_point_ = IKManager.CreateIKDragPoint(this.GetBone(IKManager.BoneType.Root), this.maid);
 		this.root_drag_point_.PositonCorrectionEnabled = false;
-		this.root_drag_point_.cur_drag_event = delegate
+		this.root_drag_point_.cur_drag_event = delegate()
 		{
 			this.root_drag_point_.target_ik_point_trans.position = this.root_drag_point_.transform.position;
 		};
-		this.root_drag_point_.drag_end_event = delegate
+		this.root_drag_point_.drag_end_event = delegate()
 		{
 			this.HistoryPush();
 		};
@@ -874,7 +710,12 @@ public class IKManager : MonoBehaviour
 		Toe1_Root_L,
 		Toe1_0_L,
 		Toe2_Root_L,
-		Toe2_0_L
+		Toe2_0_L,
+		Mouth,
+		Bust_L_Sub,
+		Bust_R_Sub,
+		Nipple_L,
+		Nipple_R
 	}
 
 	public enum BoneSetType

+ 0 - 405
Assembly-CSharp/IKMgrData.cs

@@ -1,405 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-
-[Serializable]
-public class IKMgrData
-{
-	public TBody Body { get; private set; }
-
-	public Transform KinematicTgt
-	{
-		get
-		{
-			return this.m_KinematicTgt;
-		}
-	}
-
-	public IKMgrData.IKParam PointIK
-	{
-		get
-		{
-			return this.m_PointIK;
-		}
-	}
-
-	public IKMgrData.IKParam RotateIK
-	{
-		get
-		{
-			return this.m_RotateIK;
-		}
-	}
-
-	public TBody.IKCMO IKCmo
-	{
-		get
-		{
-			return this.m_IKCmo;
-		}
-	}
-
-	public bool IsIkExec
-	{
-		get
-		{
-			return this.PointIK.IsIKExec || this.RotateIK.IsIKExec;
-		}
-	}
-
-	private void IkCmoPorc(Vector3 tgt, Vector3 vechand_offset)
-	{
-		if (this.m_KinematicList.Count < 3)
-		{
-			return;
-		}
-		for (int i = 0; i < 3; i++)
-		{
-			this.IKCmo.Porc(this.m_KinematicList[2], this.m_KinematicList[1], this.m_KinematicList[0], tgt, vechand_offset);
-		}
-	}
-
-	private void TransratePoint(Vector3 tgt_pos, Quaternion tgt_rot, Vector3 tgt_offset)
-	{
-		Vector3 vector = tgt_pos + tgt_rot * tgt_offset;
-		Debug.DrawLine(tgt_pos, vector, Color.white);
-		for (int i = 0; i < 5; i++)
-		{
-			Vector3 a = vector;
-			if (this.m_AttachPointData != null)
-			{
-				Vector3 normalized = (this.KinematicTgt.position - this.KinematicTgt.parent.position).normalized;
-				float d = Vector3.Dot(this.m_AttachPointData.AttachTrans.position - this.KinematicTgt.position, normalized);
-				a += this.KinematicTgt.position + normalized * d - this.m_AttachPointData.AttachTrans.position;
-			}
-			for (int j = 1; j < this.m_KinematicList.Count; j++)
-			{
-				bool flag = j + 1 < this.m_KinematicList.Count;
-				Vector3 vector2 = Vector3.zero;
-				if (flag)
-				{
-					Quaternion rotation = Quaternion.FromToRotation(this.m_KinematicList[j - 1].position - this.m_KinematicList[j].position, a - this.m_KinematicList[j].position) * this.m_KinematicList[j].rotation;
-					Vector3 point = this.m_KinematicList[j].InverseTransformPoint(this.m_KinematicList[j - 1].position);
-					Vector3 b = this.m_KinematicList[j].position + rotation * point;
-					vector2 = this.m_KinematicList[j].position + (a - b);
-					this.m_KinematicList[j + 1].rotation = Quaternion.FromToRotation(this.m_KinematicList[j].position - this.m_KinematicList[j + 1].position, vector2 - this.m_KinematicList[j + 1].position) * this.m_KinematicList[j + 1].rotation;
-				}
-				this.m_KinematicList[j].rotation = Quaternion.FromToRotation(this.m_KinematicList[j - 1].position - this.m_KinematicList[j].position, a - this.m_KinematicList[j].position) * this.m_KinematicList[j].rotation;
-				if (flag)
-				{
-					a = vector2;
-				}
-			}
-			for (int k = this.m_KinematicList.Count - 1; k > 0; k--)
-			{
-				Debug.DrawLine(this.m_KinematicList[k].position, this.m_KinematicList[k - 1].position, Color.Lerp(Color.red, Color.yellow, (float)i / 4f));
-			}
-			if (this.m_AttachPointData != null)
-			{
-				Debug.DrawLine(this.KinematicTgt.position, this.m_AttachPointData.AttachTrans.position, Color.Lerp(Color.red, Color.yellow, (float)i / 4f));
-			}
-		}
-	}
-
-	private void TransratePoint(Transform tgt, Vector3 tgt_offset)
-	{
-		this.TransratePoint(tgt.position, tgt.rotation, tgt_offset);
-	}
-
-	private void ConstraintRot(Quaternion tgt_rot, Vector3 tgt_offset)
-	{
-		this.KinematicTgt.rotation = tgt_rot * Quaternion.Euler(tgt_offset);
-	}
-
-	private void ApplyIKSetting(IKMgrData.IKParam data)
-	{
-		if (this.IsExecLate)
-		{
-			return;
-		}
-		if (data.TgtMaid && data.TgtMaid != this.Body.maid && !data.TgtMaid.body0.LateUpdateEnd)
-		{
-			TBody body = data.TgtMaid.body0;
-			body.OnLateUpdateEnd = (Action)Delegate.Combine(body.OnLateUpdateEnd, new Action(this.AfterExec));
-			data.IsIKExec = false;
-			this.IsExecLate = true;
-			return;
-		}
-		data.IsIKExec = true;
-		if (data.Target != null)
-		{
-			Vector3 position = data.Target.position;
-			Quaternion rotation = data.Target.rotation;
-			switch (data.MyType)
-			{
-			case IKMgrData.IKAttachType.Point:
-				Debug.DrawLine(position, position + rotation * Vector3.forward * 0.2f, Color.cyan);
-				this.IkCmoPorc(position, data.TgtOffset);
-				break;
-			case IKMgrData.IKAttachType.Rotate:
-				this.ConstraintRot(rotation, data.TgtOffset);
-				break;
-			case IKMgrData.IKAttachType.NewPoint:
-				this.TransratePoint(data.Target, data.TgtOffset);
-				break;
-			}
-			if (data.IsTgtAxis)
-			{
-				KasaiUtility.DrawAxis(position, rotation, 0.125f);
-			}
-		}
-		else if (data.Tgt_AttachName != string.Empty)
-		{
-			if (this.Body.goSlot[data.Tgt_AttachSlot].morph != null)
-			{
-				if (data.TgtMaid != null && data.TgtMaid.body0 != null)
-				{
-					Vector3 vector;
-					Quaternion rotation2;
-					Vector3 vector2;
-					data.TgtMaid.body0.goSlot[data.Tgt_AttachSlot].morph.GetAttachPoint(data.Tgt_AttachName, out vector, out rotation2, out vector2, false);
-					switch (data.MyType)
-					{
-					case IKMgrData.IKAttachType.Point:
-						Debug.DrawLine(vector, vector + rotation2 * Vector3.forward * 0.2f, Color.blue);
-						this.IkCmoPorc(vector, data.TgtOffset);
-						break;
-					case IKMgrData.IKAttachType.Rotate:
-						this.ConstraintRot(rotation2, data.TgtOffset);
-						break;
-					case IKMgrData.IKAttachType.NewPoint:
-						if (data.AxisTgt)
-						{
-							rotation2 = data.AxisTgt.rotation;
-						}
-						this.TransratePoint(vector, rotation2, data.TgtOffset);
-						break;
-					}
-					if (data.IsTgtAxis)
-					{
-						KasaiUtility.DrawAxis(vector, rotation2, 0.125f);
-					}
-				}
-				else
-				{
-					data.IsIKExec = false;
-					data.Tgt_AttachName = string.Empty;
-				}
-			}
-		}
-		else
-		{
-			data.IsIKExec = false;
-		}
-	}
-
-	private void AfterExec()
-	{
-		this.IKExec();
-		if (!this.Body.IKExecLate)
-		{
-			this.Body.AutoTwist();
-			for (int i = 0; i < this.Body.goSlot.Count; i++)
-			{
-				if (this.Body.goSlot[i].obj != null)
-				{
-					this.Body.goSlot[i].CopyTrans();
-				}
-				this.Body.goSlot[i].Update();
-			}
-		}
-	}
-
-	public void SetKinematicTgt(Transform tgt, TBody body, int weight = 3)
-	{
-		this.m_KinematicTgt = tgt;
-		this.Body = body;
-		this.m_KinematicList.Clear();
-		int num = 0;
-		Transform transform = tgt;
-		while (num != weight)
-		{
-			this.m_KinematicList.Add(transform);
-			Transform parent = transform.parent;
-			if (!parent)
-			{
-				Debug.LogWarningFormat("IKのウェイトが大きすぎます:{0}", new object[]
-				{
-					weight
-				});
-				break;
-			}
-			transform = parent;
-			num++;
-		}
-	}
-
-	public void IkCmoInit(TBody body)
-	{
-		if (this.m_KinematicList.Count < 3)
-		{
-			return;
-		}
-		this.IKCmo.Init(this.m_KinematicList[2], this.m_KinematicList[1], this.m_KinematicList[0], body);
-	}
-
-	public IKMgrData.IKParam GetIKParam(IKMgrData.IKAttachType attach_type)
-	{
-		if (attach_type == IKMgrData.IKAttachType.Rotate)
-		{
-			return this.RotateIK;
-		}
-		return this.PointIK;
-	}
-
-	public void IKExec()
-	{
-		this.IsExecLate = false;
-		this.ApplyIKSetting(this.PointIK);
-		this.ApplyIKSetting(this.RotateIK);
-		if (this.IsIkExec && !this.IsExecLate)
-		{
-			if (this.m_AttachPointData != null)
-			{
-				KasaiUtility.DrawObjAxis(this.m_AttachPointData.AttachTrans, 0.0625f);
-			}
-			else
-			{
-				KasaiUtility.DrawObjAxis(this.KinematicTgt, 0.0625f);
-			}
-			if (!this.PointIK.IsIKExec)
-			{
-				for (int i = this.m_KinematicList.Count - 1; i > 0; i--)
-				{
-					Debug.DrawLine(this.m_KinematicList[i].position, this.m_KinematicList[i - 1].position, Color.cyan);
-				}
-				if (this.m_AttachPointData != null)
-				{
-					Debug.DrawLine(this.KinematicTgt.position, this.m_AttachPointData.AttachTrans.position, Color.cyan);
-				}
-			}
-		}
-	}
-
-	public Transform CreateAttachPointObj(string obj_name, Transform parent, TBody body, string slot_name, string attach_name)
-	{
-		if (this.m_AttachPointData != null && this.m_AttachPointData.AttachTrans)
-		{
-			return this.m_AttachPointData.AttachTrans;
-		}
-		GameObject gameObject = new GameObject(obj_name);
-		gameObject.transform.SetParent(parent, false);
-		this.m_AttachPointData = new IKMgrData.AttachPointIKData();
-		this.m_AttachPointData.AttachTrans = gameObject.transform;
-		this.m_AttachPointData.Tbody = body;
-		this.m_AttachPointData.AttachName = attach_name;
-		this.m_AttachPointData.SlotName = slot_name;
-		return gameObject.transform;
-	}
-
-	public void SyncAttachPoint()
-	{
-		if (this.m_AttachPointData == null || !this.m_AttachPointData.AttachTrans)
-		{
-			return;
-		}
-		int slotNo = this.m_AttachPointData.Tbody.GetSlotNo(this.m_AttachPointData.SlotName);
-		if (slotNo < 0 || slotNo >= this.m_AttachPointData.Tbody.goSlot.Count)
-		{
-			Debug.LogErrorFormat("スロット{0}は存在しません", new object[]
-			{
-				this.m_AttachPointData.SlotName
-			});
-			return;
-		}
-		Vector3 position;
-		Quaternion rotation;
-		Vector3 localScale;
-		this.m_AttachPointData.Tbody.goSlot[slotNo].morph.GetAttachPoint(this.m_AttachPointData.AttachName, out position, out rotation, out localScale, false);
-		this.m_AttachPointData.AttachTrans.position = position;
-		this.m_AttachPointData.AttachTrans.rotation = rotation;
-		this.m_AttachPointData.AttachTrans.localScale = localScale;
-	}
-
-	private const int m_CorrectNum = 5;
-
-	[SerializeField]
-	private List<Transform> m_KinematicList = new List<Transform>();
-
-	[SerializeField]
-	private Transform m_KinematicTgt;
-
-	[SerializeField]
-	private IKMgrData.IKParam m_PointIK = new IKMgrData.IKParam(IKMgrData.IKAttachType.NewPoint);
-
-	[SerializeField]
-	private IKMgrData.IKParam m_RotateIK = new IKMgrData.IKParam(IKMgrData.IKAttachType.Rotate);
-
-	private TBody.IKCMO m_IKCmo = new TBody.IKCMO();
-
-	private IKMgrData.AttachPointIKData m_AttachPointData;
-
-	public bool IsExecLate;
-
-	public enum IKAttachType
-	{
-		Point,
-		Rotate,
-		NewPoint
-	}
-
-	[Serializable]
-	public class IKParam
-	{
-		public IKParam(IKMgrData.IKAttachType type)
-		{
-			this.MyType = type;
-		}
-
-		public IKMgrData.IKAttachType MyType { get; private set; }
-
-		public void ChangePointType(IKMgrData.IKAttachType type)
-		{
-			if (this.MyType == IKMgrData.IKAttachType.Rotate)
-			{
-				return;
-			}
-			this.MyType = type;
-		}
-
-		public bool IsPointAttach
-		{
-			get
-			{
-				return this.MyType != IKMgrData.IKAttachType.Rotate;
-			}
-		}
-
-		public Transform Target;
-
-		public Vector3 TgtOffset;
-
-		public int Tgt_AttachSlot = -1;
-
-		public string Tgt_AttachName = string.Empty;
-
-		public Maid TgtMaid;
-
-		public bool IsTgtAxis;
-
-		public bool IsIKExec;
-
-		public Transform AxisTgt;
-	}
-
-	private class AttachPointIKData
-	{
-		public Transform AttachTrans;
-
-		public TBody Tbody;
-
-		public string SlotName = string.Empty;
-
-		public string AttachName = string.Empty;
-	}
-}

+ 4 - 2
Assembly-CSharp/ItemInfoWnd.cs

@@ -1,4 +1,5 @@
 using System;
+using I2.Loc;
 using UnityEngine;
 
 public class ItemInfoWnd : MonoBehaviour
@@ -35,9 +36,10 @@ public class ItemInfoWnd : MonoBehaviour
 		{
 			this.m_uiInfo.text = string.Concat(new object[]
 			{
-				"全",
+				LocalizationManager.GetTranslation("SceneEdit/インフォ文/全", true, 0, true, false, null, null),
 				group_num,
-				"種\n",
+				LocalizationManager.GetTranslation("SceneEdit/インフォ文/種", true, 0, true, false, null, null),
+				"\n",
 				f_strInfo
 			});
 		}

+ 25 - 9
Assembly-CSharp/KaraokeDataManager.cs

@@ -245,19 +245,35 @@ public class KaraokeDataManager : MonoBehaviour
 
 	public static void GetMaidListKaraoke(List<Maid> draw_list)
 	{
-		List<Maid> list = new List<Maid>();
+		List<string> list = new List<string>
+		{
+			"Pure",
+			"Cool",
+			"Pride",
+			"Yandere",
+			"Anesan",
+			"Genki",
+			"Sadist",
+			"Muku",
+			"Majime",
+			"Rindere"
+		};
 		List<Maid> list2 = new List<Maid>();
-		CharacterSelectManager.DefaultMaidList(list2);
-		for (int i = 0; i < list2.Count; i++)
+		List<Maid> list3 = new List<Maid>();
+		CharacterSelectManager.DefaultMaidList(list3);
+		for (int i = 0; i < list3.Count; i++)
 		{
-			Maid maid = list2[i];
+			Maid maid = list3[i];
 			if (maid.status.heroineType != HeroineType.Sub)
 			{
-				list.Add(maid);
+				if (list.Contains(maid.status.personal.uniqueName))
+				{
+					list2.Add(maid);
+				}
 			}
 		}
 		draw_list.Clear();
-		draw_list.AddRange(list);
+		draw_list.AddRange(list2);
 	}
 
 	private void Awake()
@@ -499,7 +515,7 @@ public class KaraokeDataManager : MonoBehaviour
 	public void ButtonExit()
 	{
 		UICanvasFade mainMenu = this.m_CanvasKaraokeMainMenu;
-		mainMenu.FadeOut(mainMenu.fadeTime, mainMenu.isTimeScaling, delegate
+		mainMenu.FadeOut(mainMenu.fadeTime, mainMenu.isTimeScaling, delegate()
 		{
 			VRDialogMenu dialog = VRDialogMenu.CreateDialog();
 			if (dialog)
@@ -648,7 +664,7 @@ public class KaraokeDataManager : MonoBehaviour
 	public void ButtonEventOpenVRConfig()
 	{
 		UICanvasFade canvasKaraokeMainMenu = this.m_CanvasKaraokeMainMenu;
-		canvasKaraokeMainMenu.FadeOut(canvasKaraokeMainMenu.fadeTime, canvasKaraokeMainMenu.isTimeScaling, delegate
+		canvasKaraokeMainMenu.FadeOut(canvasKaraokeMainMenu.fadeTime, canvasKaraokeMainMenu.isTimeScaling, delegate()
 		{
 			this.m_CanvasVRConfig.FadeIn();
 		});
@@ -657,7 +673,7 @@ public class KaraokeDataManager : MonoBehaviour
 	public void ButtonEventOpenKaraokeMainMenu()
 	{
 		UICanvasFade canvasVRConfig = this.m_CanvasVRConfig;
-		canvasVRConfig.FadeOut(canvasVRConfig.fadeTime, canvasVRConfig.isTimeScaling, delegate
+		canvasVRConfig.FadeOut(canvasVRConfig.fadeTime, canvasVRConfig.isTimeScaling, delegate()
 		{
 			this.m_CanvasKaraokeMainMenu.FadeIn();
 		});

+ 45 - 0
Assembly-CSharp/KasaiUtility.cs

@@ -376,4 +376,49 @@ public class KasaiUtility
 		}
 		return KasaiUtility.Hermite(p, p2, v, v2, t2);
 	}
+
+	public static Vector3 Vec3Multiply(Vector3 a, Vector3 b)
+	{
+		Vector3 zero = Vector3.zero;
+		zero.x = a.x * b.x;
+		zero.y = a.y * b.y;
+		zero.z = a.z * b.z;
+		return zero;
+	}
+
+	public static Vector3 Vec3Parse(string str, char split_ch = ',')
+	{
+		string[] array = str.Split(new char[]
+		{
+			split_ch
+		});
+		Vector3 zero = Vector3.zero;
+		zero.x = float.Parse(array[0]);
+		zero.y = float.Parse(array[1]);
+		zero.z = float.Parse(array[2]);
+		return zero;
+	}
+
+	public static Vector3 AngleRimmit360(Vector3 orijin_angle)
+	{
+		Func<float, float> func = delegate(float angle)
+		{
+			if (Mathf.Abs(angle) > 360f)
+			{
+				if (angle < 0f)
+				{
+					angle += 360f;
+				}
+				else
+				{
+					angle -= 360f;
+				}
+			}
+			return angle;
+		};
+		orijin_angle.x = func(orijin_angle.x);
+		orijin_angle.y = func(orijin_angle.y);
+		orijin_angle.z = func(orijin_angle.z);
+		return orijin_angle;
+	}
 }

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

@@ -79,7 +79,7 @@ namespace Kasizuki
 			UIButton uiButton = trans.GetComponent<UIButton>();
 			if (uiButton)
 			{
-				EventDelegate.Add(uiButton.onClick, delegate
+				EventDelegate.Add(uiButton.onClick, delegate()
 				{
 					this.OnClickItem(uiButton, data);
 				});

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

@@ -84,7 +84,7 @@ namespace Kasizuki
 		{
 			GameObject itemObj = item.gameObject;
 			UIButton componentInChildren = item.GetComponentInChildren<UIButton>(item);
-			EventDelegate.Add(componentInChildren.onClick, delegate
+			EventDelegate.Add(componentInChildren.onClick, delegate()
 			{
 				this.callbackSelectItem(maid);
 				this.UpdateListColor(itemObj);

+ 113 - 26
Assembly-CSharp/Kasizuki/KasizukiMainMenu.cs

@@ -28,7 +28,7 @@ namespace Kasizuki
 		protected override void OnCall()
 		{
 			this.m_SwitchingWindowDic["部屋選択"].GetCache<UIButton>("OK").isEnabled = (KasizukiMainMenu.m_NowSelectingRoom != null);
-			this.m_SwitchingWindowDic["メイド情報"].OnOpen = delegate
+			this.m_SwitchingWindowDic["メイド情報"].OnOpen = delegate()
 			{
 				MaidMiniManagementCtrl component = base.parent_mgr.children_dic["MaidInfo"].GetComponent<MaidMiniManagementCtrl>();
 				component.buttonDic["エディット"].gameObject.SetActive(component.selectMaid != null);
@@ -40,7 +40,7 @@ namespace Kasizuki
 				{
 					KasizukiCharacterSelectCtrl charaSelect = maidMiniManagementCtrl.charaSelectMgr;
 					maidMiniManagementCtrl.selectMaid = null;
-					charaSelect.callbackGetMaidList = delegate
+					charaSelect.callbackGetMaidList = delegate()
 					{
 						ManDataType nowManType = (ManDataType)GameMain.Instance.KasizukiMgr.GetNowManType();
 						List<PlayData.Data> playDatas = KasizukiMainMenu.m_NowSelectingRoom.GetPlayDatas();
@@ -96,6 +96,30 @@ namespace Kasizuki
 								num += 4;
 								kasizukiMgr.SetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男1, num, false);
 							}
+							else if (kasizukiMgr.GetNowManType() == 30)
+							{
+								num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男2, false);
+								num += 4;
+								kasizukiMgr.SetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男2, num, false);
+							}
+							else if (kasizukiMgr.GetNowManType() == 40)
+							{
+								num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男3, false);
+								num += 4;
+								kasizukiMgr.SetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男3, num, false);
+							}
+							else if (kasizukiMgr.GetNowManType() == 50)
+							{
+								num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男4, false);
+								num += 4;
+								kasizukiMgr.SetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男4, num, false);
+							}
+							else if (kasizukiMgr.GetNowManType() == 60)
+							{
+								num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男5, false);
+								num += 4;
+								kasizukiMgr.SetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男5, num, false);
+							}
 						}
 					}
 					Debug.Log("プレイ回数を更新");
@@ -129,11 +153,11 @@ namespace Kasizuki
 			NGUIWindow nguiwindow = this.m_SwitchingWindowDic["部屋選択"];
 			nguiwindow.CacheChildObject<UIButton>("OK", "OK");
 			nguiwindow.CacheChildObject<UIButton>("Cancel", "Cancel");
-			EventDelegate.Add(nguiwindow.GetCache<UIButton>("OK").onClick, delegate
+			EventDelegate.Add(nguiwindow.GetCache<UIButton>("OK").onClick, delegate()
 			{
 				this.OnOKRoom();
 			});
-			EventDelegate.Add(nguiwindow.GetCache<UIButton>("Cancel").onClick, delegate
+			EventDelegate.Add(nguiwindow.GetCache<UIButton>("Cancel").onClick, delegate()
 			{
 				this.OpenSwitchingWindow("メインメニュー", false);
 			});
@@ -146,12 +170,12 @@ namespace Kasizuki
 			KasizukiSaveAndLoadCtrl component = nguiwindow.GetComponent<KasizukiSaveAndLoadCtrl>();
 			NDebug.Assert(component != null, "セーブロードUIが取得できない");
 			KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl = component;
-			kasizukiSaveAndLoadCtrl.onClickCancel = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl.onClickCancel, new Action(delegate
+			kasizukiSaveAndLoadCtrl.onClickCancel = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl.onClickCancel, new Action(delegate()
 			{
 				this.OpenSwitchingWindow("メインメニュー", false);
 			}));
 			KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl2 = component;
-			kasizukiSaveAndLoadCtrl2.onClickNewGame = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl2.onClickNewGame, new Action(delegate
+			kasizukiSaveAndLoadCtrl2.onClickNewGame = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl2.onClickNewGame, new Action(delegate()
 			{
 				SceneKasizukiMainMenu mgr = base.parent_mgr as SceneKasizukiMainMenu;
 				mgr.CameraFadeOut(delegate
@@ -164,7 +188,7 @@ namespace Kasizuki
 				}, 0.5f);
 			}));
 			KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl3 = component;
-			kasizukiSaveAndLoadCtrl3.onLoad = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl3.onLoad, new Action(delegate
+			kasizukiSaveAndLoadCtrl3.onLoad = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl3.onLoad, new Action(delegate()
 			{
 				SceneKasizukiMainMenu mgr = base.parent_mgr as SceneKasizukiMainMenu;
 				mgr.CameraFadeOut(delegate
@@ -177,7 +201,7 @@ namespace Kasizuki
 				}, 0.5f);
 			}));
 			KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl4 = component;
-			kasizukiSaveAndLoadCtrl4.onSave = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl4.onSave, new Action(delegate
+			kasizukiSaveAndLoadCtrl4.onSave = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl4.onSave, new Action(delegate()
 			{
 				int nowOriginSaveDataNumber = GameMain.Instance.KasizukiMgr.NowOriginSaveDataNumber;
 				if (GameMain.Instance.GetSaveDataHeader(nowOriginSaveDataNumber) == null)
@@ -188,7 +212,7 @@ namespace Kasizuki
 				GameMain.Instance.SerializeKasizukiOnly(nowOriginSaveDataNumber);
 			}));
 			KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl5 = component;
-			kasizukiSaveAndLoadCtrl5.onDelete = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl5.onDelete, new Action(delegate
+			kasizukiSaveAndLoadCtrl5.onDelete = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl5.onDelete, new Action(delegate()
 			{
 				int nowOriginSaveDataNumber = GameMain.Instance.KasizukiMgr.NowOriginSaveDataNumber;
 				if (GameMain.Instance.GetSaveDataHeader(nowOriginSaveDataNumber) == null)
@@ -205,11 +229,11 @@ namespace Kasizuki
 			NGUIWindow nguiwindow = this.m_SwitchingWindowDic["男選択"];
 			nguiwindow.CacheChildObject<UIButton>("OK", "OK");
 			nguiwindow.CacheChildObject<UIButton>("Cancel", "Cancel");
-			EventDelegate.Add(nguiwindow.GetCache<UIButton>("OK").onClick, delegate
+			EventDelegate.Add(nguiwindow.GetCache<UIButton>("OK").onClick, delegate()
 			{
 				this.OpenSwitchingWindow("メインメニュー", false);
 			});
-			EventDelegate.Add(nguiwindow.GetCache<UIButton>("Cancel").onClick, delegate
+			EventDelegate.Add(nguiwindow.GetCache<UIButton>("Cancel").onClick, delegate()
 			{
 				this.OpenSwitchingWindow("メインメニュー", false);
 			});
@@ -217,7 +241,7 @@ namespace Kasizuki
 			if (compManSelect)
 			{
 				NGUIWindow nguiwindow2 = nguiwindow;
-				nguiwindow2.OnOpen = (Action)Delegate.Combine(nguiwindow2.OnOpen, new Action(delegate
+				nguiwindow2.OnOpen = (Action)Delegate.Combine(nguiwindow2.OnOpen, new Action(delegate()
 				{
 					int nowManType = GameMain.Instance.KasizukiMgr.GetNowManType();
 					compManSelect.OnClickManListButton(nowManType);
@@ -245,16 +269,16 @@ namespace Kasizuki
 			RoomData.Data selectingRoomData = null;
 			ManData.Data selectingManData = null;
 			PlayData.Data selectingPlayData = null;
-			EventDelegate.Add(window.GetCache<UIButton>("OK").onClick, delegate
+			EventDelegate.Add(window.GetCache<UIButton>("OK").onClick, delegate()
 			{
 				MaidMiniManagementCtrl maidMiniManagementCtrl = this.parent_mgr.children_dic["MaidInfo"] as MaidMiniManagementCtrl;
 				this.StartFree(maidMiniManagementCtrl.selectMaid, selectingRoomData, selectingManData, selectingPlayData);
 			});
-			EventDelegate.Set(window.GetCache<UIButton>("Cancel").onClick, delegate
+			EventDelegate.Set(window.GetCache<UIButton>("Cancel").onClick, delegate()
 			{
 				this.OpenSwitchingWindow("メインメニュー", false);
 			});
-			Action actResetDescriptionWindow = delegate
+			Action actResetDescriptionWindow = delegate()
 			{
 				UILabel cache = comp.descriptionCache.GetCache<UILabel>("説明文");
 				uGUIListViewer cache2 = comp.descriptionCache.GetCache<uGUIListViewer>("条件一覧");
@@ -282,13 +306,32 @@ namespace Kasizuki
 				cache.isEnabled = (roomData != null && manData != null && playData != null);
 			};
 			NGUIWindow window2 = window;
-			window2.OnOpen = (Action)Delegate.Combine(window2.OnOpen, new Action(delegate
+			window2.OnOpen = (Action)Delegate.Combine(window2.OnOpen, new Action(delegate()
 			{
 				selectingManData = ManData.GetData(GameMain.Instance.KasizukiMgr.GetNowManType());
 				List<RoomData.Data> datas;
 				if (!GameMain.Instance.CharacterMgr.status.lockNTRPlay)
 				{
-					datas = RoomData.GetDatas((RoomData.Data data) => data.isExistUpwardRoom && !data.isOnlyNTR);
+					datas = RoomData.GetDatas(delegate(RoomData.Data data)
+					{
+						if (!data.isExistUpwardRoom)
+						{
+							return false;
+						}
+						if (data.isOnlyNTR)
+						{
+							return false;
+						}
+						MaidMiniManagementCtrl maidMiniManagementCtrl = this.parent_mgr.children_dic["MaidInfo"] as MaidMiniManagementCtrl;
+						foreach (PlayData.Data data2 in data.GetPlayDatas())
+						{
+							if (data2.IsCorrectPersonal(maidMiniManagementCtrl.selectMaid))
+							{
+								return true;
+							}
+						}
+						return false;
+					});
 				}
 				else
 				{
@@ -319,6 +362,10 @@ namespace Kasizuki
 					});
 				}
 				comp.OpenRoomList(datas, selectingRoomData);
+				if (selectingRoomData != null)
+				{
+					comp.onClickRoom(selectingRoomData);
+				}
 				actResetDescriptionWindow();
 				actSetOKButtonEnable(selectingRoomData, selectingManData, selectingPlayData);
 			}));
@@ -328,14 +375,35 @@ namespace Kasizuki
 				selectingRoomData = roomData;
 				comp.OpenManList(ManData.GetAllDatas(true, true), selectingManData, delegate(UIWFTabButton item, ManData.Data data)
 				{
-					bool flag = selectingRoomData.enableManTypeDic[data.manType];
+					bool flag = false;
+					MaidMiniManagementCtrl maidMiniManagementCtrl = this.parent_mgr.children_dic["MaidInfo"] as MaidMiniManagementCtrl;
+					foreach (PlayData.Data data2 in selectingRoomData.GetPlayDatas())
+					{
+						if (data2.enableManTypeDic[data.manType] && data2.IsCorrectPersonal(maidMiniManagementCtrl.selectMaid))
+						{
+							flag = true;
+							break;
+						}
+					}
 					if (!flag && item.isSelected)
 					{
 						item.SetSelect(false);
 					}
 					item.gameObject.SetActive(flag);
 				});
-				List<PlayData.Data> datas = PlayData.GetDatas((PlayData.Data data) => data.roomID == selectingRoomData.ID && data.enableManTypeDic[selectingManData.manType]);
+				List<PlayData.Data> datas = PlayData.GetDatas(delegate(PlayData.Data data)
+				{
+					if (data.roomID != selectingRoomData.ID)
+					{
+						return false;
+					}
+					if (!data.enableManTypeDic[selectingManData.manType])
+					{
+						return false;
+					}
+					MaidMiniManagementCtrl maidMiniManagementCtrl = this.parent_mgr.children_dic["MaidInfo"] as MaidMiniManagementCtrl;
+					return data.IsCorrectPersonal(maidMiniManagementCtrl.selectMaid);
+				});
 				comp.OpenPlayList(datas, null);
 				actResetDescriptionWindow();
 				selectingPlayData = null;
@@ -560,7 +628,7 @@ namespace Kasizuki
 			MaidMiniManagementCtrl maidMiniManagementCtrl = base.parent_mgr.children_dic["MaidInfo"] as MaidMiniManagementCtrl;
 			KasizukiCharacterSelectCtrl charaSelect = maidMiniManagementCtrl.charaSelectMgr;
 			maidMiniManagementCtrl.selectMaid = null;
-			charaSelect.callbackGetMaidList = delegate
+			charaSelect.callbackGetMaidList = delegate()
 			{
 				ManDataType nowManType = (ManDataType)GameMain.Instance.KasizukiMgr.GetNowManType();
 				List<PlayData.Data> playDatas = KasizukiMainMenu.m_NowSelectingRoom.GetPlayDatas();
@@ -596,7 +664,7 @@ namespace Kasizuki
 			window.Call();
 			if (openType == "ヒロイン情報")
 			{
-				window.onClickOK = delegate
+				window.onClickOK = delegate()
 				{
 					this.OpenSwitchingWindow("メインメニュー", false);
 				};
@@ -615,11 +683,11 @@ namespace Kasizuki
 			}
 			else if (openType == "ヒロイン選択")
 			{
-				window.onClickOK = delegate
+				window.onClickOK = delegate()
 				{
 					this.StartSenario(window.selectMaid, KasizukiMainMenu.m_NowSelectingRoom);
 				};
-				window.onClickCancel = delegate
+				window.onClickCancel = delegate()
 				{
 					this.OpenSwitchingWindow("部屋選択", false);
 					this.OnSelectRoom(null);
@@ -640,17 +708,17 @@ namespace Kasizuki
 			}
 			else if (openType == "フリーモード")
 			{
-				window.onClickOK = delegate
+				window.onClickOK = delegate()
 				{
 					this.OpenSwitchingWindow("施設情報", false);
 					UIButton cache = this.m_SwitchingWindowDic["施設情報"].GetCache<UIButton>("Cancel");
-					EventDelegate.Set(cache.onClick, delegate
+					EventDelegate.Set(cache.onClick, delegate()
 					{
 						this.OpenSwitchingWindow("メイド情報", false);
 						this.SetMaidInfoWindowParameter("フリーモード");
 					});
 				};
-				window.onClickCancel = delegate
+				window.onClickCancel = delegate()
 				{
 					this.OpenSwitchingWindow("メインメニュー", false);
 				};
@@ -704,6 +772,10 @@ namespace Kasizuki
 
 		private void StartFree(Maid targetMaid, RoomData.Data targetRoom, ManData.Data targetMan, PlayData.Data targetPlay)
 		{
+			if (!this.CheckCorrectPlayData(targetMaid, targetMan, targetPlay))
+			{
+				return;
+			}
 			Debug.LogFormat("傅きモードの回想を開始します\r\n選択状態↓\r\nメイド:{0}\r\n選択した部屋:{1}\r\n選択した男:{2}\r\n選択したプレイ情報:{3}\r\n", new object[]
 			{
 				targetMaid.status.fullNameJpStyle,
@@ -734,6 +806,19 @@ namespace Kasizuki
 			this.Finish();
 		}
 
+		private bool CheckCorrectPlayData(Maid targetMaid, ManData.Data targetMan, PlayData.Data targetPlay)
+		{
+			NDebug.AssertNull(targetMaid != null);
+			NDebug.AssertNull(targetMan != null);
+			NDebug.AssertNull(targetPlay != null);
+			if (!targetPlay.IsCorrectPersonal(targetMaid))
+			{
+				GameMain.Instance.SysDlg.Show("メイドの性格が対応していません。", SystemDialog.TYPE.OK, null, null);
+				return false;
+			}
+			return true;
+		}
+
 		protected override void OnFinish()
 		{
 			this.CloseSwitchingWindowAll(true);
@@ -778,6 +863,8 @@ namespace Kasizuki
 
 		private const string STR_MESSAGE_END = "保存されていない情報は失われます。\nタイトルに戻りますか?";
 
+		private const string STR_MESSAGE_INCORRECT_PERSONAL = "メイドの性格が対応していません。";
+
 		private static RoomData.Data m_NowSelectingRoom;
 
 		private Dictionary<string, NGUIWindow> m_SwitchingWindowDic;

+ 8 - 6
Assembly-CSharp/Kasizuki/KasizukiManSelectCtrl.cs

@@ -23,18 +23,20 @@ namespace Kasizuki
 
 		private void SetUpManList()
 		{
+			KasizukiManSelectCtrl.<SetUpManList>c__AnonStorey0 <SetUpManList>c__AnonStorey = new KasizukiManSelectCtrl.<SetUpManList>c__AnonStorey0();
+			<SetUpManList>c__AnonStorey.$this = this;
 			this.m_ManListCache = new ObjectCacheDic();
-			List<ManData.Data> dataArray = ManData.GetAllDatas(true, true);
+			<SetUpManList>c__AnonStorey.dataArray = ManData.GetAllDatas(true, true);
 			uGUIListViewer component = this.m_WindowManList.GetComponent<uGUIListViewer>();
-			component.Show<UIButton>(dataArray.Count, delegate(int index, UIButton button)
+			component.Show<UIButton>(<SetUpManList>c__AnonStorey.dataArray.Count, delegate(int index, UIButton button)
 			{
 				UILabel componentInChildren2 = button.GetComponentInChildren<UILabel>();
-				componentInChildren2.text = dataArray[index].drawName;
-				EventDelegate.Add(button.onClick, delegate
+				componentInChildren2.text = <SetUpManList>c__AnonStorey.dataArray[index].drawName;
+				EventDelegate.Add(button.onClick, delegate()
 				{
-					this.OnClickManListButton(dataArray[index].ID);
+					<SetUpManList>c__AnonStorey.OnClickManListButton(<SetUpManList>c__AnonStorey.dataArray[index].ID);
 				});
-				this.m_ManListCache.AddCache<UIButton>(dataArray[index].ID.ToString(), button);
+				<SetUpManList>c__AnonStorey.$this.m_ManListCache.AddCache<UIButton>(<SetUpManList>c__AnonStorey.dataArray[index].ID.ToString(), button);
 			});
 			UIGrid component2 = component.parentItemArea.GetComponent<UIGrid>();
 			if (component2)

+ 19 - 3
Assembly-CSharp/Kasizuki/KasizukiManager.cs

@@ -618,7 +618,23 @@ namespace Kasizuki
 			{
 				return this.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F本編, false);
 			}
-			if (dataType != ManDataType.傅き男1)
+			if (dataType == ManDataType.傅き男1)
+			{
+				return this.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男1, false);
+			}
+			if (dataType == ManDataType.傅き男2)
+			{
+				return this.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男2, false);
+			}
+			if (dataType == ManDataType.傅き男3)
+			{
+				return this.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男3, false);
+			}
+			if (dataType == ManDataType.傅き男4)
+			{
+				return this.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男4, false);
+			}
+			if (dataType != ManDataType.傅き男5)
 			{
 				NDebug.Assert("[KasizukiManager.GetMaidLikability] 男種類に不正な値が入りました", false);
 				Debug.LogErrorFormat("[KasizukiManager.GetMaidLikability] 男種類に不正な値が入りました\n男種類.{0}", new object[]
@@ -627,7 +643,7 @@ namespace Kasizuki
 				});
 				return -1;
 			}
-			return this.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男, false);
+			return this.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男, false);
 		}
 
 		public bool TryGetMaidData<T>(Maid maid, string valueName, out T value)
@@ -788,7 +804,7 @@ namespace Kasizuki
 		public void Serialize(BinaryWriter bw)
 		{
 			bw.Write("COM3D2_KASIZUKI");
-			bw.Write(1160);
+			bw.Write(1170);
 			this.SerializeOriginHeader(bw);
 			foreach (KeyValuePair<int, KasizukiManager.SaveData> keyValuePair in this.m_SaveDataArray)
 			{

+ 29 - 19
Assembly-CSharp/Kasizuki/KasizukiPlayInfoCtrl.cs

@@ -88,16 +88,19 @@ namespace Kasizuki
 
 		public void OpenRoomList(List<RoomData.Data> roomDataList, RoomData.Data selectingData = null)
 		{
+			KasizukiPlayInfoCtrl.<OpenRoomList>c__AnonStorey1 <OpenRoomList>c__AnonStorey = new KasizukiPlayInfoCtrl.<OpenRoomList>c__AnonStorey1();
+			<OpenRoomList>c__AnonStorey.selectingData = selectingData;
+			<OpenRoomList>c__AnonStorey.$this = this;
 			ListViewerWindow component = this.m_WindowRoomList.GetComponent<ListViewerWindow>();
 			component.Show<RoomData.Data, UIWFTabButton>(roomDataList, delegate(int index, RoomData.Data data, UIWFTabButton item)
 			{
 				UILabel componentInChildren = item.GetComponentInChildren<UILabel>();
 				componentInChildren.text = data.drawName;
-				EventDelegate.Add(item.onClick, delegate
+				EventDelegate.Add(item.onClick, delegate()
 				{
-					this.OnClickRoom(data);
+					<OpenRoomList>c__AnonStorey.OnClickRoom(data);
 				});
-				if (selectingData != null && selectingData == data)
+				if (<OpenRoomList>c__AnonStorey.selectingData != null && <OpenRoomList>c__AnonStorey.selectingData == data)
 				{
 					item.SetSelect(true);
 				}
@@ -119,22 +122,26 @@ namespace Kasizuki
 
 		public void OpenManList(List<ManData.Data> manDataList, ManData.Data selectingData = null, Action<UIWFTabButton, ManData.Data> onCreate = null)
 		{
+			KasizukiPlayInfoCtrl.<OpenManList>c__AnonStorey3 <OpenManList>c__AnonStorey = new KasizukiPlayInfoCtrl.<OpenManList>c__AnonStorey3();
+			<OpenManList>c__AnonStorey.selectingData = selectingData;
+			<OpenManList>c__AnonStorey.onCreate = onCreate;
+			<OpenManList>c__AnonStorey.$this = this;
 			ListViewerWindow component = this.m_WindowManList.GetComponent<ListViewerWindow>();
 			component.Show<ManData.Data, UIWFTabButton>(manDataList, delegate(int index, ManData.Data data, UIWFTabButton item)
 			{
 				UILabel componentInChildren = item.GetComponentInChildren<UILabel>();
 				componentInChildren.text = data.drawName;
-				EventDelegate.Add(item.onClick, delegate
+				EventDelegate.Add(item.onClick, delegate()
 				{
-					this.OnClickMan(data);
+					<OpenManList>c__AnonStorey.OnClickMan(data);
 				});
-				if (selectingData != null && selectingData == data)
+				if (<OpenManList>c__AnonStorey.selectingData != null && <OpenManList>c__AnonStorey.selectingData == data)
 				{
 					item.SetSelect(true);
 				}
-				if (onCreate != null)
+				if (<OpenManList>c__AnonStorey.onCreate != null)
 				{
-					onCreate(item, data);
+					<OpenManList>c__AnonStorey.onCreate(item, data);
 				}
 			});
 			UIWFTabPanel component2 = component.viewer.parentItemArea.GetComponent<UIWFTabPanel>();
@@ -154,32 +161,35 @@ namespace Kasizuki
 
 		public void OpenPlayList(List<PlayData.Data> playDataList, PlayData.Data selectingData = null)
 		{
+			KasizukiPlayInfoCtrl.<OpenPlayList>c__AnonStorey5 <OpenPlayList>c__AnonStorey = new KasizukiPlayInfoCtrl.<OpenPlayList>c__AnonStorey5();
+			<OpenPlayList>c__AnonStorey.selectingData = selectingData;
+			<OpenPlayList>c__AnonStorey.$this = this;
 			ListViewerWindow component = this.m_WindowPlayList.GetComponent<ListViewerWindow>();
 			component.Show<PlayData.Data, UIWFTabButton>(playDataList, delegate(int index, PlayData.Data data, UIWFTabButton item)
 			{
 				UILabel componentInChildren = item.GetComponentInChildren<UILabel>();
 				componentInChildren.text = data.drawName;
-				EventDelegate.Add(item.onClick, delegate
+				EventDelegate.Add(item.onClick, delegate()
 				{
-					this.OnClickPlay(data);
+					<OpenPlayList>c__AnonStorey.OnClickPlay(data);
 				});
-				EventDelegate.Add(item.GetComponent<UIEventTrigger>().onHoverOver, delegate
+				EventDelegate.Add(item.GetComponent<UIEventTrigger>().onHoverOver, delegate()
 				{
-					this.OnHoverPlay(data);
+					<OpenPlayList>c__AnonStorey.OnHoverPlay(data);
 				});
-				EventDelegate.Add(item.GetComponent<UIEventTrigger>().onHoverOut, delegate
+				EventDelegate.Add(item.GetComponent<UIEventTrigger>().onHoverOut, delegate()
 				{
-					this.OnOutPlay(data);
+					<OpenPlayList>c__AnonStorey.OnOutPlay(data);
 				});
-				EventDelegate.Add(item.transform.Find("hover event").GetComponent<UIEventTrigger>().onHoverOver, delegate
+				EventDelegate.Add(item.transform.Find("hover event").GetComponent<UIEventTrigger>().onHoverOver, delegate()
 				{
-					this.OnHoverPlay(data);
+					<OpenPlayList>c__AnonStorey.OnHoverPlay(data);
 				});
-				EventDelegate.Add(item.transform.Find("hover event").GetComponent<UIEventTrigger>().onHoverOut, delegate
+				EventDelegate.Add(item.transform.Find("hover event").GetComponent<UIEventTrigger>().onHoverOut, delegate()
 				{
-					this.OnOutPlay(data);
+					<OpenPlayList>c__AnonStorey.OnOutPlay(data);
 				});
-				if (selectingData != null && selectingData == data)
+				if (<OpenPlayList>c__AnonStorey.selectingData != null && <OpenPlayList>c__AnonStorey.selectingData == data)
 				{
 					item.SetSelect(true);
 				}

+ 6 - 6
Assembly-CSharp/Kasizuki/KasizukiSaveAndLoadCtrl.cs

@@ -26,7 +26,7 @@ namespace Kasizuki
 			this.m_CacheSaveObjects.CacheChildObject<Component>(base.gameObject, "TitleGroup/TitleSave", "SavePanel");
 			UIButton childObject = this.m_CacheSaveObjects.GetChildObject<UIButton>(base.gameObject, "DisplayButtonGroup/DisplayLoad");
 			this.m_CacheSaveObjects.AddCache<UIButton>("LoadButton", childObject);
-			EventDelegate.Add(childObject.onClick, delegate
+			EventDelegate.Add(childObject.onClick, delegate()
 			{
 				this.Open(SaveAndLoadMgr.ViewType.Load, true);
 			});
@@ -38,7 +38,7 @@ namespace Kasizuki
 			this.m_CacheLoadObjects.CacheChildObject<Component>(base.gameObject, "TitleGroup/TitleLoad", "LoadPanel");
 			UIButton childObject = this.m_CacheLoadObjects.GetChildObject<UIButton>(base.gameObject, "DisplayButtonGroup/DisplaySave");
 			this.m_CacheLoadObjects.AddCache<UIButton>("SaveButton", childObject);
-			EventDelegate.Add(childObject.onClick, delegate
+			EventDelegate.Add(childObject.onClick, delegate()
 			{
 				this.Open(SaveAndLoadMgr.ViewType.Save, true);
 			});
@@ -65,7 +65,7 @@ namespace Kasizuki
 				buttonPage.btnPageNo = button;
 				buttonPage.selectCursor = button.transform.Find("SelectCursor").gameObject;
 				this.m_PageButtonDic.Add(buttonPage.pageNo, buttonPage);
-				EventDelegate.Add(button.onClick, delegate
+				EventDelegate.Add(button.onClick, delegate()
 				{
 					this.OnClickPageButton(buttonPage.pageNo);
 				});
@@ -81,20 +81,20 @@ namespace Kasizuki
 				UIButton component = dataUnit.GetComponent<UIButton>();
 				if (index == 0)
 				{
-					EventDelegate.Add(component.onClick, delegate
+					EventDelegate.Add(component.onClick, delegate()
 					{
 						this.OnClickNewGameUnit(dataUnit);
 					});
 				}
 				else
 				{
-					EventDelegate.Add(component.onClick, delegate
+					EventDelegate.Add(component.onClick, delegate()
 					{
 						this.OnClickDataUnit(dataUnit);
 					});
 				}
 				UIInput inputComment = dataUnit.inputComment;
-				EventDelegate.Add(inputComment.onChange, delegate
+				EventDelegate.Add(inputComment.onChange, delegate()
 				{
 					this.OnChangeDataUnitComment(dataUnit);
 				});

+ 2 - 2
Assembly-CSharp/Kasizuki/MaidAppealComment.cs

@@ -13,7 +13,7 @@ namespace Kasizuki
 		{
 			if (this.m_ButtonRight != null)
 			{
-				EventDelegate.Add(this.m_ButtonRight.onClick, delegate
+				EventDelegate.Add(this.m_ButtonRight.onClick, delegate()
 				{
 					if (this.onClickRight != null)
 					{
@@ -23,7 +23,7 @@ namespace Kasizuki
 			}
 			if (this.m_ButtonLeft != null)
 			{
-				EventDelegate.Add(this.m_ButtonLeft.onClick, delegate
+				EventDelegate.Add(this.m_ButtonLeft.onClick, delegate()
 				{
 					if (this.onClickLeft != null)
 					{

+ 4 - 0
Assembly-CSharp/Kasizuki/MaidDataType.cs

@@ -7,6 +7,10 @@ namespace Kasizuki
 		[Obsolete("主人公に対する好感度を取得するとき、「好感度_本編」を使用してください", false)]
 		好感度\uFF3F主人公,
 		好感度\uFF3F傅き男1,
+		好感度\uFF3F傅き男2,
+		好感度\uFF3F傅き男3,
+		好感度\uFF3F傅き男4,
+		好感度\uFF3F傅き男5,
 		好感度\uFF3F本編,
 		仕事回数,
 		フリ\u30FCコメント,

+ 29 - 1
Assembly-CSharp/Kasizuki/MaidLikabilityCtrl.cs

@@ -53,7 +53,35 @@ namespace Kasizuki
 				ManDataType manType = data.manType;
 				if (manType != ManDataType.主人公)
 				{
-					if (manType == ManDataType.傅き男1)
+					if (manType != ManDataType.傅き男1)
+					{
+						if (manType != ManDataType.傅き男2)
+						{
+							if (manType != ManDataType.傅き男3)
+							{
+								if (manType != ManDataType.傅き男4)
+								{
+									if (manType == ManDataType.傅き男5)
+									{
+										num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男5, false);
+									}
+								}
+								else
+								{
+									num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男4, false);
+								}
+							}
+							else
+							{
+								num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男3, false);
+							}
+						}
+						else
+						{
+							num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男2, false);
+						}
+					}
+					else
 					{
 						num = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男1, false);
 					}

+ 2 - 2
Assembly-CSharp/Kasizuki/MaidMiniStatusCtrl.cs

@@ -24,12 +24,12 @@ namespace Kasizuki
 			base.CacheChildObject<UILabel>("WorkCount/Value", "WorkCount");
 			MaidAppealComment maidAppealComment = base.CacheChildObject<MaidAppealComment>("AppealComment", "Appeal");
 			MaidAppealComment maidAppealComment2 = maidAppealComment;
-			maidAppealComment2.onClickRight = (Action)Delegate.Combine(maidAppealComment2.onClickRight, new Action(delegate
+			maidAppealComment2.onClickRight = (Action)Delegate.Combine(maidAppealComment2.onClickRight, new Action(delegate()
 			{
 				this.ChangeMaidAppeal(1);
 			}));
 			MaidAppealComment maidAppealComment3 = maidAppealComment;
-			maidAppealComment3.onClickLeft = (Action)Delegate.Combine(maidAppealComment3.onClickLeft, new Action(delegate
+			maidAppealComment3.onClickLeft = (Action)Delegate.Combine(maidAppealComment3.onClickLeft, new Action(delegate()
 			{
 				this.ChangeMaidAppeal(-1);
 			}));

+ 15 - 0
Assembly-CSharp/Kasizuki/ManData.cs

@@ -84,6 +84,21 @@ namespace Kasizuki
 			return list;
 		}
 
+		public static List<ManData.Data> GetDatas(Func<ManData.Data, bool> customCheckFunction)
+		{
+			ManData.CreateData();
+			List<ManData.Data> list = new List<ManData.Data>();
+			foreach (KeyValuePair<int, KeyValuePair<string, string>> keyValuePair in ManData.commonIdManager.idMap)
+			{
+				ManData.Data data = ManData.basicDatas[keyValuePair.Key];
+				if (customCheckFunction(data))
+				{
+					list.Add(data);
+				}
+			}
+			return list;
+		}
+
 		public static void CreateData()
 		{
 			if (ManData.commonIdManager != null)

+ 5 - 1
Assembly-CSharp/Kasizuki/ManDataType.cs

@@ -5,6 +5,10 @@ namespace Kasizuki
 	public enum ManDataType
 	{
 		主人公 = 10,
-		傅き男1 = 20
+		傅き男1 = 20,
+		傅き男2 = 30,
+		傅き男3 = 40,
+		傅き男4 = 50,
+		傅き男5 = 60
 	}
 }

+ 3 - 3
Assembly-CSharp/Kasizuki/NGUIWindow.cs

@@ -24,7 +24,7 @@ namespace Kasizuki
 				this.OnOpen();
 			}
 			this.SetRaycastBlockerActive(true);
-			this.tweenAlpha.SetOnFinished(delegate
+			this.tweenAlpha.SetOnFinished(delegate()
 			{
 				if (callback != null)
 				{
@@ -41,7 +41,7 @@ namespace Kasizuki
 			{
 				return;
 			}
-			callback = (Action)Delegate.Combine(callback, new Action(delegate
+			callback = (Action)Delegate.Combine(callback, new Action(delegate()
 			{
 				this.gameObject.SetActive(false);
 				if (this.OnClose != null)
@@ -50,7 +50,7 @@ namespace Kasizuki
 				}
 			}));
 			this.SetRaycastBlockerActive(true);
-			this.tweenAlpha.SetOnFinished(delegate
+			this.tweenAlpha.SetOnFinished(delegate()
 			{
 				if (callback != null)
 				{

+ 38 - 6
Assembly-CSharp/Kasizuki/PlayData.cs

@@ -246,7 +246,7 @@ namespace Kasizuki
 						this.drawName = csv.GetCellAsString(cell_x++, i);
 						this.strDescription = csv.GetCellAsString(cell_x++, i);
 						List<string> list = new List<string>();
-						for (int j = 0; j < 5; j++)
+						for (int j = 0; j < 6; j++)
 						{
 							string cellAsString2 = csv.GetCellAsString(cell_x++, i);
 							if (!string.IsNullOrEmpty(cellAsString2))
@@ -305,12 +305,26 @@ namespace Kasizuki
 							','
 						}));
 						this.roomID = RoomData.GetData(cellAsString).ID;
+						string cellAsString8 = csv.GetCellAsString(cell_x++, i);
+						string[] array3 = null;
+						if (!string.IsNullOrEmpty(cellAsString8))
+						{
+							array3 = cellAsString8.Split(new char[]
+							{
+								','
+							});
+							for (int m = 0; m < array3.Length; m++)
+							{
+								array3[m] = array3[m].Trim();
+							}
+						}
+						this.strEnablePersonalArray = array3;
 						Dictionary<ManDataType, bool> dictionary = new Dictionary<ManDataType, bool>();
 						int num = Enum.GetNames(typeof(ManDataType)).Length;
-						for (int m = 0; m < num; m++)
+						for (int n = 0; n < num; n++)
 						{
-							string cellAsString8 = csv.GetCellAsString(cell_x, 0);
-							ManDataType manType = ManData.GetData(cellAsString8).manType;
+							string cellAsString9 = csv.GetCellAsString(cell_x, 0);
+							ManDataType manType = ManData.GetData(cellAsString9).manType;
 							dictionary.Add(manType, csv.GetCellAsString(cell_x++, i) == "○");
 						}
 						this.enableManTypeDic = new ReadOnlyDictionary<ManDataType, bool>(dictionary);
@@ -342,7 +356,7 @@ namespace Kasizuki
 
 			public bool IsCorrectMaid(Maid maid, ManDataType manType)
 			{
-				return this.IsCorrectLikability(maid, manType) && this.IsCorrectWorkCount(maid) && this.IsCorrectParameter(maid) && this.IsCorrectSkill(maid) && this.IsCorrectSeikeiken(maid) && this.IsCorrectRelation(maid);
+				return this.IsCorrectLikability(maid, manType) && this.IsCorrectWorkCount(maid) && this.IsCorrectParameter(maid) && this.IsCorrectSkill(maid) && this.IsCorrectSeikeiken(maid) && this.IsCorrectRelation(maid) && this.IsCorrectPersonal(maid);
 			}
 
 			public bool IsCorrectParameter(Maid maid)
@@ -428,6 +442,22 @@ namespace Kasizuki
 				return this.relationEnableDic.ContainsKey(relation);
 			}
 
+			public bool IsCorrectPersonal(Maid maid)
+			{
+				if (this.strEnablePersonalArray == null || this.strEnablePersonalArray.Length <= 0)
+				{
+					return true;
+				}
+				for (int i = 0; i < this.strEnablePersonalArray.Length; i++)
+				{
+					if (maid.status.personal.uniqueName == this.strEnablePersonalArray[i])
+					{
+						return true;
+					}
+				}
+				return false;
+			}
+
 			public List<Maid> GetFilteringPlayDataMaidArray(ManDataType manType)
 			{
 				CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
@@ -476,7 +506,7 @@ namespace Kasizuki
 				}
 			}
 
-			private const int CONDITION_COUNT = 5;
+			private const int CONDITION_COUNT = 6;
 
 			public readonly int ID;
 
@@ -502,6 +532,8 @@ namespace Kasizuki
 
 			public readonly Dictionary<Relation, bool> relationEnableDic;
 
+			public readonly string[] strEnablePersonalArray;
+
 			public readonly ReadOnlyDictionary<ManDataType, bool> enableManTypeDic;
 		}
 	}

+ 3 - 0
Assembly-CSharp/Leap/Unity/IHandModel.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Diagnostics;
 using UnityEngine;
 
 namespace Leap.Unity
@@ -6,8 +7,10 @@ namespace Leap.Unity
 	[ExecuteInEditMode]
 	public abstract class IHandModel : MonoBehaviour
 	{
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event Action OnBegin;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event Action OnFinish;
 
 		public bool IsTracked

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

@@ -127,8 +127,8 @@ namespace Leap.Unity
 			yield return new WaitForSeconds(2f);
 			this._provider.GetLeapController().Config.Get<int>("images_mode", delegate(int enabled)
 			{
-				this.$this.imagesEnabled = (enabled != 0);
-				this.$this.checkingImageState = false;
+				this.imagesEnabled = (enabled != 0);
+				this.checkingImageState = false;
 			});
 			yield break;
 		}
@@ -136,7 +136,7 @@ namespace Leap.Unity
 		private void onController(Controller controller)
 		{
 			controller.DistortionChange += new EventHandler<DistortionEventArgs>(this.onDistortionChange);
-			controller.Connect += delegate
+			controller.Connect += delegate(object A_1, ConnectionEventArgs A_2)
 			{
 				this._provider.GetLeapController().Config.Get<int>("images_mode", delegate(int enabled)
 				{

+ 3 - 0
Assembly-CSharp/Leap/Unity/LeapProvider.cs

@@ -1,12 +1,15 @@
 using System;
+using System.Diagnostics;
 using UnityEngine;
 
 namespace Leap.Unity
 {
 	public abstract class LeapProvider : MonoBehaviour
 	{
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event Action<Frame> OnUpdateFrame;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event Action<Frame> OnFixedFrame;
 
 		public abstract Frame CurrentFrame { get; }

+ 4 - 0
Assembly-CSharp/Leap/Unity/LeapVRCameraControl.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Diagnostics;
 using UnityEngine;
 using UnityEngine.Rendering;
 
@@ -8,10 +9,13 @@ namespace Leap.Unity
 	[ExecuteInEditMode]
 	public class LeapVRCameraControl : MonoBehaviour
 	{
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public static event Action<LeapVRCameraControl.CameraParams> OnValidCameraParams;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public static event Action<Camera> OnLeftPreRender;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public static event Action<Camera> OnRightPreRender;
 
 		public bool OverrideEyePosition

+ 4 - 2
Assembly-CSharp/Leap/Unity/RuntimeGizmos/RuntimeGizmoManager.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using UnityEngine;
 using UnityEngine.SceneManagement;
 
@@ -8,6 +9,7 @@ namespace Leap.Unity.RuntimeGizmos
 	[ExecuteInEditMode]
 	public class RuntimeGizmoManager : MonoBehaviour
 	{
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public static event Action<RuntimeGizmoDrawer> OnPostRenderGizmos;
 
 		public static bool TryGetGizmoDrawer(out RuntimeGizmoDrawer drawer)
@@ -43,7 +45,7 @@ namespace Leap.Unity.RuntimeGizmos
 				hideFlags = HideFlags.HideAndDontSave
 			}.passCount != 4)
 			{
-				Debug.LogError("Shader " + this._gizmoShader + " does not have 4 passes and cannot be used as a gizmo shader.");
+				UnityEngine.Debug.LogError("Shader " + this._gizmoShader + " does not have 4 passes and cannot be used as a gizmo shader.");
 				this._gizmoShader = Shader.Find("Hidden/Runtime Gizmos");
 			}
 			if (this._sphereMesh == null)
@@ -109,7 +111,7 @@ namespace Leap.Unity.RuntimeGizmos
 						}
 						catch (Exception exception)
 						{
-							Debug.LogException(exception);
+							UnityEngine.Debug.LogException(exception);
 						}
 					}
 				}

+ 1 - 1
Assembly-CSharp/LightWindow.cs

@@ -380,7 +380,7 @@ public class LightWindow : BaseMaidPhotoWindow
 		gameObject.name = target.guid.ToString();
 		gameObject.GetComponentInChildren<UILabel>().text = target.draw_name;
 		UIWFTabButton componentInChildren = gameObject.GetComponentInChildren<UIWFTabButton>();
-		EventDelegate.Add(componentInChildren.onSelect, delegate
+		EventDelegate.Add(componentInChildren.onSelect, delegate()
 		{
 			if (!UIWFSelectButton.current.isSelected)
 			{

+ 4 - 4
Assembly-CSharp/LimbControl.cs

@@ -213,7 +213,7 @@ public class LimbControl : MonoBehaviour
 					this.joint_drag_point_.axis_obj.transform.localScale = new Vector3(0.03f, 0.03f, 0.03f);
 				}
 			}
-			this.joint_drag_point_.drag_start_event = delegate
+			this.joint_drag_point_.drag_start_event = delegate()
 			{
 				this.ik_fabrik_.solver.SetChain(new Transform[0], root_trans);
 				this.ik_fabrik_.solver.SetChain(new Transform[]
@@ -223,7 +223,7 @@ public class LimbControl : MonoBehaviour
 				}, root_trans);
 				this.ik_fabrik_.solver.target = this.joint_drag_point_.transform;
 			};
-			this.joint_drag_point_.drag_end_event = delegate
+			this.joint_drag_point_.drag_end_event = delegate()
 			{
 				this.ik_fabrik_.solver.SetChain(new Transform[0], root_trans);
 				this.ik_mgr_.HistoryPush();
@@ -241,7 +241,7 @@ public class LimbControl : MonoBehaviour
 				this.tip_drag_point_.axis_obj.transform.localScale = new Vector3(0.03f, 0.03f, 0.03f);
 			}
 		}
-		this.tip_drag_point_.drag_start_event = delegate
+		this.tip_drag_point_.drag_start_event = delegate()
 		{
 			if (this.bone_joint_point_ != null)
 			{
@@ -275,7 +275,7 @@ public class LimbControl : MonoBehaviour
 			}
 			this.ik_fabrik_.solver.target = this.tip_drag_point_.transform;
 		};
-		this.tip_drag_point_.drag_end_event = delegate
+		this.tip_drag_point_.drag_end_event = delegate()
 		{
 			this.ik_fabrik_.solver.SetChain(new Transform[0], root_trans);
 			this.ik_mgr_.HistoryPush();

+ 79 - 115
Assembly-CSharp/Maid.cs

@@ -5,6 +5,7 @@ using System.IO;
 using System.Linq;
 using MaidStatus;
 using UnityEngine;
+using XVI.AniLipSync;
 
 public class Maid : MonoBehaviour
 {
@@ -62,6 +63,14 @@ public class Maid : MonoBehaviour
 		}
 	}
 
+	public FullBodyIKCtrl IKCtrl
+	{
+		get
+		{
+			return this.body0.IKCtrl;
+		}
+	}
+
 	public int ActiveSlotNo
 	{
 		get
@@ -1205,7 +1214,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeProp(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MPROP_LIST");
-		f_bwWrite.Write(1160);
+		f_bwWrite.Write(1170);
 		f_bwWrite.Write(this.m_dicMaidProp.Count);
 		foreach (KeyValuePair<string, MaidProp> keyValuePair in this.m_dicMaidProp)
 		{
@@ -1237,7 +1246,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeMisc(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MAID_MISC");
-		f_bwWrite.Write(1160);
+		f_bwWrite.Write(1170);
 		f_bwWrite.Write(this.m_nActiveSlotNo);
 		if (this.m_texIcon != null)
 		{
@@ -1262,7 +1271,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeBody(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MAID_BODY");
-		f_bwWrite.Write(1160);
+		f_bwWrite.Write(1170);
 		return true;
 	}
 
@@ -1877,8 +1886,8 @@ public class Maid : MonoBehaviour
 			{
 				this.body0.MuneYureL(1f);
 				this.body0.MuneYureR(1f);
-				this.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-				this.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+				this.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+				this.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 			}
 		}
 	}
@@ -1914,7 +1923,7 @@ public class Maid : MonoBehaviour
 		{
 			if (!this.MicLipData.Context)
 			{
-				this.MicLipData.Context = this.AudioMan.gameObject.AddComponent<OVRLipSyncContext>();
+				this.MicLipData.Context = this.AudioMan.gameObject.AddComponent<LowLatencyLipSyncContext>();
 			}
 			if (!this.MicLipData.MorphTarget)
 			{
@@ -1956,148 +1965,103 @@ public class Maid : MonoBehaviour
 		this.m_bFoceKuchipakuSelfUpdateTime = false;
 	}
 
-	private float AngleRimmit(float orijin_angle)
+	public void IKTargetToAttachPoint(string tag, Maid tgt_maid, string tgt_name, string attachpoint_name, Vector3 f_vecOffset, IKCtrlData.IKAttachType attach_type = IKCtrlData.IKAttachType.Point, string axisbone = "", float blend_time = 0f, bool do_animation = false, bool is_next = false)
 	{
-		if (Mathf.Abs(orijin_angle) > 360f)
+		IKCtrlData ikdata = this.body0.IKCtrl.GetIKData(tag);
+		Transform axis_bone = null;
+		if (attach_type != IKCtrlData.IKAttachType.Rotate && !string.IsNullOrEmpty(axisbone))
 		{
-			if (orijin_angle < 0f)
-			{
-				orijin_angle += 360f;
-			}
-			else
-			{
-				orijin_angle -= 360f;
-			}
+			axis_bone = CMT.SearchObjName(tgt_maid.body0.m_trBones, axisbone, true);
 		}
-		return orijin_angle;
+		ikdata.SetIKSetting(attach_type, is_next, tgt_maid, this.body0.GetSlotNo(tgt_name), attachpoint_name, axis_bone, f_vecOffset, do_animation, blend_time);
 	}
 
-	public void IKTargetToAttachPoint(string strMyHand, Maid f_maidTarget, string f_strTargetSlotName, string f_strTargetAttachPointName, Vector3 f_vecOffset, IKMgrData.IKAttachType attach_type = IKMgrData.IKAttachType.Point, string axisbone = "")
+	public void IKTargetToBone(string tag, Maid tgt_maid, string tgtbone_name, Vector3 f_vecOffset, IKCtrlData.IKAttachType attach_type = IKCtrlData.IKAttachType.Point, bool search_sm = false, float blend_time = 0f, bool do_animation = false, bool is_next = false)
 	{
-		IKMgrData.IKParam ikparam = this.body0.StrIKDataPair[strMyHand].GetIKParam(attach_type);
-		ikparam.ChangePointType(attach_type);
-		if (ikparam.MyType != attach_type)
+		IKCtrlData ikdata = this.IKCtrl.GetIKData(tag);
+		if (tgtbone_name != "無し")
 		{
-			return;
-		}
-		ikparam.TgtMaid = f_maidTarget;
-		ikparam.Tgt_AttachSlot = this.body0.GetSlotNo(f_strTargetSlotName);
-		ikparam.Tgt_AttachName = f_strTargetAttachPointName;
-		ikparam.Target = null;
-		ikparam.AxisTgt = null;
-		if (ikparam.IsPointAttach)
-		{
-			ikparam.TgtOffset = f_vecOffset;
-			if (!string.IsNullOrEmpty(axisbone))
+			Transform target;
+			if (!search_sm)
 			{
-				ikparam.AxisTgt = CMT.SearchObjName(f_maidTarget.body0.m_trBones, axisbone, true);
+				target = CMT.SearchObjName(tgt_maid.body0.m_trBones, tgtbone_name, true);
 			}
+			else
+			{
+				target = CMT.SearchObjName(tgt_maid.body0.SmBody, tgtbone_name, false);
+			}
+			ikdata.SetIKSetting(attach_type, is_next, tgt_maid, target, f_vecOffset, do_animation, blend_time);
 		}
 		else
 		{
-			ikparam.TgtOffset.x = this.AngleRimmit(f_vecOffset.x);
-			ikparam.TgtOffset.y = this.AngleRimmit(f_vecOffset.y);
-			ikparam.TgtOffset.z = this.AngleRimmit(f_vecOffset.z);
+			ikdata.Detach(IKCtrlData.IKAttachType.NewPoint, blend_time);
+			ikdata.Detach(IKCtrlData.IKAttachType.Rotate, blend_time);
 		}
 	}
 
-	public void IKTargetToBone(string strMyHand, Maid f_maidTarget, string f_strTargetBoneName, Vector3 f_vecOffset, IKMgrData.IKAttachType attach_type = IKMgrData.IKAttachType.Point, bool search_sm = false)
+	public void IKTargetToOdogu(string tag, string odogu_name, string tgt_name, Vector3 f_vecOffset, IKCtrlData.IKAttachType attach_type = IKCtrlData.IKAttachType.Point, float blend_time = 0f, bool do_animation = false, bool is_next = false)
 	{
-		Transform target = null;
-		if (f_strTargetBoneName != "無し")
+		Transform transform = null;
+		GameObject prefabFromBg = GameMain.Instance.BgMgr.GetPrefabFromBg(odogu_name);
+		if (!prefabFromBg)
 		{
-			if (!search_sm)
-			{
-				target = CMT.SearchObjName(f_maidTarget.body0.m_trBones, f_strTargetBoneName, true);
-			}
-			else
+			Debug.LogErrorFormat("現在の背景に大道具「{0}」は存在しません", new object[]
 			{
-				target = CMT.SearchObjName(f_maidTarget.body0.SmBody, f_strTargetBoneName, false);
-			}
-		}
-		else if (attach_type == IKMgrData.IKAttachType.Point)
-		{
-			this.IKTargetToBone(strMyHand, f_maidTarget, f_strTargetBoneName, f_vecOffset, IKMgrData.IKAttachType.Rotate, false);
+				odogu_name
+			});
 		}
-		IKMgrData.IKParam ikparam = this.body0.StrIKDataPair[strMyHand].GetIKParam(attach_type);
-		ikparam.ChangePointType(attach_type);
-		if (ikparam.MyType != attach_type)
+		else if (prefabFromBg.transform.childCount == 0 || string.IsNullOrEmpty(tgt_name))
 		{
-			return;
-		}
-		ikparam.TgtMaid = f_maidTarget;
-		ikparam.Tgt_AttachSlot = -1;
-		ikparam.Tgt_AttachName = string.Empty;
-		ikparam.Target = target;
-		if (ikparam.IsPointAttach)
-		{
-			ikparam.TgtOffset = f_vecOffset;
+			transform = prefabFromBg.transform;
 		}
 		else
 		{
-			ikparam.TgtOffset.x = this.AngleRimmit(f_vecOffset.x);
-			ikparam.TgtOffset.y = this.AngleRimmit(f_vecOffset.y);
-			ikparam.TgtOffset.z = this.AngleRimmit(f_vecOffset.z);
-		}
-	}
-
-	public void IKTargetToOdogu(string strMyHand, string odogu_name, string tgt_name, Vector3 f_vecOffset, IKMgrData.IKAttachType attach_type = IKMgrData.IKAttachType.Point)
-	{
-		Transform transform = null;
-		if (tgt_name != "無し")
-		{
-			GameObject prefabFromBg = GameMain.Instance.BgMgr.GetPrefabFromBg(odogu_name);
-			if (!prefabFromBg)
+			for (int i = 0; i < prefabFromBg.transform.childCount; i++)
 			{
-				Debug.LogErrorFormat("現在の背景に大道具「{0}」は存在しません", new object[]
+				Transform child = prefabFromBg.transform.GetChild(i);
+				if (child && !(child.name != tgt_name))
 				{
-					odogu_name
-				});
-			}
-			else if (prefabFromBg.transform.childCount == 0 || string.IsNullOrEmpty(tgt_name))
-			{
-				transform = prefabFromBg.transform;
+					transform = prefabFromBg.transform.GetChild(i);
+					break;
+				}
 			}
-			else
+			if (!transform)
 			{
-				for (int i = 0; i < prefabFromBg.transform.childCount; i++)
-				{
-					Transform child = prefabFromBg.transform.GetChild(i);
-					if (child && !(child.name != tgt_name))
-					{
-						transform = prefabFromBg.transform.GetChild(i);
-						break;
-					}
-				}
-				if (!transform)
+				Debug.LogErrorFormat("大道具「{0}」にターゲット「{1}」は存在しません", new object[]
 				{
-					Debug.LogErrorFormat("大道具「{0}」にターゲット「{1}」は存在しません", new object[]
-					{
-						odogu_name,
-						tgt_name
-					});
-				}
+					odogu_name,
+					tgt_name
+				});
 			}
 		}
-		IKMgrData.IKParam ikparam = this.body0.StrIKDataPair[strMyHand].GetIKParam(attach_type);
-		ikparam.ChangePointType(attach_type);
-		if (ikparam.MyType != attach_type)
+		IKCtrlData ikdata = this.IKCtrl.GetIKData(tag);
+		ikdata.SetIKSetting(attach_type, is_next, transform, f_vecOffset, do_animation, blend_time);
+	}
+
+	public void IKTargetToIKBone(string my_tag, Maid f_maidTarget, string bone_name, Vector3 f_vecOffset, IKCtrlData.IKAttachType attach_type = IKCtrlData.IKAttachType.Point, float blend_time = 0f, bool do_animation = false, bool is_next = false)
+	{
+		IKCtrlData ikdata = f_maidTarget.IKCtrl.GetIKData(bone_name);
+		if (!ikdata)
 		{
 			return;
 		}
-		ikparam.TgtMaid = null;
-		ikparam.Tgt_AttachSlot = -1;
-		ikparam.Tgt_AttachName = string.Empty;
-		ikparam.Target = transform;
-		if (ikparam.IsPointAttach)
-		{
-			ikparam.TgtOffset = f_vecOffset;
-		}
-		else
+		Transform targetBone = ikdata.TargetBone;
+		IKCtrlData ikdata2 = this.IKCtrl.GetIKData(my_tag);
+		ikdata2.SetIKSetting(attach_type, is_next, f_maidTarget, bone_name, targetBone, f_vecOffset, do_animation, blend_time);
+	}
+
+	public void IKDetach(string name, float blendtime = 0f)
+	{
+		this.IKTargetToBone(name, null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, blendtime, false, false);
+	}
+
+	public void IKDetach(float blendtime = 0f)
+	{
+		this.IKCtrl.IKActive = (blendtime > 0f);
+		this.IKCtrl.AllForceIK = false;
+		foreach (string tag in this.IKCtrl.strIKDataPair.Keys)
 		{
-			ikparam.TgtOffset.x = this.AngleRimmit(f_vecOffset.x);
-			ikparam.TgtOffset.y = this.AngleRimmit(f_vecOffset.y);
-			ikparam.TgtOffset.z = this.AngleRimmit(f_vecOffset.z);
+			this.IKTargetToBone(tag, null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, blendtime, false, false);
 		}
 	}
 
@@ -2920,7 +2884,7 @@ public class Maid : MonoBehaviour
 		[HideInInspector]
 		public bool IsInit = true;
 
-		public OVRLipSyncContext Context;
+		public LowLatencyLipSyncContext Context;
 
 		public OVRLipSyncContextMorphTarget MorphTarget;
 

+ 1 - 1
Assembly-CSharp/MaidParts.cs

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

+ 6 - 0
Assembly-CSharp/MaidPlate.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 using wf;
@@ -141,6 +142,11 @@ public class MaidPlate : MonoBehaviour
 		if (status.heroineType != HeroineType.Sub)
 		{
 			this.left_plate_.contract_type_label.text = EnumConvert.GetString(status.contract);
+			Localize component = this.left_plate_.contract_type_label.GetComponent<Localize>();
+			if (component != null)
+			{
+				component.SetTerm(EnumConvert.GetTerm(status.contract));
+			}
 		}
 		else
 		{

+ 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(1160);
+		f_bwWrite.Write(1170);
 		f_bwWrite.Write(this.idx);
 		f_bwWrite.Write(this.name);
 		f_bwWrite.Write(this.type);

+ 10 - 0
Assembly-CSharp/MaidStatus/CsvData/AbstractClassData.cs

@@ -139,6 +139,16 @@ namespace MaidStatus.CsvData
 
 		public AbstractClassData.ClassType classType { get; private set; }
 
+		protected abstract string termCategoryName { get; }
+
+		public string termName
+		{
+			get
+			{
+				return "MaidStatus/" + this.termCategoryName + "/" + this.uniqueName;
+			}
+		}
+
 		public readonly int id;
 
 		public readonly string uniqueName;

+ 15 - 0
Assembly-CSharp/MaidStatus/EnumConvert.cs

@@ -5,6 +5,21 @@ namespace MaidStatus
 {
 	public static class EnumConvert
 	{
+		public static string GetTerm(Contract contract)
+		{
+			return "MaidStatus/契約タイプ/" + EnumConvert.GetString(contract);
+		}
+
+		public static string GetTerm(Seikeiken seikeiken)
+		{
+			return "MaidStatus/性経験タイプ/" + EnumConvert.GetString(seikeiken);
+		}
+
+		public static string GetTerm(Relation relation)
+		{
+			return "MaidStatus/関係タイプ/" + EnumConvert.GetString(relation);
+		}
+
 		public static string GetString(HeroineType heroineType)
 		{
 			string result = string.Empty;

+ 10 - 0
Assembly-CSharp/MaidStatus/Feature.cs

@@ -115,6 +115,8 @@ namespace MaidStatus
 
 		private const string typeNameForErrorLog = "特徴";
 
+		public const string termRootText = "MaidStatus/性癖タイプ/";
+
 		private static CsvCommonIdManager commonIdManager;
 
 		private static Dictionary<int, Feature.Data> basicDatas;
@@ -146,6 +148,14 @@ namespace MaidStatus
 				}
 			}
 
+			public string termName
+			{
+				get
+				{
+					return "MaidStatus/性癖タイプ/" + this.uniqueName;
+				}
+			}
+
 			public readonly int id;
 
 			public readonly string uniqueName;

+ 8 - 0
Assembly-CSharp/MaidStatus/JobClass.cs

@@ -223,6 +223,14 @@ namespace MaidStatus
 			public Data(string uniqueName, string drawName, CsvParser infoCsv, CsvParser acquiredConditionCsv, CsvParser bonusCsv, CsvParser experienceCsv) : base(uniqueName, drawName, infoCsv, acquiredConditionCsv, bonusCsv, experienceCsv)
 			{
 			}
+
+			protected override string termCategoryName
+			{
+				get
+				{
+					return "ジョブクラス";
+				}
+			}
 		}
 	}
 }

+ 10 - 0
Assembly-CSharp/MaidStatus/Personal.cs

@@ -116,6 +116,8 @@ namespace MaidStatus
 
 		private const string typeNameForErrorLog = "性格";
 
+		public const string termRootText = "MaidStatus/性格タイプ/";
+
 		private static CsvCommonIdManager commonIdManager;
 
 		private static Dictionary<int, Personal.Data> basicDatas;
@@ -206,6 +208,14 @@ namespace MaidStatus
 				}
 			}
 
+			public string termName
+			{
+				get
+				{
+					return "MaidStatus/性格タイプ/" + this.uniqueName;
+				}
+			}
+
 			public readonly int id;
 
 			public readonly string uniqueName;

+ 10 - 0
Assembly-CSharp/MaidStatus/Propensity.cs

@@ -115,6 +115,8 @@ namespace MaidStatus
 
 		private const string typeNameForErrorLog = "性癖";
 
+		public const string termRootText = "MaidStatus/性癖タイプ/";
+
 		private static CsvCommonIdManager commonIdManager;
 
 		private static Dictionary<int, Propensity.Data> basicDatas;
@@ -146,6 +148,14 @@ namespace MaidStatus
 				}
 			}
 
+			public string termName
+			{
+				get
+				{
+					return "MaidStatus/性癖タイプ/" + this.uniqueName;
+				}
+			}
+
 			public readonly int id;
 
 			public readonly string uniqueName;

+ 9 - 1
Assembly-CSharp/MaidStatus/Status.cs

@@ -188,6 +188,14 @@ namespace MaidStatus
 			}
 		}
 
+		public string conditionTermText
+		{
+			get
+			{
+				return "MaidStatus/ステータス称号/" + this.conditionText;
+			}
+		}
+
 		public int playCountYotogi
 		{
 			get
@@ -1207,7 +1215,7 @@ namespace MaidStatus
 		public void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_MAID_STATUS");
-			binary.Write(1160);
+			binary.Write(1170);
 			binary.Write(this.guid);
 			binary.Write(this.creationTime);
 			binary.Write((short)this.heroineType);

+ 8 - 0
Assembly-CSharp/MaidStatus/YotogiClass.cs

@@ -392,6 +392,14 @@ namespace MaidStatus
 			public Data(string uniqueName, string drawName, CsvParser infoCsv, CsvParser acquiredConditionCsv, CsvParser bonusCsv, CsvParser experienceCsv) : base(uniqueName, drawName, infoCsv, acquiredConditionCsv, bonusCsv, experienceCsv)
 			{
 			}
+
+			protected override string termCategoryName
+			{
+				get
+				{
+					return "夜伽クラス";
+				}
+			}
 		}
 	}
 }

+ 6 - 1
Assembly-CSharp/MaidTouch.cs

@@ -11,7 +11,10 @@ public class MaidTouch : MonoBehaviour
 		"胸",
 		"クリトリス",
 		"尻穴",
-		"尻"
+		"尻",
+		string.Empty,
+		"操作胸",
+		"操作クリトリス"
 	};
 
 	public static readonly Vector3[] touchPointRotationArray = new Vector3[]
@@ -55,6 +58,8 @@ public class MaidTouch : MonoBehaviour
 		尻穴,
 		尻,
 		発情,
+		操作胸,
+		操作クリトリス,
 		MAX
 	}
 

+ 1 - 1
Assembly-CSharp/MaidTransferMain.cs

@@ -107,7 +107,7 @@ public class MaidTransferMain : WfFadeBehaviour
 		this.charaSelectMgr.SetCallBackMaidList(delegate(List<Maid> draw_list)
 		{
 			draw_list.Clear();
-			foreach (Maid item in this.$this.transferPossibleMaidList)
+			foreach (Maid item in this.transferPossibleMaidList)
 			{
 				draw_list.Add(item);
 			}

+ 20 - 18
Assembly-CSharp/MainBusinessWindow.cs

@@ -48,31 +48,33 @@ public class MainBusinessWindow : MonoBehaviour
 
 	public void OpenBusinessWindow()
 	{
+		MainBusinessWindow.<OpenBusinessWindow>c__AnonStorey0 <OpenBusinessWindow>c__AnonStorey = new MainBusinessWindow.<OpenBusinessWindow>c__AnonStorey0();
+		<OpenBusinessWindow>c__AnonStorey.$this = this;
 		this.UGUICanvas.interactable = false;
 		this.UGUICanvas.blocksRaycasts = true;
 		this.UGUICanvas.FadeIn(0.5f, delegate
 		{
-			this.UGUICanvas.interactable = true;
+			<OpenBusinessWindow>c__AnonStorey.$this.UGUICanvas.interactable = true;
 		});
 		this.m_LastSelectToggle = null;
-		int nowBusinessTypeID = GameMain.Instance.FacilityMgr.NextDayBusinessTypeID;
-		if (!FacilityDataTable.IsExistFacilityBusinessTypeData(nowBusinessTypeID))
+		<OpenBusinessWindow>c__AnonStorey.nowBusinessTypeID = GameMain.Instance.FacilityMgr.NextDayBusinessTypeID;
+		if (!FacilityDataTable.IsExistFacilityBusinessTypeData(<OpenBusinessWindow>c__AnonStorey.nowBusinessTypeID))
 		{
-			nowBusinessTypeID = GameMain.Instance.FacilityMgr.NowBusinessTypeID;
+			<OpenBusinessWindow>c__AnonStorey.nowBusinessTypeID = GameMain.Instance.FacilityMgr.NowBusinessTypeID;
 		}
-		this.m_NowSelectingBusinessTypeID = nowBusinessTypeID;
-		this.m_BeforeSelectingBusinessTypeID = nowBusinessTypeID;
-		FacilityDataTable.BusinessTypeData[] businessTypeDataArray = FacilityDataTable.GetFacilityBusinessTypeDataArray(true);
-		this.m_UIListBanner.Show<Toggle>(businessTypeDataArray.Length, delegate(int index, Toggle toggle)
+		this.m_NowSelectingBusinessTypeID = <OpenBusinessWindow>c__AnonStorey.nowBusinessTypeID;
+		this.m_BeforeSelectingBusinessTypeID = <OpenBusinessWindow>c__AnonStorey.nowBusinessTypeID;
+		<OpenBusinessWindow>c__AnonStorey.businessTypeDataArray = FacilityDataTable.GetFacilityBusinessTypeDataArray(true);
+		this.m_UIListBanner.Show<Toggle>(<OpenBusinessWindow>c__AnonStorey.businessTypeDataArray.Length, delegate(int index, Toggle toggle)
 		{
-			FacilityDataTable.BusinessTypeData data = businessTypeDataArray[index];
-			if (data.ID == nowBusinessTypeID)
+			FacilityDataTable.BusinessTypeData data = <OpenBusinessWindow>c__AnonStorey.businessTypeDataArray[index];
+			if (data.ID == <OpenBusinessWindow>c__AnonStorey.nowBusinessTypeID)
 			{
 				toggle.isOn = true;
 			}
 			if (toggle.image)
 			{
-				Sprite spriteInAtlas = this.GetSpriteInAtlas(this.m_UIAtlasBusinessBannger, "main_banner_dammy");
+				Sprite spriteInAtlas = <OpenBusinessWindow>c__AnonStorey.$this.GetSpriteInAtlas(<OpenBusinessWindow>c__AnonStorey.$this.m_UIAtlasBusinessBannger, "main_banner_dammy");
 				if (spriteInAtlas != null)
 				{
 					toggle.image.sprite = spriteInAtlas;
@@ -84,18 +86,18 @@ public class MainBusinessWindow : MonoBehaviour
 				{
 					return;
 				}
-				this.OnClickBusinessBanner(toggle, data.ID);
+				<OpenBusinessWindow>c__AnonStorey.OnClickBusinessBanner(toggle, data.ID);
 			});
 			MainBusinessWindow.BannerEnterHandler component = toggle.GetComponent<MainBusinessWindow.BannerEnterHandler>();
-			component.onPointerEnter = delegate
+			component.onPointerEnter = delegate()
 			{
-				this.UpdateBusinessTypeDescription(data.ID);
-				this.UpdateBusinessTypeConditions(data.ID);
+				<OpenBusinessWindow>c__AnonStorey.UpdateBusinessTypeDescription(data.ID);
+				<OpenBusinessWindow>c__AnonStorey.UpdateBusinessTypeConditions(data.ID);
 			};
-			component.onPointerExit = delegate
+			component.onPointerExit = delegate()
 			{
-				this.UpdateBusinessTypeDescription(this.m_NowSelectingBusinessTypeID);
-				this.UpdateBusinessTypeConditions(this.m_NowSelectingBusinessTypeID);
+				<OpenBusinessWindow>c__AnonStorey.UpdateBusinessTypeDescription(<OpenBusinessWindow>c__AnonStorey.m_NowSelectingBusinessTypeID);
+				<OpenBusinessWindow>c__AnonStorey.UpdateBusinessTypeConditions(<OpenBusinessWindow>c__AnonStorey.m_NowSelectingBusinessTypeID);
 			};
 		});
 		this.UpdateBusinessTypeDescription(this.m_NowSelectingBusinessTypeID);

+ 2 - 2
Assembly-CSharp/Menu.cs

@@ -753,7 +753,7 @@ public class Menu : MonoBehaviour
 			Directory.CreateDirectory(text);
 		}
 		StreamWriter streamWriter = new StreamWriter(text + "\\" + text2 + ".txt", false, Encoding.UTF8);
-		streamWriter.WriteLine("出力バージョン\t" + 1160);
+		streamWriter.WriteLine("出力バージョン\t" + 1170);
 		streamWriter.WriteLine("基本アイテム\t" + filename.Replace(" ", ":"));
 		try
 		{
@@ -1246,9 +1246,9 @@ public class Menu : MonoBehaviour
 		}
 	}
 
+	// Note: this type is marked as 'beforefieldinit'.
 	static Menu()
 	{
-		// Note: this type is marked as 'beforefieldinit'.
 		string[,] array = new string[31, 2];
 		array[0, 0] = "_MainTex";
 		array[0, 1] = "tex";

+ 5 - 3
Assembly-CSharp/MessageClass.cs

@@ -124,9 +124,11 @@ public class MessageClass
 	public void Clear()
 	{
 		this.exit_wait_count_ = -1;
-		string empty = string.Empty;
-		this.charaNameText = empty;
-		this.messageText = empty;
+		string text = string.Empty;
+		this.charaNameText = text;
+		text = text;
+		this.messageText = text;
+		this.subtitlesText = text;
 		this.mainTextAnimation.Clear();
 		this.subTextAnimation.Clear();
 		this.hitret_sprite_.alpha = 0f;

+ 1 - 1
Assembly-CSharp/Misc.cs

@@ -2,7 +2,7 @@
 
 public class Misc
 {
-	public const int GAME_VERSION = 1160;
+	public const int GAME_VERSION = 1170;
 
 	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(1160);
+		binaryWriter.Write(1170);
 		string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(f_strMqoFile);
 		binaryWriter.Write(fileNameWithoutExtension);
 		binaryWriter.Write(exObjIn2.strName);

+ 1 - 1
Assembly-CSharp/MotionAction_Mgr.cs

@@ -263,7 +263,7 @@ public class MotionAction_Mgr : PartsMgrBase
 
 	private IEnumerator MotionCheck(ActionCase case_data, float start_time)
 	{
-		Func<bool> play_voice = delegate
+		Func<bool> play_voice = delegate()
 		{
 			for (int i = 0; i < GameMain.Instance.CharacterMgr.GetMaidCount(); i++)
 			{

+ 13 - 0
Assembly-CSharp/MouseExposition.cs

@@ -1,4 +1,5 @@
 using System;
+using I2.Loc;
 using UnityEngine;
 using wf;
 
@@ -150,6 +151,18 @@ public class MouseExposition : MonoBehaviour
 		this.text = string.Empty;
 	}
 
+	public string textFromLanguageTerm
+	{
+		set
+		{
+			string translation = LocalizationManager.GetTranslation(value, true, 0, true, false, null, null);
+			if (!string.IsNullOrEmpty(translation))
+			{
+				this.text = translation;
+			}
+		}
+	}
+
 	public string text
 	{
 		get

+ 1 - 1
Assembly-CSharp/MyRoomCustom/CreativeRoom.cs

@@ -1145,7 +1145,7 @@ namespace MyRoomCustom
 			{
 				RawImage component = button.GetComponent<RawImage>();
 				component.texture = CreativeRoom.m_Materials[index].mainTexture;
-				button.onClick.AddListener(delegate
+				button.onClick.AddListener(delegate()
 				{
 					this.ButtonEvent_SetPanelsMaterial(index);
 				});

+ 29 - 24
Assembly-CSharp/MyRoomCustom/CreativeRoomUIObjectSettings.cs

@@ -267,7 +267,7 @@ namespace MyRoomCustom
 			});
 			Action<string, Button, Func<Vector3>> action2 = delegate(string key, Button button, Func<Vector3> delegate_get_vector3)
 			{
-				button.onClick.AddListener(delegate
+				button.onClick.AddListener(delegate()
 				{
 					if (this.m_SelectingObject == null)
 					{
@@ -283,7 +283,7 @@ namespace MyRoomCustom
 			};
 			Action<string, Button, Action<Vector3>> action3 = delegate(string key, Button button, Action<Vector3> delegate_return_vector3)
 			{
-				button.onClick.AddListener(delegate
+				button.onClick.AddListener(delegate()
 				{
 					if (this.m_SelectingObject == null)
 					{
@@ -310,7 +310,7 @@ namespace MyRoomCustom
 			};
 			Action<Button, Func<Vector3>, Action<Vector3>> action4 = delegate(Button button, Func<Vector3> delegate_get_vector3, Action<Vector3> delegate_return_vector3)
 			{
-				button.onClick.AddListener(delegate
+				button.onClick.AddListener(delegate()
 				{
 					if (this.m_SelectingObject == null)
 					{
@@ -511,22 +511,25 @@ namespace MyRoomCustom
 
 		public void CreateOdoguObjectButtons(int placementObjCategoryID)
 		{
-			List<PlacementData.Data> dataList = PlacementData.GetDatas((PlacementData.Data data) => data.categoryID == placementObjCategoryID);
+			CreativeRoomUIObjectSettings.<CreateOdoguObjectButtons>c__AnonStorey4 <CreateOdoguObjectButtons>c__AnonStorey = new CreativeRoomUIObjectSettings.<CreateOdoguObjectButtons>c__AnonStorey4();
+			<CreateOdoguObjectButtons>c__AnonStorey.placementObjCategoryID = placementObjCategoryID;
+			<CreateOdoguObjectButtons>c__AnonStorey.$this = this;
+			<CreateOdoguObjectButtons>c__AnonStorey.dataList = PlacementData.GetDatas((PlacementData.Data data) => data.categoryID == <CreateOdoguObjectButtons>c__AnonStorey.placementObjCategoryID);
 			Debug.LogFormat("カテゴリID「{0}」\nデータ数「{1}」", new object[]
 			{
-				placementObjCategoryID,
-				dataList.Count
+				<CreateOdoguObjectButtons>c__AnonStorey.placementObjCategoryID,
+				<CreateOdoguObjectButtons>c__AnonStorey.dataList.Count
 			});
-			this.m_UIParentDeployableObjectButtons.Show<Button>(dataList.Count, delegate(int i, Button button)
+			this.m_UIParentDeployableObjectButtons.Show<Button>(<CreateOdoguObjectButtons>c__AnonStorey.dataList.Count, delegate(int i, Button button)
 			{
-				PlacementData.Data data = dataList[i];
+				PlacementData.Data data = <CreateOdoguObjectButtons>c__AnonStorey.dataList[i];
 				Text componentInChildren = button.GetComponentInChildren<Text>();
 				RawImage component = button.GetComponent<RawImage>();
 				Texture texture = null;
-				if (!this.m_CachedItemIconDic.TryGetValue(data.ID, out texture))
+				if (!<CreateOdoguObjectButtons>c__AnonStorey.$this.m_CachedItemIconDic.TryGetValue(data.ID, out texture))
 				{
 					texture = data.GetThumbnail();
-					this.m_CachedItemIconDic.Add(data.ID, texture);
+					<CreateOdoguObjectButtons>c__AnonStorey.$this.m_CachedItemIconDic.Add(data.ID, texture);
 				}
 				if (texture != null)
 				{
@@ -537,17 +540,17 @@ namespace MyRoomCustom
 				{
 					componentInChildren.text = data.drawName;
 				}
-				button.onClick.AddListener(delegate
+				button.onClick.AddListener(delegate()
 				{
-					GameObject gameObject = this.CreateOdoguObject(data.ID);
+					GameObject gameObject = <CreateOdoguObjectButtons>c__AnonStorey.CreateOdoguObject(data.ID);
 					if (!gameObject)
 					{
 						return;
 					}
-					this.AddEvent_ObjectClickSelect(gameObject);
-					this.CreateDeploymentObjectButtons();
-					this.SetSelectingObject(gameObject, null);
-					this.m_UIToggleVisibleDeployObject.isOn = true;
+					<CreateOdoguObjectButtons>c__AnonStorey.AddEvent_ObjectClickSelect(gameObject);
+					<CreateOdoguObjectButtons>c__AnonStorey.CreateDeploymentObjectButtons();
+					<CreateOdoguObjectButtons>c__AnonStorey.SetSelectingObject(gameObject, null);
+					<CreateOdoguObjectButtons>c__AnonStorey.m_UIToggleVisibleDeployObject.isOn = true;
 				});
 			});
 		}
@@ -786,7 +789,7 @@ namespace MyRoomCustom
 						componentsInChildren[0].GetComponentInChildren<Text>().text = PlacementData.GetData(deployObjectInstanceData.objectID).drawName;
 						componentsInChildren[0].onClick.RemoveAllListeners();
 						componentsInChildren[1].onClick.RemoveAllListeners();
-						componentsInChildren[0].onClick.AddListener(delegate
+						componentsInChildren[0].onClick.AddListener(delegate()
 						{
 							if (this.m_SelectingObject == Obj)
 							{
@@ -797,7 +800,7 @@ namespace MyRoomCustom
 								this.SetSelectingObject(Obj, null);
 							}
 						});
-						componentsInChildren[1].onClick.AddListener(delegate
+						componentsInChildren[1].onClick.AddListener(delegate()
 						{
 							this.DestroyDeploymentObject(Obj);
 						});
@@ -932,18 +935,20 @@ namespace MyRoomCustom
 
 		private void OnEnable()
 		{
-			List<int> categoryIDList = PlacementData.CategoryIDList;
-			this.m_UIParentDeployableObjectCategoryButtons.Show<Button>(categoryIDList.Count, delegate(int i, Button button)
+			CreativeRoomUIObjectSettings.<OnEnable>c__AnonStorey8 <OnEnable>c__AnonStorey = new CreativeRoomUIObjectSettings.<OnEnable>c__AnonStorey8();
+			<OnEnable>c__AnonStorey.$this = this;
+			<OnEnable>c__AnonStorey.categoryIDList = PlacementData.CategoryIDList;
+			this.m_UIParentDeployableObjectCategoryButtons.Show<Button>(<OnEnable>c__AnonStorey.categoryIDList.Count, delegate(int i, Button button)
 			{
 				Text componentInChildren = button.GetComponentInChildren<Text>();
-				componentInChildren.text = PlacementData.GetCategoryName(categoryIDList[i]);
-				button.onClick.AddListener(delegate
+				componentInChildren.text = PlacementData.GetCategoryName(<OnEnable>c__AnonStorey.categoryIDList[i]);
+				button.onClick.AddListener(delegate()
 				{
 					Debug.LogFormat("カテゴリ「{0}」", new object[]
 					{
-						PlacementData.GetCategoryName(categoryIDList[i])
+						PlacementData.GetCategoryName(<OnEnable>c__AnonStorey.categoryIDList[i])
 					});
-					this.CreateOdoguObjectButtons(categoryIDList[i]);
+					<OnEnable>c__AnonStorey.CreateOdoguObjectButtons(<OnEnable>c__AnonStorey.categoryIDList[i]);
 				});
 			});
 		}

+ 2 - 2
Assembly-CSharp/MyRoomCustom/CreativeRoomUISaveLoad.cs

@@ -49,7 +49,7 @@ namespace MyRoomCustom
 					componentInChildren2.text = string.Empty;
 				}
 				componentInChildren.onClick.RemoveAllListeners();
-				componentInChildren.onClick.AddListener(delegate
+				componentInChildren.onClick.AddListener(delegate()
 				{
 					if (!GameMain.Instance.SysDlg.IsDecided)
 					{
@@ -112,7 +112,7 @@ namespace MyRoomCustom
 					componentInChildren3.text = string.Empty;
 				}
 				componentInChildren.onClick.RemoveAllListeners();
-				componentInChildren.onClick.AddListener(delegate
+				componentInChildren.onClick.AddListener(delegate()
 				{
 					if (head == null)
 					{

+ 87 - 0
Assembly-CSharp/NGUILabelSpacingHold.cs

@@ -0,0 +1,87 @@
+using System;
+using I2.Loc;
+using UnityEngine;
+using UnityEngine.Events;
+
+[RequireComponent(typeof(Localize))]
+[RequireComponent(typeof(UILabel))]
+public class NGUILabelSpacingHold : MonoBehaviour
+{
+	private void Awake()
+	{
+		if (this.callAwake)
+		{
+			return;
+		}
+		this.callAwake = true;
+		this.localize = base.GetComponent<Localize>();
+		this.label = base.GetComponent<UILabel>();
+		if (this.localize != null && this.label != null)
+		{
+			this.localize.LocalizeEvent.AddListener(new UnityAction(this.OnLocalize));
+			if (this.label.useFloatSpacing)
+			{
+				this.HoldSpacingX = this.label.floatSpacingX;
+				this.HoldSpacingY = this.label.floatSpacingY;
+			}
+			else
+			{
+				this.HoldSpacingX = (float)this.label.spacingX;
+				this.HoldSpacingY = (float)this.label.spacingY;
+			}
+			this.updateReq = true;
+			this.OnLocalize();
+		}
+	}
+
+	public void OnLocalize()
+	{
+		if (!this.callAwake)
+		{
+			this.Awake();
+		}
+		if (!this.updateReq)
+		{
+			return;
+		}
+		if (LocalizationManager.CurrentLanguageCode == "ja")
+		{
+			if (this.label.useFloatSpacing)
+			{
+				this.label.floatSpacingX = this.HoldSpacingX;
+				this.label.floatSpacingY = this.HoldSpacingY;
+			}
+			else
+			{
+				this.label.spacingX = (int)this.HoldSpacingX;
+				this.label.spacingY = (int)this.HoldSpacingY;
+			}
+		}
+		else if (this.label.useFloatSpacing)
+		{
+			UILabel uilabel = this.label;
+			float num = 0f;
+			this.label.floatSpacingY = num;
+			uilabel.floatSpacingX = num;
+		}
+		else
+		{
+			UILabel uilabel2 = this.label;
+			int num2 = 0;
+			this.label.spacingY = num2;
+			uilabel2.spacingX = num2;
+		}
+	}
+
+	private float HoldSpacingX;
+
+	private float HoldSpacingY;
+
+	private bool updateReq;
+
+	private bool callAwake;
+
+	private Localize localize;
+
+	private UILabel label;
+}

+ 22 - 0
Assembly-CSharp/NGUI_LanguagePopup.cs

@@ -0,0 +1,22 @@
+using System;
+using I2.Loc;
+using UnityEngine;
+
+public class NGUI_LanguagePopup : MonoBehaviour
+{
+	private void Start()
+	{
+		UIPopupList component = base.GetComponent<UIPopupList>();
+		component.items = this.Source.GetLanguages(true);
+		EventDelegate.Add(component.onChange, new EventDelegate.Callback(this.OnValueChange));
+		int num = component.items.IndexOf(LocalizationManager.CurrentLanguage);
+		component.value = component.items[(num < 0) ? 0 : num];
+	}
+
+	public void OnValueChange()
+	{
+		LocalizationManager.CurrentLanguage = UIPopupList.current.value;
+	}
+
+	public LanguageSource Source;
+}

+ 1 - 1
Assembly-CSharp/Note_Mgr.cs

@@ -321,7 +321,7 @@ public class Note_Mgr : PartsMgrBase
 			Score_Mgr.Instance.NotMissClear();
 			this.m_FullComboObj.gameObject.SetActive(true);
 			this.NoteSEPlay(this.m_FullComboSe);
-			base.StartCoroutine(RhythmAction_Mgr.Instance.DanceTimeCoroutine(this.m_TotalAnimeTime, new Action<float>(this.FullComboAnim), delegate
+			base.StartCoroutine(RhythmAction_Mgr.Instance.DanceTimeCoroutine(this.m_TotalAnimeTime, new Action<float>(this.FullComboAnim), delegate()
 			{
 				this.m_FullComboObj.gameObject.SetActive(false);
 			}));

+ 2 - 0
Assembly-CSharp/OVRCameraRig.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Diagnostics;
 using UnityEngine;
 using UnityEngine.VR;
 
@@ -35,6 +36,7 @@ public class OVRCameraRig : MonoBehaviour
 
 	public Transform trackerAnchor { get; private set; }
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event Action<OVRCameraRig> UpdatedAnchors;
 
 	private void Awake()

+ 2 - 0
Assembly-CSharp/OVRDisplay.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Diagnostics;
 using System.Text.RegularExpressions;
 using UnityEngine;
 using UnityEngine.VR;
@@ -15,6 +16,7 @@ public class OVRDisplay
 		this.UpdateTextures();
 	}
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event Action RecenteredPose;
 
 	public void RecenterPose()

+ 6 - 0
Assembly-CSharp/OVRLipSync.cs

@@ -41,6 +41,10 @@ public class OVRLipSync : MonoBehaviour
 		}
 	}
 
+	public static int SamplingRate { get; private set; }
+
+	public static int BuffSize { get; private set; }
+
 	public void Init()
 	{
 		if (OVRLipSync.sInstance == null)
@@ -50,6 +54,8 @@ public class OVRLipSync : MonoBehaviour
 			int num;
 			int num2;
 			AudioSettings.GetDSPBufferSize(out num, out num2);
+			OVRLipSync.SamplingRate = outputSampleRate;
+			OVRLipSync.BuffSize = num;
 			string message = string.Format("OvrLipSync Awake: Queried SampleRate: {0:F0} BufferSize: {1:F0}", outputSampleRate, num);
 			Debug.LogWarning(message);
 			OVRLipSync.sInitialized = OVRLipSync.Initialize(outputSampleRate, num);

+ 1 - 0
Assembly-CSharp/OVRLipSyncContextBase.cs

@@ -73,6 +73,7 @@ public class OVRLipSyncContextBase : MonoBehaviour
 
 	public OVRLipSync.ContextProviders provider;
 
+	[SerializeField]
 	private OVRLipSync.Frame frame = new OVRLipSync.Frame();
 
 	private uint context;

+ 3 - 3
Assembly-CSharp/OVRLipSyncContextMorphTarget.cs

@@ -54,9 +54,9 @@ public class OVRLipSyncContextMorphTarget : MonoBehaviour
 		float num2 = -1f;
 		for (int i = 0; i < OVRLipSync.VisemeCount; i++)
 		{
-			if (this.VisemeToBlendTargets[i] != -1)
+			if (frame.Visemes[i] > 0.001f)
 			{
-				if (frame.Visemes[i] > num2)
+				if (frame.Visemes[i] > num2 && i != 0)
 				{
 					num2 = frame.Visemes[i];
 					num = i;
@@ -99,7 +99,7 @@ public class OVRLipSyncContextMorphTarget : MonoBehaviour
 
 	public int[] KeySendVisemeSignal = new int[10];
 
-	public int SmoothAmount = 10;
+	public int SmoothAmount = 100;
 
 	[SerializeField]
 	[Header("口パクを複数ブレンドするか")]

+ 30 - 2
Assembly-CSharp/OVRLipSyncMicInput.cs

@@ -1,5 +1,7 @@
 using System;
 using UnityEngine;
+using UnityEngine.Audio;
+using wf;
 
 [RequireComponent(typeof(AudioSource))]
 public class OVRLipSyncMicInput : MonoBehaviour
@@ -28,6 +30,14 @@ public class OVRLipSyncMicInput : MonoBehaviour
 		}
 	}
 
+	private OVRLipSync.VariableData m_Variable
+	{
+		get
+		{
+			return GameMain.Instance.LipSyncMgr.Variable;
+		}
+	}
+
 	public void Init(Maid maid)
 	{
 		if (!this.audioSource)
@@ -41,7 +51,11 @@ public class OVRLipSyncMicInput : MonoBehaviour
 		this.TargetMaid = maid;
 		this.audioSource.loop = true;
 		this.audioSource.mute = false;
+		this.m_orijinMixer = this.audioSource.outputAudioMixerGroup;
+		this.m_outputMixer = Resources.Load<AudioMixerGroup>("OvrLipSync/MicInput");
+		this.audioSource.outputAudioMixerGroup = this.m_outputMixer.audioMixer.FindMatchingGroups("MicInput")[0];
 		this.lipsyncContext = base.GetComponent<OVRLipSyncContextBase>();
+		this.micFrequency = OVRLipSync.SamplingRate;
 		if (Microphone.devices.Length != 0)
 		{
 			this.selectedDevice = Microphone.devices[0].ToString();
@@ -50,13 +64,21 @@ public class OVRLipSyncMicInput : MonoBehaviour
 		}
 	}
 
+	private void OnDestroy()
+	{
+		if (this.audioSource)
+		{
+			this.audioSource.outputAudioMixerGroup = this.m_orijinMixer;
+		}
+	}
+
 	private void Update()
 	{
-		this.audioSource.volume = this.sourceVolume;
 		if (!Microphone.IsRecording(this.selectedDevice))
 		{
 			this.StartMicrophone();
 		}
+		this.m_outputMixer.audioMixer.SetFloat("OutVolume", (!this.m_Variable.Mute) ? Utility.VolumeToDecibel(this.m_Variable.MicVolume) : -80f);
 	}
 
 	private void OnApplicationFocus(bool focus)
@@ -112,7 +134,7 @@ public class OVRLipSyncMicInput : MonoBehaviour
 		{
 			return;
 		}
-		this.audioSource.clip = Microphone.Start(this.selectedDevice, true, 1, this.micFrequency);
+		this.audioSource.clip = Microphone.Start(this.selectedDevice, true, 10, this.micFrequency);
 		while (Microphone.GetPosition(this.selectedDevice) <= 0)
 		{
 		}
@@ -132,6 +154,8 @@ public class OVRLipSyncMicInput : MonoBehaviour
 		Microphone.End(this.selectedDevice);
 	}
 
+	public const int RECORD = 10;
+
 	public Maid TargetMaid;
 
 	public AudioSource audioSource;
@@ -155,4 +179,8 @@ public class OVRLipSyncMicInput : MonoBehaviour
 	private bool focused = true;
 
 	private OVRLipSyncContextBase lipsyncContext;
+
+	private AudioMixerGroup m_orijinMixer;
+
+	private AudioMixerGroup m_outputMixer;
 }

+ 26 - 14
Assembly-CSharp/OVRManager.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using UnityEngine;
 using UnityEngine.Rendering;
 using UnityEngine.VR;
@@ -42,27 +43,38 @@ public class OVRManager : MonoBehaviour
 		}
 	}
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action HMDAcquired;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action HMDLost;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action HMDMounted;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action HMDUnmounted;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action VrFocusAcquired;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action VrFocusLost;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action AudioOutChanged;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action AudioInChanged;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action TrackingAcquired;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action TrackingLost;
 
 	[Obsolete]
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event Action HSWDismissed;
 
 	public static bool isHmdPresent
@@ -331,7 +343,7 @@ public class OVRManager : MonoBehaviour
 			return;
 		}
 		OVRManager.instance = this;
-		Debug.Log(string.Concat(new object[]
+		UnityEngine.Debug.Log(string.Concat(new object[]
 		{
 			"Unity v",
 			Application.unityVersion,
@@ -345,7 +357,7 @@ public class OVRManager : MonoBehaviour
 		}));
 		if (SystemInfo.graphicsDeviceType != GraphicsDeviceType.Direct3D11)
 		{
-			Debug.LogWarning("VR rendering requires Direct3D11. Your graphics device: " + SystemInfo.graphicsDeviceType);
+			UnityEngine.Debug.LogWarning("VR rendering requires Direct3D11. Your graphics device: " + SystemInfo.graphicsDeviceType);
 		}
 		RuntimePlatform platform = Application.platform;
 		this.isSupportedPlatform |= (platform == RuntimePlatform.Android);
@@ -355,7 +367,7 @@ public class OVRManager : MonoBehaviour
 		this.isSupportedPlatform |= (platform == RuntimePlatform.WindowsPlayer);
 		if (!this.isSupportedPlatform)
 		{
-			Debug.LogWarning("This platform is unsupported");
+			UnityEngine.Debug.LogWarning("This platform is unsupported");
 			return;
 		}
 		if (OVRManager.display == null)
@@ -398,7 +410,7 @@ public class OVRManager : MonoBehaviour
 		OVRManager.isHmdPresent = OVRPlugin.hmdPresent;
 		if (this.useRecommendedMSAALevel && QualitySettings.antiAliasing != OVRManager.display.recommendedMSAALevel)
 		{
-			Debug.Log(string.Concat(new object[]
+			UnityEngine.Debug.Log(string.Concat(new object[]
 			{
 				"The current MSAA level is ",
 				QualitySettings.antiAliasing,
@@ -419,7 +431,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg)
 			{
-				Debug.LogError("Caught Exception: " + arg);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg);
 			}
 		}
 		if (!OVRManager._wasHmdPresent && OVRManager.isHmdPresent)
@@ -433,7 +445,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg2)
 			{
-				Debug.LogError("Caught Exception: " + arg2);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg2);
 			}
 		}
 		OVRManager._wasHmdPresent = OVRManager.isHmdPresent;
@@ -449,7 +461,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg3)
 			{
-				Debug.LogError("Caught Exception: " + arg3);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg3);
 			}
 		}
 		if (!OVRManager._wasUserPresent && this.isUserPresent)
@@ -463,7 +475,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg4)
 			{
-				Debug.LogError("Caught Exception: " + arg4);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg4);
 			}
 		}
 		OVRManager._wasUserPresent = this.isUserPresent;
@@ -479,7 +491,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg5)
 			{
-				Debug.LogError("Caught Exception: " + arg5);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg5);
 			}
 		}
 		if (!OVRManager._hadVrFocus && OVRManager.hasVrFocus)
@@ -493,7 +505,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg6)
 			{
-				Debug.LogError("Caught Exception: " + arg6);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg6);
 			}
 		}
 		OVRManager._hadVrFocus = OVRManager.hasVrFocus;
@@ -529,7 +541,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg7)
 			{
-				Debug.LogError("Caught Exception: " + arg7);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg7);
 			}
 			OVRManager.prevAudioOutId = audioOutId;
 		}
@@ -550,7 +562,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg8)
 			{
-				Debug.LogError("Caught Exception: " + arg8);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg8);
 			}
 			OVRManager.prevAudioInId = audioInId;
 		}
@@ -565,7 +577,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg9)
 			{
-				Debug.LogError("Caught Exception: " + arg9);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg9);
 			}
 		}
 		if (!OVRManager.wasPositionTracked && OVRManager.tracker.isPositionTracked)
@@ -579,7 +591,7 @@ public class OVRManager : MonoBehaviour
 			}
 			catch (Exception arg10)
 			{
-				Debug.LogError("Caught Exception: " + arg10);
+				UnityEngine.Debug.LogError("Caught Exception: " + arg10);
 			}
 		}
 		OVRManager.wasPositionTracked = OVRManager.tracker.isPositionTracked;

+ 2 - 1
Assembly-CSharp/OVROverlay.cs

@@ -104,8 +104,9 @@ public class OVROverlay : MonoBehaviour
 		Vector3 lossyScale = base.transform.lossyScale;
 		for (int j = 0; j < 3; j++)
 		{
+			ref Vector3 ptr = ref lossyScale;
 			int index;
-			lossyScale[index = j] = lossyScale[index] / Camera.current.transform.lossyScale[j];
+			lossyScale[index = j] = ptr[index] / Camera.current.transform.lossyScale[j];
 		}
 		if (this.currentOverlayShape == OVROverlay.OverlayShape.Cubemap)
 		{

+ 2 - 0
Assembly-CSharp/OVRTouchpad.cs

@@ -1,8 +1,10 @@
 using System;
+using System.Diagnostics;
 using UnityEngine;
 
 public static class OVRTouchpad
 {
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public static event EventHandler TouchHandler;
 
 	public static void Create()

+ 4 - 4
Assembly-CSharp/ObjectCreateWindow.cs

@@ -37,7 +37,7 @@ public class ObjectCreateWindow : BaseMaidPhotoWindow
 		EventDelegate.Add(this.selectTextureButton.onClick, new EventDelegate.Callback(this.OnClickSelectTextureButton));
 		if (this.typeSelectPopupList != null)
 		{
-			EventDelegate.Add(this.typeSelectPopupList.onChange, delegate
+			EventDelegate.Add(this.typeSelectPopupList.onChange, delegate()
 			{
 				if (this.selectData == this.target_list_[0])
 				{
@@ -89,7 +89,7 @@ public class ObjectCreateWindow : BaseMaidPhotoWindow
 				this.selectData.customObject.textureColor = setColor;
 			}
 		});
-		EventDelegate.Add(this.planeBackDrawPopupList.onChange, delegate
+		EventDelegate.Add(this.planeBackDrawPopupList.onChange, delegate()
 		{
 			if (this.selectData != null && this.selectData.customObject.type == BasePhotoCustomObject.Type.Plane)
 			{
@@ -105,7 +105,7 @@ public class ObjectCreateWindow : BaseMaidPhotoWindow
 				(this.selectData.customObject as PhotoCustomObjectPlane).backRenderingType = backRenderingType;
 			}
 		});
-		EventDelegate.Add(this.sphereBackDrawPopupList.onChange, delegate
+		EventDelegate.Add(this.sphereBackDrawPopupList.onChange, delegate()
 		{
 			if (this.selectData != null && this.selectData.customObject.type == BasePhotoCustomObject.Type.Sphere)
 			{
@@ -394,7 +394,7 @@ public class ObjectCreateWindow : BaseMaidPhotoWindow
 		gameObject.GetComponentInChildren<UILabel>().text = gameObject.name;
 		UIWFTabButton component = gameObject.GetComponent<UIWFTabButton>();
 		this.buttonDic.Add(component.GetHashCode(), target);
-		EventDelegate.Add(component.onSelect, delegate
+		EventDelegate.Add(component.onSelect, delegate()
 		{
 			if (!UIWFSelectButton.current.isSelected)
 			{

+ 2 - 2
Assembly-CSharp/ObjectManagerWindow.cs

@@ -18,7 +18,7 @@ public class ObjectManagerWindow : BaseMaidPhotoWindow
 				this.select_trans_target_.obj.SetActive(check_box.check);
 			}
 		});
-		EventDelegate.Add(this.RemoveButton.onClick, delegate
+		EventDelegate.Add(this.RemoveButton.onClick, delegate()
 		{
 			if (this.select_trans_target_.obj == null || this.select_trans_target_.type == PhotoTransTargetObject.Type.BG)
 			{
@@ -409,7 +409,7 @@ public class ObjectManagerWindow : BaseMaidPhotoWindow
 		gameObject.name = target.guid.ToString();
 		gameObject.GetComponentInChildren<UILabel>().text = target.draw_name;
 		UIWFTabButton component = gameObject.GetComponent<UIWFTabButton>();
-		EventDelegate.Add(component.onSelect, delegate
+		EventDelegate.Add(component.onSelect, delegate()
 		{
 			if (!UIWFSelectButton.current.isSelected)
 			{

+ 2 - 2
Assembly-CSharp/OnaholeBaseNodeMenuManager.cs

@@ -72,7 +72,7 @@ public class OnaholeBaseNodeMenuManager : MonoBehaviour
 	{
 		get
 		{
-			return this.isInputEnabled && base.gameObject.activeInHierarchy && YotogiManager.instans.inputCBLEnterKey;
+			return this.isInputEnabled && base.gameObject.activeInHierarchy && YotogiManager.instans.inputCBLCancelKey;
 		}
 	}
 
@@ -80,7 +80,7 @@ public class OnaholeBaseNodeMenuManager : MonoBehaviour
 	{
 		get
 		{
-			return this.isInputEnabled && base.gameObject.activeInHierarchy && YotogiManager.instans.inputCBLCancelKey;
+			return this.isInputEnabled && base.gameObject.activeInHierarchy && YotogiManager.instans.inputCBLEnterKey;
 		}
 	}
 

+ 96 - 0
Assembly-CSharp/OnaholeChuBlipDevice.cs

@@ -12,6 +12,26 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 
 	public long rawArrowLeft { get; private set; }
 
+	public long beforeRawArrowUp { get; private set; }
+
+	public long beforeRawArrowDown { get; private set; }
+
+	public long beforeRawArrowRight { get; private set; }
+
+	public long beforeRawArrowLeft { get; private set; }
+
+	public float arrowKeyFierceRate
+	{
+		get
+		{
+			return this.m_ArrowKeyFierceRate;
+		}
+		private set
+		{
+			this.m_ArrowKeyFierceRate = Mathf.Clamp(value, 0f, 1f);
+		}
+	}
+
 	public float arrowUp
 	{
 		get
@@ -84,6 +104,78 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 		}
 	}
 
+	public float beforeArrowUp
+	{
+		get
+		{
+			return (float)this.beforeRawArrowUp * 1.52590219E-05f;
+		}
+	}
+
+	public float beforeArrowDown
+	{
+		get
+		{
+			return (float)this.beforeRawArrowDown * 1.52590219E-05f;
+		}
+	}
+
+	public float beforeArrowRight
+	{
+		get
+		{
+			return (float)this.beforeRawArrowRight * 1.52590219E-05f;
+		}
+	}
+
+	public float beforeArrowLeft
+	{
+		get
+		{
+			return (float)this.beforeRawArrowLeft * 1.52590219E-05f;
+		}
+	}
+
+	public long beforeRawVertical
+	{
+		get
+		{
+			return this.beforeRawArrowUp - this.beforeRawArrowDown;
+		}
+	}
+
+	public long beforeRawHorizontal
+	{
+		get
+		{
+			return this.beforeRawArrowRight - this.beforeRawArrowLeft;
+		}
+	}
+
+	public float beforeVertical
+	{
+		get
+		{
+			return (float)this.beforeRawVertical * 1.52590219E-05f;
+		}
+	}
+
+	public float beforeHorizontal
+	{
+		get
+		{
+			return (float)this.beforeRawHorizontal * 1.52590219E-05f;
+		}
+	}
+
+	public Vector2 beforeInputVec
+	{
+		get
+		{
+			return new Vector2(this.beforeVertical, this.beforeHorizontal);
+		}
+	}
+
 	private Dictionary<string, float> data_dic_ = new Dictionary<string, float>();
 
 	private float insertDepth;
@@ -122,5 +214,9 @@ public class OnaholeChuBlipDevice : MonoBehaviour
 
 	private bool beforeButtonC;
 
+	private float m_ArrowKeyFierceRate;
+
 	public const float RECIPROCAL_ARROW_VALUE = 1.52590219E-05f;
+
+	public static readonly float ArrowThreshold = 0.5f;
 }

+ 4 - 0
Assembly-CSharp/OnaholeMotion.cs

@@ -110,6 +110,7 @@ public class OnaholeMotion : MonoBehaviour
 
 	public bool nextModePermit;
 
+	[Obsolete]
 	public bool nextModePermitHarf;
 
 	public string blendAnimeName = string.Empty;
@@ -119,6 +120,7 @@ public class OnaholeMotion : MonoBehaviour
 	public float blendPlugMultiple;
 
 	[SerializeField]
+	[Obsolete]
 	public float blendStopTime;
 
 	public List<string> loadedAnimeList = new List<string>();
@@ -184,8 +186,10 @@ public class OnaholeMotion : MonoBehaviour
 
 	private class BlendAnimeData
 	{
+		[Obsolete]
 		public string key = string.Empty;
 
+		[Obsolete]
 		public MaidTouch.POINT point;
 
 		public AnimationState start;

+ 3 - 3
Assembly-CSharp/OnaholeNodeMenuChildSecondRow.cs

@@ -82,7 +82,7 @@ public class OnaholeNodeMenuChildSecondRow : OnaholeBaseNodeMenuManager
 
 	private void CallCostumeSetting()
 	{
-		Action enterEvent = delegate
+		Action enterEvent = delegate()
 		{
 			UndressingManager.UndressingData undressingData = this.nodeMenuManager.undressingManager.GetUndressingData((UndressingManager.UnitType)Enum.Parse(typeof(UndressingManager.UnitType), base.selectedNodeButton.button.uniqueName));
 			this.nodeMenuManager.undressingManager.OnClickButton(undressingData);
@@ -158,7 +158,7 @@ public class OnaholeNodeMenuChildSecondRow : OnaholeBaseNodeMenuManager
 
 	private void CallGeneralBoolControl(bool currentValue)
 	{
-		Action enterEvent = delegate
+		Action enterEvent = delegate()
 		{
 			this.OnCancelMenu();
 		};
@@ -171,7 +171,7 @@ public class OnaholeNodeMenuChildSecondRow : OnaholeBaseNodeMenuManager
 
 	private void CallYotogiEnd()
 	{
-		Action enterEvent = delegate
+		Action enterEvent = delegate()
 		{
 			if (bool.Parse(base.selectedNodeButton.button.uniqueName))
 			{

+ 37 - 2
Assembly-CSharp/OvrIK.cs

@@ -322,6 +322,10 @@ public class OvrIK : MonoBehaviour
 			GameMain.Instance.OvrMgr.OvrCamera.HandVRIKMode = false;
 			GameObject obj = this.m_maid.body0.GetSlot(1).obj;
 			this.LayerCheck(obj, LayerMask.NameToLayer("Charactor"));
+			GameObject obj2 = this.m_maid.body0.GetSlot(36).obj;
+			this.LayerCheck(obj2, LayerMask.NameToLayer("Charactor"));
+			GameObject obj3 = this.m_maid.body0.GetSlot(17).obj;
+			this.LayerCheck(obj3, LayerMask.NameToLayer("Charactor"));
 			Animation componentInChildren = this.m_maid.GetComponentInChildren<Animation>();
 			if (componentInChildren != null)
 			{
@@ -782,6 +786,7 @@ public class OvrIK : MonoBehaviour
 				this.m_trTargetOffsHeadTracker.SetParent(transform9, true);
 				this.m_ik.solver.spine.headTarget = this.m_trTargetOffsHeadTracker;
 				trackingObjects.Remove(transform);
+				this.CheckHeadIsTracker();
 			}
 			if (num <= trackingObjects.Count)
 			{
@@ -907,6 +912,33 @@ public class OvrIK : MonoBehaviour
 		this.m_trTargetOffsFootR.position += (this.m_trTargetOffsFootRVecY.position - this.m_trTargetOffsFootR.position).normalized * d;
 	}
 
+	private void CheckHeadIsTracker()
+	{
+		bool flag = this.m_ik.solver.spine.headTarget == this.m_trTargetOffsHeadTracker;
+		if (flag != this.m_isHeadIsTracker)
+		{
+			if (flag)
+			{
+				GameObject obj = this.m_maid.body0.GetSlot(1).obj;
+				this.LayerCheck(obj, LayerMask.NameToLayer("Charactor"));
+				GameObject obj2 = this.m_maid.body0.GetSlot(36).obj;
+				this.LayerCheck(obj2, LayerMask.NameToLayer("Charactor"));
+				GameObject obj3 = this.m_maid.body0.GetSlot(17).obj;
+				this.LayerCheck(obj3, LayerMask.NameToLayer("Charactor"));
+			}
+			else
+			{
+				GameObject obj4 = this.m_maid.body0.GetSlot(1).obj;
+				this.LayerCheck(obj4, LayerMask.NameToLayer("Face"));
+				GameObject obj5 = this.m_maid.body0.GetSlot(36).obj;
+				this.LayerCheck(obj5, LayerMask.NameToLayer("Face"));
+				GameObject obj6 = this.m_maid.body0.GetSlot(17).obj;
+				this.LayerCheck(obj6, LayerMask.NameToLayer("Face"));
+			}
+			this.m_isHeadIsTracker = flag;
+		}
+	}
+
 	private void OnDisable()
 	{
 		this.Finish();
@@ -1012,6 +1044,7 @@ public class OvrIK : MonoBehaviour
 					this.m_goMoni.SetActive(!this.m_goMoni.activeSelf);
 				}
 			}
+			this.CheckHeadIsTracker();
 			if (this.m_trEyeTarget != null && this.m_maid != null)
 			{
 				Transform realHeadTransform = GameMain.Instance.OvrMgr.OvrCamera.GetRealHeadTransform();
@@ -1382,6 +1415,8 @@ public class OvrIK : MonoBehaviour
 
 	private AMTween[] m_aryBackAMTween;
 
+	private bool m_isHeadIsTracker;
+
 	private Vector3 m_vFootDefOffsLocalL;
 
 	private Vector3 m_vFootDefOffsLocalR;
@@ -1403,7 +1438,7 @@ public class OvrIK : MonoBehaviour
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1160;
+			this.m_nVersion = 1170;
 		}
 
 		public void OnAfterDeserialize()
@@ -1463,7 +1498,7 @@ public class OvrIK : MonoBehaviour
 		private const string CONF_NAME = "OvrIK.json";
 
 		[SerializeField]
-		private int m_nVersion = 1160;
+		private int m_nVersion = 1170;
 
 		[SerializeField]
 		private float solver_locomotion_weight = 1f;

+ 4 - 1
Assembly-CSharp/OvrMgr.cs

@@ -129,7 +129,10 @@ public class OvrMgr : MonoBehaviour
 		UICamera[] array = UnityEngine.Object.FindObjectsOfType<UICamera>();
 		for (int i = 0; i < array.Length; i++)
 		{
-			array[i].GetComponent<Camera>().targetTexture = this.m_rtRTarget;
+			if (!array[i].VRExclusionUI)
+			{
+				array[i].GetComponent<Camera>().targetTexture = this.m_rtRTarget;
+			}
 		}
 		GameObject gameObject3 = GameObject.Find("UI Root");
 		if (gameObject3 != null)

+ 8 - 0
Assembly-CSharp/PhotoFaceData.cs

@@ -59,6 +59,14 @@ public class PhotoFaceData
 		}
 	}
 
+	public string termName
+	{
+		get
+		{
+			return "ScenePhotoMode/表情タイプ/" + this.name.TrimEnd(new char[0]);
+		}
+	}
+
 	public void Apply(Maid maid)
 	{
 		if (maid == null || maid.body0 == null || maid.body0.m_Bones == null || maid.IsBusy)

+ 28 - 0
Assembly-CSharp/PhotoFaceDataShortcut.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 using UnityEngine.Events;
 using UnityEngine.UI;
@@ -37,6 +38,7 @@ public class PhotoFaceDataShortcut : MonoBehaviour
 		this.m_CircleList.SetActiveUI(true);
 		GameObject childObject = UTY.GetChildObject(base.gameObject, "CircleCommandUI/text right hand", false);
 		childObject.GetComponent<Text>().text = ((!isLeftHand) ? "右" : "左");
+		childObject.GetComponent<Localize>().SetTerm("System/" + ((!isLeftHand) ? "右" : "左"));
 	}
 
 	public void CreateItemList(int count)
@@ -50,10 +52,12 @@ public class PhotoFaceDataShortcut : MonoBehaviour
 		circleCommandUI.Show<Transform>(count, delegate(int index, Transform trans)
 		{
 			Text componentInChildren = trans.GetComponentInChildren<Text>();
+			Localize componentInChildren2 = trans.GetComponentInChildren<Localize>();
 			PhotoFaceDataShortcut.ItemData itemData = trans.gameObject.AddComponent<PhotoFaceDataShortcut.ItemData>();
 			itemData.handController = this;
 			itemData.index = index;
 			itemData.text = componentInChildren;
+			itemData.localize = componentInChildren2;
 			this.itemDataList.Add(itemData);
 		});
 		ControllerShortcutSettingData.LoadDefault();
@@ -324,6 +328,18 @@ public class PhotoFaceDataShortcut : MonoBehaviour
 			}
 		}
 
+		public Localize localize
+		{
+			get
+			{
+				return this.m_Localize;
+			}
+			set
+			{
+				this.m_Localize = value;
+			}
+		}
+
 		public TMorph.AddBlendType blendType
 		{
 			get
@@ -355,6 +371,7 @@ public class PhotoFaceDataShortcut : MonoBehaviour
 				return;
 			}
 			this.text.text = this.GetDataName();
+			this.localize.SetTerm(this.GetDataTermName());
 		}
 
 		public string GetDataName()
@@ -366,6 +383,15 @@ public class PhotoFaceDataShortcut : MonoBehaviour
 			return this.data.name;
 		}
 
+		public string GetDataTermName()
+		{
+			if (this.data == null)
+			{
+				return "無し";
+			}
+			return this.data.termName;
+		}
+
 		private void UpdateConfigData()
 		{
 			if (this.handController.IsLeftHand)
@@ -431,6 +457,8 @@ public class PhotoFaceDataShortcut : MonoBehaviour
 
 		private Text m_Text;
 
+		private Localize m_Localize;
+
 		private static SortedDictionary<string, int> m_PhotoFaceDataNameDic;
 	}
 }

+ 27 - 4
Assembly-CSharp/PhotoFaceDataShortcutSetter.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using I2.Loc;
 using Kasizuki;
 using UnityEngine;
 
@@ -48,7 +49,8 @@ public class PhotoFaceDataShortcutSetter : MonoBehaviour
 		{
 			UILabel componentInChildren = item.GetComponentInChildren<UILabel>();
 			componentInChildren.text = data.name;
-			EventDelegate.Add(item.onClick, delegate
+			componentInChildren.GetComponent<Localize>().SetTerm(data.termName);
+			EventDelegate.Add(item.onClick, delegate()
 			{
 				this.OnClickData(data);
 			});
@@ -63,13 +65,16 @@ public class PhotoFaceDataShortcutSetter : MonoBehaviour
 			PhotoFaceDataShortcut.ItemData data = this.targetControllerRight.itemDataList[index];
 			UILabel componentInChildren = trans.GetComponentInChildren<UILabel>();
 			UIButton componentInChildren2 = trans.GetComponentInChildren<UIButton>();
+			Localize componentInChildren3 = trans.GetComponentInChildren<Localize>();
 			componentInChildren.text = data.GetDataName();
-			EventDelegate.Add(componentInChildren2.onClick, delegate
+			componentInChildren3.SetTerm(data.GetDataTermName());
+			EventDelegate.Add(componentInChildren2.onClick, delegate()
 			{
 				this.OnClickShortcutButton(data);
 			});
 			PhotoFaceDataShortcutSetter.ItemData itemData = trans.gameObject.AddComponent<PhotoFaceDataShortcutSetter.ItemData>();
 			itemData.label = componentInChildren;
+			itemData.localize = componentInChildren3;
 			this.m_ItemPairDic.Add(data, itemData);
 		});
 		this.m_ButtonListShortcutLeft.Show<Transform>(this.targetControllerLeft.itemDataList.Count, delegate(int index, Transform trans)
@@ -77,13 +82,16 @@ public class PhotoFaceDataShortcutSetter : MonoBehaviour
 			PhotoFaceDataShortcut.ItemData data = this.targetControllerLeft.itemDataList[index];
 			UILabel componentInChildren = trans.GetComponentInChildren<UILabel>();
 			UIButton componentInChildren2 = trans.GetComponentInChildren<UIButton>();
+			Localize componentInChildren3 = trans.GetComponentInChildren<Localize>();
 			componentInChildren.text = data.GetDataName();
-			EventDelegate.Add(componentInChildren2.onClick, delegate
+			componentInChildren3.SetTerm(data.GetDataTermName());
+			EventDelegate.Add(componentInChildren2.onClick, delegate()
 			{
 				this.OnClickShortcutButton(data);
 			});
 			PhotoFaceDataShortcutSetter.ItemData itemData = trans.gameObject.AddComponent<PhotoFaceDataShortcutSetter.ItemData>();
 			itemData.label = componentInChildren;
+			itemData.localize = componentInChildren3;
 			this.m_ItemPairDic.Add(data, itemData);
 		});
 		Transform transform = this.m_ParentAddFaceOptions.transform.Find("Buttons");
@@ -97,7 +105,7 @@ public class PhotoFaceDataShortcutSetter : MonoBehaviour
 		}
 		EventDelegate.Add(this.m_ButtonFaceListOK.onClick, new EventDelegate.Callback(this.OnClickFaceListOK));
 		NGUIWindow fadeWindowFaceDataList = this.m_FadeWindowFaceDataList;
-		fadeWindowFaceDataList.OnOpen = (Action)Delegate.Combine(fadeWindowFaceDataList.OnOpen, new Action(delegate
+		fadeWindowFaceDataList.OnOpen = (Action)Delegate.Combine(fadeWindowFaceDataList.OnOpen, new Action(delegate()
 		{
 			this.m_WindowListFaceData.Reposition();
 		}));
@@ -111,6 +119,7 @@ public class PhotoFaceDataShortcutSetter : MonoBehaviour
 		if (this.m_ItemPairDic != null && this.m_ItemPairDic.TryGetValue(this.nowSelectItem, out itemData))
 		{
 			itemData.label.text = this.nowSelectItem.GetDataName();
+			itemData.localize.SetTerm(this.nowSelectItem.GetDataTermName());
 		}
 		if (this.nowSelectItem != null)
 		{
@@ -415,6 +424,20 @@ public class PhotoFaceDataShortcutSetter : MonoBehaviour
 			}
 		}
 
+		public Localize localize
+		{
+			get
+			{
+				return this.m_Localize;
+			}
+			set
+			{
+				this.m_Localize = value;
+			}
+		}
+
 		private UILabel m_Label;
+
+		private Localize m_Localize;
 	}
 }

+ 2 - 2
Assembly-CSharp/PhotoModeObjectSave.cs

@@ -24,7 +24,7 @@ public class PhotoModeObjectSave : MonoBehaviour
 		tweenAlpha.to = 1f;
 		tweenAlpha.duration = 0.3f;
 		tweenAlpha.PlayForward();
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			TweenAlpha component = base.gameObject.GetComponent<TweenAlpha>();
 			if (component != null)
@@ -97,7 +97,7 @@ public class PhotoModeObjectSave : MonoBehaviour
 		tweenAlpha.to = 0f;
 		tweenAlpha.duration = 0.3f;
 		tweenAlpha.PlayForward();
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			TweenAlpha component = base.gameObject.GetComponent<TweenAlpha>();
 			if (component != null)

+ 2 - 2
Assembly-CSharp/PhotoModePoseSave.cs

@@ -170,7 +170,7 @@ public class PhotoModePoseSave : MonoBehaviour
 		tweenAlpha.to = 0f;
 		tweenAlpha.duration = 0.3f;
 		tweenAlpha.PlayForward();
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			TweenAlpha component = base.gameObject.GetComponent<TweenAlpha>();
 			if (component != null)
@@ -189,7 +189,7 @@ public class PhotoModePoseSave : MonoBehaviour
 		tweenAlpha.to = 1f;
 		tweenAlpha.duration = 0.3f;
 		tweenAlpha.PlayForward();
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			TweenAlpha component = base.gameObject.GetComponent<TweenAlpha>();
 			if (component != null)

+ 5 - 5
Assembly-CSharp/PhotoModeSaveAndLoad.cs

@@ -47,12 +47,12 @@ public class PhotoModeSaveAndLoad : MonoBehaviour
 			this.data_unit_[j].onChangeTitle = new Action<PhotSaveLoagDataUnit>(this.OnChangeTitle);
 			this.data_unit_[j].onChangeComment = new Action<PhotSaveLoagDataUnit>(this.OnChangeComment);
 		}
-		EventDelegate.Add(UTY.GetChildObject(base.gameObject, "DisplayButtonGroup/DisplaySave", false).GetComponent<UIButton>().onClick, delegate
+		EventDelegate.Add(UTY.GetChildObject(base.gameObject, "DisplayButtonGroup/DisplaySave", false).GetComponent<UIButton>().onClick, delegate()
 		{
 			this.ChangeType((this.cur_type_ != PhotoModeSaveAndLoad.Type.Save) ? PhotoModeSaveAndLoad.Type.Save : PhotoModeSaveAndLoad.Type.Load);
 			this.UpdateDataUnit();
 		});
-		EventDelegate.Add(UTY.GetChildObject(base.gameObject, "DisplayButtonGroup/DisplayLoad", false).GetComponent<UIButton>().onClick, delegate
+		EventDelegate.Add(UTY.GetChildObject(base.gameObject, "DisplayButtonGroup/DisplayLoad", false).GetComponent<UIButton>().onClick, delegate()
 		{
 			this.ChangeType((this.cur_type_ != PhotoModeSaveAndLoad.Type.Save) ? PhotoModeSaveAndLoad.Type.Save : PhotoModeSaveAndLoad.Type.Load);
 			this.UpdateDataUnit();
@@ -88,7 +88,7 @@ public class PhotoModeSaveAndLoad : MonoBehaviour
 		tweenAlpha.to = 1f;
 		tweenAlpha.duration = 0.3f;
 		tweenAlpha.PlayForward();
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			TweenAlpha component2 = base.gameObject.GetComponent<TweenAlpha>();
 			if (component2 != null)
@@ -118,7 +118,7 @@ public class PhotoModeSaveAndLoad : MonoBehaviour
 		tweenAlpha.to = 0f;
 		tweenAlpha.duration = 0.3f;
 		tweenAlpha.PlayForward();
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			TweenAlpha component2 = base.gameObject.GetComponent<TweenAlpha>();
 			if (component2 != null)
@@ -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", 1160);
+		XElement xelement = new XElement("GameVersion", 1170);
 		XElement xelement2 = new XElement("SaveTime", value);
 		XElement xelement3 = new XElement("Title", title);
 		XElement xelement4 = new XElement("Comment", comment);

+ 2 - 2
Assembly-CSharp/PhotoMotionData.cs

@@ -253,8 +253,8 @@ public class PhotoMotionData
 		}
 		if (!string.IsNullOrEmpty(this.direct_file))
 		{
-			maid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-			maid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+			maid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+			maid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 			if (!this.is_mod && !this.is_mypose)
 			{
 				maid.CrossFade(this.direct_file, false, this.is_loop, false, 0f, 1f);

+ 3 - 3
Assembly-CSharp/PhotoMotionDataShortcutSetter.cs

@@ -60,7 +60,7 @@ public class PhotoMotionDataShortcutSetter : MonoBehaviour
 		{
 			UILabel componentInChildren = item.GetComponentInChildren<UILabel>();
 			componentInChildren.text = data.name;
-			EventDelegate.Add(item.onClick, delegate
+			EventDelegate.Add(item.onClick, delegate()
 			{
 				this.OnClickData(data);
 			});
@@ -76,7 +76,7 @@ public class PhotoMotionDataShortcutSetter : MonoBehaviour
 			UILabel componentInChildren = trans.GetComponentInChildren<UILabel>();
 			UIButton componentInChildren2 = trans.GetComponentInChildren<UIButton>();
 			componentInChildren.text = data.GetDataName();
-			EventDelegate.Add(componentInChildren2.onClick, delegate
+			EventDelegate.Add(componentInChildren2.onClick, delegate()
 			{
 				this.OnClickShortcutButton(data);
 			});
@@ -90,7 +90,7 @@ public class PhotoMotionDataShortcutSetter : MonoBehaviour
 			UILabel componentInChildren = trans.GetComponentInChildren<UILabel>();
 			UIButton componentInChildren2 = trans.GetComponentInChildren<UIButton>();
 			componentInChildren.text = data.GetDataName();
-			EventDelegate.Add(componentInChildren2.onClick, delegate
+			EventDelegate.Add(componentInChildren2.onClick, delegate()
 			{
 				this.OnClickShortcutButton(data);
 			});

+ 1 - 1
Assembly-CSharp/PlacementWindow.cs

@@ -14,7 +14,7 @@ public class PlacementWindow : BaseMaidPhotoWindow
 		EventDelegate.Add(this.DeActiveButton.onClick, new EventDelegate.Callback(this.OnClickDeActive));
 		this.VisibleCheckButton.onClick.Add(new Action<WFCheckBox>(this.OnClickVisibleCheckButton));
 		this.camera_move_support_ = base.gameObject.AddComponent<WfCameraMoveSupport>();
-		EventDelegate.Add(this.CallEditButton.onClick, delegate
+		EventDelegate.Add(this.CallEditButton.onClick, delegate()
 		{
 			base.mgr.CallEditSceneFunction(base.mgr.select_maid);
 		});

+ 1 - 1
Assembly-CSharp/PlayerStatus/Status.cs

@@ -827,7 +827,7 @@ namespace PlayerStatus
 		public void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_PLAYER_STATUS");
-			binary.Write(1160);
+			binary.Write(1170);
 			binary.Write(this.playerName_);
 			binary.Write(this.days_);
 			binary.Write(this.totalPurchasePrice_);

+ 2 - 2
Assembly-CSharp/PoseEditWindow.cs

@@ -501,8 +501,8 @@ public class PoseEditWindow : BaseMaidPhotoWindow
 				motionWindow.CheckbtnStop.check = true;
 				motionWindow.OnClickStopCheck(motionWindow.CheckbtnStop);
 			}
-			base.mgr.select_maid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-			base.mgr.select_maid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+			base.mgr.select_maid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+			base.mgr.select_maid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 			this.ControlSelectBtnTab.ResetSelect();
 			Dictionary<PoseEditWindow.ControlType, UIWFTabButton> dictionary = new Dictionary<PoseEditWindow.ControlType, UIWFTabButton>();
 			foreach (UIWFTabButton uiwftabButton in this.ControlSelectBtnTab.button_list)

+ 5 - 6
Assembly-CSharp/PresetCtrl.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 
 public class PresetCtrl : MonoBehaviour
@@ -86,17 +87,17 @@ public class PresetCtrl : MonoBehaviour
 				{
 					if (ePreType == CharacterMgr.PresetType.Body)
 					{
-						component2.spriteName = "cm3d2_edit_priset_kindicon_body";
+						component2.GetComponent<Localize>().SetTerm("SceneEdit/プリセット/スプライト/種別プレート体");
 					}
 				}
 				else
 				{
-					component2.spriteName = "cm3d2_edit_priset_kindicon_clothes";
+					component2.GetComponent<Localize>().SetTerm("SceneEdit/プリセット/スプライト/種別プレート服");
 				}
 			}
 			else
 			{
-				component2.spriteName = "cm3d2_edit_priset_kindicon_clothes_body";
+				component2.GetComponent<Localize>().SetTerm("SceneEdit/プリセット/スプライト/種別プレート体と服");
 			}
 			gameObject.name = preset.strFileName;
 			UIButton component3 = gameObject.GetComponent<UIButton>();
@@ -229,7 +230,7 @@ public class PresetCtrl : MonoBehaviour
 	public void DeletePreset(string clickBtnName)
 	{
 		this.m_presetName = clickBtnName;
-		GameMain.Instance.SysDlg.Show("プリセットを削除して宜しいですか。", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.DeletePreset), null);
+		GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/プリセットを削除して宜しいですか。", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.DeletePreset), null);
 	}
 
 	private void DeletePreset()
@@ -283,8 +284,6 @@ public class PresetCtrl : MonoBehaviour
 
 	private const string TYPE_ICON_BODY = "cm3d2_edit_priset_kindicon_body";
 
-	private const string DIALOG_MSG_DELETE = "プリセットを削除して宜しいですか。";
-
 	public class FilterButton
 	{
 		public PresetMgr.Filter m_name { get; set; }

+ 44 - 25
Assembly-CSharp/ProfileCtrl.cs

@@ -2,6 +2,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using Edit;
+using I2.Loc;
 using MaidStatus;
 using MaidStatus.CsvData;
 using UnityEngine;
@@ -39,13 +40,13 @@ public class ProfileCtrl : MonoBehaviour
 		this.m_clLastName = childObject2.GetComponent<BoxCollider>();
 		EventDelegate.Add(this.m_inLastName.onChange, new EventDelegate.Callback(BaseMgr<ProfileMgr>.Instance.OnChangeLastName));
 		this.m_buFirstName = UTY.GetChildObject(childObject, "Random", false).GetComponent<UIButton>();
-		EventDelegate.Add(this.m_buFirstName.onClick, delegate
+		EventDelegate.Add(this.m_buFirstName.onClick, delegate()
 		{
 			this.m_inFirstName.RemoveFocus();
 			this.m_inFirstName.value = MaidRandomName.GetFirstName();
 		});
 		this.m_buLastName = UTY.GetChildObject(childObject2, "Random", false).GetComponent<UIButton>();
-		EventDelegate.Add(this.m_buLastName.onClick, delegate
+		EventDelegate.Add(this.m_buLastName.onClick, delegate()
 		{
 			this.m_inLastName.RemoveFocus();
 			this.m_inLastName.value = MaidRandomName.GetLastName();
@@ -105,18 +106,16 @@ public class ProfileCtrl : MonoBehaviour
 			}
 		}
 		this.m_pPersonal.items.Clear();
+		ProfileCtrl.m_dicPersonal = new Dictionary<string, Personal.Data>();
 		foreach (Personal.Data data2 in list)
 		{
-			this.m_pPersonal.items.Add(data2.drawName);
+			string drawName = data2.drawName;
+			this.m_pPersonal.items.Add(drawName);
+			ProfileCtrl.m_dicPersonal.Add(drawName, data2);
 		}
-		EventDelegate.Add(this.m_pPersonal.onChange, delegate
+		EventDelegate.Add(this.m_pPersonal.onChange, delegate()
 		{
 		});
-		ProfileCtrl.m_dicPersonal = new Dictionary<string, Personal.Data>();
-		foreach (Personal.Data data3 in list)
-		{
-			ProfileCtrl.m_dicPersonal.Add(data3.drawName, data3);
-		}
 		this.m_clPersonal = childObject3.GetComponent<BoxCollider>();
 		this.m_goPersonalSelectorIcon = UTY.GetChildObject(childObject3, "Symbol", false);
 		GameObject childObject4 = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/SexualExperience/PopupList", false);
@@ -193,12 +192,12 @@ public class ProfileCtrl : MonoBehaviour
 			}
 		};
 		this.m_dicUpperBtn = new Dictionary<ProfileMgr.UpperButtonType, ProfileCtrl.UpperButton>();
-		IEnumerator enumerator4 = Enum.GetValues(typeof(ProfileMgr.UpperButtonType)).GetEnumerator();
+		IEnumerator enumerator3 = Enum.GetValues(typeof(ProfileMgr.UpperButtonType)).GetEnumerator();
 		try
 		{
-			while (enumerator4.MoveNext())
+			while (enumerator3.MoveNext())
 			{
-				object obj = enumerator4.Current;
+				object obj = enumerator3.Current;
 				ProfileMgr.UpperButtonType upperButtonType = (ProfileMgr.UpperButtonType)obj;
 				if (upperButtonType != ProfileMgr.UpperButtonType.None)
 				{
@@ -217,7 +216,7 @@ public class ProfileCtrl : MonoBehaviour
 		finally
 		{
 			IDisposable disposable;
-			if ((disposable = (enumerator4 as IDisposable)) != null)
+			if ((disposable = (enumerator3 as IDisposable)) != null)
 			{
 				disposable.Dispose();
 			}
@@ -335,13 +334,13 @@ public class ProfileCtrl : MonoBehaviour
 	public void LoadMaidParamData()
 	{
 		this.UpdateProfileData(false);
-		this.m_lContractType.text = this.GetContractType(this.m_maidStatus.contract);
+		this.m_lContractType.GetComponent<Localize>().SetTerm(this.GetContractType(this.m_maidStatus.contract));
 		this.m_inLastName.value = this.m_maidStatus.lastName;
 		this.m_inFirstName.value = this.m_maidStatus.firstName;
 		ClassData<JobClass.Data> selectedJobClass = this.m_maidStatus.selectedJobClass;
 		if (selectedJobClass != null)
 		{
-			this.m_lMaidClassName.text = selectedJobClass.data.drawName;
+			this.m_lMaidClassName.gameObject.GetComponent<Localize>().SetTerm(selectedJobClass.data.termName);
 			this.m_lMaidClassLevel.text = selectedJobClass.level.ToString();
 			this.m_lMaidClassExp.text = selectedJobClass.cur_exp.ToString();
 			this.m_lMaidClassRequiredExp.text = selectedJobClass.next_exp.ToString();
@@ -360,8 +359,8 @@ 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.text = this.GetCondition(this.m_maidStatus.relation);
-		this.m_lConditionText.text = this.m_maidStatus.conditionText;
+		this.m_lRelation.GetComponent<Localize>().SetTerm(this.GetCondition(this.m_maidStatus.relation));
+		this.m_lConditionText.GetComponent<Localize>().SetTerm(this.m_maidStatus.conditionTermText);
 		this.m_lYotogiPlayCount.text = this.m_maidStatus.playCountYotogi.ToString();
 		this.m_lOthersPlayCount.text = this.m_maidStatus.playCountNightWork.ToString();
 		this.m_lHp.text = this.m_maidStatus.maxHp.ToString();
@@ -382,8 +381,14 @@ public class ProfileCtrl : MonoBehaviour
 		this.m_lHentai.text = this.m_maidStatus.hentai.ToString();
 		this.m_lHousi.text = this.m_maidStatus.housi.ToString();
 		this.m_lMaidPoint.text = SceneEdit.Instance.maidPoint.ToString();
-		string drawName = this.m_maidStatus.personal.drawName;
-		this.m_pPersonal.value = drawName;
+		foreach (KeyValuePair<string, Personal.Data> keyValuePair in ProfileCtrl.m_dicPersonal)
+		{
+			if (this.m_maidStatus.personal.uniqueName == keyValuePair.Value.uniqueName)
+			{
+				this.m_pPersonal.value = keyValuePair.Key;
+				break;
+			}
+		}
 		this.m_pSexualExperience.value = this.GetSelectOptionNameFromSexualExpe(this.m_maidStatus.seikeiken);
 		this.m_lProfileComment.text = this.m_maidStatus.profileComment;
 		this.m_inFreeComment.value = this.m_maidStatus.freeComment;
@@ -422,10 +427,24 @@ public class ProfileCtrl : MonoBehaviour
 
 	public void SetSexualExperience(string selectValue)
 	{
-		Seikeiken initSeikeiken;
-		if (ProfileCtrl.m_dicSexualExperience.TryGetValue(selectValue, out initSeikeiken))
+		Seikeiken[] array = new Seikeiken[]
+		{
+			Seikeiken.No_No,
+			Seikeiken.Yes_No,
+			Seikeiken.No_Yes,
+			Seikeiken.Yes_Yes
+		};
+		foreach (Seikeiken seikeiken in array)
 		{
-			this.m_maidStatus.seikeiken = (this.m_maidStatus.initSeikeiken = initSeikeiken);
+			if (EnumConvert.GetTerm(seikeiken) == selectValue)
+			{
+				Seikeiken initSeikeiken = Seikeiken.No_No;
+				if (ProfileCtrl.m_dicSexualExperience.TryGetValue(EnumConvert.GetString(seikeiken), out initSeikeiken))
+				{
+					this.m_maidStatus.seikeiken = (this.m_maidStatus.initSeikeiken = initSeikeiken);
+				}
+				break;
+			}
 		}
 	}
 
@@ -435,7 +454,7 @@ public class ProfileCtrl : MonoBehaviour
 		{
 			if (keyValuePair.Value == sexualExperience)
 			{
-				return keyValuePair.Key;
+				return EnumConvert.GetTerm(keyValuePair.Value);
 			}
 		}
 		return null;
@@ -443,12 +462,12 @@ public class ProfileCtrl : MonoBehaviour
 
 	private string GetContractType(Contract contractType)
 	{
-		return EnumConvert.GetString(contractType);
+		return EnumConvert.GetTerm(contractType);
 	}
 
 	private string GetCondition(Relation relation)
 	{
-		return EnumConvert.GetString(relation);
+		return EnumConvert.GetTerm(relation);
 	}
 
 	private string AdjustStrLengthIfOver(string str, int length)

+ 4 - 5
Assembly-CSharp/RandomPresetCtrl.cs

@@ -16,10 +16,6 @@ public class RandomPresetCtrl : MonoBehaviour
 				bool condition = csvParser.Open(afileBase);
 				NDebug.Assert(condition, text + "\nopen failed.");
 				NDebug.Assert(csvParser.max_cell_y - 1 == this.categoryTitleLabels.Length, text + "に書かれているカテゴリー数とオブジェクト数が一致していません");
-				for (int i = 1; i < csvParser.max_cell_y; i++)
-				{
-					this.categoryTitleLabels[i - 1].text = csvParser.GetCellAsString(0, i);
-				}
 			}
 		}
 		this.LoadRandomLogicParamter();
@@ -61,7 +57,6 @@ public class RandomPresetCtrl : MonoBehaviour
 						mpnmapping.m_buttonName,
 						"]が見つかりませんでした"
 					}));
-					UTY.GetChildObject(childObject, "Title", false).GetComponent<UILabel>().text = mpnmapping.m_buttonTitle;
 					UIButton component = childObject.GetComponent<UIButton>();
 					if (!flag)
 					{
@@ -109,6 +104,7 @@ public class RandomPresetCtrl : MonoBehaviour
 		foreach (KeyValuePair<string, RandomPresetButton> keyValuePair in this.m_dicRandomPresetBtn)
 		{
 			RandomPresetButton value = keyValuePair.Value;
+			EventDelegate.Add(value.m_btnButton.onClick, new EventDelegate.Callback(this.randomRandomPresetMgr.OnButtonClick));
 			if (value.m_eButtonType == SceneEditInfo.CCateNameType.EType.Item)
 			{
 				int num = maid.GetProp(value.m_mpn).nFileNameRID;
@@ -755,6 +751,9 @@ public class RandomPresetCtrl : MonoBehaviour
 	}
 
 	[SerializeField]
+	private RandomPresetMgr randomRandomPresetMgr;
+
+	[SerializeField]
 	private UILabel[] categoryTitleLabels;
 
 	private SceneEdit m_sceneEdit;

+ 0 - 1
Assembly-CSharp/RenderHeads/Media/AVProVideo/WindowsMediaPlayer.cs

@@ -793,7 +793,6 @@ namespace RenderHeads.Media.AVProVideo
 
 		private int _textureQuality = QualitySettings.masterTextureLimit;
 
-		[StructLayout(LayoutKind.Sequential, Size = 1)]
 		private struct Native
 		{
 			[DllImport("AVProVideo")]

+ 1 - 1
Assembly-CSharp/SaveAndLoadMgr.cs

@@ -124,7 +124,7 @@ public class SaveAndLoadMgr : BaseCreatePanel
 	public void ClosePanelAfterAction<T>(Func<T, bool> action, T param)
 	{
 		TweenAlpha tweenAlpha = TweenAlpha.Begin(this.fadeTargetPanel, 0.5f, 0f);
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			if (action != null)
 			{

+ 40 - 16
Assembly-CSharp/ScenarioData.cs

@@ -65,12 +65,15 @@ public class ScenarioData
 				action(ScenarioData.PlayableCondition.施設, i);
 				break;
 			case 14:
-				this.IconName = csv.GetCellAsString(i, cy);
+				action(ScenarioData.PlayableCondition.NTRブロック, i);
 				break;
 			case 15:
-				this.ScenarioScript = csv.GetCellAsString(i, cy);
+				this.IconName = csv.GetCellAsString(i, cy);
 				break;
 			case 16:
+				this.ScenarioScript = csv.GetCellAsString(i, cy);
+				break;
+			case 17:
 			{
 				string cellAsString = csv.GetCellAsString(i, cy);
 				if (!string.IsNullOrEmpty(cellAsString))
@@ -79,19 +82,19 @@ public class ScenarioData
 				}
 				break;
 			}
-			case 17:
+			case 18:
 				this.EventMaidNum = ((!csv.IsCellToExistData(i, cy)) ? 0 : csv.GetCellAsInteger(i, cy));
 				break;
-			case 18:
+			case 19:
 				this.IsImportant = (csv.GetCellAsString(i, cy) == "重要");
 				break;
-			case 19:
+			case 20:
 				this.IsOncePlayOnly = !csv.IsCellToExistData(i, cy);
 				break;
-			case 20:
+			case 21:
 				this.Notification = csv.GetCellAsString(i, cy);
 				break;
-			case 21:
+			case 22:
 				this.ConditionText = csv.GetCellAsString(i, cy).Replace("\n", "&").Split(new char[]
 				{
 					'&'
@@ -296,7 +299,7 @@ public class ScenarioData
 			}
 		};
 		bool maid_check = false;
-		Action action2 = delegate
+		Action action2 = delegate()
 		{
 			if (!maid_check && maid_update)
 			{
@@ -364,12 +367,12 @@ public class ScenarioData
 								if (text == "移籍メイド")
 								{
 									add_maid(stockMaid2);
-									goto IL_427;
+									goto IL_43F;
 								}
 								if (text == "雇用移籍メイド")
 								{
 									action(stockMaid2, !stockMaid2.status.mainChara);
-									goto IL_427;
+									goto IL_43F;
 								}
 							}
 							string convertPersonal = GameMain.Instance.ScenarioSelectMgr.GetConvertPersonal(stockMaid2);
@@ -378,7 +381,7 @@ public class ScenarioData
 								this.IsFixedMaid = true;
 								if (text == "固定移籍メイド")
 								{
-									action(stockMaid2, stockMaid2.status.mainChara);
+									action(stockMaid2, stockMaid2.status.mainChara && ScenarioData.m_MainMaidList.Contains(convertPersonal));
 								}
 								else
 								{
@@ -390,7 +393,7 @@ public class ScenarioData
 								action(stockMaid2, "移籍" + convertPersonal == text);
 							}
 						}
-						IL_427:;
+						IL_43F:;
 					}
 					else if (stockMaid2.status.heroineType == HeroineType.Original)
 					{
@@ -399,12 +402,12 @@ public class ScenarioData
 							if (text == "オリジナルメイド")
 							{
 								add_maid(stockMaid2);
-								goto IL_553;
+								goto IL_57F;
 							}
 							if (text == "雇用メイド")
 							{
 								action(stockMaid2, !stockMaid2.status.mainChara);
-								goto IL_553;
+								goto IL_57F;
 							}
 						}
 						string convertPersonal2 = GameMain.Instance.ScenarioSelectMgr.GetConvertPersonal(stockMaid2);
@@ -413,7 +416,7 @@ public class ScenarioData
 							this.IsFixedMaid = true;
 							if (text == "固定メイド")
 							{
-								action(stockMaid2, stockMaid2.status.mainChara);
+								action(stockMaid2, stockMaid2.status.mainChara && ScenarioData.m_MainMaidList.Contains(convertPersonal2));
 							}
 							else
 							{
@@ -425,7 +428,7 @@ public class ScenarioData
 							action(stockMaid2, convertPersonal2 == text);
 						}
 					}
-					IL_553:;
+					IL_57F:;
 				}
 				break;
 			}
@@ -585,6 +588,16 @@ public class ScenarioData
 				}
 				break;
 			}
+			case ScenarioData.PlayableCondition.NTRブロック:
+				if (text == "○")
+				{
+					set_ok(GameMain.Instance.CharacterMgr.status.lockNTRPlay);
+				}
+				else
+				{
+					set_ok(!GameMain.Instance.CharacterMgr.status.lockNTRPlay);
+				}
+				break;
 			}
 		}
 		return isOk;
@@ -714,6 +727,16 @@ public class ScenarioData
 		this.IsOncePlayed = false;
 	}
 
+	private static string[] m_MainMaidList = new string[]
+	{
+		"無垢",
+		"真面目",
+		"凜デレ",
+		"純真",
+		"クーデレ",
+		"ツンデレ"
+	};
+
 	public readonly int ID;
 
 	public readonly Dictionary<ScenarioData.PlayableCondition, ScenarioData.PlayableData> m_PlayableData = new Dictionary<ScenarioData.PlayableCondition, ScenarioData.PlayableData>();
@@ -757,6 +780,7 @@ public class ScenarioData
 		関係,
 		アイテム,
 		施設,
+		NTRブロック,
 		MAX
 	}
 

+ 6 - 6
Assembly-CSharp/SceneCasino.cs

@@ -97,7 +97,7 @@ public class SceneCasino : KasaSceneMgr<SceneCasino>
 			{
 				SceneCasino.MenuButtonPair pair = enumerator.Current;
 				SceneCasino $this = this;
-				pair.Button.onClick.AddListener(delegate
+				pair.Button.onClick.AddListener(delegate()
 				{
 					$this.SelectMenu(pair.Menu);
 				});
@@ -125,27 +125,27 @@ public class SceneCasino : KasaSceneMgr<SceneCasino>
 	private void Start()
 	{
 		ExChangeUI instance = ExChangeUI.Instance;
-		instance.FadeInStartAction = (Action)Delegate.Combine(instance.FadeInStartAction, new Action(delegate
+		instance.FadeInStartAction = (Action)Delegate.Combine(instance.FadeInStartAction, new Action(delegate()
 		{
 			this.m_CasinoMenu.interactable = false;
 		}));
 		ExChangeUI instance2 = ExChangeUI.Instance;
-		instance2.FadeInStartAction = (Action)Delegate.Combine(instance2.FadeInStartAction, new Action(delegate
+		instance2.FadeInStartAction = (Action)Delegate.Combine(instance2.FadeInStartAction, new Action(delegate()
 		{
 			this.m_NguiEnable = false;
 		}));
 		ExChangeUI instance3 = ExChangeUI.Instance;
-		instance3.FadeOutStartAction = (Action)Delegate.Combine(instance3.FadeOutStartAction, new Action(delegate
+		instance3.FadeOutStartAction = (Action)Delegate.Combine(instance3.FadeOutStartAction, new Action(delegate()
 		{
 			this.m_CasinoMenu.interactable = true;
 		}));
 		ExChangeUI instance4 = ExChangeUI.Instance;
-		instance4.FadeOutStartAction = (Action)Delegate.Combine(instance4.FadeOutStartAction, new Action(delegate
+		instance4.FadeOutStartAction = (Action)Delegate.Combine(instance4.FadeOutStartAction, new Action(delegate()
 		{
 			this.m_NguiEnable = true;
 		}));
 		ExChangeUI instance5 = ExChangeUI.Instance;
-		instance5.FadeOutStartAction = (Action)Delegate.Combine(instance5.FadeOutStartAction, new Action(delegate
+		instance5.FadeOutStartAction = (Action)Delegate.Combine(instance5.FadeOutStartAction, new Action(delegate()
 		{
 			ExChangeUI.Instance.SetButtonState(true);
 		}));

+ 5 - 5
Assembly-CSharp/SceneCasinoShop.cs

@@ -62,12 +62,12 @@ public class SceneCasinoShop : KasaSceneMgr<SceneCasinoShop>
 		ExChangeUI instance = ExChangeUI.Instance;
 		instance.FadeOutStartAction = (Action)Delegate.Combine(instance.FadeOutStartAction, new Action(this.UpdateUIState));
 		ExChangeUI instance2 = ExChangeUI.Instance;
-		instance2.FadeInStartAction = (Action)Delegate.Combine(instance2.FadeInStartAction, new Action(delegate
+		instance2.FadeInStartAction = (Action)Delegate.Combine(instance2.FadeInStartAction, new Action(delegate()
 		{
 			this.m_NguiEnable = false;
 		}));
 		ExChangeUI instance3 = ExChangeUI.Instance;
-		instance3.FadeOutStartAction = (Action)Delegate.Combine(instance3.FadeOutStartAction, new Action(delegate
+		instance3.FadeOutStartAction = (Action)Delegate.Combine(instance3.FadeOutStartAction, new Action(delegate()
 		{
 			this.m_NguiEnable = true;
 		}));
@@ -106,7 +106,7 @@ public class SceneCasinoShop : KasaSceneMgr<SceneCasinoShop>
 		this.m_TargetPos = head_bone.position + this.m_HeadCamOffset;
 		base.SetCamera();
 		this.m_CamMoveSupport.SaveCameraPosition();
-		this.<LoadEnd>__BaseCallProxy0();
+		base.LoadEnd();
 		yield break;
 	}
 
@@ -191,7 +191,7 @@ public class SceneCasinoShop : KasaSceneMgr<SceneCasinoShop>
 		this.m_TrywearMaid.AllProcPropSeqStart();
 		if (costume_type != Facility.CostumeType.Heroine)
 		{
-			Action end_call = delegate
+			Action end_call = delegate()
 			{
 				if (costume_type != Facility.CostumeType.Default)
 				{
@@ -242,7 +242,7 @@ public class SceneCasinoShop : KasaSceneMgr<SceneCasinoShop>
 			}
 		}
 		this.m_TrywearItem = this.m_SelectTrywear;
-		Action action = delegate
+		Action action = delegate()
 		{
 			this.m_TrywearItem.TryWear(this.m_TrywearMaid);
 			this.m_TrywearMaid.AllProcPropSeqStart();

+ 39 - 19
Assembly-CSharp/SceneEdit.cs

@@ -4,6 +4,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Text;
 using System.Text.RegularExpressions;
+using I2.Loc;
 using Kasizuki;
 using MaidStatus;
 using SceneEditWindow;
@@ -460,23 +461,23 @@ public class SceneEdit : MonoBehaviour
 			Dictionary<SceneEdit.TouchType, Action> dictionary3 = new Dictionary<SceneEdit.TouchType, Action>();
 			dictionary3.Add(SceneEdit.TouchType.Head, delegate
 			{
-				this.$this.OnTouchJump(SceneEdit.TouchType.Head);
+				this.OnTouchJump(SceneEdit.TouchType.Head);
 			});
 			dictionary3.Add(SceneEdit.TouchType.Bust, delegate
 			{
-				this.$this.OnTouchJump(SceneEdit.TouchType.Bust);
+				this.OnTouchJump(SceneEdit.TouchType.Bust);
 			});
 			dictionary3.Add(SceneEdit.TouchType.UpperBody, delegate
 			{
-				this.$this.OnTouchJump(SceneEdit.TouchType.UpperBody);
+				this.OnTouchJump(SceneEdit.TouchType.UpperBody);
 			});
 			dictionary3.Add(SceneEdit.TouchType.LowerBody, delegate
 			{
-				this.$this.OnTouchJump(SceneEdit.TouchType.LowerBody);
+				this.OnTouchJump(SceneEdit.TouchType.LowerBody);
 			});
 			dictionary3.Add(SceneEdit.TouchType.Leg, delegate
 			{
-				this.$this.OnTouchJump(SceneEdit.TouchType.Leg);
+				this.OnTouchJump(SceneEdit.TouchType.Leg);
 			});
 			for (int i = 0; i < this.touchJumpColliderList.Count; i++)
 			{
@@ -526,12 +527,12 @@ public class SceneEdit : MonoBehaviour
 		this.pauseIconWindow.onSelectPauseEvent = delegate(PoseIconData.ItemData data)
 		{
 			data.ExecScript();
-			Maid maid = this.$this.m_maid;
+			Maid maid = this.m_maid;
 			Transform bone = maid.body0.GetBone(data.targetBoneName);
 			if (bone != null)
 			{
-				this.$this.m_cameraMoveSupport.SaveCameraPosition(bone.position, 3f, new Vector2(-180f, 11.5528f));
-				this.$this.CameraReset(0f);
+				this.m_cameraMoveSupport.SaveCameraPosition(bone.position, 3f, new Vector2(-180f, 11.5528f));
+				this.CameraReset(0f);
 			}
 		};
 		this.pauseIconWindow.Exec(initPoseId);
@@ -1396,7 +1397,8 @@ public class SceneEdit : MonoBehaviour
 			UnityEngine.Object @object = Resources.Load("SceneEdit/MainMenu/Prefab/ButtonCate");
 			GameObject gameObject = NGUITools.AddChild(this.m_Panel_Category.goGrid, @object as GameObject);
 			UILabel uilabel = gameObject.GetComponentsInChildren<UILabel>(true)[0];
-			uilabel.text = scategory.m_strCateName;
+			Localize localize = uilabel.gameObject.AddComponent<Localize>();
+			localize.SetTerm("SceneEdit/カテゴリー/" + scategory.m_strCateName);
 			ButtonEdit buttonEdit = gameObject.GetComponentsInChildren<ButtonEdit>(true)[0];
 			buttonEdit.m_Category = scategory;
 			UIButton uibutton = gameObject.GetComponentsInChildren<UIButton>(true)[0];
@@ -1467,7 +1469,8 @@ public class SceneEdit : MonoBehaviour
 			UnityEngine.Object @object = Resources.Load("SceneEdit/MainMenu/Prefab/ButtonCate");
 			GameObject gameObject = NGUITools.AddChild(this.m_Panel_PartsType.goGrid, @object as GameObject);
 			UILabel uilabel = gameObject.GetComponentsInChildren<UILabel>(true)[0];
-			uilabel.text = spartsType.m_strPartsTypeName;
+			Localize localize = uilabel.gameObject.AddComponent<Localize>();
+			localize.SetTerm("SceneEdit/カテゴリー/サブ/" + spartsType.m_strPartsTypeName);
 			ButtonEdit buttonEdit = gameObject.GetComponentsInChildren<ButtonEdit>(true)[0];
 			buttonEdit.m_PartsType = spartsType;
 			UIButton uibutton = gameObject.GetComponentsInChildren<UIButton>(true)[0];
@@ -2323,7 +2326,7 @@ public class SceneEdit : MonoBehaviour
 		ButtonEdit componentInChildren = UIEventTrigger.current.GetComponentInChildren<ButtonEdit>();
 		SceneEdit.SMenuItem menuItem = componentInChildren.m_MenuItem;
 		Vector3 position = UIEventTrigger.current.transform.parent.position;
-		this.m_info.Open(position, menuItem.m_texIcon, menuItem.m_strMenuName, menuItem.m_strInfo, 0);
+		this.m_info.Open(position, menuItem.m_texIcon, menuItem.menuNameCurrentLanguage, menuItem.infoTextCurrentLanguage, 0);
 	}
 
 	public void HoverOverCallbackOnGroup()
@@ -2331,7 +2334,7 @@ public class SceneEdit : MonoBehaviour
 		ButtonEdit componentInChildren = UIEventTrigger.current.GetComponentInChildren<ButtonEdit>();
 		SceneEdit.SMenuItem menuItem = componentInChildren.m_MenuItem;
 		Vector3 position = UIEventTrigger.current.transform.parent.position;
-		this.m_info.Open(position, menuItem.m_texIcon, menuItem.m_strMenuName, menuItem.m_strInfo, (menuItem.m_listMember == null) ? 0 : menuItem.m_listMember.Count);
+		this.m_info.Open(position, menuItem.m_texIcon, menuItem.menuNameCurrentLanguage, menuItem.infoTextCurrentLanguage, (menuItem.m_listMember == null) ? 0 : menuItem.m_listMember.Count);
 	}
 
 	public void HoverOutCallback()
@@ -2506,11 +2509,11 @@ public class SceneEdit : MonoBehaviour
 
 	public void CallHowToNameDialog()
 	{
-		this.m_FFNameDlg.Show("名前と苗字のどちらで呼びますか?", "苗字で呼ぶ", delegate
+		this.m_FFNameDlg.ShowFromLanguageTerm("Dialog/名前と苗字のどちらで呼びますか?", "Dialog/result/苗字で呼ぶ", delegate
 		{
 			this.m_FFNameDlg.Close();
 			this.m_maid.status.isFirstNameCall = false;
-		}, "名前で呼ぶ", delegate
+		}, "Dialog/result/名前で呼ぶ", delegate
 		{
 			this.m_FFNameDlg.Close();
 			this.m_maid.status.isFirstNameCall = true;
@@ -2543,7 +2546,7 @@ public class SceneEdit : MonoBehaviour
 			maid.body0.SetMaskMode(TBody.MaskMode.None);
 			if (this.modeType == SceneEdit.ModeType.OriginalChara || this.modeType == SceneEdit.ModeType.MainChara)
 			{
-				this.m_FFNameDlg.Show("名前と苗字のどちらで呼びますか?", "苗字で呼ぶ", new FFNameDialog.OnClick(this.OnFFNameFamily), "名前で呼ぶ", new FFNameDialog.OnClick(this.OnFFNameFirst));
+				this.m_FFNameDlg.ShowFromLanguageTerm("Dialog/名前と苗字のどちらで呼びますか?", "Dialog/result/苗字で呼ぶ", new FFNameDialog.OnClick(this.OnFFNameFamily), "Dialog/result/名前で呼ぶ", new FFNameDialog.OnClick(this.OnFFNameFirst));
 			}
 			else
 			{
@@ -2569,7 +2572,7 @@ public class SceneEdit : MonoBehaviour
 	private void Conform()
 	{
 		this.m_maid.boMabataki = false;
-		GameMain.Instance.SysDlg.Show("このメイドにしますか?", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.OnEndDlgOk), new SystemDialog.OnClick(this.OnEndDlgCancel));
+		GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/このメイドにしますか?", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.OnEndDlgOk), new SystemDialog.OnClick(this.OnEndDlgCancel));
 	}
 
 	private void OnEndDlgOk()
@@ -2915,8 +2918,8 @@ public class SceneEdit : MonoBehaviour
 			MaidColliderCollect.RemoveColliderAll(maid);
 			maid.body0.SetMaskMode(TBody.MaskMode.None);
 			maid.OpenMouthLookTooth(false);
-			maid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-			maid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+			maid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+			maid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 			maid.Visible = false;
 		}
 		this.SetCameraOffset(SceneEdit.CAM_OFFS.CENTER);
@@ -3133,6 +3136,22 @@ public class SceneEdit : MonoBehaviour
 
 	public class SMenuItem : IDisposable
 	{
+		public string menuNameCurrentLanguage
+		{
+			get
+			{
+				return this.m_strMenuName;
+			}
+		}
+
+		public string infoTextCurrentLanguage
+		{
+			get
+			{
+				return this.m_strInfo;
+			}
+		}
+
 		public void Dispose()
 		{
 			UnityEngine.Object.DestroyImmediate(this.m_goButton);
@@ -3555,7 +3574,8 @@ public class SceneEdit : MonoBehaviour
 			this.gcSlider = this.goMain.GetComponentsInChildren<UISlider>(true)[0];
 			GameObject childObject = UTY.GetChildObject(this.goMain, "CategoryTitle/Name", false);
 			this.gcLabel = childObject.GetComponent<UILabel>();
-			this.gcLabel.text = f_mi.m_strMenuName;
+			Localize localize = this.gcLabel.gameObject.AddComponent<Localize>();
+			localize.SetTerm("SceneEdit/カテゴリー/スライダー/" + f_mi.m_strMenuName);
 			GameObject childObject2 = UTY.GetChildObject(this.goMain, "CategoryTitle/Number/Value", false);
 			this.gcValue = childObject2.GetComponent<UILabel>();
 			this.gcValue.text = "000";

+ 2 - 2
Assembly-CSharp/SceneEditNameSettingPanel.cs

@@ -19,12 +19,12 @@ public class SceneEditNameSettingPanel : MonoBehaviour
 		EventDelegate.Add(this.firstNameInput.onChange, new EventDelegate.Callback(this.OnInputName));
 		EventDelegate.Add(this.enterButton.onClick, new EventDelegate.Callback(this.Close));
 		EventDelegate.Add(this.cancelButton.onClick, new EventDelegate.Callback(this.Chancel));
-		EventDelegate.Add(this.lastNameRandomButton.onClick, delegate
+		EventDelegate.Add(this.lastNameRandomButton.onClick, delegate()
 		{
 			this.lastNameInput.RemoveFocus();
 			this.lastNameInput.value = MaidRandomName.GetLastName();
 		});
-		EventDelegate.Add(this.firstNameRandomButton.onClick, delegate
+		EventDelegate.Add(this.firstNameRandomButton.onClick, delegate()
 		{
 			this.firstNameInput.RemoveFocus();
 			this.firstNameInput.value = MaidRandomName.GetFirstName();

+ 1 - 1
Assembly-CSharp/SceneEditWindow/BaseIconWindow.cs

@@ -18,7 +18,7 @@ namespace SceneEditWindow
 				UIWFTabButton uiwftabButton = this.CreateItemObject(this.itemGrit.gameObject, list[i]);
 				uiwftabButton.name = list[i].ToString();
 				this.tabButtonDic.Add(list[i], uiwftabButton);
-				EventDelegate.Add(uiwftabButton.onSelect, delegate
+				EventDelegate.Add(uiwftabButton.onSelect, delegate()
 				{
 					if (!UIWFSelectButton.selected)
 					{

+ 6 - 3
Assembly-CSharp/SceneEditWindow/CustomPartsWindow.cs

@@ -403,10 +403,13 @@ namespace SceneEditWindow
 						GameMain.Instance.OvrMgr.ovr_obj.right_controller.grip_collider.ResetGrip();
 					}
 					MaidColliderCollect component = this.maid.GetComponent<MaidColliderCollect>();
-					List<CapsuleCollider> collider = component.GetCollider(MaidColliderCollect.ColliderType.Grab);
-					foreach (CapsuleCollider capsuleCollider in collider)
+					if (component != null)
 					{
-						capsuleCollider.gameObject.SetActive(value);
+						List<CapsuleCollider> collider = component.GetCollider(MaidColliderCollect.ColliderType.Grab);
+						foreach (CapsuleCollider capsuleCollider in collider)
+						{
+							capsuleCollider.gameObject.SetActive(value);
+						}
 					}
 				}
 			}

+ 11 - 15
Assembly-CSharp/SceneEditWindow/PresetSaveWindow.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 using wf;
 
@@ -19,11 +20,11 @@ namespace SceneEditWindow
 		public override void Awake()
 		{
 			base.Awake();
-			for (int i = 0; i < PresetSaveWindow.IconTexFileNames.Length; i++)
+			for (int i = 0; i < PresetSaveWindow.termNames.Length; i++)
 			{
-				UIWFTabButton uiwftabButton = this.CreateItemObject(this.itemGrit.gameObject, PresetSaveWindow.IconTexFileNames[i]);
+				UIWFTabButton uiwftabButton = this.CreateItemObject(this.itemGrit.gameObject, PresetSaveWindow.termNames[i]);
 				uiwftabButton.name = i.ToString();
-				EventDelegate.Add(uiwftabButton.onClick, delegate
+				EventDelegate.Add(uiwftabButton.onClick, delegate()
 				{
 					this.OnClickItem((PresetSaveWindow.SaveType)int.Parse(UIButton.current.name));
 				});
@@ -48,23 +49,18 @@ namespace SceneEditWindow
 			}
 		}
 
-		protected UIWFTabButton CreateItemObject(GameObject parent, string textFileName)
+		protected UIWFTabButton CreateItemObject(GameObject parent, string termName)
 		{
-			GameObject gameObject = Utility.CreatePrefab(parent, "SceneEdit/WindowParts/PoseIconItem", true);
-			if (!this.texDic.ContainsKey(textFileName))
-			{
-				this.texDic.Add(textFileName, ImportCM.CreateTexture(textFileName));
-			}
-			UITexture component = gameObject.GetComponent<UITexture>();
-			component.mainTexture = this.texDic[textFileName];
+			GameObject gameObject = Utility.CreatePrefab(parent, "SceneEdit/WindowParts/PresetSaveItem", true);
+			gameObject.GetComponentInChildren<Localize>().SetTerm(termName);
 			return gameObject.GetComponent<UIWFTabButton>();
 		}
 
-		public static readonly string[] IconTexFileNames = new string[]
+		public static readonly string[] termNames = new string[]
 		{
-			"cm3d2_edit_priset_buttom_clothes_body.tex",
-			"cm3d2_edit_priset_buttom_clothes.tex",
-			"cm3d2_edit_preset_buttom_body.tex"
+			"SceneEdit/プリセット/スプライト/体と服80",
+			"SceneEdit/プリセット/スプライト/服80",
+			"SceneEdit/プリセット/スプライト/体80"
 		};
 
 		[SerializeField]

+ 1 - 1
Assembly-CSharp/SceneEditWindow/UndressWindow.cs

@@ -23,7 +23,7 @@ namespace SceneEditWindow
 			{
 				UIWFTabButton uiwftabButton = this.CreateItemObject(this.itemGrit.gameObject, UndressWindow.IconTexFileNames[i]);
 				uiwftabButton.name = i.ToString();
-				EventDelegate.Add(uiwftabButton.onClick, delegate
+				EventDelegate.Add(uiwftabButton.onClick, delegate()
 				{
 					this.OnClickItem((UndressWindow.UndressType)int.Parse(UIButton.current.name));
 				});

+ 1 - 1
Assembly-CSharp/SceneEditWindow/VoiceIconWindow.cs

@@ -24,7 +24,7 @@ namespace SceneEditWindow
 			{
 				UIWFTabButton uiwftabButton = this.CreateItemObject(this.itemGrit.gameObject, VoiceIconData.ItemData.EmotionTexFileNames[i]);
 				uiwftabButton.name = i.ToString();
-				EventDelegate.Add(uiwftabButton.onClick, delegate
+				EventDelegate.Add(uiwftabButton.onClick, delegate()
 				{
 					this.OnClickItem((VoiceIconData.ItemData.EmotionType)int.Parse(UIButton.current.name));
 				});

+ 57 - 49
Assembly-CSharp/SceneFacilityManagement.cs

@@ -72,7 +72,7 @@ public class SceneFacilityManagement : MonoBehaviour
 	{
 		if (this.m_StartDestroyEventObject != null)
 		{
-			this.m_StartDestroyEventObject.m_EventOnStart.AddListener(delegate
+			this.m_StartDestroyEventObject.m_EventOnStart.AddListener(delegate()
 			{
 				GameMain.Instance.SoundMgr.PlayBGM(this.m_PlayBGM, 0.5f, true);
 			});
@@ -407,7 +407,7 @@ public class SceneFacilityManagement : MonoBehaviour
 		this.m_UIButtonCANCEL.gameObject.SetActive(true);
 		this.m_UIButtonCANCEL.onClick.RemoveAllListeners();
 		this.m_UIButtonCANCEL.onClick.AddListener(new UnityAction(this.OpenFacilityUIConstruction));
-		this.m_UIButtonCANCEL.onClick.AddListener(delegate
+		this.m_UIButtonCANCEL.onClick.AddListener(delegate()
 		{
 			this.m_UIMainMenu.gameObject.SetActive(true);
 		});
@@ -419,6 +419,8 @@ public class SceneFacilityManagement : MonoBehaviour
 
 	private void SetUpFacilityTypeList()
 	{
+		SceneFacilityManagement.<SetUpFacilityTypeList>c__AnonStorey4 <SetUpFacilityTypeList>c__AnonStorey = new SceneFacilityManagement.<SetUpFacilityTypeList>c__AnonStorey4();
+		<SetUpFacilityTypeList>c__AnonStorey.$this = this;
 		uGUIListViewer component = this.m_UIFacilityTypeList.GetComponent<uGUIListViewer>();
 		Facility facility;
 		if (this.FacilityMgr.GetNextDayFacilityExist(this.m_SelectingFacilityIndex))
@@ -435,7 +437,7 @@ public class SceneFacilityManagement : MonoBehaviour
 			num = facility.param.typeID;
 		}
 		Facility.FacilityStatus[] facilityStatusArray = FacilityDataTable.GetFacilityStatusArray(true);
-		List<Facility.FacilityStatus> canBePlaceFacilityDataArray = new List<Facility.FacilityStatus>();
+		<SetUpFacilityTypeList>c__AnonStorey.canBePlaceFacilityDataArray = new List<Facility.FacilityStatus>();
 		Facility value;
 		for (int j = 0; j < facilityStatusArray.Length; j++)
 		{
@@ -498,14 +500,14 @@ public class SceneFacilityManagement : MonoBehaviour
 							goto IL_280;
 						}
 					}
-					canBePlaceFacilityDataArray.Add(facilityStatusArray[j]);
+					<SetUpFacilityTypeList>c__AnonStorey.canBePlaceFacilityDataArray.Add(facilityStatusArray[j]);
 				}
 			}
 			IL_280:;
 		}
-		component.Show<Transform>(canBePlaceFacilityDataArray.Count, delegate(int i, Transform trans)
+		component.Show<Transform>(<SetUpFacilityTypeList>c__AnonStorey.canBePlaceFacilityDataArray.Count, delegate(int i, Transform trans)
 		{
-			Facility.FacilityStatus facilityStatus = canBePlaceFacilityDataArray[i];
+			Facility.FacilityStatus facilityStatus = <SetUpFacilityTypeList>c__AnonStorey.canBePlaceFacilityDataArray[i];
 			Toggle componentInChildren = trans.GetComponentInChildren<Toggle>();
 			Text componentInChildren2 = trans.GetComponentInChildren<Text>();
 			componentInChildren2.text = facilityStatus.name;
@@ -515,27 +517,27 @@ public class SceneFacilityManagement : MonoBehaviour
 				{
 					return;
 				}
-				this.m_CreatingFacility.Init(facilityStatus.typeID);
-				this.ShowFacilityPowerUpList(this.m_CreatingFacility);
-				long num2 = this.CalcNowCost();
+				<SetUpFacilityTypeList>c__AnonStorey.m_CreatingFacility.Init(facilityStatus.typeID);
+				<SetUpFacilityTypeList>c__AnonStorey.ShowFacilityPowerUpList(<SetUpFacilityTypeList>c__AnonStorey.m_CreatingFacility);
+				long num2 = <SetUpFacilityTypeList>c__AnonStorey.CalcNowCost();
 				num2 += (long)FacilityDataTable.GetFacilityDefaultCost(facilityStatus.typeID, true);
-				if (this.FacilityMgr.GetNextDayFacilityExist(this.m_SelectingFacilityIndex))
+				if (<SetUpFacilityTypeList>c__AnonStorey.FacilityMgr.GetNextDayFacilityExist(<SetUpFacilityTypeList>c__AnonStorey.m_SelectingFacilityIndex))
 				{
-					Facility nextDayFacility = this.FacilityMgr.GetNextDayFacility(this.m_SelectingFacilityIndex);
+					Facility nextDayFacility = <SetUpFacilityTypeList>c__AnonStorey.FacilityMgr.GetNextDayFacility(<SetUpFacilityTypeList>c__AnonStorey.m_SelectingFacilityIndex);
 					if (nextDayFacility)
 					{
 						num2 -= (long)FacilityDataTable.GetFacilityDefaultCost(nextDayFacility.param.typeID, true);
 					}
 				}
-				this.nowCost = num2;
-				this.m_CreatingFacility.Init(facilityStatus.typeID);
-				this.SetOKButtonEnable(this.IsOKButtonEnable());
-				if (!this.m_UIFacilityInfoMiniWindow.gameObject.activeSelf)
+				<SetUpFacilityTypeList>c__AnonStorey.nowCost = num2;
+				<SetUpFacilityTypeList>c__AnonStorey.m_CreatingFacility.Init(facilityStatus.typeID);
+				<SetUpFacilityTypeList>c__AnonStorey.SetOKButtonEnable(<SetUpFacilityTypeList>c__AnonStorey.IsOKButtonEnable());
+				if (!<SetUpFacilityTypeList>c__AnonStorey.m_UIFacilityInfoMiniWindow.gameObject.activeSelf)
 				{
-					this.m_UIFacilityInfoMiniWindow.gameObject.SetActive(true);
+					<SetUpFacilityTypeList>c__AnonStorey.m_UIFacilityInfoMiniWindow.gameObject.SetActive(true);
 				}
-				this.m_UIFacilityInfoMiniWindow.SetFacilityInfo(this.m_CreatingFacility, true);
-				this.m_UIFacilityInfoMiniWindow.viewType = FacilityInfoUI.ViewType.ConstructMode;
+				<SetUpFacilityTypeList>c__AnonStorey.m_UIFacilityInfoMiniWindow.SetFacilityInfo(<SetUpFacilityTypeList>c__AnonStorey.m_CreatingFacility, true);
+				<SetUpFacilityTypeList>c__AnonStorey.m_UIFacilityInfoMiniWindow.viewType = FacilityInfoUI.ViewType.ConstructMode;
 			});
 		});
 	}
@@ -792,6 +794,8 @@ public class SceneFacilityManagement : MonoBehaviour
 
 	public void OpenNowFacilityList(bool isOn)
 	{
+		SceneFacilityManagement.<OpenNowFacilityList>c__AnonStoreyB <OpenNowFacilityList>c__AnonStoreyB = new SceneFacilityManagement.<OpenNowFacilityList>c__AnonStoreyB();
+		<OpenNowFacilityList>c__AnonStoreyB.$this = this;
 		if (!isOn)
 		{
 			return;
@@ -814,39 +818,41 @@ public class SceneFacilityManagement : MonoBehaviour
 		this.m_UIButtonOK.onClick.AddListener(new UnityAction(this.ButtonEvent_OK_OpenMainMenu));
 		this.SetOKButtonEnable(true);
 		Facility[] facilityArray = this.FacilityMgr.GetFacilityArray();
-		List<Facility> enableFacilityArray = new List<Facility>();
+		<OpenNowFacilityList>c__AnonStoreyB.enableFacilityArray = new List<Facility>();
 		for (int j = 0; j < facilityArray.Length; j++)
 		{
 			if (facilityArray[j])
 			{
-				enableFacilityArray.Add(facilityArray[j]);
+				<OpenNowFacilityList>c__AnonStoreyB.enableFacilityArray.Add(facilityArray[j]);
 			}
 		}
 		uGUIListViewer component = this.m_UIFacilityTypeList.GetComponent<uGUIListViewer>();
-		component.Show<Transform>(enableFacilityArray.Count, delegate(int i, Transform trans)
+		component.Show<Transform>(<OpenNowFacilityList>c__AnonStoreyB.enableFacilityArray.Count, delegate(int i, Transform trans)
 		{
 			Text componentInChildren = trans.GetComponentInChildren<Text>();
 			Toggle componentInChildren2 = trans.GetComponentInChildren<Toggle>();
-			componentInChildren.text = enableFacilityArray[i].facilityName;
+			componentInChildren.text = <OpenNowFacilityList>c__AnonStoreyB.enableFacilityArray[i].facilityName;
 			componentInChildren2.onValueChanged.AddListener(delegate(bool value)
 			{
 				if (!value)
 				{
 					return;
 				}
-				this.ShowFacilityPowerUpList(enableFacilityArray[i]);
-				if (!this.m_UIFacilityInfoMiniWindow.gameObject.activeSelf)
+				<OpenNowFacilityList>c__AnonStoreyB.ShowFacilityPowerUpList(<OpenNowFacilityList>c__AnonStoreyB.enableFacilityArray[i]);
+				if (!<OpenNowFacilityList>c__AnonStoreyB.m_UIFacilityInfoMiniWindow.gameObject.activeSelf)
 				{
-					this.m_UIFacilityInfoMiniWindow.gameObject.SetActive(true);
+					<OpenNowFacilityList>c__AnonStoreyB.m_UIFacilityInfoMiniWindow.gameObject.SetActive(true);
 				}
-				this.m_UIFacilityInfoMiniWindow.SetFacilityInfo(enableFacilityArray[i], true);
-				this.m_UIFacilityInfoMiniWindow.viewType = FacilityInfoUI.ViewType.DefaultMode;
+				<OpenNowFacilityList>c__AnonStoreyB.m_UIFacilityInfoMiniWindow.SetFacilityInfo(<OpenNowFacilityList>c__AnonStoreyB.enableFacilityArray[i], true);
+				<OpenNowFacilityList>c__AnonStoreyB.m_UIFacilityInfoMiniWindow.viewType = FacilityInfoUI.ViewType.DefaultMode;
 			});
 		});
 	}
 
 	public void OpenFacilityInfoList(bool isOn)
 	{
+		SceneFacilityManagement.<OpenFacilityInfoList>c__AnonStoreyD <OpenFacilityInfoList>c__AnonStoreyD = new SceneFacilityManagement.<OpenFacilityInfoList>c__AnonStoreyD();
+		<OpenFacilityInfoList>c__AnonStoreyD.$this = this;
 		if (!isOn)
 		{
 			return;
@@ -869,7 +875,7 @@ public class SceneFacilityManagement : MonoBehaviour
 		this.m_UIButtonOK.onClick.AddListener(new UnityAction(this.ButtonEvent_OK_OpenMainMenu));
 		this.SetOKButtonEnable(true);
 		Facility.FacilityStatus[] facilityStatusArray = FacilityDataTable.GetFacilityStatusArray(true);
-		List<Facility.FacilityStatus> enableFacilityArray = new List<Facility.FacilityStatus>();
+		<OpenFacilityInfoList>c__AnonStoreyD.enableFacilityArray = new List<Facility.FacilityStatus>();
 		for (int j = 0; j < facilityStatusArray.Length; j++)
 		{
 			FacilityDataTable.FacilityDefaultData facilityDefaultData = FacilityDataTable.GetFacilityDefaultData(facilityStatusArray[j].typeID, true);
@@ -886,30 +892,30 @@ public class SceneFacilityManagement : MonoBehaviour
 				{
 					goto IL_18C;
 				}
-				enableFacilityArray.Add(facilityStatusArray[j]);
+				<OpenFacilityInfoList>c__AnonStoreyD.enableFacilityArray.Add(facilityStatusArray[j]);
 			}
 			IL_18C:;
 		}
 		uGUIListViewer component = this.m_UIFacilityTypeList.GetComponent<uGUIListViewer>();
-		component.Show<Transform>(enableFacilityArray.Count, delegate(int i, Transform trans)
+		component.Show<Transform>(<OpenFacilityInfoList>c__AnonStoreyD.enableFacilityArray.Count, delegate(int i, Transform trans)
 		{
 			Text componentInChildren = trans.GetComponentInChildren<Text>();
 			Toggle componentInChildren2 = trans.GetComponentInChildren<Toggle>();
-			componentInChildren.text = enableFacilityArray[i].name;
+			componentInChildren.text = <OpenFacilityInfoList>c__AnonStoreyD.enableFacilityArray[i].name;
 			componentInChildren2.onValueChanged.AddListener(delegate(bool value)
 			{
 				if (!value)
 				{
 					return;
 				}
-				this.m_CreatingFacility.Init(enableFacilityArray[i].typeID);
-				this.ShowFacilityPowerUpList(this.m_CreatingFacility);
-				if (!this.m_UIFacilityInfoMiniWindow.gameObject.activeSelf)
+				<OpenFacilityInfoList>c__AnonStoreyD.m_CreatingFacility.Init(<OpenFacilityInfoList>c__AnonStoreyD.enableFacilityArray[i].typeID);
+				<OpenFacilityInfoList>c__AnonStoreyD.ShowFacilityPowerUpList(<OpenFacilityInfoList>c__AnonStoreyD.m_CreatingFacility);
+				if (!<OpenFacilityInfoList>c__AnonStoreyD.m_UIFacilityInfoMiniWindow.gameObject.activeSelf)
 				{
-					this.m_UIFacilityInfoMiniWindow.gameObject.SetActive(true);
+					<OpenFacilityInfoList>c__AnonStoreyD.m_UIFacilityInfoMiniWindow.gameObject.SetActive(true);
 				}
-				this.m_UIFacilityInfoMiniWindow.SetFacilityInfo(this.m_CreatingFacility, true);
-				this.m_UIFacilityInfoMiniWindow.viewType = FacilityInfoUI.ViewType.ConstructMode;
+				<OpenFacilityInfoList>c__AnonStoreyD.m_UIFacilityInfoMiniWindow.SetFacilityInfo(<OpenFacilityInfoList>c__AnonStoreyD.m_CreatingFacility, true);
+				<OpenFacilityInfoList>c__AnonStoreyD.m_UIFacilityInfoMiniWindow.viewType = FacilityInfoUI.ViewType.ConstructMode;
 			});
 		});
 	}
@@ -925,6 +931,8 @@ public class SceneFacilityManagement : MonoBehaviour
 
 	public void OpenFacilityCostumeSettingWindow()
 	{
+		SceneFacilityManagement.<OpenFacilityCostumeSettingWindow>c__AnonStoreyF <OpenFacilityCostumeSettingWindow>c__AnonStoreyF = new SceneFacilityManagement.<OpenFacilityCostumeSettingWindow>c__AnonStoreyF();
+		<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.$this = this;
 		this.nowCost = this.CalcNowCost();
 		this.m_UIFacilityDetails.gameObject.SetActive(false);
 		this.m_UIFacilityPowerUpList.gameObject.SetActive(false);
@@ -943,7 +951,7 @@ public class SceneFacilityManagement : MonoBehaviour
 		this.m_UIButtonOK.onClick.AddListener(new UnityAction(this.ButtonEvent_OK_OpenMainMenu));
 		this.SetOKButtonEnable(true);
 		Facility[] facilityArray = this.FacilityMgr.GetFacilityArray();
-		List<Facility> enableFacilityArray = new List<Facility>();
+		<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.enableFacilityArray = new List<Facility>();
 		for (int j = 0; j < facilityArray.Length; j++)
 		{
 			Facility facility = null;
@@ -957,31 +965,31 @@ public class SceneFacilityManagement : MonoBehaviour
 			}
 			if (facility != null)
 			{
-				enableFacilityArray.Add(facility);
+				<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.enableFacilityArray.Add(facility);
 			}
 		}
 		uGUIListViewer component = this.m_UIFacilityTypeList.GetComponent<uGUIListViewer>();
-		Facility tempSelectFacility = GameMain.Instance.FacilityMgr.tempSelectFacility;
-		component.Show<Transform>(enableFacilityArray.Count, delegate(int i, Transform trans)
+		<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.tempSelectFacility = GameMain.Instance.FacilityMgr.tempSelectFacility;
+		component.Show<Transform>(<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.enableFacilityArray.Count, delegate(int i, Transform trans)
 		{
 			Text componentInChildren = trans.GetComponentInChildren<Text>();
 			Toggle componentInChildren2 = trans.GetComponentInChildren<Toggle>();
-			componentInChildren.text = enableFacilityArray[i].facilityName;
+			componentInChildren.text = <OpenFacilityCostumeSettingWindow>c__AnonStoreyF.enableFacilityArray[i].facilityName;
 			componentInChildren2.onValueChanged.AddListener(delegate(bool value)
 			{
 				if (!value)
 				{
 					return;
 				}
-				this.OpenCostumeSettingWindow(enableFacilityArray[i]);
-				if (!this.m_UIFacilityInfoMiniWindow.gameObject.activeSelf)
+				<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.OpenCostumeSettingWindow(<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.enableFacilityArray[i]);
+				if (!<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.m_UIFacilityInfoMiniWindow.gameObject.activeSelf)
 				{
-					this.m_UIFacilityInfoMiniWindow.gameObject.SetActive(true);
+					<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.m_UIFacilityInfoMiniWindow.gameObject.SetActive(true);
 				}
-				this.m_UIFacilityInfoMiniWindow.SetFacilityInfo(enableFacilityArray[i], true);
-				this.m_UIFacilityInfoMiniWindow.viewType = FacilityInfoUI.ViewType.DefaultMode;
+				<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.m_UIFacilityInfoMiniWindow.SetFacilityInfo(<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.enableFacilityArray[i], true);
+				<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.m_UIFacilityInfoMiniWindow.viewType = FacilityInfoUI.ViewType.DefaultMode;
 			});
-			if (tempSelectFacility != null && enableFacilityArray[i] == tempSelectFacility)
+			if (<OpenFacilityCostumeSettingWindow>c__AnonStoreyF.tempSelectFacility != null && <OpenFacilityCostumeSettingWindow>c__AnonStoreyF.enableFacilityArray[i] == <OpenFacilityCostumeSettingWindow>c__AnonStoreyF.tempSelectFacility)
 			{
 				componentInChildren2.isOn = true;
 			}
@@ -1358,7 +1366,7 @@ public class SceneFacilityManagement : MonoBehaviour
 				facility.facilityName = value;
 				facilityNameUI.enabled = false;
 			});
-			this.m_Button.onClick.AddListener(delegate
+			this.m_Button.onClick.AddListener(delegate()
 			{
 				facilityNameUI.enabled = true;
 				facilityNameUI.interactable = true;

+ 1 - 1
Assembly-CSharp/SceneUserEditMain.cs

@@ -19,7 +19,7 @@ public class SceneUserEditMain : WfScreenChildren
 		{
 			EventDelegate.Add(uislider.onChange, new EventDelegate.Callback(this.OnChangeSingleBodyColor));
 		}
-		EventDelegate.Add(this.playerNameRandomButton.onClick, delegate
+		EventDelegate.Add(this.playerNameRandomButton.onClick, delegate()
 		{
 			this.playerNameInput.RemoveFocus();
 			this.playerNameInput.value = MaidRandomName.GetPlayerName();

+ 4 - 4
Assembly-CSharp/SceneVRCommunication.cs

@@ -256,8 +256,8 @@ public class SceneVRCommunication : MonoBehaviour
 						{
 							stockMaid.body0.MuneYureL(1f);
 							stockMaid.body0.MuneYureR(1f);
-							stockMaid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-							stockMaid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+							stockMaid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+							stockMaid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 							stockMaid.transform.localScale = Vector3.one;
 							stockMaid.StopKuchipakuPattern();
 							stockMaid.EyeToCamera(Maid.EyeMoveType.目と顔を向ける, 0f);
@@ -269,8 +269,8 @@ public class SceneVRCommunication : MonoBehaviour
 						Maid stockMan = characterMgr.GetStockMan(j);
 						if (stockMan != null && stockMan.body0 != null && stockMan.body0.isLoadedBody)
 						{
-							stockMan.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-							stockMan.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+							stockMan.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+							stockMan.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 							stockMan.DelPrefabAll();
 						}
 					}

+ 3 - 7
Assembly-CSharp/SceneWarning.cs

@@ -5,13 +5,9 @@ public class SceneWarning : MonoBehaviour
 {
 	private void Awake()
 	{
-		GameObject gameObject = GameObject.Find("UI Root/Warning");
-		GameObject gameObject2 = GameObject.Find("UI Root/Warning_tr");
-		GameObject gameObject3 = GameObject.Find("UI Root/Warning_cbl_tr");
-		gameObject.gameObject.SetActive(false);
-		gameObject2.gameObject.SetActive(false);
-		gameObject3.gameObject.SetActive(false);
-		gameObject.gameObject.SetActive(true);
+		string name = "Warning";
+		GameObject gameObject = GameObject.Find("UI Root");
+		gameObject.transform.Find(name).gameObject.SetActive(true);
 	}
 
 	private void Start()

+ 1 - 1
Assembly-CSharp/ScheduleTaskViewer.cs

@@ -206,7 +206,7 @@ public class ScheduleTaskViewer : MonoBehaviour
 
 	private void AddButtonEvent(Button button, int num)
 	{
-		button.onClick.AddListener(delegate
+		button.onClick.AddListener(delegate()
 		{
 			this.DoSomething(num);
 		});

+ 33 - 1
Assembly-CSharp/ScriptManager.cs

@@ -2732,6 +2732,22 @@ public class ScriptManager : IDisposable
 		{
 			integer = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男1, true);
 		}
+		else if (nowManType == ManDataType.傅き男2)
+		{
+			integer = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男2, true);
+		}
+		else if (nowManType == ManDataType.傅き男3)
+		{
+			integer = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男3, true);
+		}
+		else if (nowManType == ManDataType.傅き男4)
+		{
+			integer = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男4, true);
+		}
+		else if (nowManType == ManDataType.傅き男5)
+		{
+			integer = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男5, true);
+		}
 		result.SetInteger(integer);
 	}
 
@@ -2753,6 +2769,22 @@ public class ScriptManager : IDisposable
 		{
 			likability = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男1, true);
 		}
+		else if (nowManType == ManDataType.傅き男2)
+		{
+			likability = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男2, true);
+		}
+		else if (nowManType == ManDataType.傅き男3)
+		{
+			likability = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男3, true);
+		}
+		else if (nowManType == ManDataType.傅き男4)
+		{
+			likability = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男4, true);
+		}
+		else if (nowManType == ManDataType.傅き男5)
+		{
+			likability = kasizukiMgr.GetMaidData<int>(maid, MaidDataType.好感度\uFF3F傅き男5, true);
+		}
 		string likabilityName = LikabilityReplace.GetLikabilityName(likability);
 		result.SetString(likabilityName);
 	}
@@ -2920,7 +2952,7 @@ public class ScriptManager : IDisposable
 	public void Serialize(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_SCRIPT");
-		binary.Write(1160);
+		binary.Write(1170);
 		this.adv_kag_.Serialize(binary);
 	}
 

+ 96 - 14
Assembly-CSharp/SelectButtonCtrl.cs

@@ -2,6 +2,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using wf;
 
 public class SelectButtonCtrl : MonoBehaviour
 {
@@ -11,10 +12,13 @@ public class SelectButtonCtrl : MonoBehaviour
 		{
 			this.Panel = base.transform.parent.gameObject.GetComponent<UIPanel>();
 		}
+		this.grid = base.GetComponent<UIGrid>();
+		this.scrollView = base.transform.parent.GetComponent<UIScrollView>();
 	}
 
 	public void CreateSelectButtons(List<KeyValuePair<string, KeyValuePair<string, bool>>> listSelectBtn, Action<string, string> onClickCallBack, UnityEngine.Object selectBtnPrefab)
 	{
+		this.grid.cellHeight = 0f;
 		this.m_OnClickCallBack = null;
 		this.m_OnClickCallEvent = null;
 		this.ClearExistSelectButton();
@@ -24,27 +28,59 @@ public class SelectButtonCtrl : MonoBehaviour
 		foreach (KeyValuePair<string, KeyValuePair<string, bool>> keyValuePair in listSelectBtn)
 		{
 			GameObject gameObject = UnityEngine.Object.Instantiate(selectBtnPrefab) as GameObject;
-			UIButton component = gameObject.GetComponent<UIButton>();
-			EventDelegate.Add(component.onClick, new EventDelegate.Callback(this.ClickSelectButton));
+			for (int i = 0; i < gameObject.transform.childCount; i++)
+			{
+				UIButton component = gameObject.transform.GetChild(i).GetComponent<UIButton>();
+				EventDelegate.Add(component.onClick, new EventDelegate.Callback(this.ClickSelectButton));
+				component.isEnabled = keyValuePair.Value.Value;
+			}
 			gameObject.name = "selectButton_" + num;
 			gameObject.transform.parent = base.transform;
 			gameObject.transform.localScale = Vector3.one;
 			gameObject.transform.localPosition = Vector3.zero;
 			gameObject.transform.rotation = Quaternion.identity;
-			EventDelegate.Set(gameObject.GetComponent<TweenAlpha>().onFinished, new EventDelegate.Callback(this.OnFinished));
-			UILabel component2 = UTY.GetChildObject(gameObject, "Option", false).GetComponent<UILabel>();
-			component2.text = keyValuePair.Key;
+			SubtitleDisplayManager component2 = gameObject.GetComponent<SubtitleDisplayManager>();
+			if (component2 != null)
+			{
+				component2.SetTextFromScriptStyle(keyValuePair.Key);
+			}
+			else
+			{
+				UILabel component3 = UTY.GetChildObject(gameObject, "Single/Option", false).GetComponent<UILabel>();
+				component3.text = keyValuePair.Key;
+			}
 			SelectButtonCtrl.SelectButton selectButton = new SelectButtonCtrl.SelectButton();
 			selectButton.m_btnName = gameObject.name;
 			selectButton.m_goSelectBtn = gameObject;
 			selectButton.m_msg = keyValuePair.Key;
 			selectButton.m_tag = keyValuePair.Value.Key;
-			component.isEnabled = keyValuePair.Value.Value;
+			if (GameMain.Instance.VRMode)
+			{
+				UIButton[] componentsInChildren = gameObject.GetComponentsInChildren<UIButton>(true);
+				foreach (UIButton uibutton in componentsInChildren)
+				{
+					uibutton.defaultColor = new Color(0.8f, 0.8f, 0.8f, 1f);
+				}
+			}
 			this.m_listSelectBtn.Add(new KeyValuePair<string, SelectButtonCtrl.SelectButton>(selectButton.m_btnName, selectButton));
 			num++;
 		}
-		base.GetComponent<UIGrid>().Reposition();
+		Utility.ResetNGUI(this.grid);
+		this.scrollView.verticalScrollBar.gameObject.SetActive(true);
+		Utility.ResetNGUI(this.scrollView);
+		this.scrollView.verticalScrollBar.value = 0f;
+		this.scrollView.verticalScrollBar.alpha = 0f;
 		this.m_EffectStat = SelectButtonCtrl.EffectStat.Null;
+		base.StartCoroutine("FadeIn");
+	}
+
+	private IEnumerator FadeIn()
+	{
+		this.scrollView.GetComponent<UIPanel>().alpha = 0f;
+		yield return null;
+		yield return null;
+		this.scrollView.GetComponent<UIPanel>().alpha = 1f;
+		yield break;
 	}
 
 	public void SetPanelAlpha(float value)
@@ -83,26 +119,28 @@ public class SelectButtonCtrl : MonoBehaviour
 	public void ClickSelectButton()
 	{
 		string b = string.Empty;
-		b = UIButton.current.name;
+		b = UIButton.current.transform.parent.name;
 		foreach (KeyValuePair<string, SelectButtonCtrl.SelectButton> keyValuePair in this.m_listSelectBtn)
 		{
 			GameObject goSelectBtn = keyValuePair.Value.m_goSelectBtn;
 			if (keyValuePair.Key == b)
 			{
+				TweenAlpha tweenAlpha;
 				if (GameMain.Instance.ScriptMgr.adv_kag.skip_mode)
 				{
-					TweenAlpha.Begin(goSelectBtn, 0.01f, 0f);
+					tweenAlpha = TweenAlpha.Begin(goSelectBtn, 0.01f, 0f);
 				}
 				else
 				{
-					TweenAlpha.Begin(keyValuePair.Value.m_goSelectBtn, 1f * GameMain.Instance.CMSystem.FadeSpeedRate, 0f);
+					tweenAlpha = TweenAlpha.Begin(keyValuePair.Value.m_goSelectBtn, 1f * GameMain.Instance.CMSystem.FadeSpeedRate, 0f);
 				}
+				EventDelegate.Set(tweenAlpha.onFinished, new EventDelegate.Callback(this.OnFinished));
 				if (this.m_OnClickCallBack != null)
 				{
 					string text = keyValuePair.Value.m_msg;
 					string tag = keyValuePair.Value.m_tag;
 					Action<string, string> tmp = this.m_OnClickCallBack;
-					this.m_OnClickCallEvent = delegate
+					this.m_OnClickCallEvent = delegate()
 					{
 						tmp(text, tag);
 					};
@@ -111,7 +149,11 @@ public class SelectButtonCtrl : MonoBehaviour
 			}
 			else
 			{
-				goSelectBtn.GetComponent<TweenAlpha>().onFinished = null;
+				for (int i = 0; i < goSelectBtn.transform.childCount; i++)
+				{
+					TweenAlpha component = goSelectBtn.transform.GetChild(i).GetComponent<TweenAlpha>();
+					component.onFinished = null;
+				}
 				if (GameMain.Instance.ScriptMgr.adv_kag.skip_mode)
 				{
 					TweenAlpha.Begin(goSelectBtn, 0.01f, 0f);
@@ -121,8 +163,14 @@ public class SelectButtonCtrl : MonoBehaviour
 					TweenAlpha.Begin(goSelectBtn, 0.3f * GameMain.Instance.CMSystem.FadeSpeedRate, 0f);
 				}
 			}
-			goSelectBtn.GetComponent<BoxCollider>().enabled = false;
+			BoxCollider[] componentsInChildren = goSelectBtn.GetComponentsInChildren<BoxCollider>();
+			foreach (BoxCollider boxCollider in componentsInChildren)
+			{
+				boxCollider.enabled = false;
+			}
 		}
+		this.scrollView.verticalScrollBar.alpha = 0f;
+		this.scrollView.verticalScrollBar.gameObject.SetActive(false);
 		this.m_EffectStat = SelectButtonCtrl.EffectStat.EndOut;
 	}
 
@@ -134,7 +182,11 @@ public class SelectButtonCtrl : MonoBehaviour
 		}
 		this.dragMat.SetActive(false);
 		this.ClearExistSelectButton();
-		base.transform.parent.GetComponent<UIScrollView>().ResetPosition();
+		this.grid.cellHeight = 93f;
+		Utility.ResetNGUI(this.scrollView);
+		this.scrollView.verticalScrollBar.alpha = 0f;
+		this.scrollView.verticalScrollBar.value = 0f;
+		this.scrollView.verticalScrollBar.gameObject.SetActive(false);
 		this.m_EffectStat = SelectButtonCtrl.EffectStat.Null;
 		if (this.m_OnClickCallEvent != null)
 		{
@@ -143,6 +195,30 @@ public class SelectButtonCtrl : MonoBehaviour
 		this.m_OnClickCallEvent = null;
 	}
 
+	private void Update()
+	{
+		if (this.scrollRest)
+		{
+			Utility.ResetNGUI(this.scrollView);
+			this.scrollView.verticalScrollBar.value = 0f;
+			this.scrollView.verticalScrollBar.alpha = 0f;
+			this.scrollView.verticalScrollBar.ForceUpdate();
+			this.scrollRest = false;
+		}
+		if (GameMain.Instance.CMSystem.SubtitleType == SubtitleDisplayManager.DisplayType.OriginalAndSubtitle && this.grid.cellHeight != 110f)
+		{
+			this.grid.cellHeight = 110f;
+			Utility.ResetNGUI(this.grid);
+			this.scrollRest = true;
+		}
+		else if (GameMain.Instance.CMSystem.SubtitleType != SubtitleDisplayManager.DisplayType.OriginalAndSubtitle && this.grid.cellHeight != 93f)
+		{
+			this.grid.cellHeight = 93f;
+			Utility.ResetNGUI(this.grid);
+			this.scrollRest = true;
+		}
+	}
+
 	[SerializeField]
 	private GameObject dragMat;
 
@@ -156,6 +232,12 @@ public class SelectButtonCtrl : MonoBehaviour
 
 	private SelectButtonCtrl.EffectStat m_EffectStat;
 
+	private UIGrid grid;
+
+	private UIScrollView scrollView;
+
+	private bool scrollRest;
+
 	private enum EffectStat
 	{
 		Null,

+ 1 - 1
Assembly-CSharp/SlotManager.cs

@@ -54,7 +54,7 @@ public class SlotManager : MonoBehaviour
 		}
 		this.GetCsv();
 		ExChangeUI instance = ExChangeUI.Instance;
-		instance.FadeOutStartAction = (Action)Delegate.Combine(instance.FadeOutStartAction, new Action(delegate
+		instance.FadeOutStartAction = (Action)Delegate.Combine(instance.FadeOutStartAction, new Action(delegate()
 		{
 			this.credit = GameMain.Instance.CharacterMgr.status.casinoCoin;
 			this.CreditUpdate();

+ 1 - 1
Assembly-CSharp/SlotUImgr.cs

@@ -21,7 +21,7 @@ public class SlotUImgr : MonoBehaviour
 	private void Start()
 	{
 		ExChangeUI instance = ExChangeUI.Instance;
-		instance.FadeInStartAction = (Action)Delegate.Combine(instance.FadeInStartAction, new Action(delegate
+		instance.FadeInStartAction = (Action)Delegate.Combine(instance.FadeInStartAction, new Action(delegate()
 		{
 			this.m_ButtonGroup.interactable = false;
 		}));

+ 2 - 2
Assembly-CSharp/StaffRollCtrl.cs

@@ -81,7 +81,7 @@ public class StaffRollCtrl : MonoBehaviour
 	{
 		this.ChangeTextureState(StaffRollCtrl.TxetureState.RunnigFade);
 		this.m_tweenTexture = TweenAlpha.Begin(this.m_goTexture, this.fadeInTimeTexure, 1f);
-		EventDelegate.Set(this.m_tweenTexture.onFinished, delegate
+		EventDelegate.Set(this.m_tweenTexture.onFinished, delegate()
 		{
 			this.ChangeTextureState(StaffRollCtrl.TxetureState.Display);
 			this.m_updateTime = Time.time + this.m_dispTextureTime;
@@ -100,7 +100,7 @@ public class StaffRollCtrl : MonoBehaviour
 	{
 		this.ChangeTextureState(StaffRollCtrl.TxetureState.RunnigFade);
 		TweenAlpha tweenAlpha = TweenAlpha.Begin(this.m_goTexture, this.fadeOutTimeTexure, 0f);
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			this.ChangeTextureState(StaffRollCtrl.TxetureState.Next);
 		});

+ 2 - 2
Assembly-CSharp/StatusViewer.cs

@@ -142,7 +142,7 @@ public class StatusViewer : MonoBehaviour
 		tweenAlpha.to = 1f;
 		tweenAlpha.duration = 0.3f;
 		tweenAlpha.PlayForward();
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			TweenAlpha component = this.clubNameInputPanel.gameObject.GetComponent<TweenAlpha>();
 			if (component != null)
@@ -168,7 +168,7 @@ public class StatusViewer : MonoBehaviour
 		tweenAlpha.to = 0f;
 		tweenAlpha.duration = 0.3f;
 		tweenAlpha.PlayForward();
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			TweenAlpha component = this.clubNameInputPanel.gameObject.GetComponent<TweenAlpha>();
 			if (component != null)

+ 3 - 0
Assembly-CSharp/SteamVR_GazeTracker.cs

@@ -1,10 +1,13 @@
 using System;
+using System.Diagnostics;
 using UnityEngine;
 
 public class SteamVR_GazeTracker : MonoBehaviour
 {
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event GazeEventHandler GazeOn;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event GazeEventHandler GazeOff;
 
 	private void Start()

+ 3 - 0
Assembly-CSharp/SteamVR_LaserPointer.cs

@@ -1,10 +1,13 @@
 using System;
+using System.Diagnostics;
 using UnityEngine;
 
 public class SteamVR_LaserPointer : MonoBehaviour
 {
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event PointerEventHandler PointerIn;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event PointerEventHandler PointerOut;
 
 	private void Start()

+ 12 - 0
Assembly-CSharp/SteamVR_TrackedController.cs

@@ -1,29 +1,41 @@
 using System;
+using System.Diagnostics;
 using UnityEngine;
 using Valve.VR;
 
 public class SteamVR_TrackedController : MonoBehaviour
 {
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler MenuButtonClicked;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler MenuButtonUnclicked;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler TriggerClicked;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler TriggerUnclicked;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler SteamClicked;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler PadClicked;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler PadUnclicked;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler PadTouched;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler PadUntouched;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler Gripped;
 
+	[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 	public event ClickedEventHandler Ungripped;
 
 	private void Start()

+ 7 - 2
Assembly-CSharp/SubtitleDisplayManager.cs

@@ -65,7 +65,7 @@ public class SubtitleDisplayManager : MonoBehaviour
 				return;
 			}
 			this.originalUILabel.text = (this.originalText_ = ((!string.IsNullOrEmpty(value)) ? MessageClass.GetWrapString(this.originalUILabel, value) : string.Empty));
-			if (this.displayType_ == SubtitleDisplayManager.DisplayType.Original)
+			if (this.displayType_ == SubtitleDisplayManager.DisplayType.Original || (this.displayType_ == SubtitleDisplayManager.DisplayType.None && this.hideTypeOverRide == SubtitleDisplayManager.DisplayType.Original))
 			{
 				this.singleUILabel.text = this.originalText_;
 			}
@@ -86,7 +86,7 @@ public class SubtitleDisplayManager : MonoBehaviour
 				return;
 			}
 			this.subtitlesUILabel.text = (this.subtitlesText_ = ((!string.IsNullOrEmpty(value)) ? value : string.Empty));
-			if (this.displayType_ == SubtitleDisplayManager.DisplayType.Subtitle)
+			if (this.displayType_ == SubtitleDisplayManager.DisplayType.Subtitle || (this.displayType_ == SubtitleDisplayManager.DisplayType.None && this.hideTypeOverRide == SubtitleDisplayManager.DisplayType.Subtitle))
 			{
 				this.singleUILabel.text = this.subtitlesText_;
 			}
@@ -295,5 +295,10 @@ public class SubtitleDisplayManager : MonoBehaviour
 			}
 			return result;
 		}
+
+		public static string GetTerm(SubtitleDisplayManager.DisplayType displayType)
+		{
+			return "Config/字幕タイプ/" + SubtitleDisplayManager.EnumConvert.GetString(displayType);
+		}
 	}
 }

+ 10 - 0
Assembly-CSharp/SystemDialog.cs

@@ -1,4 +1,5 @@
 using System;
+using I2.Loc;
 using UnityEngine;
 
 public class SystemDialog : MonoBehaviour
@@ -47,6 +48,10 @@ public class SystemDialog : MonoBehaviour
 		{
 			NDebug.Assert("ダイアログの二重呼出しはできません。", false);
 		}
+		if (string.IsNullOrEmpty(f_strMsg))
+		{
+			f_strMsg = string.Empty;
+		}
 		this.m_uiMsg.text = f_strMsg.Replace('|', '\n');
 		this.m_goOk.SetActive(true);
 		if (f_eType == SystemDialog.TYPE.OK_CANCEL || f_eType == SystemDialog.TYPE.YES_NO)
@@ -104,6 +109,11 @@ public class SystemDialog : MonoBehaviour
 		this.m_bDecided = false;
 	}
 
+	public void ShowFromLanguageTerm(string messageTerm, SystemDialog.TYPE f_eType, SystemDialog.OnClick f_dgOk = null, SystemDialog.OnClick f_dgCancel = null)
+	{
+		this.Show(LocalizationManager.GetTranslation(messageTerm, true, 0, true, false, null, null), f_eType, f_dgOk, f_dgCancel);
+	}
+
 	public void UpdateAlpha(float f_fNewValue)
 	{
 		this.m_uiPanel.alpha = f_fNewValue;

+ 19 - 18
Assembly-CSharp/SystemShortcut.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 using UnityEngine.SceneManagement;
 
@@ -30,17 +31,17 @@ public class SystemShortcut : MonoBehaviour
 		this.m_aryDgOnClick[9] = new EventDelegate(new EventDelegate.Callback(this.OnClick_Help));
 		this.m_aryDgOnClick[10] = new EventDelegate(new EventDelegate.Callback(this.OnClick_VRAvatar));
 		Dictionary<int, string> dictionary = new Dictionary<int, string>();
-		dictionary.Add(0, "コンフィグ");
-		dictionary.Add(3, "UI無し スクリーンショット(Alt+PrtScr)");
-		dictionary.Add(4, "UI有り スクリーンショット(Shift+PrtScr)");
-		dictionary.Add(6, "ショップ");
-		dictionary.Add(5, "タイトルへ");
-		dictionary.Add(2, "ゲーム情報");
-		dictionary.Add(1, "終了");
-		dictionary.Add(7, "エンパイアクラブに帰る");
-		dictionary.Add(8, "VRヘルプ");
-		dictionary.Add(9, "シーンのヘルプ");
-		dictionary.Add(10, "バーチャル アバター スタジオ");
+		dictionary.Add(0, "System/ショートカット/コンフィグ");
+		dictionary.Add(3, "System/ショートカット/UI無し スクリーンショット");
+		dictionary.Add(4, "System/ショートカット/UI有り スクリーンショット");
+		dictionary.Add(6, "System/ショートカット/ショップ");
+		dictionary.Add(5, "System/ショートカット/タイトルへ");
+		dictionary.Add(2, "System/ショートカット/ゲーム情報");
+		dictionary.Add(1, "System/ショートカット/終了");
+		dictionary.Add(7, "System/ショートカット/エンパイアクラブに帰る");
+		dictionary.Add(8, "System/ショートカット/VRヘルプ");
+		dictionary.Add(9, "System/ショートカット/シーンのヘルプ");
+		dictionary.Add(10, "System/ショートカット/バーチャル アバター スタジオ");
 		for (int i = 0; i < this.m_aryObjPath.Length; i++)
 		{
 			this.m_goBtn[i] = UTY.GetChildObject(base.gameObject, this.m_aryObjPath[i], false);
@@ -50,15 +51,15 @@ public class SystemShortcut : MonoBehaviour
 			{
 				UIEventTrigger component = this.m_goBtn[i].GetComponent<UIEventTrigger>();
 				string text = dictionary[i];
-				EventDelegate.Add(component.onHoverOver, delegate
+				EventDelegate.Add(component.onHoverOver, delegate()
 				{
 					this.VisibleExplanation(text, true);
 				});
-				EventDelegate.Add(component.onHoverOut, delegate
+				EventDelegate.Add(component.onHoverOut, delegate()
 				{
 					this.VisibleExplanation(text, false);
 				});
-				EventDelegate.Add(component.onDragStart, delegate
+				EventDelegate.Add(component.onDragStart, delegate()
 				{
 					this.VisibleExplanation(text, false);
 				});
@@ -220,7 +221,7 @@ public class SystemShortcut : MonoBehaviour
 		{
 			return;
 		}
-		GameMain.Instance.SysDlg.Show("終了しますか?", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.OnToEnd), new SystemDialog.OnClick(this.OnCancel));
+		GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/終了しますか?", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.OnToEnd), new SystemDialog.OnClick(this.OnCancel));
 		this.BaseClose();
 	}
 
@@ -276,11 +277,11 @@ public class SystemShortcut : MonoBehaviour
 		}
 		if (Application.loadedLevelName != "SceneTitle")
 		{
-			GameMain.Instance.SysDlg.Show("タイトルに戻りますか?", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.OnToTitle), new SystemDialog.OnClick(this.OnCancel));
+			GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/タイトルに戻りますか?", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.OnToTitle), new SystemDialog.OnClick(this.OnCancel));
 		}
 		else
 		{
-			GameMain.Instance.SysDlg.Show("現在タイトルに戻れません。", SystemDialog.TYPE.OK, new SystemDialog.OnClick(this.OnCancel), null);
+			GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/現在タイトルに戻れません。", SystemDialog.TYPE.OK, new SystemDialog.OnClick(this.OnCancel), null);
 		}
 		this.BaseClose();
 	}
@@ -450,7 +451,7 @@ public class SystemShortcut : MonoBehaviour
 	{
 		if (visible)
 		{
-			this.m_labelExplanation.text = text;
+			this.m_labelExplanation.text = LocalizationManager.GetTranslation(text, true, 0, true, false, null, null);
 			this.m_labelExplanation.width = 0;
 			this.m_labelExplanation.MakePixelPerfect();
 			UISprite component = this.m_spriteExplanation.GetComponent<UISprite>();

+ 35 - 65
Assembly-CSharp/TBody.cs

@@ -31,11 +31,11 @@ public class TBody : MonoBehaviour
 		}
 	}
 
-	public bool IKExecLate
+	public FullBodyIKCtrl IKCtrl
 	{
 		get
 		{
-			return this.IKHandL.IsExecLate || this.IKHandR.IsExecLate || this.IKMuneL.IsExecLate || this.IKMuneR.IsExecLate;
+			return this.m_IKCtrl;
 		}
 	}
 
@@ -83,6 +83,7 @@ public class TBody : MonoBehaviour
 		this.maid = maid_;
 		this.boMAN = boMAN_;
 		this.boMaid = !this.boMAN;
+		this.m_IKCtrl = base.gameObject.AddComponent<FullBodyIKCtrl>();
 		this.m_strSlotName = new string[TBody.m_strDefSlotName.Length];
 		TBody.m_strDefSlotName.CopyTo(this.m_strSlotName, 0);
 		if (this.boMAN)
@@ -300,18 +301,6 @@ public class TBody : MonoBehaviour
 		{
 			Debug.LogError("HandL null");
 		}
-		this.IKHandL.SetKinematicTgt(this.HandL, this, 3);
-		this.IKHandL.IkCmoInit(this);
-		if (!this.StrIKDataPair.ContainsKey("左手"))
-		{
-			this.StrIKDataPair.Add("左手", this.IKHandL);
-		}
-		this.IKHandR.SetKinematicTgt(this.HandR, this, 3);
-		this.IKHandR.IkCmoInit(this);
-		if (!this.StrIKDataPair.ContainsKey("右手"))
-		{
-			this.StrIKDataPair.Add("右手", this.IKHandR);
-		}
 		this.CenterBone = CMT.SearchObjName(this.m_trBones, "center", true);
 		this.ToeR = CMT.SearchObjName(this.m_trBones, text + " R Toe2Nub", true);
 		this.ToeL = CMT.SearchObjName(this.m_trBones, text + " L Toe2Nub", true);
@@ -407,6 +396,7 @@ public class TBody : MonoBehaviour
 		this.Hip_R = CMT.SearchObjName(this.m_trBones, "Hip_R", true);
 		this.Hip_L_MR = CMT.SearchObjName(this.m_trBones2, "Hip_L", true);
 		this.Hip_R_MR = CMT.SearchObjName(this.m_trBones2, "Hip_R", true);
+		this.m_IKCtrl.Init();
 		if (this.boMAN)
 		{
 			return;
@@ -456,20 +446,6 @@ public class TBody : MonoBehaviour
 			this.m_trHitChildR.localPosition = this.m_trsMuneRsub.localPosition;
 			this.m_HitChildColliderR = gameObject6.GetComponent<SphereCollider>();
 		}
-		Transform transform = (!this.m_trsMuneLsub) ? CMT.SearchObjName(this.m_trBones, "Mune_L_sub", true) : this.m_trsMuneLsub;
-		Transform transform2 = (!this.m_trsMuneRsub) ? CMT.SearchObjName(this.m_trBones, "Mune_R_sub", true) : this.m_trsMuneRsub;
-		this.IKMuneL.CreateAttachPointObj("_IK_nippleL", transform, this, "body", "乳首左");
-		this.IKMuneR.CreateAttachPointObj("_IK_nippleR", transform2, this, "body", "乳首右");
-		this.IKMuneL.SetKinematicTgt(transform, this, 2);
-		this.IKMuneR.SetKinematicTgt(transform2, this, 2);
-		if (!this.StrIKDataPair.ContainsKey("左胸"))
-		{
-			this.StrIKDataPair.Add("左胸", this.IKMuneL);
-		}
-		if (!this.StrIKDataPair.ContainsKey("右胸"))
-		{
-			this.StrIKDataPair.Add("右胸", this.IKMuneR);
-		}
 		for (int i = 0; i < this.goSlot.Count; i++)
 		{
 			int rot = 270;
@@ -2552,38 +2528,20 @@ public class TBody : MonoBehaviour
 		{
 			return;
 		}
-		this.IKHandL.IsExecLate = (this.IKHandR.IsExecLate = false);
-		this.IKMuneL.IsExecLate = (this.IKMuneR.IsExecLate = false);
 		this.MoveHeadAndEye();
-		this.IKHandL.IKExec();
-		this.IKHandR.IKExec();
 		this.MoveMomoniku();
-		if (!this.IKExecLate)
-		{
-			this.AutoTwist();
-		}
 		if (!this.boMAN)
 		{
-			this.IKMuneL.SyncAttachPoint();
-			this.IKMuneR.SyncAttachPoint();
 			this.jbMuneL.LateUpdateSelf();
 			this.jbMuneR.LateUpdateSelf();
-			this.IKMuneL.IKExec();
-			this.IKMuneR.IKExec();
 		}
 		if (this.boMAN && this.trManChinko != null)
 		{
 			this.trManChinko.localPosition = this.vecChinkoOffset;
 		}
-		if (!this.IKExecLate)
+		if (this.OnLateUpdate != null)
 		{
-			for (int i = 0; i < this.goSlot.Count; i++)
-			{
-				if (this.goSlot[i].obj != null)
-				{
-					this.goSlot[i].CopyTrans();
-				}
-			}
+			this.OnLateUpdate();
 		}
 		if (!this.boMAN)
 		{
@@ -2594,13 +2552,6 @@ public class TBody : MonoBehaviour
 			this.JumpDis = (this.JumpDis + this.JumpDis_old) * 0.5f;
 			this.JumpDis_old = this.JumpDis;
 		}
-		if (!this.IKExecLate)
-		{
-			for (int j = 0; j < this.goSlot.Count; j++)
-			{
-				this.goSlot[j].Update();
-			}
-		}
 		if (!this.boMAN)
 		{
 			this.Calf_L_pos_old = this.Calf_L.position;
@@ -2608,12 +2559,25 @@ public class TBody : MonoBehaviour
 			this.Thigh_L_pos_old = this.Thigh_L.position;
 			this.Thigh_R_pos_old = this.Thigh_R.position;
 		}
+		this.m_IKCtrl.IKUpdate();
 		this.LateUpdateEnd = true;
 		if (this.OnLateUpdateEnd != null)
 		{
 			this.OnLateUpdateEnd();
 		}
 		this.OnLateUpdateEnd = null;
+		if (!this.m_IKCtrl.IsUpdateLate)
+		{
+			this.AutoTwist();
+			for (int i = 0; i < this.goSlot.Count; i++)
+			{
+				if (this.goSlot[i].obj != null)
+				{
+					this.goSlot[i].CopyTrans();
+				}
+				this.goSlot[i].Update();
+			}
+		}
 	}
 
 	public float DegPer(float r, float per)
@@ -2963,20 +2927,15 @@ public class TBody : MonoBehaviour
 
 	public bool boMAN;
 
-	public IKMgrData IKHandL = new IKMgrData();
-
-	public IKMgrData IKHandR = new IKMgrData();
-
-	public IKMgrData IKMuneL = new IKMgrData();
-
-	public IKMgrData IKMuneR = new IKMgrData();
-
-	public Dictionary<string, IKMgrData> StrIKDataPair = new Dictionary<string, IKMgrData>();
+	[SerializeField]
+	private FullBodyIKCtrl m_IKCtrl;
 
 	public Action OnLateUpdateEnd;
 
 	public bool LateUpdateEnd;
 
+	public Action OnLateUpdate;
+
 	private Transform m_SMbody;
 
 	public Transform trsHead;
@@ -3515,9 +3474,20 @@ public class TBody : MonoBehaviour
 			this.vechand = Vector3.zero;
 		}
 
-		public void Porc(Transform hip, Transform knee, Transform ankle, Vector3 tgt, Vector3 vechand_offset)
+		public void Porc(Transform hip, Transform knee, Transform ankle, Vector3 tgt, Vector3 vechand_offset, IKCtrlData ik_data)
 		{
 			tgt += this.vechand;
+			if (ik_data.PointIK.BlendNow)
+			{
+				if (ik_data.PointIK.BlendType == IKCtrlData.IKBlendType.IK_To_Detach)
+				{
+					tgt = Vector3.Lerp(tgt, ik_data.IKTarget.position, ik_data.PointIK.BlendWeight);
+				}
+				else
+				{
+					tgt = Vector3.Lerp(ik_data.BlendPosRot.pos, tgt, ik_data.PointIK.BlendWeight);
+				}
+			}
 			if ((knee.position - this.knee_old).sqrMagnitude > 1f)
 			{
 				this.knee_old = knee.position;

+ 3 - 2
Assembly-CSharp/TatooAlphaWindow.cs

@@ -72,7 +72,7 @@ public class TatooAlphaWindow : BasePhotoWindow
 			}
 			if (flag)
 			{
-				this.SetWindowTitle((SceneEdit.Instance.NowMPN != MPN.acctatoo) ? ((SceneEdit.Instance.NowMPN != MPN.hokuro) ? "透明度" : "ほくろ透明度") : "タトゥー透明度");
+				this.SetWindowTitleFromLocalizeTerm((SceneEdit.Instance.NowMPN != MPN.acctatoo) ? ((SceneEdit.Instance.NowMPN != MPN.hokuro) ? "SceneEdit/window/透明度/透明度" : "SceneEdit/window/透明度/ほくろ透明度") : "SceneEdit/window/透明度/タトゥー透明度");
 				this.ClearSliders();
 				SceneEdit.SCategory scategory = SceneEdit.Instance.CategoryList.Find((SceneEdit.SCategory a) => a.m_eCategory == ((SceneEdit.Instance.NowMPN != MPN.acctatoo) ? SceneEditInfo.EMenuCategory.頭 : SceneEditInfo.EMenuCategory.身体));
 				SceneEdit.SPartsType spartsType = scategory.m_listPartsType.Find((SceneEdit.SPartsType a) => a.m_mpn == SceneEdit.Instance.NowMPN);
@@ -100,7 +100,8 @@ public class TatooAlphaWindow : BasePhotoWindow
 									sb.fTexMulAlpha = rids.alpha;
 								}
 							}
-							this.m_listSliders.Add(new TatooAlphaWindow.EditAlpha(gameObject, SceneEdit.Instance.NowMPN, j, smenuItem.m_strMenuName, sb.fTexMulAlpha, SceneEdit.Instance.maid));
+							string strMenuName = smenuItem.m_strMenuName;
+							this.m_listSliders.Add(new TatooAlphaWindow.EditAlpha(gameObject, SceneEdit.Instance.NowMPN, j, strMenuName, sb.fTexMulAlpha, SceneEdit.Instance.maid));
 						}
 					}
 				}

+ 6 - 6
Assembly-CSharp/TitleMgr.cs

@@ -90,7 +90,7 @@ public class TitleMgr : BaseMgr<TitleMgr>
 			return;
 		}
 		SaveAndLoadMgr saveAndLoadMgr = this.m_saveAndLoadMgr;
-		saveAndLoadMgr.OnOpenLoadPanelKasizukiLocal = (Action)Delegate.Combine(saveAndLoadMgr.OnOpenLoadPanelKasizukiLocal, new Action(delegate
+		saveAndLoadMgr.OnOpenLoadPanelKasizukiLocal = (Action)Delegate.Combine(saveAndLoadMgr.OnOpenLoadPanelKasizukiLocal, new Action(delegate()
 		{
 			this.m_saveAndLoadMgr.CloseSaveAndLoadPanel();
 			this.m_KasizukiSaveAndLoadCtrl.Open(0.25f, null);
@@ -98,7 +98,7 @@ public class TitleMgr : BaseMgr<TitleMgr>
 			this.m_KasizukiSaveAndLoadCtrl.GetChildObject("DisplayButtonGroup/DisplaySave").SetActive(false);
 		}));
 		KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl = this.m_KasizukiSaveAndLoadCtrl;
-		kasizukiSaveAndLoadCtrl.onClickCancel = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl.onClickCancel, new Action(delegate
+		kasizukiSaveAndLoadCtrl.onClickCancel = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl.onClickCancel, new Action(delegate()
 		{
 			this.m_KasizukiSaveAndLoadCtrl.Close(0.25f, delegate
 			{
@@ -108,7 +108,7 @@ public class TitleMgr : BaseMgr<TitleMgr>
 			});
 		}));
 		KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl2 = this.m_KasizukiSaveAndLoadCtrl;
-		kasizukiSaveAndLoadCtrl2.onLoad = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl2.onLoad, new Action(delegate
+		kasizukiSaveAndLoadCtrl2.onLoad = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl2.onLoad, new Action(delegate()
 		{
 			this.m_KasizukiSaveAndLoadCtrl.Close(0.5f, delegate
 			{
@@ -117,7 +117,7 @@ public class TitleMgr : BaseMgr<TitleMgr>
 			});
 		}));
 		KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl3 = this.m_KasizukiSaveAndLoadCtrl;
-		kasizukiSaveAndLoadCtrl3.onClickNewGame = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl3.onClickNewGame, new Action(delegate
+		kasizukiSaveAndLoadCtrl3.onClickNewGame = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl3.onClickNewGame, new Action(delegate()
 		{
 			this.m_KasizukiSaveAndLoadCtrl.Close(0.5f, delegate
 			{
@@ -126,7 +126,7 @@ public class TitleMgr : BaseMgr<TitleMgr>
 			});
 		}));
 		KasizukiSaveAndLoadCtrl kasizukiSaveAndLoadCtrl4 = this.m_KasizukiSaveAndLoadCtrl;
-		kasizukiSaveAndLoadCtrl4.onDelete = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl4.onDelete, new Action(delegate
+		kasizukiSaveAndLoadCtrl4.onDelete = (Action)Delegate.Combine(kasizukiSaveAndLoadCtrl4.onDelete, new Action(delegate()
 		{
 			int nowOriginSaveDataNumber = GameMain.Instance.KasizukiMgr.NowOriginSaveDataNumber;
 			if (GameMain.Instance.GetSaveDataHeader(nowOriginSaveDataNumber) == null)
@@ -228,7 +228,7 @@ public class TitleMgr : BaseMgr<TitleMgr>
 	protected void FadeOutPanel(Action OnFinished = null)
 	{
 		TweenAlpha tweenAlpha = TweenAlpha.Begin(this.m_goTitlePanel, 0.5f, 0f);
-		EventDelegate.Set(tweenAlpha.onFinished, delegate
+		EventDelegate.Set(tweenAlpha.onFinished, delegate()
 		{
 			this.m_goTitlePanel.SetActive(false);
 			if (OnFinished != null)

+ 8 - 0
Assembly-CSharp/TriLib/AssetLoader.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.IO;
 using UnityEngine;
 
@@ -20,18 +21,25 @@ namespace TriLib
 			}
 		}
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event MeshCreatedHandle OnMeshCreated;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event MaterialCreatedHandle OnMaterialCreated;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event TextureLoadHandle OnTextureLoaded;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event TexturePreLoadHandle OnTexturePreLoad;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event AnimationClipCreatedHandle OnAnimationClipCreated;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event ObjectLoadedHandle OnObjectLoaded;
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		public event MetadataProcessedHandle OnMetadataProcessed;
 
 		public static bool IsExtensionSupported(string extension)

+ 2 - 0
Assembly-CSharp/TriLib/Samples/FileOpenDialog.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections;
+using System.Diagnostics;
 using System.IO;
 using System.Linq;
 using UnityEngine;
@@ -24,6 +25,7 @@ namespace TriLib.Samples
 			}
 		}
 
+		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
 		private event FileOpenEventHandle OnFileOpen;
 
 		public void ShowFileOpenDialog(FileOpenEventHandle onFileOpen)

+ 1 - 1
Assembly-CSharp/TriLib/Samples/URIDialog.cs

@@ -43,7 +43,7 @@ namespace TriLib.Samples
 		public void ShowDialog(Action<string, string> onOk)
 		{
 			this._okButton.onClick.RemoveAllListeners();
-			this._okButton.onClick.AddListener(delegate
+			this._okButton.onClick.AddListener(delegate()
 			{
 				if (onOk != null)
 				{

+ 11 - 2
Assembly-CSharp/UICamera.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Linq;
 using System.Runtime.CompilerServices;
 using UnityEngine;
 
@@ -926,7 +927,13 @@ public class UICamera : MonoBehaviour
 
 	private void VRUpdateCamDepth()
 	{
-		UICamera[] array = UnityEngine.Object.FindObjectsOfType<UICamera>();
+		if (this.VRExclusionUI)
+		{
+			return;
+		}
+		UICamera[] array = (from a in UnityEngine.Object.FindObjectsOfType<UICamera>()
+		where !a.VRExclusionUI
+		select a).ToArray<UICamera>();
 		if (array.Length == 0)
 		{
 			return;
@@ -1733,9 +1740,9 @@ public class UICamera : MonoBehaviour
 		UICamera.currentTouch = mouseOrTouch;
 	}
 
+	// Note: this type is marked as 'beforefieldinit'.
 	static UICamera()
 	{
-		// Note: this type is marked as 'beforefieldinit'.
 		if (UICamera.<>f__mg$cache1 == null)
 		{
 			UICamera.<>f__mg$cache1 = new UICamera.GetKeyStateFunc(Input.GetKeyDown);
@@ -1948,6 +1955,8 @@ public class UICamera : MonoBehaviour
 
 	private bool m_bProcessEnable = true;
 
+	public bool VRExclusionUI;
+
 	private Vector3[] m_vVirtualMousePos = new Vector3[2];
 
 	private GameObject[] m_goVirtualCursor = new GameObject[2];

+ 14 - 1
Assembly-CSharp/UILabel.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Runtime.CompilerServices;
+using I2.Loc;
 using UnityEngine;
 
 [ExecuteInEditMode]
@@ -1451,7 +1452,19 @@ public class UILabel : UIWidget
 	{
 		if (UIPopupList.current != null)
 		{
-			this.text = ((!UIPopupList.current.isLocalized) ? UIPopupList.current.value : Localization.Get(UIPopupList.current.value));
+			if (UIPopupList.current.isLocalized)
+			{
+				Localize localize = base.gameObject.GetComponent<Localize>();
+				if (localize == null)
+				{
+					localize = base.gameObject.AddComponent<Localize>();
+				}
+				localize.SetTerm(UIPopupList.current.value.Replace("\r", string.Empty));
+			}
+			else
+			{
+				this.text = UIPopupList.current.value;
+			}
 		}
 	}
 

+ 6 - 1
Assembly-CSharp/UIPopupList.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 
 [ExecuteInEditMode]
@@ -613,7 +614,11 @@ public class UIPopupList : UIWidgetContainer
 				uilabel.trueTypeFont = this.trueTypeFont;
 				uilabel.fontSize = this.fontSize;
 				uilabel.fontStyle = this.fontStyle;
-				uilabel.text = ((!this.isLocalized) ? text : Localization.Get(text));
+				uilabel.text = text;
+				if (this.isLocalized)
+				{
+					uilabel.gameObject.AddComponent<Localize>().SetTerm(text.Replace("\r", string.Empty));
+				}
 				uilabel.color = this.textColor;
 				uilabel.cachedTransform.localPosition = new Vector3(border.x + this.padding.x - uilabel.pivotOffset.x, num5, -1f);
 				uilabel.overflowMethod = UILabel.Overflow.ResizeFreely;

+ 3 - 3
Assembly-CSharp/UIStates.cs

@@ -24,13 +24,13 @@ public class UIStates : MonoBehaviour
 	{
 		this.m_ResultUI.SetActive(false);
 		ExChangeUI instance = ExChangeUI.Instance;
-		instance.FadeInStartAction = (Action)Delegate.Combine(instance.FadeInStartAction, new Action(delegate
+		instance.FadeInStartAction = (Action)Delegate.Combine(instance.FadeInStartAction, new Action(delegate()
 		{
 			this.EnableButton(this.m_StartButton, false);
 			this.EnableButton(this.m_EndButton, false);
 		}));
 		BetSetUI instance2 = BetSetUI.Instance;
-		instance2.CancelCall = (Action)Delegate.Combine(instance2.CancelCall, new Action(delegate
+		instance2.CancelCall = (Action)Delegate.Combine(instance2.CancelCall, new Action(delegate()
 		{
 			this.EnableButton(this.m_StartButton, true);
 			this.EnableButton(this.m_EndButton, true);
@@ -280,7 +280,7 @@ public class UIStates : MonoBehaviour
 		else
 		{
 			ChipManager instance = ChipManager.Instance;
-			instance.StackEndCallBack = (Action)Delegate.Combine(instance.StackEndCallBack, new Action(delegate
+			instance.StackEndCallBack = (Action)Delegate.Combine(instance.StackEndCallBack, new Action(delegate()
 			{
 				this.StartCoroutine(this.TextFluctuation(orijin_coin));
 			}));

+ 9 - 5
Assembly-CSharp/UndressDance_Mgr.cs

@@ -60,6 +60,10 @@ public class UndressDance_Mgr : PartsMgrBase
 			this.m_ControllerInputFlag.Add(controller_buttons, false);
 			this.m_ControllerInputFlag.Add(controller_buttons2, false);
 		}
+		if (GameMain.Instance.VRMode)
+		{
+			this.ShowItemWindow();
+		}
 	}
 
 	private void ReadPartsData(CsvParser csv, int cx, int cy)
@@ -415,13 +419,13 @@ public class UndressDance_Mgr : PartsMgrBase
 								bool flag5 = false;
 								if (is_right)
 								{
-									flag5 |= (left_input.GetAxis().x > 0.5f && !this.$this.m_ControllerInputFlag[left_input] && left_controller.HandDanceMode);
-									flag5 |= (right_input.GetAxis().x > 0.5f && !this.$this.m_ControllerInputFlag[right_input] && right_controller.HandDanceMode);
+									flag5 |= (left_input.GetAxis().x > 0.5f && !this.m_ControllerInputFlag[left_input] && left_controller.HandDanceMode);
+									flag5 |= (right_input.GetAxis().x > 0.5f && !this.m_ControllerInputFlag[right_input] && right_controller.HandDanceMode);
 								}
 								else
 								{
-									flag5 |= (left_input.GetAxis().x < -0.5f && !this.$this.m_ControllerInputFlag[left_input] && left_controller.HandDanceMode);
-									flag5 |= (right_input.GetAxis().x < -0.5f && !this.$this.m_ControllerInputFlag[right_input] && right_controller.HandDanceMode);
+									flag5 |= (left_input.GetAxis().x < -0.5f && !this.m_ControllerInputFlag[left_input] && left_controller.HandDanceMode);
+									flag5 |= (right_input.GetAxis().x < -0.5f && !this.m_ControllerInputFlag[right_input] && right_controller.HandDanceMode);
 								}
 								return flag5;
 							};
@@ -482,7 +486,7 @@ public class UndressDance_Mgr : PartsMgrBase
 					}
 				}
 			}
-			if (this.m_IsWindowActive)
+			if (this.m_IsWindowActive && !GameMain.Instance.VRMode)
 			{
 				bool flag4 = UICamera.hoveredObject && this.m_HoverCheckObj.Contains(UICamera.hoveredObject);
 				if (!flag4 && this.m_WaitCoroutine == null)

+ 4 - 2
Assembly-CSharp/UnityEngine/UI/uGUIScrollRect.cs

@@ -507,14 +507,16 @@ namespace UnityEngine.UI
 					}
 					else if (this.m_Inertia)
 					{
+						ref Vector2 ptr = ref this.m_Velocity;
 						int index;
-						this.m_Velocity[index = i] = this.m_Velocity[index] * Mathf.Pow(this.m_DecelerationRate, unscaledDeltaTime);
+						this.m_Velocity[index = i] = ptr[index] * Mathf.Pow(this.m_DecelerationRate, unscaledDeltaTime);
 						if (Mathf.Abs(this.m_Velocity[i]) < 1f)
 						{
 							this.m_Velocity[i] = 0f;
 						}
+						ptr = ref vector2;
 						int index2;
-						vector2[index2 = i] = vector2[index2] + this.m_Velocity[i] * unscaledDeltaTime;
+						vector2[index2 = i] = ptr[index2] + this.m_Velocity[i] * unscaledDeltaTime;
 					}
 					else
 					{

+ 3 - 3
Assembly-CSharp/VRCanvasManager.cs

@@ -285,7 +285,7 @@ public class VRCanvasManager : MonoBehaviour
 			{
 				float fadeTime = list[0].fadeTime;
 				bool isTimeScaling = list[0].isTimeScaling;
-				list[0].FadeOut(fadeTime, isTimeScaling, delegate
+				list[0].FadeOut(fadeTime, isTimeScaling, delegate()
 				{
 					if (MainCanvas)
 					{
@@ -361,9 +361,9 @@ public class VRCanvasManager : MonoBehaviour
 		UICanvasFade fade = canvas.GetComponent<UICanvasFade>();
 		this.m_CallbackCloseVRConfig = callback;
 		button.onClick.RemoveAllListeners();
-		button.onClick.AddListener(delegate
+		button.onClick.AddListener(delegate()
 		{
-			fade.FadeOut(fade.fadeTime, fade.isTimeScaling, delegate
+			fade.FadeOut(fade.fadeTime, fade.isTimeScaling, delegate()
 			{
 				if (this.m_CallbackCloseVRConfig != null)
 				{

+ 1 - 1
Assembly-CSharp/VRCanvasManagerMini.cs

@@ -249,7 +249,7 @@ public class VRCanvasManagerMini : VRCanvasManager
 			}
 			UICanvasFade component = gameObject2.GetComponent<UICanvasFade>();
 			VRTutorialMenu tutorial = gameObject2.GetComponent<VRTutorialMenu>();
-			callback = (UnityAction)Delegate.Combine(callback, new UnityAction(delegate
+			callback = (UnityAction)Delegate.Combine(callback, new UnityAction(delegate()
 			{
 				this.RemoveCanvas(canvasTutorial);
 				UnityEngine.Object.Destroy(tutorial.gameObject);

+ 2 - 2
Assembly-CSharp/VRChangeBackGroundMenu.cs

@@ -85,12 +85,12 @@ public class VRChangeBackGroundMenu : MonoBehaviour, InterfaceVRCanvas
 				image.sprite = (req.asset as Sprite);
 			}));
 			button.onClick.RemoveAllListeners();
-			button.onClick.AddListener(delegate
+			button.onClick.AddListener(delegate()
 			{
 				buttonData.isPointerStay = false;
 				VRExternalFileLoader.Event_CloseMovie();
 				UICanvasFade component2 = this.GetComponent<UICanvasFade>();
-				component2.FadeOut(component2.fadeTime, component2.isTimeScaling, delegate
+				component2.FadeOut(component2.fadeTime, component2.isTimeScaling, delegate()
 				{
 					VRCanvasManager.Instance.OpenBeforeVRCanvas();
 				});

+ 17 - 17
Assembly-CSharp/VRConfigMenu.cs

@@ -154,88 +154,88 @@ public class VRConfigMenu : MonoBehaviour
 		});
 		GameObject 2DMouseRotInverse = this.m_2DMouseRotInverse;
 		UnityAction[] array = new UnityAction[2];
-		array[0] = delegate
+		array[0] = delegate()
 		{
 			GameMain.Instance.CMSystem.VRCamRotDownUp = true;
 		};
-		array[1] = delegate
+		array[1] = delegate()
 		{
 			GameMain.Instance.CMSystem.VRCamRotDownUp = false;
 		};
 		VRConfigMenu.SetEvent_ToggleButton(2DMouseRotInverse, array);
 		GameObject 2DPlaneMovement = this.m_2DPlaneMovement;
 		UnityAction[] array2 = new UnityAction[2];
-		array2[0] = delegate
+		array2[0] = delegate()
 		{
 			GameMain.Instance.CMSystem.VRCameraPlaneMove = true;
 		};
-		array2[1] = delegate
+		array2[1] = delegate()
 		{
 			GameMain.Instance.CMSystem.VRCameraPlaneMove = false;
 		};
 		VRConfigMenu.SetEvent_ToggleButton(2DPlaneMovement, array2);
 		GameObject 2DShowMan = this.m_2DShowMan;
 		UnityAction[] array3 = new UnityAction[2];
-		array3[0] = delegate
+		array3[0] = delegate()
 		{
 			GameMain.Instance.CMSystem.VRManShow = true;
 		};
-		array3[1] = delegate
+		array3[1] = delegate()
 		{
 			GameMain.Instance.CMSystem.VRManShow = false;
 		};
 		VRConfigMenu.SetEvent_ToggleButton(2DShowMan, array3);
 		GameObject viveUseSnapRotate = this.m_ViveUseSnapRotate;
 		UnityAction[] array4 = new UnityAction[2];
-		array4[0] = delegate
+		array4[0] = delegate()
 		{
 			GameMain.Instance.CMSystem.OvrUseSnapRotate = true;
 		};
-		array4[1] = delegate
+		array4[1] = delegate()
 		{
 			GameMain.Instance.CMSystem.OvrUseSnapRotate = false;
 		};
 		VRConfigMenu.SetEvent_ToggleButton(viveUseSnapRotate, array4);
 		GameObject touchUseSnapRotate = this.m_TouchUseSnapRotate;
 		UnityAction[] array5 = new UnityAction[2];
-		array5[0] = delegate
+		array5[0] = delegate()
 		{
 			GameMain.Instance.CMSystem.OvrUseSnapRotate = true;
 		};
-		array5[1] = delegate
+		array5[1] = delegate()
 		{
 			GameMain.Instance.CMSystem.OvrUseSnapRotate = false;
 		};
 		VRConfigMenu.SetEvent_ToggleButton(touchUseSnapRotate, array5);
 		GameObject nonTouchPlaneMovement = this.m_NonTouchPlaneMovement;
 		UnityAction[] array6 = new UnityAction[2];
-		array6[0] = delegate
+		array6[0] = delegate()
 		{
 			GameMain.Instance.CMSystem.VRCameraPlaneMove = true;
 		};
-		array6[1] = delegate
+		array6[1] = delegate()
 		{
 			GameMain.Instance.CMSystem.VRCameraPlaneMove = false;
 		};
 		VRConfigMenu.SetEvent_ToggleButton(nonTouchPlaneMovement, array6);
 		GameObject nonTouchMouseRotEnable = this.m_NonTouchMouseRotEnable;
 		UnityAction[] array7 = new UnityAction[2];
-		array7[0] = delegate
+		array7[0] = delegate()
 		{
 			GameMain.Instance.CMSystem.OvrMouseRot = true;
 		};
-		array7[1] = delegate
+		array7[1] = delegate()
 		{
 			GameMain.Instance.CMSystem.OvrMouseRot = false;
 		};
 		VRConfigMenu.SetEvent_ToggleButton(nonTouchMouseRotEnable, array7);
 		GameObject viveFloorHeight = this.m_ViveFloorHeight;
 		UnityAction[] array8 = new UnityAction[2];
-		array8[0] = delegate
+		array8[0] = delegate()
 		{
 			GameMain.Instance.CMSystem.OvrCameraHeightType = CMSystem.OVR_CAM_HEIGHT_TYPE.REAL;
 		};
-		array8[1] = delegate
+		array8[1] = delegate()
 		{
 			GameMain.Instance.CMSystem.OvrCameraHeightType = CMSystem.OVR_CAM_HEIGHT_TYPE.VR;
 		};
@@ -265,7 +265,7 @@ public class VRConfigMenu : MonoBehaviour
 				Debug.LogWarning("[VRConfig]フラグの数がイベントの数より少ない");
 			}
 			button.onClick.RemoveAllListeners();
-			button.onClick.AddListener(delegate
+			button.onClick.AddListener(delegate()
 			{
 				ColorBlock colors;
 				for (int j = 0; j < buttons.Length; j++)

+ 1 - 1
Assembly-CSharp/VRCultivationSeedInventory.cs

@@ -10,7 +10,7 @@ public class VRCultivationSeedInventory : MonoBehaviour
 		for (int i = 0; i < this.m_UIButtonPlantSeeds.Length; i++)
 		{
 			Button button = this.m_UIButtonPlantSeeds[i];
-			button.onClick.AddListener(delegate
+			button.onClick.AddListener(delegate()
 			{
 				this.ButtonEvent_Selected(button);
 				if (this.m_OnEventButtonSelected != null)

+ 6 - 6
Assembly-CSharp/VRDialogMenu.cs

@@ -100,42 +100,42 @@ public class VRDialogMenu : MonoBehaviour
 		List<VRDialogMenu.DialogButton> list = new List<VRDialogMenu.DialogButton>();
 		if ((style & VRDialogMenu.TYPE_STYLE.NO) != (VRDialogMenu.TYPE_STYLE)0)
 		{
-			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_no", delegate
+			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_no", delegate()
 			{
 				callback(VRDialogMenu.TYPE_STYLE.NO);
 			}));
 		}
 		if ((style & VRDialogMenu.TYPE_STYLE.YES) != (VRDialogMenu.TYPE_STYLE)0)
 		{
-			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_yes", delegate
+			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_yes", delegate()
 			{
 				callback(VRDialogMenu.TYPE_STYLE.YES);
 			}));
 		}
 		if ((style & VRDialogMenu.TYPE_STYLE.CANCEL) != (VRDialogMenu.TYPE_STYLE)0)
 		{
-			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_cancel", delegate
+			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_cancel", delegate()
 			{
 				callback(VRDialogMenu.TYPE_STYLE.CANCEL);
 			}));
 		}
 		if ((style & VRDialogMenu.TYPE_STYLE.OK) != (VRDialogMenu.TYPE_STYLE)0)
 		{
-			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_ok", delegate
+			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_ok", delegate()
 			{
 				callback(VRDialogMenu.TYPE_STYLE.OK);
 			}));
 		}
 		if ((style & VRDialogMenu.TYPE_STYLE.TV) != (VRDialogMenu.TYPE_STYLE)0)
 		{
-			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_tv", delegate
+			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_tv", delegate()
 			{
 				callback(VRDialogMenu.TYPE_STYLE.TV);
 			}));
 		}
 		if ((style & VRDialogMenu.TYPE_STYLE.CD) != (VRDialogMenu.TYPE_STYLE)0)
 		{
-			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_cd", delegate
+			list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_cd", delegate()
 			{
 				callback(VRDialogMenu.TYPE_STYLE.CD);
 			}));

+ 24 - 24
Assembly-CSharp/VRExternalFileLoader.cs

@@ -518,7 +518,7 @@ public class VRExternalFileLoader : MonoBehaviour
 				element.buttonFaces[k].gameObject.SetActive(true);
 			}
 			element.buttonStart.onClick.RemoveAllListeners();
-			element.buttonStart.onClick.AddListener(delegate
+			element.buttonStart.onClick.AddListener(delegate()
 			{
 				if (VRExternalFileLoader.m_LoadingCount > 0)
 				{
@@ -528,7 +528,7 @@ public class VRExternalFileLoader : MonoBehaviour
 				{
 					return;
 				}
-				if (this.m_MediaPlayer == null)
+				if (<CreateMediaInfoButton>c__AnonStoreyA.m_MediaPlayer == null)
 				{
 					if (VRExternalFileLoader.m_PtrMediaPlayerObject == null)
 					{
@@ -537,26 +537,26 @@ public class VRExternalFileLoader : MonoBehaviour
 					GameObject[] array = GameObject.FindGameObjectsWithTag("MediaPlayerObj");
 					for (int l = 0; l < array.Length; l++)
 					{
-						if (this.m_MediaPlayer != null && this.m_MovieOutputer != null)
+						if (<CreateMediaInfoButton>c__AnonStoreyA.m_MediaPlayer != null && <CreateMediaInfoButton>c__AnonStoreyA.m_MovieOutputer != null)
 						{
 							break;
 						}
-						if (this.m_MediaPlayer == null)
+						if (<CreateMediaInfoButton>c__AnonStoreyA.m_MediaPlayer == null)
 						{
-							this.m_MediaPlayer = array[l].GetComponent<MediaPlayer>();
+							<CreateMediaInfoButton>c__AnonStoreyA.m_MediaPlayer = array[l].GetComponent<MediaPlayer>();
 						}
-						if (this.m_MovieOutputer == null)
+						if (<CreateMediaInfoButton>c__AnonStoreyA.m_MovieOutputer == null)
 						{
-							this.m_MovieOutputer = array[l].GetComponent<ApplyToMaterial>();
+							<CreateMediaInfoButton>c__AnonStoreyA.m_MovieOutputer = array[l].GetComponent<ApplyToMaterial>();
 						}
 					}
 				}
 				GameMain.Instance.SoundMgr.StopBGM(0.5f);
-				this.m_MediaPlayer.CloseVideo();
-				this.m_MediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.AbsolutePathOrURL, mediaPath, true);
+				<CreateMediaInfoButton>c__AnonStoreyA.m_MediaPlayer.CloseVideo();
+				<CreateMediaInfoButton>c__AnonStoreyA.m_MediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.AbsolutePathOrURL, mediaPath, true);
 				if (element.imageThumbnail)
 				{
-					this.m_MovieOutputer.GetComponent<MeshRenderer>().enabled = true;
+					<CreateMediaInfoButton>c__AnonStoreyA.m_MovieOutputer.GetComponent<MeshRenderer>().enabled = true;
 				}
 				string text3 = "*鑑賞_";
 				if (element.faceIndex == 0)
@@ -646,7 +646,7 @@ public class VRExternalFileLoader : MonoBehaviour
 				}
 			}
 			element.buttonStart.onClick.RemoveAllListeners();
-			element.buttonStart.onClick.AddListener(delegate
+			element.buttonStart.onClick.AddListener(delegate()
 			{
 				if (VRExternalFileLoader.m_LoadingCount > 0)
 				{
@@ -656,7 +656,7 @@ public class VRExternalFileLoader : MonoBehaviour
 				{
 					return;
 				}
-				if (this.m_MediaPlayer == null)
+				if (<CreateMediaInfoButton3>c__AnonStoreyC.m_MediaPlayer == null)
 				{
 					if (VRExternalFileLoader.m_PtrMediaPlayerObject == null)
 					{
@@ -665,26 +665,26 @@ public class VRExternalFileLoader : MonoBehaviour
 					GameObject[] array = GameObject.FindGameObjectsWithTag("MediaPlayerObj");
 					for (int l = 0; l < array.Length; l++)
 					{
-						if (this.m_MediaPlayer != null && this.m_MovieOutputer != null)
+						if (<CreateMediaInfoButton3>c__AnonStoreyC.m_MediaPlayer != null && <CreateMediaInfoButton3>c__AnonStoreyC.m_MovieOutputer != null)
 						{
 							break;
 						}
-						if (this.m_MediaPlayer == null)
+						if (<CreateMediaInfoButton3>c__AnonStoreyC.m_MediaPlayer == null)
 						{
-							this.m_MediaPlayer = array[l].GetComponent<MediaPlayer>();
+							<CreateMediaInfoButton3>c__AnonStoreyC.m_MediaPlayer = array[l].GetComponent<MediaPlayer>();
 						}
-						if (this.m_MovieOutputer == null)
+						if (<CreateMediaInfoButton3>c__AnonStoreyC.m_MovieOutputer == null)
 						{
-							this.m_MovieOutputer = array[l].GetComponent<ApplyToMaterial>();
+							<CreateMediaInfoButton3>c__AnonStoreyC.m_MovieOutputer = array[l].GetComponent<ApplyToMaterial>();
 						}
 					}
 				}
 				GameMain.Instance.SoundMgr.StopBGM(0.5f);
-				this.m_MediaPlayer.CloseVideo();
-				this.m_MediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.AbsolutePathOrURL, mediaPath, true);
+				<CreateMediaInfoButton3>c__AnonStoreyC.m_MediaPlayer.CloseVideo();
+				<CreateMediaInfoButton3>c__AnonStoreyC.m_MediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.AbsolutePathOrURL, mediaPath, true);
 				if (element.imageThumbnail)
 				{
-					this.m_MovieOutputer.GetComponent<MeshRenderer>().enabled = true;
+					<CreateMediaInfoButton3>c__AnonStoreyC.m_MovieOutputer.GetComponent<MeshRenderer>().enabled = true;
 				}
 				string text2 = "*鑑賞_";
 				if (element.faceIndex == 0)
@@ -756,7 +756,7 @@ public class VRExternalFileLoader : MonoBehaviour
 		if (buttonStart)
 		{
 			buttonStart.onClick.RemoveAllListeners();
-			buttonStart.onClick.AddListener(delegate
+			buttonStart.onClick.AddListener(delegate()
 			{
 				if (this.m_MovieOutputer)
 				{
@@ -915,17 +915,17 @@ public class VRExternalFileLoader : MonoBehaviour
 		VRCanvasManager.Instance.ClearCanvasStack();
 		VRDialogMenu vrdialogMenu = VRDialogMenu.CreateDialog();
 		List<VRDialogMenu.DialogButton> list = new List<VRDialogMenu.DialogButton>();
-		list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_cd", delegate
+		list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_cd", delegate()
 		{
 			VRExternalFileLoader.m_MediaNowType = VRExternalFileLoader.TYPE_MEDIA.Music;
 			VRCanvasManager.Instance.OpenVRCanvas(VRCanvasManager.VRCanvasType.MusicPlayer);
 		}, new Vector3(250f, -270f, 0f), new Vector2(300f, 300f)));
-		list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_tv", delegate
+		list.Add(new VRDialogMenu.DialogButton(true, "vr_dialog_tv", delegate()
 		{
 			VRExternalFileLoader.m_MediaNowType = VRExternalFileLoader.TYPE_MEDIA.Movie;
 			VRCanvasManager.Instance.OpenVRCanvas(VRCanvasManager.VRCanvasType.MoviePlayer);
 		}, new Vector3(-250f, -270f, 0f), new Vector2(300f, 300f)));
-		list.Add(new VRDialogMenu.DialogButton(true, "vr_bottom_system_return", delegate
+		list.Add(new VRDialogMenu.DialogButton(true, "vr_bottom_system_return", delegate()
 		{
 			string label_name = "*鑑賞_終了";
 			Maid maid = GameMain.Instance.CharacterMgr.GetMaid(0);

+ 5 - 5
Assembly-CSharp/VRFaceShortcutConfig.cs

@@ -45,7 +45,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 		this.CreateDefaultItems();
 		this.CreateViveItems();
 		NGUIWindow fadeWindowThis = this.m_FadeWindowThis;
-		fadeWindowThis.OnClose = (Action)Delegate.Combine(fadeWindowThis.OnClose, new Action(delegate
+		fadeWindowThis.OnClose = (Action)Delegate.Combine(fadeWindowThis.OnClose, new Action(delegate()
 		{
 			ControllerShortcutSettingData.config.Write();
 		}));
@@ -332,7 +332,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 		{
 			base.Awake();
 			this.slider = VRFaceShortcutConfig.GetChildObject<UISlider>(base.gameObject, "slider");
-			EventDelegate.Add(this.slider.onChange, delegate
+			EventDelegate.Add(this.slider.onChange, delegate()
 			{
 				if (this.onValueChanged != null)
 				{
@@ -340,7 +340,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 				}
 			});
 			UISlider slider = this.slider;
-			slider.onDragFinished = (UIProgressBar.OnDragFinished)Delegate.Combine(slider.onDragFinished, new UIProgressBar.OnDragFinished(delegate
+			slider.onDragFinished = (UIProgressBar.OnDragFinished)Delegate.Combine(slider.onDragFinished, new UIProgressBar.OnDragFinished(delegate()
 			{
 				if (this.onDragFinished != null)
 				{
@@ -420,7 +420,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			this.buttonLeft = VRFaceShortcutConfig.GetChildObject<UIButton>(base.gameObject, "button left");
 			this.textRight = this.buttonRight.GetComponentInChildren<UILabel>();
 			this.textLeft = this.buttonLeft.GetComponentInChildren<UILabel>();
-			EventDelegate.Add(this.buttonRight.onClick, delegate
+			EventDelegate.Add(this.buttonRight.onClick, delegate()
 			{
 				if (this.onClickIsLeft != null)
 				{
@@ -428,7 +428,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 				}
 				this.OnClickButton(false);
 			});
-			EventDelegate.Add(this.buttonLeft.onClick, delegate
+			EventDelegate.Add(this.buttonLeft.onClick, delegate()
 			{
 				if (this.onClickIsLeft != null)
 				{

+ 1 - 1
Assembly-CSharp/VRIKGeneralObjectSetter.cs

@@ -39,7 +39,7 @@ public class VRIKGeneralObjectSetter : MonoBehaviour
 			{
 				componentInChildren.text = Path.GetFileName(path);
 			}
-			EventDelegate.Add(button.onClick, delegate
+			EventDelegate.Add(button.onClick, delegate()
 			{
 				OvrIK.LoadGeneralModelFile(path);
 			});

+ 3 - 3
Assembly-CSharp/VRManualMenu.cs

@@ -75,7 +75,7 @@ public class VRManualMenu : MonoBehaviour
 				this.m_ManualDataArray.Add(data);
 				gameObject.GetComponentInChildren<Text>().text = data.ButtonName;
 				gameObject.GetComponent<Button>().onClick.RemoveAllListeners();
-				gameObject.GetComponent<Button>().onClick.AddListener(delegate
+				gameObject.GetComponent<Button>().onClick.AddListener(delegate()
 				{
 					this.ChangeManualImage(data.ImageName);
 					this.ButtonClickEvent(data);
@@ -97,7 +97,7 @@ public class VRManualMenu : MonoBehaviour
 		if (beforeButton != null)
 		{
 			this.m_LeftButton.interactable = true;
-			this.m_LeftButton.onClick.AddListener(delegate
+			this.m_LeftButton.onClick.AddListener(delegate()
 			{
 				this.ChangeManualImage(beforeButton.ImageName);
 				this.ButtonClickEvent(beforeButton);
@@ -109,7 +109,7 @@ public class VRManualMenu : MonoBehaviour
 		if (nextButton != null)
 		{
 			this.m_RightButton.interactable = true;
-			this.m_RightButton.onClick.AddListener(delegate
+			this.m_RightButton.onClick.AddListener(delegate()
 			{
 				this.ChangeManualImage(nextButton.ImageName);
 				this.ButtonClickEvent(nextButton);

+ 2 - 2
Assembly-CSharp/VRMiniGameManager.cs

@@ -136,7 +136,7 @@ public class VRMiniGameManager : MonoBehaviour
 			this.ClearQueueVoice();
 			this.m_MiniGameState = VRMiniGameManager.VRMiniGameState.Playing;
 			UICanvasFade component = ui.GetComponent<UICanvasFade>();
-			component.FadeOut(0.5f, false, delegate
+			component.FadeOut(0.5f, false, delegate()
 			{
 				UnityEngine.Object.Destroy(ui.gameObject);
 			});
@@ -327,7 +327,7 @@ public class VRMiniGameManager : MonoBehaviour
 				}
 			}
 		}
-		callback = (UnityAction)Delegate.Combine(callback, new UnityAction(delegate
+		callback = (UnityAction)Delegate.Combine(callback, new UnityAction(delegate()
 		{
 			this.AddQueueVoice(voiceType);
 			this.FinishMiniGame();

+ 2 - 2
Assembly-CSharp/VRMiniGameScoreBoard.cs

@@ -94,9 +94,9 @@ public class VRMiniGameScoreBoard : MonoBehaviour
 		this.m_TextResultMessage.text = message;
 		UICanvasFade fade = base.GetComponent<UICanvasFade>();
 		this.m_ButtonExit.onClick.RemoveAllListeners();
-		this.m_ButtonExit.onClick.AddListener(delegate
+		this.m_ButtonExit.onClick.AddListener(delegate()
 		{
-			fade.FadeOut(fade.fadeTime, fade.isTimeScaling, delegate
+			fade.FadeOut(fade.fadeTime, fade.isTimeScaling, delegate()
 			{
 				callback();
 			});

+ 6 - 6
Assembly-CSharp/VRMiniGameSetup.cs

@@ -109,18 +109,18 @@ public class VRMiniGameSetup : MonoBehaviour
 			{
 				if (hand != null)
 				{
-					this.$this.m_Controller = hand.VRControllerButtons;
+					this.m_Controller = hand.VRControllerButtons;
 				}
 				else
 				{
-					VRMiniGameManager.Instance.VRController = this.$this.m_Controller;
+					VRMiniGameManager.Instance.VRController = this.m_Controller;
 				}
-				VRMiniGameManager.Instance.CreateScoreBoard(this.$this.m_ScoreBoardUIPosition.position, this.$this.m_ScoreBoardUIPosition.rotation);
-				for (int i = 0; i < this.$this.m_GoEnableObjects.Length; i++)
+				VRMiniGameManager.Instance.CreateScoreBoard(this.m_ScoreBoardUIPosition.position, this.m_ScoreBoardUIPosition.rotation);
+				for (int i = 0; i < this.m_GoEnableObjects.Length; i++)
 				{
-					if (this.$this.m_GoEnableObjects[i] != null)
+					if (this.m_GoEnableObjects[i] != null)
 					{
-						this.$this.m_GoEnableObjects[i].SetActive(true);
+						this.m_GoEnableObjects[i].SetActive(true);
 					}
 				}
 			});

+ 1 - 1
Assembly-CSharp/VRNeiLetterMenu.cs

@@ -51,7 +51,7 @@ public class VRNeiLetterMenu : MonoBehaviour
 						gameObject.gameObject.SetActive(true);
 						gameObject.transform.SetParent(this.m_ScrollArea, false);
 						gameObject.GetComponentInChildren<Text>().text = cellAsString3;
-						gameObject.GetComponent<Button>().onClick.AddListener(delegate
+						gameObject.GetComponent<Button>().onClick.AddListener(delegate()
 						{
 							string path = this.m_uGUIAtlasPath + imageName;
 							this.StartCoroutine(this.Coroutine_Load<Sprite>(path, delegate(ResourceRequest req)

+ 3 - 3
Assembly-CSharp/VRRentalMaidMenu.cs

@@ -9,7 +9,7 @@ public class VRRentalMaidMenu : MonoBehaviour
 	{
 		Status status = GameMain.Instance.CharacterMgr.status;
 		this.m_ButtonMaid01.onClick.RemoveAllListeners();
-		this.m_ButtonMaid01.onClick.AddListener(delegate
+		this.m_ButtonMaid01.onClick.AddListener(delegate()
 		{
 			this.m_NowFlagName = "バケーションレンタルお掃除大作戦_1";
 			this.m_VoiceFileName = "N21_00540";
@@ -17,7 +17,7 @@ public class VRRentalMaidMenu : MonoBehaviour
 			this.m_ImageTargetFrame.SetParent(this.m_ButtonMaid01.transform, true);
 		});
 		this.m_ButtonMaid02.onClick.RemoveAllListeners();
-		this.m_ButtonMaid02.onClick.AddListener(delegate
+		this.m_ButtonMaid02.onClick.AddListener(delegate()
 		{
 			this.m_NowFlagName = "バケーションレンタルお掃除大作戦_2";
 			this.m_VoiceFileName = "N22_00543";
@@ -25,7 +25,7 @@ public class VRRentalMaidMenu : MonoBehaviour
 			this.m_ImageTargetFrame.SetParent(this.m_ButtonMaid02.transform, true);
 		});
 		this.m_ButtonMaid03.onClick.RemoveAllListeners();
-		this.m_ButtonMaid03.onClick.AddListener(delegate
+		this.m_ButtonMaid03.onClick.AddListener(delegate()
 		{
 			this.m_NowFlagName = "バケーションレンタルお掃除大作戦_3";
 			this.m_VoiceFileName = "N23_00301";

+ 1 - 1
Assembly-CSharp/VRSelectorMenu.cs

@@ -65,7 +65,7 @@ public class VRSelectorMenu : MonoBehaviour
 			componentInChildren.text = choice.strText;
 			if (callback != null)
 			{
-				component.onClick.AddListener(delegate
+				component.onClick.AddListener(delegate()
 				{
 					callback(choice);
 				});

+ 1 - 1
Assembly-CSharp/VRTutorialMenu.cs

@@ -50,7 +50,7 @@ public class VRTutorialMenu : MonoBehaviour
 		{
 			this.m_ButtonReturn.onClick.AddListener(callback);
 		}
-		this.m_ButtonReturn.onClick.AddListener(delegate
+		this.m_ButtonReturn.onClick.AddListener(delegate()
 		{
 			VRCanvasManager.Instance.OpenVRCanvas(VRCanvasManager.VRCanvasType.MainMenu);
 		});

+ 5 - 5
Assembly-CSharp/VRVIPMenu.cs

@@ -133,29 +133,29 @@ public class VRVIPMenu : MonoBehaviour
 							{
 								VRVIPMenuElement component = data.Element.GetComponent<VRVIPMenuElement>();
 								VRVIPMenuElement vrvipmenuElement = component;
-								vrvipmenuElement.m_CallbackPointerClick = (UnityAction)Delegate.Combine(vrvipmenuElement.m_CallbackPointerClick, new UnityAction(delegate
+								vrvipmenuElement.m_CallbackPointerClick = (UnityAction)Delegate.Combine(vrvipmenuElement.m_CallbackPointerClick, new UnityAction(delegate()
 								{
 									this.EventElementClick(data, scriptName);
 									GameMain.Instance.SoundMgr.PlaySystem(SoundMgr.SeType.Click);
 								}));
 								VRVIPMenuElement vrvipmenuElement2 = component;
-								vrvipmenuElement2.m_CallbackPointerDown = (UnityAction)Delegate.Combine(vrvipmenuElement2.m_CallbackPointerDown, new UnityAction(delegate
+								vrvipmenuElement2.m_CallbackPointerDown = (UnityAction)Delegate.Combine(vrvipmenuElement2.m_CallbackPointerDown, new UnityAction(delegate()
 								{
 									data.isPointerDown = true;
 								}));
 								VRVIPMenuElement vrvipmenuElement3 = component;
-								vrvipmenuElement3.m_CallbackPointerUp = (UnityAction)Delegate.Combine(vrvipmenuElement3.m_CallbackPointerUp, new UnityAction(delegate
+								vrvipmenuElement3.m_CallbackPointerUp = (UnityAction)Delegate.Combine(vrvipmenuElement3.m_CallbackPointerUp, new UnityAction(delegate()
 								{
 									data.isPointerDown = false;
 								}));
 								VRVIPMenuElement vrvipmenuElement4 = component;
-								vrvipmenuElement4.m_CallbackPointerEnter = (UnityAction)Delegate.Combine(vrvipmenuElement4.m_CallbackPointerEnter, new UnityAction(delegate
+								vrvipmenuElement4.m_CallbackPointerEnter = (UnityAction)Delegate.Combine(vrvipmenuElement4.m_CallbackPointerEnter, new UnityAction(delegate()
 								{
 									data.isPointerStay = true;
 									GameMain.Instance.SoundMgr.PlaySystem(SoundMgr.SeType.Hover);
 								}));
 								VRVIPMenuElement vrvipmenuElement5 = component;
-								vrvipmenuElement5.m_CallbackPointerExit = (UnityAction)Delegate.Combine(vrvipmenuElement5.m_CallbackPointerExit, new UnityAction(delegate
+								vrvipmenuElement5.m_CallbackPointerExit = (UnityAction)Delegate.Combine(vrvipmenuElement5.m_CallbackPointerExit, new UnityAction(delegate()
 								{
 									data.isPointerStay = false;
 									data.isPointerDown = false;

+ 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", 1160);
+		XElement xelement = new XElement("GameVersion", 1170);
 		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/WindowPartsPopUpList.cs

@@ -6,7 +6,7 @@ public class WindowPartsPopUpList : MonoBehaviour
 {
 	public virtual void Awake()
 	{
-		EventDelegate.Add(this.PopupList.onChange, delegate
+		EventDelegate.Add(this.PopupList.onChange, delegate()
 		{
 			if (this.onChangePopUpListValue == null || this.onChangePopUpListValue.Count <= 0)
 			{

+ 3 - 3
Assembly-CSharp/WindowPartsTransform.cs

@@ -13,7 +13,7 @@ public class WindowPartsTransform : MonoBehaviour
 			if (this.PosInput != null)
 			{
 				this.visible_setting_btn_dic_.Add("move", UTY.GetChildObject(this.VisibleSettingTab.gameObject, "MoveBtn/Btn", false).GetComponent<UIWFTabButton>());
-				EventDelegate.Add(this.visible_setting_btn_dic_["move"].onClick, delegate
+				EventDelegate.Add(this.visible_setting_btn_dic_["move"].onClick, delegate()
 				{
 					this.axis_visible_type_ = WindowPartsTransform.AxisVisibleType.Position;
 					this.OnChangeAxisVisibleType();
@@ -26,7 +26,7 @@ public class WindowPartsTransform : MonoBehaviour
 			if (this.RotateInput != null)
 			{
 				this.visible_setting_btn_dic_.Add("rotate", UTY.GetChildObject(this.VisibleSettingTab.gameObject, "RotateBtn/Btn", false).GetComponent<UIWFTabButton>());
-				EventDelegate.Add(this.visible_setting_btn_dic_["rotate"].onClick, delegate
+				EventDelegate.Add(this.visible_setting_btn_dic_["rotate"].onClick, delegate()
 				{
 					this.axis_visible_type_ = WindowPartsTransform.AxisVisibleType.Rotate;
 					this.OnChangeAxisVisibleType();
@@ -39,7 +39,7 @@ public class WindowPartsTransform : MonoBehaviour
 			if (this.PosInput != null || this.RotateInput != null)
 			{
 				this.visible_setting_btn_dic_.Add("unvisible", UTY.GetChildObject(this.VisibleSettingTab.gameObject, "UnVisibleBtn/Btn", false).GetComponent<UIWFTabButton>());
-				EventDelegate.Add(this.visible_setting_btn_dic_["unvisible"].onClick, delegate
+				EventDelegate.Add(this.visible_setting_btn_dic_["unvisible"].onClick, delegate()
 				{
 					this.axis_visible_type_ = WindowPartsTransform.AxisVisibleType.UnVisible;
 					this.OnChangeAxisVisibleType();

+ 92 - 0
Assembly-CSharp/XVI/AniLipSync/LowLatencyLipSyncContext.cs

@@ -0,0 +1,92 @@
+using System;
+using UnityEngine;
+
+namespace XVI.AniLipSync
+{
+	public class LowLatencyLipSyncContext : OVRLipSyncContextBase
+	{
+		private OVRLipSync.VariableData m_Variable
+		{
+			get
+			{
+				return GameMain.Instance.LipSyncMgr.Variable;
+			}
+		}
+
+		public override void Init()
+		{
+			base.Init();
+			this.m_MicInput = base.GetComponent<OVRLipSyncMicInput>();
+			this.processBuffer = new float[OVRLipSync.BuffSize];
+			this.microphoneBuffer = new float[OVRLipSync.SamplingRate * 10];
+		}
+
+		private void Update()
+		{
+			if (!this.audioSource.clip)
+			{
+				return;
+			}
+			int position = Microphone.GetPosition(this.m_MicInput.selectedDevice);
+			if (position < 0 || this.head == position)
+			{
+				return;
+			}
+			this.audioSource.clip.GetData(this.microphoneBuffer, 0);
+			while (LowLatencyLipSyncContext.GetDataLength(this.microphoneBuffer.Length, this.head, position) > this.processBuffer.Length)
+			{
+				int num = this.microphoneBuffer.Length - this.head;
+				if (num < this.processBuffer.Length)
+				{
+					Array.Copy(this.microphoneBuffer, this.head, this.processBuffer, 0, num);
+					Array.Copy(this.microphoneBuffer, 0, this.processBuffer, num, this.processBuffer.Length - num);
+				}
+				else
+				{
+					Array.Copy(this.microphoneBuffer, this.head, this.processBuffer, 0, this.processBuffer.Length);
+				}
+				float[] array = new float[this.processBuffer.Length];
+				Array.Copy(this.processBuffer, array, array.Length);
+				for (int i = 0; i < array.Length; i++)
+				{
+					array[i] *= this.m_Variable.MicSensitivity;
+				}
+				OVRLipSync.ProcessFrame(base.Context, array, OVRLipSync.Flags.None, base.Frame);
+				this.head += this.processBuffer.Length;
+				if (this.head > this.microphoneBuffer.Length)
+				{
+					this.head -= this.microphoneBuffer.Length;
+				}
+			}
+		}
+
+		public float GetMicVolume()
+		{
+			float num = 0f;
+			foreach (float f in this.processBuffer)
+			{
+				num += Mathf.Abs(f);
+			}
+			return num / (float)this.processBuffer.Length;
+		}
+
+		private static int GetDataLength(int bufferLength, int head, int tail)
+		{
+			if (head < tail)
+			{
+				return tail - head;
+			}
+			return bufferLength - head + tail;
+		}
+
+		private AudioClip clip;
+
+		private int head;
+
+		private float[] processBuffer = new float[512];
+
+		private float[] microphoneBuffer = new float[441000];
+
+		private OVRLipSyncMicInput m_MicInput;
+	}
+}

+ 20 - 10
Assembly-CSharp/YotogiCommandFactory.cs

@@ -93,11 +93,11 @@ public class YotogiCommandFactory : MonoBehaviour
 		List<KeyValuePair<string, List<Skill.Data.Command.Data>>> list = new List<KeyValuePair<string, List<Skill.Data.Command.Data>>>();
 		for (int i = 0; i < skill_command.data.Length; i++)
 		{
-			string group_name = skill_command.data[i].basic.group_name;
+			string groupName = this.GetGroupName(skill_command.data[i].basic);
 			bool flag = true;
 			for (int j = 0; j < list.Count; j++)
 			{
-				if (list[j].Key == group_name)
+				if (list[j].Key == groupName)
 				{
 					list[j].Value.Add(skill_command.data[i]);
 					flag = false;
@@ -106,7 +106,7 @@ public class YotogiCommandFactory : MonoBehaviour
 			}
 			if (flag)
 			{
-				list.Add(new KeyValuePair<string, List<Skill.Data.Command.Data>>(group_name, new List<Skill.Data.Command.Data>()));
+				list.Add(new KeyValuePair<string, List<Skill.Data.Command.Data>>(groupName, new List<Skill.Data.Command.Data>()));
 				list[list.Count - 1].Value.Add(skill_command.data[i]);
 			}
 		}
@@ -127,22 +127,22 @@ public class YotogiCommandFactory : MonoBehaviour
 					children.data = list[k].Value[l];
 					children.id = num;
 					children.visible = false;
-					children.this_object = this.CreateCommand(children.data.basic.name, children.id, false);
+					children.this_object = this.CreateCommand(this.GetCommandName(children.data.basic), children.id, false);
 					children.button = children.this_object.GetComponent<UIButton>();
 					children.nameLabel = children.this_object.GetComponentInChildren<UILabel>();
 					children.eventCollider = children.this_object.GetComponentInChildren<UIEventTrigger>().GetComponent<BoxCollider>();
 					children.transform = children.this_object.transform;
 					UIEventTrigger component = children.eventCollider.GetComponent<UIEventTrigger>();
 					YotogiCommandFactory.Command.Children data = children;
-					EventDelegate.Add(component.onHoverOver, delegate
+					EventDelegate.Add(component.onHoverOver, delegate()
 					{
 						this.OnHoverOver(data);
 					});
-					EventDelegate.Add(component.onHoverOut, delegate
+					EventDelegate.Add(component.onHoverOut, delegate()
 					{
 						this.OnHoverOut(data);
 					});
-					EventDelegate.Add(component.onDragStart, delegate
+					EventDelegate.Add(component.onDragStart, delegate()
 					{
 						this.OnHoverOut(data);
 					});
@@ -184,7 +184,7 @@ public class YotogiCommandFactory : MonoBehaviour
 
 	public void AddCommand(Skill.Data.Command.Data command_data)
 	{
-		YotogiCommandFactory.Command command = this.command_dic_[command_data.basic.group_name];
+		YotogiCommandFactory.Command command = this.command_dic_[this.GetGroupName(command_data.basic)];
 		for (int i = 0; i < command.children.Length; i++)
 		{
 			if (command.children[i].data == command_data)
@@ -219,7 +219,7 @@ public class YotogiCommandFactory : MonoBehaviour
 
 	public void RemoveCommand(Skill.Data.Command.Data command_data)
 	{
-		YotogiCommandFactory.Command command = this.command_dic_[command_data.basic.group_name];
+		YotogiCommandFactory.Command command = this.command_dic_[this.GetGroupName(command_data.basic)];
 		for (int i = 0; i < command.children.Length; i++)
 		{
 			if (command.children[i].data == command_data)
@@ -248,7 +248,7 @@ public class YotogiCommandFactory : MonoBehaviour
 
 	public GameObject GetCommandGameObject(Skill.Data.Command.Data command_data)
 	{
-		YotogiCommandFactory.Command command = this.command_dic_[command_data.basic.group_name];
+		YotogiCommandFactory.Command command = this.command_dic_[this.GetGroupName(command_data.basic)];
 		for (int i = 0; i < command.children.Length; i++)
 		{
 			if (command.children[i].data == command_data)
@@ -349,6 +349,16 @@ public class YotogiCommandFactory : MonoBehaviour
 		}
 	}
 
+	private string GetGroupName(Skill.Data.Command.Data.Basic commandDataBasic)
+	{
+		return commandDataBasic.group_name;
+	}
+
+	private string GetCommandName(Skill.Data.Command.Data.Basic commandDataBasic)
+	{
+		return commandDataBasic.name;
+	}
+
 	public GameObject HiddenTree;
 
 	private UIGrid grid_;

+ 4 - 10
Assembly-CSharp/YotogiManager.cs

@@ -319,8 +319,8 @@ public class YotogiManager : WfScreenManager
 			{
 				stockMaid.body0.MuneYureL(1f);
 				stockMaid.body0.MuneYureR(1f);
-				stockMaid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-				stockMaid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+				stockMaid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+				stockMaid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 			}
 		}
 		for (int j = 0; j < characterMgr.GetStockManCount(); j++)
@@ -328,8 +328,8 @@ public class YotogiManager : WfScreenManager
 			Maid stockMan = characterMgr.GetStockMan(j);
 			if (stockMan != null && stockMan.body0 != null && stockMan.body0.isLoadedBody)
 			{
-				stockMan.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-				stockMan.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+				stockMan.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+				stockMan.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 			}
 		}
 		string[] array = new string[]
@@ -555,7 +555,6 @@ public class YotogiManager : WfScreenManager
 	{
 		get
 		{
-			GameMain.Instance.MainCamera.IsFadeOut();
 			return false;
 		}
 	}
@@ -564,7 +563,6 @@ public class YotogiManager : WfScreenManager
 	{
 		get
 		{
-			GameMain.Instance.MainCamera.IsFadeOut();
 			return false;
 		}
 	}
@@ -573,7 +571,6 @@ public class YotogiManager : WfScreenManager
 	{
 		get
 		{
-			GameMain.Instance.MainCamera.IsFadeOut();
 			return false;
 		}
 	}
@@ -582,7 +579,6 @@ public class YotogiManager : WfScreenManager
 	{
 		get
 		{
-			GameMain.Instance.MainCamera.IsFadeOut();
 			return false;
 		}
 	}
@@ -591,7 +587,6 @@ public class YotogiManager : WfScreenManager
 	{
 		get
 		{
-			GameMain.Instance.MainCamera.IsFadeOut();
 			return false;
 		}
 	}
@@ -600,7 +595,6 @@ public class YotogiManager : WfScreenManager
 	{
 		get
 		{
-			GameMain.Instance.MainCamera.IsFadeOut();
 			return false;
 		}
 	}

+ 4 - 4
Assembly-CSharp/YotogiOldManager.cs

@@ -302,8 +302,8 @@ public class YotogiOldManager : WfScreenManager
 			{
 				stockMaid.body0.MuneYureL(1f);
 				stockMaid.body0.MuneYureR(1f);
-				stockMaid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-				stockMaid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+				stockMaid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+				stockMaid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 			}
 		}
 		for (int j = 0; j < characterMgr.GetStockManCount(); j++)
@@ -311,8 +311,8 @@ public class YotogiOldManager : WfScreenManager
 			Maid stockMan = characterMgr.GetStockMan(j);
 			if (stockMan != null && stockMan.body0 != null && stockMan.body0.isLoadedBody)
 			{
-				stockMan.IKTargetToBone("左手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
-				stockMan.IKTargetToBone("右手", null, "無し", Vector3.zero, IKMgrData.IKAttachType.Point, false);
+				stockMan.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
+				stockMan.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, 0f, false, false);
 			}
 		}
 		string[] array = new string[]

+ 3 - 3
Assembly-CSharp/YotogiOldPlayManager.cs

@@ -45,15 +45,15 @@ public class YotogiOldPlayManager : WfScreenChildren
 			EventDelegate.Add(component.onClick, new EventDelegate.Callback(this.OnSkillIconClick));
 			UIEventTrigger component3 = childObject.GetComponent<UIEventTrigger>();
 			int num = i;
-			EventDelegate.Add(component3.onHoverOver, delegate
+			EventDelegate.Add(component3.onHoverOver, delegate()
 			{
 				this.VisibleSkillName(num, true);
 			});
-			EventDelegate.Add(component3.onHoverOut, delegate
+			EventDelegate.Add(component3.onHoverOut, delegate()
 			{
 				this.VisibleSkillName(num, false);
 			});
-			EventDelegate.Add(component3.onDragStart, delegate
+			EventDelegate.Add(component3.onDragStart, delegate()
 			{
 				this.VisibleSkillName(num, false);
 			});

+ 9 - 9
Assembly-CSharp/YotogiOldSkillContainerViewer.cs

@@ -209,15 +209,15 @@ public class YotogiOldSkillContainerViewer
 			this.icon_btn_obj_ = this.skill_icon_obj.GetComponent<UIButton>();
 			this.skill_icon_scripts_ = this.skill_icon_obj.GetComponent<YotogiOldSkillIcon>();
 			this.btn_event_trigger_ = this.skill_icon_obj.gameObject.GetComponent<UIEventTrigger>();
-			EventDelegate.Add(this.btn_event_trigger_.onHoverOver, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onHoverOver, delegate()
 			{
 				this.VisibleSkillName(true);
 			});
-			EventDelegate.Add(this.btn_event_trigger_.onHoverOut, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onHoverOut, delegate()
 			{
 				this.VisibleSkillName(false);
 			});
-			EventDelegate.Add(this.btn_event_trigger_.onDragStart, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onDragStart, delegate()
 			{
 				this.VisibleSkillName(false);
 			});
@@ -262,15 +262,15 @@ public class YotogiOldSkillContainerViewer
 			this.btn_event_trigger_.onHoverOver.Clear();
 			this.btn_event_trigger_.onHoverOut.Clear();
 			this.btn_event_trigger_.onDragStart.Clear();
-			EventDelegate.Add(this.btn_event_trigger_.onHoverOver, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onHoverOver, delegate()
 			{
 				this.VisibleSkillName(true);
 			});
-			EventDelegate.Add(this.btn_event_trigger_.onHoverOut, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onHoverOut, delegate()
 			{
 				this.VisibleSkillName(false);
 			});
-			EventDelegate.Add(this.btn_event_trigger_.onDragStart, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onDragStart, delegate()
 			{
 				this.VisibleSkillName(false);
 			});
@@ -281,15 +281,15 @@ public class YotogiOldSkillContainerViewer
 			target.btn_event_trigger_.onHoverOver.Clear();
 			target.btn_event_trigger_.onHoverOut.Clear();
 			target.btn_event_trigger_.onDragStart.Clear();
-			EventDelegate.Add(target.btn_event_trigger_.onHoverOver, delegate
+			EventDelegate.Add(target.btn_event_trigger_.onHoverOver, delegate()
 			{
 				target.VisibleSkillName(true);
 			});
-			EventDelegate.Add(target.btn_event_trigger_.onHoverOut, delegate
+			EventDelegate.Add(target.btn_event_trigger_.onHoverOut, delegate()
 			{
 				target.VisibleSkillName(false);
 			});
-			EventDelegate.Add(target.btn_event_trigger_.onDragStart, delegate
+			EventDelegate.Add(target.btn_event_trigger_.onDragStart, delegate()
 			{
 				target.VisibleSkillName(false);
 			});

+ 1 - 1
Assembly-CSharp/YotogiOldSkillUnit.cs

@@ -54,7 +54,7 @@ public class YotogiOldSkillUnit : MonoBehaviour
 		}
 		this.result_anime_exp_system_.SetTotalExp(start_total_exp);
 		this.UpdateGage(this.result_anime_exp_system_);
-		this.anime_event_ = delegate
+		this.anime_event_ = delegate()
 		{
 			iTween.ValueTo(this.gameObject, iTween.Hash(new object[]
 			{

+ 29 - 13
Assembly-CSharp/YotogiParamScroll.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 using wf;
 
@@ -11,10 +12,10 @@ public class YotogiParamScroll : MonoBehaviour
 		this.panel_ = UTY.GetChildObject(base.gameObject, "Mask", false).GetComponent<UIPanel>();
 		this.parent_obj_ = UTY.GetChildObject(base.gameObject, "Parent", false);
 		Transform transform = this.parent_obj_.transform;
-		this.label_array = new UILabel[transform.childCount];
+		this.label_array = new YotogiParamScroll.LabelAndLocalize[transform.childCount];
 		for (int i = 0; i < this.label_array.Length; i++)
 		{
-			this.label_array[i] = transform.GetChild(i).GetComponent<UILabel>();
+			this.label_array[i] = new YotogiParamScroll.LabelAndLocalize(transform.GetChild(i).GetComponent<UILabel>(), transform.GetChild(i).GetComponent<Localize>());
 		}
 		this.base_pos = transform.localPosition;
 		this.hide_pos = this.base_pos;
@@ -28,7 +29,7 @@ public class YotogiParamScroll : MonoBehaviour
 	{
 		for (int i = 0; i < this.label_array.Length; i++)
 		{
-			this.label_array[i].alpha = 0f;
+			this.label_array[i].label.alpha = 0f;
 		}
 		if (this.state_ == YotogiParamScroll.State.FadeIn || this.state_ == YotogiParamScroll.State.FadeOut)
 		{
@@ -39,7 +40,7 @@ public class YotogiParamScroll : MonoBehaviour
 			this.parent_obj_.transform.SetParent(base.transform, false);
 			for (int j = 0; j < this.label_array.Length; j++)
 			{
-				this.label_array[j].ParentHasChanged();
+				this.label_array[j].label.ParentHasChanged();
 			}
 		}
 		this.parent_obj_.transform.localPosition = this.hide_pos;
@@ -51,11 +52,11 @@ public class YotogiParamScroll : MonoBehaviour
 		int num = (this.label_array.Length >= draw_param.Count) ? draw_param.Count : this.label_array.Length;
 		for (int i = 0; i < this.label_array.Length; i++)
 		{
-			this.label_array[i].alpha = 0f;
+			this.label_array[i].label.alpha = 0f;
 		}
 		for (int j = 0; j < num; j++)
 		{
-			this.label_array[j].alpha = 1f;
+			this.label_array[j].label.alpha = 1f;
 			KeyValuePair<string, int> keyValuePair = draw_param[j];
 			YotogiParamScroll.SetLabelText(this.label_array[j], keyValuePair.Key, keyValuePair.Value);
 		}
@@ -68,7 +69,7 @@ public class YotogiParamScroll : MonoBehaviour
 			this.parent_obj_.transform.SetParent(base.transform, false);
 			for (int k = 0; k < this.label_array.Length; k++)
 			{
-				this.label_array[k].ParentHasChanged();
+				this.label_array[k].label.ParentHasChanged();
 			}
 		}
 		this.parent_obj_.transform.localPosition = this.hide_pos;
@@ -82,7 +83,7 @@ public class YotogiParamScroll : MonoBehaviour
 			this.parent_obj_.transform.SetParent(this.panel_.transform, false);
 			for (int i = 0; i < this.label_array.Length; i++)
 			{
-				this.label_array[i].ParentHasChanged();
+				this.label_array[i].label.ParentHasChanged();
 			}
 			Hashtable hashtable = TweenHash.EaseOutSine(TweenHash.Type.Position, this.end_pos, this.MoveSpeedTime);
 			hashtable.Add("oncomplete", "OnEndFadeOut");
@@ -117,16 +118,18 @@ public class YotogiParamScroll : MonoBehaviour
 		this.parent_obj_.transform.SetParent(base.transform, false);
 		for (int i = 0; i < this.label_array.Length; i++)
 		{
-			this.label_array[i].ParentHasChanged();
+			this.label_array[i].label.ParentHasChanged();
 		}
 		this.parent_obj_.transform.localPosition = this.hide_pos;
 		this.state_ = YotogiParamScroll.State.Null;
 	}
 
-	private static void SetLabelText(UILabel label, string text, int num)
+	private static void SetLabelText(YotogiParamScroll.LabelAndLocalize labelAndLocalize, string text, int num)
 	{
-		label.text = text + "\u3000";
-		label.text += num.ToString();
+		labelAndLocalize.label.text = text;
+		labelAndLocalize.localize.SetTerm("MaidStatus/" + text);
+		UILabel label = labelAndLocalize.label;
+		label.text = label.text + "  " + num.ToString();
 	}
 
 	public int WaitTime = 2500;
@@ -137,7 +140,7 @@ public class YotogiParamScroll : MonoBehaviour
 
 	private GameObject parent_obj_;
 
-	private UILabel[] label_array;
+	private YotogiParamScroll.LabelAndLocalize[] label_array;
 
 	private Vector3 base_pos;
 
@@ -157,4 +160,17 @@ public class YotogiParamScroll : MonoBehaviour
 		Wait,
 		FadeOut
 	}
+
+	private struct LabelAndLocalize
+	{
+		public LabelAndLocalize(UILabel label, Localize localize)
+		{
+			this.label = label;
+			this.localize = localize;
+		}
+
+		public UILabel label;
+
+		public Localize localize;
+	}
 }

+ 5 - 6
Assembly-CSharp/YotogiParameterViewer.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 
@@ -48,15 +49,13 @@ public class YotogiParameterViewer : MonoBehaviour
 			return;
 		}
 		Status status = this.maid_.status;
-		this.label_dictionary_[YotogiParameterViewer.LabelType.Contract].text = EnumConvert.GetString(status.contract);
+		this.label_dictionary_[YotogiParameterViewer.LabelType.Contract].GetComponent<Localize>().SetTerm(EnumConvert.GetTerm(status.contract));
 		this.label_dictionary_[YotogiParameterViewer.LabelType.Name].text = status.lastName + "\n" + status.firstName;
 		this.label_dictionary_[YotogiParameterViewer.LabelType.YotogiPlayCount].text = status.playCountYotogi.ToString();
-		this.label_dictionary_[YotogiParameterViewer.LabelType.Seikeiken].text = EnumConvert.GetString(status.seikeiken);
-		this.label_dictionary_[YotogiParameterViewer.LabelType.Relation].text = EnumConvert.GetString(status.relation);
-		this.label_dictionary_[YotogiParameterViewer.LabelType.ConditionText].text = status.conditionText;
+		this.label_dictionary_[YotogiParameterViewer.LabelType.Seikeiken].GetComponent<Localize>().SetTerm(EnumConvert.GetTerm(status.seikeiken));
+		this.label_dictionary_[YotogiParameterViewer.LabelType.Relation].GetComponent<Localize>().SetTerm(EnumConvert.GetTerm(status.relation));
+		this.label_dictionary_[YotogiParameterViewer.LabelType.ConditionText].GetComponent<Localize>().SetTerm(status.conditionTermText);
 		UIWidget component = UTY.GetChildObject(this.label_dictionary_[YotogiParameterViewer.LabelType.ConditionText].transform.parent.gameObject, "Line", false).GetComponent<UIWidget>();
-		int num = 175 - 20 * this.label_dictionary_[YotogiParameterViewer.LabelType.ConditionText].text.Length;
-		component.width = ((90 >= num) ? num : 90);
 	}
 
 	public void UpdateTextParam()

+ 13 - 7
Assembly-CSharp/YotogiPlayManager.cs

@@ -2,6 +2,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using System.IO;
+using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 using wf;
@@ -47,15 +48,15 @@ public class YotogiPlayManager : WfScreenChildren
 			EventDelegate.Add(component.onClick, new EventDelegate.Callback(this.OnSkillIconClick));
 			UIEventTrigger component3 = childObject.GetComponent<UIEventTrigger>();
 			int num = i;
-			EventDelegate.Add(component3.onHoverOver, delegate
+			EventDelegate.Add(component3.onHoverOver, delegate()
 			{
 				this.VisibleSkillName(num, true);
 			});
-			EventDelegate.Add(component3.onHoverOut, delegate
+			EventDelegate.Add(component3.onHoverOut, delegate()
 			{
 				this.VisibleSkillName(num, false);
 			});
-			EventDelegate.Add(component3.onDragStart, delegate
+			EventDelegate.Add(component3.onDragStart, delegate()
 			{
 				this.VisibleSkillName(num, false);
 			});
@@ -377,7 +378,7 @@ public class YotogiPlayManager : WfScreenChildren
 			}
 			else
 			{
-				GameMain.Instance.SysDlg.Show("気絶しました。\n夜伽を終了します。", SystemDialog.TYPE.OK, delegate
+				GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/気絶して夜伽終了報告", SystemDialog.TYPE.OK, delegate
 				{
 					GameMain.Instance.SysDlg.Close();
 					this.playing_skill_no_ = -1;
@@ -1348,7 +1349,7 @@ public class YotogiPlayManager : WfScreenChildren
 
 	private bool OnEnabledCommand(Skill.Data.Command.Data command_data)
 	{
-		Func<bool> func = delegate
+		Func<bool> func = delegate()
 		{
 			if (command_data.basic.isEstrusTriggerCommand && (200 > this.maid_status_.currentExcite || 300 > this.maid_status_.currentSensual))
 			{
@@ -1531,6 +1532,7 @@ public class YotogiPlayManager : WfScreenChildren
 			UIButton component3 = childObject.GetComponent<UIButton>();
 			UISprite component4 = UTY.GetChildObject(gameObject, "SkillName", false).GetComponent<UISprite>();
 			UILabel componentInChildren = component4.GetComponentInChildren<UILabel>();
+			Localize component5 = componentInChildren.GetComponent<Localize>();
 			UIRect uirect = component4;
 			float alpha = 0f;
 			componentInChildren.alpha = alpha;
@@ -1543,6 +1545,10 @@ public class YotogiPlayManager : WfScreenChildren
 			else
 			{
 				componentInChildren.text = playingSkillData.skill_pair.base_data.name;
+				if (component5 != null)
+				{
+					component5.SetTerm(playingSkillData.skill_pair.base_data.termName);
+				}
 				componentInChildren.width = 0;
 				componentInChildren.MakePixelPerfect();
 				component4.width = componentInChildren.width + 20;
@@ -1568,8 +1574,8 @@ public class YotogiPlayManager : WfScreenChildren
 					component3.enabled = true;
 					childObject.GetComponent<UIPlayAnimation>().enabled = true;
 				}
-				YotogiSkillIcon component5 = childObject.GetComponent<YotogiSkillIcon>();
-				component5.SetSkillData(this.yotogi_mgr_.play_skill_array[num].skill_pair.base_data);
+				YotogiSkillIcon component6 = childObject.GetComponent<YotogiSkillIcon>();
+				component6.SetSkillData(this.yotogi_mgr_.play_skill_array[num].skill_pair.base_data);
 			}
 			num++;
 		}

+ 9 - 9
Assembly-CSharp/YotogiSkillContainerViewer.cs

@@ -232,15 +232,15 @@ public class YotogiSkillContainerViewer
 			this.icon_btn_obj_ = this.skill_icon_obj.GetComponent<UIButton>();
 			this.skill_icon_scripts_ = this.skill_icon_obj.GetComponent<YotogiSkillIcon>();
 			this.btn_event_trigger_ = this.skill_icon_obj.gameObject.GetComponent<UIEventTrigger>();
-			EventDelegate.Add(this.btn_event_trigger_.onHoverOver, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onHoverOver, delegate()
 			{
 				this.VisibleSkillName(true);
 			});
-			EventDelegate.Add(this.btn_event_trigger_.onHoverOut, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onHoverOut, delegate()
 			{
 				this.VisibleSkillName(false);
 			});
-			EventDelegate.Add(this.btn_event_trigger_.onDragStart, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onDragStart, delegate()
 			{
 				this.VisibleSkillName(false);
 			});
@@ -285,15 +285,15 @@ public class YotogiSkillContainerViewer
 			this.btn_event_trigger_.onHoverOver.Clear();
 			this.btn_event_trigger_.onHoverOut.Clear();
 			this.btn_event_trigger_.onDragStart.Clear();
-			EventDelegate.Add(this.btn_event_trigger_.onHoverOver, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onHoverOver, delegate()
 			{
 				this.VisibleSkillName(true);
 			});
-			EventDelegate.Add(this.btn_event_trigger_.onHoverOut, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onHoverOut, delegate()
 			{
 				this.VisibleSkillName(false);
 			});
-			EventDelegate.Add(this.btn_event_trigger_.onDragStart, delegate
+			EventDelegate.Add(this.btn_event_trigger_.onDragStart, delegate()
 			{
 				this.VisibleSkillName(false);
 			});
@@ -304,15 +304,15 @@ public class YotogiSkillContainerViewer
 			target.btn_event_trigger_.onHoverOver.Clear();
 			target.btn_event_trigger_.onHoverOut.Clear();
 			target.btn_event_trigger_.onDragStart.Clear();
-			EventDelegate.Add(target.btn_event_trigger_.onHoverOver, delegate
+			EventDelegate.Add(target.btn_event_trigger_.onHoverOver, delegate()
 			{
 				target.VisibleSkillName(true);
 			});
-			EventDelegate.Add(target.btn_event_trigger_.onHoverOut, delegate
+			EventDelegate.Add(target.btn_event_trigger_.onHoverOut, delegate()
 			{
 				target.VisibleSkillName(false);
 			});
-			EventDelegate.Add(target.btn_event_trigger_.onDragStart, delegate
+			EventDelegate.Add(target.btn_event_trigger_.onDragStart, delegate()
 			{
 				target.VisibleSkillName(false);
 			});

+ 3 - 2
Assembly-CSharp/YotogiSkillSelectManager.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 using wf;
@@ -31,7 +32,7 @@ public class YotogiSkillSelectManager : WfScreenChildren
 			this.category_data_array_[i].category = (Yotogi.Category)i;
 			this.category_data_array_[i].obj = Utility.CreatePrefab(childObject2, "SceneYotogi/SkillSelect/Prefab/CategoryBtn", true);
 			this.category_data_array_[i].obj.name = this.category_data_array_[i].category.ToString();
-			UTY.GetChildObject(this.category_data_array_[i].obj, "Label", false).GetComponent<UILabel>().text = this.category_data_array_[i].obj.name;
+			this.category_data_array_[i].obj.GetComponentInChildren<Localize>().SetTerm("SceneYotogi/" + this.category_data_array_[i].obj.name);
 			UIWFTabButton component = UTY.GetChildObject(this.category_data_array_[i].obj, "Button", false).GetComponent<UIWFTabButton>();
 			EventDelegate eventDelegate = new EventDelegate(this, "OnClickFromCategoryButton");
 			EventDelegate.Parameter[] parameters = eventDelegate.parameters;
@@ -355,7 +356,7 @@ public class YotogiSkillSelectManager : WfScreenChildren
 		this.yotogi_mgr_.SetPlaySkillArray(array);
 		if (this.maid_.status.currentHp <= 0)
 		{
-			GameMain.Instance.SysDlg.Show("体力が0以下のため気絶します。\n本当に実行しますか?", SystemDialog.TYPE.OK_CANCEL, delegate
+			GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/気絶注意", SystemDialog.TYPE.OK_CANCEL, delegate
 			{
 				GameMain.Instance.SysDlg.Close();
 				if (this.yotogi_mgr_.null_mgr.IsExistNextLabel())

+ 3 - 1
Assembly-CSharp/YotogiSkillUnit.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 using Yotogis;
@@ -81,6 +82,7 @@ public class YotogiSkillUnit : MonoBehaviour
 			this.lock_unit_.SetSkillData(param_data);
 		}
 		this.name_obj_.GetComponent<UILabel>().text = this.skill_data_.name;
+		this.name_obj_.GetComponent<Localize>().SetTerm(this.skill_data_.termName);
 		this.acquired_experience_obj.GetComponent<UILabel>().text = this.skill_data_.add_yotogi_class_exp.ToString();
 		this.cost_of_hp_obj.GetComponent<UILabel>().text = this.skill_data_.exec_need_hp.ToString();
 		this.icon_.SetSkillData(this.skill_data_);
@@ -123,7 +125,7 @@ public class YotogiSkillUnit : MonoBehaviour
 		}
 		this.result_anime_exp_system_.SetTotalExp(start_total_exp);
 		this.UpdateGage(this.result_anime_exp_system_);
-		this.anime_event_ = delegate
+		this.anime_event_ = delegate()
 		{
 			iTween.ValueTo(this.gameObject, iTween.Hash(new object[]
 			{

+ 10 - 0
Assembly-CSharp/YotogiStage.cs

@@ -116,6 +116,8 @@ public static class YotogiStage
 
 	private const string typeNameForErrorLog = "夜伽ステージ";
 
+	public const string termRootText = "SceneYotogi/背景タイプ/";
+
 	private static CsvCommonIdManager commonIdManager;
 
 	private static Dictionary<int, YotogiStage.Data> basicDatas;
@@ -231,6 +233,14 @@ public static class YotogiStage
 			return flag;
 		}
 
+		public string termName
+		{
+			get
+			{
+				return "SceneYotogi/背景タイプ/" + this.uniqueName;
+			}
+		}
+
 		public readonly int id;
 
 		public readonly string uniqueName;

+ 24 - 0
Assembly-CSharp/Yotogis/Skill.cs

@@ -1516,6 +1516,14 @@ namespace Yotogis
 
 			public Skill.Data connect_faint_skill { get; private set; }
 
+			public string termName
+			{
+				get
+				{
+					return "Yotogi/SkillName/" + this.name;
+				}
+			}
+
 			public readonly Yotogi.Category category;
 
 			public readonly int id;
@@ -1890,6 +1898,22 @@ namespace Yotogis
 							}
 						}
 
+						public string termName
+						{
+							get
+							{
+								return "Yotogi/SkillCommand/" + this.name;
+							}
+						}
+
+						public string termGroupName
+						{
+							get
+							{
+								return "Yotogi/SkillName/" + this.group_name;
+							}
+						}
+
 						public readonly Skill.Data skill;
 
 						public readonly int skill_id;

+ 70 - 64
Assembly-CSharp/uGUIKaraokeSelect.cs

@@ -52,6 +52,8 @@ public class uGUIKaraokeSelect : MonoBehaviour
 
 	public void OpenListSelectMusic(bool isOn)
 	{
+		uGUIKaraokeSelect.<OpenListSelectMusic>c__AnonStorey0 <OpenListSelectMusic>c__AnonStorey = new uGUIKaraokeSelect.<OpenListSelectMusic>c__AnonStorey0();
+		<OpenListSelectMusic>c__AnonStorey.$this = this;
 		this.SetButtonActive(this.m_ButtonOK, true);
 		this.SetButtonActive(this.m_ButtonCANCEL, true);
 		this.SetButtonActive(this.m_ButtonStart, false);
@@ -59,18 +61,18 @@ public class uGUIKaraokeSelect : MonoBehaviour
 		this.SetButtonInteractable(this.m_ButtonOK, true);
 		this.SetButtonInteractable(this.m_ButtonCANCEL, true);
 		this.ShowListViewer();
-		KaraokeDataManager.MusicData[] musicArray = this.GetMusicDataArray();
+		<OpenListSelectMusic>c__AnonStorey.musicArray = this.GetMusicDataArray();
 		this.m_BeforeSelectedGameObject = null;
-		this.UIListViewer.Show(musicArray.Length, delegate(int index, GameObject item)
+		this.UIListViewer.Show(<OpenListSelectMusic>c__AnonStorey.musicArray.Length, delegate(int index, GameObject item)
 		{
 			Toggle component = item.GetComponent<Toggle>();
 			uGUIKaraokeSelect.uGUIItemListButton itemNumber = item.AddComponent<uGUIKaraokeSelect.uGUIItemListButton>();
-			itemNumber.number = musicArray[index].ID;
-			if (this.m_SelectingMusicDataID == itemNumber.number)
+			itemNumber.number = <OpenListSelectMusic>c__AnonStorey.musicArray[index].ID;
+			if (<OpenListSelectMusic>c__AnonStorey.$this.m_SelectingMusicDataID == itemNumber.number)
 			{
 				component.isOn = true;
 			}
-			component.image.sprite = this.GetResource<Sprite>(string.Format("{0}{1}", "SceneVRCommunication/Tablet/Karaoke/Sprite/", musicArray[index].strThumbnailName));
+			component.image.sprite = <OpenListSelectMusic>c__AnonStorey.$this.GetResource<Sprite>(string.Format("{0}{1}", "SceneVRCommunication/Tablet/Karaoke/Sprite/", <OpenListSelectMusic>c__AnonStorey.musicArray[index].strThumbnailName));
 			component.onValueChanged.AddListener(delegate(bool value)
 			{
 				if (!value)
@@ -78,37 +80,39 @@ public class uGUIKaraokeSelect : MonoBehaviour
 					return;
 				}
 				int number = itemNumber.number;
-				if (this.IsAlreadySelected(item))
+				if (<OpenListSelectMusic>c__AnonStorey.IsAlreadySelected(item))
 				{
-					this.ButtonEventSetMusic(number);
+					<OpenListSelectMusic>c__AnonStorey.ButtonEventSetMusic(number);
 				}
 			});
 		});
 		this.m_ButtonOK.onClick.RemoveAllListeners();
-		this.m_ButtonOK.onClick.AddListener(delegate
+		this.m_ButtonOK.onClick.AddListener(delegate()
 		{
-			int indexMusic = this.m_SelectingMusicDataID;
-			if (this.m_BeforeSelectedGameObject)
+			int indexMusic = <OpenListSelectMusic>c__AnonStorey.$this.m_SelectingMusicDataID;
+			if (<OpenListSelectMusic>c__AnonStorey.$this.m_BeforeSelectedGameObject)
 			{
-				indexMusic = this.m_BeforeSelectedGameObject.GetComponent<uGUIKaraokeSelect.uGUIItemListButton>().number;
+				indexMusic = <OpenListSelectMusic>c__AnonStorey.$this.m_BeforeSelectedGameObject.GetComponent<uGUIKaraokeSelect.uGUIItemListButton>().number;
 			}
-			this.ButtonEventSetMusic(indexMusic);
+			<OpenListSelectMusic>c__AnonStorey.$this.ButtonEventSetMusic(indexMusic);
 		});
 		this.m_ButtonCANCEL.onClick.RemoveAllListeners();
-		this.m_ButtonCANCEL.onClick.AddListener(delegate
-		{
-			this.SetButtonActive(this.m_ButtonOK, false);
-			this.SetButtonActive(this.m_ButtonCANCEL, false);
-			this.SetButtonActive(this.m_ButtonStart, true);
-			this.SetButtonActive(this.m_ButtonEnd, true);
-			this.SetButtonInteractable(this.m_ButtonStart, this.IsSelectingMusicDataExist());
-			this.SetButtonInteractable(this.m_ButtonEnd, true);
-			this.HideListViewer();
+		this.m_ButtonCANCEL.onClick.AddListener(delegate()
+		{
+			<OpenListSelectMusic>c__AnonStorey.$this.SetButtonActive(<OpenListSelectMusic>c__AnonStorey.$this.m_ButtonOK, false);
+			<OpenListSelectMusic>c__AnonStorey.$this.SetButtonActive(<OpenListSelectMusic>c__AnonStorey.$this.m_ButtonCANCEL, false);
+			<OpenListSelectMusic>c__AnonStorey.$this.SetButtonActive(<OpenListSelectMusic>c__AnonStorey.$this.m_ButtonStart, true);
+			<OpenListSelectMusic>c__AnonStorey.$this.SetButtonActive(<OpenListSelectMusic>c__AnonStorey.$this.m_ButtonEnd, true);
+			<OpenListSelectMusic>c__AnonStorey.$this.SetButtonInteractable(<OpenListSelectMusic>c__AnonStorey.$this.m_ButtonStart, <OpenListSelectMusic>c__AnonStorey.$this.IsSelectingMusicDataExist());
+			<OpenListSelectMusic>c__AnonStorey.$this.SetButtonInteractable(<OpenListSelectMusic>c__AnonStorey.$this.m_ButtonEnd, true);
+			<OpenListSelectMusic>c__AnonStorey.$this.HideListViewer();
 		});
 	}
 
 	public void OpenListSelectBG(bool isOn)
 	{
+		uGUIKaraokeSelect.<OpenListSelectBG>c__AnonStorey2 <OpenListSelectBG>c__AnonStorey = new uGUIKaraokeSelect.<OpenListSelectBG>c__AnonStorey2();
+		<OpenListSelectBG>c__AnonStorey.$this = this;
 		this.SetButtonActive(this.m_ButtonOK, true);
 		this.SetButtonActive(this.m_ButtonCANCEL, true);
 		this.SetButtonActive(this.m_ButtonStart, false);
@@ -116,55 +120,57 @@ public class uGUIKaraokeSelect : MonoBehaviour
 		this.SetButtonInteractable(this.m_ButtonOK, true);
 		this.SetButtonInteractable(this.m_ButtonCANCEL, true);
 		this.ShowListViewer();
-		KaraokeDataManager.BackgroundData[] backgroundArray = this.GetBackgroundDataArray();
+		<OpenListSelectBG>c__AnonStorey.backgroundArray = this.GetBackgroundDataArray();
 		this.m_BeforeSelectedGameObject = null;
-		this.UIListViewer.Show(backgroundArray.Length, delegate(int index, GameObject item)
+		this.UIListViewer.Show(<OpenListSelectBG>c__AnonStorey.backgroundArray.Length, delegate(int index, GameObject item)
 		{
 			Toggle component = item.GetComponent<Toggle>();
 			item.AddComponent<uGUIKaraokeSelect.uGUIItemListButton>().number = index;
-			if (this.GetNowSelectingBackgroundDataIndex() == index)
+			if (<OpenListSelectBG>c__AnonStorey.$this.GetNowSelectingBackgroundDataIndex() == index)
 			{
 				component.isOn = true;
 			}
-			component.image.sprite = this.GetResource<Sprite>(string.Format("{0}{1}", "SceneVRCommunication/Tablet/Karaoke/Sprite/", backgroundArray[index].strThumbnailName));
+			component.image.sprite = <OpenListSelectBG>c__AnonStorey.$this.GetResource<Sprite>(string.Format("{0}{1}", "SceneVRCommunication/Tablet/Karaoke/Sprite/", <OpenListSelectBG>c__AnonStorey.backgroundArray[index].strThumbnailName));
 			component.onValueChanged.AddListener(delegate(bool value)
 			{
 				if (!value)
 				{
 					return;
 				}
-				this.SetButtonInteractable(this.m_ButtonOK, true);
-				if (this.IsAlreadySelected(item))
+				<OpenListSelectBG>c__AnonStorey.SetButtonInteractable(<OpenListSelectBG>c__AnonStorey.m_ButtonOK, true);
+				if (<OpenListSelectBG>c__AnonStorey.IsAlreadySelected(item))
 				{
-					this.ButtonEventSetBG(index);
+					<OpenListSelectBG>c__AnonStorey.ButtonEventSetBG(index);
 				}
 			});
 		});
 		this.m_ButtonOK.onClick.RemoveAllListeners();
-		this.m_ButtonOK.onClick.AddListener(delegate
+		this.m_ButtonOK.onClick.AddListener(delegate()
 		{
-			int indexBG = this.GetNowSelectingBackgroundDataIndex();
-			if (this.m_BeforeSelectedGameObject)
+			int indexBG = <OpenListSelectBG>c__AnonStorey.$this.GetNowSelectingBackgroundDataIndex();
+			if (<OpenListSelectBG>c__AnonStorey.$this.m_BeforeSelectedGameObject)
 			{
-				indexBG = this.m_BeforeSelectedGameObject.GetComponent<uGUIKaraokeSelect.uGUIItemListButton>().number;
+				indexBG = <OpenListSelectBG>c__AnonStorey.$this.m_BeforeSelectedGameObject.GetComponent<uGUIKaraokeSelect.uGUIItemListButton>().number;
 			}
-			this.ButtonEventSetBG(indexBG);
+			<OpenListSelectBG>c__AnonStorey.$this.ButtonEventSetBG(indexBG);
 		});
 		this.m_ButtonCANCEL.onClick.RemoveAllListeners();
-		this.m_ButtonCANCEL.onClick.AddListener(delegate
-		{
-			this.SetButtonActive(this.m_ButtonOK, false);
-			this.SetButtonActive(this.m_ButtonCANCEL, false);
-			this.SetButtonActive(this.m_ButtonStart, true);
-			this.SetButtonActive(this.m_ButtonEnd, true);
-			this.SetButtonInteractable(this.m_ButtonStart, this.IsSelectingMusicDataExist());
-			this.SetButtonInteractable(this.m_ButtonEnd, true);
-			this.HideListViewer();
+		this.m_ButtonCANCEL.onClick.AddListener(delegate()
+		{
+			<OpenListSelectBG>c__AnonStorey.$this.SetButtonActive(<OpenListSelectBG>c__AnonStorey.$this.m_ButtonOK, false);
+			<OpenListSelectBG>c__AnonStorey.$this.SetButtonActive(<OpenListSelectBG>c__AnonStorey.$this.m_ButtonCANCEL, false);
+			<OpenListSelectBG>c__AnonStorey.$this.SetButtonActive(<OpenListSelectBG>c__AnonStorey.$this.m_ButtonStart, true);
+			<OpenListSelectBG>c__AnonStorey.$this.SetButtonActive(<OpenListSelectBG>c__AnonStorey.$this.m_ButtonEnd, true);
+			<OpenListSelectBG>c__AnonStorey.$this.SetButtonInteractable(<OpenListSelectBG>c__AnonStorey.$this.m_ButtonStart, <OpenListSelectBG>c__AnonStorey.$this.IsSelectingMusicDataExist());
+			<OpenListSelectBG>c__AnonStorey.$this.SetButtonInteractable(<OpenListSelectBG>c__AnonStorey.$this.m_ButtonEnd, true);
+			<OpenListSelectBG>c__AnonStorey.$this.HideListViewer();
 		});
 	}
 
 	public void OpenListSelectFood(bool isOn)
 	{
+		uGUIKaraokeSelect.<OpenListSelectFood>c__AnonStorey4 <OpenListSelectFood>c__AnonStorey = new uGUIKaraokeSelect.<OpenListSelectFood>c__AnonStorey4();
+		<OpenListSelectFood>c__AnonStorey.$this = this;
 		if (!isOn)
 		{
 			return;
@@ -181,50 +187,50 @@ public class uGUIKaraokeSelect : MonoBehaviour
 		this.SetButtonInteractable(this.m_ButtonOK, true);
 		this.SetButtonInteractable(this.m_ButtonCANCEL, true);
 		this.ShowListViewer();
-		KaraokeDataManager.FoodData[] foodArray = this.GetFoodDataArray();
+		<OpenListSelectFood>c__AnonStorey.foodArray = this.GetFoodDataArray();
 		this.m_BeforeSelectedGameObject = null;
-		this.UIListViewer.Show(foodArray.Length, delegate(int index, GameObject item)
+		this.UIListViewer.Show(<OpenListSelectFood>c__AnonStorey.foodArray.Length, delegate(int index, GameObject item)
 		{
 			Toggle component = item.GetComponent<Toggle>();
 			item.AddComponent<uGUIKaraokeSelect.uGUIItemListButton>().number = index;
-			if (this.m_SelectingFoodDataIndex == index)
+			if (<OpenListSelectFood>c__AnonStorey.$this.m_SelectingFoodDataIndex == index)
 			{
 				component.isOn = true;
 			}
-			component.image.sprite = this.GetResource<Sprite>(string.Format("{0}{1}", "SceneVRCommunication/Tablet/Karaoke/Sprite/", foodArray[index].strThumbnailName));
+			component.image.sprite = <OpenListSelectFood>c__AnonStorey.$this.GetResource<Sprite>(string.Format("{0}{1}", "SceneVRCommunication/Tablet/Karaoke/Sprite/", <OpenListSelectFood>c__AnonStorey.foodArray[index].strThumbnailName));
 			component.onValueChanged.AddListener(delegate(bool value)
 			{
 				if (!value)
 				{
 					return;
 				}
-				this.SetButtonInteractable(this.m_ButtonOK, true);
-				if (this.IsAlreadySelected(item))
+				<OpenListSelectFood>c__AnonStorey.SetButtonInteractable(<OpenListSelectFood>c__AnonStorey.m_ButtonOK, true);
+				if (<OpenListSelectFood>c__AnonStorey.IsAlreadySelected(item))
 				{
-					this.ButtonEventSetFood(index);
+					<OpenListSelectFood>c__AnonStorey.ButtonEventSetFood(index);
 				}
 			});
 		});
 		this.m_ButtonOK.onClick.RemoveAllListeners();
-		this.m_ButtonOK.onClick.AddListener(delegate
+		this.m_ButtonOK.onClick.AddListener(delegate()
 		{
-			int indexFood = this.m_SelectingFoodDataIndex;
-			if (this.m_BeforeSelectedGameObject)
+			int indexFood = <OpenListSelectFood>c__AnonStorey.$this.m_SelectingFoodDataIndex;
+			if (<OpenListSelectFood>c__AnonStorey.$this.m_BeforeSelectedGameObject)
 			{
-				indexFood = this.m_BeforeSelectedGameObject.GetComponent<uGUIKaraokeSelect.uGUIItemListButton>().number;
+				indexFood = <OpenListSelectFood>c__AnonStorey.$this.m_BeforeSelectedGameObject.GetComponent<uGUIKaraokeSelect.uGUIItemListButton>().number;
 			}
-			this.ButtonEventSetFood(indexFood);
+			<OpenListSelectFood>c__AnonStorey.$this.ButtonEventSetFood(indexFood);
 		});
 		this.m_ButtonCANCEL.onClick.RemoveAllListeners();
-		this.m_ButtonCANCEL.onClick.AddListener(delegate
-		{
-			this.SetButtonActive(this.m_ButtonOK, false);
-			this.SetButtonActive(this.m_ButtonCANCEL, false);
-			this.SetButtonActive(this.m_ButtonStart, true);
-			this.SetButtonActive(this.m_ButtonEnd, true);
-			this.SetButtonInteractable(this.m_ButtonStart, this.IsSelectingMusicDataExist());
-			this.SetButtonInteractable(this.m_ButtonEnd, true);
-			this.HideListViewer();
+		this.m_ButtonCANCEL.onClick.AddListener(delegate()
+		{
+			<OpenListSelectFood>c__AnonStorey.$this.SetButtonActive(<OpenListSelectFood>c__AnonStorey.$this.m_ButtonOK, false);
+			<OpenListSelectFood>c__AnonStorey.$this.SetButtonActive(<OpenListSelectFood>c__AnonStorey.$this.m_ButtonCANCEL, false);
+			<OpenListSelectFood>c__AnonStorey.$this.SetButtonActive(<OpenListSelectFood>c__AnonStorey.$this.m_ButtonStart, true);
+			<OpenListSelectFood>c__AnonStorey.$this.SetButtonActive(<OpenListSelectFood>c__AnonStorey.$this.m_ButtonEnd, true);
+			<OpenListSelectFood>c__AnonStorey.$this.SetButtonInteractable(<OpenListSelectFood>c__AnonStorey.$this.m_ButtonStart, <OpenListSelectFood>c__AnonStorey.$this.IsSelectingMusicDataExist());
+			<OpenListSelectFood>c__AnonStorey.$this.SetButtonInteractable(<OpenListSelectFood>c__AnonStorey.$this.m_ButtonEnd, true);
+			<OpenListSelectFood>c__AnonStorey.$this.HideListViewer();
 		});
 	}
 
@@ -286,7 +292,7 @@ public class uGUIKaraokeSelect : MonoBehaviour
 		if (this.m_ParentUIListViewer.gameObject.activeSelf)
 		{
 			UICanvasFade component = this.m_ParentUIListViewer.GetComponent<UICanvasFade>();
-			component.FadeOut(component.fadeTime, component.isTimeScaling, delegate
+			component.FadeOut(component.fadeTime, component.isTimeScaling, delegate()
 			{
 				this.m_ParentUIListViewer.gameObject.SetActive(false);
 			});

+ 12 - 10
Assembly-CSharp/uGUITutorialPanel.cs

@@ -102,6 +102,8 @@ public class uGUITutorialPanel : MonoBehaviour
 
 	private void Initialize(string type, Action callback)
 	{
+		uGUITutorialPanel.<Initialize>c__AnonStorey1 <Initialize>c__AnonStorey = new uGUITutorialPanel.<Initialize>c__AnonStorey1();
+		<Initialize>c__AnonStorey.$this = this;
 		Transform uirootTrans = this.GetUIRootTrans();
 		if (uirootTrans != null)
 		{
@@ -114,9 +116,9 @@ public class uGUITutorialPanel : MonoBehaviour
 		this.m_CacheSpriteArray = new Dictionary<string, Sprite>();
 		this.m_CallbackClose = callback;
 		this.m_ButtonOK.interactable = true;
-		this.m_ButtonOK.onClick.AddListener(delegate
+		this.m_ButtonOK.onClick.AddListener(delegate()
 		{
-			this.OnClose(false, true);
+			<Initialize>c__AnonStorey.$this.OnClose(false, true);
 		});
 		this.ReadCSV(type);
 		if (this.IsMultiMode())
@@ -126,8 +128,8 @@ public class uGUITutorialPanel : MonoBehaviour
 			int itemCount = this.m_strFileNameArray.Length;
 			this.m_ListViewerButtons.Show<Toggle>(itemCount, delegate(int i, Toggle toggle)
 			{
-				KeyValuePair<string, string> keyValuePair = this.m_strFileNameArray[i];
-				if (this.index == i)
+				KeyValuePair<string, string> keyValuePair = <Initialize>c__AnonStorey.$this.m_strFileNameArray[i];
+				if (<Initialize>c__AnonStorey.$this.index == i)
 				{
 					toggle.isOn = true;
 				}
@@ -146,7 +148,7 @@ public class uGUITutorialPanel : MonoBehaviour
 					{
 						return;
 					}
-					this.OpenPage(i);
+					<Initialize>c__AnonStorey.OpenPage(i);
 				});
 			});
 		}
@@ -156,12 +158,12 @@ public class uGUITutorialPanel : MonoBehaviour
 			this.m_ParentSingleMode.SetActive(true);
 		}
 		this.OpenPage(0);
-		uGUICanvasFade fade = base.GetComponent<uGUICanvasFade>();
-		fade.alpha = 0f;
-		fade.interactable = false;
-		fade.FadeIn(0.5f, delegate
+		<Initialize>c__AnonStorey.fade = base.GetComponent<uGUICanvasFade>();
+		<Initialize>c__AnonStorey.fade.alpha = 0f;
+		<Initialize>c__AnonStorey.fade.interactable = false;
+		<Initialize>c__AnonStorey.fade.FadeIn(0.5f, delegate
 		{
-			fade.interactable = true;
+			<Initialize>c__AnonStorey.fade.interactable = true;
 		});
 	}