private static void Drawing_OnDraw(EventArgs args) { if (!Enabled) { return; } foreach ( var unit in ObjectManager.Get <Obj_AI_Hero>().Where(h => h.IsValid && h.IsHPBarRendered && h.IsEnemy)) { var barPos = unit.HPBarPosition; var damage = DamageToUnit(unit); var percentHealthAfterDamage = Math.Max(0, unit.Health - damage) / unit.MaxHealth; var champOffset = unit.ChampionName == "Jhin" ? new Vector2(-9, -16) : Vector2.Zero; var xPos = barPos.X + XOffset + champOffset.X; var xPosDamage = xPos + Width * percentHealthAfterDamage; var xPosCurrentHp = xPos + Width * unit.Health / unit.MaxHealth; var yPos = barPos.Y + YOffset + champOffset.Y; if (Killable && damage > unit.Health) { Text.X = (int)(barPos.X + XOffset + champOffset.X); Text.Y = (int)barPos.Y + YOffset + 20; Text.text = "KILLABLE"; Text.OnEndScene(); } if (Fill) { var differenceInHp = xPosCurrentHp - xPosDamage; DamageBar.Color = DamageColor.ToSharpDXColor(); DamageBar.X = (int)(barPos.X + 9 + 107 * percentHealthAfterDamage + champOffset.X); DamageBar.Y = (int)yPos - 1; DamageBar.Width = (int)Math.Round(differenceInHp); DamageBar.Height = Height + 3; DamageBar.OnEndScene(); } if (PredictedHealth) { HealthLine.Start = new Vector2(xPosDamage, yPos - 1); HealthLine.End = new Vector2(xPosDamage, yPos + Height); HealthLine.Width = 2; HealthLine.Color = HealthColor.ToSharpDXColor(); HealthLine.OnEndScene(); } } }
//[PermissionSet(SecurityAction.Assert, Unrestricted = true)] private static void Drawing_OnDraw(EventArgs args) { if (!Enabled) { return; } foreach ( var unit in ObjectManager.Get <AIHeroClient>().Where(h => h.IsValid && h.IsHPBarRendered && h.IsEnemy)) { var barPos = unit.HPBarPosition; var damage = DamageToUnit(unit); var percentHealthAfterDamage = Math.Max(0, unit.Health - damage) / unit.MaxHealth; var yPos = barPos.Y + YOffset; var xPosDamage = barPos.X + XOffset + Width * percentHealthAfterDamage; var xPosCurrentHp = barPos.X + XOffset + Width * unit.Health / unit.MaxHealth; if (Killable && damage > unit.Health) { Text.X = (int)barPos.X + XOffset; Text.Y = (int)barPos.Y + YOffset + 20; Text.text = "KILLABLE"; Text.OnEndScene(); } if (Fill) { var differenceInHp = xPosCurrentHp - xPosDamage; DamageBar.Color = DamageColor.ToBGRA(); DamageBar.X = (int)(barPos.X + 9 + (107 * percentHealthAfterDamage)); DamageBar.Y = (int)yPos - 5; DamageBar.Width = (int)Math.Round(differenceInHp); DamageBar.Height = Height + 14; DamageBar.OnEndScene(); } if (PredictedHealth) { HealthLine.Start = new Vector2(xPosDamage, yPos - 1); HealthLine.End = new Vector2(xPosDamage, yPos + Height); HealthLine.Width = 2; HealthLine.Color = HealthColor.ToBGRA(); HealthLine.OnEndScene(); } } }