import greenfoot.*;
//import javax.swing.*;
import java.util.ArrayList;
public class world extends World
{
public boolean readPause = true;
public boolean isPaused = false;
Resume resume = new Resume();
ArrayList<ArrayList<Water>> waters = new ArrayList<ArrayList<Water>>();
private int score = 100;
Player player = new Player();
private int gameMode2 = 0;
private GreenfootSound music = new GreenfootSound("Music.mp3");
private ScoreReader scorereader = new ScoreReader();
public int getGameMode2()
{
return gameMode2;
}
public void setGameMode2(int gameMode)
{
gameMode2 = gameMode;
}
public int getScore()
{
return score;
}
public void setScore(int score)
{
this.score += score;
}
public world()
{
super(80, 80, 10);
int gameMode = scorereader.readHighscore(5);// gameMode opzoeken en opslaan
setGameMode2(gameMode);
WaterPrepare[] watersprepare = new WaterPrepare[3600];// array voor waterprepareobjecten aanmaken
Dijk[] dijken = new Dijk[1200];//array voor dijkobjecten aanmaken
Binnendijk[] binnendijken = new Binnendijk[2800];//array voor binnendijk objecten aanmaken
ArrayList<Zandzak> zandzakken = new ArrayList<Zandzak>();
int a=0;//counter aanmaken om vorige waterprepare object te onthouden
int b=0;//counter aanmaken om vorige dijk object te onthouden
int c=0;//counter aanmaken om vorige binnendijk object te onthouden
int f=0;//counter voor zandzakken
for(int z=0; z<watersprepare.length; z++)//array voor waterobjecten vullen
{
watersprepare[z] = new WaterPrepare();
}
for(int z=0; z<dijken.length; z++)//array voor dijkobjecten vullen
{
dijken[z] = new Dijk();
}
for(int z=0; z<binnendijken.length; z++)//array voor binnendijkobjecten vullen
{
binnendijken[z] = new Binnendijk();
}
for(int x=0; x<80; x++)//de waterachtergrond op het scherm zetten
{
for(int y=0; y<30; y++)
{
addObject(watersprepare[a], x, y);
a++;//counter optellen van vorige water object
}
for(int y=30; y<45; y++)//de dijkachtergrond op het scherm zetten
{
addObject(dijken[b], x, y);
b++;//counter optellen van vorige dijk object
}
for(int y=45; y<70; y++)//de binnendijkachtergrond op het scherm zetten
{
addObject(binnendijken[c], x, y);
c++;//counter optellen van vorige binnendijk object
}
}
//addObjecten functie in game plaatsen
addObject(new addObjecten(), 40, 2);
addObject(new OndermenuImg(),40, 74);
OnderMenu ondermenu = new OnderMenu();//ondermenu met juiste character in game plaatsen
addObject(ondermenu,66, 76);
ondermenu.zetPlaatje(gameMode);
addObject(new Item1(), 15, 74); //Itemweergave + prijzen toevoegen
addObject(new Item(), 15,74);
if(gameMode >= 2)
{
addObject(new Item2(), 21, 74);
addObject(new Item3(), 27, 74);
addObject(new Meeuw(), 30, 10);
}
if(gameMode == 3)
{
addObject(new Meeuw(), 50, 10);
}
if(gameMode == 1)
{
addObject(new Item2Bezet(), 21, 74);
addObject(new Item3Bezet(), 27, 74);
}
addObject(new Item4(), 33, 74);
addObject(new Item5(), 39, 74);
addObject(new Geld1(), 15, 78);
addObject(new Geld2(), 21, 78);
addObject(new Geld3(), 27, 78);
addObject(new Geld4(), 33, 78);
addObject(new Geld5(), 39, 78);
addObject(new Score() , 11, 74);//score telling in game plaatsen
addObject(new Auto(), 0, 60);//auto ter decoratie toevoegen aan game
addObject(new Meeuw(), 10, 10);// meeuw ter decoratie toevoegen aan game
addObject(new Muteingame(), 77, 67);//mute knop in-game
addObject(player, 40, 50);//player toevoegen aan game
player.setGameMode3(gameMode);//juiste plaatje voor player goedzetten
for(int i=0; i<gameMode; i++)//aantal arrays met water aanmaken, aantal arrays is gelijk aan game mode
{
waters.add(i, new ArrayList<Water>());
waters.get(i).add(0, new Water());
Water water0 = waters.get(i).get(0);
addObject(water0, 0, 0);
waters.get(i).get(0).makeBegin(waters, i);
}
}
public Player getPlayer()
{
return player;
}
public void act()
{
if(!isPaused)
{
setScore();
Greenfoot.setSpeed(30);
}
pauseGame();
started();
}
public void pauseGame()
{
if(!readPause && (!Greenfoot.isKeyDown("escape")))
readPause = true;
if((Greenfoot.isKeyDown("escape")) && readPause)
{
if(isPaused) isPaused = false;
else isPaused = true;
readPause = false;
}
}
public void setScore()
{
setScore(5);// iedere act score iets verhogen
for(int i=0; i<waters.size(); i++)//nieuw water toevoegen aan game
{
waters.get(i).get(0).addNextWater(waters, i);
}
}
public void started()
{
music.playLoop();
}
public void stopped()
{
music.stop();
}
public void mute()
{
music.setVolume(0);
}
public void unmute()
{
music.setVolume(100);
}
}