Exemple #1
0
        public void OnShapeChanged(ZazumoShapeChangedEvent @event)
        {
            if (@event.Shape == ZazumoShape.None)
            {
                foreach (var actor in ActorRepository.GetAllActors<FrogActor>())
                {
                    actor.Destroy();
                }

                if (this._mode == ZazumoActionMode.Shape)
                    this._mode = ZazumoActionMode.Normal;

                if (_fireButton != null)
                {
                    _fireButton.Destroy();
                    _fireButton = null;
                }

                if (_ammoMeter != null)
                {
                    _ammoMeter.Destroy();
                    _ammoMeter = null;
                }

                StopWormholes();

            }
            else
            {
                _fireButton = ActorFactory.Create<FireButton>(new UIResource { X = 0.86f, Y = 0.78f, Width = 0.1f, Height = 0.175f, SpriteKey = "Zazumo.Sprites.FireButton" });
                _ammoMeter = ActorFactory.Create<AmmoMeter>(new UIResource { X = 0.875f, Y = 0.15f, Width = 0.09f, Height = 0.6f, SpriteKey = "Zazumo.Sprites.AmmoMeter" });

                _fireButton.AnimateProperty("Opacity", 0.0f, 0.5f, TimeSpan.FromMilliseconds(500));
                _ammoMeter.AnimateProperty("Opacity", 0.0f, 0.5f, TimeSpan.FromMilliseconds(500));
                _ammoMeter.AmmoLevel = @event.AmmoLevel;
                _zazumo.SetAmmo(_ammoMeter);

                this._currentShape = @event.Shape;

                if (this._mode == ZazumoActionMode.Normal)
                    this._mode = ZazumoActionMode.Shape;


                foreach (var wormhole in ActorRepository.GetAllActors<WormholeActor>())
                {
                    if (wormhole.Shape == @event.Shape)
                        wormhole.AnimateProperty("Rotation", 0f, (Single)Math.PI * 2f, TimeSpan.FromSeconds(5), true);
                }

                foreach (var wormhole in ActorRepository.GetAllActors<PowerUpActor>())
                {
                    if (wormhole.Shape == @event.Shape)
                        wormhole.AnimateProperty("Rotation", 0f, (Single)Math.PI * 2f, TimeSpan.FromSeconds(5), true);
                }
            }
        }
Exemple #2
0
        protected override void OnInitialize(Object initializationData)
        {
            random = new Random();
            _mode = ZazumoActionMode.Normal;
            Subscribe<PlayerDiedEvent>(OnPlayerDied);
            Subscribe<ZazumoShapeChangedEvent>(OnShapeChanged);
            Subscribe<WormholeClosedEvent>(OnWormholeClosed);
            Subscribe<MiniBossDestroyedEvent>(OnMiniBossDestroyed);
            Subscribe<EnemyDestoryedEvent>(OnEnemyDestroyed);
            Subscribe<EnemyFlockDestroyedEvent>(OnEnemyFlockDestroyed);
            Subscribe<AmmoDepletedEvent>(OnAmmoDepleted);
            Subscribe<ZazumoSizeChangedEvent>(OnSizeChanged);
            Subscribe<PointsAwardedEvent>(OnPointsAwarded);
            Subscribe<BigPointsAwardedEvent>(OnBigPointsAwarded);
            Subscribe<BombAwardedEvent>(OnBombAwarded);
            Subscribe<BombDeployedEvent>(OnBombDeployed);

            this._currentShape = ZazumoShape.None;

            ResourceDictionary.LoadPackage("Packages/Zazumo");
            ResourceDictionary.LoadPackage("Packages/Level1");

            this._lives = 5;

            _bounds = new Rectangle(0, 0, 10, 6);

            this._scoreTextBlock = ActorFactory.Create<UITextBlockActor>(new Object(), new Vector2(25f, 25f));
            this._scoreTextBlock.FontKey = "ScoreFont";
            this._scoreTextBlock.Text = "0";
            this._scoreTextBlock.TextAlignment = UITextBlockActor.Alignment.Right;

            this._livesTextBlock = ActorFactory.Create<UITextBlockActor>(new Object(), new Vector2(60f, 425f));
            this._livesTextBlock.FontKey = "MainFont";
            this._livesTextBlock.Text = "X" + (_lives - 1).ToString();
            this._livesTextBlock.Color = Color.Black;
            this._livesTextBlock.TextAlignment = UITextBlockActor.Alignment.Left;

            this._background = ActorFactory.Create<DecoratorActor>(new Drawable { Height = _bounds.Height, Width = _bounds.Width, SpriteKey = "Level1.Sprites.Level1Background" }, new Vector2(_bounds.Left, _bounds.Top));
            this._backgroundR = ActorFactory.Create<DecoratorActor>(new Drawable { Height = _bounds.Height, Width = _bounds.Width, SpriteKey = "Level1.Sprites.Level1BackgroundR" }, new Vector2(_bounds.Right, _bounds.Top));
            this._backgroundCloud = ActorFactory.Create<DecoratorActor>(new Drawable { Height = _bounds.Height, Width = _bounds.Width, SpriteKey = "Level1.Sprites.Level1Cloud" }, new Vector2(_bounds.Left, _bounds.Top));
            this._backgroundCloudR = ActorFactory.Create<DecoratorActor>(new Drawable { Height = _bounds.Height, Width = _bounds.Width, SpriteKey = "Level1.Sprites.Level1CloudR" }, new Vector2(_bounds.Right, _bounds.Top));
            this._background.Opacity = 0.75f;
            this._backgroundR.Opacity = 0.75f;
            this._backgroundCloud.Opacity = 0.75f;
            this._backgroundCloudR.Opacity = 0.75f;


            ActorFactory.Create<DecoratorActor>(new Drawable { Height = 0.75f, Width = 0.375f, SpriteKey = "Zazumo.Sprites.RemainingLives" }, new Vector2(0.4f, _bounds.Bottom - 1.05f)).Opacity = 0.75f;


            WormholeActor wormhole;
            wormhole = ActorFactory.Create<WormholeActor>(new WormholeData { Width = 1.0f, Height = 1.0f, SpriteKey = "Zazumo.Sprites.StarWormhole", Size = 1, CollisionHullKey = "WormholeCollisionHull", CollisionGroup = 1, Shape = ZazumoShape.Star, 
                MiniBossData = new LevelSpawnData { SpawnType = SpawnType.Eye, Data = new EyeData { HitPoints = 3 } } }, new Vector2(0.5f, 0.5f));
            wormhole.SetProperty("Center", new Vector2(0.5f, 0.5f));
            
            wormhole = ActorFactory.Create<WormholeActor>(new WormholeData { Width = 2.5f, Height = 2.5f, SpriteKey = "Zazumo.Sprites.StarWormhole", Size = 4, CollisionHullKey = "WormholeCollisionHull", CollisionGroup = 1, Shape = ZazumoShape.Star, MiniBossData = new LevelSpawnData { SpawnType = SpawnType.Boulder, Data = new BoulderData { HitPoints = 3, EnemyCount = 4 } } }, new Vector2(3f, 1f));
            wormhole.SetProperty("Center", new Vector2(0.5f, 0.5f));
            
            wormhole = ActorFactory.Create<WormholeActor>(new WormholeData { Width = 3f, Height = 3f, SpriteKey = "Zazumo.Sprites.StarWormhole", Size = 5, CollisionHullKey = "WormholeCollisionHull", CollisionGroup = 1, Shape = ZazumoShape.Star, MiniBossData = new LevelSpawnData { SpawnType = SpawnType.Eye, Data = new EyeData { HitPoints = 3 } } }, new Vector2(6f, 3f));
            wormhole.SetProperty("Center", new Vector2(0.5f, 0.5f));

            ActorFactory.Create<WallVolume>(new VolumeWorldObject { Width = _bounds.Width, Height = 0.1f }, new Vector2(_bounds.Left + 0.2f, _bounds.Top + 0.2f));
            ActorFactory.Create<WallVolume>(new VolumeWorldObject { Width = 0.1f, Height = _bounds.Height }, new Vector2(_bounds.Left + 0.2f, _bounds.Top + 0.2f));
            ActorFactory.Create<WallVolume>(new VolumeWorldObject { Width = _bounds.Width, Height = 0.1f }, new Vector2(_bounds.Left + 0.2f, _bounds.Bottom - 0.2f));
            ActorFactory.Create<WallVolume>(new VolumeWorldObject { Width = 0.1f, Height = _bounds.Height }, new Vector2(_bounds.Right - 0.2f, _bounds.Top + 0.2f));

            ActorFactory.Create<DecoratorActor>(new Drawable { Height = 0.25f, Width = 0.25f, SpriteKey = "Zazumo.Sprites.TopLeftCornerBorder" }, new Vector2(_bounds.Left + 0.19f, _bounds.Top + 0.2f));
            ActorFactory.Create<DecoratorActor>(new Drawable { Height = 0.05f, Width = _bounds.Width - 0.8f, SpriteKey = "Zazumo.Sprites.HorizontalBorder" }, new Vector2(_bounds.Left + 0.4f, _bounds.Top + 0.2f));
            ActorFactory.Create<DecoratorActor>(new Drawable { Height = 0.25f, Width = 0.25f, SpriteKey = "Zazumo.Sprites.TopRightBorder" }, new Vector2(_bounds.Right - 0.415f, _bounds.Top + 0.2f));
            ActorFactory.Create<DecoratorActor>(new Drawable { Height = _bounds.Height - 0.8f, Width = 0.05f, SpriteKey = "Zazumo.Sprites.VerticalBorder" }, new Vector2(_bounds.Right - 0.25f, _bounds.Top + 0.4f));
            ActorFactory.Create<DecoratorActor>(new Drawable { Height = 0.25f, Width = 0.25f, SpriteKey = "Zazumo.Sprites.BottomRightBorder" }, new Vector2(_bounds.Right - 0.415f, _bounds.Bottom - 0.425f));
            ActorFactory.Create<DecoratorActor>(new Drawable { Height = 0.05f, Width = _bounds.Width - 0.8f, SpriteKey = "Zazumo.Sprites.HorizontalBorder" }, new Vector2(_bounds.Left + 0.4f, _bounds.Bottom - 0.25f));
            ActorFactory.Create<DecoratorActor>(new Drawable { Height = 0.25f, Width = 0.25f, SpriteKey = "Zazumo.Sprites.BottomLeftBorder" }, new Vector2(_bounds.Left + 0.19f, _bounds.Bottom - 0.425f));
            ActorFactory.Create<DecoratorActor>(new Drawable { Height = _bounds.Height - 0.8f, Width = 0.05f, SpriteKey = "Zazumo.Sprites.VerticalBorder" }, new Vector2(_bounds.Left + 0.2f, _bounds.Top + 0.4f));

            
            _normalSpawnData = (LevelSpawnData[])ResourceDictionary.GetResource("Level1NormalSpawnData");
            CreateZazumo();

            CreateClam();
        }
 public ZazumoShapeChangedEvent(Guid actorId, ZazumoShape shape, Single ammoLevel)
     : base(actorId)
 {
     this.Shape = shape;
     this.AmmoLevel = ammoLevel;
 }