private void ModelShipChangedEventHandler(object sender, ShipChangedEventArgs e) { if (!e.Killed) { if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(invader)) { FrameworkElement invaderControl = InvadersHelper.InvaderControlFactory(invader, Scale); _invaders[invader] = invaderControl; _sprites.Add(invaderControl); } else { FrameworkElement invaderControl = _invaders[invader]; InvadersHelper.MoveElement(invaderControl, invader.Location.X, Scale, invader.Location.Y * Scale); InvadersHelper.ResizeElement(invaderControl, invader.Size.Width * Scale, invader.Size.Height * Scale); } } else if (e.ShipUpdated is Player) { if (_playerFlashing) { AnimatedImage playerImage = _playControl as AnimatedImage; _playerFlashing = false; } if (_playControl == null) { FrameworkElement playerControl = InvadersHelper.PlayerControlFactory(player, Scale); _sprites.Add(playerControl); } } } }
private void ModelShipChangedEventHandler(object sender, ShipChangedEventArgs e) { if (!e.IsKilled) { if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; CreateOrMoveInvader(invader); } else if (e.ShipUpdated is Player) { Player player = e.ShipUpdated as Player; StopPlayerFromFlashing(); CreatePlayer(player); } } else { if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(invader)) { return; } AnimatedImage invaderControl = _invaders[invader] as AnimatedImage; if (invaderControl != null) { invaderControl.InvaderShot(); _shotInvaders[invaderControl] = DateTime.Now; _invaders.Remove(invader); } } else if (e.ShipUpdated is Player) { AnimatedImage control = _playerControl as AnimatedImage; if (control != null) { control.StartFlashing(); } _isPlayerFlashing = true; } } }
private void ModelShipChangedEventHandler(object sender, ShipChangedEventArgs e) { if (!e.Killed) { if (e.ShipUpdated is Mothership) { Mothership mothership = e.ShipUpdated as Mothership; if (_mothershipControl == null) { _mothershipControl = InvadersHelper.ShipControlFactory(mothership, Scale); _sprites.Add(_mothershipControl); } else if (mothership.Escaped == true) { _sprites.Remove(_mothershipControl); _mothershipControl = null; } else { InvadersHelper.MoveElementOnCanvas(_mothershipControl, mothership.Location.X * Scale, mothership.Location.Y * Scale); InvadersHelper.ResizeElement(_mothershipControl, mothership.Size.Width * Scale, mothership.Size.Height * Scale); } } else if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(invader)) { FrameworkElement invaderControl = InvadersHelper.ShipControlFactory(invader, Scale); _invaders[invader] = invaderControl; _sprites.Add(invaderControl); } else { FrameworkElement invaderControl = _invaders[invader]; InvadersHelper.MoveElementOnCanvas(invaderControl, invader.Location.X * Scale, invader.Location.Y * Scale); InvadersHelper.ResizeElement(invaderControl, invader.Size.Width * Scale, invader.Size.Height * Scale); } } else if (e.ShipUpdated is Player) { if (_playerFlashing) { AnimatedImage playerImage = _playerControl as AnimatedImage; playerImage.StopFlashing(); _playerFlashing = false; } if (_playerControl == null) { _playerControl = InvadersHelper.ShipControlFactory(e.ShipUpdated as Player, Scale); _sprites.Add(_playerControl); } else { InvadersHelper.MoveElementOnCanvas(_playerControl, e.ShipUpdated.Location.X * Scale, e.ShipUpdated.Location.Y * Scale); InvadersHelper.ResizeElement(_playerControl, e.ShipUpdated.Size.Width * Scale, e.ShipUpdated.Size.Height * Scale); } } } else { if (e.ShipUpdated is Mothership) { Mothership deadMothership = e.ShipUpdated as Mothership; if (deadMothership == null) return; AnimatedImage deadMothershipControl = _mothershipControl as AnimatedImage; if (deadMothershipControl != null) { deadMothershipControl.InvaderShot(); _shotInvaders[deadMothershipControl] = DateTime.Now; _mothershipControl = null; } } else if (e.ShipUpdated is Invader) { Invader deadInvader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(deadInvader)) return; AnimatedImage deadInvaderControl = _invaders[deadInvader] as AnimatedImage; if (deadInvaderControl != null) { deadInvaderControl.InvaderShot(); _shotInvaders[deadInvaderControl] = DateTime.Now; _invaders.Remove(deadInvader); } } else if (e.ShipUpdated is Player) { AnimatedImage playerImage = _playerControl as AnimatedImage; if (playerImage != null) playerImage.StartFlashing(); _playerFlashing = true; } } }
private void ModelShipChangedEventHandler(object sender, ShipChangedEventArgs e) { if (!e.Killed) //If the ship is alive then move it to the next destination { if (e.ShipUpdated is Invader) { var invader = (Invader)e.ShipUpdated; if (!_invaders.ContainsKey(invader)) { var invaderControl = _gameEngineHelper.InvaderControlFactory(invader, Scale); _invaders.Add(invader, invaderControl); Sprites.Add(invaderControl); } else { var invaderControl = _invaders[invader]; _gameEngineHelper.MoveElementOnCanvas(invaderControl, invader.Location.X, invader.Location.Y, Scale); _gameEngineHelper.ResizeElement(invaderControl, invader.Size.Width, invader.Size.Height, Scale); } } else if (e.ShipUpdated is Player) { if (ViewModel.PlayerFlashing) { ViewModel.PlayerFlashing = false; var control = _playerControl as AnimatedImage; control?.StopFlashing(); } var player = e.ShipUpdated as Player; if (_playerControl == null) { _playerControl = _gameEngineHelper.PlayerControlFactory(player, Scale); Sprites.Add(_playerControl); } else { _gameEngineHelper.MoveElementOnCanvas(_playerControl, player.Location.X, player.Location.Y, Scale); _gameEngineHelper.ResizeElement(_playerControl, player.Size.Width, player.Size.Height, Scale); } } } else { //If the ship died if (e.ShipUpdated is Invader) { var invader = (Invader)e.ShipUpdated; if (!_invaders.ContainsKey(invader)) { return; } var invaderControl = _invaders[invader] as AnimatedImage; if (invaderControl == null) { return; } invaderControl.InvaderShot(); _shotInvaders[invaderControl] = DateTime.Now; _invaders.Remove(invader); } else if (e.ShipUpdated is Player) { var control = _playerControl as AnimatedImage; control?.StartFlashing(); ViewModel.PlayerFlashing = true; } } }
void ModelShipChangedEventHandler(object sender, ShipChangedEventArgs e) { if (!e.Killed) { if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(invader)) { FrameworkElement invaderControl = InvadersHelper.InvaderControlFactory(invader, Scale); _invaders[invader] = invaderControl; _sprites.Add(invaderControl); } else { FrameworkElement invaderControl = _invaders[invader]; InvadersHelper.MoveElementOnCanvas(invaderControl, invader.Location.X * Scale, invader.Location.Y * Scale); InvadersHelper.ResizeElement(invaderControl, invader.Size.Width * Scale, invader.Size.Height * Scale); } } else if (e.ShipUpdated is Player) { if (_playerFlashing) { _playerFlashing = false; AnimatedImage control = _playerControl as AnimatedImage; if (control != null) { control.StopFlashing(); } } Player player = e.ShipUpdated as Player; if (_playerControl == null) { _playerControl = InvadersHelper.PlayerControlFactory(player, Scale); _sprites.Add(_playerControl); } else { InvadersHelper.MoveElementOnCanvas(_playerControl, player.Location.X * Scale, player.Location.Y * Scale); InvadersHelper.ResizeElement(_playerControl, player.Size.Width * Scale, player.Size.Height * Scale); } } } else { if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(invader)) { return; } AnimatedImage invaderControl = _invaders[invader] as AnimatedImage; if (invaderControl != null) { invaderControl.InvaderShot(); _shotInvaders[invaderControl] = DateTime.Now; _invaders.Remove(invader); } } else if (e.ShipUpdated is Player) { AnimatedImage control = _playerControl as AnimatedImage; if (control != null) { control.StartFlashing(); } _playerFlashing = true; } } }
private void _model_ShipChanged(object sender, ShipChangedEventArgs e) { throw new NotImplementedException(); }
private void ShipChangedHandler(object sender, ShipChangedEventArgs e) { if (!e.Killed) // if ship is not killed { if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; AnimatedImage invaderControl; // set up preliminary data to create or alter invader sprites List <string> invaderNames = new List <string>(); for (int i = 1; i < 5; i++) { string invaderName = "Assets/" + invader._invaderType.ToString() + i + ".png"; invaderNames.Add(invaderName); } if (!_invaders.ContainsKey(e.ShipUpdated as Invader)) { invaderControl = InvadersHelper.InvaderControlFactory(invader, invaderNames, Scale) as AnimatedImage; //_invaders.Add(invader, invaderControl); _invaders[invader] = invaderControl; _sprites.Add(invaderControl); } else { invaderControl = _invaders[e.ShipUpdated as Invader]; InvadersHelper.MoveElementOnCanvas(invaderControl, e.X * Scale, e.Y * Scale); InvadersHelper.ResizeElement(invaderControl, invader.Size.Width * Scale, invader.Size.Height * Scale); } } else // if ship is Player { Player player = e.ShipUpdated as Player; if (_playerFlashing) { playerControl.StopFlashing(); _playerFlashing = false; } if (playerControl == null) { List <string> playerImage = new List <string>(); playerImage.Add("Assets/player.png"); playerControl = InvadersHelper.PlayerControlFactory(player, playerImage, Scale) as AnimatedImage; _sprites.Add(playerControl); } else { InvadersHelper.MoveElementOnCanvas(playerControl, e.X * Scale, e.Y * Scale); InvadersHelper.ResizeElement(playerControl, player.Size.Width * Scale, player.Size.Height * Scale); } } } else // if Ship is killed { if (e.ShipUpdated is Invader) // if ship is Invader { AnimatedImage invaderControl; Invader invader = e.ShipUpdated as Invader; if (_invaders.ContainsKey(invader as Invader)) { invaderControl = _invaders[e.ShipUpdated as Invader]; _invaders.Remove(invader as Invader); _shotInvaders.Add(invaderControl, DateTime.Now); invaderControl.FadeOut(); //// not sure where to put this resize element method //InvadersHelper.ResizeElement(invaderControl, invader.Size.Width * Scale, invader.Size.Height * Scale, // invader.Location.X * Scale, invader.Location.Y * Scale, Scale); } } else // if ship is Player { playerControl.StartFlashing(); _playerFlashing = true; //// not sure where to put this resize element method //InvadersHelper.ResizeElement(playerControl, e.ShipUpdated.Size.Width * Scale, // e.ShipUpdated.Size.Height * Scale, e.ShipUpdated.Location.X * Scale, e.ShipUpdated.Location.Y * Scale, Scale); } } }
private void ModelShipChangedEventHandler(object sender, ShipChangedEventArgs e) { if (!e.Killed) { switch (e.ShipUpdated) { case Invader _: var invader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(invader)) { var fe = InvadersHelper.InvaderControlFactory(invader, Scale); _invaders.Add(invader, fe); _sprites.Add(fe); } else { var fe = _invaders[invader]; InvadersHelper.MoveElementOnCanvas(fe, invader.Location.X * Scale, invader.Location.Y * Scale); InvadersHelper.ResizeElement(fe, invader.Size.Width * Scale, invader.Size.Height * Scale); } break; case Player _: if (_playerFlashing) { var playerControl = _playerControl as AnimatedImage; playerControl?.StopFlashing(); _playerFlashing = false; } var player = e.ShipUpdated as Player; if (_playerControl == null) { _playerControl = InvadersHelper.PlayerControlFactory(player, Scale); _sprites.Add(_playerControl); } else { InvadersHelper.MoveElementOnCanvas(_playerControl, player.Location.X * Scale, player.Location.Y * Scale); InvadersHelper.ResizeElement(_playerControl, player.Size.Width * Scale, player.Size.Height * Scale); } break; } } else { switch (e.ShipUpdated) { case Invader _: var invader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(invader)) { return; } if (_invaders[invader] is AnimatedImage invaderControl) { invaderControl.InvaderShot(); _shotInvaders[invaderControl] = DateTime.Now; _invaders.Remove(invader); } break; case Player _: var playerControl = (AnimatedImage)_playerControl; playerControl.StartFlashing(); _playerFlashing = true; OnPlayerShot(); break; } } }
private void ModelShipChangedEventHandler(object sender, ShipChangedEventArgs e) { if (!e.Killed) { if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; if (!_invaders.ContainsKey(invader)) { FrameworkElement invaderControl = InvadersHelper.InvaderFactory((int)invader.InvaderType, invader.Size.Width, invader.Size.Height, Scale, _timer.Interval); _sprites.Add(invaderControl); _invaders.Add(invader, invaderControl); InvadersHelper.SetCanvasLocation(invaderControl, invader.Location.X, invader.Location.Y, Scale); } else { FrameworkElement invaderControl = _invaders[invader]; InvadersHelper.MoveElementOnCanvas(invaderControl, invader.Location.X, invader.Location.Y, Scale); InvadersHelper.ResizeElement((AnimatedImage)invaderControl, invader.Size.Width, invader.Size.Height, Scale); } } else if (e.ShipUpdated is Player) { Player player = e.ShipUpdated as Player; if (_playerFlashing && !_model.PlayerDying) { _playerFlashing = false; AnimatedImage playerControl = (AnimatedImage)_playerControl; playerControl.StopFlashing(); } if (_playerControl == null) { _playerControl = InvadersHelper.PlayerFactory(player.Size.Width, player.Size.Height, Scale, _timer.Interval); _sprites.Add(_playerControl); InvadersHelper.SetCanvasLocation(_playerControl, player.Location.X, player.Location.Y, Scale); } else { InvadersHelper.MoveElementOnCanvas(_playerControl, player.Location.X, player.Location.Y, Scale); InvadersHelper.ResizeElement((AnimatedImage)_playerControl, player.Size.Width, player.Size.Height, Scale); } } } else { // Invader killed if (e.ShipUpdated is Invader) { Invader invader = e.ShipUpdated as Invader; if (_invaders.ContainsKey(invader)) { AnimatedImage invaderControl = (AnimatedImage)_invaders[invader]; invaderControl.InvaderShot(_timeLimitInvadersFadeoutSeconds); _shotInvaders.Add(invaderControl, DateTime.Now); _invaders.Remove(invader); } } // Player killed else if (e.ShipUpdated is Player) { Player player = e.ShipUpdated as Player; AnimatedImage playerControl = (AnimatedImage)_playerControl; playerControl.StartFlashing(); _playerFlashing = true; } } }