Code:
using Turbo.Plugins.Default;
namespace Turbo.Plugins.User
{
public class LifeglobeBuffListPlugin : BasePlugin, IInGameTopPainter
{
public BuffPainter BuffPainter { get; set; }
public BuffRuleCalculator RuleCalculator { get; private set; }
public float PositionY { get; set; }
public bool Center { get; set; }
public LifeglobeBuffListPlugin()
{
Enabled = true;
PositionY = 0.83f;
Center = false;
}
public override void Load(IController hud)
{
base.Load(hud);
BuffPainter = new BuffPainter(Hud, true)
{
Opacity = 0.75f,
ShowTimeLeftNumbers = true,
ShowTooltips = false,
TimeLeftFont = Hud.Render.CreateFont("tahoma", 7, 255, 255, 255, 255, false, false, 255, 0, 0, 0, true),
StackFont = Hud.Render.CreateFont("tahoma", 6, 255, 255, 255, 255, false, false, 255, 0, 0, 0, true),
};
RuleCalculator = new BuffRuleCalculator(Hud);
RuleCalculator.SizeMultiplier = 0.75f;
//79528 Ignore Pain
RuleCalculator.Rules.Add(new BuffRule(79528)
{
IconIndex = null,
MinimumIconCount = 1,
ShowTimeLeft = true,
IconSizeMultiplier = 1.0f,
});
}
public void PaintTopInGame(ClipState clipState)
{
if (Hud.Render.UiHidden) return;
if (clipState != ClipState.BeforeClip) return;
RuleCalculator.CalculatePaintInfo(Hud.Game.Me);
if (RuleCalculator.PaintInfoList.Count == 0) return;
var y = Hud.Window.Size.Height * PositionY;
if (Center) {
BuffPainter.PaintHorizontalCenter(RuleCalculator.PaintInfoList, -(Hud.Window.Size.Width/3.8f), y, Hud.Window.Size.Width, RuleCalculator.StandardIconSize, RuleCalculator.StandardIconSpacing);
} else {
BuffPainter.PaintHorizontal(RuleCalculator.PaintInfoList, Hud.Window.Size.Width*(0.5f-1/3.8f) - RuleCalculator.StandardIconSize*0.5f, y, RuleCalculator.StandardIconSize, RuleCalculator.StandardIconSpacing);
}
}
}
}