private void OnUpdate() { foreach (var tower in EntityManager.GetEntities <Tower>()) { if (!tower.IsEnemy(LocalHero)) { continue; } var id = $"TowerHelper_{tower.Handle}"; var position = tower.Position; if (LocalHero.Distance2D(position) < 1100) { ParticleManager.CreateOrUpdateParticle( id, @"particles\ui_mouseactions\range_finder_tower_aoe_ring.vpcf", tower, ParticleAttachment.AbsOrigin, new ControlPoint(2, position), new ControlPoint(3, tower.AttackRange(LocalHero), 0, 0), new ControlPoint(4, 255, 0, 0)); } else { ParticleManager.RemoveParticle(id); } } }
private void OnDraw() { Color Choosed = Colours[ColorSwitcher.Value]; var localHero = EntityManager.LocalHero; if (localHero.Name != "npc_dota_hero_nevermore") { return; } var razes = new[] { 200, 450, 700 }; for (int i = 0; i < 3; i++) { var inFront = InFront(localHero, razes[i]); ParticleManager.CreateOrUpdateParticle( $"DrawRaze_{i}", "materials/ensage_ui/particles/alert_range.vpcf", localHero, ParticleAttachment.AbsOrigin, new ControlPoint(0, inFront), new ControlPoint(1, Choosed), new ControlPoint(2, 250, 255, 7)); } }
protected void DrawRange(string id, Vector3 position, float radius, Color color, int alpha) { ParticleManager.CreateOrUpdateParticle( $"DrawRange_{id}", @"materials\ensage_ui\particles\alert_range.vpcf", ParticleAttachment.AbsOrigin, new ControlPoint(0, position), new ControlPoint(1, color), new ControlPoint(2, radius, 255, alpha)); }
protected void DrawLine(string id, Vector3 startPosition, Vector3 endPosition, int size, int alpha, Color color) { ParticleManager.CreateOrUpdateParticle( $"DrawLine_{id}", @"materials\ensage_ui\particles\rectangle.vpcf", ParticleAttachment.AbsOrigin, new ControlPoint(1, startPosition), new ControlPoint(2, endPosition), new ControlPoint(3, size, alpha, 0), new ControlPoint(4, color)); }
private void ParticleAdd(Entity entity) { if (entity == null) { return; } ParticleManager.CreateOrUpdateParticle( $"TrueSightVision_{entity.Handle}", "particles/items2_fx/ward_true_sight.vpcf", entity, ParticleAttachment.AbsOriginFollow); }
public void Effect(Unit target) { if (target == null) { Remove(); return; } ParticleManager.CreateOrUpdateParticle( "Divine.TargetEffects", "materials/ensage_ui/particles/target_d.vpcf", Owner, ParticleAttachment.AbsOriginFollow, ParticleRestartType.None, new ControlPoint(5, Color), new ControlPoint(6, 255, 255, 255), new ControlPoint(2, Owner.Position), new ControlPoint(7, target.Position)); }
private void HandleEffect(Unit unit, bool visible) { if (!AddEffectType /*&& Owner.Animation.Name != "idle"*/) { AddEffectType = true; } if (visible && unit.IsAlive /*&& unit.Position.IsOnScreen()*/) { ParticleManager.CreateOrUpdateParticle( $"VisibleByEnemyPlus.{unit.Handle}", Config.Effects[Config.EffectTypeItem], unit, ParticleAttachment.AbsOriginFollow, new ControlPoint(1, Red, Green, Blue), new ControlPoint(2, Alpha)); } else if (AddEffectType) { ParticleManager.RemoveParticle($"VisibleByEnemyPlus.{unit.Handle}"); } }
private async void Infest(Unit unit, Modifier modifier, bool isHero) { if (EntityManager.GetEntities <Hero>().Any(x => x.IsAlly(LocalHero) && !x.IsIllusion && x.HeroId == HeroId.npc_dota_hero_life_stealer)) { return; } var effectName = "particles/units/heroes/hero_life_stealer/life_stealer_infested_unit.vpcf"; if (isHero) { effectName = "materials/ensage_ui/particles/life_stealer_infested_unit.vpcf"; } ParticleManager.CreateOrUpdateParticle($"LifeStealerInfest_{unit.Handle}", effectName, EntityManager.GetEntityByHandle(unit.Handle), ParticleAttachment.OverheadFollow); while (modifier.IsValid) { await Task.Delay(150); } ParticleManager.RemoveParticle($"LifeStealerInfest_{unit.Handle}"); }
protected override void Execute() { var arcaneBolt = Abilities.ArcaneBolt; if (RadiusMenu.ArcaneBoltItem || FarmMenu.FarmHotkeyItem && arcaneBolt.Level > 0) { ParticleManager.RangeParticle( "ArcaneBolt", Owner, arcaneBolt.CastRange, arcaneBolt.IsReady ? (FarmMenu.FarmHotkeyItem ? Color.Yellow : Color.Aqua) : Color.Gray); } else { ParticleManager.RemoveParticle("ArcaneBolt"); } var concussiveShot = Abilities.ConcussiveShot; if (RadiusMenu.ConcussiveShotItem && concussiveShot.Level > 0) { ParticleManager.RangeParticle( "ConcussiveShot", Owner, concussiveShot.Radius, concussiveShot.IsReady ? Color.Aqua : Color.Gray); } else { ParticleManager.RemoveParticle("ConcussiveShot"); } var ancientSeal = Abilities.AncientSeal; if (RadiusMenu.AncientSealItem && ancientSeal.Level > 0) { ParticleManager.RangeParticle( "AncientSeal", Owner, ancientSeal.CastRange, ancientSeal.IsReady ? Color.Aqua : Color.Gray); } else { ParticleManager.RemoveParticle("AncientSeal"); } var mysticFlare = Abilities.MysticFlare; if (RadiusMenu.MysticFlareItem && mysticFlare.Level > 0) { ParticleManager.RangeParticle( "MysticFlare", Owner, mysticFlare.CastRange, mysticFlare.IsReady ? Color.Aqua : Color.Gray); } else { ParticleManager.RemoveParticle("MysticFlare"); } var blink = Abilities.Blink; if (RadiusMenu.BlinkDaggerItem && blink != null) { var color = Color.Red; if (!blink.IsReady) { color = Color.Gray; } else if (Owner.Distance2D(GameManager.MousePosition) > BlinkDaggerMenu.BlinkActivationItem.Value) { color = Color.Aqua; } ParticleManager.RangeParticle( "Blink", Owner, blink.CastRange, color); } else { ParticleManager.RemoveParticle("Blink"); } if (FarmMenu.FarmHotkeyItem) { ParticleManager.RangeParticle( "Farm", Owner, Owner.AttackRange(Owner), Color.Yellow); } else { ParticleManager.RemoveParticle("Farm"); } var targetHit = concussiveShot.TargetHit; if (RadiusMenu.TargetHitConcussiveShotItem && targetHit != null && concussiveShot.Cooldown <= 1 && concussiveShot.Level > 0) { var position = targetHit.Position + new Vector3(0, 200, targetHit.HealthBarOffset); ParticleManager.CreateOrUpdateParticle( "TargetHitConcussiveShot", @"particles\units\heroes\hero_skywrath_mage\skywrath_mage_concussive_shot.vpcf", targetHit, ParticleAttachment.AbsOrigin, new ControlPoint(0, position), new ControlPoint(1, position), new ControlPoint(2, 1000)); } else { ParticleManager.RemoveParticle("TargetHitConcussiveShot"); } }
private void AddLinkenShow(Hero hero) { ParticleManager.CreateOrUpdateParticle($"LinkenShow_{hero.Handle}", "particles/items_fx/immunity_sphere_buff.vpcf", hero, ParticleAttachment.CenterFollow); }
private async void Charge(Unit unit, Modifier modifier, bool isHero) { try { if (unit.Team != LocalHero.Team) { return; } var effectName = "particles/units/heroes/hero_spirit_breaker/spirit_breaker_charge_target.vpcf"; if (isHero) { if (LocalHero.Handle == unit.Handle) { ColorScreen = true; } effectName = "materials/ensage_ui/particles/spirit_breaker_charge_target.vpcf"; var position = unit.Position; var pos = Pos(position, SpiritBreakerChargeMenu.OnWorldItem); var minimapPos = MinimapPos(position, SpiritBreakerChargeMenu.OnMinimapItem); Verification.InfoVerification(pos, minimapPos, unit.Name, AbilityId.spirit_breaker_charge_of_darkness, 0, SpiritBreakerChargeMenu.SideMessageItem, SpiritBreakerChargeMenu.SoundItem); if (SpiritBreakerChargeMenu.WriteOnChatItem) { DisplayMessage(unit); } } ParticleManager.CreateOrUpdateParticle($"ChargeUnit", effectName, EntityManager.GetEntityByHandle(unit.Handle), ParticleAttachment.OverheadFollow); var spiritBreaker = EntityManager.GetEntities <Hero>().FirstOrDefault(x => !x.IsIllusion && x.HeroId == HeroId.npc_dota_hero_spirit_breaker); var speed = spiritBreaker.GetAbilityById(AbilityId.spirit_breaker_charge_of_darkness).GetAbilitySpecialDataWithTalent(spiritBreaker, "movement_speed"); var rawGameTime = GameManager.RawGameTime; var firstIsVisible = false; do { var isVisible = spiritBreaker.IsVisible; if (isVisible) { rawGameTime = GameManager.RawGameTime; firstIsVisible = true; } if (firstIsVisible) { startChargePosition = spiritBreaker.Position.Extend(unit.Position, (GameManager.RawGameTime - rawGameTime) * speed); endChargePosition = unit.Position; DrawLine("Charge", startChargePosition, endChargePosition, 150, 185, Color.DarkRed); if (SpiritBreakerChargeMenu.OnMinimapItem) { OnMinimap = true; } if (!isVisible) { DrawRange("Charge", startChargePosition, 100, Color.Red, 180); } else { DrawRangeRemove("Charge"); } } await Task.Delay(50); }while (modifier.IsValid); ColorScreen = false; OnMinimap = false; ParticleManager.RemoveParticle("ChargeUnit"); DrawRangeRemove("Charge"); DrawLineRemove("Charge"); startChargePosition = Vector3.Zero; } catch (Exception e) { LogManager.Error(e); } }