/// <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 ///Маны нету { } } }
/// <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 ///Маны нету { } } }