/// <summary> /// Этот метод наносит урон /// </summary> private void BoomMethod(int x, int y) { ///Если колба попала или должна исчезнуть ///Берем все ячейки вокруг колбы List <Point> roundPoint = UnitGenerator.RoundNumber(x, y); roundPoint.Add(new Point(x, y)); ///Теперь рисуем взрыв for (int i = 0; i < roundPoint.Count; i++) { Map_Cell callBoom = _map.Calls.FirstOrDefault(p => p.IndexLeft == roundPoint[i].X && p.IndexTop == roundPoint[i].Y); if (callBoom != null && !callBoom.Block) { UC_Alchemist_UnstableConcoction arrow = new UC_Alchemist_UnstableConcoction(); if (i == 0) { arrow.ChengAngel(EAngel.Left); } else if (i == 1) { arrow.ChengAngel(EAngel.Right); } else if (i == 2) { arrow.ChengAngel(EAngel.Top); } else if (i == 3) { arrow.ChengAngel(EAngel.Bottom); } else if (i == 4) { ///Центральная ячейка arrow.ChengAngelCenter(); } Bullet bullArrow = new Bullet(); bullArrow.GameObject = new Game_Object_In_Call() { EnumCallType = EnumCallType.Bullet, View = arrow }; bullArrow.UnitUsed = _bullet.UnitUsed; bullArrow.PositionX = (int)roundPoint[i].X; bullArrow.PositionY = (int)roundPoint[i].Y; bullArrow.Speed = 0; bullArrow.DemagePhys = _bullet.DemagePhys; bullArrow.CurrentMap = _map; bullArrow.Angel = _bullet.UnitUsed.Angel; bullArrow.Range = 0; ///И его же добавим в масив всех объектов _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); UnitGenerator.AddDamage(callBoom, bullArrow); UnitGenerator.AddStune(callBoom, bullArrow, _bullet.StunDuration); _boom.Add(bullArrow); } } _secondTimer = new Storyboard() { Duration = TimeSpan.FromSeconds(0.5) }; _secondTimer.Completed += _secondTimer_Completed; _secondTimer.Begin(); }
/// <summary> /// Запуск банки /// </summary> void ShutUnstableConcoction() { _imageTile.ChengImage("SP_Alchemist_UnstableConcoction"); _startShut = true; ///Создаем визуальный объект колбы UC_Alchemist_UnstableConcoction arrow = new UC_Alchemist_UnstableConcoction(); 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.DemageMagic = 5 * (int)property; if (LevelCast == 1) { bullArrow.DemagePhys = _unit.Demage + 3 * _power; } else if (LevelCast == 2) { bullArrow.DemagePhys = _unit.Demage + 6 * _power; } else if (LevelCast == 3) { bullArrow.DemagePhys = _unit.Demage + 9 * _power; } if (_power > 3) { bullArrow.StunDuration = 3; } else { bullArrow.StunDuration = _power * 1; } bullArrow.CurrentMap = _map; bullArrow.Angel = _unit.Angel; bullArrow.Range = _power * 2 - 1; bullArrow.Spells.Add(new SPB_Alchemist_UnstableConcoction() { 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"); }