public static void OnChange(Entity sender, Int32PropertyChangeEventArgs args) { var hero = sender as Hero; if (hero == null) { return; } if (hero.Team != Members.MyHero.Team || hero.IsIllusion()) { return; } if (args.PropertyName != "m_iTaggedAsVisibleByTeam") { return; } DelayAction.Add(50, () => { var visible = args.NewValue == 0x1E; var player = hero.Player; RectangleStruct st; if (!RectDictionary.TryGetValue(player, out st)) { var newRect = new Rectangle( new Vector2((float)HudInfoNew.GetTopPanelSizeX(hero), (float)HUDInfo.GetTopPanelSizeY(hero)), Clr) { Position = HudInfoNew.GetTopPanelPosition(hero) }; st = new RectangleStruct(newRect, eventArgs => newRect.Render()); RectDictionary.Add(player, st); //Log.Info($"Init new player {player.Name}({hero.GetRealName()})"); } var rect = st.Rect; var draw = st.Draw; if (visible) { if (IsEnable) { if (!rect.IsInitialized) { rect.Initialize(); rect.Color = Clr; //new ColorBGRA(0,155,255,10); Drawing.OnEndScene += draw; } } } else { if (rect.IsInitialized) { rect.Dispose(); Drawing.OnEndScene -= draw; } } }); }
private static void DrawNetWorthBar() { var startPos = HudInfoNew.GetFakeTopPanelPosition(0, Team.Radiant) + new Vector2((float)HudInfoNew.GetTopPanelSizeX() * 5, (float)HudInfoNew.GetTopPanelSizeY()); var endPos = HudInfoNew.GetFakeTopPanelPosition(5, Team.Dire); var size = new Vector2(endPos.X - startPos.X, Members.Menu.Item("netWorthBar.Size").GetValue <Slider>().Value *Percent); DrawNetWorthBarStageOne(startPos, size); }