Пример #1
0
        public static void CastE(AfterAttackEventArgs args)
        {
            if (!StructureclearMenu.ESliderButton.Enabled)
            {
                return;
            }

            if (StructureclearMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
            {
                return;
            }

            var safechek = StructureclearMenu.ERange;

            if (safechek.Enabled && GameObjects.Player.CountEnemyHeroesInRange(safechek.Value) != 0)
            {
                return;
            }

            var etarget = GameObjects.EnemyTurrets.FirstOrDefault(x => x.IsValidTarget(E.Range));

            if (etarget == null)
            {
                return;
            }

            if (!GameObjects.Player.InAutoAttackRange(etarget))
            {
                return;
            }
            E.Cast(Game.CursorPos);
        }
Пример #2
0
        public static void CastW(AfterAttackEventArgs args)
        {
            if (!JungleclearMenu.WSliderButton.Enabled)
            {
                return;
            }

            if (JungleclearMenu.WSliderButton.Value >= GameObjects.Player.ManaPercent)
            {
                return;
            }

            var target = args.Target as AIMinionClient;

            if (target == null)
            {
                return;
            }

            if (target.GetBuffCount("kaisapassivemarker") != 3)
            {
                return;
            }

            W.Cast(target.Position);
        }
        public void AfterAttack(AfterAttackEventArgs eventArgs)
        {
            var mapGrid = _mapManager.GetGrid(eventArgs.ClickLocation.GridID);
            var tile    = mapGrid.GetTileRef(eventArgs.ClickLocation);

            var   coordinates = mapGrid.GridTileToLocal(tile.GridIndices);
            float distance    = coordinates.Distance(_mapManager, Owner.Transform.GridPosition);

            if (distance > InteractionSystem.InteractionRange)
            {
                return;
            }

            var tileDef = (ContentTileDefinition)_tileDefinitionManager[tile.Tile.TypeId];

            if (tileDef.CanCrowbar)
            {
                var underplating = _tileDefinitionManager["underplating"];
                mapGrid.SetTile(eventArgs.ClickLocation, new Tile(underplating.TileId));
                _entitySystemManager.GetEntitySystem <AudioSystem>().Play("/Audio/items/crowbar.ogg", Owner);
                //Actually spawn the relevant tile item at the right position and give it some offset to the corner.
                var tileItem = Owner.EntityManager.SpawnEntity(tileDef.ItemDropPrototypeName, coordinates);
                tileItem.Transform.WorldPosition += (0.2f, 0.2f);
            }
        }
Пример #4
0
        public static void OnAfterAttack(object sender, AfterAttackEventArgs args)
        {
            if (args.Target == null || !args.Target.IsValidTarget())
            {
                return;
            }
            if (Orbwalker.ActiveMode == OrbwalkerMode.Combo && args.Target is AIHeroClient &&
                mainMenu["Combo"].GetValue <MenuBool>("Quse").Enabled&& !IsBurrowed())
            {
                if (QUnburrowed.Cast())
                {
                    Orbwalker.ResetAutoAttackTimer();
                }
            }
            if (Orbwalker.ActiveMode == OrbwalkerMode.Harass && args.Target is AIHeroClient &&
                mainMenu["Harass"].GetValue <MenuBool>("Quse").Enabled&& !IsBurrowed())
            {
                if (QUnburrowed.Cast())
                {
                    Orbwalker.ResetAutoAttackTimer();
                }
            }
            //var Etarget = EUnburrowed.GetTarget();

            //if (Orbwalker.ActiveMode == OrbwalkerMode.Combo && args.Target is AIHeroClient &&
            //    mainMenu["Combo"].GetValue<MenuBool>("Euse").Enabled && !IsBurrowed()&&GameObjects.Player.ManaPercent==100)
            //{
            //    EUnburrowed.Cast(Etarget);
            //}
        }
Пример #5
0
        public static void CastW(AfterAttackEventArgs args)
        {
            if (!ComboMenu.WSliderButton.Enabled || ComboMenu.WSliderButton.Value == 2)
            {
                return;
            }

            var target = args.Target as AIHeroClient;

            if (target == null)
            {
                return;
            }

            if (ComboMenu.WRange.Enabled && target.DistanceToPlayer() <= ComboMenu.WRange.Value)
            {
                return;
            }

            if (ComboMenu.WSliderButton.Value == 1 &&
                target.GetBuffCount("kaisapassivemarker") < ComboMenu.WSliderButton.Value - 1)
            {
                return;
            }

            var winput = W.GetPrediction(target);

            if (winput.Hitchance >= HitChance.High)
            {
                W.Cast(winput.UnitPosition);
            }
        }
Пример #6
0
 private static void Orbwalker_OnAfterAttack(object sender, AfterAttackEventArgs e)
 {
     if (Player.HavePassive() && Variables.TickCount - Last_E >= 1000)
     {
         CanUseQNow = true;
     }
 }
Пример #7
0
        public void AfterAttack(AfterAttackEventArgs eventArgs)
        {
            var attacked = eventArgs.Attacked;
            var mapGrid  = _mapManager.GetGrid(eventArgs.ClickLocation.GridID);
            var tile     = mapGrid.GetTileRef(eventArgs.ClickLocation);

            var   coordinates = mapGrid.GridTileToLocal(tile.GridIndices);
            float distance    = coordinates.Distance(_mapManager, Owner.Transform.GridPosition);

            if (distance > InteractionSystem.InteractionRange)
            {
                return;
            }

            var tileDef = (ContentTileDefinition)_tileDefinitionManager[tile.Tile.TypeId];

            if (tileDef.IsSubFloor && attacked == null && Stack.Use(1))
            {
                var desiredTile = _tileDefinitionManager[_outputTile];
                mapGrid.SetTile(eventArgs.ClickLocation, new Tile(desiredTile.TileId));
                _entitySystemManager.GetEntitySystem <AudioSystem>().Play("/Audio/items/genhit.ogg", Owner);
                if (Stack.Count < 1)
                {
                    Owner.Delete();
                }
            }
        }
Пример #8
0
        private static void OnAfterAttack(object sender, AfterAttackEventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }

            switch (Orbwalker.ActiveMode)
            {
            case OrbwalkerMode.LaneClear:
                var target = args.Target as AIMinionClient;
                if (target == null)
                {
                    return;
                }

                if (target.Health <= Player.GetAutoAttackDamage(target) * 3)
                {
                    return;
                }
                if (Q.IsReady())
                {
                    Jungleclear.CastQ();
                }

                if (W.IsReady())
                {
                    Jungleclear.CastW(args);
                }
                break;
            }
        }
Пример #9
0
        private static void OnAfterAttack(object sender, AfterAttackEventArgs args)
        {
            switch (Orbwalker.ActiveMode)
            {
            case OrbwalkerMode.Combo:
                Extra.CastW(args);
                break;

            case OrbwalkerMode.LaneClear:
                var target = args.Target as AIMinionClient;
                if (E.IsReady())
                {
                    Jungleclear.CastE();
                    Structureclear.CastE(args);
                }
                if (W.IsReady())
                {
                    if (target.IsJungle())
                    {
                        Jungleclear.CastW(args);
                    }
                }
                break;
            }
        }
 void IAfterAttack.AfterAttack(AfterAttackEventArgs eventArgs)
 {
     if (eventArgs.Attacked == null)
     {
         return;
     }
     if (eventArgs.Attacked.TryGetComponent <BodySystem.BodyManagerComponent>(out BodySystem.BodyManagerComponent bodyManager))
     {
         _surgeryOptionsCache.Clear();
         var toSend = new Dictionary <string, string>();
         foreach (var(key, value) in bodyManager.PartDictionary)
         {
             if (value.SurgeryCheck(_surgeryToolClass))
             {
                 _surgeryOptionsCache.Add(key, value);
                 toSend.Add(key, value.Name);
             }
         }
         if (_surgeryOptionsCache.Count > 0)
         {
             OpenSurgeryUI(eventArgs.User);
             UpdateSurgeryUI(eventArgs.User, toSend);
             _performerCache = eventArgs.User;
             _targetCache    = bodyManager;
         }
     }
 }
Пример #11
0
        void IAfterAttack.AfterAttack(AfterAttackEventArgs eventArgs)
        {
            if (eventArgs.Attacked == null)
            {
                return;
            }

            if (!eventArgs.Attacked.TryGetComponent(out DamageableComponent damagecomponent))
            {
                return;
            }
            if (Owner.TryGetComponent(out StackComponent stackComponent))
            {
                if (!stackComponent.Use(1))
                {
                    Owner.Delete();
                    return;
                }

                damagecomponent.TakeHealing(Damage, Heal);
                return;
            }
            damagecomponent.TakeHealing(Damage, Heal);
            Owner.Delete();
        }
Пример #12
0
        public static bool CastW(AfterAttackEventArgs args)
        {
            if (!ComboMenu.WBool.Enabled)
            {
                return(false);
            }

            return(W.Cast(args.Target.Position));
        }
Пример #13
0
        public static void CastQ(AfterAttackEventArgs args)
        {
            if (!ComboMenu.QBool.Enabled)
            {
                return;
            }

            Q.CastOnUnit(args.Target);
        }
Пример #14
0
 private static void OnAfterAttack(object sender, AfterAttackEventArgs args)
 {
     switch (Orbwalker.ActiveMode)
     {
     case OrbwalkerMode.Combo:
         if (E.IsReady())
         {
             Combo.CastE(args);
         }
         break;
     }
 }
Пример #15
0
        void IAfterAttack.AfterAttack(AfterAttackEventArgs eventArgs)
        {
            if (_teleporterType == TeleporterType.Directed)
            {
                TryDirectedTeleport(eventArgs.User, eventArgs.ClickLocation.ToMap(_mapManager));
            }

            if (_teleporterType == TeleporterType.Random)
            {
                TryRandomTeleport(eventArgs.User);
            }
        }
Пример #16
0
        public void AfterAttack(AfterAttackEventArgs eventArgs)
        {
            var tile    = eventArgs.ClickLocation.Grid.GetTile(eventArgs.ClickLocation);
            var tileDef = (ContentTileDefinition)tile.TileDef;

            if (tileDef.CanCrowbar)
            {
                var underplating = _tileDefinitionManager["underplating"];
                eventArgs.ClickLocation.Grid.SetTile(eventArgs.ClickLocation, underplating.TileId);
                _entitySystemManager.GetEntitySystem <AudioSystem>().Play("/Audio/items/crowbar.ogg", Owner);
            }
        }
Пример #17
0
        private static void OnAfterAttack(object sender, AfterAttackEventArgs args)
        {
            switch (Orbwalker.ActiveMode)
            {
            case OrbwalkerMode.Combo:
                if (Q.IsReady())
                {
                    Extra.CastQ(args);
                }
                break;

            case OrbwalkerMode.Harass:
                if (Q.IsReady())
                {
                    Harass.CastQ(args);
                }
                break;

            case OrbwalkerMode.LaneClear:
                var target = args.Target as AIMinionClient;
                if (Q.IsReady())
                {
                    Structureclear.CastQ(args);
                    if (target.IsJungle())
                    {
                        Jungleclear.CastQ(args);
                    }

                    if (target.IsMinion())
                    {
                        Laneclear.CastQ(args);
                        return;
                    }
                }

                if (E.IsReady())
                {
                    if (target.IsJungle())
                    {
                        Jungleclear.CastE(args);
                    }
                }
                break;

            case OrbwalkerMode.LastHit:
                if (Q.IsReady())
                {
                    Lasthit.CastQ(args);
                }
                break;
            }
        }
        public void AfterAttack(AfterAttackEventArgs eventArgs)
        {
            var mapGrid = _mapManager.GetGrid(eventArgs.ClickLocation.GridID);
            var tile    = mapGrid.GetTileRef(eventArgs.ClickLocation);
            var tileDef = (ContentTileDefinition)_tileDefinitionManager[tile.Tile.TypeId];

            if (tileDef.CanCrowbar)
            {
                var underplating = _tileDefinitionManager["underplating"];
                mapGrid.SetTile(eventArgs.ClickLocation, new Tile(underplating.TileId));
                _entitySystemManager.GetEntitySystem <AudioSystem>().Play("/Audio/items/crowbar.ogg", Owner);
            }
        }
Пример #19
0
        void IAfterAttack.AfterAttack(AfterAttackEventArgs eventArgs)
        {
            if (_teleporterType == TeleporterType.Directed)
            {
                var userTarget = eventArgs.ClickLocation.ToWorld(_mapManager);
                TryDirectedTeleport(eventArgs.User, userTarget);
            }

            if (_teleporterType == TeleporterType.Random)
            {
                TryRandomTeleport(eventArgs.User);
            }
        }
Пример #20
0
        public static void CastQ(AfterAttackEventArgs args)
        {
            if (!JungleclearMenu.QSliderButton.Enabled)
            {
                return;
            }

            if (JungleclearMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
            {
                return;
            }
            Q.Cast(Game.CursorPos);
        }
Пример #21
0
        public static void CastQ(AfterAttackEventArgs args)
        {
            if (!JungleclearMenu.QSliderButton.Enabled)
            {
                return;
            }

            if (JungleclearMenu.QSliderButton.Value >= Player.ManaPercent)
            {
                return;
            }

            Q.CastOnUnit(args.Target);
        }
Пример #22
0
        /// <inheritdoc />
        public void AfterAttack(AfterAttackEventArgs eventArgs)
        {
            if (!_mapManager.TryGetGrid(eventArgs.ClickLocation.GridID, out var grid))
            {
                return;
            }

            var snapPos  = grid.SnapGridCellFor(eventArgs.ClickLocation, SnapGridOffset.Center);
            var snapCell = grid.GetSnapGridCell(snapPos, SnapGridOffset.Center);

            if (grid.GetTileRef(snapPos).Tile.IsEmpty)
            {
                return;
            }

            var found = false;

            foreach (var snapComp in snapCell)
            {
                if (!snapComp.Owner.HasComponent <PowerTransferComponent>())
                {
                    continue;
                }

                found = true;
                break;
            }

            if (found)
            {
                return;
            }

            bool hasItemSpriteComp = Owner.TryGetComponent(out SpriteComponent itemSpriteComp);

            if (Owner.TryGetComponent(out StackComponent stack) && !stack.Use(1))
            {
                return;
            }

            GridCoordinates coordinates = grid.GridTileToLocal(snapPos);
            var             newWire     = _entityManager.SpawnEntity("Wire", coordinates);

            if (newWire.TryGetComponent(out SpriteComponent wireSpriteComp) && hasItemSpriteComp)
            {
                wireSpriteComp.Color = itemSpriteComp.Color;
            }

            //TODO: There is no way to set this wire as above or below the floor
        }
Пример #23
0
        //private static void GameObject_OnCreate(GameObject sender, EventArgs args)
        //{

        //}

        private static void Orbwalker_OnAfterAttack(object sender, AfterAttackEventArgs e)
        {
            if (e.Target == null || !e.Target.IsValidTarget())
            {
                return;
            }
            if (Orbwalker.ActiveMode == OrbwalkerMode.Combo && e.Target is AIHeroClient)
            {
                if (E.Cast())
                {
                    Orbwalker.ResetAutoAttackTimer();
                }
            }
        }
Пример #24
0
 public static void OnAfterAttack(object sender, AfterAttackEventArgs args)
 {
     if (args.Target == null || !args.Target.IsValidTarget())
     {
         return;
     }
     if (Orbwalker.ActiveMode == OrbwalkerMode.Combo && args.Target is AIHeroClient && mainMenu["Combo"].GetValue <MenuBool>("Quse").Enabled)
     {
         if (Q.Cast())
         {
             Orbwalker.ResetAutoAttackTimer();
         }
     }
 }
Пример #25
0
 private static void Orbwalker_OnAfterAttack(object sender, AfterAttackEventArgs e)
 {
     if (aaa == false)
     {
         aaa = true;
     }
     if (baa == true)
     {
         baa = false;
     }
     if (oaa == true)
     {
         baa = false;
     }
 }
Пример #26
0
        private void Orbwalker_OnAfterAttack(object sender, AfterAttackEventArgs args)
        {
            if (autoE.Enabled && E.IsReady())
            {
                LogicE();
            }

            if (jungleE.Enabled && LaneClear && E.IsReady())
            {
                if (GameObjects.Jungle.Any(e => e.IsValidTarget(700) && e.NetworkId == args.Target.NetworkId))
                {
                    E.Cast(Game.CursorPos);
                }
            }
        }
Пример #27
0
        public static void CastQ(AfterAttackEventArgs args)
        {
            if (!ComboMenu.QBool.Enabled)
            {
                return;
            }

            var target = args.Target as AIHeroClient;

            if (target == null || !Extension.ShouldCastQ(target))
            {
                return;
            }

            Q.Cast(Game.CursorPos);
        }
Пример #28
0
        public static bool CastQ(AfterAttackEventArgs args)
        {
            if (!ComboMenu.QBool.Enabled)
            {
                return(false);
            }

            var target = args.Target as AIHeroClient;

            if (target == null)
            {
                return(false);
            }

            return(Q.CastOnUnit(target));
        }
Пример #29
0
        public static void OnAfterAttack(object sender, AfterAttackEventArgs args)
        {
            if (args.Target == null || !args.Target.IsValidTarget())
            {
                return;
            }


            if (Orbwalker.ActiveMode == OrbwalkerMode.Combo && args.Target is AIHeroClient &&
                mainMenu["Combo"].GetValue <MenuBool>("Wuse").Enabled&& ((GameObjects.Player.ManaPercent >= 50 && mainMenu["Combo"].GetValue <MenuBool>("empoweredW").Enabled) || !mainMenu["Combo"].GetValue <MenuBool>("empoweredW").Enabled))
            {
                if (W.Cast())
                {
                    Orbwalker.ResetAutoAttackTimer();
                }
            }
        }
        void IAfterAttack.AfterAttack(AfterAttackEventArgs eventArgs)
        {
            var location = eventArgs.User.GetComponent <ITransformComponent>().GridPosition;
            var angle    = new Angle(eventArgs.ClickLocation.ToWorld().Position - location.ToWorld().Position);
            var entities = IoCManager.Resolve <IServerEntityManager>().GetEntitiesInArc(eventArgs.User.GetComponent <ITransformComponent>().GridPosition, Range, angle, ArcWidth);

            foreach (var entity in entities)
            {
                if (!entity.GetComponent <ITransformComponent>().IsMapTransform || entity == eventArgs.User)
                {
                    continue;
                }

                if (entity.TryGetComponent(out DamageableComponent damagecomponent))
                {
                    damagecomponent.TakeDamage(DamageType.Brute, Damage);
                }
            }
        }