Files
SlaveMatrix-SDL/SlaveMatrix/SlaveMatrix/BodyPartClasses/交配.cs
2026-01-11 20:59:55 +04:00

4780 lines
152 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
using _2DGAMELIB;
using SlaveMatrix.GameClasses;
namespace SlaveMatrix
{
public static class
{
private static HashSet<string> = new HashSet<string>
{
Sta._宇Dt.ToString(),
Sta._皿Dt.ToString(),
Sta._天Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta.1_Dt.ToString(),
Sta.1_Dt.ToString(),
Sta.1_Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta.1_Dt.ToString(),
Sta.2_1Dt.ToString(),
Sta.2_2Dt.ToString(),
Sta.2_3Dt.ToString(),
Sta.2_Dt.ToString(),
Sta.2_1Dt.ToString(),
Sta.2_2Dt.ToString(),
Sta.2_3Dt.ToString(),
Sta.2_4Dt.ToString(),
Sta.2_Dt.ToString(),
Sta.2_Dt.ToString(),
Sta._線Dt.ToString(),
Sta._節Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._蛾Dt.ToString(),
Sta.UpperArm_鳥Dt.ToString(),
Sta.UpperArm_蝙Dt.ToString(),
Sta.Dt.ToString(),
Sta.Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._線Dt.ToString(),
Sta._節Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._蛾Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._人Dt.ToString(),
Sta._尖Dt.ToString(),
Sta._長Dt.ToString(),
Sta._鰭Dt.ToString(),
Sta._羽Dt.ToString(),
Sta._獣Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta.Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._龍Dt.ToString(),
Sta._竜Dt.ToString(),
Sta._悪Dt.ToString(),
Sta._淫Dt.ToString(),
Sta._虫Dt.ToString(),
Sta._蠍Dt.ToString(),
Sta._蛇Dt.ToString(),
Sta._腓Dt.ToString(),
Sta._根Dt.ToString(),
Sta._曳航Dt.ToString(),
Sta._軟Dt.ToString(),
Sta._触Dt.ToString(),
Sta._蔦Dt.ToString(),
Sta.Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta.ShoulderDType.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._甲Dt.ToString(),
Sta._羽Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._草Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._草Dt.ToString(),
Sta.UpperArm_鳥Dt.ToString(),
Sta.UpperArm_蝙Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._羽Dt.ToString(),
Sta._蝶Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._蠍Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._羽Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._草Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._草Dt.ToString(),
Sta._肢蜘Dt.ToString(),
Sta._肢蠍Dt.ToString(),
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString(),
Sta._曳航Dt.ToString(),
Sta._軟Dt.ToString(),
Sta._触Dt.ToString(),
Sta._蔦Dt.ToString(),
Sta.UpperArm_鳥Dt.ToString(),
Sta.UpperArm_蝙Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._羽Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._肢蜘Dt.ToString(),
Sta._肢蠍Dt.ToString(),
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString(),
Sta._曳航Dt.ToString(),
Sta._軟Dt.ToString(),
Sta._触Dt.ToString(),
Sta._蔦Dt.ToString(),
Sta.Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._犬Dt.ToString(),
Sta._人Dt.ToString(),
Sta._獣Dt.ToString(),
Sta._蹄Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta.Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._甲Dt.ToString(),
Sta._羽Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._草Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._草Dt.ToString(),
Sta.UpperArm_鳥Dt.ToString(),
Sta.UpperArm_蝙Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._羽Dt.ToString(),
Sta._蝶Dt.ToString()
};
private static HashSet<string> = new HashSet<string>();
private static HashSet<string> = new HashSet<string>();
private static HashSet<string> = new HashSet<string>
{
Sta._獣Dt.ToString(),
Sta._蹄Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._軟Dt.ToString(),
Sta._触Dt.ToString(),
Sta._犬Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._曳航Dt.ToString(),
Sta._鋏Dt.ToString(),
Sta._軟Dt.ToString(),
Sta._触Dt.ToString(),
Sta._犬Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._肢蜘Dt.ToString(),
Sta._肢蠍Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString(),
Sta._曳航Dt.ToString(),
Sta._鋏Dt.ToString()
};
private static HashSet<string> 1 = new HashSet<string>
{
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> 2 = new HashSet<string>
{
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> 3 = new HashSet<string>
{
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> 4 = new HashSet<string>
{
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._肢蜘Dt.ToString(),
Sta._肢蠍Dt.ToString(),
Sta._足蜘Dt.ToString(),
Sta._足百Dt.ToString(),
Sta._曳航Dt.ToString(),
Sta._鋏Dt.ToString()
};
private static HashSet<string> 1 = new HashSet<string>
{
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> 2 = new HashSet<string>
{
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> 3 = new HashSet<string>
{
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> 4 = new HashSet<string>
{
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._蠍Dt.ToString(),
Sta._魚Dt.ToString(),
Sta._豚Dt.ToString(),
Sta._鯨Dt.ToString(),
Sta._曳航Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._猫Dt.ToString(),
Sta._悪Dt.ToString(),
Sta._淫Dt.ToString(),
Sta._根Dt.ToString(),
Sta._曳航Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._猫Dt.ToString(),
Sta._悪Dt.ToString(),
Sta._淫Dt.ToString(),
Sta._根Dt.ToString(),
Sta._曳航Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._豚Dt.ToString(),
Sta._鯨Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._豚Dt.ToString(),
Sta._鯨Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._豚Dt.ToString(),
Sta._鯨Dt.ToString(),
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString(),
Sta._竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._豚Dt.ToString(),
Sta._鯨Dt.ToString(),
Sta._足蜘Dt.ToString(),
Sta._足蠍Dt.ToString(),
Sta._足百Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta._足百Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._曳航Dt.ToString(),
Sta._鋏Dt.ToString(),
Sta.Dt.ToString(),
Sta.Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._線Dt.ToString(),
Sta._節Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._蛾Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._線Dt.ToString(),
Sta._節Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._蛾Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._線Dt.ToString(),
Sta._節Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._蝶Dt.ToString(),
Sta._蛾Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._羽Dt.ToString(),
Sta._甲Dt.ToString(),
Sta._光Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta._羽Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._猫Dt.ToString(),
Sta._犬Dt.ToString(),
Sta._狐Dt.ToString(),
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString(),
Sta._龍Dt.ToString(),
Sta._竜Dt.ToString(),
Sta._悪Dt.ToString(),
Sta._淫Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._虫Dt.ToString(),
Sta._蜘Dt.ToString(),
Sta._蠍Dt.ToString(),
Sta._蛇Dt.ToString(),
Sta._腓Dt.ToString(),
Sta._短Dt.ToString(),
Sta._ヘDt.ToString(),
Sta._ガDt.ToString(),
Sta._ウDt.ToString(),
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString(),
Sta._蟲Dt.ToString(),
Sta._根Dt.ToString(),
Sta.Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._猫Dt.ToString(),
Sta._犬Dt.ToString(),
Sta._狐Dt.ToString(),
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString(),
Sta._龍Dt.ToString(),
Sta._竜Dt.ToString(),
Sta._悪Dt.ToString(),
Sta._淫Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._虫Dt.ToString(),
Sta._蜘Dt.ToString(),
Sta._蠍Dt.ToString(),
Sta._蛇Dt.ToString(),
Sta._腓Dt.ToString(),
Sta._短Dt.ToString(),
Sta._ヘDt.ToString(),
Sta._ガDt.ToString(),
Sta._ウDt.ToString(),
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString(),
Sta._蟲Dt.ToString(),
Sta._根Dt.ToString(),
Sta.Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._猫Dt.ToString(),
Sta._犬Dt.ToString(),
Sta._狐Dt.ToString(),
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString(),
Sta._龍Dt.ToString(),
Sta._竜Dt.ToString(),
Sta._悪Dt.ToString(),
Sta._淫Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._虫Dt.ToString(),
Sta._蜘Dt.ToString(),
Sta._蠍Dt.ToString(),
Sta._蛇Dt.ToString(),
Sta._腓Dt.ToString(),
Sta._短Dt.ToString(),
Sta._ヘDt.ToString(),
Sta._ガDt.ToString(),
Sta._ウDt.ToString(),
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString(),
Sta._蟲Dt.ToString(),
Sta._根Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._猫Dt.ToString(),
Sta._犬Dt.ToString(),
Sta._狐Dt.ToString(),
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString(),
Sta._龍Dt.ToString(),
Sta._竜Dt.ToString(),
Sta._悪Dt.ToString(),
Sta._淫Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._虫Dt.ToString(),
Sta._蜘Dt.ToString(),
Sta._蠍Dt.ToString(),
Sta._蛇Dt.ToString(),
Sta._腓Dt.ToString(),
Sta._短Dt.ToString(),
Sta._ヘDt.ToString(),
Sta._ガDt.ToString(),
Sta._ウDt.ToString(),
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString(),
Sta._蟲Dt.ToString(),
Sta._根Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._龍Dt.ToString(),
Sta._竜Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._虫Dt.ToString(),
Sta._蜘Dt.ToString(),
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta._鯨Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._ヘDt.ToString(),
Sta._ガDt.ToString(),
Sta._ウDt.ToString(),
Sta._蟲Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._ヘDt.ToString(),
Sta._ガDt.ToString(),
Sta._ウDt.ToString(),
Sta._蟲Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._猫Dt.ToString(),
Sta._悪Dt.ToString(),
Sta._淫Dt.ToString(),
Sta._根Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._鯨Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta._宇Dt.ToString() };
private static HashSet<string> UpperArm人 = new HashSet<string>
{
Sta._魚Dt.ToString(),
Sta._豚Dt.ToString(),
Sta._鯨Dt.ToString(),
Sta._肢蠍Dt.ToString(),
Sta.UpperArm_人Dt.ToString(),
Sta.UpperArm_鳥Dt.ToString(),
Sta.UpperArm_蝙Dt.ToString()
};
private static HashSet<string> UpperArm獣 = new HashSet<string>
{
Sta._肢蠍Dt.ToString(),
Sta.UpperArm_獣Dt.ToString(),
Sta.UpperArm_蹄Dt.ToString(),
Sta.Leg_鳥Dt.ToString(),
Sta.Leg_竜Dt.ToString()
};
private static HashSet<string> LowerArm人 = new HashSet<string>
{
Sta.LowerArm_人Dt.ToString(),
Sta.LowerArm_獣Dt.ToString()
};
private static HashSet<string> LowerArm鳥 = new HashSet<string> { Sta.LowerArm_鳥Dt.ToString() };
private static HashSet<string> LowerArm蝙 = new HashSet<string> { Sta.LowerArm_蝙Dt.ToString() };
private static HashSet<string> LowerArm獣 = new HashSet<string> { Sta.LowerArm_獣Dt.ToString() };
private static HashSet<string> LowerArm蹄 = new HashSet<string> { Sta.LowerArm_蹄Dt.ToString() };
private static HashSet<string> = new HashSet<string> { Sta._人Dt.ToString() };
private static HashSet<string> = new HashSet<string> { Sta._鳥Dt.ToString() };
private static HashSet<string> = new HashSet<string> { Sta._蝙Dt.ToString() };
private static HashSet<string> = new HashSet<string> { Sta._獣Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta.Dt.ToString() };
private static HashSet<string> = new HashSet<string> { Sta.Leg_人Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta.Leg_獣Dt.ToString(),
Sta.Leg_蹄Dt.ToString(),
Sta.Leg_鳥Dt.ToString(),
Sta.Leg_竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta.Leg_獣Dt.ToString(),
Sta.Leg_蹄Dt.ToString(),
Sta.Leg_鳥Dt.ToString(),
Sta.Leg_竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta.Leg_獣Dt.ToString(),
Sta.Leg_蹄Dt.ToString(),
Sta.Leg_鳥Dt.ToString(),
Sta.Leg_竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta.Leg_獣Dt.ToString(),
Sta.Leg_蹄Dt.ToString(),
Sta.Leg_鳥Dt.ToString(),
Sta.Leg_竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta._人Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._獣Dt.ToString(),
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._獣Dt.ToString(),
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._獣Dt.ToString(),
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._竜Dt.ToString()
};
private static HashSet<string> = new HashSet<string>
{
Sta._獣Dt.ToString(),
Sta._馬Dt.ToString(),
Sta._牛Dt.ToString(),
Sta._鳥Dt.ToString(),
Sta._竜Dt.ToString()
};
private static HashSet<string> 1 = new HashSet<string>();
private static HashSet<string> 2 = new HashSet<string>();
private static HashSet<string> 3 = new HashSet<string>();
private static HashSet<string> = new HashSet<string>();
private static HashSet<string> UpperArm = new HashSet<string>();
private static HashSet<string> LowerArm = new HashSet<string>();
private static HashSet<string> = new HashSet<string>();
private static HashSet<string> = new HashSet<string>
{
Sta._披Dt.ToString(),
Sta._心Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta.Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._甲Dt.ToString(),
Sta._虫Dt.ToString(),
Sta._蟲Dt.ToString()
};
private static HashSet<string> = new HashSet<string> { Sta.Dt.ToString() };
private static HashSet<string> = new HashSet<string> { Sta.Dt.ToString() };
private static HashSet<string> = new HashSet<string>
{
Sta._薔Dt.ToString(),
Sta._百Dt.ToString()
};
public static Dictionary<ConnectionInfo, HashSet<string>> = new Dictionary<ConnectionInfo, HashSet<string>>
{
{
ConnectionInfo._頭頂左_接続,
},
{
ConnectionInfo._頭頂右_接続,
},
{
ConnectionInfo.Head_触覚左_接続,
},
{
ConnectionInfo.Head_触覚右_接続,
},
{
ConnectionInfo.Head_耳左_接続,
},
{
ConnectionInfo.Head_耳右_接続,
},
{
ConnectionInfo.Head_頬左_接続,
},
{
ConnectionInfo.Head_頬右_接続,
},
{
ConnectionInfo.BackHair0_肢系_左5_接続,
},
{
ConnectionInfo.BackHair0_肢系_右5_接続,
},
{
ConnectionInfo.BackHair0_肢系_左4_接続,
},
{
ConnectionInfo.BackHair0_肢系_右4_接続,
},
{
ConnectionInfo.BackHair0_肢系_左3_接続,
},
{
ConnectionInfo.BackHair0_肢系_右3_接続,
},
{
ConnectionInfo.BackHair0_肢系_左2_接続,
},
{
ConnectionInfo.BackHair0_肢系_右2_接続,
},
{
ConnectionInfo.BackHair0_肢系_左1_接続,
},
{
ConnectionInfo.BackHair0_肢系_右1_接続,
},
{
ConnectionInfo.Chest_肩左_接続,
},
{
ConnectionInfo.Chest_肩右_接続,
},
{
ConnectionInfo.Chest_翼上左_接続,
},
{
ConnectionInfo.Chest_翼上右_接続,
},
{
ConnectionInfo.Chest_翼下左_接続,
},
{
ConnectionInfo.Chest_翼下右_接続,
},
{
ConnectionInfo.Torso_翼左_接続,
},
{
ConnectionInfo.Torso_翼右_接続,
},
{
ConnectionInfo.Waist_翼左_接続,
},
{
ConnectionInfo.Waist_翼右_接続,
},
{
ConnectionInfo.Waist_腿左_接続,
},
{
ConnectionInfo.Waist_腿右_接続,
},
{
ConnectionInfo._脇左_接続,
},
{
ConnectionInfo._脇右_接続,
},
{
ConnectionInfo._翼上左_接続,
},
{
ConnectionInfo._翼上右_接続,
},
{
ConnectionInfo._翼下左_接続,
},
{
ConnectionInfo._翼下右_接続,
},
{
ConnectionInfo._翼左_接続,
},
{
ConnectionInfo._翼右_接続,
},
{
ConnectionInfo._翼左_接続,
},
{
ConnectionInfo._翼右_接続,
},
{
ConnectionInfo._腿左_接続,
},
{
ConnectionInfo._腿右_接続,
},
{
ConnectionInfo._蛸_軟体外左_接続,
},
{
ConnectionInfo._蛸_軟体外右_接続,
},
{
ConnectionInfo._蛸_軟体内左_接続,
},
{
ConnectionInfo._蛸_軟体内右_接続,
},
{
ConnectionInfo._蜘_触肢左_接続,
},
{
ConnectionInfo._蜘_触肢右_接続,
},
{
ConnectionInfo._蜘_節足左1_接続,
1
},
{
ConnectionInfo._蜘_節足右1_接続,
1
},
{
ConnectionInfo._蜘_節足左2_接続,
2
},
{
ConnectionInfo._蜘_節足右2_接続,
2
},
{
ConnectionInfo._蜘_節足左3_接続,
3
},
{
ConnectionInfo._蜘_節足右3_接続,
3
},
{
ConnectionInfo._蜘_節足左4_接続,
4
},
{
ConnectionInfo._蜘_節足右4_接続,
4
},
{
ConnectionInfo._蠍_触肢左_接続,
},
{
ConnectionInfo._蠍_触肢右_接続,
},
{
ConnectionInfo._蠍_節足左1_接続,
1
},
{
ConnectionInfo._蠍_節足右1_接続,
1
},
{
ConnectionInfo._蠍_節足左2_接続,
2
},
{
ConnectionInfo._蠍_節足右2_接続,
2
},
{
ConnectionInfo._蠍_節足左3_接続,
3
},
{
ConnectionInfo._蠍_節足右3_接続,
3
},
{
ConnectionInfo._蠍_節足左4_接続,
4
},
{
ConnectionInfo._蠍_節足右4_接続,
4
},
{
ConnectionInfo._蠍_櫛状板左_接続,
},
{
ConnectionInfo._蠍_櫛状板右_接続,
},
{
ConnectionInfo._植_根外左_接続,
},
{
ConnectionInfo._植_根外右_接続,
},
{
ConnectionInfo._植_根内左_接続,
},
{
ConnectionInfo._植_根内右_接続,
},
{
ConnectionInfo._魚_左0_接続,
},
{
ConnectionInfo._魚_右0_接続,
},
{
ConnectionInfo._魚_左6_接続,
},
{
ConnectionInfo._魚_右6_接続,
},
{
ConnectionInfo._鯨_左0_接続,
},
{
ConnectionInfo._鯨_右0_接続,
},
{
ConnectionInfo._鯨_左6_接続,
},
{
ConnectionInfo._鯨_右6_接続,
},
{
ConnectionInfo._蛇_左_接続,
},
{
ConnectionInfo._蛇_右_接続,
},
{
ConnectionInfo.Torso_蛇_左_接続,
},
{
ConnectionInfo.Torso_蛇_右_接続,
},
{
ConnectionInfo._蟲_左0_接続,
},
{
ConnectionInfo._蟲_右0_接続,
},
{
ConnectionInfo._蟲_左1_接続,
},
{
ConnectionInfo._蟲_右1_接続,
},
{
ConnectionInfo._蟲_左1_接続,
},
{
ConnectionInfo._蟲_右1_接続,
},
{
ConnectionInfo._蟲_左2_接続,
},
{
ConnectionInfo._蟲_右2_接続,
},
{
ConnectionInfo._蟲_左3_接続,
},
{
ConnectionInfo._蟲_右3_接続,
},
{
ConnectionInfo._蟲_左4_接続,
},
{
ConnectionInfo._蟲_右4_接続,
},
{
ConnectionInfo._蟲_左5_接続,
},
{
ConnectionInfo._蟲_右5_接続,
},
{
ConnectionInfo._蟲_尾左_接続,
},
{
ConnectionInfo._蟲_尾右_接続,
},
{
ConnectionInfo.Torso_蟲_左_接続,
},
{
ConnectionInfo.Torso_蟲_右_接続,
},
{
ConnectionInfo._甲_触覚左_接続,
},
{
ConnectionInfo._甲_触覚右_接続,
},
{
ConnectionInfo._虫_触覚左_接続,
},
{
ConnectionInfo._虫_触覚右_接続,
},
{
ConnectionInfo._蟲_触覚左_接続,
},
{
ConnectionInfo._蟲_触覚右_接続,
},
{
ConnectionInfo.Head_頭頂_接続,
},
{
ConnectionInfo.Head_額_接続,
},
{
ConnectionInfo.Chest_背中_接続,
},
{
ConnectionInfo._背中_接続,
},
{
ConnectionInfo.Waist_尾_接続,
},
{
ConnectionInfo._尾_接続,
},
{
ConnectionInfo._蜘_尾_接続,
},
{
ConnectionInfo._蠍_尾_接続,
},
{
ConnectionInfo._魚_尾_接続,
},
{
ConnectionInfo._鯨_尾_接続,
},
{
ConnectionInfo._蛇_Torso_接続,
},
{
ConnectionInfo._蟲_Torso_接続,
},
{
ConnectionInfo.Torso_蛇_Torso_接続,
},
{
ConnectionInfo.Torso_蟲_Torso_接続,
},
{
ConnectionInfo._植_根中央_接続,
},
{
ConnectionInfo._ヘ_尾先_接続,
},
{
ConnectionInfo._ウ_尾先_接続,
},
{
ConnectionInfo._魚_尾先_接続,
},
{
ConnectionInfo._鯨_尾先_接続,
},
{
ConnectionInfo._宇_頭部後_接続,
},
{
ConnectionInfo.Head_大顎基_接続,
},
{
ConnectionInfo.Head_顔面_接続,
},
{
ConnectionInfo.Shoulder_UpperArm_接続,
UpperArm人
},
{
ConnectionInfo._UpperArm_接続,
UpperArm獣
},
{
ConnectionInfo.UpperArm_人_LowerArm_接続,
LowerArm人
},
{
ConnectionInfo.UpperArm_鳥_LowerArm_接続,
LowerArm鳥
},
{
ConnectionInfo.UpperArm_蝙_LowerArm_接続,
LowerArm蝙
},
{
ConnectionInfo.UpperArm_獣_LowerArm_接続,
LowerArm獣
},
{
ConnectionInfo.UpperArm_蹄_LowerArm_接続,
LowerArm蹄
},
{
ConnectionInfo.LowerArm_人_手_接続,
},
{
ConnectionInfo.LowerArm_鳥_手_接続,
},
{
ConnectionInfo.LowerArm_蝙_手_接続,
},
{
ConnectionInfo.LowerArm_獣_手_接続,
},
{
ConnectionInfo.LowerArm_蹄_手_接続,
},
{
ConnectionInfo.LowerArm_人_虫鎌_接続,
},
{
ConnectionInfo._人_Leg_接続,
},
{
ConnectionInfo._獣_Leg_接続,
},
{
ConnectionInfo._蹄_Leg_接続,
},
{
ConnectionInfo._鳥_Leg_接続,
},
{
ConnectionInfo._竜_Leg_接続,
},
{
ConnectionInfo.Leg_人_足_接続,
},
{
ConnectionInfo.Leg_獣_足_接続,
},
{
ConnectionInfo.Leg_蹄_足_接続,
},
{
ConnectionInfo.Leg_鳥_足_接続,
},
{
ConnectionInfo.Leg_竜_足_接続,
},
{
ConnectionInfo._甲_軸1_接続,
1
},
{
ConnectionInfo._甲_軸2_接続,
2
},
{
ConnectionInfo._甲_軸3_接続,
3
},
{
ConnectionInfo._犬_Head_接続,
},
{
ConnectionInfo._犬_UpperArm左_接続,
UpperArm
},
{
ConnectionInfo._犬_UpperArm右_接続,
UpperArm
},
{
ConnectionInfo._犬_LowerArm左_接続,
LowerArm
},
{
ConnectionInfo._犬_LowerArm右_接続,
LowerArm
},
{
ConnectionInfo._犬_手左_接続,
},
{
ConnectionInfo._犬_手右_接続,
},
{
ConnectionInfo._蔦_節3_接続,
},
{
ConnectionInfo._蔦_節5_接続,
},
{
ConnectionInfo._蔦_節7_接続,
},
{
ConnectionInfo._蔦_節9_接続,
},
{
ConnectionInfo._蔦_節11_接続,
},
{
ConnectionInfo._蔦_節13_接続,
},
{
ConnectionInfo._蔦_節15_接続,
},
{
ConnectionInfo._蔦_節17_接続,
},
{
ConnectionInfo._蔦_節19_接続,
},
{
ConnectionInfo._蔦_先端_接続,
},
{
ConnectionInfo._顎左_接続,
},
{
ConnectionInfo._顎右_接続,
},
{
ConnectionInfo._花_接続,
}
};
private static Type t = typeof();
private static HashSet<string> = new HashSet<string>
{
"肥大", "身長", "サイズ", "サイズX", "サイズY", "目高", "目間", "眉間", "髪長0", "髪長1",
"毛量", "広がり", "髪長", "高さ", "髪長2", "傾き", "外線", "睫毛_睫毛3_長さ", "睫毛_睫毛1_長さ", "睫毛_睫毛2_長さ",
"睫毛_睫毛4_長さ", "睫毛上上左_長さ", "睫毛上中左_長さ", "睫毛上下左_長さ", "睫毛上上右_長さ", "睫毛上中右_長さ", "睫毛上下右_長さ", "睫毛下上左_長さ", "睫毛下下左_長さ", "睫毛下上右_長さ",
"睫毛下下右_長さ", "瞼左_睫毛1_長さ", "瞼左_睫毛2_長さ", "瞼右_睫毛1_長さ", "瞼右_睫毛2_長さ", "口紅濃度", "バスト", "縁側角", "シャープ", "鋭爪"
};
private static BindingFlags bi = BindingFlags.Instance | BindingFlags.Public;
private static Type[] t0 = new Type[0];
private static Mix( , , double , WaistD d)
{
2 = new ();
switch (RNG.XS.Next(4))
{
case 0:
foreach (FieldInfo item in from e in t.GetFields()
where e.FieldType.ToString() == Sta.ct
select e)
{
item.SetValue(2, RNG.XS.NextBool() ? item.GetValue() : item.GetValue());
}
break;
case 1:
foreach (FieldInfo item2 in from e in t.GetFields()
where e.FieldType.ToString() == Sta.ct
select e)
{
Color c3 = (Color)item2.GetValue();
Color c4 = (Color)item2.GetValue();
if (!c3.IsEmpty && !c4.IsEmpty)
{
item2.SetValue(2, Oth.GetInter(ref c3, ref c4));
}
else
{
item2.SetValue(2, c3);
}
}
break;
case 2:
foreach (FieldInfo item3 in from e in t.GetFields()
where e.FieldType.ToString() == Sta.ct
select e)
{
Color c5 = (Color)item3.GetValue();
Color c6 = (Color)item3.GetValue();
if (!c5.IsEmpty && !c6.IsEmpty)
{
item3.SetValue(2, Oth.GetInter(ref c5, ref c6));
}
else
{
item3.SetValue(2, c6);
}
}
break;
default:
foreach (FieldInfo item4 in from e in t.GetFields()
where e.FieldType.ToString() == Sta.ct
select e)
{
Color c = (Color)item4.GetValue();
Color c2 = (Color)item4.GetValue();
if (!c.IsEmpty && !c2.IsEmpty)
{
item4.SetValue(2, Oth.GetInter(ref c, ref c2));
}
else
{
item4.SetValue(2, RNG.XS.NextBool() ? c : c2);
}
}
break;
}
if (..Contains(GameText.) && ..Contains(GameText.))
{
2..Add(GameText.);
}
else if (..Contains(GameText.) && ..Contains(GameText.))
{
2..Add(GameText.);
}
else if (..Any((string e) => e.StartsWith(GameText.)) && ..Any((string e) => e.StartsWith(GameText.)))
{
string text = ..First((string e) => e.StartsWith(GameText.));
string text2 = ..First((string e) => e.StartsWith(GameText.));
if (text == text2)
{
2..Add(text);
}
else
{
double rutinohWeight = text.GetRutinohWeight();
double rutinohWeight2 = text2.GetRutinohWeight();
if (rutinohWeight < rutinohWeight2)
{
2..Add(text);
}
else if (rutinohWeight > rutinohWeight2)
{
2..Add(text2);
}
else
{
2..Add(RNG.XS.NextBool() ? text : text2);
}
}
}
if (.Lot())
{
double[] obj = new double[4] { 1.0, 2.0, 8.0, 0.0 };
obj[3] = 500.0 * ((Sta.GameData. != null && Sta.GameData..Race == GameText.) ? 0.5 : 1.0);
switch (Oth.GetRandomIndex(obj))
{
case 0:
if (2..Contains(GameText.))
{
break;
}
foreach (FieldInfo item5 in from e in t.GetFields()
where ..Contains(e.Name) && e.FieldType.ToString() == Sta.ct
select e)
{
Color color = (Color)item5.GetValue(2);
if (color != Col.Empty)
{
if (item5.Name == "人肌")
{
color = Color.FromArgb(color.A, 255, 255, 255);
Col.GetLimitSkin(ref color, out color);
item5.SetValue(2, color);
}
else if (item5.Name.Contains("目") || item5.Name.Contains("眼") || item5.Name.Contains("秘石") || item5.Name.Contains("コア"))
{
item5.SetValue(2, Color.FromArgb(color.A, 255, 0, 0));
}
else
{
item5.SetValue(2, Color.FromArgb(color.A, 255, 255, 255));
}
}
}
2..Add(GameText.);
break;
case 1:
if (2..Contains(GameText.))
{
break;
}
foreach (FieldInfo item6 in from e in t.GetFields()
where ..Contains(e.Name) && e.FieldType.ToString() == Sta.ct
select e)
{
Color color = (Color)item6.GetValue(2);
if (color != Col.Empty)
{
if (item6.Name == "人肌")
{
color = Color.FromArgb(color.A, 0, 0, 0);
Col.GetLimitSkin(ref color, out color);
item6.SetValue(2, color);
}
else if (item6.Name.Contains("目") || item6.Name.Contains("眼") || item6.Name.Contains("秘石") || item6.Name.Contains("コア"))
{
item6.SetValue(2, Color.FromArgb(color.A, 0, 127, 255));
}
else
{
item6.SetValue(2, Color.FromArgb(color.A, 0, 0, 0));
}
}
}
2..Add(GameText.);
break;
case 2:
{
if (2..Any((string e) => e.StartsWith(GameText.)))
{
break;
}
int num = RNG.XS.Next(3);
int num2 = RNG.XS.Next(3);
int num3 = RNG.XS.Next(3);
foreach (FieldInfo item7 in from e in t.GetFields()
where ..Contains(e.Name) && e.FieldType.ToString() == Sta.ct
select e)
{
Color color = (Color)item7.GetValue(2);
if (color != Col.Empty)
{
if (item7.Name == "人肌")
{
color = Color.FromArgb(color.A, GetVal(color.R, num), GetVal(color.G, num2), GetVal(color.B, num3));
Col.GetLimitSkin(ref color, out color);
item7.SetValue(2, color);
}
else
{
color = Color.FromArgb(color.A, GetVal(color.R, num), GetVal(color.G, num2), GetVal(color.B, num3));
Col.GetLimit(ref color, out color);
item7.SetValue(2, color);
}
}
}
if (num != 2 || num2 != 2 || num3 != 2)
{
2..Add(GameText. + num + num2 + num3);
}
break;
}
}
if (0.05.Lot())
{
bool flag = false;
bool flag2 = false;
bool flag3 = false;
foreach (EleD item8 in d.EnumEleD())
{
if (!flag && item8 is D)
{
flag = true;
}
if (!flag2 && item8 is D)
{
flag2 = true;
}
if (!flag3 && item8 is D)
{
flag3 = true;
}
}
if ((flag2 && 2. != 2.) || (flag && 2. != 2.) || (flag3 && (2. != 2. || 2. != 2.)))
{
2..Add(GameText.);
}
}
else
{
switch (RNG.XS.Next(6))
{
case 0:
2. = 2.;
2. = 2.;
2. = 2.;
2. = 2.;
break;
case 1:
2. = 2.;
2. = 2.;
2. = 2.;
2. = 2.;
break;
case 2:
Oth.GetInter(ref 2., ref 2., out 2.);
2. = 2.;
2. = 2.;
2. = 2.;
break;
case 3:
Oth.GetInter(ref 2., ref 2., out 2.);
2. = 2.;
2. = 2.;
2. = 2.;
break;
case 4:
2. = 2.;
2. = 2.;
2. = 2.;
break;
default:
2. = 2.;
2. = 2.;
2. = 2.;
break;
}
}
}
else if (..Contains(GameText.) && ..Contains(GameText.))
{
bool flag4 = false;
bool flag5 = false;
bool flag6 = false;
foreach (EleD item9 in d.EnumEleD())
{
if (!flag4 && item9 is D)
{
flag4 = true;
}
if (!flag5 && item9 is D)
{
flag5 = true;
}
if (!flag6 && item9 is D)
{
flag6 = true;
}
}
if ((flag5 && 2. != 2.) || (flag4 && 2. != 2.) || (flag6 && (2. != 2. || 2. != 2.)))
{
2..Add(GameText.);
}
}
else
{
switch (RNG.XS.Next(6))
{
case 0:
2. = 2.;
2. = 2.;
2. = 2.;
2. = 2.;
break;
case 1:
2. = 2.;
2. = 2.;
2. = 2.;
2. = 2.;
break;
case 2:
Oth.GetInter(ref 2., ref 2., out 2.);
2. = 2.;
2. = 2.;
2. = 2.;
break;
case 3:
Oth.GetInter(ref 2., ref 2., out 2.);
2. = 2.;
2. = 2.;
2. = 2.;
break;
case 4:
2. = 2.;
2. = 2.;
2. = 2.;
break;
default:
2. = 2.;
2. = 2.;
2. = 2.;
break;
}
}
return 2;
}
private static int GetVal(int i, int v)
{
return v switch
{
1 => 255,
0 => 0,
_ => i,
};
}
private static WaistD Mix(WaistD , WaistD , double , bool )
{
int i = ( ? RNG.XS.Next(3) : RNG.XS.Next(7));
Dictionary<ConnectionInfo, List<Type>> = Get接続構成(, );
Type[] = Get要素構成(, );
HeadD HeadD2 = Mix<HeadD>(, , i, );
D D2 = new D();
HeadD2.(D2);
HeadD2.(new D());
HeadD2.(new D
{
= true
});
HeadD2.(new D());
HeadD2.(new D
{
= true
});
D D2;
HeadD2.(D2 = Mix<D>(, , i, ));
HeadD2.(new D());
D D2 = Mix<D>(, , : false, i, );
HeadD2.(D2);
HeadD2.(D2.Get逆());
D D2 = Mix<D>(, , : false, i, );
HeadD2.(D2);
HeadD2.(D2.Get逆());
HeadD2.(new D());
HeadD2.(new D());
HeadD2.AlignC();
NeckD D2 = Mix<NeckD>(, , i, );
D2.(HeadD2);
ChestD ChestD2 = Mix<ChestD>(, , i, );
D D2 = Mix<D>(, , : false, i, );
D2.(new D());
D2.(new D());
D2.(new 2D());
D2.(new D());
ChestD2.(D2);
ChestD2.(D2.Get逆());
ChestD2.(Mix<D>(, , i, ));
ChestD2.(Mix<D>(, , i, ));
D D2;
ChestD2.(D2 = Mix<D>(, , i, ));
ChestD2.(new _チューブD());
ChestD2.(new _クロスD());
ChestD2.(new _ビキニD());
ChestD2.(new _マイクロD());
ChestD2.(new _ブラD());
ChestD2.(new _ドレスD());
ChestD2.AlignC();
ChestD2.(D2);
TorsoD TorsoD2 = Mix<TorsoD>(, , i, );
D D2;
TorsoD2.(D2 = Mix<D>(, , i, ));
TorsoD2.(Mix<D>(, , i, ));
TorsoD2.(new _ドレスD());
TorsoD2.AlignC();
TorsoD2.(ChestD2);
WaistD Waist = Mix<WaistD>(, , i, );
Waist.(new _人D());
Waist.(new _人D());
Waist.(new _人D());
Waist.(Uni.());
Waist.(Uni.());
Waist.(Uni.());
D ;
Waist.( = Mix<D>(, , i, ));
Waist.(new _ーマルD());
Waist.(new _マイクロD());
_クロスD _クロスD2 = new _クロスD();
_クロスD2.(new _クロス後D());
Waist.(_クロスD2);
Waist.(new _前掛けD());
Waist.AlignC();
Waist.(TorsoD2);
TorsoD2. = Waist.;
if (RNG.XS.NextBool())
{
EleD eleD = SlaveMatrix.GameClasses._Con.Get後髪0R();
D2.(eleD);
eleD.AlignR();
if (eleD is BackHair0_肢系D && .Lot())
{
eleD.(, , i, ConnectionInfo.BackHair0_肢系_左2_接続, , , , );
eleD.(, , i, ConnectionInfo.BackHair0_肢系_左3_接続, , , , );
eleD.(, , i, ConnectionInfo.BackHair0_肢系_左4_接続, , , , );
eleD.(, , i, ConnectionInfo.BackHair0_肢系_左5_接続, , , , );
}
if ((eleD is BackHair0_ジグD || eleD is BackHair0_ハネD || eleD is BackHair0_パツD || eleD is BackHair0_カルD || eleD is BackHair0_肢系D) && RNG.XS.NextBool())
{
EleD e2 = SlaveMatrix.GameClasses._Con.Get後髪1R();
D2.(e2);
e2.AlignR();
}
EleD eleD2 = SlaveMatrix.GameClasses._Con.Get横髪R(: false);
D2.(eleD2);
eleD2.AlignR();
D2.(eleD2.Get逆());
EleD e3 = SlaveMatrix.GameClasses._Con.Get前髪R();
D2.(e3);
e3.AlignR();
}
else
{
0D 0D2 = Mix<0D>(, , i, );
if (0D2 != null)
{
D2.(0D2);
0D2.AlignR();
if (0D2 is BackHair0_肢系D && .Lot())
{
0D2.(, , i, ConnectionInfo.BackHair0_肢系_左2_接続, , , , );
0D2.(, , i, ConnectionInfo.BackHair0_肢系_左3_接続, , , , );
0D2.(, , i, ConnectionInfo.BackHair0_肢系_左4_接続, , , , );
0D2.(, , i, ConnectionInfo.BackHair0_肢系_左5_接続, , , , );
}
if ((0D2 is BackHair0_ジグD || 0D2 is BackHair0_ハネD || 0D2 is BackHair0_パツD || 0D2 is BackHair0_カルD || 0D2 is BackHair0_肢系D) && RNG.XS.NextBool())
{
BackHair1D 1D2 = Mix<BackHair1D>(, , i, );
if (1D2 != null)
{
D2.(1D2);
1D2.AlignR();
}
}
}
else if (RNG.XS.NextBool())
{
BackHair1D 1D3 = Mix<BackHair1D>(, , i, );
if (1D3 != null)
{
D2.(1D3);
1D3.AlignR();
}
}
SideHairD D2 = Mix<SideHairD>(, , : false, i, );
D2.(D2);
D2.AlignR();
D2.(D2.Get逆());
D e4 = Mix<D>(, , i, );
D2.(e4);
e4.AlignR();
}
D D2 = null;
D D3 = null;
D D2 = null;
D D3 = null;
D D2 = null;
D D2 = null;
D D2 = null;
D D2 = null;
bool flag = .EnumEleD().IsEleD<D>() || .EnumEleD().IsEleD<D>();
bool flag2 = .EnumEleD().IsEleD<D>() || .EnumEleD().IsEleD<D>();
if (! && .Lot() && 0.05.Lot())
{
flag2 = true;
}
if (flag && flag2)
{
if (RNG.XS.NextBool())
{
D2 = Mix<D>(, , : false, i, );
D D2 = Mix<D>(, , : false, i, );
D D2 = Mix<D>(, , : false, i, );
if (D2 != null && D2 != null && D2 != null)
{
if ( || !.Lot() || !0.05.Lot())
{
D2.(D2);
D2.(new D());
HeadD2.(D2);
HeadD2.(D3 = (D)D2.Get逆());
}
HeadD2.(D2);
HeadD2.(D2.Get逆());
}
else
{
D2 = SlaveMatrix.GameClasses._Con.Get双眼R(: false);
HeadD2.(D2);
HeadD2.(D3 = (D)D2.Get逆());
D D3 = SlaveMatrix.GameClasses._Con.Get眉R(: false);
HeadD2.(D3);
HeadD2.(D3.Get逆());
}
D2 = Mix<D>(, , i, );
D2 = Mix<D>(, , i, );
if (D2 != null && D2 != null)
{
D2.(D2);
HeadD2.(D2);
}
else if (! && .Lot() && 0.05.Lot())
{
HeadD2.(D2 = SlaveMatrix.GameClasses._Con.Get縦眼R());
D2 = D2._接続.GetEleD<D>();
}
D2 = Mix<D>(, , : false, i, );
D D2 = Mix<D>(, , : false, i, );
if (D2 != null && D2 != null)
{
D2.(D2);
HeadD2.(D2);
HeadD2.(D3 = (D)D2.Get逆());
}
else if (! && .Lot() && 0.05.Lot())
{
D2 = SlaveMatrix.GameClasses._Con.Get頬眼R(: false);
HeadD2.(D2);
HeadD2.(D3 = (D)D2.Get逆());
}
}
else
{
D2 = Mix<D>(, , i, );
D2 = Mix<D>(, , i, );
D D2 = Mix<D>(, , i, );
if (D2 != null && D2 != null && D2 != null)
{
D2.(D2);
D2.(new D
{
C = new Vector2D(0.01, 0.0)
});
D2.(new D
{
= true,
C = new Vector2D(-0.01, 0.0)
});
HeadD2.(D2);
HeadD2.(D2);
}
else
{
HeadD2.(D2 = SlaveMatrix.GameClasses._Con.Get単眼R());
D2 = D2._接続.GetEleD<D>();
HeadD2.(SlaveMatrix.GameClasses._Con.Get単眼眉R());
}
}
}
else if (flag)
{
D2 = Mix<D>(, , : false, i, );
D D3 = Mix<D>(, , : false, i, );
D D4 = Mix<D>(, , : false, i, );
if (D2 != null && D3 != null && D4 != null)
{
if ( || !.Lot() || !0.05.Lot())
{
D2.(D3);
D2.(new D());
HeadD2.(D2);
HeadD2.(D3 = (D)D2.Get逆());
}
HeadD2.(D4);
HeadD2.(D4.Get逆());
}
else
{
D2 = SlaveMatrix.GameClasses._Con.Get双眼R(: false);
HeadD2.(D2);
HeadD2.(D3 = (D)D2.Get逆());
D D5 = SlaveMatrix.GameClasses._Con.Get眉R(: false);
HeadD2.(D5);
HeadD2.(D5.Get逆());
}
D2 = Mix<D>(, , i, );
D2 = Mix<D>(, , i, );
if (D2 != null && D2 != null)
{
D2.(D2);
HeadD2.(D2);
}
else if (! && .Lot() && 0.05.Lot())
{
HeadD2.(D2 = SlaveMatrix.GameClasses._Con.Get縦眼R());
D2 = D2._接続.GetEleD<D>();
}
D2 = Mix<D>(, , : false, i, );
D D3 = Mix<D>(, , : false, i, );
if (D2 != null && D3 != null)
{
D2.(D3);
HeadD2.(D2);
HeadD2.(D3 = (D)D2.Get逆());
}
else if (! && .Lot() && 0.05.Lot())
{
D2 = SlaveMatrix.GameClasses._Con.Get頬眼R(: false);
HeadD2.(D2);
HeadD2.(D3 = (D)D2.Get逆());
}
}
else if (flag2)
{
D2 = Mix<D>(, , i, );
D2 = Mix<D>(, , i, );
D D3 = Mix<D>(, , i, );
if (D2 != null && D2 != null && D3 != null)
{
D2.(D2);
D2.(new D
{
C = new Vector2D(0.01, 0.0)
});
D2.(new D
{
= true,
C = new Vector2D(-0.01, 0.0)
});
HeadD2.(D2);
HeadD2.(D3);
}
else
{
HeadD2.(D2 = SlaveMatrix.GameClasses._Con.Get単眼R());
D2 = D2._接続.GetEleD<D>();
HeadD2.(SlaveMatrix.GameClasses._Con.Get単眼眉R());
}
}
D D2 = Mix<D>(, , i, );
if (D2 != null)
{
D2.(new D());
D2.(new D
{
= true
});
HeadD2.(D2);
}
D D2 = Mix<D>(, , i, );
if (D2 != null)
{
if (D2 is _通常D)
{
HeadD2.(D2);
HeadD2.(new _通常D());
HeadD2.(new _通常D
{
= true
});
}
else if (D2 is _裂けD)
{
HeadD2.(D2);
HeadD2.(new _裂けD());
HeadD2.(new _裂けD
{
= true
});
}
HeadD2.(new _人D());
HeadD2.(new D());
HeadD2.(new D());
D D2 = Mix<D>(, , i, );
if (D2 != null)
{
HeadD2.(D2);
}
}
HeadD2.(, , i, ConnectionInfo.Head_耳左_接続, , , , );
D2.(, , i, ConnectionInfo._頭頂左_接続, , , , );
HeadD2.(, , i, ConnectionInfo.Head_頬左_接続, , , , );
HeadD2.(, , i, ConnectionInfo.Head_大顎基_接続, , , , );
HeadD2.(, , i, ConnectionInfo.Head_顔面_接続, , , , );
HeadD2.(, , i, ConnectionInfo.Head_頭頂_接続, , , , );
HeadD2.(, , i, ConnectionInfo.Head_触覚左_接続, , , , );
ChestD2.(, , i, ConnectionInfo.Chest_肩左_接続, , , , );
HeadD2.(, , i, ConnectionInfo.Head_額_接続, , , , );
ChestD2.(, , i, ConnectionInfo.Chest_翼上左_接続, , , , );
ChestD2.(, , i, ConnectionInfo.Chest_翼下左_接続, , , , );
TorsoD2.(, , i, ConnectionInfo.Torso_翼左_接続, , , , );
Waist.(, , i, ConnectionInfo.Waist_翼左_接続, , , , );
if ()
{
ChestD2.(, , i, ConnectionInfo.Chest_背中_接続, , , , );
}
else
{
EleD eleD3 = Mix<D>(, , i, );
string t;
if (eleD3 != null)
{
t = eleD3.GetType().ToString();
if (!ChestD2._接続.Any((EleD e) => e.GetType().ToString() == t) && RNG.XS.NextBool())
{
ChestD2.(eleD3);
}
}
eleD3 = Mix<D>(, , i, );
if (eleD3 != null)
{
t = eleD3.GetType().ToString();
if (!ChestD2._接続.Any((EleD e) => e.GetType().ToString() == t) && RNG.XS.NextBool())
{
ChestD2.(eleD3);
}
}
eleD3 = Mix<D>(, , i, );
if (eleD3 != null)
{
t = eleD3.GetType().ToString();
if (!ChestD2._接続.Any((EleD e) => e.GetType().ToString() == t) && RNG.XS.NextBool())
{
ChestD2.(eleD3);
}
}
}
D = Mix<D>(, , i, );
Action action = delegate
{
Waist.();
.AlignR();
if ( is _魚D)
{
_魚D _魚D2 = (_魚D);
_魚D2.(, , i, ConnectionInfo._魚_左0_接続, , , , );
_魚D2.(, , i, ConnectionInfo._魚_左6_接続, , , , );
_魚D2.(, , i, ConnectionInfo._魚_尾_接続, , , , );
if (_魚D2._接続.Count > 0)
{
foreach (EleD item in _魚D2._接続)
{
item.AlignR();
}
}
double B2 = _魚D2.B;
foreach (EleD item2 in _魚D2.0_)
{
item2.B = B2;
}
foreach (EleD item3 in _魚D2.0_)
{
item3.B = B2;
}
B2 *= 0.9;
B2 *= 0.9;
B2 *= 0.9;
B2 *= 0.9;
B2 *= 0.9;
B2 *= 0.9;
foreach (EleD item4 in _魚D2.6_)
{
item4.B = B2;
}
foreach (EleD item5 in _魚D2.6_)
{
item5.B = B2;
}
Waist.(, , i, ConnectionInfo.Waist_腿左_接続, , , , );
for (int num3 = Waist._接続.Count - 1; num3 > -1; num3--)
{
if (!(Waist._接続[num3] is _犬D))
{
Waist._接続.RemoveAt(num3);
}
}
for (int num4 = Waist._接続.Count - 1; num4 > -1; num4--)
{
if (!(Waist._接続[num4] is _犬D))
{
Waist._接続.RemoveAt(num4);
}
}
if (Waist._接続.IsEleD<_犬D>())
{
for (int num5 = Waist._接続.Count - 1; num5 > -1; num5--)
{
if (Waist._接続[num5] is D)
{
Waist._接続.RemoveAt(num5);
}
}
for (int num6 = Waist._接続.Count - 1; num6 > -1; num6--)
{
if (Waist._接続[num6] is D)
{
Waist._接続.RemoveAt(num6);
}
}
}
}
else if ( is _鯨D)
{
_鯨D = (_鯨D);
.(, , i, ConnectionInfo._鯨_左0_接続, , , , );
.(, , i, ConnectionInfo._鯨_左6_接続, , , , );
.(, , i, ConnectionInfo._鯨_尾_接続, , , , );
if (._接続.Count > 0)
{
foreach (EleD item6 in ._接続)
{
item6.AlignR();
}
}
._接続.SetEleD(delegate(_鯨D e)
{
e. = .;
});
double B3 = .B;
foreach (EleD item7 in .0_)
{
item7.B = B3;
}
foreach (EleD item8 in .0_)
{
item8.B = B3;
}
B3 *= 0.9;
B3 *= 0.9;
B3 *= 0.9;
B3 *= 0.9;
B3 *= 0.9;
B3 *= 0.9;
foreach (EleD item9 in .6_)
{
item9.B = B3;
}
foreach (EleD item10 in .6_)
{
item10.B = B3;
}
Waist.(, , i, ConnectionInfo.Waist_腿左_接続, , , , );
for (int num7 = Waist._接続.Count - 1; num7 > -1; num7--)
{
if (!(Waist._接続[num7] is _犬D))
{
Waist._接続.RemoveAt(num7);
}
}
for (int num8 = Waist._接続.Count - 1; num8 > -1; num8--)
{
if (!(Waist._接続[num8] is _犬D))
{
Waist._接続.RemoveAt(num8);
}
}
if (Waist._接続.IsEleD<_犬D>())
{
for (int num9 = Waist._接続.Count - 1; num9 > -1; num9--)
{
if (Waist._接続[num9] is D)
{
Waist._接続.RemoveAt(num9);
}
}
for (int num10 = Waist._接続.Count - 1; num10 > -1; num10--)
{
if (Waist._接続[num10] is D)
{
Waist._接続.RemoveAt(num10);
}
}
}
}
else if ( is _蛇D)
{
_蛇D _蛇D2 = (_蛇D);
_蛇D2.(, , i, ConnectionInfo._蛇_左_接続, , , , );
Torso_蛇D Torso_蛇D2 = Mix<Torso_蛇D>(, , i, );
if (Torso_蛇D2 != null)
{
Torso_蛇D2.(, , i, ConnectionInfo.Torso_蛇_左_接続, , , , );
D D2 = (D)Torso_蛇D2.Copy();
_蛇D2.(Torso_蛇D2);
int num11 = 2;
int num12 = .EnumEleD().Count((EleD e) => e is D);
int num13 = .EnumEleD().Count((EleD e) => e is D);
num11 = (RNG.XS.NextBool() ? ((int)((double)(num12 + num13) * 0.5)) : ((!RNG.XS.NextBool()) ? num13 : num12));
num11 = (num11 + RNG.XS.NextSign() * RNG.XS.Next(4)).Clamp(0, 50);
for (int l = 0; l < num11; l++)
{
Torso_蛇D2.Torso接続(Torso_蛇D2 = (Torso_蛇D)D2.Copy());
}
Torso_蛇D2.(, , i, ConnectionInfo.Torso_蛇_Torso_接続, , , , );
if (Torso_蛇D2.EnumEleD().IsEleD<D>())
{
IEnumerable<Torso_蛇D> eleDs = _蛇D2.EnumEleD().Skip(1).GetEleDs<Torso_蛇D>();
foreach (Torso_蛇D item11 in eleDs.Take(eleDs.Count() - 1))
{
item11._接続.Clear();
item11._接続.Clear();
}
if (num11 < 2)
{
Torso_蛇D obj = eleDs.Last();
obj._接続.Clear();
obj._接続.Clear();
}
}
else
{
int num14 = 0;
foreach (Torso_蛇D eleD7 in _蛇D2.EnumEleD().Skip(1).GetEleDs<Torso_蛇D>())
{
if (num14 % 3 != 1)
{
eleD7._接続.Clear();
eleD7._接続.Clear();
}
num14++;
}
}
}
else
{
_蛇D2.(, , i, ConnectionInfo._蛇_Torso_接続, , , , );
}
_蛇D2.AlignC();
if (_蛇D2.)
{
._鱗1_表示 = false;
._鱗2_表示 = false;
._鱗3_表示 = false;
._鱗4_表示 = false;
._獣毛_表示 = false;
._表示 = false;
}
Waist.(, , i, ConnectionInfo.Waist_腿左_接続, , , , );
for (int num15 = Waist._接続.Count - 1; num15 > -1; num15--)
{
if (!(Waist._接続[num15] is _犬D))
{
Waist._接続.RemoveAt(num15);
}
}
for (int num16 = Waist._接続.Count - 1; num16 > -1; num16--)
{
if (!(Waist._接続[num16] is _犬D))
{
Waist._接続.RemoveAt(num16);
}
}
if (Waist._接続.IsEleD<_犬D>())
{
for (int num17 = Waist._接続.Count - 1; num17 > -1; num17--)
{
if (Waist._接続[num17] is D)
{
Waist._接続.RemoveAt(num17);
}
}
for (int num18 = Waist._接続.Count - 1; num18 > -1; num18--)
{
if (Waist._接続[num18] is D)
{
Waist._接続.RemoveAt(num18);
}
}
}
}
else if ( is _蟲D)
{
_蟲D _蟲D2 = (_蟲D);
_蟲D2.(, , i, ConnectionInfo._蟲_左0_接続, , , , );
_蟲D2.(, , i, ConnectionInfo._蟲_左1_接続, , , , );
Torso_蟲D Torso_蟲D2 = Mix<Torso_蟲D>(, , i, );
if (Torso_蟲D2 != null)
{
Torso_蟲D2.(, , i, ConnectionInfo.Torso_蟲_左_接続, , , , );
D D3 = (D)Torso_蟲D2.Copy();
_蟲D2.(Torso_蟲D2);
int num19 = 2;
int num20 = .EnumEleD().Count((EleD e) => e is D);
int num21 = .EnumEleD().Count((EleD e) => e is D);
num19 = (RNG.XS.NextBool() ? ((int)((double)(num20 + num21) * 0.5)) : ((!RNG.XS.NextBool()) ? num21 : num20));
num19 = (num19 + RNG.XS.NextSign() * RNG.XS.Next(4)).Clamp(0, 50);
for (int m = 0; m < num19; m++)
{
Torso_蟲D2.Torso接続(Torso_蟲D2 = (Torso_蟲D)D3.Copy());
}
Torso_蟲D2.(, , i, ConnectionInfo.Torso_蟲_Torso_接続, , , , );
}
else
{
_蟲D2.(, , i, ConnectionInfo._蟲_Torso_接続, , , , );
}
_蟲D2.AlignC();
Waist._接続.RemoveAll((EleD e) => e is D);
Waist._接続.RemoveAll((EleD e) => e is D);
}
else if ( is D)
{
D D2 = (D);
D D2 = null;
D D2 = null;
D2.(D2 = Mix<D>(, , i, ));
D2.(D2 = Mix<D>(, , i, ));
D2.AlignC();
if (D2 != null)
{
D2.B *= 1.4;
}
if (D2 != null)
{
D2.B *= 1.3;
D2._眼左2_基_表示 = false;
D2._眼左2_眼_表示 = false;
D2._眼左2_ハイライト_表示 = false;
D2._眼右2_基_表示 = false;
D2._眼右2_眼_表示 = false;
D2._眼右2_ハイライト_表示 = false;
}
D2. = Waist.;
D D2 = Mix<D>(, , i, );
if (D2 != null)
{
D D2 = null;
D2.(D2 = Mix<D>(, , i, ));
D2.AlignC();
if (D2 != null)
{
D2.B *= 1.35;
}
D2.(D2);
D2. = Waist.;
}
D D2 = Mix<D>(, , i, );
if (D2 != null)
{
D D2 = null;
D2.(new _獣D());
D2.(new _獣D());
D2.(new _獣D());
D2.(Uni.());
D2.(Uni.());
D2.(new _獣D());
D2.(D2 = Mix<D>(, , i, ));
Waist._接続.SetEleD(delegate(_人D e)
{
e. = false;
});
Waist._接続.SetEleD(delegate(_人D e)
{
e. = false;
});
D2._接続.SetEleD(delegate(D e)
{
e._表示 = false;
});
D2.AlignC();
if (D2 != null)
{
D2.B *= 1.4;
D2._腹板1_腹板_表示 = false;
D2._腹板2_腹板_表示 = false;
D2._腹板1_縦線_表示 = false;
D2._腹板2_縦線_表示 = false;
D2._表示 = false;
}
D2.(D2);
D2. = Waist.;
if ((D2._ハート_タトゥ右1_表示 || D2._ハート_タトゥ右2_表示 || D2._ハート_タトゥ左1_表示 || D2._ハート_タトゥ左2_表示) && (D2._タトゥ左_表示 || D2._タトゥ右_表示))
{
if (RNG.XS.NextBool())
{
D2._ハート_タトゥ右1_表示 = true;
D2._ハート_タトゥ右2_表示 = true;
D2._ハート_タトゥ左1_表示 = true;
D2._ハート_タトゥ左2_表示 = true;
D2._タトゥ左_表示 = false;
D2._タトゥ右_表示 = false;
}
else
{
D2._ハート_タトゥ右1_表示 = false;
D2._ハート_タトゥ右2_表示 = false;
D2._ハート_タトゥ左1_表示 = false;
D2._ハート_タトゥ左2_表示 = false;
D2._タトゥ左_表示 = true;
D2._タトゥ右_表示 = true;
}
}
}
D2.(, , i, ConnectionInfo._脇左_接続, , , , );
D2.(, , i, ConnectionInfo._翼上左_接続, , , , );
D2.(, , i, ConnectionInfo._翼下左_接続, , , , );
D2.(, , i, ConnectionInfo._翼左_接続, , , , );
D2.(, , i, ConnectionInfo._翼左_接続, , , , );
D2.(, , i, ConnectionInfo._背中_接続, , , , );
D2.(, , i, ConnectionInfo._腿左_接続, , , , );
D2.(, , i, ConnectionInfo._尾_接続, , , , );
Waist._接続.RemoveAll((EleD e) => e is D);
Waist._接続.RemoveAll((EleD e) => e is D);
}
else if ( is _蛸D)
{
_蛸D obj2 = (_蛸D);
obj2.(, , i, ConnectionInfo._蛸_軟体外左_接続, , , , );
obj2.(, , i, ConnectionInfo._蛸_軟体内左_接続, , , , );
obj2._接続.SetEleDs(delegate(_軟D e)
{
e. = false;
e. = true;
});
obj2._接続.SetEleDs(delegate(_軟D e)
{
e. = false;
e. = true;
});
obj2._接続.SetEleDs(delegate(_軟D e)
{
e. = true;
e. = false;
});
obj2._接続.SetEleDs(delegate(_軟D e)
{
e. = true;
e. = false;
});
Waist.(, , i, ConnectionInfo.Waist_腿左_接続, , , , );
Waist.(, , i, ConnectionInfo.Waist_尾_接続, , , , );
for (int num22 = Waist._接続.Count - 1; num22 > -1; num22--)
{
if (!(Waist._接続[num22] is _犬D))
{
Waist._接続.RemoveAt(num22);
}
}
for (int num23 = Waist._接続.Count - 1; num23 > -1; num23--)
{
if (!(Waist._接続[num23] is _犬D))
{
Waist._接続.RemoveAt(num23);
}
}
if (Waist._接続.IsEleD<_犬D>())
{
for (int num24 = Waist._接続.Count - 1; num24 > -1; num24--)
{
if (Waist._接続[num24] is D)
{
Waist._接続.RemoveAt(num24);
}
}
for (int num25 = Waist._接続.Count - 1; num25 > -1; num25--)
{
if (Waist._接続[num25] is D)
{
Waist._接続.RemoveAt(num25);
}
}
}
}
else if ( is _蜘D)
{
_蜘D _蜘D2 = (_蜘D);
_蜘D2.(, , i, ConnectionInfo._蜘_触肢左_接続, , , , );
_蜘D2.(, , i, ConnectionInfo._蜘_節足左1_接続, , , , );
_蜘D2.(, , i, ConnectionInfo._蜘_節足左2_接続, , , , );
_蜘D2.(, , i, ConnectionInfo._蜘_節足左3_接続, , , , );
_蜘D2.(, , i, ConnectionInfo._蜘_節足左4_接続, , , , );
_蜘D2.(, , i, ConnectionInfo._蜘_尾_接続, , , , );
_足蜘D eleD5 = _蜘D2.1_.GetEleD<_足蜘D>();
bool 1_ = eleD5?.1_ ?? false;
bool 2_ = eleD5?.2_ ?? false;
bool = eleD5?. ?? false;
foreach (EleD item12 in _蜘D2._接続)
{
if (item12 is _鋏D || item12 is D)
{
item12.Y = true;
}
else
{
item12.Y = false;
}
}
foreach (EleD item13 in _蜘D2._接続)
{
if (item13 is _鋏D || item13 is D)
{
item13.Y = true;
}
else
{
item13.Y = false;
}
}
foreach (EleD item14 in _蜘D2.1_)
{
if (item14 is _足蜘D)
{
eleD5 = (_足蜘D)item14;
eleD5.1_ = 1_;
eleD5.2_ = 2_;
eleD5. = ;
item14.Y = false;
}
else if (item14 is _足百D)
{
item14.Y = true;
}
else
{
item14.Y = false;
}
}
foreach (EleD item15 in _蜘D2.1_)
{
if (item15 is _足蜘D)
{
eleD5 = (_足蜘D)item15;
eleD5.1_ = 1_;
eleD5.2_ = 2_;
eleD5. = ;
item15.Y = false;
}
else if (item15 is _足百D)
{
item15.Y = true;
}
else
{
item15.Y = false;
}
}
foreach (EleD item16 in _蜘D2.2_)
{
if (item16 is _足蜘D)
{
eleD5 = (_足蜘D)item16;
eleD5.1_ = 1_;
eleD5.2_ = 2_;
eleD5. = ;
item16.Y = false;
}
else if (item16 is _足百D)
{
item16.Y = true;
}
else
{
item16.Y = false;
}
}
foreach (EleD item17 in _蜘D2.2_)
{
if (item17 is _足蜘D)
{
eleD5 = (_足蜘D)item17;
eleD5.1_ = 1_;
eleD5.2_ = 2_;
eleD5. = ;
item17.Y = false;
}
else if (item17 is _足百D)
{
item17.Y = true;
}
else
{
item17.Y = false;
}
}
bool Y = _蜘D2.3_.Count > 0 && _蜘D2.3_.First().Y;
foreach (EleD item18 in _蜘D2.3_)
{
if (item18 is _足蜘D)
{
eleD5 = (_足蜘D)item18;
eleD5.1_ = 1_;
eleD5.2_ = 2_;
eleD5. = ;
item18.Y = Y;
}
else if (item18 is _足百D)
{
item18.Y = true;
}
else
{
item18.Y = Y;
}
}
foreach (EleD item19 in _蜘D2.3_)
{
if (item19 is _足蜘D)
{
eleD5 = (_足蜘D)item19;
eleD5.1_ = 1_;
eleD5.2_ = 2_;
eleD5. = ;
item19.Y = Y;
}
else if (item19 is _足百D)
{
item19.Y = true;
}
else
{
item19.Y = Y;
}
}
foreach (EleD item20 in _蜘D2.4_)
{
if (item20 is _足蜘D)
{
eleD5 = (_足蜘D)item20;
eleD5.1_ = 1_;
eleD5.2_ = 2_;
eleD5. = ;
item20.Y = Y;
}
else if (item20 is _足百D)
{
item20.Y = true;
}
else
{
item20.Y = Y;
}
}
foreach (EleD item21 in _蜘D2.4_)
{
if (item21 is _足蜘D)
{
eleD5 = (_足蜘D)item21;
eleD5.1_ = 1_;
eleD5.2_ = 2_;
eleD5. = ;
item21.Y = Y;
}
else if (item21 is _足百D)
{
item21.Y = true;
}
else
{
item21.Y = Y;
}
}
Waist._接続.RemoveAll((EleD e) => e is D);
Waist._接続.RemoveAll((EleD e) => e is D);
}
else if ( is _蠍D)
{
_蠍D _蠍D2 = (_蠍D);
_蠍D2.(, , i, ConnectionInfo._蠍_触肢左_接続, , , , );
_蠍D2.(, , i, ConnectionInfo._蠍_節足左1_接続, , , , );
_蠍D2.(, , i, ConnectionInfo._蠍_節足左2_接続, , , , );
_蠍D2.(, , i, ConnectionInfo._蠍_節足左3_接続, , , , );
_蠍D2.(, , i, ConnectionInfo._蠍_節足左4_接続, , , , );
_蠍D2.(, , i, ConnectionInfo._蠍_櫛状板左_接続, , , , );
_蠍D2.(, , i, ConnectionInfo._蠍_尾_接続, , , , );
_足蠍D eleD6 = _蠍D2.1_.GetEleD<_足蠍D>();
bool 1_2 = eleD6?.1_ ?? false;
bool 2 = eleD6?. ?? false;
foreach (EleD item22 in _蠍D2._接続)
{
if (item22 is _鋏D || item22 is D)
{
item22.Y = true;
}
else
{
item22.Y = false;
}
}
foreach (EleD item23 in _蠍D2._接続)
{
if (item23 is _鋏D || item23 is D)
{
item23.Y = true;
}
else
{
item23.Y = false;
}
}
foreach (EleD item24 in _蠍D2.1_)
{
if (item24 is _足蠍D)
{
eleD6 = (_足蠍D)item24;
eleD6.1_ = 1_2;
eleD6. = 2;
}
else if (item24 is _足百D)
{
item24.Y = true;
}
}
foreach (EleD item25 in _蠍D2.1_)
{
if (item25 is _足蠍D)
{
eleD6 = (_足蠍D)item25;
eleD6.1_ = 1_2;
eleD6. = 2;
}
else if (item25 is _足百D)
{
item25.Y = true;
}
}
foreach (EleD item26 in _蠍D2.2_)
{
if (item26 is _足蠍D)
{
eleD6 = (_足蠍D)item26;
eleD6.1_ = 1_2;
eleD6. = 2;
}
else if (item26 is _足百D)
{
item26.Y = true;
}
}
foreach (EleD item27 in _蠍D2.2_)
{
if (item27 is _足蠍D)
{
eleD6 = (_足蠍D)item27;
eleD6.1_ = 1_2;
eleD6. = 2;
}
else if (item27 is _足百D)
{
item27.Y = true;
}
}
foreach (EleD item28 in _蠍D2.3_)
{
if (item28 is _足蠍D)
{
eleD6 = (_足蠍D)item28;
eleD6.1_ = 1_2;
eleD6. = 2;
}
else if (item28 is _足百D)
{
item28.Y = true;
}
}
foreach (EleD item29 in _蠍D2.3_)
{
if (item29 is _足蠍D)
{
eleD6 = (_足蠍D)item29;
eleD6.1_ = 1_2;
eleD6. = 2;
}
else if (item29 is _足百D)
{
item29.Y = true;
}
}
foreach (EleD item30 in _蠍D2.4_)
{
if (item30 is _足蠍D)
{
eleD6 = (_足蠍D)item30;
eleD6.1_ = 1_2;
eleD6. = 2;
}
else if (item30 is _足百D)
{
item30.Y = true;
}
}
foreach (EleD item31 in _蠍D2.4_)
{
if (item31 is _足蠍D)
{
eleD6 = (_足蠍D)item31;
eleD6.1_ = 1_2;
eleD6. = 2;
}
else if (item31 is _足百D)
{
item31.Y = true;
}
}
Waist._接続.RemoveAll((EleD e) => e is D);
Waist._接続.RemoveAll((EleD e) => e is D);
}
else if ( is _植D)
{
_植D e5 = (_植D);
e5.(, , i, ConnectionInfo._植_根外左_接続, , , , );
e5.(, , i, ConnectionInfo._植_根内左_接続, , , , );
e5.(, , i, ConnectionInfo._植_根中央_接続, , , , );
Waist.(, , i, ConnectionInfo.Waist_腿左_接続, , , , );
for (int num26 = Waist._接続.Count - 1; num26 > -1; num26--)
{
if (!(Waist._接続[num26] is _犬D))
{
Waist._接続.RemoveAt(num26);
}
}
for (int num27 = Waist._接続.Count - 1; num27 > -1; num27--)
{
if (!(Waist._接続[num27] is _犬D))
{
Waist._接続.RemoveAt(num27);
}
}
if (Waist._接続.IsEleD<_犬D>())
{
for (int num28 = Waist._接続.Count - 1; num28 > -1; num28--)
{
if (Waist._接続[num28] is D)
{
Waist._接続.RemoveAt(num28);
}
}
for (int num29 = Waist._接続.Count - 1; num29 > -1; num29--)
{
if (Waist._接続[num29] is D)
{
Waist._接続.RemoveAt(num29);
}
}
}
_人D _人D2 = Mix<_人D>(, , : false, i, );
if (_人D2 != null)
{
Waist.(_人D2);
Waist.(_人D2.Get逆());
}
Waist.(, , i, ConnectionInfo.Waist_尾_接続, , , , );
}
else if ( is _粘D)
{
_ = (_粘D);
Waist.(, , i, ConnectionInfo.Waist_腿左_接続, , , , );
for (int num30 = Waist._接続.Count - 1; num30 > -1; num30--)
{
if (!(Waist._接続[num30] is _犬D))
{
Waist._接続.RemoveAt(num30);
}
}
for (int num31 = Waist._接続.Count - 1; num31 > -1; num31--)
{
if (!(Waist._接続[num31] is _犬D))
{
Waist._接続.RemoveAt(num31);
}
}
if (Waist._接続.IsEleD<_犬D>())
{
for (int num32 = Waist._接続.Count - 1; num32 > -1; num32--)
{
if (Waist._接続[num32] is D)
{
Waist._接続.RemoveAt(num32);
}
}
for (int num33 = Waist._接続.Count - 1; num33 > -1; num33--)
{
if (Waist._接続[num33] is D)
{
Waist._接続.RemoveAt(num33);
}
}
}
_人D _人D3 = Mix<_人D>(, , : false, i, );
if (_人D3 != null)
{
Waist.(_人D3);
Waist.(_人D3.Get逆());
}
Waist.(, , i, ConnectionInfo.Waist_尾_接続, , , , );
}
};
Action action2 = delegate
{
Waist.(, , i, ConnectionInfo.Waist_腿左_接続, , , , );
Waist.(, , i, ConnectionInfo.Waist_尾_接続, , , , );
};
if ( != null)
{
if ( || RNG.XS.NextBool() || is _植D || is _粘D)
{
action();
}
else
{
action2();
D eleD4 = Waist._接続.GetEleD<D>();
if (eleD4 == null || eleD4.EnumEleD().Count() == 1 || Waist._接続.IsEleD<D>())
{
Waist._接続.Clear();
Waist._接続.Clear();
Waist._接続.Clear();
action();
}
}
}
else
{
action2();
}
bool flag3 = false;
D D2 = null;
foreach (EleD item32 in Waist.EnumEleD())
{
if (D2 == null && item32 is D)
{
D2 = (D)item32;
}
else if (item32 is _魚D)
{
_魚D _魚D2 = (_魚D)item32;
double num = _魚D2.B;
for (int j = 0; j < 7; j++)
{
num *= 0.9;
}
foreach (EleD item33 in _魚D2.1_)
{
item33.B = num;
}
foreach (EleD item34 in _魚D2.1_)
{
item34.B = num;
}
num *= 0.9;
foreach (EleD item35 in _魚D2.2_)
{
item35.B = num;
}
foreach (EleD item36 in _魚D2.2_)
{
item36.B = num;
}
num *= 0.9;
foreach (EleD item37 in _魚D2.3_)
{
item37.B = num;
}
foreach (EleD item38 in _魚D2.3_)
{
item38.B = num;
}
num *= 0.9;
foreach (EleD item39 in _魚D2.4_)
{
item39.B = num;
}
foreach (EleD item40 in _魚D2.4_)
{
item40.B = num;
}
num *= 0.9;
foreach (EleD item41 in _魚D2.5_)
{
item41.B = num;
}
foreach (EleD item42 in _魚D2.5_)
{
item42.B = num;
}
num *= 0.9;
foreach (EleD item43 in _魚D2.6_)
{
item43.B = num;
}
foreach (EleD item44 in _魚D2.6_)
{
item44.B = num;
}
num *= 0.9;
foreach (EleD item45 in _魚D2.7_)
{
item45.B = num;
}
foreach (EleD item46 in _魚D2.7_)
{
item46.B = num;
}
num *= 0.9;
foreach (EleD item47 in _魚D2.8_)
{
item47.B = num;
}
foreach (EleD item48 in _魚D2.8_)
{
item48.B = num;
}
num *= 0.9;
foreach (EleD item49 in _魚D2.9_)
{
item49.B = num;
}
foreach (EleD item50 in _魚D2.9_)
{
item50.B = num;
}
num *= 0.9;
foreach (EleD item51 in _魚D2.10_)
{
item51.B = num;
}
foreach (EleD item52 in _魚D2.10_)
{
item52.B = num;
}
num *= 0.9;
foreach (EleD item53 in _魚D2.11_)
{
item53.B = num;
}
foreach (EleD item54 in _魚D2.11_)
{
item54.B = num;
}
num *= 0.9;
foreach (EleD item55 in _魚D2.12_)
{
item55.B = num;
}
foreach (EleD item56 in _魚D2.12_)
{
item56.B = num;
}
num *= 0.9;
foreach (EleD item57 in _魚D2.13_)
{
item57.B = num;
}
foreach (EleD item58 in _魚D2.13_)
{
item58.B = num;
}
num *= 0.9;
foreach (EleD item59 in _魚D2.14_)
{
item59.B = num;
}
foreach (EleD item60 in _魚D2.14_)
{
item60.B = num;
}
num *= 0.9;
foreach (EleD item61 in _魚D2.15_)
{
item61.B = num;
}
foreach (EleD item62 in _魚D2.15_)
{
item62.B = num;
}
num *= 0.9;
foreach (EleD item63 in _魚D2.16_)
{
item63.B = num;
}
foreach (EleD item64 in _魚D2.16_)
{
item64.B = num;
}
num *= 0.9;
foreach (EleD item65 in _魚D2.17_)
{
item65.B = num;
}
foreach (EleD item66 in _魚D2.17_)
{
item66.B = num;
}
num *= 0.9;
foreach (EleD item67 in _魚D2.18_)
{
item67.B = num;
}
foreach (EleD item68 in _魚D2.18_)
{
item68.B = num;
}
num *= 0.9;
foreach (EleD item69 in _魚D2.19_)
{
item69.B = num;
}
foreach (EleD item70 in _魚D2.19_)
{
item70.B = num;
}
num *= 0.9;
foreach (EleD item71 in _魚D2.20_)
{
item71.B = num;
}
foreach (EleD item72 in _魚D2.20_)
{
item72.B = num;
}
num *= 0.9;
foreach (EleD item73 in _魚D2.21_)
{
item73.B = num;
}
foreach (EleD item74 in _魚D2.21_)
{
item74.B = num;
}
num *= 0.9;
foreach (EleD item75 in _魚D2.22_)
{
item75.B = num;
}
foreach (EleD item76 in _魚D2.22_)
{
item76.B = num;
}
num *= 0.9;
foreach (EleD item77 in _魚D2.23_)
{
item77.B = num;
}
foreach (EleD item78 in _魚D2.23_)
{
item78.B = num;
}
num *= 0.9;
foreach (EleD item79 in _魚D2.24_)
{
item79.B = num;
}
foreach (EleD item80 in _魚D2.24_)
{
item80.B = num;
}
num *= 0.9;
foreach (EleD item81 in _魚D2.25_)
{
item81.B = num;
}
foreach (EleD item82 in _魚D2.25_)
{
item82.B = num;
}
num *= 0.9;
foreach (EleD item83 in _魚D2.27_)
{
item83.B = num;
}
foreach (EleD item84 in _魚D2.27_)
{
item84.B = num;
}
num *= 0.9;
foreach (EleD item85 in _魚D2.28_)
{
item85.B = num;
}
foreach (EleD item86 in _魚D2.28_)
{
item86.B = num;
}
num *= 0.9;
foreach (EleD item87 in _魚D2.29_)
{
item87.B = num;
}
foreach (EleD item88 in _魚D2.29_)
{
item88.B = num;
}
num *= 0.9;
foreach (EleD item89 in _魚D2.30_)
{
item89.B = num;
}
foreach (EleD item90 in _魚D2.30_)
{
item90.B = num;
}
num *= 0.9;
foreach (EleD item91 in _魚D2.31_)
{
item91.B = num;
}
foreach (EleD item92 in _魚D2.31_)
{
item92.B = num;
}
num *= 0.9;
foreach (EleD item93 in _魚D2.32_)
{
item93.B = num;
}
foreach (EleD item94 in _魚D2.32_)
{
item94.B = num;
}
num *= 0.9;
foreach (EleD item95 in _魚D2.33_)
{
item95.B = num;
}
foreach (EleD item96 in _魚D2.33_)
{
item96.B = num;
}
num *= 0.9;
foreach (EleD item97 in _魚D2.34_)
{
item97.B = num;
}
foreach (EleD item98 in _魚D2.34_)
{
item98.B = num;
}
if (item32. != ConnectionInfo.Waist_腿左_接続 && item32. != ConnectionInfo.Waist_腿右_接続)
{
_魚D2.0_ = true;
_魚D2.0__鱗1_表示 = true;
_魚D2.0__鱗2_表示 = true;
}
else
{
_魚D2.0_ = false;
_魚D2.0__鱗1_表示 = false;
_魚D2.0__鱗2_表示 = false;
}
}
else if (item32 is _鯨D)
{
_鯨D _鯨D2 = (_鯨D)item32;
double num2 = _鯨D2.B;
for (int k = 0; k < 7; k++)
{
num2 *= 0.9;
}
foreach (EleD item99 in _鯨D2.1_)
{
item99.B = num2;
}
foreach (EleD item100 in _鯨D2.1_)
{
item100.B = num2;
}
num2 *= 0.9;
foreach (EleD item101 in _鯨D2.2_)
{
item101.B = num2;
}
foreach (EleD item102 in _鯨D2.2_)
{
item102.B = num2;
}
num2 *= 0.9;
foreach (EleD item103 in _鯨D2.3_)
{
item103.B = num2;
}
foreach (EleD item104 in _鯨D2.3_)
{
item104.B = num2;
}
num2 *= 0.9;
foreach (EleD item105 in _鯨D2.4_)
{
item105.B = num2;
}
foreach (EleD item106 in _鯨D2.4_)
{
item106.B = num2;
}
num2 *= 0.9;
foreach (EleD item107 in _鯨D2.5_)
{
item107.B = num2;
}
foreach (EleD item108 in _鯨D2.5_)
{
item108.B = num2;
}
num2 *= 0.9;
foreach (EleD item109 in _鯨D2.6_)
{
item109.B = num2;
}
foreach (EleD item110 in _鯨D2.6_)
{
item110.B = num2;
}
num2 *= 0.9;
foreach (EleD item111 in _鯨D2.7_)
{
item111.B = num2;
}
foreach (EleD item112 in _鯨D2.7_)
{
item112.B = num2;
}
num2 *= 0.9;
foreach (EleD item113 in _鯨D2.8_)
{
item113.B = num2;
}
foreach (EleD item114 in _鯨D2.8_)
{
item114.B = num2;
}
num2 *= 0.9;
foreach (EleD item115 in _鯨D2.9_)
{
item115.B = num2;
}
foreach (EleD item116 in _鯨D2.9_)
{
item116.B = num2;
}
num2 *= 0.9;
foreach (EleD item117 in _鯨D2.10_)
{
item117.B = num2;
}
foreach (EleD item118 in _鯨D2.10_)
{
item118.B = num2;
}
num2 *= 0.9;
foreach (EleD item119 in _鯨D2.11_)
{
item119.B = num2;
}
foreach (EleD item120 in _鯨D2.11_)
{
item120.B = num2;
}
num2 *= 0.9;
foreach (EleD item121 in _鯨D2.12_)
{
item121.B = num2;
}
foreach (EleD item122 in _鯨D2.12_)
{
item122.B = num2;
}
num2 *= 0.9;
foreach (EleD item123 in _鯨D2.13_)
{
item123.B = num2;
}
foreach (EleD item124 in _鯨D2.13_)
{
item124.B = num2;
}
num2 *= 0.9;
foreach (EleD item125 in _鯨D2.14_)
{
item125.B = num2;
}
foreach (EleD item126 in _鯨D2.14_)
{
item126.B = num2;
}
num2 *= 0.9;
foreach (EleD item127 in _鯨D2.15_)
{
item127.B = num2;
}
foreach (EleD item128 in _鯨D2.15_)
{
item128.B = num2;
}
num2 *= 0.9;
foreach (EleD item129 in _鯨D2.16_)
{
item129.B = num2;
}
foreach (EleD item130 in _鯨D2.16_)
{
item130.B = num2;
}
num2 *= 0.9;
foreach (EleD item131 in _鯨D2.17_)
{
item131.B = num2;
}
foreach (EleD item132 in _鯨D2.17_)
{
item132.B = num2;
}
num2 *= 0.9;
foreach (EleD item133 in _鯨D2.18_)
{
item133.B = num2;
}
foreach (EleD item134 in _鯨D2.18_)
{
item134.B = num2;
}
num2 *= 0.9;
foreach (EleD item135 in _鯨D2.19_)
{
item135.B = num2;
}
foreach (EleD item136 in _鯨D2.19_)
{
item136.B = num2;
}
num2 *= 0.9;
foreach (EleD item137 in _鯨D2.20_)
{
item137.B = num2;
}
foreach (EleD item138 in _鯨D2.20_)
{
item138.B = num2;
}
num2 *= 0.9;
foreach (EleD item139 in _鯨D2.21_)
{
item139.B = num2;
}
foreach (EleD item140 in _鯨D2.21_)
{
item140.B = num2;
}
num2 *= 0.9;
foreach (EleD item141 in _鯨D2.22_)
{
item141.B = num2;
}
foreach (EleD item142 in _鯨D2.22_)
{
item142.B = num2;
}
num2 *= 0.9;
foreach (EleD item143 in _鯨D2.23_)
{
item143.B = num2;
}
foreach (EleD item144 in _鯨D2.23_)
{
item144.B = num2;
}
num2 *= 0.9;
foreach (EleD item145 in _鯨D2.24_)
{
item145.B = num2;
}
foreach (EleD item146 in _鯨D2.24_)
{
item146.B = num2;
}
num2 *= 0.9;
foreach (EleD item147 in _鯨D2.25_)
{
item147.B = num2;
}
foreach (EleD item148 in _鯨D2.25_)
{
item148.B = num2;
}
num2 *= 0.9;
foreach (EleD item149 in _鯨D2.27_)
{
item149.B = num2;
}
foreach (EleD item150 in _鯨D2.27_)
{
item150.B = num2;
}
num2 *= 0.9;
foreach (EleD item151 in _鯨D2.28_)
{
item151.B = num2;
}
foreach (EleD item152 in _鯨D2.28_)
{
item152.B = num2;
}
num2 *= 0.9;
foreach (EleD item153 in _鯨D2.29_)
{
item153.B = num2;
}
foreach (EleD item154 in _鯨D2.29_)
{
item154.B = num2;
}
num2 *= 0.9;
foreach (EleD item155 in _鯨D2.30_)
{
item155.B = num2;
}
foreach (EleD item156 in _鯨D2.30_)
{
item156.B = num2;
}
num2 *= 0.9;
foreach (EleD item157 in _鯨D2.31_)
{
item157.B = num2;
}
foreach (EleD item158 in _鯨D2.31_)
{
item158.B = num2;
}
num2 *= 0.9;
foreach (EleD item159 in _鯨D2.32_)
{
item159.B = num2;
}
foreach (EleD item160 in _鯨D2.32_)
{
item160.B = num2;
}
num2 *= 0.9;
foreach (EleD item161 in _鯨D2.33_)
{
item161.B = num2;
}
foreach (EleD item162 in _鯨D2.33_)
{
item162.B = num2;
}
num2 *= 0.9;
foreach (EleD item163 in _鯨D2.34_)
{
item163.B = num2;
}
foreach (EleD item164 in _鯨D2.34_)
{
item164.B = num2;
}
}
else if (item32 is _蔦D)
{
_蔦D _蔦D2 = (_蔦D)item32;
double B = _蔦D2.B;
foreach (EleD item165 in _蔦D2.3_)
{
item165.B = B;
}
B *= SpeciesDefaults.;
foreach (EleD item166 in _蔦D2.5_)
{
item166.B = B;
}
B *= SpeciesDefaults.;
foreach (EleD item167 in _蔦D2.7_)
{
item167.B = B;
}
B *= SpeciesDefaults.;
foreach (EleD item168 in _蔦D2.9_)
{
item168.B = B;
}
B *= SpeciesDefaults.;
foreach (EleD item169 in _蔦D2.11_)
{
item169.B = B;
}
B *= SpeciesDefaults.;
foreach (EleD item170 in _蔦D2.13_)
{
item170.B = B;
}
B *= SpeciesDefaults.;
foreach (EleD item171 in _蔦D2.15_)
{
item171.B = B;
}
B *= SpeciesDefaults.;
foreach (EleD item172 in _蔦D2.17_)
{
item172.B = B;
}
B *= SpeciesDefaults.;
foreach (EleD item173 in _蔦D2.19_)
{
item173.B = B;
}
}
else if (item32 is _軟D)
{
((_軟D)item32).1__表示 = false;
}
else if (item32 is _犬D)
{
_犬D _犬D2 = (_犬D)item32;
_犬D2._鰭_鰭膜3_表示 = (_犬D2._鰭_鰭条2_表示 = (_犬D2._鰭_鰭膜2_表示 = (_犬D2._鰭_鰭条1_表示 = (_犬D2._鰭_鰭膜1_表示 = (_犬D2._鰭_鰭膜3_表示 = (_犬D2._鰭_鰭条2_表示 = (_犬D2._鰭_鰭膜2_表示 = (_犬D2._鰭_鰭条1_表示 = (_犬D2._鰭_鰭膜1_表示 = _犬D2._鰭_鰭膜1_表示 || _犬D2._鰭_鰭条1_表示 || _犬D2._鰭_鰭膜2_表示 || _犬D2._鰭_鰭条2_表示 || _犬D2._鰭_鰭膜3_表示)))))))));
}
else if (item32 is _光D || item32 is _天D)
{
item32.YB = 1.0;
}
else if (item32 is UpperArm_蝙D && (item32. == ConnectionInfo._頭頂左_接続 || item32. == ConnectionInfo._頭頂右_接続))
{
((UpperArm_蝙D)item32)._鱗1_表示 = false;
}
else if (item32 is UpperArmD && item32.Par is ShoulderD)
{
item32.AlignR();
}
if (!flag3)
{
flag3 |= item32.;
}
}
if (HeadD2._接続.Count > 1)
{
HeadD2._接続.Remove(HeadD2._接続[RNG.XS.Next(HeadD2._接続.Count)]);
}
bool flag4 = false;
flag4 |= D2._腹板_表示;
flag4 |= D2._腹板_表示;
flag4 |= ._腹板1_腹板_表示 || ._腹板2_腹板_表示;
bool flag5 = false;
flag5 |= D2._縦線_表示;
flag5 |= D2._縦線_表示;
flag5 |= ._腹板1_縦線_表示 || ._腹板2_縦線_表示;
flag5 = flag5 && flag4;
if (flag5)
{
flag5 = RNG.XS.NextBool();
}
D2._腹板_表示 = flag4;
D2._縦線_表示 = flag5;
D2._腹板_表示 = flag4;
D2._縦線_表示 = flag5;
._腹板1_腹板_表示 = flag4;
._腹板2_腹板_表示 = flag4;
._腹板1_縦線_表示 = flag5;
._腹板2_縦線_表示 = flag5;
if (RNG.XS.NextBool())
{
bool flag6 = false;
bool flag7 = true;
bool flag8 = false;
if (D2 != null)
{
flag6 |= D2.;
flag7 &= D2._瞳孔_表示;
flag8 |= D2.;
}
if (D3 != null)
{
flag6 |= D3.;
flag7 &= D3._瞳孔_表示;
flag8 |= D3.;
}
if (D2 != null)
{
flag6 |= D2.;
flag7 &= D2._瞳孔_表示;
flag8 |= D2.;
}
if (D3 != null)
{
flag6 |= D3.;
flag7 &= D3._瞳孔_表示;
flag8 |= D3.;
}
if (D2 != null)
{
flag6 |= D2.;
flag7 &= D2._瞳孔_表示;
flag8 |= D2.;
}
if (D2 != null)
{
flag6 |= D2.;
flag7 &= D2._瞳孔_表示;
flag8 |= D2.;
}
bool flag9 = RNG.XS.NextBool();
bool flag10 = RNG.XS.NextBool();
bool flag11 = RNG.XS.NextBool();
if (D2 != null)
{
D2. = (flag9 ? flag6 : D2.);
D2._瞳孔_表示 = (flag10 ? flag7 : D2._瞳孔_表示);
D2. = (flag11 ? flag8 : D2.);
}
if (D3 != null)
{
D3. = (flag9 ? flag6 : D3.);
D3._瞳孔_表示 = (flag10 ? flag7 : D3._瞳孔_表示);
D3. = (flag11 ? flag8 : D3.);
}
if (D2 != null)
{
D2. = (flag9 ? flag6 : D2.);
D2._瞳孔_表示 = (flag10 ? flag7 : D2._瞳孔_表示);
D2. = (flag11 ? flag8 : D2.);
}
if (D3 != null)
{
D3. = (flag9 ? flag6 : D3.);
D3._瞳孔_表示 = (flag10 ? flag7 : D3._瞳孔_表示);
D3. = (flag11 ? flag8 : D3.);
}
if (D2 != null)
{
D2. = (flag9 ? flag6 : D2.);
D2._瞳孔_表示 = (flag10 ? flag7 : D2._瞳孔_表示);
D2. = (flag11 ? flag8 : D2.);
}
if (D2 != null)
{
D2. = (flag9 ? flag6 : D2.);
D2._瞳孔_表示 = (flag10 ? flag7 : D2._瞳孔_表示);
D2. = (flag11 ? flag8 : D2.);
}
}
if (D2 != null)
{
D2._紋左_紋1_表示 = false;
D2._紋左_紋2_表示 = false;
D2._紋左_紋3_表示 = false;
D2._紋左_紋4_表示 = false;
D2._紋右_紋1_表示 = false;
D2._紋右_紋2_表示 = false;
D2._紋右_紋3_表示 = false;
D2._紋右_紋4_表示 = false;
}
bool flag12 = D2?._接続.IsEleD<D>() ?? false;
bool flag13 = HeadD2._接続.IsEleD<D>();
bool flag14 = D2._接続.IsEleD<D>();
if (!flag12 && flag13 && flag14)
{
if (RNG.XS.NextBool())
{
HeadD2._接続.RemoveAll((EleD e) => e is D);
HeadD2._接続.RemoveAll((EleD e) => e is D);
}
else
{
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
}
}
else if (flag12 && !flag13 && flag14)
{
if (RNG.XS.NextBool())
{
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
}
else
{
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
}
}
else if (flag12 && flag13 && !flag14)
{
if (RNG.XS.NextBool())
{
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
}
else
{
HeadD2._接続.RemoveAll((EleD e) => e is D);
HeadD2._接続.RemoveAll((EleD e) => e is D);
}
}
else if (flag12 && flag13 && flag14)
{
switch (RNG.XS.Next(2))
{
case 0:
HeadD2._接続.RemoveAll((EleD e) => e is D);
HeadD2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
break;
case 1:
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
break;
case 2:
D2._接続.RemoveAll((EleD e) => e is D);
D2._接続.RemoveAll((EleD e) => e is D);
HeadD2._接続.RemoveAll((EleD e) => e is D);
HeadD2._接続.RemoveAll((EleD e) => e is D);
break;
}
}
if (D2 != null && flag13)
{
foreach (D eleD8 in HeadD2._接続.GetEleDs<D>())
{
D2.(eleD8);
}
foreach (D eleD9 in HeadD2._接続.GetEleDs<D>())
{
D2.(eleD9);
}
HeadD2._接続.RemoveAll((EleD e) => e is D);
HeadD2._接続.RemoveAll((EleD e) => e is D);
}
if (._表示 && ._獣毛_表示)
{
if (RNG.XS.NextBool())
{
._表示 = false;
}
else
{
._獣毛_表示 = false;
}
}
if (D2 != null)
{
if (RNG.XS.NextBool())
{
D2._睫毛1_表示 = D2._睫毛1_表示;
D2._睫毛2_表示 = D2._睫毛2_表示;
}
else
{
D2._睫毛1_表示 = D2._睫毛1_表示;
D2._睫毛2_表示 = D2._睫毛2_表示;
}
if (RNG.XS.NextBool())
{
D2._睫毛1_長さ = D2._睫毛1_長さ;
D2._睫毛2_長さ = D2._睫毛2_長さ;
}
else
{
D2._睫毛1_長さ = D2._睫毛1_長さ;
D2._睫毛2_長さ = D2._睫毛2_長さ;
}
}
if (D2 != null)
{
if (RNG.XS.NextBool())
{
D2._表示 = D2._表示;
D2._表示 = D2._表示;
D2._表示 = D2._表示;
D2._表示 = D2._表示;
D2._表示 = D2._表示;
}
else
{
D2._表示 = D2._表示;
D2._表示 = D2._表示;
D2._表示 = D2._表示;
D2._表示 = D2._表示;
D2._表示 = D2._表示;
}
if (RNG.XS.NextBool())
{
D2._長さ = D2._長さ;
D2._長さ = D2._長さ;
D2._長さ = D2._長さ;
D2._長さ = D2._長さ;
D2._長さ = D2._長さ;
}
else
{
D2._長さ = D2._長さ;
D2._長さ = D2._長さ;
D2._長さ = D2._長さ;
D2._長さ = D2._長さ;
D2._長さ = D2._長さ;
}
}
if ((._ハート_タトゥ右1_表示 || ._ハート_タトゥ右2_表示 || ._ハート_タトゥ左1_表示 || ._ハート_タトゥ左2_表示) && (._タトゥ左_表示 || ._タトゥ右_表示))
{
if (RNG.XS.NextBool())
{
._ハート_タトゥ右1_表示 = true;
._ハート_タトゥ右2_表示 = true;
._ハート_タトゥ左1_表示 = true;
._ハート_タトゥ左2_表示 = true;
._タトゥ左_表示 = false;
._タトゥ右_表示 = false;
}
else
{
._ハート_タトゥ右1_表示 = false;
._ハート_タトゥ右2_表示 = false;
._ハート_タトゥ左1_表示 = false;
._ハート_タトゥ左2_表示 = false;
._タトゥ左_表示 = true;
._タトゥ右_表示 = true;
}
}
if (flag3)
{
Waist.EnumEleD().SetValuesD("筋肉", true);
}
return Waist;
}
public static EleD GetEleD(this IEnumerable<EleD> src, Type t)
{
return src?.FirstOrDefault((EleD e) => e.GetType().IsAssignableFrom(t));
}
public static EleD GetEleD(this IEnumerable<EleD> src, bool , Type t)
{
return src?.FirstOrDefault((EleD e) => e.GetType().IsAssignableFrom(t) && e. == );
}
public static EleD GetEleD(this IEnumerable<EleD> src, Func<EleD, bool> con, Type t)
{
return src?.FirstOrDefault((EleD e) => e.GetType().IsAssignableFrom(t) && con(e));
}
private static void Dou<T>(this T e)
{
FieldInfo[] fields = e.GetType().GetFields();
foreach (FieldInfo fieldInfo in fields)
{
if (fieldInfo.FieldType.ToString() == Sta.dt && .Contains(fieldInfo.Name))
{
fieldInfo.SetValue(e, ((double)fieldInfo.GetValue(e) + (double)RNG.XS.NextSign() * RNG.XS.NextDouble(0.15)).Clamp(0.0, 1.0));
}
}
}
private static void Dou<T>(this T e0, T e1)
{
FieldInfo[] fields;
switch (RNG.XS.Next(3))
{
case 0:
{
Type type = e1.GetType();
fields = e0.GetType().GetFields();
foreach (FieldInfo fieldInfo in fields)
{
if (fieldInfo.FieldType.ToString() == Sta.dt && .Contains(fieldInfo.Name))
{
FieldInfo field = type.GetField(fieldInfo.Name);
if (field != null && field.FieldType.ToString() == Sta.dt)
{
fieldInfo.SetValue(e0, RNG.XS.NextBool() ? fieldInfo.GetValue(e0) : field.GetValue(e1));
}
}
}
return;
}
case 1:
{
Type type2 = e1.GetType();
fields = e0.GetType().GetFields();
foreach (FieldInfo fieldInfo2 in fields)
{
if (fieldInfo2.FieldType.ToString() == Sta.dt && .Contains(fieldInfo2.Name))
{
FieldInfo field2 = type2.GetField(fieldInfo2.Name);
if (field2 != null && field2.FieldType.ToString() == Sta.dt)
{
fieldInfo2.SetValue(e0, ((double)fieldInfo2.GetValue(e0) + (double)field2.GetValue(e1)) * 0.5);
}
}
}
return;
}
}
fields = e0.GetType().GetFields();
foreach (FieldInfo fieldInfo3 in fields)
{
if (fieldInfo3.FieldType.ToString() == Sta.dt && .Contains(fieldInfo3.Name))
{
fieldInfo3.SetValue(e0, ((double)fieldInfo3.GetValue(e0) + (double)RNG.XS.NextSign() * RNG.XS.NextDouble(0.15)).Clamp(0.0, 1.0));
}
}
}
private static T Sub<T>(T e0, T e1) where T : EleD
{
object obj = e0.GetType().GetConstructor(bi, Type.DefaultBinder, t0, null).Invoke(null);
EleD eleD = e0.Copy_以下無();
Type type = e1.GetType();
FieldInfo[] fields = e0.GetType().GetFields();
foreach (FieldInfo fieldInfo in fields)
{
if (fieldInfo.Name.EndsWith("_表示"))
{
FieldInfo field = type.GetField(fieldInfo.Name);
if (field != null && field.FieldType.ToString() == Sta.bt)
{
bool num = (bool)fieldInfo.GetValue(e0);
bool flag = num;
fieldInfo.SetValue(eleD, (num && (bool)field.GetValue(e1)) ? fieldInfo.GetValue(obj) : ((object)flag));
}
}
}
return (T)eleD;
}
private static T Syn<T>(T e0, T e1) where T : EleD
{
e0.GetType().GetConstructor(bi, Type.DefaultBinder, t0, null).Invoke(null);
EleD eleD = e0.Copy_以下無();
Type type = e1.GetType();
FieldInfo[] fields = e0.GetType().GetFields();
foreach (FieldInfo fieldInfo in fields)
{
if (fieldInfo.Name.EndsWith("_表示"))
{
FieldInfo field = type.GetField(fieldInfo.Name);
if (field != null && field.FieldType.ToString() == Sta.bt)
{
fieldInfo.SetValue(eleD, (bool)fieldInfo.GetValue(e0) || (bool)field.GetValue(e1));
}
}
}
return (T)eleD;
}
private static T Mix<T>(T , T , int i, bool ) where T : EleD
{
T val = null;
if ( == null && != null)
{
val = (T).Copy_以下無();
val.Dou();
}
else if ( != null && == null)
{
val = (T).Copy_以下無();
val.Dou();
}
else if ( != null && != null)
{
if ()
{
switch (i)
{
case 0:
val = (T).Copy_以下無();
val.Dou();
break;
case 1:
val = (T).Copy_以下無();
val.Dou();
break;
default:
{
bool flag = RNG.XS.NextBool();
val = (T)(flag ? : ).Copy_以下無();
val.Dou(flag ? : );
break;
}
}
}
else
{
switch (i)
{
case 0:
val = (T).Copy_以下無();
val.Dou();
break;
case 1:
val = (T).Copy_以下無();
val.Dou();
break;
case 2:
val = Sub(, );
val.Dou();
break;
case 3:
val = Sub(, );
val.Dou();
break;
case 4:
val = Syn(, );
val.Dou();
break;
case 5:
val = Syn(, );
val.Dou();
break;
default:
{
bool flag2 = RNG.XS.NextBool();
val = (T)(flag2 ? : ).Copy_以下無();
val.Dou(flag2 ? : );
break;
}
}
}
}
return val;
}
private static T Mix<T>(WaistD , WaistD , int i, bool ) where T : EleD
{
T eleD = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD<T>();
T eleD2 = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD<T>();
return Mix(eleD, eleD2, i, );
}
private static T Mix<T>(WaistD , WaistD , bool , int i, bool ) where T : EleD
{
T eleD = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD<T>();
T eleD2 = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD<T>();
return Mix(eleD, eleD2, i, );
}
private static T Mix<T>(WaistD , WaistD , Func<T, bool> con, int i, bool ) where T : EleD
{
T eleD = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD(con);
T eleD2 = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD(con);
return Mix(eleD, eleD2, i, );
}
private static EleD Mix(WaistD , WaistD , int i, Type t, bool )
{
EleD eleD = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD(t);
EleD eleD2 = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD(t);
return Mix(eleD, eleD2, i, );
}
private static EleD Mix(WaistD , WaistD , bool , int i, Type t, bool )
{
EleD eleD = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD(, t);
EleD eleD2 = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD(, t);
return Mix(eleD, eleD2, i, );
}
private static EleD Mix(WaistD , WaistD , Func<EleD, bool> con, int i, Type t, bool )
{
EleD eleD = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD(con, t);
EleD eleD2 = (from e in .EnumEleD()
orderby RNG.XS.Next()
select e).GetEleD(con, t);
return Mix(eleD, eleD2, i, );
}
public static void AlignR(this EleD e)
{
if (e == null)
{
return;
}
FieldInfo[] fields = Sta.EleDt.GetFields();
foreach (FieldInfo fieldInfo in fields)
{
if (fieldInfo.FieldType.ToString() == Sta.dt)
{
fieldInfo.SetValue(e, fieldInfo.GetValue(e.Par));
}
}
}
public static void AlignC(this EleD e)
{
if (e == null)
{
return;
}
foreach (EleD item in e.EnumEleD())
{
FieldInfo[] fields = Sta.EleDt.GetFields();
foreach (FieldInfo fieldInfo in fields)
{
if (fieldInfo.FieldType.ToString() == Sta.dt)
{
fieldInfo.SetValue(item, fieldInfo.GetValue(e));
}
}
}
}
private static Dictionary<ConnectionInfo, List<Type>> Get接続構成(WaistD , WaistD )
{
Dictionary<ConnectionInfo, List<Type>> dictionary = new Dictionary<ConnectionInfo, List<Type>>();
foreach (EleD item in .EnumEleD().Concat(.EnumEleD()))
{
Type type = item.GetType();
if (!(item is D) && .ContainsKey(item.) && [item.].Contains(type.ToString()))
{
if (dictionary.ContainsKey(item.))
{
dictionary[item.].Add(type);
continue;
}
dictionary[item.] = new List<Type> { type };
}
}
return dictionary;
}
private static Type[] Get要素構成(WaistD , WaistD )
{
return (from e in .EnumEleD().Concat(.EnumEleD())
where .ContainsKey(e.) && [e.].Contains(e.GetType().ToString())
select e.GetType()).ToArray();
}
public static void (this EleD e, WaistD , WaistD , int i, ConnectionInfo , Type[] , Dictionary<ConnectionInfo, List<Type>> , double , bool )
{
string text = .ToString();
if (text.Contains("左"))
{
ConnectionInfo 2 = ;
ConnectionInfo 3 = text.Replace("左", "右").To接続情報();
{
foreach (EleD item in Enum接続肢(, , : false, i, , , , , ))
{
if (item != null)
{
e.(2, item);
e.(3, item.Get逆());
}
}
return;
}
}
if (text.Contains("右"))
{
return;
}
foreach (EleD item2 in Enum接続肢(, , : false, i, , , , , ).Reverse())
{
if (item2 != null)
{
e.(, item2);
}
}
}
public static IEnumerable<EleD> Enum接続肢(WaistD , WaistD , bool , int i, ConnectionInfo , Type[] , Dictionary<ConnectionInfo, List<Type>> , double , bool )
{
double l = (.(, ) + .(, ) + .(, )) / 3;
double num = 1.0 / ((double).Count * 0.5);
if (!)
{
string text = .ToString();
if (text.Contains("Shoulder") || text.Contains("脇") || text.Contains("翼"))
{
if (num.Lot())
{
l += (double)(int)(3.0 * * RNG.XS.NextDouble());
}
if (l > 3.0)
{
l = 3.0;
}
}
else if ( == ConnectionInfo.Waist_尾_接続 || == ConnectionInfo._尾_接続)
{
if (num.Lot())
{
l += (double)(int)(9.0 * * RNG.XS.NextDouble());
}
if (l > 9.0)
{
l = 9.0;
}
}
if ((num * * 0.5).Lot())
{
l = 0.0;
}
}
if (l == 0.0 && ( == ConnectionInfo._UpperArm_接続 || == ConnectionInfo.Waist_腿左_接続 || == ConnectionInfo.Waist_腿左_接続 || == ConnectionInfo._腿左_接続 || == ConnectionInfo._腿左_接続 || == ConnectionInfo._魚_尾_接続 || == ConnectionInfo._鯨_尾_接続 || == ConnectionInfo._蛇_Torso_接続 || == ConnectionInfo._蟲_Torso_接続 || == ConnectionInfo.Torso_蛇_Torso_接続 || == ConnectionInfo.Torso_蟲_Torso_接続 || == ConnectionInfo._蛸_軟体外左_接続 || == ConnectionInfo._蛸_軟体外右_接続 || == ConnectionInfo._蛸_軟体内左_接続 || == ConnectionInfo._蛸_軟体内右_接続 || == ConnectionInfo._植_根外左_接続 || == ConnectionInfo._植_根内左_接続 || == ConnectionInfo._植_根中央_接続 || == ConnectionInfo._植_根内右_接続 || == ConnectionInfo._植_根外右_接続 || == ConnectionInfo._宇_頭部後_接続 || (num * 1.1).Lot()))
{
l = 1.0;
}
for (int j = 0; (double)j < l; j++)
{
EleD e = Get接続肢(, , , i, , , , , j, );
if (e != null)
{
yield return e;
}
if (e is 1D || e is D || e is D || e is D || e is _蜘D || e is _鳥D)
{
break;
}
}
}
public static int (this ConnectionInfo , WaistD , WaistD )
{
if (.ContainsKey())
{
IEnumerable<EleD> source = from e in .EnumEleD().Concat(.EnumEleD())
where e.Enum接続情報().Contains()
select e;
int num = source.Count();
if (num != 0)
{
return source.ElementAt(RNG.XS.Next(num)).Get接続().Count((EleD e) => [].Contains(e.GetType().ToString()));
}
return 1;
}
return 0;
}
public static EleD Get接続肢(WaistD , WaistD , bool , int i, ConnectionInfo , Type[] , Dictionary<ConnectionInfo, List<Type>> , double , int j, bool )
{
EleD eleD = Get要素(, , , i, , , , , j, );
if (eleD != null)
{
foreach (ConnectionInfo item in eleD.Enum接続情報())
{
string text = item.ToString();
if (text.Contains("左"))
{
ConnectionInfo 2 = item;
ConnectionInfo 3 = text.Replace("左", "右").To接続情報();
foreach (EleD item2 in Enum接続肢(, , : false, i, item, , , , ))
{
if (item2 != null)
{
eleD.(2, item2);
eleD.(3, item2.Get逆());
}
}
}
else if (!text.Contains("右"))
{
EleD eleD2 = Get接続肢(, , , i, item, , , , j, );
if (eleD2 != null)
{
eleD.(item, eleD2);
}
}
}
}
return eleD;
}
public static EleD Get要素(WaistD , WaistD , bool , int i, ConnectionInfo , Type[] , Dictionary<ConnectionInfo, List<Type>> , double , int j, bool )
{
if (! && .Lot())
{
return Get要素1(, , , i, , , j, );
}
return Get要素0(, , , i, , , j, );
}
public static EleD Get要素1(WaistD , WaistD , bool , int i, ConnectionInfo , Type[] , int j, bool )
{
if (.ContainsKey())
{
IEnumerable<Type> source = .Where((Type e) => [].Contains(e.ToString()));
int num = source.Count();
if (num > j && j > -1)
{
return Mix(, , , i, source.ElementAt(j), );
}
if (num > 0)
{
return Mix(, , , i, source.ElementAt(RNG.XS.Next(num)), );
}
}
return null;
}
public static EleD Get要素0(WaistD , WaistD , bool , int i, ConnectionInfo , Dictionary<ConnectionInfo, List<Type>> , int j, bool )
{
if (.ContainsKey())
{
List<Type> list = [];
int count = list.Count;
if (count > j && j > -1)
{
return Mix(, , , i, list[j], );
}
if (count > 0)
{
return Mix(, , , i, list[RNG.XS.Next(count)], );
}
}
return null;
}
public static ChaD Mix(this ChaD , ChaD , bool )
{
double num = Mix(., ., 1.0);
WaistD d;
return new ChaD(d = Mix(.body_tree, .body_tree, num, ), Mix(.body_color, .body_color, num, d))
{
Lust = Mix(.Lust, .Lust, 0.6),
Affection = Mix(.Affection, .Affection, 0.6),
Taming = Mix(.Taming, .Taming, 0.6),
SkillL = Mix(.SkillL, .SkillL, 0.6),
Sesnsitivities = new Dictionary<ContactType, double>
{
{
ContactType.Head,
Mix(.Sesnsitivities[ContactType.Head], .Sesnsitivities[ContactType.Head], 0.6)
},
{
ContactType.Face,
Mix(.Sesnsitivities[ContactType.Face], .Sesnsitivities[ContactType.Face], 0.6)
},
{
ContactType.Ear,
Mix(.Sesnsitivities[ContactType.Ear], .Sesnsitivities[ContactType.Ear], 0.6)
},
{
ContactType.Mouth,
Mix(.Sesnsitivities[ContactType.Mouth], .Sesnsitivities[ContactType.Mouth], 0.6)
},
{
ContactType.Hair,
Mix(.Sesnsitivities[ContactType.Hair], .Sesnsitivities[ContactType.Hair], 0.6)
},
{
ContactType.Neck,
Mix(.Sesnsitivities[ContactType.Neck], .Sesnsitivities[ContactType.Neck], 0.6)
},
{
ContactType.Shoulder,
Mix(.Sesnsitivities[ContactType.Shoulder], .Sesnsitivities[ContactType.Shoulder], 0.6)
},
{
ContactType.Chest,
Mix(.Sesnsitivities[ContactType.Chest], .Sesnsitivities[ContactType.Chest], 0.6)
},
{
ContactType.Milk,
Mix(.Sesnsitivities[ContactType.Milk], .Sesnsitivities[ContactType.Milk], 0.6)
},
{
ContactType.Side,
Mix(.Sesnsitivities[ContactType.Side], .Sesnsitivities[ContactType.Side], 0.6)
},
{
ContactType.Stomache,
Mix(.Sesnsitivities[ContactType.Stomache], .Sesnsitivities[ContactType.Stomache], 0.6)
},
{
ContactType.Crotch,
Mix(.Sesnsitivities[ContactType.Crotch], .Sesnsitivities[ContactType.Crotch], 0.6)
},
{
ContactType.Sex,
Mix(.Sesnsitivities[ContactType.Sex], .Sesnsitivities[ContactType.Sex], 0.6)
},
{
ContactType.Vagina,
Mix(.Sesnsitivities[ContactType.Vagina], .Sesnsitivities[ContactType.Vagina], 0.6)
},
{
ContactType.Nucleus,
Mix(.Sesnsitivities[ContactType.Nucleus], .Sesnsitivities[ContactType.Nucleus], 0.6)
},
{
ContactType.Anal,
Mix(.Sesnsitivities[ContactType.Anal], .Sesnsitivities[ContactType.Anal], 0.6)
},
{
ContactType.Thread,
Mix(.Sesnsitivities[ContactType.Thread], .Sesnsitivities[ContactType.Thread], 0.6)
},
{
ContactType.Thigh,
Mix(.Sesnsitivities[ContactType.Thigh], .Sesnsitivities[ContactType.Thigh], 0.6)
},
{
ContactType.Feet,
Mix(.Sesnsitivities[ContactType.Feet], .Sesnsitivities[ContactType.Feet], 0.6)
},
{
ContactType.Hand,
Mix(.Sesnsitivities[ContactType.Hand], .Sesnsitivities[ContactType.Hand], 0.6)
},
{
ContactType.Awareness,
Mix(.Sesnsitivities[ContactType.Awareness], .Sesnsitivities[ContactType.Awareness], 0.6)
},
{
ContactType.Touch,
Mix(.Sesnsitivities[ContactType.Touch], .Sesnsitivities[ContactType.Touch], 0.6)
},
{
ContactType.Tail,
Mix(.Sesnsitivities[ContactType.Tail], .Sesnsitivities[ContactType.Tail], 0.6)
},
{
ContactType.Wing,
Mix(.Sesnsitivities[ContactType.Wing], .Sesnsitivities[ContactType.Wing], 0.6)
},
{
ContactType.Fin,
Mix(.Sesnsitivities[ContactType.Fin], .Sesnsitivities[ContactType.Fin], 0.6)
},
{
ContactType.Other,
Mix(.Sesnsitivities[ContactType.Other], .Sesnsitivities[ContactType.Other], 0.6)
}
},
= Mix(., ., 1.0),
= Mix(., ., 1.0),
= Mix(., ., 1.0),
= 0.3 + Mix(., ., 0.5),
= Mix(., ., 0.19999999999999996),
= 0.3 + Mix(., ., 0.5),
= Mix(., ., 0.19999999999999996),
= 0.3 + Mix(., ., 0.5),
= Mix(., ., 0.19999999999999996),
= Mix(., ., 1.0),
= Mix(., ., 1.0),
= num
};
}
private static double Mix(double , double , double max)
{
return RNG.XS.Next(4) switch
{
0 => ( + (double)RNG.XS.NextSign() * RNG.XS.NextDouble(0.15)).Clamp(0.0, max),
1 => ( + (double)RNG.XS.NextSign() * RNG.XS.NextDouble(0.15)).Clamp(0.0, max),
2 => (( + ) * 0.5 + (double)RNG.XS.NextSign() * RNG.XS.NextDouble(0.15)).Clamp(0.0, max),
_ => RNG.XS.NextDouble(max),
};
}
public static Unit Mix(this Unit , Unit , bool )
{
Unit unit = new Unit();
unit.Mother = ;
unit.Father = ;
unit.ChaD = .ChaD.Mix(.ChaD, );
if (.Race != .Race)
{
unit.Race = GameText.;
}
else
{
unit.Race = .Race;
}
unit.Name = unit.Race;
unit. = ..Mix(.);
unit. = (. + .) / 2;
foreach (EleD item in unit.ChaD.body_tree.EnumEleD())
{
item.SetValuesD("傷", false);
item. = false;
}
unit.Set衣装();
unit.Set交配素質();
unit.Set構成特性();
return unit;
}
public static RaceInformation Mix(this RaceInformation , RaceInformation )
{
return new RaceInformation((. + .) / 2, (. + .) / 2, (. + .) / 2, Mix(., ., 9), Mix(., ., 9));
}
private static int Mix(int , int , int max)
{
return RNG.XS.Next(4) switch
{
0 => ( + RNG.XS.NextSign()).Clamp(1, max),
1 => ( + RNG.XS.NextSign()).Clamp(1, max),
2 => (( + ) / 2 + RNG.XS.NextSign()).Clamp(1, max),
_ => RNG.XS.NextM(max).Clamp(1, max),
};
}
}
}