示例#1
0
 public Pipe(PointF position, int height, int width, string image, Map mapIn = null)
 {
     MapInside = mapIn;
     Position  = UnitImagesFactory.GetPosition(position.X, position.Y);
     ImageSize = UnitImagesFactory.GetSize(width, height);
     Image     = image;
 }
示例#2
0
 public Bonus(PointF position, string image, string type, PointF size)
 {
     BonusType = type;
     Position  = UnitImagesFactory.GetPosition(position.X, position.Y);
     ImageSize = UnitImagesFactory.GetSize(size.X, size.Y);
     Image     = image;
 }
示例#3
0
 public Block(PointF position, string imageSource, double heigth, double width, string blockType)
 {
     BlockType = blockType;
     Position  = UnitImagesFactory.GetPosition(position.X, position.Y);
     ImageSize = UnitImagesFactory.GetSize(width, heigth);
     Image     = imageSource;
 }
示例#4
0
 public Pipe(Image _ImageController, double height, double width, Map mapIn = null)
 {
     Position               = UnitImagesFactory.GetPosition(Canvas.GetLeft(_ImageController), Canvas.GetTop(_ImageController));
     ImageSize              = UnitImagesFactory.GetSize(width, height);
     Image                  = ImageController.Source.ToString();
     ImageController        = _ImageController;
     ImageController.Source = UnitImagesFactory.GetImageSource(_ImageController.Source.ToString());
 }
示例#5
0
 protected Coin(int capacity, PointF position, string image, PointF imageSize)
 {
     this.capacity          = capacity;
     ImageController        = new Image();
     ImageController.Source = UnitImagesFactory.GetImageSource(image);
     Position  = UnitImagesFactory.GetPosition(position.X, position.Y);
     ImageSize = UnitImagesFactory.GetSize(imageSize.X, imageSize.Y);
     Image     = image;
 }
示例#6
0
 public Coin(Image _ImageController, int capacity)
 {
     this.capacity          = capacity;
     Position               = UnitImagesFactory.GetPosition(Canvas.GetLeft(_ImageController), Canvas.GetTop(_ImageController));
     ImageSize              = UnitImagesFactory.GetSize(_ImageController.Height, _ImageController.Width);
     Image                  = _ImageController.Source.ToString();
     ImageController        = _ImageController;
     ImageController.Source = UnitImagesFactory.GetImageSource(_ImageController.Source.ToString());
 }
示例#7
0
 public Bonus(Image _ImageController, string bonusType)
 {
     BonusType              = bonusType;
     Position               = UnitImagesFactory.GetPosition(Canvas.GetLeft(_ImageController), Canvas.GetTop(_ImageController));
     ImageSize              = UnitImagesFactory.GetSize(_ImageController.Height, _ImageController.Width);
     Image                  = _ImageController.Source.ToString();
     ImageController        = _ImageController;
     ImageController.Source = UnitImagesFactory.GetImageSource(_ImageController.Source.ToString());
 }
示例#8
0
 public Dragon()
 {
     Name   = "Dragon";
     Health = 50;
     //old
     Picture = Image.Load("Dragon.jpg");
     //new
     Picture = UnitImagesFactory.CreateDragonImage();
 }
示例#9
0
 public Goblin()
 {
     Name   = "Goblin";
     Health = 8;
     //old
     Picture = Image.Load("Goblin.jpg");
     //new
     Picture = UnitImagesFactory.CreateGoblinImage();
 }
 virtual public void Seat(MapUnit Unit, bool direction)
 {
     if (this is Mario)
     {
         ImageController.Source = UnitImagesFactory.GetImageSource(@"../../Views/Source/Images/Mario/MarioSleept.png");
     }
     if (this is Luigi)
     {
         ImageController.Source = UnitImagesFactory.GetImageSource(@"../../Views/Source/Images/Luigi/Luigi.png");
     }
 }
示例#11
0
        protected Enemy(PointF position, PointF size, string image)
        {
            Random r = new Random();
            int    k = r.Next(0, 100);

            CurrentDirection = k % 2 == 0 ? true : false;

            Position  = UnitImagesFactory.GetPosition(position.X, position.Y);
            ImageSize = UnitImagesFactory.GetSize(size.X, size.Y);
            Image     = image;
        }
示例#12
0
        public Enemy(Image _ImageController)
        {
            Position  = UnitImagesFactory.GetPosition(Canvas.GetLeft(_ImageController), Canvas.GetTop(_ImageController));
            ImageSize = UnitImagesFactory.GetSize(_ImageController.Height, _ImageController.Width);
            Image     = _ImageController.Source.ToString();
            Random r = new Random();
            int    k = r.Next(0, 100);

            CurrentDirection       = k % 2 == 0 ? true : false;
            ImageController        = _ImageController;
            ImageController.Source = UnitImagesFactory.GetImageSource(_ImageController.Source.ToString());
        }
示例#13
0
 private Mario(Image _ImageController)
 {
     Position               = UnitImagesFactory.GetPosition(Canvas.GetLeft(_ImageController), Canvas.GetTop(_ImageController));
     ImageSize              = UnitImagesFactory.GetSize(_ImageController.Width, _ImageController.Height);
     Image                  = _ImageController.Source.ToString();
     ImageController        = _ImageController;
     ImageController.Source = UnitImagesFactory.GetImageSource(_ImageController.Source.ToString());
     LifeCount              = 3;
     BonusNumber            = 0;
     Score                  = 0;
     ShootAbility           = false;
     SwimAbility            = false;
     FlyAbility             = false;
     CoinsQuantity          = 0;
     Direction              = true;
 }
示例#14
0
 private Mario(PointF pos, PointF imageSize)
 {
     Position               = pos;
     LifeCount              = 3;
     BonusNumber            = 0;
     Score                  = 0;
     ShootAbility           = false;
     SwimAbility            = false;
     FlyAbility             = false;
     CoinsQuantity          = 0;
     Image                  = @"../../Views/Source/Images/Mario/NormRight.png";
     ImageSize              = imageSize;
     ImageController        = new Image();
     ImageController.Source = UnitImagesFactory.GetImageSource(Image);
     Direction              = true;
 }
示例#15
0
        public bool FillMap(Canvas gameCanvas, Image background, StackPanel panel, Mario _Mario, Luigi _Luigi, Difficulty difficulty)
        {
            gameCanvas.Width  = Wigth;
            background.Source = UnitImagesFactory.GetImageSource(BackgrounImageSource);
            GeneralObject.MainFacade.PlayStopSound(GeneralObject._backgroundPlayer, Facade.playingCommand.play, SoundSource, Facade.PlayingType.loop);
            FillingBackground(panel, gameCanvas, background);
            foreach (Coin coin in Coins)
            {
                coin.ImageController         = new Image();
                coin.ImageController.Source  = UnitImagesFactory.GetImageSource(coin.Image);
                coin.ImageController.Width   = coin.ImageSize.X;
                coin.ImageController.Height  = coin.ImageSize.Y;
                coin.ImageController.Stretch = Stretch.Fill;
                Canvas.SetTop(coin.ImageController, coin.Position.Y);
                Canvas.SetLeft(coin.ImageController, coin.Position.X);
                gameCanvas.Children.Add(coin.ImageController);
            }
            foreach (Block block in Blocks)
            {
                block.ImageController         = new Image();
                block.ImageController.Source  = UnitImagesFactory.GetImageSource(block.Image);
                block.ImageController.Width   = block.ImageSize.X;
                block.ImageController.Height  = block.ImageSize.Y;
                block.ImageController.Stretch = Stretch.Fill;
                Canvas.SetTop(block.ImageController, block.Position.Y);
                Canvas.SetLeft(block.ImageController, block.Position.X);
                gameCanvas.Children.Add(block.ImageController);
            }
            foreach (Pipe pipe in Pipes)
            {
                pipe.ImageController         = new Image();
                pipe.ImageController.Source  = UnitImagesFactory.GetImageSource(pipe.Image);
                pipe.ImageController.Width   = pipe.ImageSize.X;
                pipe.ImageController.Height  = pipe.ImageSize.Y;
                pipe.ImageController.Stretch = Stretch.Fill;
                Canvas.SetTop(pipe.ImageController, pipe.Position.Y);
                Canvas.SetLeft(pipe.ImageController, pipe.Position.X);
                gameCanvas.Children.Add(pipe.ImageController);
            }
            foreach (Bonus bonus in Bonuses)
            {
                bonus.ImageController         = new Image();
                bonus.ImageController.Source  = UnitImagesFactory.GetImageSource(bonus.Image);
                bonus.ImageController.Width   = bonus.ImageSize.X;
                bonus.ImageController.Height  = bonus.ImageSize.Y;
                bonus.ImageController.Stretch = Stretch.Fill;
                Canvas.SetTop(bonus.ImageController, bonus.Position.Y);
                Canvas.SetLeft(bonus.ImageController, bonus.Position.X);
                gameCanvas.Children.Add(bonus.ImageController);
            }
            List <MapUnit> enemy_additional = new List <MapUnit>();

            foreach (Enemy enemy in Enemies)
            {
                int quantity = 0;
                if (difficulty.Equals(Difficulty.Middle))
                {
                    quantity = 1;
                }
                if (difficulty.Equals(Difficulty.Hard))
                {
                    quantity = 2;
                }
                enemy.ImageController         = new Image();
                enemy.ImageController.Source  = UnitImagesFactory.GetImageSource(enemy.Image);
                enemy.ImageController.Width   = enemy.ImageSize.X;
                enemy.ImageController.Height  = enemy.ImageSize.Y;
                enemy.ImageController.Stretch = Stretch.Fill;
                Canvas.SetTop(enemy.ImageController, enemy.Position.Y);
                Canvas.SetLeft(enemy.ImageController, enemy.Position.X);
                gameCanvas.Children.Add(enemy.ImageController);
                for (int i = 0; i < quantity; i++)
                {
                    var new_enemy = enemy.Clone();
                    var temp      = MapUnit.CheckOut(new_enemy.Position.X + GeneralObject.cellSize.X, new_enemy.Position.Y, GeneralObject._gameModel.CurrentLevel, null);
                    if (temp == null)
                    {
                        new_enemy.Position = UnitImagesFactory.GetPosition(new_enemy.Position.X + GeneralObject.cellSize.X, new_enemy.Position.Y);
                    }
                    else
                    {
                        temp = MapUnit.CheckOut(new_enemy.Position.X, new_enemy.Position.Y + GeneralObject.cellSize.Y, GeneralObject._gameModel.CurrentLevel, null);
                        if (temp == null)
                        {
                            new_enemy.Position = UnitImagesFactory.GetPosition(new_enemy.Position.X, new_enemy.Position.Y + GeneralObject.cellSize.Y);
                        }
                        else
                        {
                            temp = MapUnit.CheckOut(new_enemy.Position.X, new_enemy.Position.Y - GeneralObject.cellSize.Y, GeneralObject._gameModel.CurrentLevel, null);
                            if (temp == null)
                            {
                                new_enemy.Position = UnitImagesFactory.GetPosition(new_enemy.Position.X, new_enemy.Position.Y - GeneralObject.cellSize.Y);
                            }
                            else
                            {
                                temp = MapUnit.CheckOut(new_enemy.Position.X - GeneralObject.cellSize.X, new_enemy.Position.Y, GeneralObject._gameModel.CurrentLevel, null);
                                if (temp == null)
                                {
                                    new_enemy.Position = UnitImagesFactory.GetPosition(new_enemy.Position.X - GeneralObject.cellSize.X, new_enemy.Position.Y);
                                }
                            }
                        }
                    }
                    if (!new_enemy.Position.Equals(enemy.Position))
                    {
                        new_enemy.ImageController.Width   = new_enemy.ImageSize.X;
                        new_enemy.ImageController.Height  = new_enemy.ImageSize.Y;
                        new_enemy.ImageController.Stretch = Stretch.Fill;
                        Canvas.SetTop(new_enemy.ImageController, new_enemy.Position.Y);
                        Canvas.SetLeft(new_enemy.ImageController, new_enemy.Position.X);
                        enemy_additional.Add(new_enemy);
                        gameCanvas.Children.Add(new_enemy.ImageController);
                    }
                }
            }
            foreach (var enemy in enemy_additional)
            {
                Enemies.Add(enemy);
            }
            if (_Mario != null)
            {
                _Mario.ImageController         = new Image();
                _Mario.ImageController.Source  = UnitImagesFactory.GetImageSource(_Mario.Image);
                _Mario.ImageController.Width   = _Mario.ImageSize.X;
                _Mario.ImageController.Height  = _Mario.ImageSize.Y;
                _Mario.ImageController.Stretch = Stretch.Fill;
                Canvas.SetTop(_Mario.ImageController, _Mario.Position.Y);
                Canvas.SetLeft(_Mario.ImageController, _Mario.Position.X);
                Panel.SetZIndex(_Mario.ImageController, 5);
                gameCanvas.Children.Add(_Mario.ImageController);
            }
            if (_Luigi != null && (GeneralObject._gameViewModel._quantity.Equals("Two") || GeneralObject.OnMap))
            {
                _Luigi.ImageController         = new Image();
                _Luigi.ImageController.Source  = UnitImagesFactory.GetImageSource(_Luigi.Image);
                _Luigi.ImageController.Width   = _Luigi.ImageSize.X;
                _Luigi.ImageController.Height  = _Luigi.ImageSize.Y;
                _Luigi.ImageController.Stretch = Stretch.Fill;
                Canvas.SetTop(_Luigi.ImageController, _Luigi.Position.Y);
                Canvas.SetLeft(_Luigi.ImageController, _Luigi.Position.X);
                Panel.SetZIndex(_Luigi.ImageController, 5);
                gameCanvas.Children.Add(_Luigi.ImageController);
            }
            return(true);
        }
        virtual public void Die()
        {
            if (this is Mario)
            {
                ImageController.Source = UnitImagesFactory.GetImageSource(@"../../Views/Source/Images/Mario/MarioSleept.png");
                GeneralObject._gameModel.CurrentLevel._Mario.timer.Stop();
            }
            else
            if (this is Luigi)
            {
                ImageController.Source = UnitImagesFactory.GetImageSource(@"../../Views/Source/Images/Luigi/Luigi.png");
                GeneralObject._gameModel.CurrentLevel._Luigi.timer.Stop();
            }
            var StartY     = Canvas.GetTop(ImageController);
            var EndY       = StartY - 150;
            var AnimationY = new DoubleAnimation(StartY, EndY, TimeSpan.FromSeconds(3));

            AnimationY.Completed += (sender, e) => {
                if (this is Mario)
                {
                    if (--GeneralObject._gameModel.CurrentLevel._Mario.LifeCount > 0)
                    {
                        GeneralObject.MainFacade.PlayStopSound(new MediaPlayer(), playingCommand.play, @"../../Views/Source/Sounds/mario_mamamia.wav", PlayingType.original);
                        var StartY1     = Canvas.GetTop(ImageController);
                        var EndY1       = GeneralObject.MarioStartPosition.Y;
                        var StartX1     = Canvas.GetLeft(ImageController);
                        var EndX1       = GeneralObject.MarioStartPosition.X;
                        var AnimationY1 = new DoubleAnimation(StartY1, EndY1, TimeSpan.FromMilliseconds(1));
                        var AnimationX1 = new DoubleAnimation(StartX1, EndX1, TimeSpan.FromMilliseconds(1));
                        ImageController.BeginAnimation(Canvas.TopProperty, AnimationY1);
                        ImageController.BeginAnimation(Canvas.TopProperty, AnimationX1);

                        ImageController.Source = UnitImagesFactory.GetImageSource(@"../../Views/Source/Images/Mario/NormRight.png");
                        Position = UnitImagesFactory.GetPosition(GeneralObject.MarioStartPosition.X, GeneralObject.MarioStartPosition.Y);
                        GeneralObject._gameModel.CurrentLevel._Mario.Start(new FallStrategy());
                    }
                    else
                    {
                        ImageController.Visibility = System.Windows.Visibility.Hidden;
                    }
                    if (GeneralObject._gameModel.CurrentLevel._Mario.LifeCount >= 0)
                    {
                        GeneralObject._gameModel.CurrentLevel._Mario.Notify();
                    }
                }
                else
                if (this is Luigi)
                {
                    if (--GeneralObject._gameModel.CurrentLevel._Luigi.LifeCount > 0)
                    {
                        GeneralObject.MainFacade.PlayStopSound(new MediaPlayer(), playingCommand.play, @"../../Views/Source/Sounds/luigi_mamamia.wav", PlayingType.original);
                        var StartY1     = Canvas.GetTop(ImageController);
                        var EndY1       = GeneralObject.LuigiStartPosition.Y;
                        var StartX1     = Canvas.GetLeft(ImageController);
                        var EndX1       = GeneralObject.LuigiStartPosition.X;
                        var AnimationY1 = new DoubleAnimation(StartY1, EndY1, TimeSpan.FromMilliseconds(1));
                        var AnimationX1 = new DoubleAnimation(StartX1, EndX1, TimeSpan.FromMilliseconds(1));
                        ImageController.BeginAnimation(Canvas.TopProperty, AnimationY1);
                        ImageController.BeginAnimation(Canvas.TopProperty, AnimationX1);
                        ImageController.Source = UnitImagesFactory.GetImageSource(@"../../Views/Source/Images/Luigi/luigi_game.png");
                        Position = UnitImagesFactory.GetPosition(GeneralObject.LuigiStartPosition.X, GeneralObject.LuigiStartPosition.Y);
                        GeneralObject._gameModel.CurrentLevel._Luigi.Start(new FallStrategy());
                    }
                    else
                    {
                        ImageController.Visibility = System.Windows.Visibility.Hidden;
                    }
                    if (GeneralObject._gameModel.CurrentLevel._Luigi.LifeCount >= 0)
                    {
                        GeneralObject._gameModel.CurrentLevel._Luigi.Notify();
                    }
                }
                if (GeneralObject._gameModel.CurrentLevel._Mario.LifeCount == 0 && GeneralObject._gameModel.CurrentLevel._Luigi.LifeCount == 0)
                {
                    GeneralObject._gameModel.isWon = "No";
                    GeneralObject.GameFrame.Navigate(new System.Uri(@"../../Views/XAMLs/EndOfGame.xaml", UriKind.Relative));
                    GameModel.SaveResults();
                }
            };
            ImageController.BeginAnimation(Canvas.TopProperty, AnimationY);
        }
示例#17
0
 public SwimmerDecorator(MovingObject decoratedObject) : base(decoratedObject)
 {
     ImageController.Source = UnitImagesFactory.GetImageSource(@"../../Views/Source/Images/Mario/MarioSwimmer.png");
 }