Files
SlaveMatrix-SDL/SlaveMatrix/SlaveMatrix/BodyPartClasses/TextBubble.cs
Absolutely disgusting 8e015aa5c9 Added mouse hide
2025-11-04 12:19:57 +04:00

208 lines
6.1 KiB
C#

using System;
using System.Drawing;
using System.Threading;
using System.Threading.Tasks;
using _2DGAMELIB;
namespace SlaveMatrix
{
public class TextBubble
{
public bool = true;
public ;
public Tex Tex;
public bool Dis;
public Mot ;
public Color GetHitColor => Tex.ParT.HitColor;
public string Text
{
get
{
return Tex.Text;
}
set
{
= true;
if (Dis)
{
Tex.Done = delegate
{
.Max = Tex.Text.Length * 0.125 + 1.0;
.Start();
};
}
Tex.Text = value;
}
}
public TextBubble(RenderArea Are, bool , Font Font, double TextSize, string Text, Color TextColor, Color ShadColor, Color BackColor, double Speed, bool Dis, Color FeedColor, Action<Tex> Action)
{
= new (Are.DisplayUnitScale);
.SetHitFalse();
. = ;
.CD. = new Color2(ref BackColor, ref Col.Empty);
.X0Y0_吹出しCP.Setting();
double num = 1.35;
double num2 = 0.75;
.C = Dat.Vec2DUnitY * 0.005;
.B = num * 1.1;
.YB = num2;
Tex = new Tex("Tex", Dat.Vec2DZero, 0.1, .B, 0.63 * num * num2, Font, TextSize, 25, Text, TextColor, ShadColor, Color.Transparent, Speed, FeedColor, Action);
Tex.Feed.OP.OutlineFalse();
Tex.ParT.BasePointBase = Tex.ParT.OP.GetCenter().AddY(0.04);
this.Dis = Dis;
if (Dis)
{
= false;
int pa = .X0Y0_吹出し.PenColor.A;
int ba = .X0Y0_吹出し.BrushColor.A;
int ta = TextColor.A;
int sa = ShadColor.A;
double v;
= new Mot(0.0, 1.0)
{
BaseSpeed = 1.0,
Staing = delegate
{
},
Runing = delegate(Mot m)
{
if (m.Value < m.Max - 1)
return;
v = (1 + m.Value - m.Max).Inverse();
.X0Y0_吹出し.PenColor = Color.FromArgb((int)((double)pa * v), .X0Y0_吹出し.PenColor);
.X0Y0_吹出し.BrushColor = Color.FromArgb((int)((double)ba * v), .X0Y0_吹出し.BrushColor);
Tex.ParT.TextColor = Color.FromArgb((int)((double)ta * v), Tex.ParT.TextColor);
Tex.ParT.ShadColor = Color.FromArgb((int)((double)sa * v), Tex.ParT.ShadColor);
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
= false;
.X0Y0_吹出し.PenColor = Color.FromArgb(pa, .X0Y0_吹出し.PenColor);
.X0Y0_吹出し.BrushColor = Color.FromArgb(ba, .X0Y0_吹出し.BrushColor);
Tex.ParT.TextColor = Color.FromArgb(ta, Tex.ParT.TextColor);
Tex.ParT.ShadColor = Color.FromArgb(sa, Tex.ParT.ShadColor);
}
};
}
}
public TextBubble(RenderArea Are, bool , Font Font, double TextSize, string Text, Color TextColor, Color ShadColor, Color BackColor, double Speed, bool Dis)
{
= new (Are.DisplayUnitScale);
.SetHitFalse();
. = ;
.CD. = new Color2(ref BackColor, ref Col.Empty);
.X0Y0_吹出しCP.Setting();
double num = 1.35;
double num2 = 0.75;
.C = Dat.Vec2DUnitY * 0.005;
.B = num * 1.1;
.YB = num2;
Tex = new Tex("Tex", Dat.Vec2DZero, 0.1, .B, 0.63 * num * num2, Font, TextSize, 25, Text, TextColor, ShadColor, Color.Transparent, Speed);
Tex.ParT.BasePointBase = Tex.ParT.OP.GetCenter().AddY(0.04);
this.Dis = Dis;
if (Dis)
{
= false;
int pa = .X0Y0_吹出し.PenColor.A;
int ba = .X0Y0_吹出し.BrushColor.A;
int ta = TextColor.A;
int sa = ShadColor.A;
double v;
= new Mot(0.0, 1.0)
{
BaseSpeed = 1.0,
Staing = delegate
{
},
Runing = delegate(Mot m)
{
v = m.Value.Inverse();
.X0Y0_吹出し.PenColor = Color.FromArgb((int)((double)pa * v), .X0Y0_吹出し.PenColor);
.X0Y0_吹出し.BrushColor = Color.FromArgb((int)((double)ba * v), .X0Y0_吹出し.BrushColor);
Tex.ParT.TextColor = Color.FromArgb((int)((double)ta * v), Tex.ParT.TextColor);
Tex.ParT.ShadColor = Color.FromArgb((int)((double)sa * v), Tex.ParT.ShadColor);
},
Reaing = delegate(Mot m)
{
m.End();
},
Rouing = delegate
{
},
Ending = delegate
{
= false;
.X0Y0_吹出し.PenColor = Color.FromArgb(pa, .X0Y0_吹出し.PenColor);
.X0Y0_吹出し.BrushColor = Color.FromArgb(ba, .X0Y0_吹出し.BrushColor);
Tex.ParT.TextColor = Color.FromArgb(ta, Tex.ParT.TextColor);
Tex.ParT.ShadColor = Color.FromArgb(sa, Tex.ParT.ShadColor);
}
};
}
}
public void SetHitColor(ModeEventDispatcher Med)
{
Tex.SetHitColor(Med);
}
public void (JointS )
{
.();
();
}
public void Down(Color HitColor)
{
Tex.Down(ref HitColor);
}
public void Up(Color HitColor)
{
Tex.Up(ref HitColor);
}
public void ()
{
.P();
Tex.Position = .X0Y0_吹出し.ToGlobal(.X0Y0_吹出し.JP[0].Joint);
}
public void Draw(RenderArea Are, FPS FPS)
{
Tex.Progression(FPS);
if (Dis)
{
.GetValue(FPS);
}
if ()
{
..Draw(Are);
Are.Draw(Tex.Pars);
}
}
public void Dispose()
{
.Dispose();
Tex.Dispose();
}
}
}