/// <summary> /// The draw suicide. /// </summary> /// <param name="handle"> /// The handle. /// </param> /// <param name="health"> /// The health. /// </param> /// <param name="x"> /// The x. /// </param> /// <param name="sizey"> /// The size y. /// </param> /// <param name="sizeX"> /// The size x. /// </param> /// <param name="enabled"> /// The enabled. /// </param> /// <param name="hero"> /// The hero. /// </param> public static void DrawSuicide( uint handle, float health, double x, double sizey, double sizeX, bool enabled, Unit hero) { var suicideAttackDmg = Variables.Damage.GetSuicideDamage()[handle]; if (!(suicideAttackDmg > 0)) { return; } var dmg = health - suicideAttackDmg; var canKill = dmg <= 0; var meepo = hero as Meepo; if ((meepo == null || meepo.WhichMeepo == 0) && Variables.Menu.DrawingsMenu.Item("drawTopPanel").GetValue <bool>()) { Drawing.DrawText( canKill ? "Yes" : "No", new Vector2(canKill ? (float)(x + (sizeX / 2)) : (float)(x + (sizeX / 1.7)), (float)sizey), new Vector2(17, 17), enabled ? Color.DarkOrange : Color.DimGray, FontFlags.AntiAlias); } if (!hero.IsVisible || !hero.IsAlive) { return; } if (!Variables.Menu.DrawingsMenu.Item("drawSuicideKills").GetValue <bool>()) { return; } var screenPos = HUDInfo.GetHPbarPosition(hero); if (screenPos.X + 20 > Drawing.Width || screenPos.X - 20 < 0 || screenPos.Y + 100 > Drawing.Height || screenPos.Y - 30 < 0) { return; } var text = canKill ? "Yes" : "No " + Math.Floor(dmg); var size = new Vector2(15, 15); var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias); var position = new Vector2(screenPos.X - textSize.X - 2, screenPos.Y - 3); Drawing.DrawText( text, position, size, enabled ? (canKill ? Color.LawnGreen : Color.Red) : Color.Gray, FontFlags.AntiAlias); }
public static void OnDraw(EventArgs args) { if (!MenuManager.IsStackerEnabled || !MenuManager.IsEnable) { return; } foreach (var bomb in Core.Bombs.Where(x => x.IsRemoteMine && x.Active && x.Stacker.IsActive)) { var topPos = HUDInfo.GetHPbarPosition(bomb.Bomb); var size = new Vector2((float)HUDInfo.GetHPBarSizeX(bomb.Bomb), (float)HUDInfo.GetHpBarSizeY(bomb.Bomb)); var text = bomb.Stacker.Counter.ToString(); var textSize = Drawing.MeasureText(text, "Arial", new Vector2((float)(size.Y * 4.5f), (float)(size.Y * 4.5f)), FontFlags.AntiAlias); var textPos = topPos + new Vector2(size.X / 2 - textSize.X / 2, size.Y * 2); Drawing.DrawText( text, textPos + new Vector2(2, 2), new Vector2(textSize.Y, 0), Color.White, FontFlags.AntiAlias | FontFlags.StrikeOut); } }
/// <summary> /// The execute. /// </summary> /// <param name="hero"> /// The hero. /// </param> /// <returns> /// The <see cref="bool" />. /// </returns> public bool Execute(Hero hero) { bool cankill; if (Variables.Menu.DetonationMenu.Item("autoDetonateAegis").GetValue <bool>()) { cankill = true; } else { cankill = hero.CanDie(); } if ((Variables.Instance.Techies.EnabledHeroes.ContainsKey(hero.ClassID) && !Variables.Instance.Techies.EnabledHeroes[hero.ClassID]) || hero.IsInvul() || hero.IsMagicImmune() || hero.HasModifiers( new[] { "modifier_juggernaut_blade_fury", "modifier_ember_spirit_sleight_of_fist_caster_invulnerability" }, false) || !cankill) { return(false); } if (!Utils.SleepCheck(hero.ClassID + "Techies.AutoDetonate")) { return(false); } var tempDamage = hero.GetStackDamage(); if (!(tempDamage.Item1 >= hero.Health)) { return(false); } if (tempDamage.Item3 != null && tempDamage.Item3.AutoDetonate) { Detonate(tempDamage.Item2); Utils.Sleep(500, hero.ClassID + "Techies.AutoDetonate"); return(true); } if (tempDamage.Item3 == null || tempDamage.Item3.AutoDetonate || !Variables.Menu.DrawingsMenu.Item("Techies.ShowNotification").GetValue <bool>()) { return(false); } if (!Utils.SleepCheck("Techies.Notification." + hero.StoredName())) { return(false); } Utils.Sleep(15000, "Techies.Notification." + hero.StoredName()); if (this.notification == null) { this.notification = new Notification( 5000, new Vector2(HUDInfo.ScreenSizeX(), (float)(HUDInfo.ScreenSizeY() / 2.3)), new Vector2(HUDInfo.ScreenSizeX() / 8, HUDInfo.ScreenSizeX() / 30)); } this.notification.RemoteMines = tempDamage.Item2; this.notification.PopUp(hero); return(false); }
private static void Main() { menu = new Menu("Harass Helper", "harassHelper", true); menu.AddItem( enabledHarras = new MenuItem("enabled", "Enabled").SetValue(new KeyBind('Z', KeyBindType.Toggle))); menu.AddItem(showText = new MenuItem("showText", "Show active text").SetValue(true)); menu.AddItem( textX = new MenuItem("textX", "Text position X").SetValue(new Slider(10, 0, (int)HUDInfo.ScreenSizeX()))); menu.AddItem( textY = new MenuItem("textY", "Text position Y").SetValue( new Slider((int)(HUDInfo.ScreenSizeY() * 0.70), 0, (int)HUDInfo.ScreenSizeY()))); menu.AddItem(aggro = new MenuItem("aggro", "Aggro key").SetValue(new KeyBind(107, KeyBindType.Press))); menu.AddItem(unaggro = new MenuItem("unaggro", "Unaggro key").SetValue(new KeyBind(109, KeyBindType.Press))); menu.AddItem( aggroMove = new MenuItem("aggroMove", "Aggro move").SetValue(false) .SetTooltip("Move to mouse position when using aggro")); menu.AddItem( unaggroMove = new MenuItem("unaggroMove", "Unaggro move").SetValue(false) .SetTooltip("Move to mouse position when using unaggro")); menu.AddItem( enabledTowerUnnagro = new MenuItem("enabledTowerUnnagro", "Auto tower unnagro").SetValue( new KeyBind('X', KeyBindType.Toggle))); menu.AddItem( towerUnnagroHp = new MenuItem("towerUnnagro", "Auto tower unnagro when hp lower than").SetValue( new Slider(600, 0, 2000))); menu.AddToMainMenu(); Events.OnLoad += OnLoad; Events.OnClose += OnClose; }
public static void OnDraw(EventArgs args) { if (!Checker) { return; } var refresh = Members.System.ToList(); foreach (var heroModifier in refresh.Where(x => x.Owner == null || !x.Owner.IsValid || !x.Owner.IsAlive)) { Members.System.Remove(heroModifier); } foreach (var heroModifier in Members.System) { var target = heroModifier.Owner; var modList = heroModifier.Modifiers; var isHero = heroModifier.IsHero; var maxCounter = isHero ? Members.Menu.Item("Counter.Hero").GetValue <Slider>().Value : Members.Menu.Item("Counter.Creep").GetValue <Slider>().Value; if (isHero) { if (!Members.Menu.Item("Enable.Heroes").GetValue <bool>()) { continue; } } else { if (!Members.Menu.Item("Enable.Creeps").GetValue <bool>()) { continue; } } var counter = 0; var extra = isHero ? 0 : 5; var hudPos = HUDInfo.GetHPbarPosition(target); if (hudPos.IsZero) { continue; } var startPos = hudPos + new Vector2(0, HUDInfo.GetHpBarSizeY() * 2 + extra) + new Vector2(Members.Menu.Item("ExtraPos.X").GetValue <Slider>().Value, Members.Menu.Item("ExtraPos.Y").GetValue <Slider>().Value); var size = new Vector2(Members.Menu.Item("Settings.IconSize").GetValue <Slider>().Value, Members.Menu.Item("Settings.IconSize").GetValue <Slider>().Value); foreach (var modifier in modList.Where(x => x != null && x.IsValid && !Members.BlackList.Contains(x.Name))) { if (counter >= maxCounter) { continue; } var remTime = modifier.RemainingTime; /*if (remTime<=1) * continue;*/ var itemPos = startPos; if (DrawVerticallyIcon) { itemPos += new Vector2(2, -2 + size.X * counter); } else { itemPos += new Vector2(-2 + size.X * counter, 2); } if (DrawRoundIcon) { Drawing.DrawRect(itemPos, size, Textures.GetTexture( $"materials/ensage_ui/modifier_textures/Round/{modifier.TextureName}.vmat")); } else { Drawing.DrawRect(itemPos, size, Textures.GetTexture( $"materials/ensage_ui/modifier_textures/{modifier.TextureName}.vmat")); Drawing.DrawRect(itemPos, size, Color.Black, true); } var timer = Math.Min(remTime + 0.1, 99).ToString("0.0"); var textSize = Drawing.MeasureText(timer, "Arial", new Vector2( (float)(size.Y * Members.Menu.Item("Settings.TextSize").GetValue <Slider>().Value / 100), size.Y / 2), FontFlags.AntiAlias); var textPos = itemPos + new Vector2(0, size.Y - textSize.Y); Drawing.DrawRect(textPos - new Vector2(0, 0), new Vector2(textSize.X, textSize.Y), new Color(0, 0, 0, 200)); var clr = remTime >= 1 ? Color.White : ChangeColor ? Color.Red : Color.White; Drawing.DrawText( timer, textPos, new Vector2(textSize.Y, 0), clr, FontFlags.AntiAlias | FontFlags.StrikeOut); counter++; } } }
private void Drawing_OnDraw(EventArgs args) { if (!Game.IsInGame) { return; } if (menu.Item("hpdraw").GetValue <bool>()) { if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame) { return; } var ultLvl = me.Spellbook.SpellR.Level; var enemy = ObjectManager.GetEntities <Hero>() .Where(y => y.Team != me.Team && y.IsAlive && y.IsVisible && !y.IsIllusion) .ToList(); foreach (var x in enemy) { //Console.WriteLine(1); var health = x.Health; var maxHealth = x.MaximumHealth; var manna = (x.MaximumMana - x.Mana); var damage = Math.Floor((manna * ult[ultLvl]) * (1 - x.MagicDamageResist)); var hpleft = health; var hpperc = hpleft / maxHealth; var dmgperc = Math.Min(damage, health) / maxHealth; Vector2 hbarpos; hbarpos = HUDInfo.GetHPbarPosition(x); Vector2 screenPos; var enemyPos = x.Position + new Vector3(0, 0, x.HealthBarOffset); if (!Drawing.WorldToScreen(enemyPos, out screenPos)) { continue; } var start = screenPos; hbarpos.X = start.X + (HUDInfo.GetHPBarSizeX(x) / 2); hbarpos.Y = start.Y; var hpvarx = hbarpos.X; var hpbary = hbarpos.Y; float a = (float)Math.Round((damage * HUDInfo.GetHPBarSizeX(x)) / (x.MaximumHealth)); var position = hbarpos - new Vector2(a, 32 * scaleY); //Console.WriteLine("damage" + damage.ToString()); try { float left = (float)Math.Round(damage / 7); Drawing.DrawRect( position, new Vector2(a, (float)(HUDInfo.GetHpBarSizeY(x))), (x.Health > 0) ? new Color(150, 225, 150, 80) : new Color(70, 225, 150, 225)); Drawing.DrawRect(position, new Vector2(a, (HUDInfo.GetHpBarSizeY(x))), Color.Black, true); } catch (Exception v) { Console.WriteLine(v.Message); } } } }
public static void Init() { Effects.Clear(); _shrineList.Clear(); _sleeper = new Sleeper(); _abilityDictinart = new Dictionary <uint, Ability>(); if (_firstTime) { _firstTime = false; _shrineList = ObjectManager.GetEntities <Unit>() .Where(x => x.IsValid && x.IsAlive && x.ClassId == SrineClass && x.Team == Members.MyPlayer.Team) .ToList(); Entity.OnInt32PropertyChange += (sender, args) => { var me = sender as Unit; if (me?.ClassId == SrineClass) { if (args.PropertyName == "m_iTaggedAsVisibleByTeam") { //22 not vis //30 under vis var newValue = args.NewValue; var oldValue = args.OldValue; if (newValue != oldValue && newValue == 30) { } } } }; Game.OnUpdate += args => { if (_sleeper.Sleeping) { return; } _sleeper.Sleep(100); if (Enable) { foreach (var v in _shrineList) { var dist = v.Distance2D(Members.MyHero); if (dist <= 700 && v.CheckForAbility()) { HandleEffect(v); } else { UnHandleEffect(v); } } } else { if (Effects.Any()) { Effects.ToDictionary(x => x.Key, y => y.Value).ForEach(x => UnHandleEffect(x.Key)); } } }; Drawing.OnDraw += args => { if (Draw || IsNumsEnable) { foreach (var v in _shrineList) { var pos = HUDInfo.GetHPbarPosition(v); if (pos.IsZero) { continue; } var filler = v.GetFiller(); if (filler == null || filler.AbilityState == AbilityState.Ready) { continue; } var cd = filler.Cooldown; var cdLength = filler.CooldownLength; var hpBarSize = HUDInfo.GetHPBarSizeX(); var size = new Vector2(hpBarSize * 2, BarSize); var buff = v.FindModifier("modifier_filler_heal_aura"); var isBuff = buff != null; var remTine = buff?.RemainingTime; var cdDelta = isBuff ? buff.RemainingTime * size.X / 5 : cd * size.X / cdLength; pos += new Vector2(-hpBarSize / 2, hpBarSize * 1.5f); if (Draw) { Drawing.DrawRect(pos, new Vector2(size.X, size.Y), Color.Black); Drawing.DrawRect(pos, new Vector2(isBuff ? cdDelta : size.X - cdDelta, size.Y), isBuff ? Color.Orange : Color.YellowGreen); Drawing.DrawRect(pos, new Vector2(size.X, size.Y), Color.Black, true); } if (IsNumsEnable) { var text = isBuff ? $"{(int) (remTine/5*100)}%" : $"{(int) (100 - cd/cdLength*100)}%"; var textSize = Drawing.MeasureText(text, "Arial", new Vector2((float)(size.Y * DigSize), size.Y / 2), FontFlags.AntiAlias); var textPos = pos + new Vector2(size.X / 2 - textSize.X / 2, size.Y - textSize.Y); /*Drawing.DrawRect(textPos - new Vector2(0, 0), * new Vector2(textSize.X, textSize.Y), * new Color(0, 0, 0, 200));*/ Drawing.DrawText( text, textPos, new Vector2(textSize.Y, 0), Color.White, FontFlags.AntiAlias | FontFlags.StrikeOut); } } } }; ObjectManager.OnRemoveEntity += args => { var shrine = args.Entity; if (shrine.ClassId == SrineClass) { _shrineList.Remove(shrine as Unit); } }; } }
private static void DrawUltiDamage(EventArgs args) { DrawingOnCore(); enemies = ObjectManager.GetEntities <Hero>() .Where(x => x.IsVisible && x.IsAlive && x.Team != me.Team && !x.IsMagicImmune() && !x.IsIllusion).ToList(); if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame || enemies.Count == 0) { return; } if (Menu.Item("dmg").IsActive()) { foreach (var v in enemies) { damage[v.Handle] = (float)CalculateDamage(v); var useMana = CalculateMana(v); //Console.WriteLine("useMana" + useMana); var screenPos = HUDInfo.GetHPbarPosition(v); if (!OnScreen(v.Position)) { continue; } var travelSpeed = R.GetAbilityData("ball_lightning_move_speed", R.Level); var travelTime = me.Distance2D(v) / travelSpeed; var distance = v.IsMoving ? me.Distance2D(v.Predict(travelTime)) : me.Distance2D(v); var startManaCost = R.GetAbilityData("ball_lightning_initial_mana_base") + me.MaximumMana / 100 * R.GetAbilityData("ball_lightning_initial_mana_percentage"); var costPerUnit = (12 + me.MaximumMana * 0.007) / 100.0; var rManacost = startManaCost + costPerUnit * Math.Floor(distance / 100) * 100; var text1 = v.Health <= damage[v.Handle] ? "✔ Damage:" + Math.Floor(damage[v.Handle]) : "✘ Damage:" + (int)Math.Floor(damage[v.Handle]); var text2 = me.Mana >= useMana ? "✔ Mana:" + (int)Math.Floor(useMana) : "✘ Mana:" + (int)Math.Floor(useMana); var text3 = me.Mana >= rManacost ? "✔ Distance:" + (int)me.Distance2D(v) : "✘ Distance:" + (int)me.Distance2D(v); var size = new Vector2(15, 15); var textSize1 = Drawing.MeasureText(text1, "Comic Sans MS", size, FontFlags.DropShadow);//"Arial" "Cursive""Comic Sans MS" var textSize2 = Drawing.MeasureText(text2, "Comic Sans MS", size, FontFlags.DropShadow); var textSize3 = Drawing.MeasureText(text3, "Comic Sans MS", size, FontFlags.DropShadow); var position1 = new Vector2(screenPos.X + 65, screenPos.Y + 12); var position2 = new Vector2(screenPos.X + 65, screenPos.Y + 24); var position3 = new Vector2(screenPos.X + 65, screenPos.Y + 36); Drawing.DrawText( text1, new Vector2(screenPos.X + 64, screenPos.Y + 13), size, Color.Black, FontFlags.DropShadow); Drawing.DrawText( text1, position1, size, v.Health <= damage[v.Handle] ? Color.LawnGreen : Color.OrangeRed, FontFlags.DropShadow); Drawing.DrawText( text2, new Vector2(screenPos.X + 64, screenPos.Y + 25), size, Color.Black, FontFlags.DropShadow); Drawing.DrawText( text2, position2, size, me.Mana >= useMana ? Color.LawnGreen : Color.OrangeRed, FontFlags.DropShadow); Drawing.DrawText( text3, new Vector2(screenPos.X + 64, screenPos.Y + 37), size, Color.Black, FontFlags.DropShadow); Drawing.DrawText( text3, position3, size, me.Mana >= rManacost ? Color.LawnGreen : Color.OrangeRed, FontFlags.DropShadow); } } } // DrawUltiDamage::END
public TargetFind() { this.sleeper = new Sleeper(); this.heroIcon = Drawing.GetTexture("materials/ensage_ui/miniheroes/lone_druid"); this.iconSize = new Vector2(HUDInfo.GetHpBarSizeY() * 2); }
public static Vector2 GetTopPanelPosition(Hero _Unit) { if (_TopPanelPoses.ContainsKey(_Unit.ClassId)) { return(_TopPanelPoses[_Unit.ClassId]); } else { var _Pos = HUDInfo.GetTopPanelPosition(_Unit) + new Vector2(0, (float)HUDInfo.GetTopPanelSizeX(_Unit)); _TopPanelPoses.Add(_Unit.ClassId, _Pos); return(_Pos); } }
private void OnDraw(EventArgs args) { if (Menu.TextItem) { var setPosText = new Vector2(Config.Screen.X - Menu.TextXItem - 10, Menu.TextYItem - 70); var posText = new Vector2(Config.Screen.X, Config.Screen.Y * 0.65f) - setPosText; var combo = Menu.ComboKeyItem; Text($"Combo { (combo ? "ON" : "OFF") }", posText, combo ? Color.Aqua : Color.Yellow); var startCombo = Menu.StartComboKeyItem; Text($"Start Mute { (startCombo ? "ON" : "OFF") }", posText + new Vector2(0, 30), startCombo ? Color.Aqua : Color.Yellow); var ownerHealth = ((float)Owner.Health / Owner.MaximumHealth) * 100; var autoArcaneBolt = !combo && !Menu.SpamArcaneBoltKeyItem && Menu.AutoArcaneBoltKeyItem && Menu.AutoArcaneBoltOwnerMinHealthItem <= ownerHealth; Text($"Auto Q { (autoArcaneBolt ? "ON" : "OFF") }", posText + new Vector2(0, 60), autoArcaneBolt ? Color.Aqua : Color.Yellow); if (Menu.AutoComboItem) { var autoCombo = !Menu.AutoComboWhenComboItem || !combo && Menu.AutoOwnerMinHealthItem <= ownerHealth; Text($"Auto Combo { (autoCombo ? "ON" : "OFF") }", posText + new Vector2(0, 90), autoCombo ? Color.Aqua : Color.Yellow); } } var i = 0; foreach (var data in Config.DamageCalculation.DamageList) { var target = data.GetTarget; var health = data.GetHealth; var damage = data.GetDamage; var readyDamage = data.GetReadyDamage; if (Menu.HPBarCalculationItem) { var hpBarPosition = HUDInfo.GetHPbarPosition(target); if (!hpBarPosition.IsZero) { var hpBarSizeX = HUDInfo.GetHPBarSizeX(target); var hpBarSizeY = HUDInfo.GetHpBarSizeY(target) / 1.7f; var hpBarPos = hpBarPosition + new Vector2(0, hpBarSizeY * (Menu.HPBarCalculationPosItem / 70f)); var readyDamageBar = Math.Max(readyDamage, 0) / target.MaximumHealth; if (readyDamageBar > 0) { var readyDamagePos = Math.Max(health - readyDamage, 0) / target.MaximumHealth; var readyDamagePosition = new Vector2(hpBarPos.X + ((hpBarSizeX + readyDamageBar) * readyDamagePos), hpBarPos.Y); var readyDamageSize = new Vector2(hpBarSizeX * (readyDamageBar + Math.Min(health - readyDamage, 0) / target.MaximumHealth), hpBarSizeY); var readyDamageColor = ((float)health / target.MaximumHealth) - readyDamageBar > 0 ? new Color(100, 0, 0, 200) : new Color(191, 255, 0, 200); Drawing.DrawRect(readyDamagePosition, readyDamageSize, readyDamageColor); Drawing.DrawRect(readyDamagePosition, readyDamageSize, Color.Black, true); } var damageBar = Math.Max(damage, 0) / target.MaximumHealth; if (damageBar > 0) { var damagePos = Math.Max(health - damage, 0) / target.MaximumHealth; var damagePosition = new Vector2(hpBarPos.X + ((hpBarSizeX + damageBar) * damagePos), hpBarPos.Y); var damageSize = new Vector2(hpBarSizeX * (damageBar + Math.Min(health - damage, 0) / target.MaximumHealth), hpBarSizeY); var damageColor = ((float)health / target.MaximumHealth) - damageBar > 0 ? new Color(0, 255, 0) : Color.Aqua; Drawing.DrawRect(damagePosition, damageSize, damageColor); Drawing.DrawRect(damagePosition, damageSize, Color.Black, true); } } } if (Menu.CalculationItem) { var setPosTexture = new Vector2(Config.Screen.X - Menu.CalculationXItem - 20, Menu.CalculationYItem - 110); var posTexture = new Vector2(Config.Screen.X, Config.Screen.Y * 0.65f + i) - setPosTexture; var doNotKill = DoNotKill(target); Texture(posTexture + 5, new Vector2(55), $"heroes_round/{ target.Name.Substring("npc_dota_hero_".Length) }"); Texture(posTexture, new Vector2(65), "other/round_percentage/frame/white"); if (!target.IsVisible) { var hp = Math.Ceiling((float)health / target.MaximumHealth * 100); Texture(posTexture, new Vector2(65), $"other/round_percentage/hp/{ Math.Min(hp, 100) }"); if (doNotKill != null) { Texture(posTexture + new Vector2(42, 45), new Vector2(20), $"modifier_textures/round/{ doNotKill }"); } i += 80; continue; } var totalDamage = data.GetTotalDamage; var maxHealth = target.MaximumHealth + (health - target.MaximumHealth); var damagePercent = Math.Ceiling(100 - (health - Math.Max(damage, 0)) / maxHealth * 100); var readyDamagePercent = Math.Ceiling(100 - (health - Math.Max(readyDamage, 0)) / maxHealth * 100); var totalDamagePercent = Math.Ceiling(100 - (health - Math.Max(totalDamage, 0)) / maxHealth * 100); if (damagePercent >= 100) { Texture(posTexture - 10, new Vector2(85), $"other/round_percentage/alert/{ Alert() }"); } Texture(posTexture, new Vector2(65), $"other/round_percentage/no_percent_gray/{ Math.Min(totalDamagePercent, 100) }"); Texture(posTexture, new Vector2(65), $"other/round_percentage/no_percent_yellow/{ Math.Min(readyDamagePercent, 100) }"); var color = damagePercent >= 100 ? "green" : "red"; Texture(posTexture, new Vector2(65), $"other/round_percentage/{ color }/{ Math.Min(damagePercent, 100) }"); if (damagePercent >= 100) { Texture(posTexture, new Vector2(65), $"other/round_percentage/no_percent_gray/{ Math.Min(damagePercent - 100, 100) }"); } if (doNotKill != null) { Texture(posTexture + new Vector2(42, 45), new Vector2(20), $"modifier_textures/round/{ doNotKill }"); } i += 80; } } }
public HUDInfo(HUDInfo a_Copy) { m_HUDType = a_Copy.m_HUDType; m_PrefPath = a_Copy.m_PrefPath; m_lElementLoc = new List <ObjLocation>(a_Copy.m_lElementLoc); }
private static void HeroOnOnModifierAdded(Unit sender, ModifierChangedEventArgs args) { //Invoker Sun Strike if (args.Modifier.Name.Contains("modifier_invoker_sun_strike") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("invoker_sun_strike").GetValue <bool>()) { if (MenuManager.Menu.Item("invoker_sun_strike_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("invoker", "invoker_sun_strike"); } if (MenuManager.Menu.Item("invoker_sun_strike_sound").GetValue <bool>()) { Sound.PlaySound("invoker_sun_strike_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("invoker_sun_strike_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); HeroColor = "npc_dota_hero_invoker"; Helper.Hero(); } } //Kunkka Torrent if (args.Modifier.Name.Contains("modifier_kunkka_torrent_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("kunkka_torrent").GetValue <bool>()) { if (MenuManager.Menu.Item("kunkka_torrent_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("kunkka", "kunkka_torrent"); } if (MenuManager.Menu.Item("kunkka_torrent_sound").GetValue <bool>()) { Sound.PlaySound("default_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("kunkka_torrent_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); HeroColor = "npc_dota_hero_kunkka"; Helper.Hero(); } } //Monkey King Primal Spring if (args.Modifier.Name.Contains("modifier_monkey_king_spring_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("monkey_king_primal_spring").GetValue <bool>()) { if (MenuManager.Menu.Item("monkey_king_primal_spring_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("monkey_king", "monkey_king_primal_spring"); } if (MenuManager.Menu.Item("monkey_king_primal_spring_sound").GetValue <bool>()) { Sound.PlaySound("default_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("monkey_king_primal_spring_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); HeroColor = "npc_dota_hero_monkey_king"; Helper.Hero(); } } //Radar if (args.Modifier.Name.Contains("modifier_radar_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("radar_scan").GetValue <bool>()) { if (MenuManager.Menu.Item("radar_scan_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("radar", "radar_scan"); } if (MenuManager.Menu.Item("radar_scan_sound").GetValue <bool>()) { Sound.PlaySound("radar_scan_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("radar_scan_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); Helper.Item(); } } if (!(sender is Hero)) { return; } if (sender.IsIllusion) { return; } string index; if (sender.Team == me.Team) { //Ignor Ally TP if (args.Modifier.Name.Contains("modifier_teleporting")) { IgnorAllyTP = false; } //Spirit Breaker Charge of Darkness if (args.Modifier.Name.Contains("modifier_spirit_breaker_charge_of_darkness_vision") && MenuManager.Menu.Item("spirit_breaker_charge_of_darkness").GetValue <bool>()) { if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_msg").GetValue <bool>()) { MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "spirit_breaker_charge_of_darkness"); } if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_sound").GetValue <bool>()) { Sound.PlaySound("spirit_breaker_charge_of_darkness_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_minimap_end").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); HeroColor = "npc_dota_hero_spirit_breaker"; Helper.Hero(); } } //Shadow Fiend Dark Lord if (args.Modifier.Name.Contains("modifier_nevermore_presence") && HeroChecker.Nevermore_IsHere && Utils.SleepCheck("nevermore_dark_lord") && MenuManager.Menu.Item("nevermore_dark_lord").GetValue <bool>()) { if (MenuManager.Menu.Item("nevermore_dark_lord_msg").GetValue <bool>()) { MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "nevermore_dark_lord"); } if (MenuManager.Menu.Item("nevermore_dark_lord_sound").GetValue <bool>()) { Sound.PlaySound("default_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(5000, "nevermore_dark_lord"); } //Sniper Assassinate if (args.Modifier.Name.Contains("modifier_sniper_assassinate") && MenuManager.Menu.Item("sniper_assassinate").GetValue <bool>()) { if (MenuManager.Menu.Item("sniper_assassinate_msg").GetValue <bool>()) { MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "sniper_assassinate"); } if (MenuManager.Menu.Item("sniper_assassinate_sound").GetValue <bool>()) { Sound.PlaySound("sniper_assassinate_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("sniper_assassinate_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); HeroColor = "npc_dota_hero_sniper"; Helper.Hero(); } } //Bounty Hunter Track if (args.Modifier.Name.Contains("modifier_bounty_hunter_track") && HeroChecker.Bounty_Hunter_IsHere && MenuManager.Menu.Item("bounty_hunter_track").GetValue <bool>()) { if (MenuManager.Menu.Item("bounty_hunter_track_msg").GetValue <bool>()) { MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "bounty_hunter_track"); } if (MenuManager.Menu.Item("bounty_hunter_track_sound").GetValue <bool>()) { Sound.PlaySound("bounty_hunter_track_" + Addition[GetLangId] + ".wav"); } } //Invoker Ghost Walk if (args.Modifier.Name.Contains("modifier_invoker_ghost_walk_enemy") && Utils.SleepCheck("invoker_ghost_walk") && MenuManager.Menu.Item("invoker_ghost_walk").GetValue <bool>()) { if (MenuManager.Menu.Item("invoker_ghost_walk_msg").GetValue <bool>()) { MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "invoker_ghost_walk"); } if (MenuManager.Menu.Item("invoker_ghost_walk_sound").GetValue <bool>()) { Sound.PlaySound("invoker_ghost_walk_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(3000, "invoker_ghost_walk"); } //Bloodseeker Thirst if (args.Modifier.Name.Contains("modifier_bloodseeker_thirst_vision") && Utils.SleepCheck("bloodseeker_thirst") && MenuManager.Menu.Item("bloodseeker_thirst").GetValue <bool>()) { if (MenuManager.Menu.Item("bloodseeker_thirst_msg").GetValue <bool>()) { MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "bloodseeker_thirst"); } if (MenuManager.Menu.Item("bloodseeker_thirst_sound").GetValue <bool>()) { Sound.PlaySound("bloodseeker_thirst_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("bloodseeker_thirst_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); HeroColor = "npc_dota_hero_bloodseeker"; Helper.Hero(); } Utils.Sleep(10000, "bloodseeker_thirst"); } } else { //Rune Haste if (args.Modifier.Name.Contains("modifier_rune_haste") && Utils.SleepCheck("rune_haste") && MenuManager.Menu.Item("rune_haste").GetValue <bool>()) { if (MenuManager.Menu.Item("rune_haste_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageRuneCreator(index, "rune_haste"); } if (MenuManager.Menu.Item("rune_haste_sound").GetValue <bool>()) { Sound.PlaySound("rune_haste_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(10000, "rune_haste"); } //Rune Regen if (args.Modifier.Name.Contains("modifier_rune_regen") && Utils.SleepCheck("rune_regen") && MenuManager.Menu.Item("rune_regen").GetValue <bool>()) { if (MenuManager.Menu.Item("rune_regen_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageRuneCreator(index, "rune_regen"); } if (MenuManager.Menu.Item("rune_regen_sound").GetValue <bool>()) { Sound.PlaySound("rune_regen_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(10000, "rune_regen"); } //Rune Arcane if (args.Modifier.Name.Contains("modifier_rune_arcane") && Utils.SleepCheck("rune_arcane") && MenuManager.Menu.Item("rune_arcane").GetValue <bool>()) { if (MenuManager.Menu.Item("rune_arcane_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageRuneCreator(index, "rune_arcane"); } if (MenuManager.Menu.Item("rune_arcane_sound").GetValue <bool>()) { Sound.PlaySound("default_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(10000, "rune_arcane"); } //Rune Doubledamage if (args.Modifier.Name.Contains("modifier_rune_doubledamage") && Utils.SleepCheck("rune_doubledamage") && MenuManager.Menu.Item("rune_doubledamage").GetValue <bool>()) { if (MenuManager.Menu.Item("rune_doubledamage_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageRuneCreator(index, "rune_doubledamage"); } if (MenuManager.Menu.Item("rune_doubledamage_sound").GetValue <bool>()) { Sound.PlaySound("rune_doubledamage_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(10000, "rune_doubledamage"); } //Rune Invis if (args.Modifier.Name.Contains("modifier_rune_invis") && Utils.SleepCheck("rune_invis") && MenuManager.Menu.Item("rune_invis").GetValue <bool>()) { if (MenuManager.Menu.Item("rune_invis_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageRuneCreator(index, "rune_invis"); } if (MenuManager.Menu.Item("rune_invis_sound").GetValue <bool>()) { Sound.PlaySound("rune_invis_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(3000, "rune_invis"); } //Shadow Blade if (args.Modifier.Name.Contains("modifier_item_invisibility_edge_windwalk") && Utils.SleepCheck("invis_sword") && MenuManager.Menu.Item("invis_sword").GetValue <bool>()) { if (MenuManager.Menu.Item("invis_sword_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageItemCreator(index, "invis_sword"); } if (MenuManager.Menu.Item("invis_sword_sound").GetValue <bool>()) { Sound.PlaySound("invis_sword_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("invis_sword_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); Helper.Item(); } Utils.Sleep(3000, "invis_sword"); } //Shadow Amulet if (args.Modifier.Name.Contains("modifier_item_shadow_amulet_fade") && Utils.SleepCheck("shadow_amulet") && MenuManager.Menu.Item("shadow_amulet").GetValue <bool>()) { if (MenuManager.Menu.Item("shadow_amulet_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageItemCreator(index, "shadow_amulet"); } if (MenuManager.Menu.Item("shadow_amulet_sound").GetValue <bool>()) { Sound.PlaySound("shadow_amulet_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("shadow_amulet_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); Helper.Item(); } Utils.Sleep(3000, "shadow_amulet"); } //Glimmer Cape if (args.Modifier.Name.Contains("modifier_item_glimmer_cape_fade") && Utils.SleepCheck("glimmer_cape") && MenuManager.Menu.Item("glimmer_cape").GetValue <bool>()) { if (MenuManager.Menu.Item("glimmer_cape_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageItemCreator(index, "glimmer_cape"); } if (MenuManager.Menu.Item("glimmer_cape_sound").GetValue <bool>()) { Sound.PlaySound("glimmer_cape_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("glimmer_cape_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); Helper.Item(); } Utils.Sleep(3000, "glimmer_cape"); } //Silver Edge if (args.Modifier.Name.Contains("modifier_item_silver_edge_windwalk") && Utils.SleepCheck("silver_edge") && MenuManager.Menu.Item("silver_edge").GetValue <bool>()) { if (MenuManager.Menu.Item("silver_edge_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageItemCreator(index, "silver_edge"); } if (MenuManager.Menu.Item("silver_edge_sound").GetValue <bool>()) { Sound.PlaySound("silver_edge_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("silver_edge_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position); Helper.Item(); } Utils.Sleep(3000, "silver_edge"); } //Gem of True Sight if (args.Modifier.Name.Contains("modifier_item_gem_of_true_sight") && Utils.SleepCheck("gem") && MenuManager.Menu.Item("gem").GetValue <bool>()) { if (MenuManager.Menu.Item("gem_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageItemCreator(index, "gem"); } if (MenuManager.Menu.Item("gem_sound").GetValue <bool>()) { Sound.PlaySound("default_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(15000, "gem"); } //Divine Rapier if (args.Modifier.Name.Contains("modifier_item_divine_rapier") && Utils.SleepCheck("rapier") && MenuManager.Menu.Item("rapier").GetValue <bool>()) { if (MenuManager.Menu.Item("rapier_msg").GetValue <bool>()) { index = sender.Name.Remove(0, 14); MessageCreator.MessageItemCreator(index, "rapier"); } if (MenuManager.Menu.Item("rapier_sound").GetValue <bool>()) { Sound.PlaySound("default_" + Addition[GetLangId] + ".wav"); } Utils.Sleep(15000, "rapier"); } } }
public static void OnParticleEvent(Entity hero, ParticleEffectAddedEventArgs args) { //Smoke of Deceit if (args.Name.Contains("smoke_of_deceit") && Utils.SleepCheck("smoke_of_deceit") && MenuManager.Menu.Item("smoke_of_deceit").GetValue <bool>()) { DelayAction.Add(50, () => { var anyAllyWithSmokeEffect = Heroes.GetByTeam(me.Team).Any(x => x.HasModifier("modifier_smoke_of_deceit")); if (!anyAllyWithSmokeEffect) { if (MenuManager.Menu.Item("smoke_of_deceit_msg").GetValue <bool>()) { MessageCreator.MessageItemCreator("default2", "smoke_of_deceit"); } if (MenuManager.Menu.Item("smoke_of_deceit_sound").GetValue <bool>()) { Sound.PlaySound("item_smoke_of_deceit_" + Addition[GetLangId] + ".wav"); } if (MenuManager.Menu.Item("smoke_of_deceit_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); Helper.Item(); } Utils.Sleep(5000, "smoke_of_deceit"); } }); } //Ancient Apparition Ice Blast if (args.Name.Contains("ancient_apparition_ice_blast_final") && HeroChecker.Ancient_Apparition_IsHere && MenuManager.Menu.Item("ancient_apparition_ice_blast").GetValue <bool>()) { if (MenuManager.Menu.Item("ancient_apparition_ice_blast_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("ancient_apparition", "ancient_apparition_ice_blast"); } if (MenuManager.Menu.Item("ancient_apparition_ice_blast_sound").GetValue <bool>()) { Sound.PlaySound("ancient_apparition_ice_blast_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("ancient_apparition_ice_blast_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_ancient_apparation"; Helper.Hero(); } }); } //Mirana Moonlight Shadow if (args.Name.Contains("mirana_moonlight_cast") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("mirana_invis").GetValue <bool>()) { if (MenuManager.Menu.Item("mirana_invis_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("mirana", "mirana_invis"); } if (MenuManager.Menu.Item("mirana_invis_sound").GetValue <bool>()) { Sound.PlaySound("moonlight_shadow_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("mirana_invis_minimap_mirana").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_mirana"; Helper.Hero(); } }); } //Mirana Moonlight Shadow All Mini Map Heroes if (args.Name.Contains("mirana_moonlight_recipient") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("mirana_invis").GetValue <bool>()) { DelayAction.Add(50, () => { if (MenuManager.Menu.Item("mirana_invis_minimap_all_heroes").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_mirana"; Helper.Hero(); } }); } //Sandking Epicenter if (args.Name.Contains("sandking_epicenter") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("sandking_epicenter").GetValue <bool>()) { if (MenuManager.Menu.Item("sandking_epicenter_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("sand_king", "sandking_epicenter"); } if (MenuManager.Menu.Item("sandking_epicenter_sound").GetValue <bool>()) { Sound.PlaySound("default_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("sandking_epicenter_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_sand_king"; Helper.Hero(); } }); } //Nature's Prophet Teleportation Start if (args.Name.Contains("furion_teleport") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("furion_teleportation").GetValue <bool>()) { FurionFix = true; if (MenuManager.Menu.Item("furion_teleportation_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("furion", "furion_teleportation"); } if (MenuManager.Menu.Item("furion_teleportation_sound").GetValue <bool>()) { Sound.PlaySound("furion_teleportation_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("furion_teleportation_minimap_start").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = ("npc_dota_hero_furion"); Helper.Hero(); FurionFix = false; } }); } //Nature's Prophet Teleportation End if (args.Name.Contains("furion_teleport_end") && HeroChecker.Furion_IsHere && MenuManager.Menu.Item("furion_teleportation").GetValue <bool>()) { DelayAction.Add(50, () => { if (MenuManager.Menu.Item("furion_teleportation_minimap_end").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(1)); HeroColor = "npc_dota_hero_furion"; DrawingMiniMap.NamePositionSpell.Add(MiniMapPosition); DrawingMiniMap.HeroNameSpell = ("Nature's Prophet"); DrawingMiniMap.HeroNamePosSpell = (int)(("Nature's Prophet").Length * 3.84f); DrawingMiniMap.HeroNameColorSpell = Color.Red; DrawingMiniMap.Remover2(MiniMapPosition); Helper.Hero(); } }); } //Nature's Prophet Wrath of Nature if (args.Name.Contains("furion_wrath_of_nature") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("furion_wrath_of_nature").GetValue <bool>()) { if (MenuManager.Menu.Item("furion_wrath_of_nature_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("furion", "furion_wrath_of_nature"); } if (MenuManager.Menu.Item("furion_wrath_of_nature_sound").GetValue <bool>()) { Sound.PlaySound("furion_wrath_of_nature_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("furion_wrath_of_nature_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_furion"; Helper.Hero(); } }); } //Alchemist Unstable Concoction if (args.Name.Contains("alchemist_unstableconc") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("alchemist_unstable_concoction").GetValue <bool>()) { if (MenuManager.Menu.Item("alchemist_unstable_concoction_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("alchemist", "alchemist_unstable_concoction"); } if (MenuManager.Menu.Item("alchemist_unstable_concoction_sound").GetValue <bool>()) { Sound.PlaySound("unstable_concoction_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("alchemist_unstable_concoction_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_alchemist"; Helper.Hero(); } }); } //Bounty Hunter Shadow Walk if (args.Name.Contains("bounty_hunter_windwalk") && HeroChecker.Bounty_Hunter_IsHere && MenuManager.Menu.Item("bounty_hunter_wind_walk").GetValue <bool>()) { if (MenuManager.Menu.Item("bounty_hunter_wind_walk_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("bounty_hunter", "bounty_hunter_wind_walk"); } if (MenuManager.Menu.Item("bounty_hunter_wind_walk_sound").GetValue <bool>()) { Sound.PlaySound("bounty_hunter_wind_walk_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("bounty_hunter_wind_walk_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_bounty_hunter"; Helper.Hero(); } }); } //Clinkz Skeleton Walk if (args.Name.Contains("clinkz_windwalk") && HeroChecker.Clinkz_IsHere && MenuManager.Menu.Item("clinkz_wind_walk").GetValue <bool>()) { if (MenuManager.Menu.Item("clinkz_wind_walk_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("clinkz", "clinkz_wind_walk"); } if (MenuManager.Menu.Item("clinkz_wind_walk_sound").GetValue <bool>()) { Sound.PlaySound("clinkz_wind_walk_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("clinkz_wind_walk_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_clinkz"; Helper.Hero(); } }); } //Nyx Assassin Vendetta if (args.Name.Contains("nyx_assassin_vendetta_start") && HeroChecker.Nyx_Assassin_IsHere && MenuManager.Menu.Item("nyx_assassin_vendetta").GetValue <bool>()) { if (MenuManager.Menu.Item("nyx_assassin_vendetta_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("nyx_assassin", "nyx_assassin_vendetta"); } if (MenuManager.Menu.Item("nyx_assassin_vendetta_sound").GetValue <bool>()) { Sound.PlaySound("nyx_assassin_vendetta_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("nyx_assassin_vendetta_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_nyx_assassin"; Helper.Hero(); } }); } //Wisp Relocate Start if (args.Name.Contains("wisp_relocate_channel") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("wisp_relocate").GetValue <bool>()) { if (MenuManager.Menu.Item("wisp_relocate_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("wisp", "wisp_relocate"); } if (MenuManager.Menu.Item("wisp_relocate_sound").GetValue <bool>()) { Sound.PlaySound("wisp_relocate_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("wisp_relocate_minimap_start").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_wisp"; Helper.Hero(); } }); } //Wisp Relocate End if (args.Name.Contains("wisp_relocate_marker_endpoint") && HeroChecker.Wisp_IsHere && MenuManager.Menu.Item("wisp_relocate").GetValue <bool>()) { DelayAction.Add(50, () => { if (MenuManager.Menu.Item("wisp_relocate_minimap_end").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_wisp"; Helper.Hero(); } }); } //Morphling Replicate if (args.Name.Contains("morphling_replicate") && HeroChecker.Morphling_IsHere && MenuManager.Menu.Item("morphling_replicate").GetValue <bool>()) { if (MenuManager.Menu.Item("morphling_replicate_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("morphling", "morphling_replicate"); } if (MenuManager.Menu.Item("morphling_replicate_sound").GetValue <bool>()) { Sound.PlaySound("morphling_replicate_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("morphling_replicate_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_wisp"; Helper.Hero(); } }); } //Troll Warlord Battle Trance if (args.Name.Contains("troll_warlord_battletrance_cast") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("troll_warlord_battle_trance").GetValue <bool>()) { if (MenuManager.Menu.Item("troll_warlord_battle_trance_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("troll_warlord", "troll_warlord_battle_trance"); } if (MenuManager.Menu.Item("troll_warlord_battle_trance_sound").GetValue <bool>()) { Sound.PlaySound("troll_warlord_battle_trance_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("troll_warlord_battle_trance_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_troll_warlord"; Helper.Hero(); } }); } //Ursa Enrage if (args.Name.Contains("ursa_enrage_buff") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("ursa_enrage").GetValue <bool>()) { if (MenuManager.Menu.Item("ursa_enrage_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("ursa", "ursa_enrage"); } if (MenuManager.Menu.Item("ursa_enrage_sound").GetValue <bool>()) { Sound.PlaySound("ursa_enrage_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("ursa_enrage_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_ursa"; Helper.Hero(); } }); } //Spirit Breaker Charge Start if (args.Name.Contains("spirit_breaker_charge_start") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("spirit_breaker_charge_of_darkness").GetValue <bool>()) { DelayAction.Add(50, () => { if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_minimap_start").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0)); HeroColor = "npc_dota_hero_spirit_breaker"; Helper.Hero(); } }); } //Monkey King Tree Dance if (args.Name.Contains("monkey_king_jump_trail") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("monkey_king_tree_dance").GetValue <bool>()) { if (MenuManager.Menu.Item("monkey_king_tree_dance_msg").GetValue <bool>()) { MessageCreator.MessageEnemyCreator("monkey_king", "monkey_king_tree_dance"); } if (MenuManager.Menu.Item("monkey_king_tree_dance_sound").GetValue <bool>()) { Sound.PlaySound("default_" + Addition[GetLangId] + ".wav"); } DelayAction.Add(50, () => { if (MenuManager.Menu.Item("monkey_king_tree_dance_minimap").GetValue <bool>()) { MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(1)); HeroColor = "npc_dota_hero_monkey_king"; Helper.Hero(); } }); } }
private static void Drawing_OnDraw(EventArgs args) { if (!Checker.IsActive()) { return; } if (!IsEnable) { return; } List <Hero> selectedHeroes = null; switch (SelectedIndex) { case 0: selectedHeroes = Manager.HeroManager.GetViableHeroes(); break; case 1: selectedHeroes = Manager.HeroManager.GetAllyViableHeroes(); break; case 2: selectedHeroes = Manager.HeroManager.GetEnemyViableHeroes(); break; } if (selectedHeroes == null) { return; } foreach (var v in selectedHeroes) { try { var pos = HUDInfo.GetHPbarPosition(v); if (pos.IsZero) { continue; } var spells = Manager.HeroManager.GetAbilityList(v); pos += new Vector2(0, HUDInfo.GetHPBarSizeX()); pos += new Vector2(ExtraX, ExtraY); var counter = 0; var size = new Vector2(IconSize, IconSize); foreach (var ability in spells) { var itemPos = pos + new Vector2(-2 + size.X * counter, 2); Drawing.DrawRect(itemPos, size, Textures.GetSpellTexture(ability.StoredName())); Drawing.DrawRect(itemPos, size, Color.Black, true); var abilityState = ability.AbilityState; if (abilityState == AbilityState.NotEnoughMana) { Drawing.DrawRect(itemPos, size, new Color(0, 0, 155, 155)); var neededMana = ((int)Math.Min(Math.Abs(v.Mana - ability.ManaCost), 99)).ToString( CultureInfo.InvariantCulture); var textSize = Drawing.MeasureText(neededMana, "Arial", new Vector2( (float)(size.Y * TextSize), size.Y / 2), FontFlags.AntiAlias); var textPos = itemPos + new Vector2(/*size.X-textSize.X*/ 1, 0); Drawing.DrawRect(textPos - new Vector2(0, 0), new Vector2(textSize.X, textSize.Y), new Color(0, 0, 0, 200)); Drawing.DrawText( neededMana, textPos, new Vector2(textSize.Y, 0), Color.White, FontFlags.AntiAlias | FontFlags.StrikeOut); } if (abilityState != AbilityState.NotLearned) { var level = ability.Level; var levelString = level.ToString(); var textSize = Drawing.MeasureText(levelString, "Arial", new Vector2( (float)(size.Y * TextSizeLevel), size.Y / 2), FontFlags.AntiAlias); var textPos = itemPos + new Vector2(1, size.Y - textSize.Y); Drawing.DrawRect(textPos - new Vector2(0, 0), new Vector2(textSize.X, textSize.Y), new Color(0, 0, 0, 240)); Drawing.DrawText( levelString, textPos, new Vector2(textSize.Y, 0), Color.White, FontFlags.AntiAlias | FontFlags.StrikeOut); } else { Drawing.DrawRect(itemPos, size, new Color(0, 0, 0, 150)); } if (abilityState == AbilityState.OnCooldown) { var remTime = ability.Cooldown; var cooldown = Math.Min(remTime + 0.1, 99).ToString("0.0"); var textSize = Drawing.MeasureText(cooldown, "Arial", new Vector2( (float)(size.Y * TextSize), size.Y / 2), FontFlags.AntiAlias); var textPos = itemPos + new Vector2(0, 0); Drawing.DrawRect(textPos - new Vector2(1, 0), new Vector2(textSize.X, textSize.Y), new Color(0, 0, 0, 200)); Drawing.DrawText( cooldown, textPos, new Vector2(textSize.Y, 0), Color.White, FontFlags.AntiAlias | FontFlags.StrikeOut); } counter++; } } catch (Exception e) { Printer.Print($"[AbilityOverlay]: {v.StoredName()} : {e.HelpLink}"); } } }
private void DrawingDamagePanel(EventArgs args) { me = Context.Owner as Hero; var enemies = ObjectManager.GetEntities <Hero>() .Where(x => x.IsVisible && x.IsAlive && x.Team != me.Team && !ExUnit.IsMagicImmune(x) && !x.IsIllusion).ToList(); if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame || enemies.Count == 0 || !Config.DrawingDamageEnabled.Value) { return; } foreach (var v in enemies) { damage[v.Handle] = (float)CalculateDamage(v); var useMana = CalculateMana(v); //Console.WriteLine("useMana" + useMana); var screenPos = HUDInfo.GetHPbarPosition(v); if (!OnScreen(v.Position)) { continue; } var travelSpeed = R.GetAbilityData("ball_lightning_move_speed", R.Level); //var travelTime = me.Distance2D(v) / travelSpeed; var distance = me.Distance2D(v); var startManaCost = R.GetAbilityData("ball_lightning_initial_mana_base") + me.MaximumMana / 100 * R.GetAbilityData("ball_lightning_initial_mana_percentage"); var costPerUnit = (12 + me.MaximumMana * 0.007) / 100.0; var calcEnemyHealth = v.Health <= 0 ? 0 : v.Health - damage[v.Handle]; var calcMyMana = useMana >= me.Mana ? 0 : me.Mana - useMana; var rManacost = startManaCost + costPerUnit * Math.Floor(distance / 100) * 100; var text1 = v.Health <= damage[v.Handle] ? "✔ Damage:" + Math.Floor(damage[v.Handle]) + "(Easy Kill)" : "✘ Damage:" + (int)Math.Floor(damage[v.Handle]) + "(" + (int)calcEnemyHealth + ")"; var text2 = me.Mana >= useMana ? "✔ Mana:" + (int)Math.Floor(useMana) + "(" + (int)calcMyMana + ")" : "✘ Mana:" + (int)Math.Floor(useMana) + "(" + (int)calcMyMana + ")"; var text3 = me.Mana >= rManacost ? "✔ Distance:" + (int)me.Distance2D(v) : "✘ Distance:" + (int)me.Distance2D(v); var size = new Vector2(16, 16); var position1 = new Vector2(screenPos.X + 65, screenPos.Y + 12); var position2 = new Vector2(screenPos.X + 65, screenPos.Y + 24); var position3 = new Vector2(screenPos.X + 65, screenPos.Y + 36); if (Drawing.Direct3DDevice9 == null) { return; } Drawing.DrawText( text1, new Vector2(screenPos.X + 64, screenPos.Y + 13), size, Color.Black, FontFlags.DropShadow); Drawing.DrawText( text1, position1, size, v.Health <= damage[v.Handle] ? Color.LawnGreen : Color.OrangeRed, FontFlags.GaussianBlur); Drawing.DrawText( text2, new Vector2(screenPos.X + 64, screenPos.Y + 25), size, Color.Black, FontFlags.DropShadow); Drawing.DrawText( text2, position2, size, me.Mana >= useMana ? Color.LawnGreen : Color.OrangeRed, FontFlags.GaussianBlur); Drawing.DrawText( text3, new Vector2(screenPos.X + 64, screenPos.Y + 37), size, Color.Black, FontFlags.DropShadow); Drawing.DrawText( text3, position3, size, me.Mana >= rManacost ? Color.LawnGreen : Color.OrangeRed, FontFlags.GaussianBlur); } }
private void DrawUltiDamage(EventArgs args) { if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame) { return; } R = me.Spellbook.SpellR; var ultLvl = R.Level; var enemy = ObjectManager.GetEntities <Hero>() .Where(y => y.Team != me.Team && y.IsAlive && y.IsVisible && !y.IsIllusion) .ToList(); if (enemy.Count == 0) { return; } foreach (var v in enemy) { if (!v.IsVisible || !v.IsAlive) { continue; } var manna = (v.MaximumMana - v.Mana); var damage = Math.Floor((manna * ult[ultLvl]) * (1 - v.MagicDamageResist)); var lens = me.HasModifier("modifier_item_aether_lens"); if (v.NetworkName == "CDOTA_Unit_Hero_Spectre" && v.Spellbook.Spell3.Level > 0) { damage = Math.Floor((manna * ult[ultLvl]) * (1 - (0.10 + v.Spellbook.Spell3.Level * 0.04)) * (1 - v.MagicDamageResist)); } if (v.NetworkName == "CDOTA_Unit_Hero_SkeletonKing" && v.Spellbook.SpellR.CanBeCasted()) { damage = 0; } if (lens) { damage = damage * 1.08; } var rum = v.Modifiers.Any(x => x.Name == "modifier_kunkka_ghost_ship_damage_absorb"); if (rum) { damage = damage * 0.5; } var mom = v.Modifiers.Any(x => x.Name == "modifier_item_mask_of_madness_berserk"); if (mom) { damage = damage * 1.3; } var dmg = v.Health - damage; var canKill = dmg <= 0; var screenPos = HUDInfo.GetHPbarPosition(v); if (!OnScreen(v.Position)) { continue; } var text = canKill ? "Yes" : "No, damage:" + Math.Floor(damage); var size = new Vector2(15, 15); var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias); var position = new Vector2(screenPos.X - textSize.X - 2, screenPos.Y - 3); Drawing.DrawText( text, position, size, (canKill ? Color.LawnGreen : Color.Red), FontFlags.AntiAlias); if (menu.Item("autoUlt").GetValue <bool>() && me.IsAlive) { if (R != null && R.CanBeCasted() && !v.HasModifier("modifier_tusk_snowball_movement") && !v.HasModifier("modifier_snowball_movement_friendly") && !v.HasModifier("modifier_templar_assassin_refraction_absorb") && !v.HasModifier("modifier_ember_spirit_flame_guard") && !v.HasModifier("modifier_ember_spirit_sleight_of_fist_caster_invulnerability") && !v.HasModifier("modifier_obsidian_destroyer_astral_imprisonment_prison") && !v.HasModifier("modifier_puck_phase_shift") && !v.HasModifier("modifier_eul_cyclone") && !v.HasModifier("modifier_dazzle_shallow_grave") && !v.HasModifier("modifier_shadow_demon_disruption") && !v.HasModifier("modifier_necrolyte_reapers_scythe") && !v.HasModifier("modifier_necrolyte_reapers_scythe") && !v.HasModifier("modifier_storm_spirit_ball_lightning") && !v.HasModifier("modifier_ember_spirit_fire_remnant") && !v.HasModifier("modifier_nyx_assassin_spiked_carapace") && !v.HasModifier("modifier_phantom_lancer_doppelwalk_phase") && !v.FindSpell("abaddon_borrowed_time").CanBeCasted() && !v.HasModifier("modifier_abaddon_borrowed_time_damage_redirect") && me.Distance2D(v) <= R.GetCastRange() + 50 && !v.IsMagicImmune() && enemy.Count(x => (x.Health - damage) <= 0 && x.Distance2D(v) <= 500) >= (menu.Item("ulti").GetValue <Slider>().Value) && enemy.Count(x => x.Distance2D(v) <= 500) >= (menu.Item("ulti").GetValue <Slider>().Value) && Utils.SleepCheck(v.Handle.ToString())) { R.UseAbility(v); Utils.Sleep(150, v.Handle.ToString()); return; } } } }
private static void DrawSpellPanel(int type) { List <Hero> selectedHeroes = null; switch (type) { case 0: selectedHeroes = Manager.HeroManager.GetViableHeroes(); break; case 1: selectedHeroes = Manager.HeroManager.GetAllyViableHeroes(); break; case 2: selectedHeroes = Manager.HeroManager.GetEnemyViableHeroes(); break; } if (selectedHeroes == null) { return; } foreach (var v in selectedHeroes) { try { Vector2 mypos; if (!Drawing.WorldToScreen(v.Position, out mypos)) { continue; } if (mypos.X <= -5000 || mypos.X >= 5000) { continue; } if (mypos.Y <= -5000 || mypos.Y >= 5000) { continue; } var start = HUDInfo.GetHPbarPosition(v) + new Vector2(-Members.Menu.Item("spellPanel.ExtraPosX").GetValue <Slider>().Value, Members.Menu.Item("spellPanel.ExtraPosY").GetValue <Slider>().Value); var distBetweenSpells = Members.Menu.Item("spellPanel.distBetweenSpells").GetValue <Slider>().Value; var distBwtweenLvls = Members.Menu.Item("spellPanel.DistBwtweenLvls").GetValue <Slider>().Value; var sizeSpell = Members.Menu.Item("spellPanel.SizeSpell").GetValue <Slider>().Value; const int sizey = 9; var spells = Manager.HeroManager.GetAbilityList(v); //Members.AbilityDictionary[v.StoredName()]; if (spells == null || spells.Count == 0) { continue; } foreach (var spell in spells /*.Where(x => x.AbilitySlot.ToString() != "-1")*/) { var size2 = distBetweenSpells; var extrarange = spell.Level > 4 ? spell.Level - 4 : 0; size2 = (int)(size2 + extrarange * 7); var cd = spell.Cooldown; Drawing.DrawRect(start, new Vector2(size2, spell.AbilityState != AbilityState.OnCooldown ? sizey : 22), new ColorBGRA(0, 0, 0, 100)); Drawing.DrawRect(start, new Vector2(size2, spell.AbilityState != AbilityState.OnCooldown ? sizey : 22), new ColorBGRA(255, 255, 255, 100), true); if (spell.AbilityState == AbilityState.NotEnoughMana) { Drawing.DrawRect(start, new Vector2(size2, spell.AbilityState != AbilityState.OnCooldown ? sizey : 22), new ColorBGRA(0, 0, 150, 150)); } if (spell.AbilityState == AbilityState.OnCooldown) { var text = string.Format("{0:0.#}", cd); var textSize = Drawing.MeasureText(text, "Arial", new Vector2(10, 200), FontFlags.None); var textPos = start + new Vector2(10 - textSize.X / 2, -textSize.Y / 2 + 12); Drawing.DrawText(text, textPos, /*new Vector2(10, 150),*/ Color.White, FontFlags.AntiAlias | FontFlags.DropShadow); } if (spell.Level > 0) { for (var lvl = 1; lvl <= spell.Level; lvl++) { Drawing.DrawRect(start + new Vector2(distBwtweenLvls * lvl, sizey - 6), new Vector2(sizeSpell, sizey - 6), new ColorBGRA(255, 255, 0, 255)); } } start += new Vector2(size2, 0); } } catch { Printer.Print("[SpellPanel]: " + v.StoredName()); } } }
private void DrawUltiDamage(EventArgs args) { if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame) { return; } double[] penitence = { 0, 1.15, 1.2, 1.25, 1.3 }; double[] soul = { 0, 1.2, 1.3, 1.4, 1.5 }; R = me.Spellbook.SpellR; var ultLvl = R.Level; var enemy = ObjectManager.GetEntities <Hero>() .Where(x => x.Team != me.Team && x.IsAlive && x.IsVisible && !x.IsIllusion) .ToList(); if (enemy.Count == 0) { return; } foreach (var v in enemy) { if (!v.IsVisible || !v.IsAlive) { continue; } var manna = (v.MaximumMana - v.Mana); var damage = Math.Floor((manna * ult[ultLvl]) * (1 - v.MagicDamageResist)); var lens = me.HasModifier("modifier_item_aether_lens"); if (v.NetworkName == "CDOTA_Unit_Hero_Spectre" && v.Spellbook.Spell3.Level > 0) { damage = Math.Floor((manna * ult[ultLvl]) * (1 - (0.10 + v.Spellbook.Spell3.Level * 0.04)) * (1 - v.MagicDamageResist)); } if (v.NetworkName == "CDOTA_Unit_Hero_SkeletonKing" && v.Spellbook.SpellR.CanBeCasted()) { damage = 0; } if (lens) { damage = damage * 1.08; } if (v.HasModifier("modifier_kunkka_ghost_ship_damage_absorb")) { damage = damage * 0.5; } if (v.HasModifier("modifier_item_mask_of_madness_berserk")) { damage = damage * 1.3; } if (v.HasModifier("modifier_chen_penitence")) { damage = damage * penitence[ObjectManager.GetEntities <Hero>().FirstOrDefault(x => x.Team == me.Team && x.ClassID == ClassID.CDOTA_Unit_Hero_Chen).Spellbook.Spell1.Level]; } if (v.HasModifier("modifier_shadow_demon_soul_catcher")) { damage = damage * soul[ObjectManager.GetEntities <Hero>().FirstOrDefault(x => x.Team == me.Team && x.ClassID == ClassID.CDOTA_Unit_Hero_Shadow_Demon).Spellbook.Spell2.Level]; } var dmg = v.Health - damage; var canKill = dmg <= 0; var screenPos = HUDInfo.GetHPbarPosition(v); if (!OnScreen(v.Position)) { continue; } var text = canKill ? "Yes:" + Math.Floor(damage) : "No:" + Math.Floor(damage); var size = new Vector2(15, 15); var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias); var position = new Vector2(screenPos.X - textSize.X - 2, screenPos.Y - 3); Drawing.DrawText( text, position, size, (canKill ? Color.LawnGreen : Color.Red), FontFlags.AntiAlias); } }
private static void DrawTopPanel(int type) { List <Hero> selectedHeroes = null; switch (type) { case 0: selectedHeroes = Manager.HeroManager.GetHeroes(); break; case 1: selectedHeroes = Members.AllyHeroes; break; case 2: selectedHeroes = Members.EnemyHeroes; break; } if (selectedHeroes == null) { return; } if (Members.Menu.Item("toppanel.Status.Enable").GetValue <bool>() || Members.Menu.Item("toppanel.Health.Enable").GetValue <bool>() || Members.Menu.Item("toppanel.Mana.Enable").GetValue <bool>()) { foreach (var v in selectedHeroes) { var pos = Helper.GetTopPanelPosition(v) + new Vector2(Members.Menu.Item("extraPos.X").GetValue <Slider>().Value, Members.Menu.Item("extraPos.Y").GetValue <Slider>().Value); var temp = HUDInfo.GetTopPanelSize(v); var size = new Vector2((float)temp[0], (float)temp[1]); var healthDelta = new Vector2(v.Health * size.X / v.MaximumHealth, 0); var manaDelta = new Vector2(v.Mana * size.X / v.MaximumMana, 0); DrawHealthPanel(pos, size, healthDelta); DrawManaPanel(pos, size, manaDelta); DrawStatus(pos, v, size); } } if (!Members.Menu.Item("ultimate.Enable").GetValue <bool>()) { return; } if (!Members.Menu.Item("ultimate.Icon.Enable").GetValue <bool>() && !Members.Menu.Item("ultimate.Info").GetValue <bool>() && !Members.Menu.Item("ultimate.InfoAlways").GetValue <bool>()) { return; } foreach (var v in Members.EnemyHeroes) { var ablist = Manager.HeroManager.GetAbilityList(v); if (ablist == null) { continue; } try { Ability ultimate; if (!Ultimate.TryGetValue(v.StoredName(), out ultimate)) { var spell = ablist.FirstOrDefault(x => x.IsAbilityType(AbilityType.Ultimate)); if (spell != null) { Ultimate.Remove(v.StoredName()); Ultimate.Add(v.StoredName(), spell); } continue; } if (ultimate == null || !ultimate.IsValid || ultimate.Level <= 0) { continue; } var pos = Helper.GetTopPanelPosition(v) + new Vector2(Members.Menu.Item("extraPos.X").GetValue <Slider>().Value, Members.Menu.Item("extraPos.Y").GetValue <Slider>().Value); var tempS = HUDInfo.GetTopPanelSize(v); var size = new Vector2((float)tempS[0], (float)tempS[1]); var ultPos = pos + new Vector2(size[0] / 2 - 5, size[1] + 1); string path; switch (ultimate.AbilityState) { case AbilityState.NotEnoughMana: path = "materials/ensage_ui/other/ulti_nomana.vmat"; break; case AbilityState.OnCooldown: path = "materials/ensage_ui/other/ulti_cooldown.vmat"; break; default: path = "materials/ensage_ui/other/ulti_ready.vmat"; break; } if (Members.Menu.Item("ultimate.Icon.Enable").GetValue <bool>()) { Drawing.DrawRect(ultPos, new Vector2(14, 14), Drawing.GetTexture(path)); } if (Members.Menu.Item("ultimate.Info").GetValue <bool>() && (Members.Menu.Item("ultimate.InfoAlways").GetValue <bool>() && ( ultimate.AbilityState == AbilityState.OnCooldown || ultimate.AbilityState == AbilityState.NotEnoughMana) || Utils.IsUnderRectangle(Game.MouseScreenPosition, ultPos.X, ultPos.Y, 15, 15))) { var texturename = string.Format("materials/ensage_ui/spellicons/{0}.vmat", ultimate.StoredName()); pos = Helper.GetTopPanelPosition(v); var startPos = pos + new Vector2(0, 7 * 4 + size.Y); size = new Vector2(size.X, size.Y + 15); Drawing.DrawRect(startPos, size, Textures.GetTexture(texturename)); string ultimateCd; Vector2 textSize; Vector2 textPos; switch (ultimate.AbilityState) { case AbilityState.OnCooldown: ultimateCd = ((int)Math.Min(ultimate.Cooldown, 999)).ToString(CultureInfo.InvariantCulture); textSize = Drawing.MeasureText(ultimateCd, "Arial", new Vector2((float)(size.Y * .50), size.Y / 2), FontFlags.AntiAlias); //Print(v.Name + " cd: " + ultimateCd); textPos = startPos + new Vector2(0, size.Y - textSize.Y); Drawing.DrawRect(textPos - new Vector2(0, 0), new Vector2(textSize.X, textSize.Y), new Color(0, 0, 0, 200)); Drawing.DrawText( ultimateCd, textPos, new Vector2(textSize.Y, 0), Color.White, FontFlags.AntiAlias | FontFlags.StrikeOut); break; case AbilityState.NotEnoughMana: ultimateCd = ((int)Math.Min(Math.Abs(v.Mana - ultimate.ManaCost), 999)).ToString( CultureInfo.InvariantCulture); textSize = Drawing.MeasureText(ultimateCd, "Arial", new Vector2((float)(size.Y * .50), size.Y / 2), FontFlags.AntiAlias); textPos = startPos + new Vector2(0, size.Y - textSize.Y); Drawing.DrawRect(textPos - new Vector2(0, 0), new Vector2(textSize.X, textSize.Y), new Color(0, 0, 0, 200)); Drawing.DrawText( ultimateCd, textPos, new Vector2(textSize.Y, 0), Color.White, FontFlags.AntiAlias | FontFlags.StrikeOut); Drawing.DrawRect(startPos, new Vector2(size.X, size.Y), new Color(0, 50, 155, 100)); break; } } } catch (Exception) { Printer.Print("[DrawTopPanel:ultimate] " + v.StoredName() + " Type: " + type); } } }
private static void Drawing_OnDraw(EventArgs args) { if (!Checker.IsActive()) { return; } if (!IsEnable) { return; } if (InSys == null || InSys.Count == 0) { return; } var haveEb = InSys.Any(x => x.StoredName() == "item_ethereal_blade" && x.CanBeCasted()); foreach (var v in Manager.HeroManager.GetEnemyViableHeroes()) { try { var pos = HUDInfo.GetHPbarPosition(v); if (pos.IsZero) { continue; } var myDmg = InSys.Where(x => x.CanBeCasted()) .Sum( x => AbilityDamage.CalculateDamage(x, Members.MyHero, v, minusMagicResistancePerc: haveEb ? 40 : 0)); var health = v.Health; var extraLife = (uint)(Manager.HeroManager.GetItemList(v) .Any(x => x.StoredName() == "item_infused_raindrop" && x.Cooldown <= 0) ? 120 : 0); if (extraLife > 100) { var needToCalcExtraLife = InSys.Any( x => x.DamageType == DamageType.Magical && AbilityDamage.CalculateDamage(x, Members.MyHero, v, minusMagicResistancePerc: haveEb ? 40 : 0) > 120); health += needToCalcExtraLife ? extraLife : 0; } var healthAfterShit = (int)(health - myDmg); var size = HUDInfo.GetHpBarSizeY(); var text = $"{healthAfterShit} ({myDmg})"; var textSize = Drawing.MeasureText(text, "Arial", new Vector2((float)(size * 1.5), 500), FontFlags.AntiAlias); var textPos = pos + new Vector2(HUDInfo.GetHPBarSizeX() + 4, 0); Drawing.DrawText( text, textPos, new Vector2(textSize.Y, 0), new Color(R, G, B, 255), FontFlags.AntiAlias | FontFlags.StrikeOut); } catch (Exception) { Printer.Print($"[DamageCalculation]: {v.StoredName()}"); } } }
public static void DrawCouAbuse() { Draw.RoundedRectangle((int)HUDInfo.ScreenSizeX() / 2 - 95, 100, 190, 28, 5, Color.DarkSlateGray); Drawing.DrawText("BOTTLE ABUSE", new Vector2((int)HUDInfo.ScreenSizeX() / 2 - 85, 100), new Vector2(26, 26), Color.Cyan, FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Outline); }
private static void Drawing_OnDraw(EventArgs args) { if (!Game.IsInGame) { return; } var player = ObjectManager.LocalPlayer; List <Unit> creeps; try { creeps = ObjectManager.GetEntitiesParallel <Unit>().Where(creep => (creep.ClassId == ClassId.CDOTA_BaseNPC_Creep_Lane || creep.ClassId == ClassId.CDOTA_BaseNPC_Creep_Siege) && creep.IsAlive && creep.IsVisible && creep.IsSpawned).ToList(); } catch { return; } var enemyTowers = ObjectManager.GetEntitiesParallel <Building>().Where(tower => tower.ClassId == ClassId.CDOTA_BaseNPC_Tower && tower.Team != player.Team).ToList(); foreach (var tower in enemyTowers) { var enemyTowerPos = tower.Position + new Vector3(0, 0, tower.HealthBarOffset); var start = HUDInfo.GetHPbarPosition(tower) + new Vector2(HUDInfo.GetHPBarSizeX(tower) / 2 - 5, HUDInfo.GetHpBarSizeY(tower) - 50); var size = new Vector2(25, 25); var greenText = Drawing.GetTexture("materials/vgui/hud/hud_timer_full.vmat"); var greyText2 = Drawing.GetTexture("materials/vgui/hud/minimap_creep.vmat"); string towerType; if (!TowersDictionary.TryGetValue(tower, out towerType)) { continue; } switch (towerType) { case "active": Drawing.DrawRect(start, new Vector2(size.Y, size.X), greenText); break; case "passive": Drawing.DrawRect(start, new Vector2(size.Y, size.X), greyText2); break; } } foreach (var creep in creeps) { //Vector2 screenPos; var enemyPos = creep.Position + new Vector3(0, 0, creep.HealthBarOffset); var start = HUDInfo.GetHPbarPosition(creep) + new Vector2(HUDInfo.GetHPBarSizeX(creep) / 2 - 5, HUDInfo.GetHpBarSizeY(creep) - 10); var size = new Vector2(15, 15); var greenText = Drawing.GetTexture("materials/vgui/hud/hud_timer_full.vmat"); var coinText = Drawing.GetTexture("materials/ensage_ui/other/active_coin.vmat"); var greyText2 = Drawing.GetTexture("materials/vgui/hud/minimap_creep.vmat"); var coinsText = Drawing.GetTexture("materials/vgui/hud/gold.vmat"); string creepType; if (!CreepsDictionary.TryGetValue(creep, out creepType)) { continue; //If not creep continue. } switch (creepType) { case "active": Drawing.DrawRect(start, new Vector2(size.Y, size.X), greenText); break; case "prime": Drawing.DrawRect(start, new Vector2(size.Y, size.X), greyText2); break; } } }
public static void DrawCouForce() { Draw.RoundedRectangle((int)HUDInfo.ScreenSizeX() / 2 - 120, 130, 250, 28, 5, Color.DarkSlateGray); Drawing.DrawText("ANTIREUSE DELIVER", new Vector2((int)HUDInfo.ScreenSizeX() / 2 - 110, 130), new Vector2(26, 26), Color.Red, FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Outline); }
public OverlayMenu() { this.Menu = new Menu("Overlay", Constants.AssemblyName + nameof(IUnitOverlay)); this.EnableOverlay = new ObservableMenuItem <bool>(this.Menu.Name + "enableOverlay", "Enable Overlay"); this.EnableOverlay.SetValue(true); this.EnableOverlay.SetFontColor(Color.GreenYellow); this.EnableOverlay.Provider.Subscribe( new DataObserver <bool>( (enable) => { if (this.AbilityManager == null) { if (!enable) { DelayAction.Add( 100, () => { foreach (var keyValuePair in this.AbilityManager.Value.Units) { var overlay = keyValuePair.Value.GetPart <IUnitOverlay>(); if (overlay == null) { return; } keyValuePair.Value.GetPart <IUnitOverlay>().Dispose(); keyValuePair.Value.RemovePart <IUnitOverlay>(); keyValuePair.Value.Overlay = null; } }); } return; } if (!enable) { foreach (var keyValuePair in this.AbilityManager.Value.Units) { var overlay = keyValuePair.Value.GetPart <IUnitOverlay>(); if (overlay == null) { return; } keyValuePair.Value.GetPart <IUnitOverlay>().Dispose(); keyValuePair.Value.RemovePart <IUnitOverlay>(); keyValuePair.Value.Overlay = null; } } else { foreach (var keyValuePair in this.AbilityManager.Value.Units) { var overlay = keyValuePair.Value.GetPart <IUnitOverlay>(); if (overlay != null) { return; } keyValuePair.Value.UnitComposer.Assignments[typeof(IUnitOverlay)].Invoke( keyValuePair.Value); this.SetValues(keyValuePair.Value); keyValuePair.Value.GetPart <IUnitOverlay>().Initialize(); this.ConnectPanels(keyValuePair.Value); } } })); this.Menu.AddItem(this.EnableOverlay); this.DistanceFromLocalHero = new ObservableMenuItem <Slider>( this.Menu.Name + "maxDistanceFromLocalHero", "Max distance from local hero"); this.DistanceFromLocalHero.SetValue(new Slider(2000, 500, 5000)); this.DistanceFromLocalHero.SetTooltip( "If unit distance from your hero is less then specified value, overlay will stick to screen edge"); // var added = false; this.DrawOutOfDisplay = new ObservableMenuItem <bool>( this.Menu.Name + "drawWhenOutOfDisplay", "Stick to screen edges"); this.DrawOutOfDisplay.SetValue(true).SetTooltip("Stick the overlay to screen edges when its out of view"); this.Menu.AddItem(this.DrawOutOfDisplay); this.Menu.AddItem(this.DistanceFromLocalHero); this.DistanceFromScreenEdge = new ObservableMenuItem <Slider>( this.Menu.Name + "maxDistanceFromEdge", "Max distance from camera position"); this.DistanceFromScreenEdge.SetValue(new Slider((int)(HUDInfo.ScreenSizeY() * 2), 0, 5000)); this.DistanceFromScreenEdge.SetTooltip( "If unit distance from camera position is less then specified value, overlay will stick to screen edge"); this.Menu.AddItem(this.DistanceFromScreenEdge); // this.DrawOutOfDisplay.Provider.Subscribe( // new DataObserver<bool>( // b => // { // if (b & !added) // { // this.Menu.AddItem(this.DistanceFromLocalHero); // added = true; // } // else if (!b & added) // { // this.Menu.Items.Remove(this.DistanceFromLocalHero); // added = false; // } // })); }
public static void DrawCouLock() { Draw.RoundedRectangle((int)HUDInfo.ScreenSizeX() / 2 - 90, 70, 180, 28, 5, Color.DarkSlateGray); Drawing.DrawText("LOCK AT BASE", new Vector2((int)HUDInfo.ScreenSizeX() / 2 - 80, 70), new Vector2(26, 26), Color.White, FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Outline); }
public static void Draw(EventArgs args) { if (!Checker.IsActive()) { return; } if (!Members.Menu.Item("showmemore.Enable").GetValue <bool>()) { return; } if (Members.Menu.Item("Cour.Enable").GetValue <bool>()) { foreach (var courier in Manager.BaseManager.GetViableCouriersList()) { var pos = Helper.WorldToMinimap(courier.Position); if (pos.IsZero) { continue; } var courType = courier.IsFlying ? "courier_flying" : "courier"; string name = $"materials/ensage_ui/other/{courType}.vmat"; Drawing.DrawRect(pos - new Vector2(7, 7), new Vector2(15, 15), Drawing.GetTexture(name)); } } if (Members.Menu.Item("apparition.Enable").GetValue <bool>() && AAunit != null && AAunit.IsValid) { try { var aapos = Drawing.WorldToScreen(AAunit.Position); if (!aapos.IsZero) { var myHeroPos = Drawing.WorldToScreen(Members.MyHero.Position); if (!myHeroPos.IsZero) { Drawing.DrawLine(Drawing.WorldToScreen(Members.MyHero.Position), aapos, Color.AliceBlue); const string name = "materials/ensage_ui/spellicons/ancient_apparition_ice_blast.vmat"; Drawing.DrawRect(aapos, new Vector2(50, 50), Drawing.GetTexture(name)); } } } catch (Exception) { Printer.Print("[Draw]: Apparation"); } } if (Members.Menu.Item("tinker.Enable").GetValue <bool>()) { try { if (Members.Tinker != null && Members.Tinker.IsValid) { var baseList = Manager.BaseManager.GetBaseList() .Where(x => x.IsAlive && x.HasModifier("modifier_tinker_march_thinker")); foreach (var unit in baseList) { var realPos = unit.Position; var pos = Drawing.WorldToScreen(realPos); var texture = Textures.GetSpellTexture("tinker_march_of_the_machines"); if (pos.X > 0 && pos.Y > 0) { Drawing.DrawRect(pos, new Vector2(50, 50), texture); } var pos2 = Helper.WorldToMinimap(realPos); Drawing.DrawRect(pos2 - new Vector2(10, 10), new Vector2(10, 10), texture); } } } catch (Exception) { Printer.Print("[Draw]: Tinker"); } } if (Members.Menu.Item("tech.Enable").GetValue <bool>()) { try { if (Members.Techies != null && Members.Techies.IsValid) { var baseList = ObjectManager.GetEntities <Unit>() .Where(x => x.IsAlive && x.ClassID == ClassID.CDOTA_NPC_TechiesMines && x.Team != Members.MyHero.Team && !Bombs.Contains(x)); foreach (var unit in baseList) { Bombs.Add(unit); } foreach (var bomb in Bombs) { if (!bomb.IsValid) { continue; } if (bomb.IsVisible) { continue; } var realPos = bomb.Position; var pos = Drawing.WorldToScreen(realPos); var texture = bomb.Spellbook.Spell1 != null ? Textures.GetTexture("materials/ensage_ui/other/npc_dota_techies_remote_mine.vmat") : Textures.GetTexture("materials/ensage_ui/other/npc_dota_techies_land_mine.vmat"); if (pos.X > 0 && pos.Y > 0) { Drawing.DrawRect(pos, new Vector2(50, 50), texture); } var pos2 = Helper.WorldToMinimap(realPos); Drawing.DrawRect(pos2 - new Vector2(15, 15), new Vector2(15, 15), texture); } } } catch (Exception) { Printer.Print("[Draw]: Techies"); } } if (Members.Menu.Item("scan.Enable").GetValue <bool>()) { if (Members.ScanEnemy != null && Members.ScanEnemy.IsValid) { try { var position = Members.ScanEnemy.Position; var w2S = Drawing.WorldToScreen(position); if (!w2S.IsZero) { Drawing.DrawText( "Scan Ability " + Members.ScanEnemy.FindModifier("modifier_radar_thinker").RemainingTime.ToString("F1"), w2S, new Vector2(15, 15), Color.White, FontFlags.AntiAlias | FontFlags.StrikeOut); } } catch (Exception) { Printer.Print("[Draw]: scan"); } } } if (Members.Menu.Item("charge.Enable").GetValue <bool>() && Members.BaraIsHere) { try { foreach (var v in Manager.HeroManager.GetAllyViableHeroes()) { var mod = v.HasModifier("modifier_spirit_breaker_charge_of_darkness_vision"); if (mod) { if (Equals(Members.MyHero, v)) { Drawing.DrawRect(new Vector2(0, 0), new Vector2(Drawing.Width, Drawing.Height), new Color(Members.Menu.Item("charge" + ".Red").GetValue <Slider>().Value, Members.Menu.Item("charge" + ".Green").GetValue <Slider>().Value, Members.Menu.Item("charge" + ".Blue").GetValue <Slider>().Value, Members.Menu.Item("charge" + ".Alpha").GetValue <Slider>().Value)); } if (!InSys.Contains(v)) { Helper.GenerateSideMessage(v.Name.Replace("npc_dota_hero_", ""), "spirit_breaker_charge_of_darkness"); InSys.Add(v); //effect322 = new ParticleEffect("particles/units/heroes/hero_spirit_breaker/spirit_breaker_charge_target.vpcf", v, ParticleAttachment.OverheadFollow); //v.AddParticleEffect("particles/units/heroes/hero_spirit_breaker/spirit_breaker_charge_target.vpcf"); } else { var pos = HUDInfo.GetHPbarPosition(v); if (!pos.IsZero && BaraDrawRect) { Drawing.DrawRect(pos - new Vector2(50, 0), new Vector2(30, 30), Textures.GetSpellTexture("spirit_breaker_charge_of_darkness")); Drawing.DrawRect(pos - new Vector2(50, 0), new Vector2(30, 30), Color.Red, true); } } } else { if (InSys.Contains(v)) { InSys.Remove(v); } } } } catch (Exception e) { Printer.Print("[Draw]: charge " + e.Message); } } if (Members.Menu.Item("lifestealer.Enable").GetValue <bool>() && Members.LifeStealer != null && Members.LifeStealer.IsValid && !Members.LifeStealer.IsVisible) { try { const string modname = "modifier_life_stealer_infest_effect"; if (LifeStealerBox) { foreach (var t in Manager.HeroManager.GetEnemyViableHeroes().Where(x => x.HasModifier(modname))) { var size3 = new Vector2(10, 20) + new Vector2(13, -6); var w2SPos = HUDInfo.GetHPbarPosition(t); if (w2SPos.IsZero) { continue; } var name = "materials/ensage_ui/miniheroes/" + Members.LifeStealer.StoredName().Replace("npc_dota_hero_", "") + ".vmat"; Drawing.DrawRect(w2SPos - new Vector2(size3.X / 2, size3.Y / 2), size3, Drawing.GetTexture(name)); } } if (Members.Menu.Item("lifestealer.creeps.Enable").GetValue <bool>()) { foreach (var t in Creeps.All.Where(x => x != null && x.IsAlive && x.HasModifier(modname))) { var size3 = new Vector2(10, 20) + new Vector2(13, -6); var w2SPos = HUDInfo.GetHPbarPosition(t); if (w2SPos.IsZero) { continue; } var name = "materials/ensage_ui/miniheroes/" + Members.LifeStealer.StoredName().Replace("npc_dota_hero_", "") + ".vmat"; Drawing.DrawRect(w2SPos - new Vector2(size3.X / 2, size3.Y / 2), size3, Drawing.GetTexture(name)); } } } catch (Exception) { Printer.Print("[Draw]: lifestealer"); } } if (Members.Menu.Item("blur.Enable").GetValue <bool>() && Members.PAisHere != null && Members.PAisHere.IsValid) { try { var mod = Members.PAisHere.HasModifier("modifier_phantom_assassin_blur_active"); if (mod && Members.PAisHere.StoredName() == "npc_dota_hero_phantom_assassin") { var size3 = new Vector2(10, 20) + new Vector2(13, -6); var w2M = Helper.WorldToMinimap(Members.PAisHere.NetworkPosition); var name = "materials/ensage_ui/miniheroes/" + Members.PAisHere.StoredName().Replace("npc_dota_hero_", "") + ".vmat"; Drawing.DrawRect(w2M - new Vector2(size3.X / 2, size3.Y / 2), size3, Drawing.GetTexture(name)); } } catch (Exception) { Printer.Print("[Draw]: phantom assasin"); } } }
private static Vector2 GetTopPanelSize(Hero hero) { return(new Vector2((float)HUDInfo.GetTopPanelSizeX(hero) - 2, (float)HUDInfo.GetTopPanelSizeY(hero))); }
/// <summary> /// Initializes a new instance of the <see cref="CommonMenu" /> class. /// </summary> public CommonMenu() : base("GeneralSettings", "Ensage.Common", true, null, false) { var menuSettings = new Menu("MenuSettings", "Common.menuSettings"); menuSettings.AddItem(new MenuItem("pressKey", "Menu hold key").SetValue(new KeyBind(16, KeyBindType.Press))); menuSettings.AddItem( new MenuItem("toggleKey", "Menu toggle key").SetValue(new KeyBind(118, KeyBindType.Toggle))); menuSettings.AddItem(new MenuItem("showMessage", "Show OnLoad message: ").SetValue(true)).SetTooltip("Show message with menu hotkeys on game load"); var message = menuSettings.AddItem( new MenuItem("messageType", "Show the message in: ").SetValue( new StringList(new[] { "SideLog", "Chat", "Console" }))); menuSettings.AddItem( new MenuItem("EnsageSharp.Common.IncreaseSize", "Size increase: ").SetValue(new Slider(0, 0, 250))) .SetTooltip( "Increases size of the menu, it can take up to 20 sec before the menu gets fully resized") .ValueChanged += (sender, args) => { DelayAction.Add(250, () => IncreaseMenuSize = args.GetNewValue <Slider>().Value); }; IncreaseMenuSize = menuSettings.Item("EnsageSharp.Common.IncreaseSize").GetValue <Slider>().Value; menuSettings.AddItem( new MenuItem("positionX", "Position X").SetValue( new Slider((int)MenuSettings.BasePosition.X, 10, Drawing.Height / 3))) .SetTooltip("Change position by dragging the 'EnsageSharp Menu' top panel").SetFontColor(Color.GreenYellow); menuSettings.AddItem( new MenuItem("positionY", "Position Y").SetValue( new Slider((int)MenuSettings.BasePosition.Y, (int)(HUDInfo.ScreenSizeY() * 0.08), Drawing.Width / 4))) .SetTooltip("Change position by dragging the 'EnsageSharp Menu' top panel").SetFontColor(Color.GreenYellow); MenuSettings.BasePosition = new Vector2( menuSettings.Item("positionX").GetValue <Slider>().Value, menuSettings.Item("positionY").GetValue <Slider>().Value); this.AddSubMenu(menuSettings); var hacks = new Menu("Hacks", "Common.Hacks"); hacks.AddItem( new MenuItem("showSpawnBoxes", "Show SpawnBoxes").SetValue(Config.ShowSpawnBoxes) .SetTooltip("Makes SpawnBoxes always visible")).ValueChanged += (sender, args) => { Config.ShowSpawnBoxes = args.GetNewValue <bool>(); }; Config.ShowSpawnBoxes = hacks.Item("showSpawnBoxes").GetValue <bool>(); hacks.AddItem( new MenuItem("showTowerRange", "Show TowerRange").SetValue(Config.ShowTowerRange) .SetTooltip("Makes TowerRange always visible")).ValueChanged += (sender, args) => { Config.ShowTowerRange = args.GetNewValue <bool>(); }; Config.ShowTowerRange = hacks.Item("showTowerRange").GetValue <bool>(); hacks.AddItem( new MenuItem("autoAccept", "AutoAccept").SetValue(Config.AutoAccept) .SetTooltip("Automatically clicks on accept after game was found")).ValueChanged += (sender, args) => { Config.AutoAccept = args.GetNewValue <bool>(); }; Config.AutoAccept = hacks.Item("autoAccept").GetValue <bool>(); this.AddSubMenu(hacks); this.AddItem( new MenuItem("EnsageSharp.Common.BlockKeys", "Block player inputs for KeyBinds: ").SetValue(true)) .SetTooltip("When a assembly uses a key, dota will ignore it"); this.AddItem( new MenuItem("showConsole", "Show Console").SetValue(Config.DebugConsole) .SetTooltip("Enable if you wanna see console window")).ValueChanged += (sender, args) => { Config.DebugConsole = args.GetNewValue <bool>(); }; Config.DebugConsole = this.Item("showConsole").GetValue <bool>(); Config.DisableDrawings = false; this.AddItem( new MenuItem("disableDrawings", "Disable Drawings").SetValue(Config.DisableDrawings) .DontSave() .SetTooltip( "This option will HIDE menu and all other drawings and particles. This option will get disabled after you press F5", Color.Red)).ValueChanged += (sender, args) => { Config.DisableDrawings = args.GetNewValue <bool>(); }; this.Item("disableDrawings").SetValue(false); message.ValueChanged += this.MessageValueChanged; Events.OnLoad += this.Events_OnLoad; }
public SoulAssumption(Ability ability) { this.ability = ability; //this.abilityIcon = Drawing.GetTexture("materials/ensage_ui/spellicons/storm_spirit_static_remnant"); this.iconSize = new Vector2(HUDInfo.GetHpBarSizeY() * 2); }