Files
SlaveMatrix-SDL/SlaveMatrix/SlaveMatrix/GameClasses/Cha.cs
2025-05-07 10:45:18 -07:00

2163 lines
52 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Reflection;
using _2DGAMELIB;
namespace SlaveMatrix
{
public class Cha
{
public Med Med;
public Are Are;
public Bod Bod;
public ChaD ChaD;
public ;
public double FPS;
public Vector2D CP;
private Mot ;
private double _;
private Mot ;
private Mot ;
private bool _;
private Mot 1;
private Mot 2;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot 尿;
public Action 尿_ = delegate
{
};
public Func<bool> Is放尿 = () => false;
public Mot ;
public double ;
public Mot ;
public Mot ;
public Mot EyeTracking;
public bool ;
public double ;
public double ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot ;
public Mot Coughing;
public Mot ;
private Sweat ;
public double ;
public double ;
public double ;
public double ;
public double ;
public double ;
public Action ;
public Action 尿;
private double _;
private double y;
private bool ;
private bool ;
private bool ;
private bool ;
private bool ;
private bool ;
private bool 1;
private bool 2;
private bool ;
private bool ;
private Vector2D p = Dat.Vec2DZero;
public Mots Mots = new Mots();
public double
{
get
{
return _;
}
set
{
_ = value;
.BaseSpeed = 6.0 * _;
}
}
public bool Crying
{
get
{
return _;
}
set
{
_ = value;
if (!_)
{
.Start();
}
}
}
public double
{
get
{
return _;
}
set
{
_ = value;
Bod..C = 0.99 + 0.02 * _;
Bod._人.C = Bod..C;
p.Y = y * _ * 0.5;
if (Bod.Is髪)
{
Bod.EI髪.Position = p;
}
if (Bod.Is腕前)
{
Bod.EI腕前.Position = p;
}
p.Y = y * _ * 0.28;
if (Bod.Is胸)
{
Bod.EI胸.Position = p;
}
p.Y = 0.0 - p.Y;
Bod..C = p;
if (Bod.Is腰)
{
Bod.EI腰.Position = p;
}
if (Bod.Is半後)
{
Bod.EI半後.Position = p;
}
if (Bod.Is半中1)
{
Bod.EI半中1.Position = p;
}
if (Bod.Is半中2)
{
Bod.EI半中2.Position = p;
}
if (Bod.Is半前)
{
Bod.EI半前.Position = p;
}
if (Bod.Is腿)
{
Bod.EI腿.Position = p;
}
}
}
public double
{
get
{
if (Bod. != null)
{
return (1.0 / (double)(Bod...Count + 1)).Inverse();
}
return 0.0;
}
}
public void 尿()
{
尿_();
}
public Cha(Med Med, Are Are, ChaD ChaD)
{
Cha cha = this;
this.Med = Med;
this.Are = Are;
this.ChaD = ChaD;
= new (ChaD.body_color);
_ = Are.DisUnit;
Bod = new Bod(Med, Are, this);
= Bod.Is髪 && Bod.EI髪.IsHeavy();
= Bod.Is胸 && Bod.EI胸.IsHeavy();
= Bod.Is腰 && Bod.EI腰.IsHeavy();
= Bod.Is腕前 && Bod.EI腕前.IsHeavy();
= Bod.Is半後 && Bod.EI半後.IsHeavy();
1 = Bod.Is半中1 && Bod.EI半中1.IsHeavy();
2 = Bod.Is半中2 && Bod.EI半中2.IsHeavy();
= Bod.Is半前 && Bod.EI半前.IsHeavy();
= Bod.Is腿 && Bod.EI腿.IsHeavy();
double C = Bod..C;
Bod..C = 0.99;
double num = Bod..X0Y0_胸郭.ToGlobal(Bod..X0Y0_胸郭.JP[0].Joint).Y;
Bod..C = 1.01;
double num2 = Bod..X0Y0_胸郭.ToGlobal(Bod..X0Y0_胸郭.JP[0].Joint).Y;
Bod..C = C;
y = num2 - num;
= new Mot(0.0, 1.0)
{
LowestIncrease = 0.25,
BaseSpeed = 6.0 * _,
Staing = delegate
{
cha.Bod.. = 0.0;
cha.Bod.. = true;
},
Runing = delegate(Mot m)
{
cha.Bod.. = m.Value.Inverse() * cha._;
cha. = m.Value;
},
Reaing = delegate
{
},
Rouing = delegate
{
},
Ending = delegate
{
cha.Bod.. = false;
cha.Bod.. = 1.0;
cha. = 0.0;
}
};
Mots.Add(.GetHashCode().ToString(), );
= 0.2;
.Start();
bool go = true;
bool = Bod. != null;
bool = Bod. != null;
= new Mot(0.0, 1.0)
{
BaseSpeed = 3.0,
Staing = delegate
{
go = true;
if ()
{
if (cha.Bod.Is双眼)
{
cha.Bod.._ハイライト下_表示 = true;
}
if (cha.Bod.Is頬眼)
{
cha.Bod.._ハイライト下_表示 = true;
}
if (cha.Bod.Is単眼)
{
cha.Bod.._ハイライト下_表示 = true;
}
if (cha.Bod.Is額眼)
{
cha.Bod.._ハイライト下_表示 = true;
}
cha.Bod..00_ = cha.Bod..01_ || cha.Bod..0_;
cha.Bod..01_ = cha.Bod..0_;
cha.Bod..0_ = !cha.Bod..0_;
cha.Bod.._表示 = cha.Bod..0_;
cha.Bod..Yv = 0.0;
cha.Bod..01CD. = 1.0;
}
if ()
{
if (cha.Bod.Is双眼)
{
cha.Bod.._ハイライト下_表示 = true;
}
if (cha.Bod.Is頬眼)
{
cha.Bod.._ハイライト下_表示 = true;
}
cha.Bod..00_ = cha.Bod..01_ || cha.Bod..0_;
cha.Bod..01_ = cha.Bod..0_;
cha.Bod..0_ = !cha.Bod..0_;
cha.Bod.._表示 = cha.Bod..0_;
cha.Bod..Yv = 0.0;
cha.Bod..01CD. = 1.0;
}
},
Runing = delegate(Mot m)
{
if (go)
{
if ()
{
cha.Bod..Yv = m.Value;
}
if ()
{
cha.Bod..Yv = m.Value;
}
}
else
{
if ()
{
cha.Bod..01CD. = m.Value;
}
if ()
{
cha.Bod..01CD. = m.Value;
}
}
},
Reaing = delegate
{
go = false;
if ()
{
cha.Bod..Yv = 1.0;
}
if ()
{
cha.Bod..Yv = 1.0;
}
},
Rouing = delegate(Mot m)
{
m.End();
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
double vi;
= new Mot(0.0, 1.0)
{
BaseSpeed = 1.0,
Staing = delegate
{
},
Runing = delegate(Mot m)
{
vi = m.Value.Inverse();
if ()
{
cha.Bod.. *= vi;
if (cha.Bod.Is双眼)
{
cha.Bod.._ハイライト下CD. *= vi;
}
if (cha.Bod.Is頬眼)
{
cha.Bod.._ハイライト下CD. *= vi;
}
if (cha.Bod.Is単眼)
{
cha.Bod.._ハイライト下CD. *= vi;
}
if (cha.Bod.Is額眼)
{
cha.Bod.._ハイライト下CD. *= vi;
}
}
if ()
{
cha.Bod.. *= vi;
if (cha.Bod.Is双眼)
{
cha.Bod.._ハイライト下CD. *= vi;
}
if (cha.Bod.Is頬眼)
{
cha.Bod.._ハイライト下CD. *= vi;
}
}
},
Reaing = delegate(Mot m)
{
m.End();
m.ResetValue();
if ()
{
cha.Bod.. = false;
cha.Bod.. = 1.0;
if (cha.Bod.Is双眼)
{
cha.Bod.._ハイライト下_表示 = false;
cha.Bod.._ハイライト下CD. = 1.0;
}
if (cha.Bod.Is頬眼)
{
cha.Bod.._ハイライト下_表示 = false;
cha.Bod.._ハイライト下CD. = 1.0;
}
if (cha.Bod.Is単眼)
{
cha.Bod.._ハイライト下_表示 = false;
cha.Bod.._ハイライト下CD. = 1.0;
}
if (cha.Bod.Is額眼)
{
cha.Bod.._ハイライト下_表示 = false;
cha.Bod.._ハイライト下CD. = 1.0;
}
}
if ()
{
cha.Bod.. = false;
cha.Bod.. = 1.0;
if (cha.Bod.Is双眼)
{
cha.Bod.._ハイライト下_表示 = false;
cha.Bod.._ハイライト下CD. = 1.0;
}
if (cha.Bod.Is頬眼)
{
cha.Bod.._ハイライト下_表示 = false;
cha.Bod.._ハイライト下CD. = 1.0;
}
}
},
Rouing = delegate
{
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
if (Bod.Is双眼 || Bod.Is単眼)
{
1 = new Mot(0.0, 1.0)
{
BaseSpeed = 10.0,
GotoSpeed = 8.0,
RetuSpeed = 0.5,
LowestIncrease = 1.0,
Interval = 1000.0,
Staing = delegate
{
},
Runing = delegate(Mot m)
{
if (cha.Bod.Is双眼)
{
cha.Bod.v = m.Value.Clamp(cha.Bod.Is瞼宇 ? 0.0 : cha., 1.0);
cha.Bod.v = m.Value.Clamp(cha.Bod.Is瞼宇 ? 0.0 : cha., 1.0);
}
if (cha.Bod.Is単眼)
{
cha.Bod..Yv = m.Value.Clamp(cha.Bod.Is瞼宇 ? 0.0 : cha., 1.0);
}
},
Reaing = delegate
{
if (cha._)
{
cha..Start();
}
},
Rouing = delegate(Mot m)
{
m.Interval = 5000.0 * RNG.XS.NextDouble();
},
Ending = delegate
{
}
};
Mots.Add(1.GetHashCode().ToString(), 1);
1.Start();
}
if (Bod.Is頬眼 || Bod.Is額眼)
{
2 = new Mot(0.0, 1.0)
{
BaseSpeed = 10.0,
GotoSpeed = 8.0,
RetuSpeed = 0.5,
LowestIncrease = 1.0,
Interval = 1000.0,
Staing = delegate
{
},
Runing = delegate(Mot m)
{
if (cha.Bod.Is頬眼)
{
cha.Bod..Yv = m.Value.Clamp(cha., 1.0);
cha.Bod..Yv = m.Value.Clamp(cha., 1.0);
}
if (cha.Bod.Is額眼)
{
cha.Bod..Yv = m.Value.Clamp(cha., 1.0);
}
},
Reaing = delegate
{
},
Rouing = delegate(Mot m)
{
m.Interval = 5000.0 * RNG.XS.NextDouble();
},
Ending = delegate
{
}
};
Mots.Add(2.GetHashCode().ToString(), 2);
2.Start();
}
bool o = false;
double ov = 0.0;
= new Mot(0.0, 1.0)
{
BaseSpeed = 0.8,
Staing = delegate
{
cha.Bod..Yi = 0;
ov = cha.;
cha.Bod.. = 1.0 * ov;
cha.Bod.._表示 = true;
o = true;
cha.Bod.. = RNG.XS.NextBool();
},
Runing = delegate(Mot m)
{
if (o)
{
cha.Bod..Yv = m.Value;
}
else
{
cha.Bod.. = m.Value * ov;
}
},
Reaing = delegate
{
o = false;
},
Rouing = delegate(Mot m)
{
cha.Bod.. = false;
m.End();
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
bool v = false;
double vv = 0.0;
double zd = Bod..;
= new Mot(0.0, 1.0)
{
BaseSpeed = 0.8,
Staing = delegate
{
cha.Bod..Yi = 0;
vv = cha.;
cha.Bod.. = 1.0 * vv;
cha.Bod.._表示 = true;
v = true;
zd = cha.Bod..;
cha.Bod.. = RNG.XS.NextBool();
},
Runing = delegate(Mot m)
{
if (v)
{
cha.Bod..Yv = m.Value;
cha.Bod.. = zd * m.Value.Inverse();
}
else
{
cha.Bod.. = m.Value * vv;
}
},
Reaing = delegate
{
v = false;
},
Rouing = delegate(Mot m)
{
cha.Bod.. = false;
m.End();
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
bool a = false;
double av = 0.0;
= new Mot(0.0, 1.0)
{
BaseSpeed = 0.8,
Staing = delegate
{
cha.Bod..Yi = 0;
av = cha.;
cha.Bod.. = 1.0 * av;
cha.Bod.._表示 = true;
a = true;
cha.Bod.. = RNG.XS.NextBool();
},
Runing = delegate(Mot m)
{
if (a)
{
cha.Bod..Yv = m.Value;
}
else
{
cha.Bod.. = m.Value * av;
}
},
Reaing = delegate
{
a = false;
},
Rouing = delegate(Mot m)
{
cha.Bod.. = false;
m.End();
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
bool z = false;
double zv = 0.0;
= new Mot(0.0, 1.0)
{
BaseSpeed = 0.8,
Staing = delegate
{
cha.Bod..Yi = 0;
zv = cha.;
cha.Bod.. = 1.0 * zv;
cha.Bod.._表示 = true;
z = true;
cha.Bod.. = RNG.XS.NextBool();
},
Runing = delegate(Mot m)
{
if (z)
{
cha.Bod..Yv = m.Value;
}
else
{
cha.Bod.. = m.Value * zv;
}
},
Reaing = delegate
{
z = false;
},
Rouing = delegate(Mot m)
{
cha.Bod.. = false;
m.End();
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
= new Mot(0.0, 1.0)
{
BaseSpeed = 4.0,
Staing = delegate
{
cha.Bod._小.Yv = 0.0;
cha.Bod._小. = true;
},
Runing = delegate(Mot m)
{
cha.Bod._小.Yv = m.Value;
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
cha.Bod._小. = false;
cha.Bod. = (cha.Bod. + 0.01).Clamp(0.0, 1.0);
}
};
Mots.Add(.GetHashCode().ToString(), );
= new Mot(0.0, 1.0)
{
BaseSpeed = 4.0,
Staing = delegate
{
cha.Bod._大.Yv = 0.0;
cha.Bod._大. = true;
cha.Bod._大. = RNG.XS.NextBool();
if (cha. != null)
{
cha.();
}
},
Runing = delegate(Mot m)
{
cha.Bod._大.Yv = m.Value;
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
cha.Bod._大. = false;
cha.Bod. = (cha.Bod. + 0.2).Clamp(0.0, 1.0);
}
};
Mots.Add(.GetHashCode().ToString(), );
= new Mot(0.0, 1.0)
{
BaseSpeed = 4.0,
Staing = delegate
{
cha.Bod..Yv = 0.0;
cha.Bod.. = true;
cha.Bod.. = RNG.XS.NextBool();
},
Runing = delegate(Mot m)
{
cha.Bod..Yv = m.Value;
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
cha.Bod.. = false;
cha.Bod. = (cha.Bod. + 0.03).Clamp(0.0, 1.0);
}
};
Mots.Add(.GetHashCode().ToString(), );
= new Mot(0.0, 1.0)
{
BaseSpeed = 3.0,
Staing = delegate
{
cha.Bod..Yv = 0.0;
cha.Bod.. = true;
},
Runing = delegate(Mot m)
{
cha.Bod..Yv = m.Value;
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
cha.Bod.. = false;
}
};
Mots.Add(.GetHashCode().ToString(), );
Mot = new Mot(0.0, 1.0)
{
BaseSpeed = 0.1,
Staing = delegate
{
},
Runing = delegate(Mot m)
{
cha.Bod.尿 = m.Value;
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
Mot 尿1 = null;
Mot 尿2 = new Mot(0.0, 1.0)
{
BaseSpeed = 1.0,
Staing = delegate
{
},
Runing = delegate(Mot m)
{
cha.Bod.尿. = m.Value.Inverse();
ChaD.Shyness = (ChaD.Shyness + 0.002).Clamp(0.0, 1.0);
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
cha.Bod.尿. = false;
cha.Bod.尿. = 1.0;
尿1.End();
}
};
Mots.Add(尿2.GetHashCode().ToString(), 尿2);
Stopwatch sw = new Stopwatch();
尿1 = new Mot(8.0, 10.0)
{
BaseSpeed = 10.0,
Staing = delegate
{
cha.Bod.尿.Yi = 8;
sw.Start();
},
Runing = delegate(Mot m)
{
if (sw.ElapsedMilliseconds > 4000)
{
尿2.Start();
}
else if (cha.尿 != null)
{
cha.尿();
}
cha.Bod.尿.Yi = (int)m.Value;
ChaD.Shyness = (ChaD.Shyness + 0.002).Clamp(0.0, 1.0);
},
Reaing = delegate
{
},
Rouing = delegate
{
},
Ending = delegate
{
sw.Reset();
}
};
Mots.Add(尿1.GetHashCode().ToString(), 尿1);
Mot = new Mot(0.0, 1.0)
{
BaseSpeed = 0.2,
Staing = delegate
{
cha.Bod. = 0.0;
cha.Bod. = 0.0;
},
Runing = delegate(Mot m)
{
cha.Bod. = m.Value;
cha.Bod. = m.Value;
},
Reaing = delegate
{
},
Rouing = delegate(Mot m)
{
m.End();
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
尿 = new Mot(0.0, 1.0)
{
BaseSpeed = 0.6,
Staing = delegate
{
cha.Bod.尿.Yv = 0.0;
cha.Bod.尿. = true;
if (cha.Bod.尿 != 1.0)
{
.Start();
}
//Sounds.放尿.Play();
},
Runing = delegate(Mot m)
{
cha.Bod.尿.Yv = m.Value;
if (cha.尿 != null)
{
cha.尿();
}
ChaD.Shyness = (ChaD.Shyness + 0.002).Clamp(0.0, 1.0);
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
尿1.Start();
.Start();
}
};
Mots.Add(尿.GetHashCode().ToString(), 尿);
尿_ = delegate
{
cha.尿.End();
尿1.End();
.End();
尿2.End();
.End();
};
Is放尿 = () => cha.尿.Run || 尿1.Run || 尿2.Run;
= new Mot(0.0, 1.0)
{
BaseSpeed = 2.0,
Staing = delegate
{
cha.Bod..Yi = 0;
cha.Bod..Yi = 0;
cha.Bod..1_ = true;
cha.Bod..2_ = true;
cha.Bod..3_ = true;
cha.Bod..4_ = true;
cha.Bod..1_ = true;
cha.Bod..2_ = true;
cha.Bod..3_ = true;
cha.Bod..4_ = true;
},
Runing = delegate(Mot m)
{
cha.Bod..Yv = m.Value;
cha.Bod..Yv = m.Value;
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
cha.Bod..1_ = false;
cha.Bod..2_ = false;
cha.Bod..3_ = false;
cha.Bod..4_ = false;
cha.Bod..1_ = true;
cha.Bod..2_ = true;
cha.Bod..1_ = false;
cha.Bod..2_ = false;
cha.Bod..3_ = false;
cha.Bod..4_ = false;
cha.Bod..1_ = true;
cha.Bod..2_ = true;
cha. = (cha. + 0.03).Clamp(0.0, 1.0);
}
};
Mots.Add(.GetHashCode().ToString(), );
bool hm = false;
bool = Bod. != null;
bool = Bod. != null;
= new Mot(0.0, 1.0)
{
BaseSpeed = 3.0,
Staing = delegate
{
hm = RNG.XS.NextBool();
if ( && hm && cha.Bod..Yv != 1.0 && cha.Bod..Yv != 1.0)
{
cha.Bod..Yv = 0.0;
cha.Bod.. = true;
}
if ( && !hm && cha.Bod..Yv != 1.0 && cha.Bod..Yv != 1.0)
{
cha.Bod..Yv = 0.0;
cha.Bod.. = true;
}
},
Runing = delegate(Mot m)
{
if ( && hm && cha.Bod..Yv != 1.0 && cha.Bod..Yv != 1.0)
{
cha.Bod..Yv = m.Value;
}
if ( && !hm && cha.Bod..Yv != 1.0 && cha.Bod..Yv != 1.0)
{
cha.Bod..Yv = m.Value;
}
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
bool yb = false;
bool = Bod. != null;
bool = Bod. != null;
= new Mot(0.0, 1.0)
{
BaseSpeed = 3.0,
Staing = delegate
{
yb = RNG.XS.NextBool();
if ( && yb && cha.Bod..Yv != 1.0 && cha.Bod..Yv != 1.0)
{
cha.Bod..Yv = 0.0;
cha.Bod.. = true;
}
if ( && !yb && cha.Bod..Yv != 1.0 && cha.Bod..Yv != 1.0)
{
cha.Bod..Yv = 0.0;
cha.Bod.. = true;
}
},
Runing = delegate(Mot m)
{
if ( && yb && cha.Bod..Yv != 1.0 && cha.Bod..Yv != 1.0)
{
cha.Bod..Yv = m.Value;
}
if ( && !yb && cha.Bod..Yv != 1.0 && cha.Bod..Yv != 1.0)
{
cha.Bod..Yv = m.Value;
}
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
int s;
Vector2D ev;
EyeTracking = new Mot(0.0, 1.0)
{
BaseSpeed = 0.1,
Staing = delegate
{
},
Runing = delegate
{
s = ((!cha.) ? 1 : (-1));
if (cha.)
{
if (cha.Bod.Is双眼)
{
ev = s * (cha.CP - (cha.Bod.. + cha.Bod..) * 0.5).newNormalize() * 0.002;
cha.Bod.. = ev;
cha.Bod.. = ev;
}
if (cha.Bod.Is頬眼)
{
ev = s * (cha.CP - (cha.Bod.. + cha.Bod..) * 0.5).newNormalize() * 0.00089;
cha.Bod.. = ev;
cha.Bod.. = ev;
}
if (cha.Bod.Is額眼)
{
ev = s * (cha.CP - cha.Bod..).newNormalize() * 0.00089;
cha.Bod.. = ev;
}
if (cha.Bod.Is単眼)
{
ev = s * (cha.CP - cha.Bod..).newNormalize() * 0.003;
cha.Bod.. = ev;
}
}
else
{
if (cha.Bod.Is双眼)
{
cha.Bod.. = s * (cha.CP - cha.Bod..).newNormalize() * 0.002;
cha.Bod.. = s * (cha.CP - cha.Bod..).newNormalize() * 0.002;
}
if (cha.Bod.Is頬眼)
{
cha.Bod.. = s * (cha.CP - cha.Bod..).newNormalize() * 0.00089;
cha.Bod.. = s * (cha.CP - cha.Bod..).newNormalize() * 0.00089;
}
if (cha.Bod.Is額眼)
{
cha.Bod.. = s * (cha.CP - cha.Bod..).newNormalize() * 0.00089;
}
if (cha.Bod.Is単眼)
{
cha.Bod.. = s * (cha.CP - cha.Bod..).newNormalize() * 0.003;
}
}
},
Reaing = delegate
{
},
Rouing = delegate
{
},
Ending = delegate
{
}
};
Mots.Add(EyeTracking.GetHashCode().ToString(), EyeTracking);
double l = 1.0;
= new Mot(0.0, 1.0)
{
BaseSpeed = 0.2 - 0.15 * ,
Staing = delegate(Mot m)
{
m.BaseSpeed = 0.2 - 0.15 * cha.;
l = 1.0;
},
Runing = delegate(Mot m)
{
l = m.Value.Inverse();
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
cha..End();
Player.();
}
};
Mots.Add(.GetHashCode().ToString(), );
double kv = 0.0;
Par pa = Bod...CurJoinRoot;
Par pb = null;
Vector2D vec = Dat.Vec2DZero;
Action = delegate
{
pb = cha.Bod...CurJoinRoot;
vec = pb.ToGlobal(pb.JP[5].Joint) - pa.ToGlobal(pa.JP[5].Joint);
if (cha.Bod.Is腰)
{
if (cha.)
{
cha.Bod.EI腰.PositionCont = vec;
}
else
{
cha.Bod.EI腰.Updatef = true;
}
}
if (cha.Bod.Is半後)
{
if (cha.)
{
cha.Bod.EI半後.PositionCont = vec;
}
else
{
cha.Bod.EI半後.Updatef = true;
}
}
if (cha.Bod.Is半中1)
{
if (cha.1)
{
cha.Bod.EI半中1.PositionCont = vec;
}
else
{
cha.Bod.EI半中1.Updatef = true;
}
}
if (cha.Bod.Is半中2)
{
if (cha.2)
{
cha.Bod.EI半中2.PositionCont = vec;
}
else
{
cha.Bod.EI半中2.Updatef = true;
}
}
if (cha.Bod.Is半前)
{
if (cha.)
{
cha.Bod.EI半前.PositionCont = vec;
}
else
{
cha.Bod.EI半前.Updatef = true;
}
}
if (cha.Bod.Is腿)
{
if (cha.)
{
cha.Bod.EI腿.PositionCont = vec;
}
else
{
cha.Bod.EI腿.Updatef = true;
}
}
};
double d;
= new Mot(0.0, 1.0)
{
BaseSpeed = 20.0,
Staing = delegate
{
kv = cha.Bod..Yv;
cha..Start();
},
Runing = delegate(Mot m)
{
d = 5.0 * (0.15 + cha.) * m.Value.Sin() * RNG.XS.NextDouble() * l;
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.Is触覚他)
{
cha.(d);
}
if (cha.Bod.Is触覚甲)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.1n > 0)
{
cha.(d);
}
if (cha.Bod.1n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.Is植)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
if (cha.Bod.n > 0)
{
cha.(d);
}
cha.Bod.v = d * RNG.XS.NextDouble();
cha.Bod..C = new Vector2D(0.0, 0.0005 * d);
cha.Bod..C = cha.Bod..C;
cha.Bod..C = cha.Bod..C;
if (cha.Bod.Is腕前)
{
cha.Bod.EI腕前.Updatef = true;
}
();
Player.();
if (0.3.Lot())
{
Player.();
}
},
Reaing = delegate
{
},
Rouing = delegate
{
},
Ending = delegate
{
cha.Bod._人v = kv;
cha.Bod..C = Dat.Vec2DZero;
if (!cha.Bod..)
{
cha.Bod..C = Dat.Vec2DZero;
cha.Bod..C = Dat.Vec2DZero;
}
if (cha.Bod.Is腰)
{
cha.Bod.EI腰.PositionCont = Dat.Vec2DZero;
}
if (cha.Bod.Is半後)
{
cha.Bod.EI半後.PositionCont = Dat.Vec2DZero;
}
if (cha.Bod.Is半中1)
{
cha.Bod.EI半中1.PositionCont = Dat.Vec2DZero;
}
if (cha.Bod.Is半中2)
{
cha.Bod.EI半中2.PositionCont = Dat.Vec2DZero;
}
if (cha.Bod.Is半前)
{
cha.Bod.EI半前.PositionCont = Dat.Vec2DZero;
}
if (cha.Bod.Is腿)
{
cha.Bod.EI腿.PositionCont = Dat.Vec2DZero;
}
}
};
Mots.Add(.GetHashCode().ToString(), );
Stopwatch sw = new Stopwatch();
= new Mot(0.0, 1.0)
{
BaseSpeed = 1.0,
Staing = delegate
{
sw.Restart();
},
Runing = delegate(Mot m)
{
cha.Bod.C = 0.5 + m.Value.Sin() * RNG.XS.NextDouble() * 0.5;
if (sw.ElapsedMilliseconds > 5000)
{
m.End();
}
},
Reaing = delegate
{
},
Rouing = delegate
{
},
Ending = delegate
{
sw.Stop();
cha.Bod.C = 1.0;
}
};
Mots.Add(.GetHashCode().ToString(), );
Stopwatch sw = new Stopwatch();
= new Mot(0.0, 1.0)
{
BaseSpeed = 1.0,
Staing = delegate
{
sw.Restart();
},
Runing = delegate(Mot m)
{
cha.Bod.C = 1.0 + m.Value.Sin() * RNG.XS.NextDouble() * 0.5;
if (sw.ElapsedMilliseconds > 5000)
{
m.End();
}
},
Reaing = delegate
{
},
Rouing = delegate
{
},
Ending = delegate
{
sw.Stop();
cha.Bod.C = 1.0;
}
};
Mots.Add(.GetHashCode().ToString(), );
Stopwatch sw = new Stopwatch();
= new Mot(0.0, 1.0)
{
BaseSpeed = 0.1,
Staing = delegate
{
sw.Restart();
},
Runing = delegate(Mot m)
{
if (cha.Bod.Is蜘尾)
{
cha.Bod.C = m.Value.Sin() * 30.0;
}
if (sw.ElapsedMilliseconds > 5000)
{
m.End();
}
},
Reaing = delegate
{
},
Rouing = delegate
{
},
Ending = delegate
{
sw.Stop();
if (cha.Bod.Is蜘尾)
{
cha.Bod.C = 0.0;
}
}
};
Mots.Add(.GetHashCode().ToString(), );
bool = false;
bool Is展開 = Bod.Is顔面 || Bod.Is大顎基;
= Bod.;
= Bod.._接続.GetEle<>();
1_ = Bod.._接続.GetEle<1_>();
double o_ = 0.0;
= new Mot(0.0, 1.0)
{
BaseSpeed = 5.0,
Staing = delegate
{
if (Is展開)
{
= o_ == 1.0;
}
},
Runing = delegate(Mot m)
{
if (Is展開)
{
if ()
{
o_ = m.Value.Inverse();
}
else
{
o_ = m.Value;
}
if (cha.Bod.Is顔面)
{
.0 = o_;
.1 = o_;
}
if (cha.Bod.Is大顎基)
{
. = o_;
}
if (cha.Bod.Is虫角)
{
. = o_;
}
}
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
}
};
Mots.Add(.GetHashCode().ToString(), );
Vector2D p_ = Dat.Vec2DZero;
double d_;
= new Mot(0.0, 1.0)
{
BaseSpeed = 7.0,
Staing = delegate
{
},
Runing = delegate(Mot m)
{
d_ = 2.0 * m.Value;
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.Is触覚他)
{
cha.(d_);
}
if (cha.Bod.Is触覚甲)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.1n > 0)
{
cha.(0.0 - d_);
}
if (cha.Bod.1n > 0)
{
cha.(0.0 - d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.Is植)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
if (cha.Bod.n > 0)
{
cha.(d_);
}
p_.Y = -0.001 * m.Value;
cha.Bod..C = p_;
cha.Bod..C = cha.Bod..C;
cha.Bod..C = cha.Bod..C;
if (cha.Bod.Is髪)
{
if (cha.)
{
cha.Bod.EI髪.Position = p_;
}
else
{
cha.Bod.EI髪.Updatef = true;
}
}
if (cha.Bod.Is胸)
{
if (cha.)
{
cha.Bod.EI胸.Position = p_;
}
else
{
cha.Bod.EI胸.Updatef = true;
}
}
if (cha.Bod.Is腰)
{
if (cha.)
{
cha.Bod.EI腰.Position = p_;
}
else
{
cha.Bod.EI腰.Updatef = true;
}
}
if (cha.Bod.Is腕前)
{
if (cha.)
{
cha.Bod.EI腕前.Position = p_;
}
else
{
cha.Bod.EI腕前.Updatef = true;
}
}
if (cha.Bod.Is半後)
{
if (cha.)
{
cha.Bod.EI半後.Position = p_;
}
else
{
cha.Bod.EI半後.Updatef = true;
}
}
if (cha.Bod.Is半中1)
{
if (cha.1)
{
cha.Bod.EI半中1.Position = p_;
}
else
{
cha.Bod.EI半中1.Updatef = true;
}
}
if (cha.Bod.Is半中2)
{
if (cha.2)
{
cha.Bod.EI半中2.Position = p_;
}
else
{
cha.Bod.EI半中2.Updatef = true;
}
}
if (cha.Bod.Is半前)
{
if (cha.)
{
cha.Bod.EI半前.Position = p_;
}
else
{
cha.Bod.EI半前.Updatef = true;
}
}
if (cha.Bod.Is腿)
{
if (cha.)
{
cha.Bod.EI腿.Position = p_;
}
else
{
cha.Bod.EI腿.Updatef = true;
}
}
},
Reaing = delegate
{
},
Rouing = delegate(Mot m)
{
m.End();
},
Ending = delegate
{
cha.Bod..C = Dat.Vec2DZero;
if (!cha.Bod..)
{
cha.Bod..C = Dat.Vec2DZero;
cha.Bod..C = Dat.Vec2DZero;
}
if (cha.Bod.Is髪)
{
cha.Bod.EI髪.Position = Dat.Vec2DZero;
}
if (cha.Bod.Is胸)
{
cha.Bod.EI胸.Position = Dat.Vec2DZero;
}
if (cha.Bod.Is腰)
{
cha.Bod.EI腰.Position = Dat.Vec2DZero;
}
if (cha.Bod.Is腕前)
{
cha.Bod.EI腕前.Position = Dat.Vec2DZero;
}
if (cha.Bod.Is半後)
{
cha.Bod.EI半後.Position = Dat.Vec2DZero;
}
if (cha.Bod.Is半中1)
{
cha.Bod.EI半中1.Position = Dat.Vec2DZero;
}
if (cha.Bod.Is半中2)
{
cha.Bod.EI半中2.Position = Dat.Vec2DZero;
}
if (cha.Bod.Is半前)
{
cha.Bod.EI半前.Position = Dat.Vec2DZero;
}
if (cha.Bod.Is腿)
{
cha.Bod.EI腿.Position = Dat.Vec2DZero;
}
}
};
Mots.Add(.GetHashCode().ToString(), );
int c_ = 0;
int = 1;
Coughing = new Mot(0.0, 1.0)
{
BaseSpeed = 10.0,
GotoSpeed = 0.5,
RetuSpeed = 2.0,
Staing = delegate
{
cha.UpdateExpression();
if (cha.Bod.Is双眼)
{
cha._1(RNG.XS.Next(1, 4), RNG.XS.Next(1, 4));
}
else if (cha.Bod.Is単眼)
{
cha._1(RNG.XS.Next(1, 4));
}
if (cha.Bod.Is頬眼)
{
cha._1(RNG.XS.Next(1, 4), RNG.XS.Next(1, 4));
}
if (cha.Bod.Is額眼)
{
cha._1(RNG.XS.Next(1, 4));
}
c_ = 0;
= RNG.XS.NextM(1, 2) + Player.UI..Count / 2;
},
Runing = delegate(Mot m)
{
cha. = m.Value;
},
Reaing = delegate
{
cha..Start();
if ((Player.UI.. || cha.Crying) && 0.18.Lot())
{
cha..Start();
}
if (Player.UI.. && 0.25.Lot())
{
cha..Start();
}
},
Rouing = delegate(Mot m)
{
c_++;
if (c_ >= )
{
m.End();
}
},
Ending = delegate
{
cha.SetInitialExpression();
cha.();
}
};
Mots.Add(Coughing.GetHashCode().ToString(), Coughing);
double _ = 0.0;
= new Mot(0.0, 1.0)
{
BaseSpeed = 1.0,
Staing = delegate
{
cha.UpdateExpression();
cha._紡ぎ();
_ = cha.;
},
Runing = delegate(Mot m)
{
cha. = m.Value;
},
Reaing = delegate
{
},
Rouing = delegate(Mot m)
{
m.End();
},
Ending = delegate
{
if (RNG.XS.NextBool())
{
//Sounds.挿抜口1.Play();
}
else
{
//Sounds.挿抜口2.Play();
}
ChaD.Stamina = (ChaD.Stamina + 0.3 * _).Clamp(0.0, 1.0);
}
};
Mots.Add(.GetHashCode().ToString(), );
Mots.Drive(Med.FPSF);
Med.SetUniqueColor(Bod.Elements.Select((Ele e) => e..EnumAllPar()).JoinEnum());
= new Sweat(Med, Are, this, Mots);
= .;
Bod. = ;
this.SetInitialAngle();
}
public void Draw(Are Are, FPS FPS)
{
this.FPS = FPS.Value;
Mots.Drive(FPS);
Bod.(Are);
}
public void Dispose()
{
Bod.Dispose();
.Dispose();
Med.RemUniqueColor(Bod.Elements.Select((Ele e) => e..EnumAllPar()).JoinEnum());
}
public void Set衣装(IEnumerable<object> )
{
Bod.();
Dictionary<Type, int> dictionary = new Dictionary<Type, int>();
Dictionary<Type, PropertyInfo[]> dictionary2 = new Dictionary<Type, PropertyInfo[]>();
string ts;
foreach (object item in )
{
Type type = item.GetType();
ts = type.ToString();
if (dictionary.ContainsKey(type))
{
dictionary2[type][dictionary[type]].SetValue(Bod, item, null);
dictionary[type]++;
continue;
}
dictionary.Add(type, 0);
dictionary2.Add(type, (from e in Sta.Bodt.GetProperties()
where e.PropertyType.ToString() == ts
select e).ToArray());
dictionary2[type][dictionary[type]].SetValue(Bod, item, null);
dictionary[type]++;
}
if (!ChaD. && Bod.Is股防御())
{
Bod.Setピアス = Sta.;
}
if (!ChaD. && Bod.Is胸甲殻())
{
Bod.Setピアス左 = Sta.;
Bod.Setピアス右 = Sta.;
}
}
public ContactD GetContact(ref Color HitColor)
{
ContactD result = default(ContactD);
result.e = this.Bod.GetHitEle(HitColor);
if (result.e != null)
{
result.p = result.e..GetHitPar_(HitColor);
bool flag = false;
bool flag2 = result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is || result.e is ;
if (result.e is || result.e is )
{
result.c = ContactType.Head;
}
else if (result.e is || result.e is )
{
result.c = ContactType.Ear;
}
else if (this.Bod.Is口腔())
{
result.c = ContactType.Mouth;
}
else if (result.e is )
{
result.c = ContactType.Face;
}
else if (result.e is || result.e is 0 || result.e is 1 || result.e is )
{
result.c = ContactType.Hair;
}
else if (result.e is )
{
result.c = ContactType.Neck;
}
else if (result.e is )
{
result.c = ContactType.Shoulder;
}
else if (!flag2 && !this.Bod.._甲殻_表示 && !(result.p.Tag == "乳房") && this.Bod.Is乳首())
{
result.c = ContactType.Milk;
}
else if (result.e is )
{
result.c = ContactType.Chest;
}
else if (result.e is )
{
result.c = ContactType.Side;
}
else if (((result.e is || result.e is ) && result.p != null && result.p.Tag == "下腹") || result.e is )
{
result.c = ContactType.Stomache;
}
else if ((flag = !flag2 && this.Bod.Isくぱぁ()) && result.e is )
{
result.c = ContactType.Anal;
}
else if (flag && this.Bod.Is陰核())
{
result.c = ContactType.Nucleus;
}
else if (flag && this.Bod.Is膣口())
{
result.c = ContactType.Vagina;
}
else if (flag && result.e is )
{
result.c = ContactType.Sex;
}
else if (flag && this.Bod.Is局部())
{
result.c = ContactType.Crotch;
}
else if (result.e is _蜘 && (result.p.Tag.Contains("出糸突起左") || result.p.Tag.Contains("出糸突起中") || result.p.Tag.Contains("出糸突起右")))
{
result.c = ContactType.Thread;
}
else if (result.e.ConnectionType.ToString().Contains("腿") && !result.e.ConnectionType.Is左右無し())
{
result.c = ContactType.Thigh;
}
else if (result.e is _人)
{
result.c = ContactType.Feet;
}
else if (result.e is _人)
{
result.c = ContactType.Hand;
}
else if (result.e is )
{
result.c = ContactType.Awareness;
}
else if (result.e is )
{
result.c = ContactType.Touch;
}
else if (result.e.ConnectionType.ToString().Contains("尾"))
{
result.c = ContactType.Tail;
}
else if (result.e is || result.e is || result.e is _鳥 || result.e is _鳥 || result.e is _鳥 || result.e is _蝙 || result.e is _蝙 || result.e is _蝙)
{
result.c = ContactType.Wing;
}
else if (result.e is )
{
result.c = ContactType.Fin;
}
else
{
result.c = ContactType.Other;
}
}
return result;
}
}
}