diff --git a/Meteo_Engine.jar b/Meteo_Engine.jar index 5d109d2..4b234c4 100644 Binary files a/Meteo_Engine.jar and b/Meteo_Engine.jar differ diff --git a/src/sig/BlockClump.java b/src/sig/BlockClump.java index b4a2e82..a41241f 100644 --- a/src/sig/BlockClump.java +++ b/src/sig/BlockClump.java @@ -47,6 +47,12 @@ public class BlockClump { this.blocks.add(b); } } + public void removeBlock(Block...blocks) { + for (Block b : blocks) { + updateBlockCollision(); + this.blocks.remove(b); + } + } public void drawBlocks(Graphics g, int originX, int originY, int block_width, int block_height) { for (Block b : blocks) { b.draw(g,originX+x,originY-y,block_width,block_height,launched); diff --git a/src/sig/Board.java b/src/sig/Board.java index cfedc0b..f665bc3 100644 --- a/src/sig/Board.java +++ b/src/sig/Board.java @@ -126,8 +126,20 @@ public class Board { //System.out.println(blocks.getSortedBlocksOnRow(y)); List blockList = blocks.getSortedBlocksOnRow(y); List markedBlocks = FindMatches(blockList,width,true); + int ourY = 0; if (markedBlocks.size()>0) { //Ignite these blocks. - System.out.println("Marked: "+markedBlocks); + //Get all blocks above us. We will be taking all of these out of the current block clump and making a new one. + List newClumpList = new ArrayList(); + for (Block b : markedBlocks) { //Get all blocks above this set. + newClumpList.addAll(blocks.getBlocks().stream().filter((block)->block.x==b.x&&block.y>b.y).collect(Collectors.toList())); + b.state = BlockState.IGNITED; + ourY=b.y; + } + newClumpList.addAll(markedBlocks); + BlockClump newClump = new BlockClump(newClumpList,0,blocks.y+ourY*block_height,launch_power,width,120); + blocks.removeBlock(markedBlocks.toArray(new Block[markedBlocks.size()])); + blockClumpAddList.add(newClump); + //System.out.println("Marked: "+markedBlocks); } } for (int x=0;x