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()); }
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); }
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); }