Example #1
0
        public override void Execute()
        {
            var target = TargetSelector2.GetTarget(Q.Range, DamageType.Physical);

            if (target != null && target.IsValidTarget(Q.Range))
            {
                PassiveManager.CastAutoAttack(target);

                if (Settings.UseQ && Q.IsReady() && target.IsValidTarget(Q.Range) && !target.IsZombie && Player.Instance.ManaPercent > Settings.Mana)
                {
                    SpellManager.CastQ();
                }

                if (Settings.UseTiamatHydra)
                {
                    ItemManager.UseHydra(target);
                }

                if (Settings.UseE && E.IsReady() && target.IsValidTarget(E.Range) && !target.IsZombie && Player.Instance.ManaPercent > Settings.Mana)
                {
                    E.Cast();
                }

                if (Settings.UseR && R.IsReady() && target.IsValidTarget(R.Range) && !target.IsZombie && Player.Instance.ManaPercent > Settings.Mana)
                {
                    SpellManager.CastR();
                }
            }
        }
 public virtual void InitializeSetup(Point startingGridPosition, TileScript startingTile)
 {
     Debug.Log("Calling LivingEntity.InitializeSetup...");
     // Get component references
     mySpriteRenderer = GetComponent <SpriteRenderer>();
     myAnimator       = GetComponent <Animator>();
     defender         = GetComponent <Defender>();
     enemy            = GetComponent <Enemy>();
     myPassiveManager = GetComponent <PassiveManager>();
     myPassiveManager.InitializeSetup();
     mySpellBook = GetComponent <SpellBook>();
     mySpellBook.InitializeSetup();
     // Set grid position 'Point'
     GridPosition = startingGridPosition;
     // Set our current tile
     TileCurrentlyOn = startingTile;
     // Set its tile to 'occupied' state
     //LevelManager.Instance.SetTileAsOccupiedByEntity(startingTile);
     startingTile.SetTileAsOccupiedByEntity(this);
     // Place tower in the centre point of the tile
     transform.position = startingTile.WorldPosition;
     // Add this to the list of all active enemy and defender characters
     LivingEntityManager.Instance.allLivingEntities.Add(this);
     // Face towards the opponents
     if (defender)
     {
         PositionLogic.Instance.SetDirection(this, "Right");
     }
     else if (enemy)
     {
         PositionLogic.Instance.SetDirection(this, "Left");
     }
     // Set up all base properties and values (damage, mobility etc)
     SetBaseProperties();
 }
 public BattleManager(BattleInterface listener)
 {
     this.listener = listener;
     calculate     = new BattleCalculator();
     activeManager = ActiveSkillManager.GetInstance();
     passiveSkill  = new PassiveManager();
     active        = new ActiveUse(this);
     enemyAI       = new EnemyAI(this);
     playerList    = new List <CharacterModel>();
     enemyList     = new List <CharacterModel>();
 }
Example #4
0
        internal static void Load()
        {
            Me     = ObjectManager.Player;
            SkinID = ObjectManager.Player.SkinId;

            SpellManager.Init();
            MenuManager.Init();
            PassiveManager.Init();
            Evade.EvadeManager.Init();
            Evade.EvadeTargetManager.Init();

            Obj_AI_Base.OnSpellCast += DoCastManager.Init;
            Game.OnUpdate           += UpdateManager.Init;
            Drawing.OnDraw          += DrawManager.Init;
        }
        internal static bool CastQ(Obj_AI_Hero target)
        {
            if (!Q.IsReady() || !target.IsValidTarget(Q.Range))
            {
                return(false);
            }

            if (Q.IsReady())
            {
                if (PassiveManager.PassiveCount(target) > 0)
                {
                    var pos = PassiveManager.CastQPosition(target);

                    if (Menu.Item("QUnder", true).GetValue <bool>() && pos.UnderTurret(true))
                    {
                        return(false);
                    }

                    if (Me.Distance(pos) > Q.Range)
                    {
                        return(false);
                    }

                    if (Me.Distance(pos) < 80)
                    {
                        return(false);
                    }

                    return(Q.Cast(pos));
                }
                else
                {
                    var pos = target.ServerPosition;

                    if (Menu.Item("QUnder", true).GetValue <bool>() && pos.UnderTurret(true))
                    {
                        return(false);
                    }

                    if (target.IsValidTarget(Q.Range) && Me.Distance(target) >= 100)
                    {
                        Q.Cast(target.ServerPosition);
                    }
                }
            }

            return(false);
        }
        private static void ForcusAttack(Obj_AI_Hero target)
        {
            if (Me.Spellbook.IsAutoAttacking ||
                (target.DistanceToPlayer() <= Orbwalking.GetRealAutoAttackRange(Me) && Orbwalking.CanAttack()))
            {
                return;
            }

            if (Q.IsReady())
            {
                return;
            }

            var pos  = PassiveManager.OrbwalkerPosition(target);
            var path = Me.GetPath(pos);

            Orbwalker.SetOrbwalkingPoint(target.IsMoving
                ? (path.Length < 3 ? pos : path.Skip(path.Length / 2).FirstOrDefault()): pos);
        }
Example #7
0
        public override void Execute()
        {
            var target = TargetSelector2.GetTarget(Q.Range, DamageType.Physical);


            if (target != null && target.IsValidTarget(R.Range))
            {
                PassiveManager.CastAutoAttack(target);

                if (Settings.UseYomuus)
                {
                    ItemManager.UseYomu();
                }

                if (Settings.UseQ && Q.IsReady() && target.IsValidTarget(Q.Range) && !target.IsZombie)
                {
                    SpellManager.CastQ();
                }

                if (Settings.UseCutlassBotrk)
                {
                    ItemManager.UseCastables();
                }

                if (Settings.UseTiamatHydra)
                {
                    ItemManager.UseHydra(target);
                }

                if (Settings.UseE && E.IsReady() && target.IsValidTarget(E.Range) && !target.IsZombie)
                {
                    E.Cast();
                }

                if (Settings.UseR && R.IsReady() && target.IsValidTarget(R.Range) && !target.IsZombie && Config.Modes.Combo.UseRonTarget(target.ChampionName) && Player.Instance.HealthPercent <= Config.Modes.Combo.RSliderValue())
                {
                    SpellManager.CastR();
                }
            }
        }
Example #8
0
        private static float GetComboDamage(AIHeroClient unit, int maxStacks)
        {
            var d = 2 * Player.Instance.GetAutoAttackDamage(unit);

            if (ItemManager.BOTRK.IsReady() && ItemManager.BOTRK.IsOwned())
            {
                d += Player.Instance.GetItemDamage(unit, ItemId.Blade_of_the_Ruined_King);
            }

            if (ItemManager.Cutl.IsReady() && ItemManager.Cutl.IsOwned())
            {
                d += Player.Instance.GetItemDamage(unit, ItemId.Bilgewater_Cutlass);
            }

            if (ItemManager.RavenousHydra.IsReady() && ItemManager.RavenousHydra.IsOwned())
            {
                d += Player.Instance.GetItemDamage(unit, ItemId.Ravenous_Hydra_Melee_Only);
            }

            if (ItemManager.TitanicHydra.IsReady() && ItemManager.TitanicHydra.IsOwned())
            {
                d += Player.Instance.GetItemDamage(unit, ItemId.Titanic_Hydra);
            }

            if (ItemManager.Tiamat.IsReady() && ItemManager.Tiamat.IsOwned())
            {
                d += Player.Instance.GetItemDamage(unit, ItemId.Ravenous_Hydra_Melee_Only);
            }

            if (ItemManager.Sheen.IsReady() && ItemManager.Sheen.IsOwned())
            {
                d += Player.Instance.GetAutoAttackDamage(unit) + Player.Instance.BaseAttackDamage * 2;
            }

            if (ItemManager.TriForce.IsReady() && ItemManager.TriForce.IsOwned())
            {
                d += Player.Instance.GetAutoAttackDamage(unit) + Player.Instance.BaseAttackDamage * 3;
            }

            if ((Player.Instance.GetSpellSlotFromName("summonerdot") == SpellSlot.Summoner1 ||
                 Player.Instance.GetSpellSlotFromName("summonerdot") == SpellSlot.Summoner2) && Settings.UseIgnite && SpellManager.IG.IsReady())
            {
                d += Player.Instance.GetSummonerSpellDamage(unit, DamageLibrary.SummonerSpells.Ignite);
            }

            if (ComboSettings.UseQ && SpellManager.Q.IsReady())
            {
                d += Player.Instance.GetSpellDamage(unit, SpellSlot.Q);
            }

            if (ComboSettings.UseE && SpellManager.E.IsReady())
            {
                d += 2 * Player.Instance.GetAutoAttackDamage(unit);
            }

            if (maxStacks == 0)
            {
                if (SpellManager.R.IsReady())
                {
                    d += (float)PassiveManager.GetPassiveDamage(unit, 4);
                }
                else
                {
                    d += (float)PassiveManager.GetPassiveDamage(unit, PassiveManager.GetPassiveCount(unit));
                }
            }
            else
            {
                d += (float)PassiveManager.GetPassiveDamage(unit, maxStacks);
            }
            if (SpellManager.R.IsReady())
            {
                d += Player.Instance.GetSpellDamage(unit, SpellSlot.R);
            }

            return((float)d);
        }