Example #1
0
        /// <summary>
        /// Запуск шарика который бъет врагов
        /// </summary>
        public void UseSpall(Map map, Game_Object_In_Call obj, IUnit unit, object property)
        {
            _unit = unit;

            if (unit.UnitFrozen == false &&
                !_culdaunBool && !unit.Silenced &&
                !unit.Hexed &&
                !Paused)
            {
                if (unit.Mana >= ManaCost)
                ///Проверка есть ли мана на каст
                {
                    Speed = unit.AttackSpeed;

                    ///Флаг кулдауна
                    _culdaunBool = true;

                    ///Отнимаем нужное количество
                    unit.Mana -= ManaCost;

                    ///Создаем визуальный объект шарик
                    UC_EasyMobAttackBall arrow = new UC_EasyMobAttackBall();
                    arrow.ViewBall(2);
                    //arrow.ChengAngel(unit.Angel);

                    Bullet bullArrow = new Bullet();
                    bullArrow.GameObject = new Game_Object_In_Call()
                    {
                        EnumCallType = EnumCallType.Bullet,
                        View         = arrow
                    };
                    bullArrow.UnitUsed   = unit;
                    bullArrow.PositionX  = unit.PositionX;
                    bullArrow.PositionY  = unit.PositionY;
                    bullArrow.Speed      = 0.25;
                    bullArrow.DemagePhys = unit.Demage;


                    ///Мкб микробаши не стакаются со снайперовыми
                    Random rand = new Random((int)DateTime.Now.Ticks);
                    if (30 > rand.Next(0, 100))
                    {
                        bullArrow.StunDuration = 1;
                    }

                    bullArrow.CurrentMap = map;
                    bullArrow.Angel      = unit.Angel;
                    bullArrow.Range      = _unit.Range;

                    bullArrow.Spells.Add(new SPB_EasyMobArrow()
                    {
                        Name = "Fly"
                    });

                    ///И его же добавим в масив всех объектов
                    map.GameObjectInCall.Add(bullArrow.GameObject);

                    Canvas.SetLeft(bullArrow.GameObject.View, bullArrow.PositionX * 50);
                    Canvas.SetTop(bullArrow.GameObject.View, bullArrow.PositionY * 50);
                    ///Отображение
                    map.MapCanvas.Children.Add(bullArrow.GameObject.View);

                    bullArrow.UseSpall("Fly");

                    ///Таймер кулдауна заклинания
                    _secondTimer = new Storyboard()
                    {
                        Duration = TimeSpan.FromSeconds(Culdaun)
                    };
                    _secondTimer.Completed += _secondTimer_Completed;
                    _secondTimer.Begin();

                    if (Paused)
                    {
                        Pause();
                    }

                    if (StartUseSpell != null)
                    {
                        StartUseSpell(this, null);
                    }

                    UnitGenerator.UpdatePlayerView(unit);
                }
                else
                ///Маны нету
                {
                }
            }
        }
Example #2
0
        /// <summary>
        /// Запуск шарика который бъет врагов
        /// </summary>
        public void UseSpall(Map map, Game_Object_In_Call obj, IUnit unit, object property)
        {
            _unit = unit;

            if (unit.UnitFrozen == false &&
                !_culdaunBool && !unit.Silenced &&
                !unit.Hexed &&
                !Paused)
            {
                if (unit.Mana >= ManaCost)
                ///Проверка есть ли мана на каст
                {
                    Speed = unit.AttackSpeed;

                    ///Флаг кулдауна
                    _culdaunBool = true;

                    ///Отнимаем нужное количество
                    unit.Mana -= ManaCost;

                    EAngel[] angels = new EAngel[] { EAngel.Left, EAngel.Top, EAngel.Right, EAngel.Bottom };

                    foreach (var item in angels)
                    {
                        ///Создаем визуальный объект шарик
                        UC_EasyMobAttackBall arrow = new UC_EasyMobAttackBall();
                        //arrow.ViewBall(1);
                        //arrow.ChengAngel(unit.Angel);

                        Bullet bullArrow = new Bullet();
                        bullArrow.GameObject = new Game_Object_In_Call()
                        {
                            EnumCallType = EnumCallType.Bullet,
                            View         = arrow
                        };
                        bullArrow.UnitUsed   = unit;
                        bullArrow.PositionX  = unit.PositionX;
                        bullArrow.PositionY  = unit.PositionY;
                        bullArrow.Speed      = 0.4;
                        bullArrow.DemagePhys = unit.Demage;

                        bullArrow.CurrentMap = map;
                        bullArrow.Angel      = item;
                        bullArrow.Range      = _unit.Range;
                        bullArrow.Splash     = 0.5;

                        bullArrow.Spells.Add(new SPB_Jinx_Zap_Roket()
                        {
                            Name = "Fly", ExplosionStyle = 1
                        });

                        ///И его же добавим в масив всех объектов
                        map.GameObjectInCall.Add(bullArrow.GameObject);

                        Canvas.SetLeft(bullArrow.GameObject.View, bullArrow.PositionX * 50);
                        Canvas.SetTop(bullArrow.GameObject.View, bullArrow.PositionY * 50);
                        ///Отображение
                        map.MapCanvas.Children.Add(bullArrow.GameObject.View);

                        bullArrow.UseSpall("Fly");
                    }

                    ///Таймер кулдауна заклинания
                    _secondTimer = new Storyboard()
                    {
                        Duration = TimeSpan.FromSeconds(Culdaun)
                    };
                    _secondTimer.Completed += _secondTimer_Completed;
                    _secondTimer.Begin();

                    if (Paused)
                    {
                        Pause();
                    }

                    if (StartUseSpell != null)
                    {
                        StartUseSpell(this, null);
                    }

                    UnitGenerator.UpdatePlayerView(unit);
                }
                else
                ///Маны нету
                {
                }
            }
        }