public void AddModifier(Modifier modifier, Unit9 modifierOwner) { if (modifier.IsDebuff) { if (!modifierOwner.IsAlly()) { return; } var obstacle = new ModifierAllyObstacle(this, modifier, modifierOwner) { Disables = new AbilityId[0] }; this.Pathfinder.AddObstacle(obstacle); } else { if (modifierOwner.IsAlly()) { return; } var obstacle = new ModifierEnemyObstacle(this, modifier, modifierOwner, 800) { Counters = new AbilityId[0] }; this.Pathfinder.AddObstacle(obstacle); } }
private void OnUnitRemoved(Unit9 entity) { try { if (!entity.IsControllable || !entity.IsAlly(this.owner.Team) || !entity.IsUnit) { return; } var unit = this.controllableUnits.Find(x => x.Handle == entity.Handle); if (unit == null) { return; } if (unit is IDisposable disposable) { disposable.Dispose(); } this.controllableUnits.Remove(unit); this.issuedActionTimings.Remove(entity.Handle); } catch (Exception e) { Logger.Error(e); } }
public override bool CanHit(Unit9 target) { if (target.IsMagicImmune && ((target.IsEnemy(this.Owner) && !this.CanHitSpellImmuneEnemy) || (target.IsAlly(this.Owner) && !this.CanHitSpellImmuneAlly))) { return(false); } if (this.Owner.Distance(target) > this.CastRange) { return(false); } var grabTarget = EntityManager9.Units .Where( x => x.IsUnit && x.IsAlive && x.IsVisible && !x.IsMagicImmune && !x.IsInvulnerable && !x.Equals(this.Owner) && x.Distance(this.Owner) < this.RadiusData.GetValue(this.Level)) .OrderBy(x => x.Distance(this.Owner)) .FirstOrDefault(); if (grabTarget == null) { return(false); } if (grabTarget.IsHero && !grabTarget.IsIllusion && grabTarget.IsAlly(this.Owner)) { return(false); } return(true); }
// Token: 0x06000979 RID: 2425 RVA: 0x000232CC File Offset: 0x000214CC private float GetOrbDamage(Unit9 unit) { if (unit.IsBuilding || unit.IsAlly(base.Owner)) { return(0f); } return(base.Owner.TotalIntelligence * this.DamageData.GetValue(this.Level) / 100f); }
// Token: 0x06000B35 RID: 2869 RVA: 0x0000A1A4 File Offset: 0x000083A4 private float GetOrbDamage(Unit9 unit) { if (unit.IsBuilding || unit.IsAlly(base.Owner)) { return(0f); } return(this.DamageData.GetValue(this.Level)); }
// Token: 0x06000F55 RID: 3925 RVA: 0x00028194 File Offset: 0x00026394 private float GetOrbDamage(Unit9 unit) { if (unit.IsBuilding || unit.IsAlly(base.Owner)) { return(0f); } return(this.DamageData.GetValue(this.Level) / 100f * Math.Min(base.Owner.Distance(unit), this.damageCapRange.GetValue(this.Level))); }
private float GetOrbDamage(Unit9 unit) { if (unit.IsAlly(this.Owner)) { return(0); } return(this.DamageData.GetValue(this.Level)); }
private float GetOrbDamage(Unit9 unit) { if (unit.IsBuilding || unit.IsAlly(this.Owner)) { return(0); } return((this.Owner.Mana * this.DamageData.GetValue(this.Level)) / 100); }
// Token: 0x06000E58 RID: 3672 RVA: 0x00027464 File Offset: 0x00025664 public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { Damage damage = new Damage(); if (!unit.IsBuilding && !unit.IsAlly(base.Owner) && !base.Owner.IsIllusion) { damage[this.DamageType] = unit.Health * this.DamageData.GetValue(this.Level) / 100f; } return(damage); }
// Token: 0x060006B7 RID: 1719 RVA: 0x000218F0 File Offset: 0x0001FAF0 public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { Damage damage = new Damage(); if (unit.IsCreep && base.IsActive && !unit.IsAlly(base.Owner) && !base.Owner.IsIllusion) { damage[this.DamageType] = (base.Owner.IsRanged ? this.rangedDamageData.GetValue(this.Level) : this.DamageData.GetValue(this.Level)); } return(damage); }
// Token: 0x06000DFB RID: 3579 RVA: 0x0002714C File Offset: 0x0002534C Damage IHasPassiveDamageIncrease.GetRawDamage(Unit9 unit, float?remainingHealth) { Damage damage = new Damage(); if (!unit.IsBuilding && !unit.IsAlly(base.Owner) && !base.Owner.IsIllusion) { damage[this.DamageType] = (unit.IsHero ? this.heroDamageData.GetValue(this.Level) : this.creepDamageData.GetValue(this.Level)); } return(damage); }
// Token: 0x06000CE8 RID: 3304 RVA: 0x00025E68 File Offset: 0x00024068 Damage IHasPassiveDamageIncrease.GetRawDamage(Unit9 unit, float?remainingHealth) { Damage damage = new Damage(); if (!unit.IsBuilding && !unit.IsAlly(base.Owner) && !base.Owner.IsIllusion && unit.GetAngle(base.Owner, false) > 2f) { damage[this.DamageType] = this.DamageData.GetValue(this.Level) * base.Owner.TotalAgility; } return(damage); }
// Token: 0x06000C76 RID: 3190 RVA: 0x000258D8 File Offset: 0x00023AD8 public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { Damage damage = new Damage(); if (!unit.IsBuilding && !unit.IsAlly(base.Owner) && !EntityManager9.Units.Any((Unit9 x) => x.IsUnit && !x.Equals(unit) && !x.IsInvulnerable && x.IsAlive && x.IsVisible && x.IsAlly(unit) && x.Distance(unit) < this.radiusData.GetValue(this.Level))) { damage[this.DamageType] = this.DamageData.GetValue(this.Level); } return(damage); }
public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { var damage = new Damage(); if (!unit.IsAlly(this.Owner)) { damage[this.DamageType] = this.DamageData.GetValue(this.Level); } return(damage); }
Damage IHasPassiveDamageIncrease.GetRawDamage(Unit9 unit, float?remainingHealth) { var damage = new Damage(); if (!unit.IsBuilding && !unit.IsAlly(this.Owner)) { damage[this.DamageType] = this.buffDamageData.GetValue(this.Level); } return(damage); }
public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { var damage = new Damage(); if (unit.IsCreep && this.IsUsable && !unit.IsAlly(this.Owner) && !this.Owner.IsIllusion) { damage[this.DamageType] = this.Owner.IsRanged ? this.rangedDamageData.GetValue(this.Level) : this.DamageData.GetValue(this.Level); } return(damage); }
public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { var damage = new Damage(); if (!unit.IsBuilding && !unit.IsAlly(this.Owner) && this.CanBeCasted()) { var crit = this.DamageData.GetValue(this.Level) / 100; var simpleAutoAttackDamage = unit.BaseUnit.MinimumDamage + unit.BaseUnit.BonusDamage; damage[this.DamageType] = simpleAutoAttackDamage * crit; } return(damage); }
// Token: 0x060007CF RID: 1999 RVA: 0x00021E04 File Offset: 0x00020004 public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { if (!base.IsActive || unit.IsMagicImmune || unit.IsAlly(base.Owner)) { return(new Damage()); } float value = this.DamageData.GetValue(this.Level); Damage damage = new Damage(); DamageType damageType = this.DamageType; damage[damageType] = (float)((int)(Math.Min(value, unit.Mana) * this.burnMultiplierData.GetValue(this.Level))); return(damage); }
// Token: 0x06000756 RID: 1878 RVA: 0x0002269C File Offset: 0x0002089C private void OnUnitAdded(Unit9 entity) { try { if (entity.IsControllable && entity.IsAlly(base.Owner) && !(entity.Name != "npc_dota_juggernaut_healing_ward")) { this.ward = entity; } } catch (Exception ex) { Logger.Error(ex, null); } }
public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { if (!this.IsUsable || unit.IsMagicImmune || unit.IsAlly(this.Owner)) { return(new Damage()); } var manaDamage = this.DamageData.GetValue(this.Level); return(new Damage { [this.DamageType] = (int)(Math.Min(manaDamage, unit.Mana) * this.burnMultiplierData.GetValue(this.Level)) }); }
public override bool CanHit(Unit9 target) { if (target.IsMagicImmune && ((target.IsEnemy(this.Owner) && !this.CanHitSpellImmuneEnemy) || (target.IsAlly(this.Owner) && !this.CanHitSpellImmuneAlly))) { return(false); } if (this.Owner.Distance(target) > this.CastRange) { return(false); } return(true); }
private void OnUnitRemoved(Unit9 entity) { try { if (!entity.IsAlly(this.Owner) || entity.Name != "npc_dota_techies_remote_mine") { return; } this.RemoveBomb(entity); } catch (Exception e) { Logger.Error(e); } }
private void OnUnitAdded(Unit9 entity) { try { if (!entity.IsControllable || !entity.IsAlly(this.Owner) || entity.Name != "npc_dota_juggernaut_healing_ward") { return; } this.ward = entity; } catch (Exception e) { Logger.Error(e); } }
private void OnUnitRemoved(Unit9 unit) { try { if (!unit.IsUnit || !unit.IsAlly(this.owner.Team)) { return; } this.allyUnits.Remove(unit); } catch (Exception e) { Logger.Error(e); } }
// Token: 0x06000BF7 RID: 3063 RVA: 0x0002533C File Offset: 0x0002353C public override bool CanHit(Unit9 target) { if (target.IsMagicImmune && ((target.IsEnemy(base.Owner) && !this.CanHitSpellImmuneEnemy) || (target.IsAlly(base.Owner) && !this.CanHitSpellImmuneAlly))) { return(false); } if (base.Owner.Distance(target) > this.CastRange) { return(false); } Unit9 unit = (from x in EntityManager9.Units where x.IsUnit && x.IsAlive && x.IsVisible && !x.IsMagicImmune && !x.IsInvulnerable && !x.Equals(base.Owner) && x.Distance(base.Owner) < this.RadiusData.GetValue(this.Level) orderby x.Distance(base.Owner) select x).FirstOrDefault <Unit9>(); return(!(unit == null) && (!unit.IsHero || unit.IsIllusion || !unit.IsAlly(base.Owner))); }
public override bool CanHit(Unit9 target) { if (target.IsMagicImmune && ((target.IsEnemy(this.Owner) && !this.CanHitSpellImmuneEnemy) || (target.IsAlly(this.Owner) && !this.CanHitSpellImmuneAlly))) { return(false); } var predictionInput = this.GetPredictionInput(target); var output = this.GetPredictionOutput(predictionInput); if (output.HitChance <= HitChance.Impossible) { return(false); } return(true); }
// Token: 0x06000078 RID: 120 RVA: 0x00009458 File Offset: 0x00007658 private void OnUnitAdded(Unit9 unit) { try { if (this.TargetLocked && !unit.IsAlly(this.Owner) && !(unit.Name != "npc_dota_phoenix_sun")) { Unit9 target = this.Target; if (((target != null) ? target.Name : null) == "npc_dota_hero_phoenix") { this.Target = unit; } } } catch (Exception ex) { Logger.Error(ex, null); } }
// Token: 0x06000079 RID: 121 RVA: 0x000094D4 File Offset: 0x000076D4 private void OnUnitRemoved(Unit9 unit) { try { if (this.TargetLocked && !unit.IsAlly(this.Owner) && !(unit.Name != "npc_dota_phoenix_sun")) { Unit9 target = this.Target; if (target != null && target.Equals(unit)) { this.Target = EntityManager9.Heroes.FirstOrDefault((Hero9 x) => x.Id == HeroId.npc_dota_hero_phoenix); } } } catch (Exception ex) { Logger.Error(ex, null); } }
private void OnUnitAdded(Unit9 unit) { try { if (!this.TargetLocked || unit.IsAlly(this.Owner.Team) || unit.Name != "npc_dota_phoenix_sun") { return; } if (this.Target?.Name == nameof(HeroId.npc_dota_hero_phoenix)) { this.Target = unit; } } catch (Exception e) { Logger.Error(e); } }
private void OnUnitRemoved(Unit9 unit) { try { if (!this.TargetLocked || unit.IsAlly(this.Owner.Team) || unit.Name != "npc_dota_phoenix_sun") { return; } if (this.Target?.Equals(unit) == true) { this.Target = EntityManager9.Heroes.FirstOrDefault(x => x.Id == HeroId.npc_dota_hero_phoenix); } } catch (Exception e) { Logger.Error(e); } }