diff --git a/Brick.class b/Brick.class new file mode 100644 index 0000000..0ce445a Binary files /dev/null and b/Brick.class differ diff --git a/Brick.ctxt b/Brick.ctxt new file mode 100644 index 0000000..3652395 --- /dev/null +++ b/Brick.ctxt @@ -0,0 +1,5 @@ +#BlueJ class context +comment0.params= +comment0.target=void\ act() +comment0.text=\n\ Act\ -\ do\ whatever\ the\ Brick\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +numComments=1 diff --git a/Brick.java b/Brick.java new file mode 100644 index 0000000..78cd02e --- /dev/null +++ b/Brick.java @@ -0,0 +1,19 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Brick here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Brick extends Surface +{ + /** + * Act - do whatever the Brick wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + // Add your action code here. + } +} diff --git a/Enemy.class b/Enemy.class new file mode 100644 index 0000000..a5f9ffd Binary files /dev/null and b/Enemy.class differ diff --git a/Enemy.ctxt b/Enemy.ctxt new file mode 100644 index 0000000..ac7b5b5 --- /dev/null +++ b/Enemy.ctxt @@ -0,0 +1,7 @@ +#BlueJ class context +comment0.params= +comment0.target=void\ act() +comment0.text=\n\ Act\ -\ do\ whatever\ the\ Enemy\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +comment1.params= +comment1.target=int\ getPoints() +numComments=2 diff --git a/Enemy.java b/Enemy.java new file mode 100644 index 0000000..819f026 --- /dev/null +++ b/Enemy.java @@ -0,0 +1,23 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Enemy here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Enemy extends Actor +{ + /** + * Act - do whatever the Enemy wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + // Add your action code here. + } + public int getPoints() + { + return 0; + } +} diff --git a/Game4.class b/Game4.class index 961a0d1..3872380 100644 Binary files a/Game4.class and b/Game4.class differ diff --git a/Game4.java b/Game4.java index 7742593..a30318e 100644 --- a/Game4.java +++ b/Game4.java @@ -1,7 +1,9 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import greenfoot.*; -public class Game4 extends Buttons -{ - public void act() { -} +public class Game4 extends Buttons { + public void act() { + if (Greenfoot.mouseClicked(this)) { + Greenfoot.setWorld(new SkyscraperWorld()); + } + } } diff --git a/GameOverScreen.class b/GameOverScreen.class new file mode 100644 index 0000000..d54b735 Binary files /dev/null and b/GameOverScreen.class differ diff --git a/GameOverScreen.ctxt b/GameOverScreen.ctxt new file mode 100644 index 0000000..b5c7681 --- /dev/null +++ b/GameOverScreen.ctxt @@ -0,0 +1,17 @@ +#BlueJ class context +comment0.params= +comment0.target=void\ act() +comment0.text=\n\ Act\ -\ do\ whatever\ the\ menuBar\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +comment1.params= +comment1.target=GameOverScreen() +comment1.text=\n\ Create\ a\ score\ board\ with\ dummy\ result\ for\ testing.\n +comment2.params=score\ coins\ total +comment2.target=GameOverScreen(int,\ int,\ int) +comment3.params=title\ prefix\ score +comment3.target=void\ makeScoreImage(java.lang.String,\ java.lang.String,\ int) +comment3.text=\n\ Make\ the\ score\ board\ image.\n +comment4.params=title\ prefix\ coins +comment4.target=void\ makeCoinImage(java.lang.String,\ java.lang.String,\ int) +comment5.params=title\ prefix\ total +comment5.target=void\ makeTotalImage(java.lang.String,\ java.lang.String,\ int) +numComments=6 diff --git a/GameOverScreen.java b/GameOverScreen.java new file mode 100644 index 0000000..629fdff --- /dev/null +++ b/GameOverScreen.java @@ -0,0 +1,73 @@ +import greenfoot.*; +import java.awt.Color; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import java.awt.Font; +import java.util.Calendar; +/** + * Write a description of class Gameoverscreen here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class GameOverScreen extends Actor +{ + /** + * Act - do whatever the menuBar wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + } + public static final float FONT_SIZE = 48.0f; + /** + * Create a score board with dummy result for testing. + */ + /** + * Create a score board with dummy result for testing. + */ + public GameOverScreen(){ + + //Counter.getValue(); + Coins.getCoinValue(); = total + } + + public GameOverScreen(int score, int coins, int total){ + makeScoreImage("Game Over", "Score: ", score); + makeCoinImage("Game Over", "Coins: ", coins); + makeTotalImage("Game Over", "Total: ", total); + } + + /** + * Make the score board image. + */ + private void makeScoreImage(String title, String prefix, int score) { + GreenfootImage image = getImage(); + image.scale(800, 800); + Font font = image.getFont(); + font = font.deriveFont(FONT_SIZE); + image.setFont(font); + image.setColor(Color.BLUE); + image.drawString(prefix + score, 280, 400); + setImage(image); + } + + private void makeCoinImage(String title, String prefix, int coins) { + GreenfootImage image = getImage(); + image.scale(800, 800); + Font font = image.getFont(); + font = font.deriveFont(FONT_SIZE); + image.setFont(font); + image.setColor(Color.BLUE); + image.drawString(prefix + coins, 280, 500); + setImage(image); + } + + private void makeTotalImage(String title, String prefix, int total) { + GreenfootImage image = getImage(); + image.scale(800, 800); + Font font = image.getFont(); + font = font.deriveFont(FONT_SIZE); + image.setFont(font); + image.setColor(Color.BLUE); + image.drawString(prefix + total, 280, 600); + setImage(image); + } +} diff --git a/Ground.class b/Ground.class new file mode 100644 index 0000000..7d9a5e9 Binary files /dev/null and b/Ground.class differ diff --git a/Ground.ctxt b/Ground.ctxt new file mode 100644 index 0000000..5f37c56 --- /dev/null +++ b/Ground.ctxt @@ -0,0 +1,5 @@ +#BlueJ class context +comment0.params= +comment0.target=void\ act() +comment0.text=\n\ Act\ -\ do\ whatever\ the\ Ground\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +numComments=1 diff --git a/Ground.java b/Ground.java new file mode 100644 index 0000000..d9aaccc --- /dev/null +++ b/Ground.java @@ -0,0 +1,19 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Ground here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Ground extends Surface +{ + /** + * Act - do whatever the Ground wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + // Add your action code here. + } +} diff --git a/MenuBar.class b/MenuBar.class index 12023aa..af39b26 100644 Binary files a/MenuBar.class and b/MenuBar.class differ diff --git a/MenuBar.ctxt b/MenuBar.ctxt index 33a671b..d73f3fc 100644 --- a/MenuBar.ctxt +++ b/MenuBar.ctxt @@ -1,4 +1,6 @@ #BlueJ class context comment0.params= -comment0.target=MenuBar() -numComments=1 +comment0.target=void\ act() +comment1.params= +comment1.target=MenuBar() +numComments=2 diff --git a/MenuBar.java b/MenuBar.java index a1da81a..d4795ba 100644 --- a/MenuBar.java +++ b/MenuBar.java @@ -1,15 +1,12 @@ -import greenfoot.*; - -/** - * Dit is de menubar die onderaan wordt getoond. - * - * Project 42 - */ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) public class MenuBar extends Actor { + public void act() + { + } + public MenuBar(){ getImage(); } } - diff --git a/MovingBrickLeft.class b/MovingBrickLeft.class new file mode 100644 index 0000000..cbb26ee Binary files /dev/null and b/MovingBrickLeft.class differ diff --git a/MovingBrickLeft.ctxt b/MovingBrickLeft.ctxt new file mode 100644 index 0000000..1a6e6d4 --- /dev/null +++ b/MovingBrickLeft.ctxt @@ -0,0 +1,12 @@ +#BlueJ class context +comment0.params=leftT\ rightT +comment0.target=MovingBrickLeft(int,\ int) +comment0.text=\n\ Move\ in\ the\ direction\ we\ are\ currently\ moving\ in.\ Turn\ if\ we\ reach\ a\ turning\ point.\n +comment1.params= +comment1.target=void\ act() +comment2.params= +comment2.target=boolean\ atTurningPoint() +comment2.text=\n\ Test\ if\ we\ are\ at\ one\ of\ the\ turning\ points.\n +comment3.params= +comment3.target=int\ getMovingBrickLeftSpeed() +numComments=4 diff --git a/MovingBrickLeft.java b/MovingBrickLeft.java new file mode 100644 index 0000000..8c1d7b9 --- /dev/null +++ b/MovingBrickLeft.java @@ -0,0 +1,43 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class MovingBrick here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class MovingBrickLeft extends Surface +{ + private int speed = -1; + private int leftTurn; + private int rightTurn; + + /** + * Move in the direction we are currently moving in. Turn if we reach a turning point. + */ + public MovingBrickLeft(int leftT, int rightT) { + leftTurn = leftT; + rightTurn = rightT; + } + + public void act() + { + setLocation ( getX() + speed, getY() ); + + if (atTurningPoint()) { + speed = -speed; + } + } + + /** + * Test if we are at one of the turning points. + */ + public boolean atTurningPoint() + { + return (getX() <= leftTurn || getX() >= rightTurn); + } + + public int getMovingBrickLeftSpeed(){ + return speed; + } +} diff --git a/MovingBrickRight.class b/MovingBrickRight.class new file mode 100644 index 0000000..0ae7a44 Binary files /dev/null and b/MovingBrickRight.class differ diff --git a/MovingBrickRight.ctxt b/MovingBrickRight.ctxt new file mode 100644 index 0000000..d27c5cb --- /dev/null +++ b/MovingBrickRight.ctxt @@ -0,0 +1,12 @@ +#BlueJ class context +comment0.params=leftT\ rightT +comment0.target=MovingBrickRight(int,\ int) +comment0.text=\n\ Move\ in\ the\ direction\ we\ are\ currently\ moving\ in.\ Turn\ if\ we\ reach\ a\ turning\ point.\n +comment1.params= +comment1.target=void\ act() +comment2.params= +comment2.target=boolean\ atTurningPoint() +comment2.text=\n\ Test\ if\ we\ are\ at\ one\ of\ the\ turning\ points.\n +comment3.params= +comment3.target=int\ getMovingBrickRightSpeed() +numComments=4 diff --git a/MovingBrickRight.java b/MovingBrickRight.java new file mode 100644 index 0000000..3f2b5ff --- /dev/null +++ b/MovingBrickRight.java @@ -0,0 +1,43 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class MovingBrick here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class MovingBrickRight extends Surface +{ + private int speed = 1; + private int leftTurn; + private int rightTurn; + + /** + * Move in the direction we are currently moving in. Turn if we reach a turning point. + */ + public MovingBrickRight(int leftT, int rightT) { + leftTurn = leftT; + rightTurn = rightT; + } + + public void act() + { + setLocation ( getX() + speed, getY() ); + + if (atTurningPoint()) { + speed = -speed; + } + } + + /** + * Test if we are at one of the turning points. + */ + public boolean atTurningPoint() + { + return (getX() <= leftTurn || getX() >= rightTurn); + } + + public int getMovingBrickRightSpeed(){ + return speed; + } +} diff --git a/MovingBrickUp.class b/MovingBrickUp.class new file mode 100644 index 0000000..b829fd4 Binary files /dev/null and b/MovingBrickUp.class differ diff --git a/MovingBrickUp.ctxt b/MovingBrickUp.ctxt new file mode 100644 index 0000000..967818b --- /dev/null +++ b/MovingBrickUp.ctxt @@ -0,0 +1,12 @@ +#BlueJ class context +comment0.params=topT\ bottomT +comment0.target=MovingBrickUp(int,\ int) +comment0.text=\n\ Move\ in\ the\ direction\ we\ are\ currently\ moving\ in.\ Turn\ if\ we\ reach\ a\ turning\ point.\n +comment1.params= +comment1.target=void\ act() +comment2.params= +comment2.target=boolean\ atTurningPoint() +comment2.text=\n\ Test\ if\ we\ are\ at\ one\ of\ the\ turning\ points.\n +comment3.params= +comment3.target=int\ getMovingBrickUpSpeed() +numComments=4 diff --git a/MovingBrickUp.java b/MovingBrickUp.java new file mode 100644 index 0000000..9f98434 --- /dev/null +++ b/MovingBrickUp.java @@ -0,0 +1,43 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class MovingBrick here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class MovingBrickUp extends Surface +{ + private int speed = 1; + private int topTurn; + private int bottomTurn; + + /** + * Move in the direction we are currently moving in. Turn if we reach a turning point. + */ + public MovingBrickUp(int topT, int bottomT) { + topTurn = topT; + bottomTurn = bottomT; + } + + public void act() + { + setLocation ( getX(), getY()+ speed ); + + if (atTurningPoint()) { + speed = -speed; + } + } + + /** + * Test if we are at one of the turning points. + */ + public boolean atTurningPoint() + { + return (getY() <= topTurn || getY() >= bottomTurn); + } + + public int getMovingBrickUpSpeed(){ + return speed; + } +} diff --git a/MovingWater.class b/MovingWater.class new file mode 100644 index 0000000..e41b841 Binary files /dev/null and b/MovingWater.class differ diff --git a/MovingWater.ctxt b/MovingWater.ctxt new file mode 100644 index 0000000..3c920f3 --- /dev/null +++ b/MovingWater.ctxt @@ -0,0 +1,10 @@ +#BlueJ class context +comment0.params= +comment0.target=MovingWater() +comment1.params= +comment1.target=void\ act() +comment2.params= +comment2.target=int\ getLevel() +comment3.params=lvl +comment3.target=void\ setLevel(int) +numComments=4 diff --git a/MovingWater.java b/MovingWater.java new file mode 100644 index 0000000..61425d2 --- /dev/null +++ b/MovingWater.java @@ -0,0 +1,38 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class MovingWater here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class MovingWater extends Actor +{ + private int acts; + private int level; + + public MovingWater() { + getImage().scale(1, 20); + getImage().setTransparency(100); + level = 10; + } + + @Override + public void act() { + setLocation(40, 70); + + if (++acts == 1) { + setLevel(level + 2); + } + } + + public int getLevel() { + return level; + } + + public void setLevel(int lvl) { + getImage().scale(820, lvl); + acts = 0; + level = lvl; + } +} diff --git a/Obstacles$1.class b/Obstacles$1.class new file mode 100644 index 0000000..4d0f27c Binary files /dev/null and b/Obstacles$1.class differ diff --git a/Obstacles$GifDecoder$GifFrame.class b/Obstacles$GifDecoder$GifFrame.class new file mode 100644 index 0000000..d10d238 Binary files /dev/null and b/Obstacles$GifDecoder$GifFrame.class differ diff --git a/Obstacles$GifDecoder.class b/Obstacles$GifDecoder.class new file mode 100644 index 0000000..798a871 Binary files /dev/null and b/Obstacles$GifDecoder.class differ diff --git a/Obstacles.class b/Obstacles.class new file mode 100644 index 0000000..142b0af Binary files /dev/null and b/Obstacles.class differ diff --git a/Obstacles.ctxt b/Obstacles.ctxt new file mode 100644 index 0000000..31877ea --- /dev/null +++ b/Obstacles.ctxt @@ -0,0 +1,17 @@ +#BlueJ class context +comment0.params=file +comment0.target=void\ setImage(java.lang.String) +comment0.text=\n\ Set\ the\ image\ of\ the\ actor.\ If\ the\ image\ is\ a\ normal\ picture,\ it\ will\ be\ displayed\ as\ normal.\n\ If\ it's\ an\ animated\ GIF\ file\ then\ it\ will\ be\ displayed\ as\ an\ animated\ actor.\n\ @overrides\ setImage\ in\ Actor.\n +comment1.params= +comment1.target=java.util.List\ getImages() +comment1.text=\n\ Get\ all\ the\ images\ used\ in\ the\ animation\n\ @return\ a\ list\ of\ GreenfootImages,\ corresponding\ to\ each\ frame.\n +comment2.params= +comment2.target=void\ act() +comment2.text=\n\ Move\ onto\ the\ next\ frame\ if\ the\ time\ for\ the\ current\ frame\ has\ expired.\n +comment3.params= +comment3.target=void\ nextFrame() +comment3.text=\n\ Advance\ to\ the\ next\ frame\ in\ the\ animation.\n +comment4.params= +comment4.target=void\ loadImages() +comment4.text=\n\ Load\ the\ images\n +numComments=5 diff --git a/Obstacles.java b/Obstacles.java new file mode 100644 index 0000000..658df80 --- /dev/null +++ b/Obstacles.java @@ -0,0 +1,913 @@ +import greenfoot.*; +import java.awt.AlphaComposite; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics2D; +import java.awt.Rectangle; +import java.awt.image.BufferedImage; +import java.awt.image.DataBufferInt; +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.List; +import java.util.ArrayList; + +/** + * Beheert al de obstakels. + * + * Project 42 + */ + +public abstract class Obstacles extends Actor +{ + /** CODE VOOR GIF ANIMATIES */ + + /** The images used in the animation. */ + private GreenfootImage[] images; + /** The delay between each frame. */ + private int[] delay; + /** The index of the current frame in the GIF file. */ + private int currentIndex; + /** The time passed since the last frame in ms. */ + private long time; + /** The GIF file that contains the animation. */ + private String file; + + /** + * Set the image of the actor. If the image is a normal picture, it will be displayed as normal. + * If it's an animated GIF file then it will be displayed as an animated actor. + * @overrides setImage in Actor. + */ + public void setImage(String file) + { + this.file = file; + if(file.endsWith(".gif")) { + loadImages(); + setImage(images[0]); + } + else { + super.setImage(file); + } + } + + /** + * Get all the images used in the animation + * @return a list of GreenfootImages, corresponding to each frame. + */ + public List getImages() + { + ArrayList images = new ArrayList(this.images.length); + for(GreenfootImage image : this.images) { + images.add(image); + } + return images; + } + + /** + * Move onto the next frame if the time for the current frame has expired. + */ + public void act() + { + if(time+delay[currentIndex]<=System.currentTimeMillis()) { + nextFrame(); + } + } + + /** + * Advance to the next frame in the animation. + */ + private void nextFrame() + { + time = System.currentTimeMillis(); + currentIndex = (currentIndex+1) % images.length; + setImage(images[currentIndex]); + } + + /** + * Load the images + */ + private void loadImages() + { + GifDecoder decode = new GifDecoder(); + decode.read(file); + int numFrames = decode.getFrameCount(); + if(numFrames>0) { + images = new GreenfootImage[numFrames]; + delay = new int[numFrames]; + } + else { + images = new GreenfootImage[1]; + images[0] = new GreenfootImage(1, 1); + } + + for (int i=0 ; i
+ * + * I (Michael) edited this slightly on 10/09/08 to bring class up to date with generics and therefore remove warnings. + * Also edited so that resources are grabbed from the jar file and not externally, so no security exceptions. + *

+ *
+     *  Example:
+     *     GifDecoder d = new GifDecoder();
+     *     d.read("sample.gif");
+     *     int n = d.getFrameCount();
+     *     for (int i = 0; i < n; i++) {
+     *        BufferedImage frame = d.getFrame(i);  // frame i
+     *        int t = d.getDelay(i);  // display duration of frame in milliseconds
+     *        // do something with frame
+     *     }
+     * 
+ * + * No copyright asserted on the source code of this class. May be used for any + * purpose, however, refer to the Unisys LZW patent for any additional + * restrictions. Please forward any corrections to kweiner@fmsware.com. + * + * @author Kevin Weiner, FM Software; LZW decoder adapted from John Cristy's + * ImageMagick. + * @version 1.03 November 2003 + * + */ + private class GifDecoder { + + /** + * File read status: No errors. + */ + public static final int STATUS_OK = 0; + + /** + * File read status: Error decoding file (may be partially decoded) + */ + public static final int STATUS_FORMAT_ERROR = 1; + + /** + * File read status: Unable to open source. + */ + public static final int STATUS_OPEN_ERROR = 2; + + private BufferedInputStream in; + + private int status; + + private int width; // full image width + + private int height; // full image height + + private boolean gctFlag; // global color table used + + private int gctSize; // size of global color table + + private int loopCount = 1; // iterations; 0 = repeat forever + + private int[] gct; // global color table + + private int[] lct; // local color table + + private int[] act; // active color table + + private int bgIndex; // background color index + + private int bgColor; // background color + + private int lastBgColor; // previous bg color + + private int pixelAspect; // pixel aspect ratio + + private boolean lctFlag; // local color table flag + + private boolean interlace; // interlace flag + + private int lctSize; // local color table size + + private int ix, iy, iw, ih; // current image rectangle + + private Rectangle lastRect; // last image rect + + private BufferedImage image; // current frame + + private BufferedImage lastImage; // previous frame + + private byte[] block = new byte[256]; // current data block + + private int blockSize = 0; // block size + + // last graphic control extension info + private int dispose = 0; + + // 0=no action; 1=leave in place; 2=restore to bg; 3=restore to prev + private int lastDispose = 0; + + private boolean transparency = false; // use transparent color + + private int delay = 0; // delay in milliseconds + + private int transIndex; // transparent color index + + private static final int MaxStackSize = 4096; + + // max decoder pixel stack size + + // LZW decoder working arrays + private short[] prefix; + + private byte[] suffix; + + private byte[] pixelStack; + + private byte[] pixels; + + private ArrayList frames; // frames read from current file + + private int frameCount; + + /** + * A single frame + */ + private class GifFrame { + public GifFrame(BufferedImage im, int del) { + image = im; + delay = del; + } + + private BufferedImage image; + + private int delay; + } + + /** + * Gets display duration for specified frame. + * + * @param n + * int index of frame + * @return delay in milliseconds + */ + public int getDelay(int n) { + // + delay = -1; + if ((n >= 0) && (n < frameCount)) { + delay = (frames.get(n)).delay; + } + return delay; + } + + /** + * Gets the number of frames read from file. + * + * @return frame count + */ + public int getFrameCount() { + return frameCount; + } + + /** + * Gets the first (or only) image read. + * + * @return BufferedImage containing first frame, or null if none. + */ + public BufferedImage getImage() { + return getFrame(0); + } + + /** + * Gets the "Netscape" iteration count, if any. A count of 0 means repeat + * indefinitiely. + * + * @return iteration count if one was specified, else 1. + */ + public int getLoopCount() { + return loopCount; + } + + /** + * Creates new frame image from current data (and previous frames as specified + * by their disposition codes). + */ + protected void setPixels() { + // expose destination image's pixels as int array + int[] dest = ((DataBufferInt) image.getRaster().getDataBuffer()).getData(); + + // fill in starting image contents based on last image's dispose code + if (lastDispose > 0) { + if (lastDispose == 3) { + // use image before last + int n = frameCount - 2; + if (n > 0) { + lastImage = getFrame(n - 1); + } else { + lastImage = null; + } + } + + if (lastImage != null) { + int[] prev = ((DataBufferInt) lastImage.getRaster().getDataBuffer()).getData(); + System.arraycopy(prev, 0, dest, 0, width * height); + // copy pixels + + if (lastDispose == 2) { + // fill last image rect area with background color + Graphics2D g = image.createGraphics(); + Color c = null; + if (transparency) { + c = new Color(0, 0, 0, 0); // assume background is transparent + } else { + c = new Color(lastBgColor); // use given background color + } + g.setColor(c); + g.setComposite(AlphaComposite.Src); // replace area + g.fill(lastRect); + g.dispose(); + } + } + } + + // copy each source line to the appropriate place in the destination + int pass = 1; + int inc = 8; + int iline = 0; + for (int i = 0; i < ih; i++) { + int line = i; + if (interlace) { + if (iline >= ih) { + pass++; + switch (pass) { + case 2: + iline = 4; + break; + case 3: + iline = 2; + inc = 4; + break; + case 4: + iline = 1; + inc = 2; + } + } + line = iline; + iline += inc; + } + line += iy; + if (line < height) { + int k = line * width; + int dx = k + ix; // start of line in dest + int dlim = dx + iw; // end of dest line + if ((k + width) < dlim) { + dlim = k + width; // past dest edge + } + int sx = i * iw; // start of line in source + while (dx < dlim) { + // map color and insert in destination + int index = ((int) pixels[sx++]) & 0xff; + int c = act[index]; + if (c != 0) { + dest[dx] = c; + } + dx++; + } + } + } + } + + /** + * Gets the image contents of frame n. + * + * @return BufferedImage representation of frame, or null if n is invalid. + */ + public BufferedImage getFrame(int n) { + BufferedImage im = null; + if ((n >= 0) && (n < frameCount)) { + im = ((GifFrame) frames.get(n)).image; + } + return im; + } + + /** + * Gets image size. + * + * @return GIF image dimensions + */ + public Dimension getFrameSize() { + return new Dimension(width, height); + } + + /** + * Reads GIF image from stream + * + * @param BufferedInputStream + * containing GIF file. + * @return read status code (0 = no errors) + */ + public int read(BufferedInputStream is) { + init(); + if (is != null) { + in = is; + readHeader(); + if (!err()) { + readContents(); + if (frameCount < 0) { + status = STATUS_FORMAT_ERROR; + } + } + } else { + status = STATUS_OPEN_ERROR; + } + try { + is.close(); + } catch (IOException e) { + } + return status; + } + + /** + * Reads GIF image from stream + * + * @param InputStream + * containing GIF file. + * @return read status code (0 = no errors) + */ + public int read(InputStream is) { + init(); + if (is != null) { + if (!(is instanceof BufferedInputStream)) + is = new BufferedInputStream(is); + in = (BufferedInputStream) is; + readHeader(); + if (!err()) { + readContents(); + if (frameCount < 0) { + status = STATUS_FORMAT_ERROR; + } + } + } else { + status = STATUS_OPEN_ERROR; + } + try { + is.close(); + } catch (IOException e) { + } + return status; + } + + /** + * Reads GIF file from specified file/URL source (URL assumed if name contains + * ":/" or "file:") + * + * @param name + * String containing source + * @return read status code (0 = no errors) + */ + public int read(String name) { + status = STATUS_OK; + try { + name = name.trim().toLowerCase(); + URL url = this.getClass().getClassLoader().getResource(name); + if(url==null) { + name = "images/" + name; + url = this.getClass().getClassLoader().getResource(name); + if(url==null) { + throw new RuntimeException("The specified gif file doesn't exist."); + } + } + in = new BufferedInputStream(url.openStream()); + status = read(in); + } catch (IOException e) { + status = STATUS_OPEN_ERROR; + } + + return status; + } + + /** + * Decodes LZW image data into pixel array. Adapted from John Cristy's + * ImageMagick. + */ + protected void decodeImageData() { + int NullCode = -1; + int npix = iw * ih; + int available, clear, code_mask, code_size, end_of_information, in_code, old_code, bits, code, count, i, datum, data_size, first, top, bi, pi; + + if ((pixels == null) || (pixels.length < npix)) { + pixels = new byte[npix]; // allocate new pixel array + } + if (prefix == null) + prefix = new short[MaxStackSize]; + if (suffix == null) + suffix = new byte[MaxStackSize]; + if (pixelStack == null) + pixelStack = new byte[MaxStackSize + 1]; + + // Initialize GIF data stream decoder. + + data_size = read(); + clear = 1 << data_size; + end_of_information = clear + 1; + available = clear + 2; + old_code = NullCode; + code_size = data_size + 1; + code_mask = (1 << code_size) - 1; + for (code = 0; code < clear; code++) { + prefix[code] = 0; + suffix[code] = (byte) code; + } + + // Decode GIF pixel stream. + + datum = bits = count = first = top = pi = bi = 0; + + for (i = 0; i < npix;) { + if (top == 0) { + if (bits < code_size) { + // Load bytes until there are enough bits for a code. + if (count == 0) { + // Read a new data block. + count = readBlock(); + if (count <= 0) + break; + bi = 0; + } + datum += (((int) block[bi]) & 0xff) << bits; + bits += 8; + bi++; + count--; + continue; + } + + // Get the next code. + + code = datum & code_mask; + datum >>= code_size; + bits -= code_size; + + // Interpret the code + + if ((code > available) || (code == end_of_information)) + break; + if (code == clear) { + // Reset decoder. + code_size = data_size + 1; + code_mask = (1 << code_size) - 1; + available = clear + 2; + old_code = NullCode; + continue; + } + if (old_code == NullCode) { + pixelStack[top++] = suffix[code]; + old_code = code; + first = code; + continue; + } + in_code = code; + if (code == available) { + pixelStack[top++] = (byte) first; + code = old_code; + } + while (code > clear) { + pixelStack[top++] = suffix[code]; + code = prefix[code]; + } + first = ((int) suffix[code]) & 0xff; + + // Add a new string to the string table, + + if (available >= MaxStackSize) + break; + pixelStack[top++] = (byte) first; + prefix[available] = (short) old_code; + suffix[available] = (byte) first; + available++; + if (((available & code_mask) == 0) && (available < MaxStackSize)) { + code_size++; + code_mask += available; + } + old_code = in_code; + } + + // Pop a pixel off the pixel stack. + + top--; + pixels[pi++] = pixelStack[top]; + i++; + } + + for (i = pi; i < npix; i++) { + pixels[i] = 0; // clear missing pixels + } + + } + + /** + * Returns true if an error was encountered during reading/decoding + */ + protected boolean err() { + return status != STATUS_OK; + } + + /** + * Initializes or re-initializes reader + */ + protected void init() { + status = STATUS_OK; + frameCount = 0; + frames = new ArrayList(); + gct = null; + lct = null; + } + + /** + * Reads a single byte from the input stream. + */ + protected int read() { + int curByte = 0; + try { + curByte = in.read(); + } catch (IOException e) { + status = STATUS_FORMAT_ERROR; + } + return curByte; + } + + /** + * Reads next variable length block from input. + * + * @return number of bytes stored in "buffer" + */ + protected int readBlock() { + blockSize = read(); + int n = 0; + if (blockSize > 0) { + try { + int count = 0; + while (n < blockSize) { + count = in.read(block, n, blockSize - n); + if (count == -1) + break; + n += count; + } + } catch (IOException e) { + } + + if (n < blockSize) { + status = STATUS_FORMAT_ERROR; + } + } + return n; + } + + /** + * Reads color table as 256 RGB integer values + * + * @param ncolors + * int number of colors to read + * @return int array containing 256 colors (packed ARGB with full alpha) + */ + protected int[] readColorTable(int ncolors) { + int nbytes = 3 * ncolors; + int[] tab = null; + byte[] c = new byte[nbytes]; + int n = 0; + try { + n = in.read(c); + } catch (IOException e) { + } + if (n < nbytes) { + status = STATUS_FORMAT_ERROR; + } else { + tab = new int[256]; // max size to avoid bounds checks + int i = 0; + int j = 0; + while (i < ncolors) { + int r = ((int) c[j++]) & 0xff; + int g = ((int) c[j++]) & 0xff; + int b = ((int) c[j++]) & 0xff; + tab[i++] = 0xff000000 | (r << 16) | (g << 8) | b; + } + } + return tab; + } + + /** + * Main file parser. Reads GIF content blocks. + */ + protected void readContents() { + // read GIF file content blocks + boolean done = false; + while (!(done || err())) { + int code = read(); + switch (code) { + + case 0x2C: // image separator + readImage(); + break; + + case 0x21: // extension + code = read(); + switch (code) { + case 0xf9: // graphics control extension + readGraphicControlExt(); + break; + + case 0xff: // application extension + readBlock(); + String app = ""; + for (int i = 0; i < 11; i++) { + app += (char) block[i]; + } + if (app.equals("NETSCAPE2.0")) { + readNetscapeExt(); + } else + skip(); // don't care + break; + + default: // uninteresting extension + skip(); + } + break; + + case 0x3b: // terminator + done = true; + break; + + case 0x00: // bad byte, but keep going and see what happens + break; + + default: + status = STATUS_FORMAT_ERROR; + } + } + } + + /** + * Reads Graphics Control Extension values + */ + protected void readGraphicControlExt() { + read(); // block size + int packed = read(); // packed fields + dispose = (packed & 0x1c) >> 2; // disposal method + if (dispose == 0) { + dispose = 1; // elect to keep old image if discretionary + } + transparency = (packed & 1) != 0; + delay = readShort() * 10; // delay in milliseconds + transIndex = read(); // transparent color index + read(); // block terminator + } + + /** + * Reads GIF file header information. + */ + protected void readHeader() { + String id = ""; + for (int i = 0; i < 6; i++) { + id += (char) read(); + } + if (!id.startsWith("GIF")) { + status = STATUS_FORMAT_ERROR; + return; + } + + readLSD(); + if (gctFlag && !err()) { + gct = readColorTable(gctSize); + bgColor = gct[bgIndex]; + } + } + + /** + * Reads next frame image + */ + protected void readImage() { + ix = readShort(); // (sub)image position & size + iy = readShort(); + iw = readShort(); + ih = readShort(); + + int packed = read(); + lctFlag = (packed & 0x80) != 0; // 1 - local color table flag + interlace = (packed & 0x40) != 0; // 2 - interlace flag + // 3 - sort flag + // 4-5 - reserved + lctSize = 2 << (packed & 7); // 6-8 - local color table size + + if (lctFlag) { + lct = readColorTable(lctSize); // read table + act = lct; // make local table active + } else { + act = gct; // make global table active + if (bgIndex == transIndex) + bgColor = 0; + } + int save = 0; + if (transparency) { + save = act[transIndex]; + act[transIndex] = 0; // set transparent color if specified + } + + if (act == null) { + status = STATUS_FORMAT_ERROR; // no color table defined + } + + if (err()) + return; + + decodeImageData(); // decode pixel data + skip(); + + if (err()) + return; + + frameCount++; + + // create new image to receive frame data + image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB_PRE); + + setPixels(); // transfer pixel data to image + + frames.add(new GifFrame(image, delay)); // add image to frame list + + if (transparency) { + act[transIndex] = save; + } + resetFrame(); + + } + + /** + * Reads Logical Screen Descriptor + */ + protected void readLSD() { + + // logical screen size + width = readShort(); + height = readShort(); + + // packed fields + int packed = read(); + gctFlag = (packed & 0x80) != 0; // 1 : global color table flag + // 2-4 : color resolution + // 5 : gct sort flag + gctSize = 2 << (packed & 7); // 6-8 : gct size + + bgIndex = read(); // background color index + pixelAspect = read(); // pixel aspect ratio + } + + /** + * Reads Netscape extenstion to obtain iteration count + */ + protected void readNetscapeExt() { + do { + readBlock(); + if (block[0] == 1) { + // loop count sub-block + int b1 = ((int) block[1]) & 0xff; + int b2 = ((int) block[2]) & 0xff; + loopCount = (b2 << 8) | b1; + } + } while ((blockSize > 0) && !err()); + } + + /** + * Reads next 16-bit value, LSB first + */ + protected int readShort() { + // read 16-bit value, LSB first + return read() | (read() << 8); + } + + /** + * Resets frame state for reading next image. + */ + protected void resetFrame() { + lastDispose = dispose; + lastRect = new Rectangle(ix, iy, iw, ih); + lastImage = image; + lastBgColor = bgColor; + int dispose = 0; + boolean transparency = false; + int delay = 0; + lct = null; + } + + /** + * Skips variable length blocks up to and including next zero length block. + */ + protected void skip() { + do { + readBlock(); + } while ((blockSize > 0) && !err()); + } + } + +} diff --git a/SkyscraperCoin.class b/SkyscraperCoin.class new file mode 100644 index 0000000..2694bcb Binary files /dev/null and b/SkyscraperCoin.class differ diff --git a/SkyscraperCoin.ctxt b/SkyscraperCoin.ctxt new file mode 100644 index 0000000..00b8b44 --- /dev/null +++ b/SkyscraperCoin.ctxt @@ -0,0 +1,7 @@ +#BlueJ class context +comment0.params= +comment0.target=SkyscraperCoin() +comment0.text=\n\ Act\ -\ do\ whatever\ the\ Coin\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +comment1.params= +comment1.target=void\ act() +numComments=2 diff --git a/SkyscraperCoin.java b/SkyscraperCoin.java new file mode 100644 index 0000000..0866a40 --- /dev/null +++ b/SkyscraperCoin.java @@ -0,0 +1,23 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Coin here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class SkyscraperCoin extends Actor +{ + /** + * Act - do whatever the Coin wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + + public SkyscraperCoin(){ + getImage().scale(30, 30); + } + + public void act() { + + } +} diff --git a/SkyscraperPlayer.class b/SkyscraperPlayer.class new file mode 100644 index 0000000..114a031 Binary files /dev/null and b/SkyscraperPlayer.class differ diff --git a/SkyscraperPlayer.ctxt b/SkyscraperPlayer.ctxt new file mode 100644 index 0000000..effd0cc --- /dev/null +++ b/SkyscraperPlayer.ctxt @@ -0,0 +1,26 @@ +#BlueJ class context +comment0.params= +comment0.target=SkyscraperPlayer() +comment1.params= +comment1.target=void\ act() +comment10.params= +comment10.target=void\ switchImageStraight() +comment11.params= +comment11.target=void\ switchImageBack() +comment2.params=dx\ dy +comment2.target=void\ move(int,\ int) +comment3.params= +comment3.target=void\ jump() +comment4.params= +comment4.target=void\ fall() +comment5.params= +comment5.target=void\ checkFall() +comment6.params= +comment6.target=boolean\ onGround() +comment7.params= +comment7.target=void\ onTouchMovingBrick() +comment8.params= +comment8.target=void\ switchImageLeft() +comment9.params= +comment9.target=void\ switchImageRight() +numComments=12 diff --git a/SkyscraperPlayer.java b/SkyscraperPlayer.java new file mode 100644 index 0000000..a83a550 --- /dev/null +++ b/SkyscraperPlayer.java @@ -0,0 +1,204 @@ +import greenfoot.*; +import java.lang.Object; +import java.util.List; + +public class SkyscraperPlayer extends Actor { + private int speed; + private int initialSpeed; + private int vSpeed = 0; + private int acceleration = 1; + private int jumpStrength = 4; + private boolean jumping = false; + private boolean falling = false; + private int reduceCollisionDetection = 3; + private int currCollDetection = 0; + + protected GreenfootImage image1; + protected GreenfootImage image2; + protected GreenfootImage image3; + protected GreenfootImage image4; + protected GreenfootImage image5; + protected GreenfootImage image6; + protected GreenfootImage image7; + protected GreenfootImage image8; + + + public SkyscraperPlayer() { + this.initialSpeed = speed; + this.speed = 5; + + //super(6); + getImage().scale(40, 40); + image1 = new GreenfootImage("POLITIElinks2.png"); + image2 = new GreenfootImage("POLITIElinks1.png"); + image3 = new GreenfootImage("POLITIErechts2.png"); + image4 = new GreenfootImage("POLITIErechts1.png"); + image5 = new GreenfootImage("POLITIEachter2.png"); + image6 = new GreenfootImage("POLITIEachter1.png"); + image7 = new GreenfootImage("POLITIEvoor2.png"); + image8 = new GreenfootImage("POLITIEvoor1.png"); + } + + @Override + public void act() { + getImage().scale(40, 40); + checkFall(); + onTouchMovingBrick(); + if (speed / 4 <= 0) speed = 4; + + if (Greenfoot.isKeyDown("a")) { + move(-speed / 4, 0); + switchImageLeft(); + } + + if (Greenfoot.isKeyDown("d")) { + move(+speed / 4, 0); + switchImageRight(); + } + + if (Greenfoot.isKeyDown("space") && jumping == false) { + jump(); + } + + int waterOffset = 70 - ((SkyscraperWorld)getWorld()).getWaterLevel() / 2 / 10; + if (waterOffset <= getY()) { + setRotation(90); + ((SkyscraperWorld)getWorld()).gameOver(); + return; + } + + + + Actor coin = getOneIntersectingObject(SkyscraperCoin.class); + if (coin != null) { + Greenfoot.playSound("Coin.wav"); + getWorld().removeObject(coin); + ((SkyscraperWorld)getWorld()).getScoreCounter().add(10); + } + } + + private void move(int dx, int dy) { + setLocation(getX() + dx, getY() + dy); + } + + public void jump() { + if (vSpeed <= 0 && !jumping) { + jumping = true; + vSpeed = -jumpStrength; + } + } + + public void fall() { + setLocation(getX(), getY() + vSpeed); + if (vSpeed > 4) { + vSpeed = 4; + } else { + vSpeed = vSpeed + acceleration; + } + + boolean moveUp = false; + Actor obj = null; + for (int i = 1; i <= 4; ++i) { + obj = getOneObjectAtOffset(0, i, Surface.class); + if (obj != null) { + moveUp = true; + break; + } + } + if (moveUp) { + setLocation(getX(), obj.getY() - 4); + } + } + + private void checkFall() { + if (jumping || !onGround()) { + fall(); + } + + if (onGround()) { + vSpeed = 0; + jumping = false; + } + } + + public boolean onGround() + { + return getOneObjectAtOffset(-1, 4, Surface.class) != null + || getOneObjectAtOffset(0, 4, Surface.class) != null + || getOneObjectAtOffset(1, 4, Surface.class) != null; + } + + public void onTouchMovingBrick(){ + Actor actor = null; + boolean unused = (actor = getOneObjectAtOffset(-1, 4, MovingBrickLeft.class))!= null + || (actor = getOneObjectAtOffset(0, 4, MovingBrickLeft.class))!= null + || (actor = getOneObjectAtOffset(1, 4, MovingBrickLeft.class))!= null; + if(actor != null) { + setLocation(getX() + ((MovingBrickLeft)actor).getMovingBrickLeftSpeed(), getY()); + } + + Actor actor2 = null; + boolean unused2 = (actor2 = getOneObjectAtOffset(-1, 4, MovingBrickRight.class))!= null + || (actor2 = getOneObjectAtOffset(0, 4, MovingBrickRight.class))!= null + || (actor2 = getOneObjectAtOffset(1, 4, MovingBrickRight.class))!= null; + if(actor2 != null) { + setLocation(getX() + ((MovingBrickRight)actor2).getMovingBrickRightSpeed(), getY()); + } + + Actor actor3 = null; + boolean unused3 = (actor3 = getOneObjectAtOffset(-1, 4, MovingBrickUp.class))!= null + || (actor3 = getOneObjectAtOffset(0, 4, MovingBrickUp.class))!= null + || (actor3 = getOneObjectAtOffset(1, 4, MovingBrickUp.class))!= null; + if(actor3 != null) { + setLocation(getX(), getY() + ((MovingBrickUp)actor3).getMovingBrickUpSpeed()); + } + } + + protected void switchImageLeft() + { + if (getImage() == image1) + { + setImage(image2); + } + else + { + setImage(image1); + } + } + + protected void switchImageRight() + { + if (getImage() == image3) + { + setImage(image4); + } + else + { + setImage(image3); + } + } + + protected void switchImageStraight() + { + if (getImage() == image5) + { + setImage(image6); + } + else + { + setImage(image5); + } + } + + protected void switchImageBack() + { + if (getImage() == image7) + { + setImage(image8); + } + else + { + setImage(image7); + } + } +} diff --git a/SkyscraperWorld.class b/SkyscraperWorld.class new file mode 100644 index 0000000..ba063a9 Binary files /dev/null and b/SkyscraperWorld.class differ diff --git a/SkyscraperWorld.ctxt b/SkyscraperWorld.ctxt new file mode 100644 index 0000000..1d58849 --- /dev/null +++ b/SkyscraperWorld.ctxt @@ -0,0 +1,22 @@ +#BlueJ class context +comment0.params= +comment0.target=SkyscraperWorld() +comment1.params= +comment1.target=void\ act() +comment2.params= +comment2.target=boolean\ checkLevelComplete() +comment3.params= +comment3.target=void\ gameOver() +comment4.params= +comment4.target=void\ winGame() +comment5.params= +comment5.target=void\ purge() +comment6.params=lvl +comment6.target=int\ loadLevel(int) +comment7.params= +comment7.target=int\ getWaterLevel() +comment8.params= +comment8.target=Score\ getScoreCounter() +comment9.params= +comment9.target=SkyscraperPlayer\ getPlayer() +numComments=10 diff --git a/SkyscraperWorld.java b/SkyscraperWorld.java new file mode 100644 index 0000000..1f4c31c --- /dev/null +++ b/SkyscraperWorld.java @@ -0,0 +1,640 @@ +import greenfoot.*; +import java.io.IOException; + +public class SkyscraperWorld extends World { + private final int WINNING_LEVEL = 7; + private boolean addScore; + public Score scoreCounter; + private SkyscraperPlayer player; + private int levelCompletePoints; + private int timeCount = 0; + private int currentLevel; + private Ground[] Ground; + private MovingBrickRight[] MovingBricksRight; + private MovingBrickLeft[] MovingBricksLeft; + private MovingBrickUp[] MovingBricksUp; + private Brick[] Bricks; + private SkyscraperCoin[] Coins; + private MovingWater movingWater; + + //GreenfootSound backgroundMusic = new GreenfootSound("zeerstoer.mp3"); + + public SkyscraperWorld() { + super(80, 80, 10); + currentLevel = 1; + + player = new SkyscraperPlayer(); + + levelCompletePoints = loadLevel(currentLevel); + //backgroundMusic.playLoop(); + + setPaintOrder(GameOverScreen.class, /*Overlay.class,*/ Score.class, MenuBar.class, MovingWater.class, SkyscraperPlayer.class, SkyscraperCoin.class, Surface.class); + + + /**General stuff**/ + addObject(movingWater = new MovingWater(), 40, 71); + + addObject(new MenuBar(), 39, 75); + + scoreCounter = new Score("Score: "); + addObject(scoreCounter, 6, 74); + } + + public void act(){ + + + // Check for death, level completion and game completion: + + if((currentLevel == 1)&&(addScore == false)&&((player.getY() <= 11)&&(player.getX() >=62))){ + scoreCounter.add(10); + addScore = true; + } + + if((currentLevel == 2)&&(addScore == false)&&((player.getY() <= 6)&&(player.getX() <=15))){ + scoreCounter.add(10); + addScore = true; + } + + if((currentLevel == 3)&&(addScore == false)&&((player.getY() <= 6)&&(player.getX() <=15))){ + scoreCounter.add(10); + addScore = true; + } + + if((currentLevel == 4)&&(addScore == false)&&((player.getY() == 28)&&(player.getX() >=62))){ + scoreCounter.add(10); + addScore = true; + } + + if((currentLevel == 6)&&(addScore == false)&&((player.getY() <= 9)&&(player.getX() <=15))){ + scoreCounter.add(10); + addScore = true; + } + + if (checkLevelComplete()) + { + // If level is complete, call purge() to remove all objects + purge(); + // Increase level + currentLevel++; + // Set level clear goal + levelCompletePoints = loadLevel(currentLevel); + } + // Crude way to "win" the game + else if (currentLevel == WINNING_LEVEL) + { + winGame(); + } + // Increment counter + timeCount++; + } + + public boolean checkLevelComplete() + { + if (scoreCounter.getValue() >= levelCompletePoints) + return true; + else + return false; + } + + public void gameOver() { + Greenfoot.setWorld(new GameOverWorld(Game.SKYSCRAPER_GAME, scoreCounter.getValue())); + } + + public void winGame() { + Greenfoot.setWorld(new GameOverWorld(Game.SKYSCRAPER_GAME, scoreCounter.getValue())); + } + + public void purge() + { + if (Ground != null) + { + for (int i = 0; i < Ground.length; i++) + { + removeObject(Ground[i]); + } + } + if (Bricks != null) + { + for (int i = 0; i < Bricks.length; i++) + { + removeObject(Bricks[i]); + } + } + if (MovingBricksRight != null) + { + for (int i = 0; i < MovingBricksRight.length; i++) + { + removeObject(MovingBricksRight[i]); + } + } + if (MovingBricksLeft != null) + { + for (int i = 0; i < MovingBricksLeft.length; i++) + { + removeObject(MovingBricksLeft[i]); + } + } + if (MovingBricksUp != null) + { + for (int i = 0; i < MovingBricksUp.length; i++) + { + removeObject(MovingBricksUp[i]); + } + } + if (Coins != null) + { + for (int i = 0; i < Coins.length; i++) + { + removeObject(Coins[i]); + } + } + removeObject(player); + + movingWater.setLevel(20); + } + + public int loadLevel (int lvl) + { + if (lvl == 1) + { + addScore = false; + Ground = new Ground[15]; + MovingBricksRight = new MovingBrickRight[2]; + Bricks = new Brick[30]; + Coins = new SkyscraperCoin[4]; + + //MovingBricks distance's + MovingBricksRight[0] = new MovingBrickRight(5, 36); + MovingBricksRight[1] = new MovingBrickRight(17, 58); + + + + for (int i = 0; i < Ground.length; i++) + { + Ground[i] = new Ground (); + } + + for (int i = 0; i < Bricks.length; i++) + { + Bricks[i] = new Brick(); + } + + for (int i = 0; i < Coins.length; i++) + { + Coins[i] = new SkyscraperCoin(); + } + + //first floor + addObject(Ground[0], 0, 69); + addObject(Ground[1], 3, 69); + addObject(Ground[2], 7, 69); + addObject(Ground[3], 11, 69); + addObject(Ground[4], 15, 69); + addObject(Ground[5], 19, 69); + addObject(Ground[6], 23, 69); + addObject(Ground[7], 27, 69); + addObject(Ground[8], 31, 69); + addObject(Ground[9], 35, 69); + + //stairs + addObject(Bricks[0], 35, 49); + addObject(Bricks[1], 35, 53); + addObject(Bricks[2], 35, 57); + addObject(Bricks[3], 35, 61); + addObject(Bricks[4], 35, 65); + + addObject(Bricks[5], 31, 65); + addObject(Bricks[6], 31, 61); + addObject(Bricks[7], 31, 57); + addObject(Bricks[8], 31, 53); + + addObject(Bricks[9], 27, 65); + addObject(Bricks[10], 27, 61); + addObject(Bricks[11], 27, 57); + + addObject(Bricks[12], 23, 65); + addObject(Bricks[13], 23, 61); + + addObject(Bricks[14], 19, 65); + + //jump parts + addObject(Bricks[15], 45, 49); + addObject(Bricks[16], 56, 49); + addObject(Bricks[17], 67, 49); + addObject(Bricks[18], 78, 49); + addObject(Bricks[19], 78, 45); + addObject(Bricks[20], 72, 33); + addObject(Bricks[21], 62, 33); + addObject(Bricks[22], 51, 33); + addObject(Bricks[23], 40, 31); + addObject(Bricks[24], 1, 27); + addObject(Bricks[25], 25, 23); + addObject(Bricks[26], 5, 23); + addObject(Bricks[27], 1, 23); + addObject(Bricks[28], 1, 14); + addObject(Bricks[29], 13, 11); + + //MovingBricks locations + addObject(MovingBricksRight[0], 25, 27); + addObject(MovingBricksRight[1], 50, 11); + + //Coins + addObject(Coins[0], 45, 44); + addObject(Coins[1], 62, 40); + addObject(Coins[2], 57, 27); + addObject(Coins[3], 38, 2); + + //Finish + addObject(Ground[10], 62, 11); + addObject(Ground[11], 66, 11); + addObject(Ground[12], 70, 11); + addObject(Ground[13], 74, 11); + addObject(Ground[14], 78, 11); + + addObject(player, 4, 65); + + return 50; + } + + if(lvl == 2){ + addScore = false; + Ground = new Ground[12]; + MovingBricksRight = new MovingBrickRight[1]; + MovingBricksLeft = new MovingBrickLeft[1]; + MovingBricksUp = new MovingBrickUp[1]; + Bricks = new Brick[47]; + Coins = new SkyscraperCoin[4]; + + for (int i = 0; i < Ground.length; i++) + { + Ground[i] = new Ground (); + } + + for (int i = 0; i < Bricks.length; i++) + { + Bricks[i] = new Brick(); + } + + for (int i = 0; i < Coins.length; i++) + { + Coins[i] = new SkyscraperCoin(); + } + + //first floor + addObject(Ground[0], 0, 69); + addObject(Ground[1], 3, 69); + addObject(Ground[2], 7, 69); + addObject(Ground[3], 11, 69); + addObject(Ground[4], 15, 69); + addObject(Ground[5], 19, 69); + addObject(Ground[6], 23, 69); + + addObject(Bricks[0], 15, 65); + addObject(Bricks[1], 19, 65); + addObject(Bricks[2], 23, 65); + addObject(Bricks[3], 19, 61); + addObject(Bricks[4], 23, 61); + addObject(Bricks[5], 23, 57); + addObject(Bricks[6], 23, 53); + addObject(Bricks[7], 27, 53); + addObject(Bricks[8], 31, 53); + addObject(Bricks[9], 35, 53); + addObject(Bricks[10], 39, 53); + addObject(Bricks[11], 35, 49); + addObject(Bricks[12], 39, 49); + addObject(Bricks[13], 39, 45); + + addObject(Bricks[14], 0, 45); + addObject(Bricks[15], 0, 41); + addObject(Bricks[16], 0, 37); + addObject(Bricks[17], 3, 45); + addObject(Bricks[18], 3, 41); + addObject(Bricks[19], 3, 37); + addObject(Bricks[20], 7, 41); + addObject(Bricks[21], 7, 37); + addObject(Bricks[22], 11, 37); + addObject(Bricks[23], 15, 37); + addObject(Bricks[24], 19, 37); + addObject(Bricks[25], 23, 37); + addObject(Bricks[26], 23, 33); + addObject(Bricks[27], 27, 33); + addObject(Bricks[28], 27, 29); + // + addObject(Bricks[29], 31, 29); + addObject(Bricks[30], 35, 29); + addObject(Bricks[31], 39, 29); + addObject(Bricks[32], 43, 29); + + + addObject(Bricks[33], 39, 29); + addObject(Bricks[34], 43, 45); + addObject(Bricks[35], 47, 45); + addObject(Bricks[36], 51, 45); + addObject(Bricks[37], 55, 45); + addObject(Bricks[38], 47, 41); + addObject(Bricks[39], 51, 41); + addObject(Bricks[40], 55, 41); + addObject(Bricks[41], 51, 37); + addObject(Bricks[42], 55, 37); + addObject(Bricks[43], 55, 33); + addObject(Bricks[44], 59, 21); + addObject(Bricks[45], 67, 21); + addObject(Bricks[46], 75, 21); + + //MovingBricks distance's + MovingBricksRight[0] = new MovingBrickRight(49, 79); + MovingBricksLeft[0] = new MovingBrickLeft(19, 48); + MovingBricksUp[0] = new MovingBrickUp(9, 21); + + //MovingBricks locations + addObject(MovingBricksRight[0], 49, 6); + addObject(MovingBricksLeft[0], 48, 6); + addObject(MovingBricksUp[0], 79, 15); + + //Coins + addObject(Coins[0], 3, 27); + addObject(Coins[1], 3, 32); + addObject(Coins[2], 11, 27); + addObject(Coins[3], 11, 32); + + //Finish + addObject(Ground[7], 15, 6); + addObject(Ground[8], 11, 6); + addObject(Ground[9], 7, 6); + addObject(Ground[10], 3, 6); + addObject(Ground[11], 0, 6); + + + addObject(player, 4, 65); + + return 100; + } + + + if (lvl == 3) { + addScore = false; + Ground = new Ground[12]; + MovingBricksRight = new MovingBrickRight[7]; + MovingBricksLeft = new MovingBrickLeft[7]; + Bricks = new Brick[6]; + Coins = new SkyscraperCoin[4]; + + for (int i = 0; i < Ground.length; i++) + { + Ground[i] = new Ground (); + } + + for (int i = 0; i < Coins.length; i++) + { + Coins[i] = new SkyscraperCoin(); + } + + for (int i = 0; i < Bricks.length; i++) + { + Bricks[i] = new Brick(); + } + + + //first floor + addObject(Ground[0], 0, 69); + addObject(Ground[1], 3, 69); + addObject(Ground[2], 7, 69); + addObject(Ground[3], 11, 69); + addObject(Ground[4], 15, 69); + addObject(Ground[5], 19, 69); + addObject(Ground[6], 23, 69); + + + addObject(Bricks[0], 15, 65); + addObject(Bricks[1], 19, 65); + addObject(Bricks[2], 23, 65); + addObject(Bricks[3], 19, 61); + addObject(Bricks[4], 23, 61); + addObject(Bricks[5], 23, 57); + + //MovingBricks distance's + MovingBricksRight[0] = new MovingBrickRight(22, 79); + MovingBricksRight[1] = new MovingBrickRight(22, 79); + MovingBricksRight[2] = new MovingBrickRight(22, 79); + MovingBricksRight[3] = new MovingBrickRight(22, 79); + MovingBricksRight[4] = new MovingBrickRight(22, 79); + MovingBricksRight[5] = new MovingBrickRight(22, 79); + MovingBricksRight[6] = new MovingBrickRight(22, 79); + + MovingBricksLeft[0] = new MovingBrickLeft(22, 79); + MovingBricksLeft[1] = new MovingBrickLeft(22, 79); + MovingBricksLeft[2] = new MovingBrickLeft(22, 79); + MovingBricksLeft[3] = new MovingBrickLeft(22, 79); + MovingBricksLeft[4] = new MovingBrickLeft(22, 79); + MovingBricksLeft[5] = new MovingBrickLeft(22, 79); + MovingBricksLeft[6] = new MovingBrickLeft(22, 79); + + //MovingBricks locations + addObject(MovingBricksRight[0], 50, 61); + addObject(MovingBricksRight[1], 50, 53); + addObject(MovingBricksRight[2], 50, 45); + addObject(MovingBricksRight[3], 50, 37); + addObject(MovingBricksRight[4], 50, 29); + addObject(MovingBricksRight[5], 50, 21); + addObject(MovingBricksRight[6], 50, 13); + + addObject(MovingBricksLeft[0], 50, 57); + addObject(MovingBricksLeft[1], 50, 49); + addObject(MovingBricksLeft[2], 50, 41); + addObject(MovingBricksLeft[3], 50, 33); + addObject(MovingBricksLeft[4], 50, 33); + addObject(MovingBricksLeft[5], 50, 25); + addObject(MovingBricksLeft[6], 50, 17); + + //Coins + addObject(Coins[0], 50, 21); + addObject(Coins[1], 50, 33); + addObject(Coins[2], 50, 41); + addObject(Coins[3], 50, 53); + + //Finish + addObject(Ground[7], 15, 6); + addObject(Ground[8], 11, 6); + addObject(Ground[9], 7, 6); + addObject(Ground[10], 3, 6); + addObject(Ground[11], 0, 6); + + addObject(player, 4, 65); + return 150; + } + + + if (lvl == 4) { + addScore = false; + Ground = new Ground[12]; + MovingBricksUp = new MovingBrickUp[5]; + Bricks = new Brick[4]; + Coins = new SkyscraperCoin[4]; + + for (int i = 0; i < Ground.length; i++) + { + Ground[i] = new Ground (); + } + + for (int i = 0; i < Coins.length; i++) + { + Coins[i] = new SkyscraperCoin(); + } + + for (int i = 0; i < Bricks.length; i++) + { + Bricks[i] = new Brick(); + } + + + //first floor + addObject(Ground[0], 0, 69); + addObject(Ground[1], 3, 69); + addObject(Ground[2], 7, 69); + addObject(Ground[3], 11, 69); + addObject(Ground[4], 15, 69); + addObject(Ground[5], 19, 69); + addObject(Ground[6], 23, 69); + + + addObject(Bricks[0], 11, 12); + addObject(Bricks[1], 15, 12); + addObject(Bricks[2], 19, 12); + addObject(Bricks[3], 23, 12); + + //MovingBricks distance's + MovingBricksUp[0] = new MovingBrickUp(12, 69); + MovingBricksUp[1] = new MovingBrickUp(1, 33); + MovingBricksUp[2] = new MovingBrickUp(1, 33); + MovingBricksUp[3] = new MovingBrickUp(1, 33); + MovingBricksUp[4] = new MovingBrickUp(1, 33); + + //MovingBricks locations + addObject(MovingBricksUp[0], 7, 65); + addObject(MovingBricksUp[1], 31, 2); + addObject(MovingBricksUp[2], 39, 12); + addObject(MovingBricksUp[3], 47, 22); + addObject(MovingBricksUp[4], 55, 32); + + //Coins + addObject(Coins[0], 11, 7); + addObject(Coins[1], 19, 7); + addObject(Coins[2], 70, 27); + addObject(Coins[3], 78, 27); + + + //Finish + addObject(Ground[7], 62, 32); + addObject(Ground[8], 66, 32); + addObject(Ground[9], 70, 32); + addObject(Ground[10], 74, 32); + addObject(Ground[11], 78, 32); + + addObject(player, 7, 65); + return 200; + } + + if (lvl == 5) { + addScore = false; + Ground = new Ground[13]; + MovingBricksLeft = new MovingBrickLeft[4]; + MovingBricksRight = new MovingBrickRight[3]; + MovingBricksUp = new MovingBrickUp[5]; + Bricks = new Brick[2]; + Coins = new SkyscraperCoin[4]; + + for (int i = 0; i < Ground.length; i++) + { + Ground[i] = new Ground (); + } + + for (int i = 0; i < Coins.length; i++) + { + Coins[i] = new SkyscraperCoin(); + } + + for (int i = 0; i < Bricks.length; i++) + { + Bricks[i] = new Brick(); + } + + + //first floor + addObject(Ground[0], 0, 69); + addObject(Ground[1], 3, 69); + addObject(Ground[2], 7, 69); + addObject(Ground[3], 11, 69); + addObject(Ground[4], 15, 69); + addObject(Ground[5], 19, 69); + addObject(Ground[6], 23, 69); + + + addObject(Bricks[0], 35, 9); + addObject(Bricks[1], 27, 9); + + //MovingBricks distance's + MovingBricksLeft[0] = new MovingBrickLeft(0, 78); + MovingBricksLeft[1] = new MovingBrickLeft(0, 78); + MovingBricksLeft[2] = new MovingBrickLeft(0, 78); + MovingBricksLeft[3] = new MovingBrickLeft(0, 78); + + MovingBricksRight[0] = new MovingBrickRight(0, 78); + MovingBricksRight[1] = new MovingBrickRight(0, 78); + MovingBricksRight[2] = new MovingBrickRight(0, 78); + + MovingBricksUp[0] = new MovingBrickUp(9, 37); + MovingBricksUp[1] = new MovingBrickUp(9, 37); + MovingBricksUp[2] = new MovingBrickUp(9, 37); + MovingBricksUp[3] = new MovingBrickUp(9, 37); + MovingBricksUp[4] = new MovingBrickUp(9, 37); + + //MovingBricks locations + addObject(MovingBricksLeft[0], 19, 61); + addObject(MovingBricksLeft[1], 35, 53); + addObject(MovingBricksLeft[2], 51, 45); + addObject(MovingBricksLeft[3], 67, 37); + + addObject(MovingBricksRight[0], 27, 57); + addObject(MovingBricksRight[1], 43, 49); + addObject(MovingBricksRight[2], 59, 41); + + addObject(MovingBricksUp[0], 78, 31); + addObject(MovingBricksUp[1], 67, 25); + addObject(MovingBricksUp[2], 59, 21); + addObject(MovingBricksUp[3], 51, 17); + addObject(MovingBricksUp[4], 43, 13); + + + //Coins + addObject(Coins[0], 19, 57); + addObject(Coins[1], 75, 27); + addObject(Coins[2], 15, 5); + addObject(Coins[3], 3, 5); + + + //Finish + addObject(Ground[7], 19, 9); + addObject(Ground[8], 15, 9); + addObject(Ground[9], 11, 9); + addObject(Ground[10], 7, 9); + addObject(Ground[11], 3, 9); + addObject(Ground[12], 0, 9); + + addObject(player, 4, 65); + return 250; + } + return 0; + } + + public int getWaterLevel() { + return movingWater.getLevel(); + } + + public Score getScoreCounter() { + return scoreCounter; + } + + public SkyscraperPlayer getPlayer() { + return player; + } +} \ No newline at end of file diff --git a/Surface.class b/Surface.class new file mode 100644 index 0000000..2968e3d Binary files /dev/null and b/Surface.class differ diff --git a/Surface.ctxt b/Surface.ctxt new file mode 100644 index 0000000..3f39a3c --- /dev/null +++ b/Surface.ctxt @@ -0,0 +1,5 @@ +#BlueJ class context +comment0.params= +comment0.target=void\ act() +comment0.text=\n\ Act\ -\ do\ whatever\ the\ Surface\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +numComments=1 diff --git a/Surface.java b/Surface.java new file mode 100644 index 0000000..419ee0b --- /dev/null +++ b/Surface.java @@ -0,0 +1,19 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Surface here. + * + * @author (your name) + * @version (a version number or a date) + */ +public abstract class Surface extends Actor +{ + /** + * Act - do whatever the Surface wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + // Add your action code here. + } +} diff --git a/images/1stuk.psd b/images/1stuk.psd new file mode 100644 index 0000000..e10b643 Binary files /dev/null and b/images/1stuk.psd differ diff --git a/images/SCHOTconcrete.png b/images/SCHOTconcrete.png index ecaaa3a..f1f06d0 100644 Binary files a/images/SCHOTconcrete.png and b/images/SCHOTconcrete.png differ diff --git a/images/SCHOTiron.png b/images/SCHOTiron.png index 52b445d..f6c3159 100644 Binary files a/images/SCHOTiron.png and b/images/SCHOTiron.png differ diff --git a/images/SCHOTwood.png b/images/SCHOTwood.png index 9b6da04..ada985b 100644 Binary files a/images/SCHOTwood.png and b/images/SCHOTwood.png differ diff --git a/images/background v2.psd b/images/background v2.psd new file mode 100644 index 0000000..ffc7c9d Binary files /dev/null and b/images/background v2.psd differ diff --git a/images/background.png b/images/background.png index a376f2c..40cd477 100644 Binary files a/images/background.png and b/images/background.png differ diff --git a/images/background.psd b/images/background.psd new file mode 100644 index 0000000..62510f4 Binary files /dev/null and b/images/background.psd differ diff --git a/images/lava.gif b/images/lava.gif new file mode 100644 index 0000000..f585507 Binary files /dev/null and b/images/lava.gif differ diff --git a/images/menubar enzo.png b/images/menubar enzo.png new file mode 100644 index 0000000..072dc49 Binary files /dev/null and b/images/menubar enzo.png differ diff --git a/images/rivets.jpg b/images/rivets.jpg new file mode 100644 index 0000000..951a730 Binary files /dev/null and b/images/rivets.jpg differ diff --git a/images/stairs.png b/images/stairs.png new file mode 100644 index 0000000..c3f8956 Binary files /dev/null and b/images/stairs.png differ diff --git a/images/stairs.psd b/images/stairs.psd new file mode 100644 index 0000000..52c42c0 Binary files /dev/null and b/images/stairs.psd differ diff --git a/images/stukkie 1.png b/images/stukkie 1.png new file mode 100644 index 0000000..8b57767 Binary files /dev/null and b/images/stukkie 1.png differ diff --git a/images/trapstukkie 1.png b/images/trapstukkie 1.png new file mode 100644 index 0000000..bb8e5d7 Binary files /dev/null and b/images/trapstukkie 1.png differ diff --git a/project.greenfoot b/project.greenfoot index b45be38..57e589f 100644 --- a/project.greenfoot +++ b/project.greenfoot @@ -1,1380 +1,1874 @@ -#Greenfoot properties -#Fri Jan 25 10:00:09 CET 2013 -target15.width=120 -target5.height=50 -class.Direction.image=bord.png -dependency103.to=SpeedPowerUp -target78.showInterface=false -class.Victim2.image=victim2-1.png -target53.y=730 -target53.x=100 -dependency71.from=Ropeman -target5.y=1210 -target5.x=110 -target36.height=50 -dependency61.type=UsesDependency -package.numTargets=79 -class.RadiusPowerUp.image=plum.png -dependency94.type=UsesDependency -target14.width=90 -dependency45.to=Game -class.Helicopter.superclass=greenfoot.Actor -dependency88.to=House4 -dependency61.from=Helicopter -target19.editor.width=900 -target42.y=550 -target42.x=120 -dependency94.from=HelicopterWorld -target24.type=ClassTarget -target57.type=ClassTarget -class.Sandbag.superclass=Bag -target21.name=House -target54.name=House10 -class.House9.image=nogeengebouw1.png -target9.type=ClassTarget -target34.height=50 -dependency32.type=UsesDependency -target31.y=1510 -target31.x=110 -target14.type=ClassTarget -target6.name=Victim -target47.type=ClassTarget -target29.width=80 -dependency36.to=Genius -target11.name=Scoreboardbutton3 -target78.y=1150 -target44.name=Buttons -target78.x=10 -dependency79.to=HP -dependency32.from=FloodWorld -class.House8.image=grijsgebouw.png -target77.name=Game2 -dependency22.type=UsesDependency -target58.showInterface=false -dependency55.type=UsesDependency -target20.y=850 -target20.x=100 -target37.type=ClassTarget -class.House1.superclass=House -class.Water.image=achtergrondWater.png -target14.editor.width=900 -class.PowerUps.superclass=greenfoot.Actor -target34.name=Counter -target48.editor.y=22 -target76.editor.y=22 -target48.editor.x=0 -target76.editor.x=0 -dependency22.from=FloodWorld -target67.y=70 -target67.name=GameImage1 -target67.x=160 -target54.editor.y=22 -target54.editor.x=0 -dependency2.type=UsesDependency -dependency55.from=HelicopterWorldMenu -dependency12.type=UsesDependency -dependency45.type=UsesDependency -dependency27.to=Meadow -target79.editor.height=700 -target64.showInterface=false -dependency78.type=UsesDependency -class.Police.superclass=Player -dependency2.from=Menuworld -target9.showInterface=false -dependency12.from=Menuworld -target56.y=910 -dependency45.from=HighScore -target56.x=100 -target16.editor.y=22 -target16.editor.x=0 -target8.y=670 -dependency78.from=HelicopterWorld -target8.x=10 -target57.showInterface=false +#Greenfoot project file +class.Bag.superclass=greenfoot.Actor +class.Brick.image=SCHOTconcrete.png +class.Brick.superclass=Surface +class.Buttons.superclass=greenfoot.Actor +class.Calamities.superclass=greenfoot.Actor +class.CatchThief.image=police_officer.gif +class.CatchThief.superclass=Intervention +class.CatchThief_Menu.superclass=Menu +class.CementBag.image=ZAKcement.png class.CementBag.superclass=Bag -target22.editor.y=22 -target50.editor.y=22 -target22.editor.x=0 -target50.editor.x=0 -dependency60.to=HelicopterWorld -dependency68.type=UsesDependency -target70.showInterface=false -target54.height=50 -dependency68.from=SpeedPowerUp -target45.y=610 -dependency18.to=IronDivider -target45.x=120 -target63.showInterface=false -target8.showInterface=false -target28.name=House6 -class.IronDivider.superclass=Bag -target27.editor.width=900 -target71.width=110 -target56.showInterface=false -dependency51.to=FloodWorld -target34.y=1030 -target34.x=100 -dependency39.type=UsesDependency +class.Citizen.image=BURGERvoor1.png +class.Citizen.superclass=Player +class.Coin.image=coin.png +class.Coin.superclass=greenfoot.Actor +class.Coins.superclass=greenfoot.Actor class.ConcreteDivider.image=SCHOTconcrete.png -target32.editor.width=900 -dependency94.to=House10 -target52.height=50 -target18.name=Scoreboardbutton1 -class.CatchThief_Menu.superclass=Menu -target70.width=80 -dependency39.from=Player -target59.editor.height=700 -dependency100.to=Victim6 -target62.showInterface=false -dependency29.type=UsesDependency -target23.y=910 -target23.x=190 -target68.height=50 -target37.showInterface=false -target17.editor.width=900 -target11.height=50 -dependency29.from=FloodWorld -dependency42.to=FloodWorld -dependency9.type=UsesDependency -target65.editor.height=700 +class.ConcreteDivider.superclass=Bag +class.Console.superclass=greenfoot.Actor +class.ControlroomWorld.superclass=greenfoot.World +class.Counter.superclass=greenfoot.Actor +class.Direction.image=bord.png +class.Direction.superclass=greenfoot.Actor +class.Enemy.superclass=greenfoot.Actor +class.Evacuate.image=evac_vehicle.png +class.Evacuate.superclass=Intervention +class.Evacuate_Menu.superclass=Menu +class.Extinguish.image=firefighter.gif +class.Extinguish.superclass=Intervention +class.Extinguish_Menu.superclass=Menu +class.Fire.image=fire.gif +class.Fire.superclass=Calamities +class.FirefighterUnits.superclass=Counter +class.FloodStreet.image=flood.gif +class.FloodStreet.superclass=Calamities +class.FloodWorld.superclass=greenfoot.World +class.FloodWorldMenu.superclass=greenfoot.World +class.Floodbank.image=achtergrondDijk.png +class.Floodbank.superclass=greenfoot.Actor +class.Game.superclass= +class.Game1.image=PlayButton.png +class.Game1.superclass=Buttons +class.Game2.image=PlayButton.png +class.Game2.superclass=Buttons +class.Game3.image=PlayButton.png +class.Game3.superclass=Buttons +class.Game4.image=PlayButton.png +class.Game4.superclass=Buttons +class.GameImage1.image=GameImage1.png +class.GameImage1.superclass=GameImages +class.GameImage2.image=GameImage3.png +class.GameImage2.superclass=GameImages +class.GameImage3.image=GameImage2.png +class.GameImage3.superclass=GameImages class.GameImage4.image=GameImage4.png -dependency19.type=UsesDependency -target22.editor.width=900 -dependency85.to=House1 -target50.height=50 -target12.y=730 -target12.x=200 -target49.editor.y=22 -target49.editor.x=0 -target52.type=ClassTarget -target55.editor.y=22 -target42.naviview.expanded=false -target55.editor.x=0 -dependency9.from=Menuworld -target27.height=50 -target50.width=80 -dependency103.type=UsesDependency -target58.editor.height=700 -target43.showInterface=false -dependency19.from=Bag -class.Police.image=POLITIEvoor1.png -target59.y=1750 -target59.x=10 -target4.type=ClassTarget -target66.height=50 -target71.editor.height=700 -dependency7.to=Scoreboardbutton3 -target1.name=NeedsHelp -target42.type=AbstractTarget -dependency103.from=HelicopterWorld -target36.showInterface=false -target75.type=ClassTarget -target45.editor.width=900 -dependency33.to=Game -target23.editor.y=22 -target6.editor.width=900 -target51.editor.y=22 -target23.editor.x=0 -target51.editor.x=0 -target64.editor.height=700 -target72.name=Victim1 -target48.y=70 -target48.x=70 -target12.editor.width=900 -dependency76.to=Wall -target9.editor.height=700 -target29.showInterface=false -target50.editor.width=900 -class.Victim6.superclass=Victim -dependency50.type=UsesDependency -target32.type=ClassTarget -dependency83.type=UsesDependency -target25.height=50 -target65.type=ClassTarget -target65.width=80 -target57.editor.height=700 -target42.showInterface=false -target21.naviview.expanded=false -target62.name=PowerUp -dependency50.from=GameOverWorld -target70.editor.height=700 -target37.y=190 -dependency83.from=HelicopterWorld -target37.x=130 -dependency40.type=UsesDependency +class.GameImage4.superclass=GameImages +class.GameImages.superclass=greenfoot.Actor +class.GameOverScreen.superclass=greenfoot.Actor +class.GameOverWorld.superclass=greenfoot.World +class.Genius.image=GENIEvoor1.png +class.Genius.superclass=Player +class.GravelBag.image=ZAKgrind.png +class.GravelBag.superclass=Bag +class.Ground.image=stukkie\ 1.png +class.Ground.superclass=Surface +class.HP.superclass=greenfoot.Actor +class.Health.superclass=greenfoot.Actor +class.Health2.superclass=greenfoot.Actor +class.Helicopter.image=helikopter_rechts.gif +class.Helicopter.superclass=greenfoot.Actor +class.HelicopterWorld.superclass=greenfoot.World +class.HelicopterWorldMenu.superclass=greenfoot.World +class.HighScore.superclass= +class.HighScoreWorld.superclass=greenfoot.World +class.House.superclass=greenfoot.Actor +class.House1.image=huisje.png +class.House1.superclass=House +class.House10.image=nogeengebouw2.png +class.House10.superclass=House +class.House2.image=huislelijk.png +class.House2.superclass=House +class.House3.image=huishout.png +class.House3.superclass=House +class.House4.image=gebouwgroen.png +class.House4.superclass=House +class.House5.image=gebouwblauw.png class.House5.superclass=House -target35.showInterface=false -dependency73.type=UsesDependency -target64.width=80 -target35.editor.width=900 -dependency24.to=Overlay -target63.editor.height=700 -target70.height=50 -dependency40.from=Player -class.Game4.superclass=Buttons -dependency67.to=Wall -target28.showInterface=false -dependency73.from=HelicopterWorld -target40.editor.width=900 -class.Fire.superclass=Calamities +class.House6.image=blauwhooggebouw.png +class.House6.superclass=House +class.House7.image=huisbreed.png +class.House7.superclass=House +class.House8.image=grijsgebouw.png +class.House8.superclass=House +class.House9.image=nogeengebouw1.png +class.House9.superclass=House +class.Intervention.superclass=greenfoot.Actor +class.IronDivider.image=SCHOTiron.png +class.IronDivider.superclass=Bag +class.Kaboom.image=ontploffing.gif +class.Kaboom.superclass=greenfoot.Actor +class.Life.image=heart.png +class.Life.superclass=greenfoot.Actor +class.Meadow.image=achtergrondWei.png class.Meadow.superclass=greenfoot.Actor -target26.y=1450 -target1.editor.width=900 -target26.x=10 -target23.height=50 -target38.editor.height=700 -dependency63.type=UsesDependency -target45.width=80 -class.Health.superclass=greenfoot.Actor -target41.showInterface=false -dependency96.type=UsesDependency class.Menu.superclass=greenfoot.Actor -target58.editor.width=900 -dependency63.from=Helicopter -target39.height=50 -target34.showInterface=false -dependency96.from=HelicopterWorld -target26.type=ClassTarget -target44.width=80 -target15.y=790 -target79.width=80 -dependency15.to=GravelBag -target15.x=110 -target25.editor.width=900 -target44.editor.height=700 -target59.type=ClassTarget -dependency86.type=UsesDependency -target63.editor.width=900 -target23.name=HighScore -dependency58.to=Rope -target56.name=Coins -class.Citizen.image=BURGERvoor1.png -target30.editor.width=900 -target37.editor.height=700 -dependency86.from=HelicopterWorld -dependency34.type=UsesDependency -target56.editor.y=22 -target56.editor.x=0 -target16.type=ClassTarget -target43.width=90 -target40.showInterface=false -target8.name=Meadow -target49.type=ClassTarget -class.ConcreteDivider.superclass=Bag -mainWindow.width=1007 -target13.name=Scoreboardbutton2 -dependency91.to=House7 -target46.name=SpeedPowerUp -target15.showInterface=false -target48.editor.width=900 -dependency34.from=Player -class.Score.superclass=Counter -target79.name=Coin -target9.editor.width=900 -target24.width=120 -dependency24.type=UsesDependency -target59.width=80 -target43.editor.height=700 -dependency57.type=UsesDependency -target39.type=ClassTarget -target53.editor.width=900 -target24.editor.y=22 -target52.editor.y=22 -target24.editor.x=0 -target52.editor.x=0 -dependency49.to=HighScore -target30.editor.y=22 -target30.editor.x=0 -target36.name=House8 -target20.editor.width=900 -dependency24.from=FloodWorld -target43.height=50 -target69.name=GameImage2 -target1.editor.height=700 -dependency4.type=UsesDependency -target36.editor.height=700 -target21.showInterface=false -dependency57.from=Helicopter -dependency14.type=UsesDependency -target23.width=90 -target58.width=100 -dependency47.type=UsesDependency -class.HelicopterWorldMenu.superclass=greenfoot.World -class.House2.image=huislelijk.png -dependency82.to=Victim -dependency4.from=Menuworld -target59.height=50 -target38.editor.width=900 -target14.showInterface=false -dependency14.from=Bag -dependency47.from=HighScoreWorld -target39.width=130 -target22.width=80 -target42.editor.height=700 -target71.y=130 -target29.y=1450 -target71.x=130 -target29.x=190 -target43.editor.width=900 -target3.editor.y=22 -target4.editor.width=900 -class.FirefighterUnits.superclass=Counter -target3.editor.x=0 -dependency4.to=Game4 -class.House1.image=huisje.png -target70.type=ClassTarget -target41.height=50 -target35.editor.height=700 -target20.showInterface=false -target38.width=120 -dependency30.to=Coin -target60.y=1750 -target18.y=430 -target60.x=100 -target18.x=10 -target5.width=160 -dependency73.to=Helicopter -target57.height=50 -target60.type=ClassTarget -target13.showInterface=false -target66.editor.width=900 -target37.width=90 -class.House2.superclass=House -target41.editor.height=700 -class.Victim6.image=victim6-1.png -target33.editor.width=900 -class.Extinguish.image=firefighter.gif -target71.editor.width=900 -target4.width=100 -class.Victim.superclass=greenfoot.Actor +class.MenuBar.image=menubalk.png +class.MenuBar.superclass=greenfoot.Actor +class.Menuworld.superclass=greenfoot.World +class.MovingBrickLeft.image=SCHOTconcrete.png +class.MovingBrickLeft.superclass=Surface +class.MovingBrickRight.image=SCHOTconcrete.png +class.MovingBrickRight.superclass=Surface +class.MovingBrickUp.image=SCHOTconcrete.png +class.MovingBrickUp.superclass=Surface +class.MovingWater.superclass=greenfoot.Actor +class.MuteButton.image=volumeknop_aan.png +class.MuteButton.superclass=greenfoot.Actor +class.NeedsHelp.image=uitroepteken.gif class.NeedsHelp.superclass=greenfoot.Actor -mainWindow.height=724 -target16.editor.height=700 -class.Genius.image=GENIEvoor1.png -target1.y=1210 -target1.x=10 -class.Game1.superclass=Buttons -target16.height=50 -target18.width=140 -dependency21.to=Counter -target29.editor.y=22 -target57.editor.y=22 -target29.editor.x=0 -target57.editor.x=0 -class.Victim5.image=victim5-1.png -dependency64.to=Wall -target3.width=80 -target55.height=50 -dependency91.type=UsesDependency -target56.editor.width=900 -target22.editor.height=700 -target17.width=140 -class.Extinguish_Menu.superclass=Menu +class.NumberOfDeaths.superclass=Counter +class.NumberOfSaved.superclass=Counter +class.Obstacles.superclass=greenfoot.Actor +class.Overlay.image=selectOverlay.png +class.Overlay.superclass=greenfoot.Actor +class.Player.superclass=greenfoot.Actor +class.Police.image=POLITIEvoor1.png +class.Police.superclass=Player +class.PoliceUnits.superclass=Counter +class.PowerUp.superclass= +class.PowerUps.superclass=greenfoot.Actor +class.Quitbutton.image=QuitButton.png +class.Quitbutton.superclass=Buttons +class.RadiusPowerUp.image=plum.png +class.RadiusPowerUp.superclass=PowerUps +class.Rope.image=touw.png +class.Rope.superclass=greenfoot.Actor +class.Ropeman.image=touwman.png +class.Ropeman.superclass=greenfoot.Actor class.Sandbag.image=ZAKzand.png -target61.editor.width=900 -target25.editor.y=22 -dependency91.from=HelicopterWorld -target53.editor.y=22 -target25.editor.x=0 -target53.editor.x=0 -target31.editor.y=22 -target21.type=ClassTarget -target31.editor.x=0 -target15.editor.height=700 -target54.type=ClassTarget -target14.height=50 -dependency12.to=GameImage3 -target31.naviview.expanded=false -dependency105.type=UsesDependency -target51.name=Genius -class.HelicopterWorld.superclass=greenfoot.World -target6.type=ClassTarget -target79.editor.width=900 -dependency55.to=HelicopterWorld -target74.y=310 -target74.x=160 -target11.type=ClassTarget -target3.name=Wall -target44.type=ClassTarget -target46.editor.width=900 -dependency98.to=Victim4 -target21.editor.height=700 -dependency105.from=HelicopterWorld -target7.editor.width=900 -target77.type=ClassTarget -target41.name=Kaboom -target74.name=Game4 -dependency104.to=RadiusPowerUp -target51.editor.width=900 -target4.editor.y=22 -target4.editor.x=0 -target14.editor.height=700 -target63.y=1810 -target63.x=10 -dependency52.type=UsesDependency -target34.type=ClassTarget -class.Kaboom.superclass=greenfoot.Actor -target12.height=50 -target67.type=ClassTarget -target31.name=House3 -target75.height=50 -target64.name=Overlay -dependency46.to=Game -target69.editor.width=900 -dependency52.from=FloodWorldMenu -target28.height=50 -dependency42.type=UsesDependency -dependency89.to=House5 -target20.editor.height=700 -target52.y=670 -target52.x=190 -dependency75.type=UsesDependency -target3.height=50 -target74.editor.width=900 -target4.y=610 -target4.x=10 -target77.showInterface=false +class.Sandbag.superclass=Bag +class.Score.superclass=Counter +class.ScoreBoard.superclass=greenfoot.Actor class.Scoreboardbutton1.image=ScoreboardButton.png -class.Overlay.image=selectOverlay.png -dependency42.from=Water -dependency75.from=HelicopterWorld -dependency65.type=UsesDependency -target41.y=1570 -class.Victim2.superclass=Victim -class.Life.superclass=greenfoot.Actor -target41.x=190 -dependency98.type=UsesDependency -target58.editor.y=22 -target58.editor.x=0 -dependency37.to=FloodWorld -target73.height=50 -target59.editor.width=900 -dependency1.to=Game1 -dependency65.from=RadiusPowerUp -dependency98.from=HelicopterWorld +class.Scoreboardbutton1.superclass=Buttons +class.Scoreboardbutton2.image=ScoreboardButton.png +class.Scoreboardbutton2.superclass=Buttons +class.Scoreboardbutton3.image=ScoreboardButton.png +class.Scoreboardbutton3.superclass=Buttons +class.Scoreboardbutton4.image=ScoreboardButton.png +class.Scoreboardbutton4.superclass=Buttons +class.ShutOff.image=shut_off_street.gif class.ShutOff.superclass=Intervention -target1.height=50 -target64.editor.width=900 -target28.type=ClassTarget -target76.showInterface=false -dependency88.type=UsesDependency -target30.y=1510 -target30.x=10 -class.GameImage1.superclass=GameImages -target25.name=House4 -dependency70.to=Victim -class.FloodStreet.image=flood.gif -class.Victim7.superclass=Victim -target58.name=CementBag -target26.editor.y=22 -target26.editor.x=0 -target32.editor.y=22 -target32.editor.x=0 -target32.height=50 -target60.editor.y=22 -target60.editor.x=0 -target77.y=430 -class.Coins.superclass=greenfoot.Actor -target77.x=160 +class.ShutOff_Menu.superclass=Menu +class.SkyscraperCoin.image=coin.png +class.SkyscraperCoin.superclass=greenfoot.Actor +class.SkyscraperPlayer.image=POLITIEvoor1.png +class.SkyscraperPlayer.superclass=greenfoot.Actor +class.SkyscraperWorld.image=background.png +class.SkyscraperWorld.superclass=greenfoot.World +class.SpeedPowerUp.image=mushroom.png +class.SpeedPowerUp.superclass=PowerUps +class.Surface.superclass=greenfoot.Actor class.Thief.image=thief.gif -class.Coin.superclass=greenfoot.Actor -dependency88.from=HelicopterWorld -target69.showInterface=false -dependency36.type=UsesDependency -target18.type=ClassTarget -dependency28.to=MenuBar -target15.name=ConcreteDivider -class.House6.superclass=House -target48.name=Game1 -target48.height=50 -dependency36.from=Player -target54.naviview.expanded=false -target73.width=110 -dependency26.type=UsesDependency -target66.y=1870 -target66.x=100 -dependency59.type=UsesDependency -target75.showInterface=false -class.Water.superclass=greenfoot.Actor -dependency61.to=Kaboom -mainWindow.y=40 -mainWindow.x=40 -target38.name=GameOverWorld -target5.editor.y=22 -target5.editor.x=0 -target30.height=50 -dependency26.from=FloodWorld -class.Scoreboardbutton1.superclass=Buttons -dependency6.type=UsesDependency -target72.width=80 -dependency59.from=Helicopter -dependency16.type=UsesDependency -dependency49.type=UsesDependency -target78.editor.height=700 -target55.y=910 -dependency19.to=ConcreteDivider -target55.x=10 -target7.y=1270 -class.House10.image=nogeengebouw2.png -target7.x=100 -target77.editor.width=900 -dependency6.from=Menuworld -target46.height=50 -class.GameOverWorld.superclass=greenfoot.World -dependency100.type=UsesDependency -dependency16.from=Bag -target53.width=90 -dependency49.from=GameOverWorld -target1.type=ClassTarget -target1.editor.y=22 -target1.editor.x=0 -target74.showInterface=false -dependency52.to=Player -target44.y=10 -target44.x=150 -dependency100.from=HelicopterWorld -target72.type=ClassTarget -target49.showInterface=false -dependency95.to=Victim1 -target52.width=80 -target77.editor.height=700 -target59.editor.y=22 -dependency101.to=Victim7 -target59.editor.x=0 -class.IronDivider.image=SCHOTiron.png -target7.showInterface=false -target65.editor.y=22 -target65.editor.x=0 -class.Genius.superclass=Player -class.Player.superclass=greenfoot.Actor -target44.height=50 -dependency80.type=UsesDependency -target62.type=InterfaceTarget -target33.y=1030 -target33.x=10 -target68.width=80 -target51.width=80 -target55.showInterface=false -target72.editor.width=900 -dependency80.from=HelicopterWorld -dependency43.to=Bag -dependency70.type=UsesDependency -target27.editor.y=22 -target27.editor.x=0 -dependency86.to=House2 -target48.showInterface=false -target22.y=1330 -target33.editor.y=22 -target61.editor.y=22 -target22.x=200 -target33.editor.x=0 -target32.width=80 -target61.editor.x=0 -target67.width=110 -target76.editor.height=700 -target61.showInterface=false -dependency70.from=Ropeman -target69.y=130 -target69.x=10 -target6.showInterface=false +class.Thief.superclass=Calamities +class.Victim.superclass=greenfoot.Actor +class.Victim1.image=victim1-1.png +class.Victim1.superclass=Victim +class.Victim2.image=victim2-1.png +class.Victim2.superclass=Victim +class.Victim3.image=victim3-1.png +class.Victim3.superclass=Victim +class.Victim4.image=victim4-1.png +class.Victim4.superclass=Victim +class.Victim5.image=victim5-1.png +class.Victim5.superclass=Victim +class.Victim6.image=victim6-1.png +class.Victim6.superclass=Victim +class.Victim7.image=victim7-1.png +class.Victim7.superclass=Victim +class.Victim8.image=victim8-1.png +class.Victim8.superclass=Victim +class.Victims.image=peoplethatneedtobeevacuated.gif class.Victims.superclass=Calamities -dependency60.type=UsesDependency -dependency8.to=Scoreboardbutton4 -dependency93.type=UsesDependency -target19.height=50 +class.Wall.image=wall.png +class.Wall.superclass=greenfoot.Actor +class.Water.image=achtergrondWater.png +class.Water.superclass=greenfoot.Actor class.WoodenDivider.image=SCHOTwood.png -target31.width=80 -target66.width=120 -target54.showInterface=false -target11.y=250 -target11.x=10 -dependency34.to=Citizen -class.GravelBag.superclass=Bag -dependency60.from=Helicopter -class.Quitbutton.superclass=Buttons -dependency93.from=HelicopterWorld -target58.y=970 -target58.x=140 -target23.type=ClassTarget -dependency77.to=Direction -target47.showInterface=false -target6.editor.y=22 -target6.editor.x=0 -target56.type=ClassTarget -target47.width=80 -target30.width=90 -target20.name=WoodenDivider -target53.name=ScoreBoard -target60.showInterface=false -target8.type=ClassTarget -target64.height=50 -target5.showInterface=false -dependency31.type=UsesDependency -target13.type=ClassTarget -target5.name=HelicopterWorldMenu -target47.y=1630 -target17.height=50 -target47.x=140 -class.House3.superclass=House -target46.type=ClassTarget -target11.width=140 -target46.width=120 -target53.showInterface=false -target79.type=ClassTarget -target10.name=Helicopter -target2.editor.y=343 -target2.editor.x=299 -target43.name=IronDivider -dependency25.to=MuteButton -dependency31.from=FloodWorld -target76.name=Victim8 -target8.editor.height=700 -dependency21.type=UsesDependency -dependency68.to=Helicopter -dependency54.type=UsesDependency -target36.type=ClassTarget -target10.width=90 -target8.height=50 -target36.y=1570 -target56.editor.height=700 -target36.x=100 -target69.type=ClassTarget -target33.name=Game -target62.height=50 -dependency21.from=FloodWorld -target66.name=HelicopterWorld -target4.showInterface=false +class.WoodenDivider.superclass=Bag +dependency1.from=Menuworld +dependency1.to=Game1 dependency1.type=UsesDependency -target66.editor.y=22 -dependency54.from=NeedsHelp -class.Evacuate_Menu.superclass=Menu -target66.editor.x=0 +dependency10.from=Menuworld +dependency10.to=GameImage1 +dependency10.type=UsesDependency +dependency100.from=HelicopterWorld +dependency100.to=Victim6 +dependency100.type=UsesDependency +dependency101.from=HelicopterWorld +dependency101.to=Victim7 +dependency101.type=UsesDependency +dependency102.from=HelicopterWorld +dependency102.to=Victim8 +dependency102.type=UsesDependency +dependency103.from=HelicopterWorld +dependency103.to=SpeedPowerUp +dependency103.type=UsesDependency +dependency104.from=HelicopterWorld +dependency104.to=RadiusPowerUp +dependency104.type=UsesDependency +dependency105.from=HelicopterWorld +dependency105.to=GameOverWorld +dependency105.type=UsesDependency +dependency106.from=HelicopterWorld +dependency106.to=Game +dependency106.type=UsesDependency +dependency107.from=SkyscraperPlayer +dependency107.to=SkyscraperWorld +dependency107.type=UsesDependency +dependency108.from=SkyscraperPlayer +dependency108.to=MovingBrickLeft +dependency108.type=UsesDependency +dependency109.from=SkyscraperPlayer +dependency109.to=MovingBrickRight +dependency109.type=UsesDependency +dependency11.from=Menuworld +dependency11.to=GameImage2 dependency11.type=UsesDependency -target49.editor.height=700 -dependency44.type=UsesDependency -target26.width=80 -readme.editor.y=22 -readme.editor.x=0 -dependency77.type=UsesDependency -target25.y=1390 -target25.x=140 -target62.editor.height=700 -dependency1.from=Menuworld +dependency110.from=SkyscraperPlayer +dependency110.to=MovingBrickUp +dependency110.type=UsesDependency +dependency111.from=SkyscraperPlayer +dependency111.to=SkyscraperCoin +dependency111.type=UsesDependency +dependency112.from=SkyscraperPlayer +dependency112.to=Surface +dependency112.type=UsesDependency +dependency113.from=FloodWorld +dependency113.to=Score +dependency113.type=UsesDependency +dependency114.from=SkyscraperWorld +dependency114.to=Score +dependency114.type=UsesDependency +dependency115.from=SkyscraperWorld +dependency115.to=SkyscraperPlayer +dependency115.type=UsesDependency +dependency116.from=SkyscraperWorld +dependency116.to=MovingWater +dependency116.type=UsesDependency +dependency117.from=SkyscraperWorld +dependency117.to=MenuBar +dependency117.type=UsesDependency +dependency118.from=SkyscraperWorld +dependency118.to=GameOverWorld +dependency118.type=UsesDependency +dependency119.from=SkyscraperWorld +dependency119.to=Ground +dependency119.type=UsesDependency +dependency12.from=Menuworld +dependency12.to=GameImage3 +dependency12.type=UsesDependency +dependency120.from=SkyscraperWorld +dependency120.to=MovingBrickRight +dependency120.type=UsesDependency +dependency121.from=SkyscraperWorld +dependency121.to=Brick +dependency121.type=UsesDependency +dependency122.from=SkyscraperWorld +dependency122.to=SkyscraperCoin +dependency122.type=UsesDependency +dependency123.from=SkyscraperWorld +dependency123.to=MovingBrickLeft +dependency123.type=UsesDependency +dependency124.from=SkyscraperWorld +dependency124.to=MovingBrickUp +dependency124.type=UsesDependency +dependency125.from=SkyscraperWorld +dependency125.to=GameOverScreen +dependency125.type=UsesDependency +dependency126.from=SkyscraperWorld +dependency126.to=Surface +dependency126.type=UsesDependency +dependency127.from=SkyscraperWorld +dependency127.to=Game +dependency127.type=UsesDependency +dependency128.from=HelicopterWorld +dependency128.to=Score +dependency128.type=UsesDependency +dependency13.from=Menuworld +dependency13.to=GameImage4 +dependency13.type=UsesDependency +dependency14.from=Bag +dependency14.to=Sandbag +dependency14.type=UsesDependency +dependency15.from=Bag +dependency15.to=GravelBag +dependency15.type=UsesDependency +dependency16.from=Bag dependency16.to=CementBag -class.Fire.image=fire.gif -target78.height=50 -class.House5.image=gebouwblauw.png -dependency11.from=Menuworld -target7.editor.height=700 -target27.showInterface=false +dependency16.type=UsesDependency +dependency17.from=Bag +dependency17.to=WoodenDivider +dependency17.type=UsesDependency +dependency18.from=Bag +dependency18.to=IronDivider +dependency18.type=UsesDependency +dependency19.from=Bag +dependency19.to=ConcreteDivider +dependency19.type=UsesDependency +dependency2.from=Menuworld +dependency2.to=Game2 +dependency2.type=UsesDependency +dependency20.from=Bag +dependency20.to=Water +dependency20.type=UsesDependency +dependency21.from=FloodWorld +dependency21.to=Counter +dependency21.type=UsesDependency +dependency22.from=FloodWorld +dependency22.to=Player +dependency22.type=UsesDependency +dependency23.from=FloodWorld +dependency23.to=Coins +dependency23.type=UsesDependency +dependency24.from=FloodWorld +dependency24.to=Overlay +dependency24.type=UsesDependency +dependency25.from=FloodWorld +dependency25.to=MuteButton +dependency25.type=UsesDependency +dependency26.from=FloodWorld +dependency26.to=Water +dependency26.type=UsesDependency +dependency27.from=FloodWorld +dependency27.to=Meadow +dependency27.type=UsesDependency +dependency28.from=FloodWorld +dependency28.to=MenuBar +dependency28.type=UsesDependency +dependency29.from=FloodWorld +dependency29.to=Floodbank +dependency29.type=UsesDependency +dependency3.from=Menuworld +dependency3.to=Game3 +dependency3.type=UsesDependency +dependency30.from=FloodWorld +dependency30.to=Coin +dependency30.type=UsesDependency +dependency31.from=FloodWorld +dependency31.to=GameOverWorld +dependency31.type=UsesDependency +dependency32.from=FloodWorld +dependency32.to=Bag +dependency32.type=UsesDependency +dependency33.from=FloodWorld +dependency33.to=Game +dependency33.type=UsesDependency +dependency34.from=Player +dependency34.to=Citizen +dependency34.type=UsesDependency +dependency35.from=Player +dependency35.to=Police +dependency35.type=UsesDependency +dependency36.from=Player +dependency36.to=Genius +dependency36.type=UsesDependency +dependency37.from=Player +dependency37.to=FloodWorld +dependency37.type=UsesDependency +dependency38.from=Player +dependency38.to=Bag +dependency38.type=UsesDependency +dependency39.from=Player +dependency39.to=Water +dependency39.type=UsesDependency +dependency4.from=Menuworld +dependency4.to=Game4 +dependency4.type=UsesDependency +dependency40.from=Player +dependency40.to=Coin +dependency40.type=UsesDependency +dependency41.from=Water +dependency41.to=Floodbank +dependency41.type=UsesDependency +dependency42.from=Water +dependency42.to=FloodWorld +dependency42.type=UsesDependency +dependency43.from=Water +dependency43.to=Bag +dependency43.type=UsesDependency dependency44.from=Water +dependency44.to=Meadow +dependency44.type=UsesDependency +dependency45.from=HighScore +dependency45.to=Game +dependency45.type=UsesDependency +dependency46.from=HighScoreWorld +dependency46.to=Game +dependency46.type=UsesDependency +dependency47.from=HighScoreWorld +dependency47.to=HighScore +dependency47.type=UsesDependency +dependency48.from=GameOverWorld +dependency48.to=Game +dependency48.type=UsesDependency +dependency49.from=GameOverWorld +dependency49.to=HighScore +dependency49.type=UsesDependency +dependency5.from=Menuworld +dependency5.to=Scoreboardbutton1 +dependency5.type=UsesDependency +dependency50.from=GameOverWorld +dependency50.to=HighScoreWorld +dependency50.type=UsesDependency +dependency51.from=FloodWorldMenu +dependency51.to=FloodWorld +dependency51.type=UsesDependency +dependency52.from=FloodWorldMenu +dependency52.to=Player +dependency52.type=UsesDependency +dependency53.from=Game1 +dependency53.to=FloodWorldMenu +dependency53.type=UsesDependency +dependency54.from=NeedsHelp +dependency54.to=Victim +dependency54.type=UsesDependency +dependency55.from=HelicopterWorldMenu +dependency55.to=HelicopterWorld +dependency55.type=UsesDependency +dependency56.from=Victim +dependency56.to=HelicopterWorld +dependency56.type=UsesDependency +dependency57.from=Helicopter +dependency57.to=PowerUp +dependency57.type=UsesDependency +dependency58.from=Helicopter +dependency58.to=Rope +dependency58.type=UsesDependency +dependency59.from=Helicopter dependency59.to=Ropeman -dependency77.from=HelicopterWorld -target21.height=50 -target28.editor.y=22 -target28.editor.x=0 -target25.width=80 -target6.height=50 -target34.editor.y=22 -target62.editor.y=22 -target34.editor.x=0 -target55.editor.height=700 -target62.editor.x=0 +dependency59.type=UsesDependency +dependency6.from=Menuworld +dependency6.to=Scoreboardbutton2 +dependency6.type=UsesDependency +dependency60.from=Helicopter +dependency60.to=HelicopterWorld +dependency60.type=UsesDependency +dependency61.from=Helicopter +dependency61.to=Kaboom +dependency61.type=UsesDependency +dependency62.from=Helicopter +dependency62.to=MenuBar +dependency62.type=UsesDependency +dependency63.from=Helicopter +dependency63.to=House +dependency63.type=UsesDependency +dependency64.from=Helicopter +dependency64.to=Wall +dependency64.type=UsesDependency +dependency65.from=RadiusPowerUp +dependency65.to=Helicopter +dependency65.type=UsesDependency +dependency66.from=PowerUps +dependency66.to=Helicopter +dependency66.type=UsesDependency +dependency67.from=PowerUps +dependency67.to=Wall dependency67.type=UsesDependency -class.GravelBag.image=ZAKgrind.png -class.Evacuate.image=evac_vehicle.png -target14.y=790 -class.House4.image=gebouwgroen.png -target14.x=10 -target37.height=50 -class.Helicopter.image=helikopter_rechts.gif +dependency68.from=SpeedPowerUp +dependency68.to=Helicopter +dependency68.type=UsesDependency +dependency69.from=Ropeman +dependency69.to=HelicopterWorld +dependency69.type=UsesDependency +dependency7.from=Menuworld +dependency7.to=Scoreboardbutton3 +dependency7.type=UsesDependency +dependency70.from=Ropeman +dependency70.to=Victim +dependency70.type=UsesDependency +dependency71.from=Ropeman +dependency71.to=House +dependency71.type=UsesDependency +dependency72.from=PowerUp +dependency72.to=Helicopter +dependency72.type=UsesDependency +dependency73.from=HelicopterWorld +dependency73.to=Helicopter +dependency73.type=UsesDependency +dependency74.from=HelicopterWorld +dependency74.to=Counter +dependency74.type=UsesDependency +dependency75.from=HelicopterWorld +dependency75.to=MenuBar +dependency75.type=UsesDependency +dependency76.from=HelicopterWorld +dependency76.to=Wall +dependency76.type=UsesDependency +dependency77.from=HelicopterWorld +dependency77.to=Direction +dependency77.type=UsesDependency +dependency78.from=HelicopterWorld +dependency78.to=Water +dependency78.type=UsesDependency +dependency79.from=HelicopterWorld +dependency79.to=HP +dependency79.type=UsesDependency +dependency8.from=Menuworld +dependency8.to=Scoreboardbutton4 +dependency8.type=UsesDependency +dependency80.from=HelicopterWorld +dependency80.to=Health +dependency80.type=UsesDependency +dependency81.from=HelicopterWorld +dependency81.to=Health2 +dependency81.type=UsesDependency +dependency82.from=HelicopterWorld +dependency82.to=Victim +dependency82.type=UsesDependency +dependency83.from=HelicopterWorld +dependency83.to=House +dependency83.type=UsesDependency +dependency84.from=HelicopterWorld +dependency84.to=NeedsHelp +dependency84.type=UsesDependency +dependency85.from=HelicopterWorld +dependency85.to=House1 +dependency85.type=UsesDependency +dependency86.from=HelicopterWorld +dependency86.to=House2 +dependency86.type=UsesDependency +dependency87.from=HelicopterWorld +dependency87.to=House3 +dependency87.type=UsesDependency +dependency88.from=HelicopterWorld +dependency88.to=House4 +dependency88.type=UsesDependency +dependency89.from=HelicopterWorld +dependency89.to=House5 +dependency89.type=UsesDependency +dependency9.from=Menuworld +dependency9.to=Quitbutton +dependency9.type=UsesDependency +dependency90.from=HelicopterWorld +dependency90.to=House6 +dependency90.type=UsesDependency +dependency91.from=HelicopterWorld +dependency91.to=House7 +dependency91.type=UsesDependency +dependency92.from=HelicopterWorld dependency92.to=House8 -target48.editor.height=700 -target33.showInterface=false -dependency67.from=PowerUps +dependency92.type=UsesDependency +dependency93.from=HelicopterWorld +dependency93.to=House9 +dependency93.type=UsesDependency +dependency94.from=HelicopterWorld +dependency94.to=House10 +dependency94.type=UsesDependency +dependency95.from=HelicopterWorld +dependency95.to=Victim1 +dependency95.type=UsesDependency +dependency96.from=HelicopterWorld +dependency96.to=Victim2 +dependency96.type=UsesDependency +dependency97.from=HelicopterWorld +dependency97.to=Victim3 +dependency97.type=UsesDependency +dependency98.from=HelicopterWorld +dependency98.to=Victim4 +dependency98.type=UsesDependency +dependency99.from=HelicopterWorld +dependency99.to=Victim5 +dependency99.type=UsesDependency +mainWindow.height=774 +mainWindow.width=1280 +mainWindow.x=0 +mainWindow.y=22 +package.numDependencies=128 +package.numTargets=115 +project.charset=UTF-8 +readme.editor.height=700 +readme.editor.width=900 +readme.editor.x=0 +readme.editor.y=22 +simulation.speed=39 +target1.editor.height=700 +target1.editor.width=900 +target1.editor.x=0 +target1.editor.y=22 +target1.height=50 +target1.name=NeedsHelp +target1.showInterface=false +target1.type=ClassTarget +target1.width=90 +target1.x=10 +target1.y=1210 +target10.editor.height=700 +target10.editor.width=900 +target10.editor.x=0 +target10.editor.y=22 +target10.height=50 +target10.name=Floodbank +target10.showInterface=false +target10.type=ClassTarget +target10.width=90 +target10.x=10 +target10.y=790 +target100.editor.height=700 +target100.editor.width=900 +target100.editor.x=0 +target100.editor.y=22 +target100.height=50 +target100.name=Victim7 +target100.showInterface=false +target100.type=ClassTarget +target100.width=80 +target100.x=100 +target100.y=1750 +target101.editor.height=700 +target101.editor.width=900 +target101.editor.x=0 +target101.editor.y=22 +target101.height=50 +target101.name=Victim6 +target101.showInterface=false +target101.type=ClassTarget +target101.width=80 +target101.x=190 +target101.y=1750 +target102.editor.height=700 +target102.editor.width=900 +target102.editor.x=0 +target102.editor.y=22 +target102.height=50 +target102.name=PowerUp +target102.showInterface=false +target102.type=InterfaceTarget +target102.width=80 +target102.x=100 +target102.y=1810 +target103.editor.height=700 +target103.editor.width=900 +target103.editor.x=0 +target103.editor.y=22 +target103.height=50 +target103.name=Victim5 +target103.showInterface=false +target103.type=ClassTarget +target103.width=80 +target103.x=10 +target103.y=1810 +target104.editor.height=700 +target104.editor.width=900 +target104.editor.x=0 +target104.editor.y=22 +target104.height=50 +target104.name=SkyscraperCoin +target104.showInterface=false +target104.type=ClassTarget +target104.width=120 +target104.x=10 +target104.y=2830 +target105.editor.height=700 +target105.editor.width=900 +target105.editor.x=0 +target105.editor.y=22 +target105.height=50 +target105.name=Overlay +target105.showInterface=false +target105.type=ClassTarget +target105.width=80 +target105.x=190 +target105.y=1030 +target106.editor.height=700 +target106.editor.width=900 +target106.editor.x=0 +target106.editor.y=22 +target106.height=50 +target106.name=Victim4 +target106.showInterface=false +target106.type=ClassTarget +target106.width=80 +target106.x=190 +target106.y=1810 +target107.editor.height=700 +target107.editor.width=900 +target107.editor.x=0 +target107.editor.y=22 +target107.height=50 +target107.name=HelicopterWorld +target107.showInterface=false +target107.type=ClassTarget +target107.width=120 +target107.x=100 +target107.y=1870 +target108.editor.height=700 +target108.editor.width=900 +target108.editor.x=0 +target108.editor.y=22 +target108.height=50 +target108.name=Victim3 +target108.showInterface=false +target108.type=ClassTarget +target108.width=80 +target108.x=10 +target108.y=1870 +target109.editor.height=700 +target109.editor.width=900 +target109.editor.x=0 +target109.editor.y=22 +target109.height=50 +target109.name=Victim2 +target109.showInterface=false +target109.type=ClassTarget +target109.width=80 +target109.x=10 +target109.y=1930 +target11.editor.height=700 +target11.editor.width=900 +target11.editor.x=0 +target11.editor.y=22 +target11.height=50 +target11.name=ConcreteDivider +target11.showInterface=false +target11.type=ClassTarget +target11.width=120 +target11.x=110 +target11.y=790 +target110.editor.height=700 +target110.editor.width=900 +target110.editor.x=0 +target110.editor.y=22 +target110.height=50 +target110.name=Victim1 +target110.showInterface=false +target110.type=ClassTarget +target110.width=80 +target110.x=100 +target110.y=1930 +target111.editor.height=700 +target111.editor.width=900 +target111.editor.x=40 +target111.editor.y=42 +target111.height=50 +target111.name=CatchThief +target111.showInterface=false +target111.type=ClassTarget +target111.width=90 +target111.x=140 +target111.y=2830 +target112.editor.height=700 +target112.editor.width=900 +target112.editor.x=0 +target112.editor.y=22 +target112.height=50 +target112.name=Victim8 +target112.showInterface=false +target112.type=ClassTarget +target112.width=80 +target112.x=190 +target112.y=1930 +target113.editor.height=700 +target113.editor.width=900 +target113.editor.x=40 +target113.editor.y=42 +target113.height=50 +target113.name=Extinguish_Menu +target113.showInterface=false +target113.type=ClassTarget +target113.width=130 +target113.x=10 +target113.y=2890 +target114.editor.height=700 +target114.editor.width=900 +target114.editor.x=0 +target114.editor.y=22 +target114.height=50 +target114.name=Coin +target114.showInterface=false +target114.type=ClassTarget +target114.width=80 +target114.x=110 +target114.y=1150 +target115.editor.height=700 +target115.editor.width=900 +target115.editor.x=0 +target115.editor.y=22 +target115.height=50 +target115.name=GameOverScreen +target115.showInterface=false +target115.type=ClassTarget +target115.width=130 +target115.x=150 +target115.y=2890 +target12.editor.height=700 +target12.editor.width=900 +target12.editor.x=0 +target12.editor.y=22 +target12.height=50 +target12.name=MenuBar +target12.showInterface=false +target12.type=ClassTarget +target12.width=80 +target12.x=10 +target12.y=850 +target13.editor.height=700 +target13.editor.width=900 +target13.editor.x=0 +target13.editor.y=22 +target13.height=50 +target13.name=Scoreboardbutton4 +target13.showInterface=false +target13.type=ClassTarget +target13.width=140 +target13.x=10 +target13.y=370 +target14.editor.height=700 +target14.editor.width=900 +target14.editor.x=0 +target14.editor.y=22 +target14.height=50 +target14.name=Fire +target14.showInterface=false +target14.type=ClassTarget +target14.width=80 +target14.x=100 +target14.y=2110 +target15.editor.height=700 target15.editor.width=900 -target61.editor.height=700 -class.Game1.image=PlayButton.png -readme.editor.height=700 -class.House3.image=huishout.png -target27.name=HighScoreWorld -target6.editor.height=700 -target26.showInterface=false -target4.height=50 -target7.editor.y=22 -class.House10.superclass=House -target7.editor.x=0 -target54.editor.height=700 -dependency38.type=UsesDependency -dependency40.to=Coin +target15.editor.x=0 +target15.editor.y=22 +target15.height=50 +target15.name=Scoreboardbutton1 +target15.showInterface=false +target15.type=ClassTarget +target15.width=140 +target15.x=10 +target15.y=430 +target16.editor.height=700 +target16.editor.width=900 +target16.editor.x=40 +target16.editor.y=42 +target16.height=50 +target16.name=Menuworld +target16.showInterface=false +target16.type=ClassTarget +target16.width=90 +target16.x=10 +target16.y=490 +target17.editor.height=700 +target17.editor.width=900 +target17.editor.x=0 +target17.editor.y=22 +target17.height=50 +target17.name=WoodenDivider +target17.showInterface=false +target17.type=ClassTarget +target17.width=120 +target17.x=100 +target17.y=850 +target18.editor.height=700 +target18.editor.width=900 +target18.editor.x=0 +target18.editor.y=22 +target18.height=50 +target18.name=Surface +target18.showInterface=false +target18.type=AbstractTarget +target18.width=80 +target18.x=190 +target18.y=2110 +target19.editor.height=700 +target19.editor.width=900 +target19.editor.x=40 +target19.editor.y=42 +target19.height=50 +target19.name=Score target19.showInterface=false -target7.width=80 -class.RadiusPowerUp.superclass=PowerUps -target17.name=Scoreboardbutton4 -target29.editor.height=700 -target35.height=50 -dependency83.to=House -target32.showInterface=false -dependency38.from=Player -class.Victim8.image=victim8-1.png -dependency28.type=UsesDependency -target60.editor.height=700 -target6.width=80 -target39.y=1090 -target39.x=140 +target19.type=ClassTarget +target19.width=80 +target19.x=10 +target19.y=2170 +target2.editor.height=700 +target2.editor.width=900 +target2.editor.x=0 +target2.editor.y=22 +target2.height=50 +target2.name=Wall +target2.naviview.expanded=false +target2.showInterface=false +target2.type=ClassTarget +target2.width=80 +target2.x=200 +target2.y=1150 +target20.editor.height=700 +target20.editor.width=900 +target20.editor.x=0 +target20.editor.y=22 +target20.height=50 +target20.name=House5 +target20.naviview.expanded=false +target20.showInterface=false +target20.type=ClassTarget +target20.width=80 +target20.x=200 +target20.y=1330 +target21.editor.height=700 +target21.editor.width=900 +target21.editor.x=0 +target21.editor.y=22 +target21.height=50 +target21.name=HighScore +target21.naviview.expanded=false +target21.showInterface=false +target21.type=ClassTarget +target21.width=90 +target21.x=190 +target21.y=910 +target22.editor.height=700 +target22.editor.width=900 +target22.editor.x=0 +target22.editor.y=22 +target22.height=50 +target22.name=House4 +target22.naviview.expanded=false +target22.showInterface=false +target22.type=ClassTarget +target22.width=80 +target22.x=140 +target22.y=1390 +target23.editor.height=700 +target23.editor.width=900 +target23.editor.x=0 +target23.editor.y=22 +target23.height=50 +target23.name=House7 +target23.showInterface=false +target23.type=ClassTarget +target23.width=80 +target23.x=10 +target23.y=1450 +target24.editor.height=700 +target24.editor.width=900 +target24.editor.x=0 +target24.editor.y=22 +target24.height=50 +target24.name=House6 +target24.showInterface=false +target24.type=ClassTarget +target24.width=80 +target24.x=100 +target24.y=1450 +target25.editor.height=700 +target25.editor.width=900 +target25.editor.x=0 +target25.editor.y=22 +target25.height=50 +target25.name=HighScoreWorld +target25.naviview.expanded=false target25.showInterface=false -target10.editor.width=900 -dependency5.to=Scoreboardbutton1 -dependency28.from=FloodWorld -class.Victim3.superclass=Victim -dependency8.type=UsesDependency -class.Victim7.image=victim7-1.png -dependency18.type=UsesDependency -dependency31.to=GameOverWorld -target51.type=ClassTarget -target70.y=1930 +target25.type=ClassTarget +target25.width=120 +target25.x=10 +target25.y=970 +target26.editor.height=700 +target26.editor.width=900 +target26.editor.x=0 +target26.editor.y=22 +target26.height=50 +target26.name=House1 +target26.naviview.expanded=false +target26.showInterface=false +target26.type=ClassTarget +target26.width=80 +target26.x=190 +target26.y=1450 +target27.editor.height=700 +target27.editor.width=900 +target27.editor.x=0 +target27.editor.y=22 +target27.height=50 +target27.name=House3 +target27.naviview.expanded=false +target27.showInterface=false +target27.type=ClassTarget +target27.width=80 +target27.x=110 +target27.y=1510 target28.editor.height=700 target28.editor.width=900 -target28.y=1450 -target70.x=10 -target33.height=50 -target28.x=100 -dependency8.from=Menuworld -dependency74.to=Counter -target67.editor.y=22 -class.MenuBar.image=menubalk.png -target67.editor.x=0 -class.Overlay.superclass=greenfoot.Actor +target28.editor.x=0 +target28.editor.y=22 +target28.height=50 +target28.name=House2 +target28.showInterface=false +target28.type=ClassTarget +target28.width=80 +target28.x=200 +target28.y=1510 +target29.editor.height=700 +target29.editor.width=900 +target29.editor.x=40 +target29.editor.y=42 +target29.height=50 +target29.name=PoliceUnits +target29.naviview.expanded=false +target29.showInterface=false +target29.type=ClassTarget +target29.width=90 +target29.x=100 +target29.y=2170 +target3.editor.height=700 +target3.editor.width=900 +target3.editor.x=0 +target3.editor.y=22 +target3.height=50 +target3.name=Calamities +target3.showInterface=false +target3.type=AbstractTarget +target3.width=90 +target3.x=150 +target3.y=1990 +target30.editor.height=700 +target30.editor.width=900 +target30.editor.x=0 +target30.editor.y=22 +target30.height=50 +target30.name=House9 +target30.showInterface=false +target30.type=ClassTarget +target30.width=80 +target30.x=10 +target30.y=1570 +target31.editor.height=700 +target31.editor.width=900 +target31.editor.x=0 +target31.editor.y=22 +target31.height=50 +target31.name=House8 +target31.naviview.expanded=false target31.showInterface=false -dependency102.type=UsesDependency -dependency18.from=Bag -target19.width=90 -package.numDependencies=106 -target3.type=ClassTarget -target5.naviview.expanded=false -class.GameImage2.superclass=GameImages -class.Victim8.superclass=Victim -target41.type=ClassTarget -dependency102.from=HelicopterWorld -class.HighScore.superclass= -target74.type=ClassTarget -target17.y=370 -target34.editor.height=700 -target17.x=10 -target71.name=GameImage3 -target35.editor.y=22 -class.GameImage1.image=GameImage1.png -target63.editor.y=22 -target35.editor.x=0 -target63.editor.x=0 -dependency22.to=Player -class.House7.superclass=House -class.FloodStreet.superclass=Calamities target31.type=ClassTarget -target27.editor.height=700 -target12.showInterface=false -target18.editor.width=900 -dependency82.type=UsesDependency -dependency65.to=Helicopter -target64.type=ClassTarget -target40.editor.height=700 -target61.name=Victim6 -target23.editor.width=900 -dependency82.from=HelicopterWorld -class.Scoreboardbutton2.superclass=Buttons -dependency72.type=UsesDependency -target33.editor.height=700 -target8.editor.y=22 -target8.editor.x=0 -dependency13.to=GameImage4 -class.Console.superclass=greenfoot.Actor -dependency72.from=PowerUp -target53.height=50 -class.Rope.image=touw.png -target26.editor.height=700 -target11.showInterface=false -class.CatchThief.superclass=Intervention -dependency56.to=HelicopterWorld -dependency62.type=UsesDependency -dependency95.type=UsesDependency -class.SpeedPowerUp.superclass=PowerUps -dependency99.to=Victim5 -target13.editor.width=900 -target69.height=50 -class.Scoreboardbutton3.image=ScoreboardButton.png -dependency62.from=Helicopter -dependency105.to=GameOverWorld -dependency95.from=HelicopterWorld -target25.type=ClassTarget +target31.width=80 +target31.x=100 +target31.y=1570 target32.editor.height=700 -target61.width=80 -target58.type=ClassTarget -target73.y=190 -dependency85.type=UsesDependency -target73.x=10 -target22.name=House5 -target55.name=Police -class.Evacuate.superclass=Intervention -class.Scoreboardbutton2.image=ScoreboardButton.png -target51.height=50 -target10.showInterface=false -class.MuteButton.superclass=greenfoot.Actor -dependency47.to=HighScore -dependency85.from=HelicopterWorld -class.Health2.superclass=greenfoot.Actor -dependency33.type=UsesDependency +target32.editor.width=900 +target32.editor.x=0 +target32.editor.y=22 +target32.height=50 +target32.name=Quitbutton +target32.showInterface=false +target32.type=ClassTarget +target32.width=90 +target32.x=130 +target32.y=190 +target33.editor.height=700 +target33.editor.width=900 +target33.editor.x=0 +target33.editor.y=22 +target33.height=50 +target33.name=GameOverWorld +target33.naviview.expanded=false +target33.showInterface=false +target33.type=ClassTarget +target33.width=120 +target33.x=10 +target33.y=1090 +target34.editor.height=700 +target34.editor.width=900 +target34.editor.x=0 +target34.editor.y=22 +target34.height=50 +target34.name=FloodWorldMenu +target34.showInterface=false +target34.type=ClassTarget +target34.width=130 +target34.x=140 +target34.y=1090 +target35.editor.height=700 +target35.editor.width=900 +target35.editor.x=0 +target35.editor.y=22 +target35.height=50 +target35.name=Kaboom +target35.showInterface=false +target35.type=ClassTarget +target35.width=80 +target35.x=190 +target35.y=1570 +target36.editor.height=700 target36.editor.width=900 -target15.type=ClassTarget -target60.width=80 -target7.name=Health2 -target68.editor.y=22 -target68.editor.x=0 -class.SpeedPowerUp.image=mushroom.png -target48.type=ClassTarget -target62.y=1810 -target12.name=Citizen -target62.x=100 -class.CementBag.image=ZAKcement.png -target67.height=50 -target45.name=Player -target41.editor.width=900 -dependency33.from=FloodWorld -target78.name=GravelBag -target2.editor.width=900 -target13.editor.height=700 -dependency80.to=Health -dependency23.type=UsesDependency -target76.width=80 -class.NumberOfDeaths.superclass=Counter -target10.height=50 -dependency56.type=UsesDependency -target38.type=ClassTarget -class.Life.image=heart.png -target36.editor.y=22 -target64.editor.y=22 target36.editor.x=0 -target64.editor.x=0 -target51.y=730 -target35.name=House9 -target51.x=10 -target42.editor.y=22 -class.HP.superclass=greenfoot.Actor -target70.editor.y=22 -target42.editor.x=0 -target70.editor.x=0 -target3.y=1150 -dependency23.from=FloodWorld -target3.x=200 -target68.name=Victim3 -dependency38.to=Bag -dependency3.type=UsesDependency -class.Wall.superclass=greenfoot.Actor -class.Buttons.superclass=greenfoot.Actor -dependency56.from=Victim -dependency2.to=Game2 -target26.height=50 -dependency13.type=UsesDependency -target26.editor.width=900 -target40.width=100 -target75.width=80 -dependency46.type=UsesDependency -dependency79.type=UsesDependency -dependency3.from=Menuworld -target31.editor.width=900 -dependency13.from=Menuworld -target40.y=250 -target40.x=160 -class.Rope.superclass=greenfoot.Actor -class.Ropeman.superclass=greenfoot.Actor -target12.editor.height=700 -dependency71.to=House -dependency46.from=HighScoreWorld -target10.editor.y=22 -target10.editor.x=0 -target74.width=80 -dependency79.from=HelicopterWorld -target25.naviview.expanded=false -dependency69.type=UsesDependency -target9.editor.y=22 -target9.editor.x=0 -target71.height=50 -target49.editor.width=900 -class.Citizen.superclass=Player -dependency29.to=Floodbank -target24.height=50 -target16.editor.width=900 -target55.width=80 -target9.height=50 -dependency69.from=Ropeman -class.Quitbutton.image=QuitButton.png -class.ScoreBoard.superclass=greenfoot.Actor -target54.editor.width=900 -target76.y=1930 -target76.x=190 -target21.editor.width=900 -target29.name=House1 -target11.editor.height=700 -dependency62.to=MenuBar -target54.width=80 -class.Ropeman.image=touwman.png -target68.showInterface=false -class.NeedsHelp.image=uitroepteken.gif -target39.editor.width=900 -target65.y=1810 -target65.x=190 -target19.name=Menuworld -readme.editor.width=900 -target44.editor.width=900 -target69.editor.y=22 -target69.editor.x=0 -target5.editor.width=900 -dependency10.to=GameImage1 -target11.editor.width=900 -dependency90.type=UsesDependency -dependency53.to=FloodWorldMenu -target10.editor.height=700 -target54.y=1690 -target54.x=100 -target34.width=80 -target69.width=110 -target6.y=1270 -target6.x=10 -target67.showInterface=false -class.Direction.superclass=greenfoot.Actor -dependency96.to=Victim2 -dependency90.from=HelicopterWorld -target29.editor.width=900 -target20.type=ClassTarget -target37.editor.y=22 +target36.editor.y=22 +target36.height=50 +target36.name=MovingBrickUp +target36.showInterface=false +target36.type=ClassTarget +target36.width=120 +target36.x=10 +target36.y=2230 +target37.editor.height=700 +target37.editor.width=900 target37.editor.x=0 -target43.editor.y=22 +target37.editor.y=22 +target37.height=50 +target37.name=IronDivider +target37.showInterface=false +target37.type=ClassTarget +target37.width=90 +target37.x=110 +target37.y=490 +target38.editor.height=700 +target38.editor.width=900 +target38.editor.x=0 +target38.editor.y=22 +target38.height=50 +target38.name=Player +target38.showInterface=false +target38.type=AbstractTarget +target38.width=80 +target38.x=120 +target38.y=610 +target39.editor.height=700 +target39.editor.width=900 +target39.editor.x=0 +target39.editor.y=22 +target39.height=50 +target39.name=Game1 +target39.showInterface=false +target39.type=ClassTarget +target39.width=80 +target39.x=70 +target39.y=70 +target4.editor.height=700 +target4.editor.width=900 +target4.editor.x=0 +target4.editor.y=22 +target4.height=50 +target4.name=CatchThief_Menu +target4.showInterface=false +target4.type=ClassTarget +target4.width=130 +target4.x=10 +target4.y=1990 +target40.editor.height=700 +target40.editor.width=900 +target40.editor.x=0 +target40.editor.y=22 +target40.height=50 +target40.name=Sandbag +target40.showInterface=false +target40.type=ClassTarget +target40.width=80 +target40.x=100 +target40.y=670 +target41.editor.height=700 +target41.editor.width=900 +target41.editor.x=40 +target41.editor.y=42 +target41.height=50 +target41.name=Console +target41.showInterface=false +target41.type=ClassTarget +target41.width=80 +target41.x=200 +target41.y=2170 +target42.editor.height=700 +target42.editor.width=900 +target42.editor.x=0 +target42.editor.y=22 +target42.height=50 +target42.name=Direction +target42.naviview.expanded=false +target42.showInterface=false +target42.type=ClassTarget +target42.width=80 +target42.x=10 +target42.y=1690 +target43.editor.height=700 +target43.editor.width=900 target43.editor.x=0 -target67.editor.width=900 -target71.editor.y=22 -dependency102.to=Victim8 -target53.type=ClassTarget -target71.editor.x=0 -class.Extinguish.superclass=Intervention -target33.width=80 -target43.y=490 -target43.x=110 -dependency104.type=UsesDependency -target50.name=Direction -target34.editor.width=900 -target5.type=ClassTarget -target73.showInterface=false -target10.type=ClassTarget -target2.name=FloodWorld -dependency44.to=Meadow +target43.editor.y=22 +target43.height=50 +target43.name=Genius +target43.showInterface=false target43.type=ClassTarget -dependency104.from=HelicopterWorld -target76.type=ClassTarget -target49.width=80 -target11.editor.y=22 -target66.showInterface=false -target11.editor.x=0 -target40.name=GameImages -class.Victim1.image=victim1-1.png -dependency87.to=House3 -target32.y=1510 -target32.x=200 -target73.name=GameImage4 -target42.height=50 -target57.editor.width=900 -dependency51.type=UsesDependency -class.FloodWorld.superclass=greenfoot.World -target33.type=EnumTarget -target79.y=1150 -target79.x=110 -target59.showInterface=false -dependency84.type=UsesDependency -class.FloodWorldMenu.superclass=greenfoot.World -target66.type=ClassTarget -target13.width=140 -target48.width=80 -target24.editor.width=900 -target69.editor.height=700 -dependency9.to=Quitbutton -target30.name=PowerUps -class.HighScoreWorld.superclass=greenfoot.World -target72.showInterface=false -target63.name=Victim5 -target62.editor.width=900 -target21.y=1330 -target21.x=110 -dependency51.from=FloodWorldMenu -target58.height=50 -dependency84.from=HelicopterWorld -dependency35.to=Police -dependency41.type=UsesDependency -class.WoodenDivider.superclass=Bag -class.Victim4.superclass=Victim -dependency74.type=UsesDependency -target12.width=80 -target68.y=1870 -target68.x=10 -target65.showInterface=false -dependency78.to=Water -target75.editor.height=700 -dependency41.from=Water -target2.naviview.expanded=false -target40.height=50 -target10.y=1330 -target10.x=10 -dependency74.from=HelicopterWorld -target47.editor.width=900 -class.Calamities.superclass=greenfoot.Actor -target8.editor.width=900 -target28.width=80 -dependency64.type=UsesDependency -dependency97.type=UsesDependency -class.Counter.superclass=greenfoot.Actor -target68.editor.height=700 -class.GameImage3.superclass=GameImages -target57.y=1690 -target57.x=190 -target52.editor.width=900 -target71.showInterface=false -target9.y=1270 -target9.x=190 -class.House7.image=huisbreed.png -target56.height=50 -class.Game2.superclass=Buttons -dependency26.to=Water -class.House.superclass=greenfoot.Actor -dependency64.from=Helicopter -dependency97.from=HelicopterWorld +target43.width=80 +target43.x=10 +target43.y=730 +target44.editor.height=700 +target44.editor.width=900 +target44.editor.x=0 +target44.editor.y=22 +target44.height=50 +target44.name=Water +target44.showInterface=false +target44.type=ClassTarget +target44.width=80 +target44.x=190 +target44.y=670 +target45.editor.height=700 +target45.editor.width=900 +target45.editor.x=0 +target45.editor.y=22 +target45.height=50 +target45.name=SkyscraperPlayer +target45.showInterface=false +target45.type=ClassTarget +target45.width=130 +target45.x=140 +target45.y=2230 +target46.editor.height=700 +target46.editor.width=900 +target46.editor.x=0 +target46.editor.y=22 +target46.height=50 +target46.name=FloodStreet target46.showInterface=false -target27.type=ClassTarget -target27.width=120 -dependency69.to=HelicopterWorld -dependency87.type=UsesDependency -target24.name=RadiusPowerUp -target74.editor.height=700 -class.House8.superclass=House -target46.y=1630 +target46.type=ClassTarget +target46.width=100 target46.x=10 -class.Game4.image=PlayButton.png -class.House6.image=blauwhooggebouw.png -target57.name=Ropeman -class.Bag.superclass=greenfoot.Actor -target39.showInterface=false -target38.editor.y=22 -target37.editor.width=900 -target38.editor.x=0 -target44.editor.y=22 -target72.editor.y=22 -target44.editor.x=0 -target72.editor.x=0 -dependency87.from=HelicopterWorld -target75.editor.width=900 -target15.height=50 -dependency35.type=UsesDependency -target17.type=ClassTarget -target9.name=HP -target67.editor.height=700 +target46.y=2290 +target47.editor.height=700 +target47.editor.width=900 +target47.editor.x=0 +target47.editor.y=22 +target47.height=50 +target47.name=House10 +target47.naviview.expanded=false +target47.showInterface=false +target47.type=ClassTarget +target47.width=80 +target47.x=100 +target47.y=1690 +target48.editor.height=700 +target48.editor.width=900 +target48.editor.x=40 +target48.editor.y=42 +target48.height=50 +target48.name=NumberOfSaved +target48.showInterface=false +target48.type=ClassTarget +target48.width=120 +target48.x=120 +target48.y=2290 +target49.editor.height=700 +target49.editor.width=900 +target49.editor.x=40 +target49.editor.y=42 +target49.height=50 +target49.name=FirefighterUnits +target49.showInterface=false +target49.type=ClassTarget +target49.width=120 +target49.x=10 +target49.y=2350 +target5.editor.height=700 +target5.editor.width=900 +target5.editor.x=0 +target5.editor.y=22 +target5.height=50 +target5.name=Intervention +target5.naviview.expanded=false +target5.showInterface=false +target5.type=AbstractTarget +target5.width=100 +target5.x=10 +target5.y=2050 +target50.editor.height=700 +target50.editor.width=900 +target50.editor.x=40 +target50.editor.y=42 +target50.height=50 +target50.name=Extinguish +target50.showInterface=false +target50.type=ClassTarget +target50.width=90 +target50.x=140 +target50.y=2350 +target51.editor.height=700 +target51.editor.width=900 +target51.editor.x=0 +target51.editor.y=22 +target51.height=50 +target51.name=Police +target51.showInterface=false +target51.type=ClassTarget +target51.width=80 +target51.x=10 +target51.y=910 +target52.editor.height=700 +target52.editor.width=900 +target52.editor.x=0 +target52.editor.y=22 +target52.height=50 +target52.name=Coins target52.showInterface=false -target42.editor.width=900 -target14.name=Floodbank -target3.editor.width=900 -class.Game3.image=PlayButton.png -target47.name=Health -target35.y=1570 -class.Scoreboardbutton3.superclass=Buttons -dependency17.to=WoodenDivider -target35.x=10 -dependency35.from=Player -class.Kaboom.image=ontploffing.gif -target45.showInterface=false -dependency25.type=UsesDependency -dependency58.type=UsesDependency -target12.editor.y=22 -target40.editor.y=22 -target12.editor.x=0 -target40.editor.x=0 -class.Coin.image=coin.png -target73.editor.height=700 -target9.width=80 -class.Game2.image=PlayButton.png +target52.type=ClassTarget +target52.width=80 +target52.x=100 +target52.y=910 +target53.editor.height=700 +target53.editor.width=900 +target53.editor.x=0 +target53.editor.y=22 +target53.height=50 +target53.name=Enemy +target53.showInterface=false +target53.type=ClassTarget +target53.width=80 +target53.x=10 +target53.y=2410 +target54.editor.height=700 +target54.editor.width=900 +target54.editor.x=0 +target54.editor.y=22 +target54.height=50 +target54.name=Ropeman +target54.naviview.expanded=false +target54.showInterface=false +target54.type=ClassTarget +target54.width=80 +target54.x=190 +target54.y=1690 +target55.editor.height=700 +target55.editor.width=900 +target55.editor.x=0 +target55.editor.y=22 +target55.height=50 +target55.name=CementBag +target55.showInterface=false +target55.type=ClassTarget +target55.width=100 +target55.x=140 +target55.y=970 +target56.editor.height=700 +target56.editor.width=900 +target56.editor.x=0 +target56.editor.y=22 +target56.height=50 +target56.name=GameImage1 +target56.showInterface=false +target56.type=ClassTarget +target56.width=110 +target56.x=160 +target56.y=70 +target57.editor.height=700 +target57.editor.width=900 +target57.editor.x=0 +target57.editor.y=22 +target57.height=50 +target57.name=GameImage2 +target57.showInterface=false +target57.type=ClassTarget +target57.width=110 +target57.x=10 +target57.y=130 +target58.editor.height=700 +target58.editor.width=900 +target58.editor.x=0 +target58.editor.y=22 +target58.height=50 +target58.name=GameImage3 +target58.showInterface=false +target58.type=ClassTarget +target58.width=110 +target58.x=130 +target58.y=130 +target59.editor.height=700 +target59.editor.width=900 +target59.editor.x=0 +target59.editor.y=22 +target59.height=50 +target59.name=GameImage4 +target59.showInterface=false +target59.type=ClassTarget +target59.width=110 +target59.x=10 +target59.y=190 +target6.editor.height=700 +target6.editor.width=900 +target6.editor.x=0 +target6.editor.y=22 +target6.height=50 +target6.name=MovingWater +target6.naviview.expanded=false +target6.showInterface=false +target6.type=ClassTarget +target6.width=110 +target6.x=120 +target6.y=2050 +target60.editor.height=700 +target60.editor.width=900 +target60.editor.x=40 +target60.editor.y=42 target60.height=50 -target3.showInterface=false -target37.name=Quitbutton -target38.showInterface=false -dependency50.to=HighScoreWorld -dependency25.from=FloodWorld -target24.y=1390 -dependency5.type=UsesDependency -target24.x=10 +target60.name=ControlroomWorld +target60.showInterface=false +target60.type=ClassTarget +target60.width=140 +target60.x=100 +target60.y=2410 +target61.editor.height=700 +target61.editor.width=900 +target61.editor.x=40 +target61.editor.y=42 +target61.height=50 +target61.name=ShutOff +target61.showInterface=false +target61.type=ClassTarget +target61.width=80 +target61.x=10 +target61.y=2470 +target62.editor.height=700 +target62.editor.width=900 +target62.editor.x=0 +target62.editor.y=22 +target62.height=50 +target62.name=Game4 +target62.showInterface=false +target62.type=ClassTarget +target62.width=80 +target62.x=160 +target62.y=310 +target63.editor.height=700 +target63.editor.width=900 +target63.editor.x=0 +target63.editor.y=22 +target63.height=50 +target63.name=Game3 +target63.showInterface=false +target63.type=ClassTarget +target63.width=80 +target63.x=160 +target63.y=370 +target64.editor.height=700 +target64.editor.width=900 +target64.editor.x=0 +target64.editor.y=22 +target64.height=50 +target64.name=Game2 +target64.showInterface=false +target64.type=ClassTarget +target64.width=80 +target64.x=160 +target64.y=430 +target65.editor.height=700 target65.editor.width=900 -target13.height=50 -dependency58.from=Helicopter -dependency15.type=UsesDependency +target65.editor.x=0 +target65.editor.y=22 +target65.height=50 +target65.name=GravelBag +target65.naviview.expanded=false +target65.showInterface=false +target65.type=ClassTarget +target65.width=90 +target65.x=10 +target65.y=1150 target66.editor.height=700 -target51.showInterface=false -dependency93.to=House9 -dependency48.type=UsesDependency -target76.height=50 -target8.width=80 +target66.editor.width=900 +target66.editor.x=299 +target66.editor.y=343 +target66.height=50 +target66.name=FloodWorld +target66.naviview.expanded=false +target66.showInterface=false +target66.type=ClassTarget +target66.width=100 +target66.x=10 +target66.y=550 +target67.editor.height=700 +target67.editor.width=900 +target67.editor.x=0 +target67.editor.y=22 +target67.height=50 +target67.name=MuteButton +target67.showInterface=false +target67.type=ClassTarget +target67.width=100 +target67.x=10 +target67.y=610 +target68.editor.height=700 +target68.editor.width=900 +target68.editor.x=0 +target68.editor.y=22 +target68.height=50 +target68.name=HelicopterWorldMenu +target68.naviview.expanded=false +target68.showInterface=false +target68.type=ClassTarget +target68.width=160 +target68.x=110 +target68.y=1210 +target69.editor.height=700 +target69.editor.width=900 +target69.editor.x=0 +target69.editor.y=22 +target69.height=50 +target69.name=Victim +target69.naviview.expanded=false +target69.showInterface=false +target69.type=ClassTarget +target69.width=80 +target69.x=10 +target69.y=1270 +target7.editor.height=700 +target7.editor.width=900 +target7.editor.x=0 +target7.editor.y=22 +target7.height=50 +target7.name=Life +target7.showInterface=false +target7.type=ClassTarget +target7.width=80 +target7.x=10 +target7.y=2110 +target70.editor.height=700 target70.editor.width=900 -dependency5.from=Menuworld -dependency15.from=Bag -target29.height=50 -target44.showInterface=false -dependency48.from=GameOverWorld -target13.y=310 -class.Floodbank.superclass=greenfoot.Actor -target13.x=10 -target72.editor.height=700 -class.PoliceUnits.superclass=Counter -target71.type=ClassTarget -target2.showInterface=false -dependency41.to=Floodbank -target55.editor.width=900 -target47.editor.height=700 -target50.showInterface=false -dependency84.to=NeedsHelp +target70.editor.x=0 +target70.editor.y=22 +target70.height=50 +target70.name=Health2 +target70.showInterface=false +target70.type=ClassTarget +target70.width=80 +target70.x=100 +target70.y=1270 +target71.editor.height=700 +target71.editor.width=900 +target71.editor.x=0 +target71.editor.y=22 +target71.height=50 +target71.name=Ground +target71.showInterface=false +target71.type=ClassTarget +target71.width=80 +target71.x=100 +target71.y=2470 +target72.editor.height=700 +target72.editor.width=900 +target72.editor.x=0 +target72.editor.y=22 +target72.height=50 +target72.name=Meadow +target72.showInterface=false +target72.type=ClassTarget +target72.width=80 +target72.x=10 +target72.y=670 +target73.editor.height=700 +target73.editor.width=900 +target73.editor.x=0 +target73.editor.y=22 +target73.height=50 +target73.name=HP +target73.showInterface=false +target73.type=ClassTarget +target73.width=80 +target73.x=190 +target73.y=1270 +target74.editor.height=700 +target74.editor.width=900 +target74.editor.x=0 +target74.editor.y=22 target74.height=50 -target60.editor.width=900 -target77.editor.y=22 +target74.name=Helicopter +target74.showInterface=false +target74.type=ClassTarget +target74.width=90 +target74.x=10 +target74.y=1330 +target75.editor.height=700 +target75.editor.width=900 +target75.editor.x=40 +target75.editor.y=42 +target75.height=50 +target75.name=Evacuate_Menu +target75.showInterface=false +target75.type=ClassTarget +target75.width=120 +target75.x=10 +target75.y=2530 +target76.editor.height=700 +target76.editor.width=900 +target76.editor.x=40 +target76.editor.y=42 +target76.height=50 +target76.name=Menu +target76.showInterface=false +target76.type=ClassTarget +target76.width=80 +target76.x=190 +target76.y=2470 +target77.editor.height=700 +target77.editor.width=900 target77.editor.x=0 -target61.type=ClassTarget -target5.editor.height=700 -target49.y=670 -target49.x=100 -target2.height=50 -class.Victim1.superclass=Victim -dependency6.to=Scoreboardbutton2 -target53.editor.height=700 -class.GameImage3.image=GameImage2.png -target18.showInterface=false +target77.editor.y=22 +target77.height=50 +target77.name=Citizen +target77.showInterface=false +target77.type=ClassTarget +target77.width=80 +target77.x=200 +target77.y=730 +target78.editor.height=700 target78.editor.width=900 -target1.showInterface=false -dependency32.to=Bag -target39.editor.y=22 -target39.editor.x=0 -target17.editor.y=22 -target46.editor.height=700 -target45.editor.y=22 -target17.editor.x=0 -target73.editor.y=22 -target38.y=1090 -target45.editor.x=0 -class.NumberOfSaved.superclass=Counter -target73.editor.x=0 -target38.x=10 -dependency75.to=MenuBar +target78.editor.x=0 +target78.editor.y=22 +target78.height=50 +target78.name=House target78.naviview.expanded=false -class.GameImage2.image=GameImage3.png -target72.height=50 -target22.naviview.expanded=false -target4.editor.height=700 -target49.height=50 -target39.editor.height=700 -target24.showInterface=false -dependency92.type=UsesDependency -target52.editor.height=700 -target27.y=970 -target27.x=10 -target13.editor.y=22 -target13.editor.x=0 -target41.editor.y=22 -target41.editor.x=0 -target29.naviview.expanded=false -target17.showInterface=false -target68.editor.width=900 -dependency92.from=HelicopterWorld -dependency23.to=Coins -target22.type=ClassTarget -target31.height=50 -target55.type=ClassTarget -target30.showInterface=false -target45.editor.height=700 -dependency66.to=Helicopter -target73.editor.width=900 -dependency106.type=UsesDependency -target52.name=Water -target7.type=ClassTarget -target16.y=850 -target16.x=10 -target3.editor.height=700 -target47.height=50 -dependency30.type=UsesDependency -target12.type=ClassTarget -target23.showInterface=false -target4.name=MuteButton -target45.type=AbstractTarget -class.MenuBar.superclass=greenfoot.Actor -target63.width=80 -dependency106.from=HelicopterWorld +target78.showInterface=false target78.type=ClassTarget -target51.editor.height=700 -target42.name=Bag -dependency30.from=FloodWorld -target75.name=Game3 -target16.showInterface=false -class.Scoreboardbutton4.image=ScoreboardButton.png -dependency14.to=Sandbag -dependency20.type=UsesDependency -dependency53.type=UsesDependency -target35.type=ClassTarget -target62.width=80 -dependency57.to=PowerUp -target68.type=ClassTarget -target32.name=House2 -dependency20.from=Bag -target65.name=Victim4 -target19.editor.height=700 -dependency53.from=Game1 -target45.height=50 -target2.editor.height=700 -dependency10.type=UsesDependency -target22.showInterface=false -target78.editor.y=22 -target78.editor.x=0 -dependency43.type=UsesDependency -target78.width=90 -dependency106.to=Game -dependency76.type=UsesDependency -dependency90.to=House6 -target50.editor.height=700 -class.Thief.superclass=Calamities -dependency10.from=Menuworld -class.Meadow.image=achtergrondWei.png -dependency43.from=Water -target25.editor.height=700 -dependency76.from=HelicopterWorld -target42.width=80 -target77.width=80 -dependency48.to=Game -dependency66.type=UsesDependency -target18.editor.y=22 -target18.editor.x=0 -target46.editor.y=22 -target46.editor.x=0 -target74.editor.y=22 -target74.editor.x=0 -dependency99.type=UsesDependency -target18.editor.height=700 -target72.y=1930 -target72.x=100 -dependency66.from=PowerUps -target41.width=80 -dependency99.from=HelicopterWorld -target31.editor.height=700 -target29.type=ClassTarget -dependency81.to=Health2 -dependency89.type=UsesDependency -target26.name=House7 -target14.editor.y=22 -target14.editor.x=0 -target20.editor.y=22 -target59.name=Rope -class.ControlroomWorld.superclass=greenfoot.World -target20.editor.x=0 -target76.editor.width=900 -target61.y=1750 -target24.editor.height=700 -target61.x=190 -target19.y=490 -target19.x=10 -target57.width=80 -dependency89.from=HelicopterWorld -dependency39.to=Water -dependency37.type=UsesDependency -target19.type=ClassTarget -dependency3.to=Game3 -target65.height=50 -target16.name=MenuBar -target17.editor.height=700 -target49.name=Sandbag -class.Victim5.superclass=Victim -class.GameImages.superclass=greenfoot.Actor -dependency37.from=Player -target18.height=50 -target21.width=80 -target56.width=80 -target50.y=1690 -target30.editor.height=700 -target50.x=10 -class.Victims.image=peoplethatneedtobeevacuated.gif -dependency27.type=UsesDependency -dependency72.to=Helicopter -class.Intervention.superclass=greenfoot.Actor -target2.y=550 -target2.x=10 -class.Game.superclass= -target6.naviview.expanded=false -target39.name=FloodWorldMenu -target23.editor.height=700 -class.Floodbank.image=achtergrondDijk.png -dependency27.from=FloodWorld -class.House4.superclass=House -dependency7.type=UsesDependency -target20.width=120 -class.CatchThief.image=police_officer.gif -class.GameImage4.superclass=GameImages -dependency17.type=UsesDependency -project.charset=UTF-8 -class.ShutOff.image=shut_off_street.gif -target63.height=50 -target50.type=ClassTarget -class.Game3.superclass=Buttons -dependency20.to=Water -class.Wall.image=wall.png -dependency7.from=Menuworld -dependency101.type=UsesDependency -dependency17.from=Bag -target79.editor.y=22 +target78.width=80 +target78.x=110 +target78.y=1330 +target79.editor.height=700 +target79.editor.width=900 target79.editor.x=0 -target36.width=80 -target2.type=ClassTarget -dependency63.to=House -class.MuteButton.image=volumeknop_aan.png -class.House9.superclass=House +target79.editor.y=22 target79.height=50 -target40.type=ClassTarget -dependency101.from=HelicopterWorld -target73.type=ClassTarget -class.ShutOff_Menu.superclass=Menu -target22.height=50 -target75.y=370 -target35.width=80 -target7.height=50 -target75.x=160 -world.lastInstantiated=Menuworld -class.Victim4.image=victim4-1.png -target70.name=Victim2 +target79.name=Obstacles target79.showInterface=false -target19.editor.y=42 -target19.editor.x=40 -target47.editor.y=22 -target47.editor.x=0 -target75.editor.y=22 -class.PowerUp.superclass= -target75.editor.x=0 -target2.width=100 -target61.height=50 -class.Scoreboardbutton4.superclass=Buttons -target30.type=ClassTarget -dependency11.to=GameImage2 -dependency81.type=UsesDependency -target63.type=ClassTarget -target38.height=50 -target16.width=80 -dependency54.to=Victim -class.Victim3.image=victim3-1.png -target60.name=Victim7 -target64.y=1030 -target64.x=190 +target79.type=AbstractTarget +target79.width=90 +target79.x=140 +target79.y=2530 +target8.editor.height=700 +target8.editor.width=900 +target8.editor.x=0 +target8.editor.y=22 +target8.height=50 +target8.name=Scoreboardbutton3 +target8.showInterface=false +target8.type=ClassTarget +target8.width=140 +target8.x=10 +target8.y=250 +target80.editor.height=700 +target80.editor.width=900 +target80.editor.x=40 +target80.editor.y=42 +target80.height=50 +target80.name=Thief +target80.showInterface=false +target80.type=ClassTarget +target80.width=80 +target80.x=10 +target80.y=2590 +target81.editor.height=700 +target81.editor.width=900 +target81.editor.x=40 +target81.editor.y=42 +target81.height=50 +target81.name=ShutOff_Menu +target81.showInterface=false +target81.type=ClassTarget +target81.width=110 +target81.x=100 +target81.y=2590 +target82.editor.height=700 +target82.editor.width=900 +target82.editor.x=0 +target82.editor.y=22 +target82.height=50 +target82.name=RadiusPowerUp +target82.showInterface=false +target82.type=ClassTarget +target82.width=120 +target82.x=10 +target82.y=1390 +target83.editor.height=700 +target83.editor.width=900 +target83.editor.x=0 +target83.editor.y=22 +target83.height=50 +target83.name=PowerUps +target83.showInterface=false +target83.type=ClassTarget +target83.width=90 +target83.x=10 +target83.y=1510 +target84.editor.height=700 +target84.editor.width=900 +target84.editor.x=40 +target84.editor.y=42 +target84.height=50 +target84.name=Victims +target84.showInterface=false +target84.type=ClassTarget +target84.width=80 +target84.x=10 +target84.y=2650 +target85.editor.height=700 +target85.editor.width=900 +target85.editor.x=0 +target85.editor.y=22 +target85.height=50 +target85.name=Game +target85.showInterface=false +target85.type=EnumTarget +target85.width=80 +target85.x=10 +target85.y=1030 +target86.editor.height=700 +target86.editor.width=900 +target86.editor.x=0 +target86.editor.y=22 +target86.height=50 +target86.name=Counter +target86.showInterface=false +target86.type=ClassTarget +target86.width=80 +target86.x=100 +target86.y=1030 +target87.editor.height=700 +target87.editor.width=900 +target87.editor.x=0 +target87.editor.y=22 +target87.height=50 +target87.name=GameImages +target87.showInterface=false +target87.type=ClassTarget +target87.width=100 +target87.x=160 +target87.y=250 +target88.editor.height=700 +target88.editor.width=900 +target88.editor.x=0 +target88.editor.y=22 +target88.height=50 +target88.name=Brick +target88.showInterface=false +target88.type=ClassTarget +target88.width=80 +target88.x=100 +target88.y=2650 +target89.editor.height=700 +target89.editor.width=900 +target89.editor.x=0 +target89.editor.y=22 +target89.height=50 +target89.name=MovingBrickRight +target89.showInterface=false +target89.type=ClassTarget +target89.width=130 +target89.x=10 +target89.y=2710 +target9.editor.height=700 +target9.editor.width=900 +target9.editor.x=0 +target9.editor.y=22 +target9.height=50 +target9.name=Scoreboardbutton2 +target9.showInterface=false +target9.type=ClassTarget +target9.width=140 +target9.x=10 +target9.y=310 +target90.editor.height=700 +target90.editor.width=900 +target90.editor.x=0 +target90.editor.y=22 +target90.height=50 +target90.name=Bag +target90.naviview.expanded=false +target90.showInterface=false +target90.type=AbstractTarget +target90.width=80 +target90.x=120 +target90.y=550 +target91.editor.height=700 +target91.editor.width=900 +target91.editor.x=0 +target91.editor.y=22 +target91.height=50 +target91.name=Buttons +target91.showInterface=false +target91.type=ClassTarget +target91.width=80 +target91.x=150 +target91.y=10 +target92.editor.height=700 +target92.editor.width=900 +target92.editor.x=0 +target92.editor.y=22 +target92.height=50 +target92.name=SpeedPowerUp +target92.showInterface=false +target92.type=ClassTarget +target92.width=120 +target92.x=10 +target92.y=1630 +target93.editor.height=700 +target93.editor.width=900 +target93.editor.x=0 +target93.editor.y=22 +target93.height=50 +target93.name=Health +target93.showInterface=false +target93.type=ClassTarget +target93.width=80 +target93.x=140 +target93.y=1630 +target94.editor.height=700 +target94.editor.width=900 +target94.editor.x=0 +target94.editor.y=22 +target94.height=50 +target94.name=SkyscraperWorld +target94.naviview.expanded=false +target94.showInterface=false +target94.type=ClassTarget +target94.width=130 +target94.x=150 +target94.y=2710 +target95.editor.height=700 +target95.editor.width=900 +target95.editor.x=0 +target95.editor.y=22 +target95.height=50 +target95.name=ScoreBoard +target95.showInterface=false +target95.type=ClassTarget +target95.width=90 +target95.x=100 +target95.y=730 +target96.editor.height=700 +target96.editor.width=900 +target96.editor.x=40 +target96.editor.y=42 +target96.height=50 +target96.name=NumberOfDeaths +target96.showInterface=false +target96.type=ClassTarget +target96.width=130 +target96.x=10 +target96.y=2770 +target97.editor.height=700 +target97.editor.width=900 +target97.editor.x=0 +target97.editor.y=22 +target97.height=50 +target97.name=MovingBrickLeft +target97.showInterface=false +target97.type=ClassTarget +target97.width=130 +target97.x=150 +target97.y=2770 +target98.editor.height=700 +target98.editor.width=900 +target98.editor.x=0 +target98.editor.y=22 +target98.height=50 +target98.name=Rope +target98.showInterface=false +target98.type=ClassTarget +target98.width=80 +target98.x=10 +target98.y=1750 +target99.editor.height=700 +target99.editor.width=900 +target99.editor.x=40 +target99.editor.y=42 +target99.height=50 +target99.name=Evacuate +target99.showInterface=false +target99.type=ClassTarget +target99.width=80 +target99.x=190 +target99.y=2650 version=2.4.0 -target77.height=50 -class.Menuworld.superclass=greenfoot.World -dependency81.from=HelicopterWorld -target1.width=90 -dependency97.to=Victim3 -target15.editor.y=22 -target15.editor.x=0 -dependency71.type=UsesDependency -target21.editor.y=22 -target20.height=50 -target21.editor.x=0 +world.lastInstantiated=Menuworld