Exemplo n.º 1
0
 /// <summary>
 /// Reakcja na zanlezienie przez Vandala
 /// </summary>
 /// <param name="map">Mapa obiektów</param>
 public override void OnFound(Map.Map map)
 {
     if (!map.player.AudioSettings.IsMuted)
     {
         SoundEffect.MasterVolume = (float)map.player.AudioSettings.SoundVolume;
         this.found_soundEffect.Play();
     }
     map.addPlayersRacket(1);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Aktualizacja stanu rakiety
        /// </summary>
        /// <param name="gametime">Czas gry</param>
        /// <param name="map">Mapa obiektów</param>
        public override void Update(GameTime gametime, Map.Map map)
        {
            if (gametime.TotalGameTime.Milliseconds % 20 == 0 && is_fired)
            {
                int collision_x = x;
                int collision_y = y;
                switch (direction)
                {
                case Game.direction.down:
                    texture     = content.Load <Texture2D>("Textures\\racket_down");
                    collision_x = x;
                    collision_y = y + 1;

                    break;

                case Game.direction.up:
                    texture     = content.Load <Texture2D>("Textures\\racket_up");
                    collision_x = x;
                    collision_y = y - 1;

                    break;

                case Game.direction.left:
                    texture     = content.Load <Texture2D>("Textures\\racket_left");
                    collision_x = x - 1;
                    collision_y = y;

                    break;

                case Game.direction.right:
                    texture     = content.Load <Texture2D>("Textures\\racket_right");
                    collision_x = x + 1;
                    collision_y = y;

                    break;
                }

                if (map.getObject(collision_x, collision_y).GetType() != typeof(NonDestroyableObjects.Puste) && map.getObject(collision_x, collision_y) != this)
                {
                    if (map.player.Rackets > 0)
                    {
                        map.addPlayersRacket(-1);



                        //explosion
                        SoundEffect explosion_sound = content.Load <SoundEffect>("Audio\\explosion_sound");
                        if (!map.player.AudioSettings.IsMuted)
                        {
                            SoundEffect.MasterVolume = (float)map.player.AudioSettings.SoundVolume;
                            explosion_sound.Play();
                        }
                        int vandal_x = map.GetVandal().x;
                        int vandal_y = map.GetVandal().y;

                        Map.MapObject
                            obj = map.getObject(x - 1, y - 1);
                        if (obj is Zniszczalny)
                        {
                            (obj as Zniszczalny).OnDestroy(map);
                        }
                        else if (obj.GetType().IsSubclassOf(typeof(Characters.Enemy)))
                        {
                            (obj as Characters.Enemy).Die(map);
                        }
                        obj = map.getObject(x - 1, y + 1);
                        if (obj is Zniszczalny)
                        {
                            (obj as Zniszczalny).OnDestroy(map);
                        }
                        else if (obj.GetType().IsSubclassOf(typeof(Characters.Enemy)))
                        {
                            (obj as Characters.Enemy).Die(map);
                        }
                        obj = map.getObject(x - 1, y);
                        if (obj is Zniszczalny)
                        {
                            (obj as Zniszczalny).OnDestroy(map);
                        }
                        else if (obj.GetType().IsSubclassOf(typeof(Characters.Enemy)))
                        {
                            (obj as Characters.Enemy).Die(map);
                        }
                        obj = map.getObject(x, y - 1);
                        if (obj is Zniszczalny)
                        {
                            (obj as Zniszczalny).OnDestroy(map);
                        }
                        else if (obj.GetType().IsSubclassOf(typeof(Characters.Enemy)))
                        {
                            (obj as Characters.Enemy).Die(map);
                        }
                        obj = map.getObject(x, y + 1);
                        if (obj is Zniszczalny)
                        {
                            (obj as Zniszczalny).OnDestroy(map);
                        }
                        else if (obj.GetType().IsSubclassOf(typeof(Characters.Enemy)))
                        {
                            (obj as Characters.Enemy).Die(map);
                        }
                        obj = map.getObject(x + 1, y);
                        if (obj is Zniszczalny)
                        {
                            (obj as Zniszczalny).OnDestroy(map);
                        }
                        else if (obj.GetType().IsSubclassOf(typeof(Characters.Enemy)))
                        {
                            (obj as Characters.Enemy).Die(map);
                        }
                        obj = map.getObject(x + 1, y - 1);
                        if (obj is Zniszczalny)
                        {
                            (obj as Zniszczalny).OnDestroy(map);
                        }
                        else if (obj.GetType().IsSubclassOf(typeof(Characters.Enemy)))
                        {
                            (obj as Characters.Enemy).Die(map);
                        }
                        obj = map.getObject(x + 1, y + 1);
                        if (obj is Zniszczalny)
                        {
                            (obj as Zniszczalny).OnDestroy(map);
                        }
                        else if (obj.GetType().IsSubclassOf(typeof(Characters.Enemy)))
                        {
                            (obj as Characters.Enemy).Die(map);
                        }


                        //miejsce w ktorym rakieta sie zatrzymala
                        map.setObject(x, y, new NonDestroyableObjects.Puste(content, this.rectangle, x, y));
                    }
                }
                else
                {
                    map.setObject(collision_x, collision_y, this);
                    map.setObject(x, y, new NonDestroyableObjects.Puste(content, this.rectangle, x, y));
                    this.x = collision_x;
                    this.y = collision_y;
                }
            }
        }