public AngryBlock(GridBundle aGridBundle, int aLife, AngryBlockBundle aBundle) : base(aGridBundle)
 {
     myLife   = aLife;
     myBundle = aBundle;
     myBundle.AddBlock(this);
     myColor         = EBlockColor.Blue;
     myTileSetSprite = new SpriteTilesetAngry();
     //myAngryColor = "carrot"; // to be acquired from player choice or characteristics etc
     myTileSetSprite.SetColor(GetColorFromEnum());
 }
Esempio n. 2
0
        public override void Update()
        {
            base.Update();

            if (myPlayerInfo.myMappedActions.ActionIsActive("ConnectToNicos"))
            {
                NetworkConnectAsPeer(NetPeer.NicosIP);
            }

            if (myPlayerInfo.myMappedActions.ActionIsActive("ConnectToYlf"))
            {
                NetworkConnectAsHost(NetPeer.YlfsIP);
            }

            if (myPlayerInfo.myMappedActions.ActionIsActive("SendHardCodedMessage")) //M
            {
                SendHardCodedMessage();
            }

            if (myPlayerInfo.myMappedActions.ActionIsActive("RandomizeGrid"))
            {
                myGridBundle.Generator.GenerateGrid();
            }

            if (myPlayerInfo.myMappedActions.ActionIsActive("Pause"))
            {
                myIsPaused = !myIsPaused;
            }

            if (myPlayerInfo.myMappedActions.ActionIsActive("StepOnce"))
            {
                myGridBundle.Behavior.Update();
            }

            if (myPlayerInfo.myMappedActions.ActionIsActive("IncreaseGameSpeed"))
            {
                myGridBundle.Behavior.AddGameSpeed(0.5f);
            }

            if (myPlayerInfo.myMappedActions.ActionIsActive("SpawnAngryBundle"))
            {
                Point            angrySize   = new Point(6, 3);
                Point            position    = new Point(0, myGridBundle.Container.GetInitialHeight() + angrySize.Y);
                AngryBlockBundle angryBundle = myGridBundle.Generator.CreateAngryBlockBundleAtPosition(position, angrySize);
                myGridBundle.Behavior.AddAngryBundle(angryBundle);
            }
        }
        public AngryBlockBundle CreateAngryBlockBundleAtPosition(Point aPosition, int aWidth, int aHeight) //TETRIS!!
        {
            AngryBlockBundle angryBundle = new AngryBlockBundle(myGridBundle);

            if (aPosition.Y + aHeight > myGridBundle.Container.GetInitialHeight())
            {
                ExpandToHeight(aPosition.Y + aHeight);
            }

            for (int y = 0; y < aHeight; y++)
            {
                for (int x = 0; x < aWidth; x++)
                {
                    AngryBlock tempy = new AngryBlock(myGridBundle, y + 1, angryBundle);
                    tempy.LoadContent();
                    myGridBundle.Container.SetBlock(new Point(aPosition.X + x, aPosition.Y + y), tempy);
                }
            }
            angryBundle.Initialize(myNextAngryIndex++);
            return(angryBundle);
        }
Esempio n. 4
0
        protected virtual void ResolveAngryQueue() // todo, call (old?)
        {
            foreach (var angryInfo in myQueuedAngryBlocks)
            {
                int xPos = 0;
                if (angryInfo.mySizeX != myGridBundle.Container.GetInitialWidth())
                {
                    xPos = myGridBundle.GridRandomizer.Next(2) == 0 ? 0 : (myGridBundle.Container.GetInitialWidth() - angryInfo.mySizeX);
                }

                Point            position    = new Point(xPos, myGridBundle.Container.GetCurrentHeight() + angryInfo.mySizeY);
                AngryBlockBundle angryBundle = myGridBundle.Generator.CreateAngryBlockBundleAtPosition(position, angryInfo.GetSize());
                myGridBundle.Behavior.AddAngryBundle(angryBundle);

                if (this is RemotePlayer)
                {
                    Console.WriteLine($"Resolve at {myElapsedFrames}");
                }
            }

            myQueuedAngryBlocks.Clear();
        }
 public void AddAngryBundle(AngryBlockBundle aAngryBundle)
 {
     myAngryBundles.Add(aAngryBundle);
 }