static void Draw(EventArgs e)
{
if (!Game.IsInGame) return;
if (!Menu.Item("toggle").GetValue<bool>()) return;
try {
foreach (var v in HeroList) {
if (!v.Key.IsVisible && v.Key.IsAlive) {
if (Menu.Item("predict").GetValue<bool>())
{
Vector3 ePos = new Vector3(v.Key.NetworkPosition.X + (float)Math.Cos(v.Key.NetworkRotationRad) * v.Key.MovementSpeed * (Game.GameTime - v.Value),
v.Key.NetworkPosition.Y + (float)Math.Sin(v.Key.NetworkRotationRad) * v.Key.MovementSpeed * (Game.GameTime - v.Value),
v.Key.NetworkPosition.Z + 50);
if (v.Key.NetworkActivity != NetworkActivity.Move) ePos = v.Key.NetworkPosition;
Drawing.DrawRect(Drawing.WorldToScreen(ePos) - 25, new Vector2(50, 50), Drawing.GetTexture("materials/ensage_ui/miniheroes/" + v.Key.Name.Substring(v.Key.Name.LastIndexOf("hero_") + 5) + ".vmat"));
}
else
{
Vector3 ePos = new Vector3(v.Key.NetworkPosition.X,
v.Key.NetworkPosition.Y,
v.Key.NetworkPosition.Z);
if (v.Key.NetworkActivity != NetworkActivity.Move) ePos = v.Key.NetworkPosition;
Drawing.DrawRect(Drawing.WorldToScreen(ePos) - 25, new Vector2(50, 50), Drawing.GetTexture("materials/ensage_ui/miniheroes/" + v.Key.Name.Substring(v.Key.Name.LastIndexOf("hero_") + 5) + ".vmat"));
}
}
}
} catch (Exception) {
// Do nothing, HeroList has simply been modified during this foreach loop.
}
}