Ejemplo n.º 1
0
        public Eclipse(Ability ability)
            : base(ability)
        {
            DisablePathfinder = true;

            BlinkAbilities.AddRange(BlinkAbilityNames);
            DisableAbilities.AddRange(DisableAbilityNames);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(Eul);
            CounterAbilities.Add(Manta);
            CounterAbilities.Add(TricksOfTheTrade);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(Invul);
            CounterAbilities.Add(SnowBall);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);
            CounterAbilities.AddRange(Invis);

            for (var i = 0u; i < duration.Length; i++)
            {
                duration[i] = ability.AbilitySpecialData.First(x => x.Name == "duration_tooltip").GetValue(i);
                durationAghanim[i] =
                    ability.AbilitySpecialData.First(x => x.Name == "duration_tooltip_scepter").GetValue(i);
            }
        }
Ejemplo n.º 2
0
        public Player()
        {
            AllAbilities = new Ability[20];

            EquippedAbilities = new Ability[GameConstants.Ranges.STANDARD_ABILITY_SIZE];
            EquippedFinishers = new Ability[GameConstants.Ranges.FINISHER_ABILITY_SIZE];
        }
Ejemplo n.º 3
0
        public static void AddAllBuffs(Ability[] spells, Item[] myItems1)
        {
            buffsToggler = new Dictionary<string, bool>();
            foreach (var spell in
                from spell in spells
                let data = AbilityDatabase.Find(spell.Name)
                where data != null && data.IsBuff
                select spell)
            {
                AddBuff(spell);
                RangeDrawing.AddRange(spell);
            }

            foreach (var spell in
                from spell in myItems1
                let data = AbilityDatabase.Find(spell.Name)
                where data != null && data.IsBuff
                select spell)
            {
                AddBuff(spell);
                RangeDrawing.AddRange(spell);
            }

            if (BuffsTogglerCreated)
            {
                MainMenu.Menu.AddItem(new MenuItem("buffsToggler", "Buffs:").SetValue(new AbilityToggler(buffsToggler)));
            }
        }
Ejemplo n.º 4
0
        public IcePath(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(Eul);
            CounterAbilities.AddRange(VsDisable);
            CounterAbilities.Add(SnowBall);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);
            CounterAbilities.Remove("bane_nightmare");
            CounterAbilities.Remove("abaddon_aphotic_shield");

            Modifier.AllyCounterAbilities.AddRange(AllyShields);
            Modifier.AllyCounterAbilities.AddRange(Invul);
            Modifier.AllyCounterAbilities.AddRange(VsMagic);

            AdditionalDelay = ability.AbilitySpecialData.First(x => x.Name == "path_delay").Value;

            for (var i = 0u; i < duration.Length; i++)
            {
                duration[i] = ability.AbilitySpecialData.First(x => x.Name == "duration").GetValue(i);
            }

            talent = AbilityOwner.FindSpell("special_bonus_unique_jakiro");

            if (talent != null)
            {
                bonusDuration = talent.AbilitySpecialData.First(x => x.Name == "value").Value;
            }

            ObstacleStays = true;
        }
 public void AddActive(Ability ab, int slot)
 {
     if(!allAbilities.Contains(ab))
         allAbilities.Add(ab);
     if(slot >= 0)
         SetActive(allAbilities.IndexOf(ab),slot);
 }
Ejemplo n.º 6
0
        public BloodRite(Ability ability)
            : base(ability)
        {
            DisablePathfinder = true;

            Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(SleightOfFist);
            CounterAbilities.Add(Manta);
            CounterAbilities.Add(Eul);
            CounterAbilities.Add(TricksOfTheTrade);
            CounterAbilities.AddRange(VsDisable);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsMagic);
            CounterAbilities.AddRange(Invis);
            CounterAbilities.Add(SnowBall);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);
            CounterAbilities.Remove("abaddon_aphotic_shield");

            Modifier.AllyCounterAbilities.Add(Lotus);
            Modifier.AllyCounterAbilities.Add(Eul);
            Modifier.AllyCounterAbilities.Add(Manta);
            Modifier.AllyCounterAbilities.AddRange(AllyShields);

            AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "delay").Value;
        }
Ejemplo n.º 7
0
 public Tower(Texture2D texture, Vector2 position, int range, Ability attack)
     : base(texture, position)
 {
     Range = range;
     TowerAbility = attack;
     CanAttack = true;
 }
Ejemplo n.º 8
0
        public LightStrikeArray(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(SleightOfFist);
            CounterAbilities.Add(Manta);
            CounterAbilities.Add(Eul);
            CounterAbilities.AddRange(VsDisable);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsMagic);
            CounterAbilities.AddRange(Invis);
            CounterAbilities.Add(SnowBall);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);
            CounterAbilities.Remove("abaddon_aphotic_shield");

            Modifier.AllyCounterAbilities.AddRange(AllyShields);
            Modifier.AllyCounterAbilities.AddRange(Invul);
            Modifier.AllyCounterAbilities.AddRange(VsMagic);

            AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "light_strike_array_delay_time").Value
                              + 0.05f;
        }
Ejemplo n.º 9
0
        public Mjollnir(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(EnemyTeam, EvadableModifier.GetHeroType.ModifierSource);

            Modifier.EnemyCounterAbilities.Add(FortunesEnd);
        }
Ejemplo n.º 10
0
 public static bool Cast(Ability ability, Unit target, string name)
 {
     if (name == "razor_static_link" && target.Distance2D(AbilityMain.Me) > (ability.GetCastRange(name) * 0.75))
     {
         return false;
     }
     if (ability.IsAbilityBehavior(AbilityBehavior.UnitTarget, name))
     {
         Game.ExecuteCommand("dota_player_units_auto_attack_after_spell 0");
         ManageAutoAttack.AutoAttackDisabled = true;
         SoulRing.Cast(ability);
         ability.UseAbility(target);
         return true;
     }
     if ((ability.IsAbilityBehavior(AbilityBehavior.AreaOfEffect, name)
          || ability.IsAbilityBehavior(AbilityBehavior.Point, name))
         && (Prediction.StraightTime(target) > 1000 || target.MovementSpeed < 200))
     {
         Game.ExecuteCommand("dota_player_units_auto_attack_after_spell 0");
         ManageAutoAttack.AutoAttackDisabled = true;
         return ability.CastSkillShot(target, name, SoulRing.Check(ability) ? MyAbilities.SoulRing : null);
     }
     if (ability.IsAbilityBehavior(AbilityBehavior.NoTarget, name))
     {
         Game.ExecuteCommand("dota_player_units_auto_attack_after_spell 0");
         ManageAutoAttack.AutoAttackDisabled = true;
         SoulRing.Cast(ability);
         ability.UseAbility();
         return true;
     }
     return false;
 }
Ejemplo n.º 11
0
        public static void Init()
        {
            Game.OnUpdate += Game_OnUpdate;
            loaded = false;
            me = null;
            target = null;
            earthshock = null;
            overpower = null;
            enrage = null;
            abyssalBlade = null;
            scytheOfVyse = null;
            blink = null;
            text = new Font(
                Drawing.Direct3DDevice9,
                new FontDescription
                    {
                        FaceName = "Tahoma", Height = 13, OutputPrecision = FontPrecision.Default,
                        Quality = FontQuality.Default
                    });

            Drawing.OnPreReset += Drawing_OnPreReset;
            Drawing.OnPostReset += Drawing_OnPostReset;
            Drawing.OnEndScene += Drawing_OnEndScene;
            AppDomain.CurrentDomain.DomainUnload += CurrentDomainDomainUnload;
            Game.OnWndProc += Game_OnWndProc;
            Orbwalking.Load();
        }
Ejemplo n.º 12
0
        public Snowball(Ability ability)
            : base(ability)
        {
            IsDisjointable = false;

            Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(Eul);
            CounterAbilities.AddRange(VsDisable);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsPhys);
            CounterAbilities.AddRange(Invul);
            CounterAbilities.AddRange(Invis);
            CounterAbilities.Add(SnowBall);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);
            CounterAbilities.Add(Lotus);
            CounterAbilities.Remove("abaddon_aphotic_shield");

            Modifier.AllyCounterAbilities.AddRange(AllyShields);
            Modifier.AllyCounterAbilities.AddRange(Invul);

            AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "snowball_windup").Value;
        }
Ejemplo n.º 13
0
 protected Projectile(Ability ability)
     : base(ability)
 {
     IsDisjointable = true;
     radius = 75;
     DisablePathfinder = true;
 }
Ejemplo n.º 14
0
        public void Execute(Ability ab, GamePlayer player)
        {
            SureShotEffect sureShot = player.EffectList.GetOfType<SureShotEffect>();
            if (sureShot != null)
            {
                sureShot.Cancel(false);
                return;
            }

            if (!player.IsAlive)
            {
                player.Out.SendMessage(LanguageMgr.GetTranslation(player.Client.Account.Language, "Skill.Ability.SureShot.CannotUseDead"), eChatType.CT_System, eChatLoc.CL_SystemWindow);
                return;
            }

            RapidFireEffect rapidFire = player.EffectList.GetOfType<RapidFireEffect>();
            if (rapidFire != null)
                rapidFire.Cancel(false);

            TrueshotEffect trueshot = player.EffectList.GetOfType<TrueshotEffect>();
            if (trueshot != null)
                trueshot.Cancel(false);

            new SureShotEffect().Start(player);
        }
Ejemplo n.º 15
0
 public static float DamageAmpValue(Ability ability)
 {
     var multi = !MultiplierDictionary.ContainsKey(ability.Name)
                     ? 0
                     : Math.Abs(MultiplierDictionary[ability.Name]);
     return multi;
 }
Ejemplo n.º 16
0
 public void LimitedGainTest()
 {
     Ability ability = new Ability(0, AbilityType.General, "TestAbility");
     CharacterAbility charAbility = new CharacterAbility(ability);
     charAbility.AddExperience(10, 1);
     Assert.AreEqual(1, charAbility.Value);
 }
        public void AbilityValueSetsModifier(int value, int modifier)
        {
            var a = new Ability("TestAbility-BaDumBum");
            a.Value = value;

            Assert.AreEqual(modifier, a.Modifier);
        }
Ejemplo n.º 18
0
        public static void Main(string[] args)
        {
            Game.OnUpdate += Game_OnUpdate;
            Orbwalking.Load();
            if (rangeDisplay == null)
            {
                return;
            }
            rangeDisplay = null;

            Urn = null;
            Abyssal = null;
            Blademail = null;
            Mjollnir = null;
            Orchid = null;
            Halberd = null;
            Satanic = null;
            Hex = null;
            SolarCrest = null;
            Medallion = null;
            Blink = null;
            Armlet = null;
            loaded = false;

            spellQ = null;
            spellR = null;
            //Aghs = null;
        }
Ejemplo n.º 19
0
        public Dismember(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.ModifierSource);

            CounterAbilities.Add(Lotus);
            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(Eul);
            CounterAbilities.Add(Manta);
            CounterAbilities.Add(SleightOfFist);
            CounterAbilities.Add(TricksOfTheTrade);
            CounterAbilities.AddRange(VsDisable);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsMagic);
            CounterAbilities.AddRange(Invul);
            CounterAbilities.Add(SnowBall);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);
            CounterAbilities.AddRange(Invis);

            Modifier.AllyCounterAbilities.AddRange(AllyShields);
            Modifier.AllyCounterAbilities.AddRange(Invul);
            Modifier.AllyCounterAbilities.AddRange(VsMagic);
        }
Ejemplo n.º 20
0
 public Torrent(Ability ability)
 {
     Ability = ability;
     CastPoint = (float)ability.FindCastPoint();
     AdditionalDelay = AbilityDatabase.Find(ability.Name).AdditionalDelay;
     Radius = ability.GetRadius() + 25;
 }
Ejemplo n.º 21
0
    private void FillMageAbilitys()
    {
        allMageAbilitys = new Dictionary<int, List<Ability>>();

        //LEVEL 1
        Ability abFrostbolt = new Ability() { Name = "Icebolt", Damage = 15, ManaCost = 20, StaticID = 101, Range = 50, Cooldown = 3 };
        abFrostbolt.Description = string.Format("Simple bolt made of ice that does {0} damage", abFrostbolt.Damage);

        Ability abFirebolt = new Ability() { Name = "Firebolt", Damage = 25, ManaCost = 25, StaticID = 102, Range = 50, Cooldown = 2 };
        abFirebolt.Description = string.Format("Firebolt that does {0} damage", abFirebolt.Damage);

        Ability abMindslash = new Ability() { Name = "Mindeslah", Damage = 20, ManaCost = 35, StaticID = 103, Range = 25, Cooldown = 6 };
        abMindslash.Description = string.Format("Slash the foes mind for {0} damage", abMindslash.Damage);

        Ability abShoot = new Ability() { Name = "Shoot", Damage = 20, ManaCost = 10, StaticID = 104, Range = 75, Cooldown = 10 };
        abShoot.Description = string.Format("Shoot enemy with your wand for {0} damage", abShoot.Damage);

        allMageAbilitys.Add(1, new List<Ability>() { abFrostbolt, abFirebolt, abMindslash, abShoot });

        //LEVEL 2
        Ability abIceSpike = new Ability() { Name = "Ice Spike", Damage = 50, ManaCost = 70, StaticID = 105, Range = 25, Cooldown = 10 };
        abIceSpike.Description = string.Format("Impale enemy for {0} damage", abIceSpike.Damage);

        allMageAbilitys.Add(2, new List<Ability>(){abIceSpike});
    }
Ejemplo n.º 22
0
		public void Execute(Ability ab, GamePlayer player)
		{

			RapidFireEffect rapidFire = player.EffectList.GetOfType<RapidFireEffect>();
			if (rapidFire!=null)
			{
				rapidFire.Cancel(false);
				return;
			}

			if(!player.IsAlive)
			{
				player.Out.SendMessage("You can't switch to rapid fire when dead!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
				return;
			}

			SureShotEffect sureShot = player.EffectList.GetOfType<SureShotEffect>();
			if (sureShot != null)
				sureShot.Cancel(false);

			TrueshotEffect trueshot = player.EffectList.GetOfType<TrueshotEffect>();
			if (trueshot != null)
				trueshot.Cancel(false);

			new RapidFireEffect().Start(player);
		}
Ejemplo n.º 23
0
    public override void Enter()
    {
        base.Enter();

        hoverInactiveSpell = null;
        hoverActiveSpell = null;
    }
Ejemplo n.º 24
0
 public static bool Check(Ability ability)
 {
     return MyAbilities.SoulRing.CanBeCasted() && ability.ManaCost > 0 && Utils.SleepCheck("Ability.SoulRing")
            && Heals.HealsMenuDictionary["item_soul_ring"].Item("item_soul_ringuseBeforeCast").GetValue<bool>()
            && Heals.HealsMenuDictionary["item_soul_ring"].Item("item_soul_ringminHp").GetValue<Slider>().Value
            < AbilityMain.Me.Health;
 }
Ejemplo n.º 25
0
        public static Menu Create(string name, Ability ability)
        {
            var menu = new Menu(name, name, textureName: name);
            if (name == "rubick_spell_steal")
            {
                return menu;
            }

            menu.AddItem(Togglers.OnSight(name));
            var data = AbilityDatabase.Find(name);
            var defaultValue = ability.AbilityType != AbilityType.Ultimate;
            if (data != null)
            {
                if (data.TrueSight)
                {
                    menu.AddItem(Togglers.OnInvisible(name, defaultValue));
                }

                if (data.IsPurge)
                {
                    menu.AddItem(Togglers.OnPurgable(name, defaultValue));
                }

                if (data.WeakensEnemy)
                {
                    menu.AddItem(Togglers.OnAttack(name, defaultValue));
                }
            }

            menu.AddItem(Sliders.MinManaCheck(name));
            menu.AddItem(Sliders.MinManaCheck(name, true));
            return menu;
        }
Ejemplo n.º 26
0
 public void add(Ability ability)
 {
     if ( !_abilities.Contains( ability ) )
         _abilities.Add( ability );
     //ability.initData( caster , this );
     Debug.Log( "Added " + ability.name + " to " + caster.name + "'s abilitycontainer" );
 }
Ejemplo n.º 27
0
        public AbilityDisplay(Ability ability, int exp)
        {
            _ability = ability;
            _exp = exp;

            InitializeComponent();
        }
Ejemplo n.º 28
0
        public Torrent(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(SleightOfFist);
            CounterAbilities.Add(Manta);
            CounterAbilities.Add(Eul);
            CounterAbilities.AddRange(VsDisable);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsMagic);
            CounterAbilities.AddRange(Invis);
            CounterAbilities.Add(SnowBall);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);

            Modifier.AllyCounterAbilities.AddRange(AllyShields);
            Modifier.AllyCounterAbilities.AddRange(Invul);
            Modifier.AllyCounterAbilities.AddRange(VsMagic);

            AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "delay").Value;

            talent = AbilityOwner.FindSpell("special_bonus_unique_kunkka");

            if (talent != null)
            {
                bonusRadius = talent.AbilitySpecialData.First(x => x.Name == "value").Value;
            }
        }
        /// <summary>
        /// Execute dirtytricks ability
        /// </summary>
        /// <param name="ab">The used ability</param>
        /// <param name="player">The player that used the ability</param>
        public void Execute(Ability ab, GamePlayer player)
        {
            if (player == null)
            {
                if (log.IsWarnEnabled)
                    log.Warn("Could not retrieve player in DirtyTricksAbilityHandler.");
                return;
            }

            if (!player.IsAlive)
            {
                player.Out.SendMessage("You are dead and can't use that ability!", eChatType.CT_YouHit, eChatLoc.CL_SystemWindow);
                return;
            }

            if (player.IsMezzed)
            {
                player.Out.SendMessage("You cannot use this while Mezzed!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                return;
            }
            if (player.IsStunned)
            {
                player.Out.SendMessage("You cannot use this while Stunned!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                return;
            }
            if (player.IsSitting)
            {
                player.Out.SendMessage("You must be standing to use this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                return;
            }

            player.DisableSkill(ab, REUSE_TIMER);
            DirtyTricksEffect dt = new DirtyTricksEffect(DURATION * 1000);
            dt.Start(player);
        }
Ejemplo n.º 30
0
        public Supernova(Ability ability)
            : base(ability)
        {
            DisablePathfinder = true;

            Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(Eul);
            CounterAbilities.Add(Manta);
            CounterAbilities.Add(SleightOfFist);
            CounterAbilities.AddRange(VsDisable);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsMagic);
            CounterAbilities.AddRange(Invis);
            CounterAbilities.Add(Armlet);

            Modifier.AllyCounterAbilities.AddRange(AllyShields);
            Modifier.AllyCounterAbilities.AddRange(Invul);
            Modifier.AllyCounterAbilities.AddRange(VsMagic);

            AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "tooltip_duration").Value;
            radius = Ability.AbilitySpecialData.First(x => x.Name == "aura_radius").Value;
        }
Ejemplo n.º 31
0
 public bounty_hunter_jinada(Ability ability)
     : base(ability)
 {
 }
 public phantom_assassin_coup_de_grace(Ability ability)
     : base(ability)
 {
 }
Ejemplo n.º 33
0
 public EyeOfSkadi(Ability baseAbility)
     : base(baseAbility)
 {
 }
Ejemplo n.º 34
0
 public dazzle_weave(Ability ability)
     : base(ability)
 {
 }
Ejemplo n.º 35
0
 public InvokerGhostWalk(Ability ability)
     : base(ability)
 {
     _invokeHelper = new InvokeHelper <InvokerGhostWalk>(this);
 }
Ejemplo n.º 36
0
 public DustOfAppearance(Ability baseAbility)
     : base(baseAbility)
 {
     this.RadiusData = new SpecialData(baseAbility, "radius");
 }
Ejemplo n.º 37
0
 // Token: 0x060006E7 RID: 1767 RVA: 0x00006530 File Offset: 0x00004730
 public Maelstrom(Ability baseAbility) : base(baseAbility)
 {
 }
Ejemplo n.º 38
0
 private void ResolveSelection(Ability selected)
 {
     completionSource.SetResult(selected);
 }
Ejemplo n.º 39
0
 public RealityRift(Ability baseAbility)
     : base(baseAbility)
 {
 }
Ejemplo n.º 40
0
 public MirrorImage(Ability baseAbility)
     : base(baseAbility)
 {
 }
Ejemplo n.º 41
0
 public void ForceSetAbility(Ability newAbility)
 {
     currentAbility = newAbility;
     characterAnimator.SetAnimationClipSet(newAbility.GetAbilityAnimations(), newAbility.GetAbilityAnimationTime());
 }
Ejemplo n.º 42
0
 public void addItem(Ability ability)
 {
     abilities.Add(ability);
 }
Ejemplo n.º 43
0
 protected abstract TU AbilityInfoElement(Ability ability);
Ejemplo n.º 44
0
 public MortalStrike(Ability baseAbility)
     : base(baseAbility)
 {
 }
Ejemplo n.º 45
0
 public Mekansm(Ability baseAbility)
     : base(baseAbility)
 {
     this.RadiusData        = new SpecialData(baseAbility, "heal_radius");
     this.healthRestoreData = new SpecialData(baseAbility, "heal_amount");
 }
Ejemplo n.º 46
0
 public HurricanePike(Ability ability, Manager manager)
     : base(ability, manager)
 {
     castRange = ability.AbilitySpecialData.First(x => x.Name == "cast_range_enemy").Value + 100;
 }
Ejemplo n.º 47
0
 public void LoadForm(Ability objAbility)
 {
     this.txtName.Text = objAbility.AbilityName;
     //this.txtDescription.Text = objAbility.
     this.txtSortOrder.Text = Common.PascalNoteString(objAbility.SortOrder.ToString());
 }
Ejemplo n.º 48
0
 public WhirlingAxesMelee(Ability baseAbility)
     : base(baseAbility)
 {
     this.RadiusData = new SpecialData(baseAbility, "max_range");
     this.DamageData = new SpecialData(baseAbility, "damage");
 }
Ejemplo n.º 49
0
        private static List <EncounterSlot> calcAbility(List <EncounterSlot> slots, Ability ability, Version version, byte intimidate)
        {
            int slotCount = slots.Count;

            switch (ability)
            {
            case Ability.Static:
                // counts the number of electrics
                int nbElec = 0;
                foreach (EncounterSlot e in slots)
                {
                    if (e.Species.Type1 == Type.Electric || e.Species.Type2 == Type.Electric)
                    {
                        nbElec++;
                    }
                }

                // Do nothing if no electric-types
                if (nbElec == 0)
                {
                    break;
                }

                // Half electric, half regular slots
                for (int i = 0; i < slotCount; i++)
                {
                    if (slots[i].Species.Type1 == Type.Electric || slots[i].Species.Type2 == Type.Electric)
                    {
                        slots.Add(new EncounterSlot(slots[i].Species, slots[i].MinLevel, slots[i].MaxLevel, 50m / nbElec));
                    }
                    slots[i].Percentage /= 2;
                }
                break;

            case Ability.MagnetPull:
                // counts the number of steels
                int nbSteels = 0;
                foreach (EncounterSlot e in slots)
                {
                    if (e.Species.Type1 == Type.Steel || e.Species.Type2 == Type.Steel)
                    {
                        nbSteels++;
                    }
                }

                // Do nothing if no steel-types
                if (nbSteels == 0)
                {
                    break;
                }

                // Half steel, half regular slots
                for (int i = 0; i < slotCount; i++)
                {
                    if (slots[i].Species.Type1 == Type.Steel || slots[i].Species.Type2 == Type.Steel)
                    {
                        slots.Add(new EncounterSlot(slots[i].Species, slots[i].MinLevel, slots[i].MaxLevel, 50m / nbSteels));
                    }
                    slots[i].Percentage /= 2;
                }
                break;

            case Ability.Pressure:
                // Three cases. 1: Each slot has a single Level. 2: At least one slot has MinLevel != MaxLevel (before Gen 5). 3: At least one slot has MinLevel != MaxLevel (Gen 5 onwards)

                // Cases 2 and 3.
                if (slots.Any(e => e.MinLevel != e.MaxLevel))
                {
                    // Case 3 -> Gen 5 onwards:
                    if (version >= Version.Black)
                    {
                        for (int i = 0; i < slotCount; i++)
                        {
                            slots[i].Percentage /= 2;
                            byte MaxLv   = 0;
                            int  capped  = 0;
                            int  lvRange = slots[i].MaxLevel - slots[i].MinLevel + 1;
                            foreach (EncounterSlot e in slots)
                            {
                                if (slots[i].Species.NatID == e.Species.NatID)
                                {
                                    MaxLv = Math.Max(MaxLv, e.MaxLevel);
                                }
                            }
                            capped = Math.Max(Math.Min((5 - (MaxLv - slots[i].MaxLevel)), lvRange), 0);

                            slots.Add(new EncounterSlot(slots[i].Species, Math.Min((byte)(slots[i].MinLevel + 5), MaxLv), Math.Min(slots[i].MaxLevel, MaxLv), slots[i].Percentage * (lvRange - capped) / lvRange));
                            slots.Add(new EncounterSlot(slots[i].Species, MaxLv, MaxLv, slots[i].Percentage * capped / lvRange));
                        }
                    }
                    // Case 2 -> Before Gen 5:
                    else
                    {
                        for (int i = 0; i < slotCount; i++)
                        {
                            slots[i].Percentage /= 2;
                            slots.Add(new EncounterSlot(slots[i].Species, slots[i].MaxLevel, slots[i].MaxLevel, slots[i].Percentage));
                        }
                    }
                }
                else
                {
                    // case 1.
                    for (int i = 0; i < slotCount; i++)
                    {
                        // Get Max Level of the species:
                        byte maxLv = 0;
                        foreach (EncounterSlot e in slots)
                        {
                            if (slots[i].Species.NatID == e.Species.NatID)
                            {
                                maxLv = Math.Max(maxLv, e.MaxLevel);
                            }
                        }

                        // Copy slot and replace levels.
                        slots.Add(new EncounterSlot(slots[i].Species, maxLv, maxLv, slots[i].Percentage / 2));

                        // Half percentage of slot i:
                        slots[i].Percentage /= 2;
                    }
                }

                break;

            case Ability.CuteCharm:
                // Genderless and fixed-gendered Pokémon are more likely to be found shiny.

                foreach (EncounterSlot s in slots)
                {
                    if (new[] { 0, 254, 255 }.Contains(s.Species.GenderRatio))
                    {
                        s.EffectivePercentage *= 3;
                    }
                }

                decimal sum = slots.Sum(s => s.EffectivePercentage);
                if (sum == 0)
                {
                    break;               // Repel level is too high. Prevents DivisionByZero exception when recalculating effective percentages.
                }
                foreach (EncounterSlot s in slots)
                {
                    s.EffectivePercentage *= (100 / sum);
                }

                break;

            case Ability.Intimidate:
                // Repels half of Pokémon with level below or equals intimidator's Level - 5 (strictly below Intimidator's Lv - 4)
                intimidate -= 4;
                int nbSlots = slots.Count;

                if (intimidate < 1)
                {
                    break;
                }

                for (int i = 0; i < nbSlots; i++)
                {
                    EncounterSlot s       = slots[i];
                    decimal       lvRange = Math.Max(0, Math.Min(1, (decimal)(s.MaxLevel - intimidate + 1) / (s.MaxLevel - s.MinLevel + 1)));
                    s.Percentage /= 2;
                    slots.Add(new EncounterSlot(s.Species, intimidate, s.MaxLevel, s.Percentage * lvRange));
                }

                //decimal sumPercent = slots.Sum(s => s.Percentage);

                //foreach (EncounterSlot s in slots)
                //    s.Percentage *= (100 / sumPercent);

                slots.RemoveAll(s => s.Percentage == 0m);

                break;

            default:
                break;
            }

            return(slots);
        }
Ejemplo n.º 50
0
 public ReturnToBase(Ability baseAbility)
     : base(baseAbility)
 {
 }
Ejemplo n.º 51
0
        public void Combo()
        {
            if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame)
            {
                return;
            }

            Active = Game.IsKeyDown(Menu.Item("Combo Key").GetValue <KeyBind>().Key) && !Game.IsChatOpen;
            if (Active && me.IsAlive)
            {
                e = Toolset.ClosestToMouse(me);
                if (e == null)
                {
                    return;
                }
                Q = me.Spellbook.SpellQ;

                W = me.Spellbook.SpellW;

                R = me.Spellbook.SpellR;

                // item
                sheep = e.ClassId == ClassId.CDOTA_Unit_Hero_Tidehunter ? null : me.FindItem("item_sheepstick");

                satanic = me.FindItem("item_satanic");

                shiva = me.FindItem("item_shivas_guard");

                dagon = me.Inventory.Items.FirstOrDefault(item => item.Name.Contains("item_dagon"));

                arcane = me.FindItem("item_arcane_boots");

                orchid = me.FindItem("item_orchid") ?? me.FindItem("item_bloodthorn");

                mom = me.FindItem("item_mask_of_madness");

                vail = me.FindItem("item_veil_of_discord");

                medall = me.FindItem("item_medallion_of_courage") ?? me.FindItem("item_solar_crest");

                ethereal = me.FindItem("item_ethereal_blade");

                blink = me.FindItem("item_blink");

                soul = me.FindItem("item_soul_ring");

                cheese = me.FindItem("item_cheese");

                halberd = me.FindItem("item_heavens_halberd");

                abyssal = me.FindItem("item_abyssal_blade");

                mjollnir = me.FindItem("item_mjollnir");
                var stoneModif = e.HasModifier("modifier_medusa_stone_gaze_stone");
                var linkens    = e.IsLinkensProtected();
                var noBlade    = e.HasModifier("modifier_item_blade_mail_reflect");
                if (e.IsVisible && me.Distance2D(e) <= 2300 && !noBlade)
                {
                    if (Menu.Item("orbwalk").GetValue <bool>() && me.Distance2D(e) <= 1900)
                    {
                        Orbwalking.Orbwalk(e, 0, 1600, true, true);
                    }
                    if (
                        R != null &&
                        R.CanBeCasted() &&
                        !me.HasModifier("modifier_nyx_assassin_vendetta") &&
                        me.Distance2D(e) <= 1400 &&
                        Menu.Item("Skills").GetValue <AbilityToggler>().IsEnabled(R.Name) &&
                        Utils.SleepCheck("R")
                        )
                    {
                        R.UseAbility();
                        Utils.Sleep(200, "R");
                    }

                    if (R != null && (R.IsInAbilityPhase || me.HasModifier("modifier_nyx_assassin_vendetta") || R.IsChanneling))
                    {
                        return;
                    }
                    if (R == null || !R.CanBeCasted() && !me.HasModifier("modifier_nyx_assassin_vendetta") ||
                        !Menu.Item("Skills").GetValue <AbilityToggler>().IsEnabled(R.Name))
                    {
                        if (stoneModif)
                        {
                            return;
                        }
                        float   angle = me.FindAngleBetween(e.Position, true);
                        Vector3 pos   = new Vector3((float)(e.Position.X - 100 * Math.Cos(angle)), (float)(e.Position.Y - 100 * Math.Sin(angle)), 0);
                        if (
                            blink != null &&
                            Q.CanBeCasted() &&
                            me.CanCast() &&
                            blink.CanBeCasted() &&
                            me.Distance2D(e) >= 300 &&
                            me.Distance2D(pos) <= 1180 &&
                            Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(blink.Name) &&
                            Utils.SleepCheck("blink")
                            )
                        {
                            blink.UseAbility(pos);
                            Utils.Sleep(250, "blink");
                        }
                        if ( // orchid
                            orchid != null &&
                            orchid.CanBeCasted() &&
                            me.CanCast() &&
                            !e.IsLinkensProtected() &&
                            !e.IsMagicImmune() &&
                            me.Distance2D(e) <= me.AttackRange + me.HullRadius + 50 &&
                            Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(orchid.Name) &&
                            Utils.SleepCheck("orchid")
                            )
                        {
                            orchid.UseAbility(e);
                            Utils.Sleep(250, "orchid");
                        } // orchid Item end
                        if ( // vail
                            vail != null &&
                            vail.CanBeCasted() &&
                            me.CanCast() &&
                            Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(vail.Name) &&
                            !e.IsMagicImmune() &&
                            Utils.SleepCheck("vail") &&
                            me.Distance2D(e) <= 1500
                            )
                        {
                            vail.UseAbility(e.Position);
                            Utils.Sleep(250, "vail");
                        }

                        if ( // ethereal
                            ethereal != null &&
                            ethereal.CanBeCasted() &&
                            (!vail.CanBeCasted() ||
                             vail == null) &&
                            me.CanCast() &&
                            !linkens &&
                            !e.IsMagicImmune() &&
                            Utils.SleepCheck("ethereal")
                            )
                        {
                            ethereal.UseAbility(e);
                            Utils.Sleep(150, "ethereal");
                        }

                        if ((vail == null || !vail.CanBeCasted() || !Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(vail.Name)) && (ethereal == null || !ethereal.CanBeCasted() || !Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(ethereal.Name)))
                        {
                            if ( // sheep
                                sheep != null &&
                                sheep.CanBeCasted() &&
                                me.CanCast() &&
                                !e.IsLinkensProtected() &&
                                !e.IsMagicImmune() &&
                                !e.IsStunned() &&
                                !e.IsHexed() &&
                                me.Distance2D(e) <= 1400 &&
                                !stoneModif &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(sheep.Name) &&
                                Utils.SleepCheck("sheep")
                                )
                            {
                                sheep.UseAbility(e);
                                Utils.Sleep(250, "sheep");
                            } // sheep Item end
                            if (
                                Q != null &&
                                Q.CanBeCasted() &&
                                Q.Cooldown <= 0 &&
                                me.Mana >= Q.ManaCost &&
                                !e.IsStunned() &&
                                !e.IsHexed() &&
                                me.Distance2D(e) <= Q.GetCastRange() + me.HullRadius &&
                                !e.IsMagicImmune() &&
                                Menu.Item("Skills").GetValue <AbilityToggler>().IsEnabled(Q.Name) &&
                                Utils.SleepCheck("Q"))
                            {
                                Q.CastSkillShot(e);
                                Utils.Sleep(100, "Q");
                            }
                            if (
                                W != null &&
                                W.CanBeCasted() &&
                                Menu.Item("Skills").GetValue <AbilityToggler>().IsEnabled(W.Name) &&
                                e.Mana >= (e.MaximumMana * 0.2) &&
                                me.Position.Distance2D(e.Position) < W.GetCastRange() &&
                                Utils.SleepCheck("W"))
                            {
                                W.UseAbility(e);
                                Utils.Sleep(100, "W");
                            }

                            if ( // SoulRing Item
                                soul != null &&
                                me.Health >= (me.MaximumHealth * 0.5) &&
                                me.Mana <= R.ManaCost &&
                                soul.CanBeCasted() &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(soul.Name) &&
                                Utils.SleepCheck("soul"))
                            {
                                soul.UseAbility();
                                Utils.Sleep(100, "soul");
                            } // SoulRing Item end

                            if ( // Arcane Boots Item
                                arcane != null &&
                                me.Mana <= Q.ManaCost &&
                                arcane.CanBeCasted() &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(arcane.Name) &&
                                Utils.SleepCheck("arcane"))
                            {
                                arcane.UseAbility();
                                Utils.Sleep(100, "arcane");
                            } // Arcane Boots Item end

                            if ( // Shiva Item
                                shiva != null &&
                                shiva.CanBeCasted() &&
                                me.CanCast() &&
                                !e.IsMagicImmune() &&
                                Utils.SleepCheck("shiva") &&
                                me.Distance2D(e) <= 600 &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(shiva.Name)
                                )
                            {
                                shiva.UseAbility();
                                Utils.Sleep(250, "shiva");
                            } // Shiva Item end

                            if ( // Medall
                                medall != null &&
                                medall.CanBeCasted() &&
                                me.CanCast() &&
                                !e.IsMagicImmune() &&
                                Utils.SleepCheck("Medall") &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(medall.Name) &&
                                me.Distance2D(e) <= 500
                                )
                            {
                                medall.UseAbility(e);
                                Utils.Sleep(250, "Medall");
                            } // Medall Item end

                            if ( // MOM
                                mom != null &&
                                mom.CanBeCasted() &&
                                me.CanCast() &&
                                Utils.SleepCheck("mom") &&
                                me.Distance2D(e) <= 700 &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(mom.Name)
                                )
                            {
                                mom.UseAbility();
                                Utils.Sleep(250, "mom");
                            } // MOM Item end

                            if (
                                // cheese
                                cheese != null &&
                                cheese.CanBeCasted() &&
                                me.Health <= (me.MaximumHealth * 0.3) &&
                                me.Distance2D(e) <= 700 &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(cheese.Name) &&
                                Utils.SleepCheck("cheese")
                                )
                            {
                                cheese.UseAbility();
                                Utils.Sleep(200, "cheese");
                            } // cheese Item end
                            if ( // Abyssal Blade
                                abyssal != null &&
                                abyssal.CanBeCasted() &&
                                me.CanCast() &&
                                !e.IsMagicImmune() &&
                                Utils.SleepCheck("abyssal") &&
                                me.Distance2D(e) <= 400 &&
                                !e.IsStunned() &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(abyssal.Name)
                                )
                            {
                                abyssal.UseAbility(e);
                                Utils.Sleep(250, "abyssal");
                            } // Abyssal Item end

                            if ( // Hellbard
                                halberd != null &&
                                halberd.CanBeCasted() &&
                                me.CanCast() &&
                                !e.IsMagicImmune() &&
                                Utils.SleepCheck("halberd") &&
                                me.Distance2D(e) <= 700 &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(halberd.Name)
                                )
                            {
                                halberd.UseAbility(e);
                                Utils.Sleep(250, "halberd");
                            } // Hellbard Item end

                            if ( // Dagon
                                me.CanCast() &&
                                dagon != null &&
                                (ethereal == null ||
                                 (e.HasModifier("modifier_item_ethereal_blade_slow") ||
                                  ethereal.Cooldown < 18)) &&
                                !e.IsLinkensProtected() &&
                                dagon.CanBeCasted() &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled("item_dagon") &&
                                !e.IsMagicImmune() &&
                                !stoneModif &&
                                Utils.SleepCheck("dagon")
                                )
                            {
                                dagon.UseAbility(e);
                                Utils.Sleep(200, "dagon");
                            } // Dagon Item end

                            if ( // Mjollnir
                                mjollnir != null &&
                                mjollnir.CanBeCasted() &&
                                me.CanCast() &&
                                !e.IsMagicImmune() &&
                                Utils.SleepCheck("mjollnir") &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(mjollnir.Name) &&
                                me.Distance2D(e) <= 900
                                )
                            {
                                mjollnir.UseAbility(me);
                                Utils.Sleep(250, "mjollnir");
                            } // Mjollnir Item end

                            if ( // Satanic
                                satanic != null &&
                                me.Health <= (me.MaximumHealth * 0.3) &&
                                satanic.CanBeCasted() &&
                                me.Distance2D(e) <= 700 &&
                                Utils.SleepCheck("Satanic") &&
                                Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(satanic.Name)
                                )
                            {
                                satanic.UseAbility();
                                Utils.Sleep(350, "Satanic");
                            } // Satanic Item end
                        }
                    }
                }
            }
            if (Menu.Item("Kill").GetValue <bool>() && me.IsAlive && (me.IsVisibleToEnemies || !me.IsInvisible()))
            {
                var enemies =
                    ObjectManager.GetEntities <Hero>()
                    .Where(x => x.IsVisible && x.IsAlive && x.Team != me.Team && !x.IsIllusion).ToList();
                double[] penitence = { 0, 1.15, 1.2, 1.25, 1.3 };
                double[] bloodrage = { 0, 1.15, 1.2, 1.25, 1.3 };
                double[] soul      = { 0, 1.2, 1.3, 1.4, 1.5 };

                if (enemies.Count <= 0)
                {
                    return;
                }
                foreach (var v in enemies)
                {
                    if (v == null)
                    {
                        return;
                    }

                    var wM   = new[] { 3.5, 4, 4.5, 5 };
                    var wDmg = me.TotalIntelligence * wM[W.Level - 1];

                    var damageW = Math.Floor(wDmg * (1 - v.MagicDamageResist));

                    var lens           = me.HasModifier("modifier_item_aether_lens");
                    var spellamplymult = 1 + (me.TotalIntelligence / 16 / 100);
                    if (v.NetworkName == "CDOTA_Unit_Hero_Spectre" && v.Spellbook.Spell3.Level > 0)
                    {
                        damageW =
                            Math.Floor(wDmg *
                                       (1 - (0.10 + v.Spellbook.Spell3.Level * 0.04)) * (1 - v.MagicDamageResist));
                    }

                    if (lens)
                    {
                        damageW = damageW * 1.08;
                    }
                    if (v.HasModifier("modifier_kunkka_ghost_ship_damage_absorb"))
                    {
                        damageW = damageW * 0.5;
                    }
                    if (v.HasModifier("modifier_item_mask_of_madness_berserk"))
                    {
                        damageW = damageW * 1.3;
                    }
                    if (v.HasModifier("modifier_bloodseeker_bloodrage"))
                    {
                        var blood =
                            ObjectManager.GetEntities <Hero>()
                            .FirstOrDefault(x => x.ClassId == ClassId.CDOTA_Unit_Hero_Bloodseeker);
                        if (blood != null)
                        {
                            damageW = damageW * bloodrage[blood.Spellbook.Spell1.Level];
                        }
                        else
                        {
                            damageW = damageW * 1.4;
                        }
                    }


                    if (v.HasModifier("modifier_chen_penitence"))
                    {
                        var chen =
                            ObjectManager.GetEntities <Hero>()
                            .FirstOrDefault(x => x.Team == me.Team && x.ClassId == ClassId.CDOTA_Unit_Hero_Chen);
                        if (chen != null)
                        {
                            damageW = damageW * penitence[chen.Spellbook.Spell1.Level];
                        }
                    }


                    if (v.HasModifier("modifier_shadow_demon_soul_catcher"))
                    {
                        var demon =
                            ObjectManager.GetEntities <Hero>()
                            .FirstOrDefault(x => x.Team == me.Team && x.ClassId == ClassId.CDOTA_Unit_Hero_Shadow_Demon);
                        if (demon != null)
                        {
                            damageW = damageW * soul[demon.Spellbook.Spell2.Level];
                        }
                    }
                    damageW = damageW * spellamplymult;

                    if (damageW > v.Mana)
                    {
                        damageW = v.Mana;
                    }


                    if (                     // vail
                        vail != null &&
                        vail.CanBeCasted() &&
                        W.CanBeCasted() &&
                        v.Health <= damageW * 1.25 &&
                        v.Health >= damageW &&
                        me.CanCast() &&
                        !v.HasModifier("modifier_item_veil_of_discord_debuff") &&
                        !v.IsMagicImmune() &&
                        Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(vail.Name) &&
                        me.Distance2D(v) <= W.GetCastRange() &&
                        Utils.SleepCheck("vail")
                        )
                    {
                        vail.UseAbility(v.Position);
                        Utils.Sleep(250, "vail");
                    }
                    int etherealdamage = (int)(((me.TotalIntelligence * 2) + 75));
                    if (             // vail
                        ethereal != null &&
                        ethereal.CanBeCasted() &&
                        W != null &&
                        W.CanBeCasted() &&
                        v.Health <= etherealdamage + damageW * 1.4 &&
                        v.Health >= damageW &&
                        me.CanCast() &&
                        !v.HasModifier("modifier_item_ethereal_blade_slow") &&
                        !v.IsMagicImmune() &&
                        Menu.Item("Items").GetValue <AbilityToggler>().IsEnabled(ethereal.Name) &&
                        me.Distance2D(v) <= ethereal.GetCastRange() + 50 &&
                        Utils.SleepCheck("ethereal")
                        )
                    {
                        ethereal.UseAbility(v);
                        Utils.Sleep(250, "ethereal");
                    }

                    if (W != null && v != null && W.CanBeCasted() &&
                        me.AghanimState() ? me.Distance2D(v) <= 1050 : me.Distance2D(v) <= W.GetCastRange() + 50 &&
                        !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") &&
                        !v.IsMagicImmune() &&
                        v.Health < damageW &&
                        Utils.SleepCheck(v.Handle.ToString()))
                    {
                        W.UseAbility(v);
                        Utils.Sleep(150, v.Handle.ToString());
                        return;
                    }
                }
            }
        }
Ejemplo n.º 52
0
 public frmAbilityDisplay(Ability objAbility)
 {
     InitializeComponent();
     LoadForm(objAbility);
 }
 public SpellSavingThrowQueueEntry(string spellName, Ability savingThrowAbility) : this()
 {
     SpellName          = spellName;
     SavingThrowAbility = savingThrowAbility;
 }
Ejemplo n.º 54
0
        //
        // Encounter rates calculation
        //
        internal static List <EncounterSlot> calcEncounterRate(EncounterSlot[] slots, Version version, Ability ability = Ability.None, byte repel = 0, byte intimidate = 0)
        {
            List <EncounterSlot> result = new List <EncounterSlot>();

            for (int i = 0; i < slots.Length; i++)
            {
                result.Add(new EncounterSlot(slots[i]));
            }
            result = calcAbility(result, ability, version, intimidate);
            result = calcRepel(result, repel);

            return(result);
        }
Ejemplo n.º 55
0
 // Token: 0x06000723 RID: 1827 RVA: 0x00006530 File Offset: 0x00004730
 public SkullBasher(Ability baseAbility) : base(baseAbility)
 {
 }
Ejemplo n.º 56
0
 public Fireblast(Ability baseAbility)
     : base(baseAbility)
 {
     this.DamageData = new SpecialData(baseAbility, "fireblast_damage");
 }
Ejemplo n.º 57
0
 public TalismanOfEvasion(Ability baseAbility)
     : base(baseAbility)
 {
 }
Ejemplo n.º 58
0
 // Token: 0x0600070D RID: 1805 RVA: 0x00006530 File Offset: 0x00004730
 public RingOfTarrasque(Ability baseAbility) : base(baseAbility)
 {
 }
 public brewmaster_cinder_brew(Ability ability)
     : base(ability)
 {
 }
Ejemplo n.º 60
0
        public override void BuyItems()
        {
            var enabledItems =
                Variables.ItemsToBuyNearDeath.OrderByDescending(x => Menu.GetNearDeathItemPriority(x.Key))
                .Where(x => Menu.IsNearDeathItemActive(x.Key))
                .Select(x => x.Value)
                .ToList();

            if (enabledItems.Contains(0))
            {
                enabledItems.InsertRange(enabledItems.FindIndex(x => x == 0), Player.QuickBuyItems);
                enabledItems.Remove(0);
            }

            var itemsToBuy     = new List <Tuple <Unit, uint> >();
            var unreliableGold = UnreliableGold;
            var reliableGold   = ReliableGold;

            if (ShouldSaveForBuyback(Menu.NearDeathSaveBuybackTime))
            {
                SaveBuyBackGold(out reliableGold, out unreliableGold);
            }

            var courier = ObjectManager.GetEntities <Courier>().FirstOrDefault(x => x.Team != enemyTeam && x.IsAlive);

            foreach (var itemID in enabledItems)
            {
                Unit unit;

                if (ItemsData.IsPurchasable(itemID, Hero.ActiveShop))
                {
                    unit = Hero;
                }
                else if (courier != null && ItemsData.IsPurchasable(itemID, courier.ActiveShop))
                {
                    unit = courier;
                }
                else
                {
                    continue;
                }

                switch (itemID)
                {
                case 40:     // dust
                    if (GetItemCount(itemID) >= 2)
                    {
                        continue;
                    }
                    break;

                case 42:     // observer
                case 43:     // sentry
                    if (GetWardsCount(itemID) >= 2)
                    {
                        continue;
                    }
                    break;

                case 46:     // teleport scroll
                    if (GetItemCount(itemID) >= 2 || Hero.FindItem("item_travel_boots", true) != null ||
                        Hero.FindItem("item_travel_boots_2", true) != null)
                    {
                        continue;
                    }
                    break;

                case 59:     // energy booster
                    if (Hero.FindItem("item_arcane_boots") != null)
                    {
                        continue;
                    }
                    break;

                case 188:     // smoke
                    if (GetItemCount(itemID) >= 1)
                    {
                        continue;
                    }
                    break;
                }

                var cost = Ability.GetAbilityDataByID(itemID).Cost;

                if (unreliableGold >= cost)
                {
                    itemsToBuy.Add(Tuple.Create(unit, itemID));
                    unreliableGold -= (int)cost;
                }
                else if (reliableGold + unreliableGold >= cost)
                {
                    itemsToBuy.Add(Tuple.Create(unit, itemID));
                    break;
                }
            }

            if (!Hero.IsAlive)
            {
                return;
            }

            itemsToBuy.ForEach(x => Player.BuyItem(x.Item1, x.Item2));

            if (itemsToBuy.Any())
            {
                Sleeper.Sleep(20000);
            }
        }