/// <summary> /// Запуск заряженой молнии /// </summary> public void UseSpall(Map map, Game_Object_In_Call obj, IUnit unit, object property) { _unit = unit; bool upSpell = UnitGenerator.UpPlayerSpell(unit, this); if (unit.UnitFrozen == false && !_culdaunBool && LevelCast != 0 && !upSpell && !unit.Silenced && !unit.Hexed && !Paused) { if (unit.Mana >= ManaCost) ///Проверка есть ли мана на каст { Speed = unit.AttackSpeed; ///Флаг кулдауна _culdaunBool = true; ///Отнимаем нужное количество unit.Mana -= ManaCost; ///Создаем визуальный объект молния UC_Nature_Wrath arrow = new UC_Nature_Wrath(); 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.2; bullArrow.CurrentMap = map; bullArrow.Angel = unit.Angel; SPB_Item_Maelstrom male = new SPB_Item_Maelstrom(1) { Name = "SP_Nature_Wrath" }; bullArrow.Spells.Add(male); bullArrow.TrentDamage = 10; bullArrow.TrentArmor = 2; bullArrow.LifeTime = 15; bullArrow.Range = map.Width * 2; male.HitCount = 10; male.Multiply = 30; bullArrow.DemageMagic = 30; ///И его же добавим в масив всех объектов 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("SP_Nature_Wrath"); ///Таймер кулдауна заклинания _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 ///Маны нету { } } }
private void CreateBullet(EAngel angel, int mode, double speed, Buff buff) { Bullet bullArrow = new Bullet(); bullArrow.GameObject = new Game_Object_In_Call() { EnumCallType = EnumCallType.Bullet, }; ///Создаем визуальный объект стрела UC_Sf_Ult arrow = new UC_Sf_Ult(); arrow.ChengAngel(_unit.Angel); bullArrow.GameObject.View = arrow; bullArrow.UnitUsed = _unit; bullArrow.PositionX = _unit.PositionX; bullArrow.PositionY = _unit.PositionY; bullArrow.Speed = speed; if (buff.SoulCount > _damageMagic) { bullArrow.DemageMagic = buff.SoulCount; } else { bullArrow.DemageMagic = _damageMagic; } //UnitGenerator.MKB_Bush(bullArrow, _unit); ///Магический урон зависит от прокача стрел //bullArrow.DemageMagic = 5 * (int)property; bullArrow.MinusArmor = 3; bullArrow.SpeedSlow = 0.3; bullArrow.Mode = mode; bullArrow.CurrentMap = _map; bullArrow.Angel = angel; SPB_Item_Maelstrom mel = new SPB_Item_Maelstrom() { Name = "Fly" }; mel.HitCount = 10; mel.IsSfUlt = true; bullArrow.Range = 3; ///Поведение такое же как у стрел боника bullArrow.Spells.Add(mel); ///И его же добавим в масив всех объектов _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"); }