コード例 #1
0
ファイル: VisionControl.cs プロジェクト: XXXHake/Ensage-1
        private void AddWard <T>(EnemyHero enemy)
            where T : IWard
        {
            var wardPosition = enemy.WardPosition();

            if (units.OfType <T>()
                .Any(
                    x => !x.RequiresUpdate && Game.RawGameTime - x.CreateTime < 1 && x.Distance(wardPosition) <= x.UpdatableDistance &&
                    enemy.Angle(x) < 0.5))
            {
                return;
            }

            var shiftPosition = units.OfType <IWard>().Any(x => x.Distance(wardPosition) <= 50);

            if (shiftPosition)
            {
                wardPosition += new Vector3(60, 0, 0);
            }

            var ward = (IWard)Activator.CreateInstance(typeof(T), wardPosition, settings);

            units.Add(ward);

            if (settings.PingWards)
            {
                UpdateManager.BeginInvoke(() => PingWard(ward), 1000);
            }
        }
コード例 #2
0
ファイル: VisionControl.cs プロジェクト: tyljeff9408/Ensage
        private void AddWard <T>(EnemyHero enemy) where T : Ward
        {
            var wardPosition = enemy.WardPosition();
            var wardExists   =
                units.OfType <T>().Any(x => !x.RequiresUpdate && x.Distance(wardPosition) <= 400 && enemy.Angle(x) < 0.5);

            if (wardExists)
            {
                return;
            }

            var shiftPosition = units.OfType <Ward>().Any(x => x.Distance(wardPosition) <= 50);

            if (shiftPosition)
            {
                wardPosition += new Vector3(60, 0, 0);
            }

            units.Add((T)Activator.CreateInstance(typeof(T), wardPosition));
        }
コード例 #3
0
        private void AddWard <T>(EnemyHero enemy)
            where T : IWard
        {
            var wardPosition = enemy.WardPosition();

            if (units.OfType <T>()
                .Any(
                    x => !x.RequiresUpdate && Game.RawGameTime - x.CreateTime < 1 &&
                    x.Distance(wardPosition) <= x.UpdatableDistance && enemy.Angle(x) < 0.5))
            {
                return;
            }

            var shiftPosition = units.OfType <IWard>().Any(x => x.Distance(wardPosition) <= 50);

            if (shiftPosition)
            {
                wardPosition += new Vector3(60, 0, 0);
            }

            units.Add((IUnit)Activator.CreateInstance(typeof(T), wardPosition, settings));
        }