I seem to be having difficulty adding an actor inside of the world that the PIP is in from an actor inside of the PIP
Context
The player(UmaruHamster) is placed in a platform game that's in a PIP in MyWorld and is supposed to go from PointA to PointB. along the way, there will be a challenge the player can participate in and get extra rewards(Buffs) for completing the challenge and reaching PointB. When the reward is "given", what happens is that an actor is added into the world the PIP is added in (not the world inside of the PIP) and the buff "activates" via some code in an actor. But for some reason, the actor isnt added into the world.
Codes
The actor the player is supposed to control:
the buff actors(CCola, MiniCCola, PChips, MiniPChips, BRAnime, MiniBRAnime(all of them have no codes in themsince the codes relating to these actors are done in the world and other actors)):
The Main Game world(MyWorld) code:
The Minigame World Code:
import greenfoot.*;
public class MiniUmaru extends Actor
{
private int MiniPChipsScore = 0, MiniCColaScore = 0, MiniBRAnimeScore = 0, frames = 0, seconds = 0, speed = 0, vSpeed = 0, acceleration = 2, jumpStrength = 20, SX, SY;
public Actor PChips = new PChips(), CCola = new CCola(), BRAnime = new BRAnime();
public SimpleActor Nope = new SimpleActor();
public String TerrainUsed;
MyWorld mw = (MyWorld)getWorld();
public void act()
{
OnGround();
checkKeys();
checkFall();
if(TerrainUsed == "Terrain 1"){SX=99; SY=487;}
else if(TerrainUsed == "Terrain 2"){SX=1084; SY=493;}
else if(TerrainUsed == "Terrain 3"){SX=104; SY=527;}
else if(TerrainUsed == "Terrain 4") {SX=97; SY=502;}
Restart(SX, SY);
if(!getWorld().getObjects(SimpleActor.class).isEmpty())
{
if(seconds == 3)
{
getWorld().removeObject(getOneObjectAtOffset(600,30,SimpleActor.class));
frames = 0;
}
seconds = (frames += 1/60);
}
ScoreAndEndGame();
}
private void checkKeys()
{
if (Greenfoot.isKeyDown("Left")||Greenfoot.isKeyDown("a"))
{
this.setImage("UmaruHamsterLeft.png"); this.getImage().scale(60,60);
move(-7);
}
if (Greenfoot.isKeyDown("Right")||Greenfoot.isKeyDown("d"))
{
this.setImage("UmaruHamsterRight.png"); this.getImage().scale(60,60);
move(7);
}
if(Greenfoot.isKeyDown("space")) {if( OnGround() == true || OnShortGround() == true) jump();}
}
public void jump()
{
vSpeed = -jumpStrength;
fall();
}
public boolean OnGround()
{
Actor under = getOneObjectAtOffset (0, 20, Ground.class);
return under != null;
}
public boolean OnShortGround()
{
Actor under = getOneObjectAtOffset (0, 20, ShortGround.class);
return under != null;
}
public void checkFall()
{
if(OnGround()||OnShortGround()) vSpeed = 0;
else fall();
}
public void fall()
{
setLocation (getX(),getY() + vSpeed);
vSpeed = vSpeed + acceleration;
}
public void Restart (int SX, int SY)
{
switch(Greenfoot.getRandomNumber(5))
{
case 0: Nope.setImage(new GreenfootImage("Nope, not today fam", 20, new Color(230,70,70,150), new Color(0, 0, 0, 0)));
case 1: Nope.setImage(new GreenfootImage("Sorry, but no", 20, new Color(230,70,70,150), new Color(0, 0, 0, 0)));
case 2: Nope.setImage(new GreenfootImage("Nah, not happening", 20, new Color(230,70,70,150), new Color(0, 0, 0, 0)));
case 3: Nope.setImage(new GreenfootImage("Cheating? Tsk tsk tsk", 20, new Color(230,70,70,150), new Color(0, 0, 0, 0)));
case 4: Nope.setImage(new GreenfootImage("Nice try there", 20, new Color(230,70,70,150), new Color(0, 0, 0, 0)));
}
if (this.getOneIntersectingObject(ReturnToStart.class) != null)
{
Greenfoot.playSound("Nope.wav");
this.setLocation(SX,SY);
getWorld().addObject(Nope, 600, 30);
}
}
public void ScoreAndEndGame()
{
if(this.getOneIntersectingObject(MiniPChips.class) != null) {MiniPChipsScore = 1; getWorld().removeObjects(getWorld().getObjects(MiniPChips.class));}
else if(this.getOneIntersectingObject(MiniCCola.class) != null) {MiniCColaScore = 1; getWorld().removeObjects(getWorld().getObjects(MiniCCola.class));}
else if(this.getOneIntersectingObject(MiniBRAnime.class) != null) {MiniBRAnimeScore = 1; getWorld().removeObjects(getWorld().getObjects(MiniBRAnime.class));}
if (this.getOneIntersectingObject(Minigame4EndPoint.class) != null)
{
if(MiniPChipsScore ==1)
{
MiniPChipsScore = 0;
mw.addObject(PChips, 600, 600);
}
if(MiniCColaScore ==1)
{
MiniCColaScore = 0;
mw.addObject(CCola, 600, 600);
}
if(MiniBRAnimeScore ==1)
{
MiniBRAnimeScore = 0;
mw.addObject(BRAnime, 600, 600);
}
getWorld().removeObjects(getWorld().getObjects(Actor.class));
}
}
}import greenfoot.*;
public class CCola extends Actor
{
public void act()
{
}
}
import greenfoot.*;
public class MyWorld extends World
{
// fields usually (by convention) go first
//For GIF background stuff
GifImage gifImg = new GifImage("Umaru.gif");
public int getHeight = 552, getWidth = 1200 ;
//For Timing stuff
private Actor GameTimeDisplay = new SimpleActor(), Cooldown = new SimpleActor(), PCBuffTimeDisplay = new SimpleActor(), CCBuffTimeDisplay = new SimpleActor(), BRABuffTimeDisplay = new SimpleActor();
private int frames, Cframes = (3+Greenfoot.getRandomNumber(5))*55, PCBframes = 5*55, CCBframes = 5*55, BRABframes = 5*55;
//For Yen stuff
public float AYen; //precise
public int DYen; //rounded
public Yen YenDisplay = new Yen();
//For Buttons stuff
public Actor MKButton = new SimpleActor(), HButton = new SimpleActor(), BButton = new SimpleActor(), AButton = new SimpleActor(), SButton = new SimpleActor(), KButton = new SimpleActor(), EButton = new SimpleActor(), UButton = new SimpleActor(), PCButton = new SimpleActor(), CCButton = new SimpleActor(), BRAButton = new SimpleActor(), Buttons[] = {MKButton, HButton, BButton, AButton, SButton, KButton, EButton, UButton, PCButton, CCButton};
private String ButtonImages[] = {"MKButton", "HButton", "BButton", "AButton", "SButton", "KButton", "EButton", "UButton", "button-blue", "button-blue"};
private int ButtonsArraySize = Buttons.length;
//For Menu Upgrade Panel stuff
private double CharacterYenIncome;
private int totalYen = 0;
public int characterValue, MKLevel = 0, HLevel = 0, ALevel = 0, SLevel = 0, BLevel = 0, KLevel = 0, ELevel = 0, ULevel = 0, TLevel = 0;
private String SelectedCharacter, SelectedCharacter2;
public Actor MgrKanau = new MgrKanau(), Hikari = new Hikari(), Alex = new Alex(), Sylphynford = new Sylphynford(), Bomba = new Bomba(), Kirie = new Kirie(), Ebina = new Ebina(), Umaru = new Umaru(), UpgradeText = new SimpleActor(), UpgradeButton1 = new SimpleActor(),UpgradeButton5 = new SimpleActor(),UpgradeButton10 = new SimpleActor(), CharacterYenIncomeDisplay = new SimpleActor();
//For PIP stuff
PIP pip;
World minor;
public Boolean setActiveState = false;
Actor mouseActor; // holds the actor being dragged
int mouseOffX, mouseOffY; // holds the offsets of mouse location from center of object being dragged
// class constructors usually (by convention) go next
//To construct MyWorld
public MyWorld()
{
//For building the world window size
super(1400, 675, 1);
//For Yen stuff
addObject(new Taihei(), 700, 338);
adjustYen(0); // to initialize image
addObject(YenDisplay, 1265, 50); // wherever
//For updating the time display
updateGameTimeDisplay();
addObject(GameTimeDisplay, 1265, 20);
//For triggering the minigame
updateCooldownDisplay();
addObject(Cooldown, 1265, 35);
//For adding in the buttons to add the actors into the world
for( int i = 0; i < ButtonsArraySize; i++)
{
Buttons[i].setImage(ButtonImages[i] + ".png"); Buttons[i].getImage().scale(70, 70); addObject(Buttons[i], 1212, (100 + (i*40)));
i++;
Buttons[i].setImage(ButtonImages[i] + ".png"); Buttons[i].getImage().scale(70, 70); addObject(Buttons[i], 1312, (100 + ((i-1)*40)));
}
BRAButton.setImage("button-blue.png"); BRAButton.getImage().scale(70, 70); addObject(BRAButton, 1262, 500);
//Upgrade Panel UI
UpgradeText.setImage(new GreenfootImage("Upgrade by:", 20, Color.BLACK, new Color(0, 0, 0, 0))); addObject(UpgradeText, 1188, 600);
UpgradeButton1.setImage("Upgr1.png"); UpgradeButton1.getImage().scale(70, 70); UpgradeButton1.getImage().scale(40,20); addObject(UpgradeButton1, 1262, 600);
UpgradeButton5.setImage("Upgr5.png"); UpgradeButton5.getImage().scale(70, 70); UpgradeButton5.getImage().scale(40,20); addObject(UpgradeButton5, 1312, 600);
UpgradeButton10.setImage("Upgr10.png"); UpgradeButton10.getImage().scale(70, 70); UpgradeButton10.getImage().scale(40,20); addObject(UpgradeButton10, 1362, 600);
addObject(CharacterYenIncomeDisplay, 1262, 570);
}
//For GIF background
private void gifAnimation()
{
for (Object obj : gifImg.getImages()) ((GreenfootImage)obj).scale(getWidth(), getHeight());
setBackground(gifImg.getCurrentImage());
}
// methods (by convention) go last
//For executing all preccesses in MyWorld
public void act()
{
//For GIF background
gifAnimation();
//Menu Stuff
setMenuUpgrDisplay();
if(Greenfoot.mouseClicked(PCButton) && AYen >= 2000 && (getObjects(PChips.class).isEmpty())) {AYen -= 2000; addObject(new PChips(), 600, 600);}
if(Greenfoot.mouseClicked(CCButton) && AYen >= 8000 && (getObjects(CCola.class).isEmpty())) {AYen -= 8000; addObject(new CCola(), 600, 600);}
if(Greenfoot.mouseClicked(BRAButton) && AYen >= 36000 && (getObjects(BRAnime.class).isEmpty())) {AYen -= 36000; addObject(new BRAnime(), 600, 600);}
//For updating the Timing stuff
if ((++frames)%55 == 0) updateGameTimeDisplay();
if ((--Cframes)%55 == 0) updateCooldownDisplay();
if (!getObjects(PChips.class).isEmpty() && (--PCBframes)%55 ==0) updatePCBuffTimeDisplay();
if (!getObjects(CCola.class).isEmpty() && (--CCBframes)%55 ==0) updateCCBuffTimeDisplay();
if (!getObjects(BRAnime.class).isEmpty() && (--BRABframes)%55 ==0) updateBRABuffTimeDisplay();
if (Cframes == 0) {Minigame(); Cframes += ((3+Greenfoot.getRandomNumber(5))*55); /*chooses a cooldown time between 3-7 minutes randomly*/}
if (CCBframes == 0) CCBframes += 3*55;
if (PCBframes == 0) PCBframes += 3*55;
if (BRABframes == 0) BRABframes += 3*55;
// control dragging of PIP objects
if (Greenfoot.mousePressed(null) && mouseActor == null)
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if (mouse.getActor() == null || mouse.getActor().getClass() != PIP.class) return;
mouseActor = mouse.getActor();
mouseOffX = mouseActor.getX()-mouse.getX();
mouseOffY = mouseActor.getY()-mouse.getY();
removeObject(mouseActor);
addObject(mouseActor, mouse.getX()+mouseOffX, mouse.getY()+mouseOffY);
}
if (mouseActor != null && Greenfoot.mouseDragged(mouseActor))
{
MouseInfo mouse = Greenfoot.getMouseInfo();
mouseActor.setLocation(mouse.getX()+mouseOffX, mouse.getY()+mouseOffY);
}
if (mouseActor != null && Greenfoot.mouseClicked(mouseActor)) mouseActor = null;
//for removing ended Minigames
if (pip != null && pip.getWorld() == this && minor.getObjects(null).isEmpty()) removeObject(pip);
}
//For Yen Display stuff
public int getAccumulatedYen() {return DYen;}
public void adjustYen(float adjustment)
{
AYen += adjustment;
DYen = (int) AYen;
YenDisplay.setImage(new GreenfootImage("Yen: "+DYen+"¥", 20, new Color(113, 50, 255, 255), new Color(0, 0, 0, 0)));
}
//Time Displays
//Potato Chip Buff
private void updatePCBuffTimeDisplay()
{
int Time = PCBframes/55;
String minutes = "0"+(Time/60)/* string remaining minutes*/, seconds = "0"+(Time%60)/* string remaining seconds*/, mins = minutes.substring(minutes.length()-2)/* minutes output string*/, secs = seconds.substring(seconds.length()-2)/* seconds output string*/, TimeFormat = "Buff: "+mins+":"+secs;// Preview: Buff: 03:27
PCBuffTimeDisplay.setImage(new GreenfootImage(TimeFormat, 20, new Color(100, 255, 100, 40) , new Color(0, 0, 0, 0)));
}
//Coca Cola Buff
private void updateCCBuffTimeDisplay()
{
int Time = CCBframes/55;
String minutes = "0"+(Time/60)/* string remaining minutes*/, seconds = "0"+(Time%60)/* string remaining seconds*/, mins = minutes.substring(minutes.length()-2)/* minutes output string*/, secs = seconds.substring(seconds.length()-2)/* seconds output string*/, TimeFormat = "Buff: "+mins+":"+secs;// Preview: Buff: 01:19
CCBuffTimeDisplay.setImage(new GreenfootImage(TimeFormat, 20, new Color(100, 255, 100, 40) , new Color(0, 0, 0, 0)));
}
//Blu-Ray Anime Buff
private void updateBRABuffTimeDisplay()
{
int Time = BRABframes/55;
String minutes = "0"+(Time/60)/* string remaining minutes*/, seconds = "0"+(Time%60)/* string remaining seconds*/, mins = minutes.substring(minutes.length()-2)/* minutes output string*/, secs = seconds.substring(seconds.length()-2)/* seconds output string*/, TimeFormat = "Buff: "+mins+":"+secs;// Preview: Buff: 04:54
BRABuffTimeDisplay.setImage(new GreenfootImage(TimeFormat, 20, new Color(100, 255, 100, 40) , new Color(0, 0, 0, 0)));
}
//Game
private void updateGameTimeDisplay()
{
int Time = frames/55/* total seconds*/, TotalMinutes = Time/60; // total minutes
String hours = "0"+(TotalMinutes/60)/* string total hours*/, minutes = "0"+(TotalMinutes%60)/* string remaining minutes*/, seconds = "0"+(Time%60)/* string remaining seconds*/, hrs = hours.substring(hours.length()-2)/* hour output string*/, mins = minutes.substring(minutes.length()-2)/* minutes output string*/, secs = seconds.substring(seconds.length()-2)/* seconds output string*/, TimeFormat = "Time: "+hrs+"hrs "+mins+"mins "+secs+"secs"; //Preview: Time: 52462hrs 28mins 16secs
GameTimeDisplay.setImage(new GreenfootImage(TimeFormat, 20, new Color(113, 0, 255, 255), new Color(0, 0, 0, 0)));
}
//Minigame stuff
//For timing the appearance of the Minigame
private void updateCooldownDisplay()
{
int Time = Cframes/55;
String minutes = "0"+(Time/60)/* string remaining minutes*/, seconds = "0"+(Time%60)/* string remaining seconds*/, mins = minutes.substring(minutes.length()-2)/* minutes output string*/, secs = seconds.substring(seconds.length()-2)/* seconds output string*/, TimeFormat = "Minigame countdown: "+mins+"mins "+secs+"secs"; //Preview: Minigame countdown: 56mins 27secs
Cooldown.setImage(new GreenfootImage(TimeFormat, 20, new Color(113, 25, 255, 255), new Color(0, 0, 0, 0)));
}
//For choosing and calling out the Minigame
private void Minigame()
{
if (pip != null && pip.getWorld() != null) return; // will not add new pip if one is already in world
minor = null;
switch (Greenfoot.getRandomNumber(4))
{
case 0: if (!getObjects(Umaru.class).isEmpty()) minor = new Minigame1(); break;
case 1: if (!getObjects(Bomba.class).isEmpty()) minor = new Minigame2(); break;
case 2: if (!getObjects(Ebina.class).isEmpty()) minor = new Minigame3(); break;
case 3: if (!getObjects(Alex.class).isEmpty()) minor = new Minigame4(); break;
}
if (minor != null)
{
pip = new PIP(minor, new Class[] {});
pip.setActiveState(true);
addObject(pip, 690, 110);
}
}
private void setMenuUpgrDisplay()
{
if (SelectedCharacter != null)CharacterYenIncomeDisplay.setImage(new GreenfootImage(SelectedCharacter+"¥"+CharacterYenIncome, 20, new Color(255, 255, 255, 255), new Color(0, 0, 0, 0)));
else CharacterYenIncomeDisplay.setImage(new GreenfootImage("Click on a Character to see the stats", 20, new Color(100, 255, 100, 40) , new Color(0, 0, 0, 0)));
if(Greenfoot.mouseClicked(MKButton))
{
SelectedCharacter2 = "MgrKanau";
if(getObjects(MgrKanau.class).isEmpty())
{
if(AYen >= 100)
{
AYen -= 100; MKLevel += 1;
addObject(MgrKanau, 600, 600); SelectedCharacter = "Manager Kanau Income: ";
}else {SelectedCharacter = "Price: "; CharacterYenIncome = 100;}
}else {SelectedCharacter = "Manager Kanau Income: "; CharacterYenIncome = ((MgrKanau) MgrKanau).YenPerMin;}
}
if(Greenfoot.mouseClicked(HButton))
{
SelectedCharacter2 = "Hikari";
if(getObjects(Hikari.class).isEmpty())
{
if(AYen >= 200)
{
AYen -= 200; HLevel += 1;
addObject(Hikari, 600, 600); SelectedCharacter = "Hikari Income: ";
}else{SelectedCharacter = "Price: "; CharacterYenIncome = 200;}
}else{SelectedCharacter = "Hikari Income: "; CharacterYenIncome = ((Hikari) Hikari).YenPerMin;}
}
if(Greenfoot.mouseClicked(AButton))
{
SelectedCharacter2 = "Alex";
if(getObjects(Alex.class).isEmpty())
{
if(AYen >= 400)
{
AYen -= 400; ALevel += 1;
addObject(Alex, 600, 600); SelectedCharacter = "Alex Income: ";
}else {SelectedCharacter = "Price: "; CharacterYenIncome = 400;}
}else {SelectedCharacter = "Alex Income: "; CharacterYenIncome = ((Alex) Alex).YenPerMin;}
}
if(Greenfoot.mouseClicked(SButton))
{
SelectedCharacter2 = "Sylphynford";
if(getObjects(Sylphynford.class).isEmpty())
{
if(AYen >= 800)
{
AYen -= 800; SLevel += 1;
addObject(Sylphynford, 600, 600); SelectedCharacter = "Sylphynford Income: ";
}else {SelectedCharacter = "Price: "; CharacterYenIncome = 800;}
}else {SelectedCharacter = "Sylphynford Income: "; CharacterYenIncome = ((Sylphynford) Sylphynford).YenPerMin;}
}
if(Greenfoot.mouseClicked(BButton))
{
SelectedCharacter2 = "Bomba";
if(getObjects(Bomba.class).isEmpty())
{
if(AYen >= 1600)
{
AYen -= 1600; BLevel += 1;
addObject(Bomba, 600, 600); SelectedCharacter = "Bomba Income: ";
}else {SelectedCharacter = "Price: "; CharacterYenIncome = 1600;}
}else {SelectedCharacter = "Bomba Income: "; CharacterYenIncome = ((Bomba) Bomba).YenPerMin;}
}
if(Greenfoot.mouseClicked(KButton))
{
SelectedCharacter2 = "Kirie";
if(getObjects(Kirie.class).isEmpty())
{
if(AYen >= 3200)
{
AYen -= 3200; KLevel += 1;
addObject(Kirie, 600, 600); SelectedCharacter = "Kirie Income: ";
}else {SelectedCharacter = "Price: "; CharacterYenIncome = 3200;}
}else {SelectedCharacter = "Kirie Income: "; CharacterYenIncome = ((Kirie) Kirie).YenPerMin;}
}
if(Greenfoot.mouseClicked(EButton))
{
SelectedCharacter2 = "Ebina";
if(getObjects(Ebina.class).isEmpty())
{
if(AYen >= 6400)
{
AYen -= 6400; ELevel += 1;
addObject(Ebina, 600, 600); SelectedCharacter = "Ebina Income: ";
}else {SelectedCharacter = "Price: "; CharacterYenIncome = 6400;}
}else {SelectedCharacter = "Ebina Income: "; CharacterYenIncome = ((Ebina) Ebina).YenPerMin;}
}
if(Greenfoot.mouseClicked(UButton))
{
SelectedCharacter2 = "Umaru";
if(getObjects(Umaru.class).isEmpty())
{
if(AYen >= 12800)
{
AYen -= 12800; ULevel += 1;
addObject(Umaru, 600, 600); SelectedCharacter = "Umaru Income: ";
}else {SelectedCharacter = "Price: "; CharacterYenIncome = 12800;}
}else {SelectedCharacter = "Umaru Income: "; CharacterYenIncome = ((Umaru) Umaru).YenPerMin;}
}
if(Greenfoot.mouseClicked(UpgradeButton1))
{
if(SelectedCharacter2 == "MgrKanau")
{
if(!getObjects(MgrKanau.class).isEmpty())
{
if(AYen >= (MKLevel*10)) {AYen -= MKLevel*10; MKLevel += 1; SelectedCharacter = "Manager Kanau Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = MKLevel*10;}
}
else
{SelectedCharacter = "Pls buy Manager Kanau 1st. Price: "; CharacterYenIncome = 100;}
}
else if(SelectedCharacter2 == "Hikari")
{
if(!getObjects(Hikari.class).isEmpty())
{
if(AYen >= (HLevel*20)) {AYen -= HLevel*20; HLevel += 1; SelectedCharacter = "Hikari Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = HLevel*20;}
}
else {SelectedCharacter = "Pls buy Hikari 1st. Price: "; CharacterYenIncome = 200;}
}
else if(SelectedCharacter2 == "Alex")
{
if(!getObjects(Alex.class).isEmpty())
{
if(AYen >= (ALevel*40)) {AYen -= ALevel*40; ALevel += 1; SelectedCharacter = "Alex Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = ALevel*40;}
}
else {SelectedCharacter = "Pls buy Alex 1st. Price: "; CharacterYenIncome = 400;}
}
else if(SelectedCharacter2 == "Sylphynford")
{
if(!getObjects(Sylphynford.class).isEmpty())
{
if(AYen >= (SLevel*80)) {AYen -= SLevel*80; SLevel += 1; SelectedCharacter = "Sylphynford Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = SLevel*80;}
}
else {SelectedCharacter = "Pls buy Sylphynford 1st. Price: "; CharacterYenIncome = 800;}
}
else if(SelectedCharacter2 == "Bomba")
{
if(!getObjects(Bomba.class).isEmpty())
{
if(AYen >= (BLevel*160)) {AYen -= BLevel*160; BLevel += 1; SelectedCharacter = "Bomba Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = BLevel*160;}
}
else {SelectedCharacter = "Pls buy Bomba 1st. Price: "; CharacterYenIncome = 1600;}
}
else if(SelectedCharacter2 == "Kirie")
{
if(!getObjects(Kirie.class).isEmpty())
{
if(AYen >= (KLevel*320)) {AYen -= KLevel*320; KLevel += 1; SelectedCharacter = "Kirie Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = KLevel*320;}
}
else {SelectedCharacter = "Pls buy Kirie 1st. Price: "; CharacterYenIncome = 3200;}
}
else if(SelectedCharacter2 == "Ebina")
{
if(!getObjects(Ebina.class).isEmpty())
{
if(AYen >= (ELevel*640)) {AYen -= ELevel*640; ELevel += 1; SelectedCharacter = "Ebina Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = ELevel*640;}
}
else {SelectedCharacter = "Pls buy Ebina 1st. Price: "; CharacterYenIncome = 6400;}
}
else if(SelectedCharacter2 == "Umaru")
{
if(!getObjects(Umaru.class).isEmpty())
{
if(AYen >= (ULevel*1280)) {AYen -= ULevel*1280; ULevel += 1; SelectedCharacter = "Umaru Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = ULevel*1280;}
}
else {SelectedCharacter = "Pls buy Umaru 1st. Price: "; CharacterYenIncome = 12800;}
}
}
if(Greenfoot.mouseClicked(UpgradeButton5))
{
if(SelectedCharacter2 == "MgrKanau")
{
if(!getObjects(MgrKanau.class).isEmpty())
{
for(int i = 0; i<5; i++)
{
totalYen += (MKLevel+(i+1))*10;
}
if(AYen >= totalYen) {AYen -= totalYen; MKLevel += 5; SelectedCharacter = "Manager Kanau Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else
{SelectedCharacter = "Pls buy Manager Kanau 1st. Price: "; CharacterYenIncome = 100;}
}
else if(SelectedCharacter2 == "Hikari")
{
if(!getObjects(Hikari.class).isEmpty())
{
for(int i = 0; i<5; i++)
{
totalYen += (HLevel+(i+1))*20;
}
if(AYen >= totalYen) {AYen -= totalYen; HLevel += 5; SelectedCharacter = "Hikari Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Hikari 1st. Price: "; CharacterYenIncome = 200;}
}
else if(SelectedCharacter2 == "Alex")
{
if(!getObjects(Alex.class).isEmpty())
{
for(int i = 0; i<5; i++)
{
totalYen += (ALevel+(i+1))*40;
}
if(AYen >= totalYen) {AYen -= totalYen; ALevel += 5; SelectedCharacter = "Alex Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Alex 1st. Price: "; CharacterYenIncome = 400;}
}
else if(SelectedCharacter2 == "Sylphynford")
{
if(!getObjects(Sylphynford.class).isEmpty())
{
for(int i = 0; i<5; i++)
{
totalYen += (SLevel+(i+1))*80;
}
if(AYen >= totalYen) {AYen -= totalYen; SLevel += 5; SelectedCharacter = "Sylphynford Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Sylphynford 1st. Price: "; CharacterYenIncome = 800;}
}
else if(SelectedCharacter2 == "Bomba")
{
if(!getObjects(Bomba.class).isEmpty())
{
for(int i = 0; i<5; i++)
{
totalYen += (BLevel+(i+1))*160;
}
if(AYen >= totalYen) {AYen -= totalYen; BLevel += 5; SelectedCharacter = "Bomba Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Bomba 1st. Price: "; CharacterYenIncome = 1600;}
}
else if(SelectedCharacter2 == "Kirie")
{
if(!getObjects(Kirie.class).isEmpty())
{
for(int i = 0; i<5; i++)
{
totalYen += (KLevel+(i+1))*320;
}
if(AYen >= totalYen) {AYen -= totalYen; KLevel += 5; SelectedCharacter = "Kirie Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Kirie 1st. Price: "; CharacterYenIncome = 3200;}
}
else if(SelectedCharacter2 == "Ebina")
{
if(!getObjects(Ebina.class).isEmpty())
{
for(int i = 0; i<5; i++)
{
totalYen += (ELevel+(i+1))*640;
}
if(AYen >= totalYen) {AYen -= totalYen; ELevel += 5; SelectedCharacter = "Ebina Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Ebina 1st. Price: "; CharacterYenIncome = 6400;}
}
else if(SelectedCharacter2 == "Umaru")
{
if(!getObjects(Umaru.class).isEmpty())
{
for(int i = 0; i<5; i++)
{
totalYen += (ULevel+(i+1))*1280;
}
if(AYen >= totalYen) {AYen -= totalYen; ULevel += 5; SelectedCharacter = "Umaru Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Umaru 1st. Price: "; CharacterYenIncome = 12800;}
}
}
if(Greenfoot.mouseClicked(UpgradeButton10))
{
if(SelectedCharacter2 == "MgrKanau")
{
if(!getObjects(MgrKanau.class).isEmpty())
{
for(int i = 0; i<10; i++)
{
totalYen += (MKLevel+(i+1))*10;
}
if(AYen >= totalYen) {AYen -= totalYen; MKLevel += 10; SelectedCharacter = "Manager Kanau Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else
{SelectedCharacter = "Pls buy Manager Kanau 1st. Price: "; CharacterYenIncome = 100;}
}
else if(SelectedCharacter2 == "Hikari")
{
if(!getObjects(Hikari.class).isEmpty())
{
for(int i = 0; i<10; i++)
{
totalYen += (HLevel+(i+1))*20;
}
if(AYen >= totalYen) {AYen -= totalYen; HLevel += 10; SelectedCharacter = "Hikari Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Hikari 1st. Price: "; CharacterYenIncome = 200;}
}
else if(SelectedCharacter2 == "Alex")
{
if(!getObjects(Alex.class).isEmpty())
{
for(int i = 0; i<10; i++)
{
totalYen += (ALevel+(i+1))*40;
}
if(AYen >= totalYen) {AYen -= totalYen; ALevel += 10; SelectedCharacter = "Alex Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Alex 1st. Price: "; CharacterYenIncome = 400;}
}
else if(SelectedCharacter2 == "Sylphynford")
{
if(!getObjects(Sylphynford.class).isEmpty())
{
for(int i = 0; i<10; i++)
{
totalYen += (SLevel+(i+1))*80;
}
if(AYen >= totalYen) {AYen -= totalYen; SLevel += 10; SelectedCharacter = "Sylphynford Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Sylphynford 1st. Price: "; CharacterYenIncome = 800;}
}
else if(SelectedCharacter2 == "Bomba")
{
if(!getObjects(Bomba.class).isEmpty())
{
for(int i = 0; i<10; i++)
{
totalYen += (BLevel+(i+1))*160;
}
if(AYen >= totalYen) {AYen -= totalYen; BLevel += 10; SelectedCharacter = "Bomba Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Bomba 1st. Price: "; CharacterYenIncome = 1600;}
}
else if(SelectedCharacter2 == "Kirie")
{
if(!getObjects(Kirie.class).isEmpty())
{
for(int i = 0; i<10; i++)
{
totalYen += (KLevel+(i+1))*320;
}
if(AYen >= totalYen) {AYen -= totalYen; KLevel += 10; SelectedCharacter = "Kirie Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Kirie 1st. Price: "; CharacterYenIncome = 3200;}
}
else if(SelectedCharacter2 == "Ebina")
{
if(!getObjects(Ebina.class).isEmpty())
{
for(int i = 0; i<10; i++)
{
totalYen += (ELevel+(i+1))*640;
}
if(AYen >= totalYen) {AYen -= totalYen; ELevel += 10; SelectedCharacter = "Ebina Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Ebina 1st. Price: "; CharacterYenIncome = 6400;}
}
else if(SelectedCharacter2 == "Umaru")
{
if(!getObjects(Umaru.class).isEmpty())
{
for(int i = 0; i<10; i++)
{
totalYen += (ULevel+(i+1))*1280;
}
if(AYen >= totalYen) {AYen -= totalYen; ULevel += 10; SelectedCharacter = "Umaru Income: ";}
else {SelectedCharacter = "Upgrade Price: "; CharacterYenIncome = totalYen;}
}
else {SelectedCharacter = "Pls buy Umaru 1st. Price: "; CharacterYenIncome = 12800;}
}
}
}
}import greenfoot.*;
public class Minigame4 extends World
{
public ShortGround shortground = new ShortGround(), shortground2 = new ShortGround(), shortground3 = new ShortGround(), shortground4 = new ShortGround(), shortground5 = new ShortGround(), shortground6 = new ShortGround(), shortground7 = new ShortGround(), shortground8 = new ShortGround(), shortground9 = new ShortGround(), shortground10 = new ShortGround(), shortground11 = new ShortGround(), shortground12 = new ShortGround(), shortground13 = new ShortGround(), shortground14 = new ShortGround(), shortground15 = new ShortGround(), shortground16 = new ShortGround(), shortground17 = new ShortGround(), shortground18 = new ShortGround();;
public ReturnToStart returntostart = new ReturnToStart(), returntostart2 = new ReturnToStart(), returntostart3 = new ReturnToStart(), returntostart4 = new ReturnToStart(), returntostart5 = new ReturnToStart(), returntostart6 = new ReturnToStart(), returntostart7 = new ReturnToStart(), returntostart8 = new ReturnToStart();
public Ground ground = new Ground(), ground2 = new Ground(), ground3 = new Ground(), ground4 = new Ground(), ground5 = new Ground(), ground6 = new Ground(), ground7 = new Ground(), ground8 = new Ground(), ground9 = new Ground(), ground10 = new Ground(), ground11 = new Ground(), ground12 = new Ground();;
public Minigame4EndPoint EndPoint = new Minigame4EndPoint();
public MiniUmaru HamsterUmaru = new MiniUmaru();
public SimpleActor DownArrow = new SimpleActor(), UpArrow = new SimpleActor(), RightArrow = new SimpleActor(), LeftArrow = new SimpleActor(), DownRightArrow = new SimpleActor(), DownLeftArrow = new SimpleActor(), UpRightArrow = new SimpleActor(), UpLeftArrow = new SimpleActor(), DownArrow2 = new SimpleActor(), UpArrow2 = new SimpleActor(), RightArrow2 = new SimpleActor(), LeftArrow2 = new SimpleActor(), DownRightArrow2 = new SimpleActor(), DownLeftArrow2 = new SimpleActor(), UpRightArrow2 = new SimpleActor(), UpLeftArrow2 = new SimpleActor(), DownArrow3 = new SimpleActor(), UpArrow3 = new SimpleActor(), RightArrow3 = new SimpleActor(), LeftArrow3 = new SimpleActor(), DownRightArrow3 = new SimpleActor(), DownLeftArrow3 = new SimpleActor(), UpRightArrow3 = new SimpleActor(), UpLeftArrow3 = new SimpleActor(), Nope = new SimpleActor();
public Actor MiniPChips = new MiniPChips(), MiniCCola = new MiniCCola(), MiniBRAnime = new MiniBRAnime();
int SX = 0, SY = 0;
public Minigame4()
{
super(1200, 675, 1);
GreenfootImage bg = new GreenfootImage("sky.jpg");
bg.scale(2000, 800);
setBackground(bg);
switch(Greenfoot.getRandomNumber(4))
{
case 0:terrain1();HamsterUmaru.TerrainUsed = "Terrain 1"; break;
case 1:terrain2();HamsterUmaru.TerrainUsed = "Terrain 2"; break;
case 2:terrain3();HamsterUmaru.TerrainUsed = "Terrain 3"; break;
case 3:terrain4();HamsterUmaru.TerrainUsed = "Terrain 4"; break;
}
prepare();
UpArrow.setImage("WingedArrowUp.png"); UpArrow2.setImage("WingedArrowUp.png"); UpArrow3.setImage("WingedArrowUp.png"); DownArrow.setImage("WingedArrowDown.png"); DownArrow2.setImage("WingedArrowDown.png"); DownArrow3.setImage("WingedArrowDown.png"); LeftArrow.setImage("WingedArrowLeft.png"); LeftArrow2.setImage("WingedArrowLeft.png"); LeftArrow3.setImage("WingedArrowLeft.png"); RightArrow.setImage("WingedArrowRight.png"); RightArrow2.setImage("WingedArrowRight.png"); RightArrow3.setImage("WingedArrowRight.png"); UpLeftArrow.setImage("WingedArrowUpLeft.png"); UpLeftArrow2.setImage("WingedArrowUpLeft.png"); UpLeftArrow3.setImage("WingedArrowUpLeft.png"); UpRightArrow.setImage("WingedArrowUpRight.png"); UpRightArrow2.setImage("WingedArrowUpRight.png"); UpRightArrow3.setImage("WingedArrowUpRight.png"); DownLeftArrow.setImage("WingedArrowDownLeft.png"); DownLeftArrow2.setImage("WingedArrowDownLeft.png"); DownLeftArrow3.setImage("WingedArrowDownLeft.png"); DownRightArrow.setImage("WingedArrowDownRight.png"); DownRightArrow2.setImage("WingedArrowDownRight.png"); DownRightArrow3.setImage("WingedArrowDownRight.png");
UpArrow.getImage().scale(120,120); UpArrow2.getImage().scale(120,120); UpArrow3.getImage().scale(120,120); DownArrow.getImage().scale(120,120); DownArrow2.getImage().scale(120,120); DownArrow3.getImage().scale(120,120); LeftArrow.getImage().scale(120,120); LeftArrow2.getImage().scale(120,120); LeftArrow3.getImage().scale(120,120); RightArrow.getImage().scale(120,120); RightArrow2.getImage().scale(120,120); RightArrow3.getImage().scale(120,120); UpLeftArrow.getImage().scale(120,120); UpLeftArrow2.getImage().scale(120,120); UpLeftArrow3.getImage().scale(120,120); UpRightArrow.getImage().scale(120,120); UpRightArrow2.getImage().scale(120,120); UpRightArrow3.getImage().scale(120,120); DownLeftArrow.getImage().scale(120,120); DownLeftArrow2.getImage().scale(120,120); DownLeftArrow3.getImage().scale(120,120); DownRightArrow.getImage().scale(120,120); DownRightArrow2.getImage().scale(120,120); DownRightArrow3.getImage().scale(120,120);
EndPoint.getImage().scale(60,60);
MiniBRAnime.getImage().scale(60,60);
MiniPChips.getImage().scale(60,60);
MiniCCola.getImage().scale(60,60);
}
public void act()
{
}
private void terrain1()
{
HamsterUmaru.setImage("UmaruHamsterRight.png"); HamsterUmaru.getImage().scale(60,60);
addObject(HamsterUmaru,99,487);
addObject(ground,85,675);
addObject(ground2,245,675);
addObject(ground3,405,675);
addObject(ground4,565,675);
addObject(ground5,725,675);
addObject(ground6,885,675);
addObject(ground7,1045,675);
addObject(ground8,1205,675);
addObject(ground9,102,549);
addObject(ground10,701,254);
addObject(shortground,323,457);
addObject(shortground2,179,367);
addObject(shortground3,48,289);
addObject(shortground4,359,254);
addObject(shortground5,509,321);
addObject(shortground6,196,193);
addObject(shortground7,887,190);
addObject(shortground8,1034,140);
addObject(shortground9,1135,244);
addObject(shortground10,1004,459);
addObject(shortground11,849,471);
addObject(shortground12,1170,469);
addObject(shortground13,849,471);
addObject(shortground14,677,469);
addObject(returntostart,612,444);
addObject(returntostart2,612,369);
addObject(returntostart3,612,294);
addObject(returntostart4,777,267); returntostart4.turn(90);
addObject(returntostart5,703,267); returntostart5.turn(90);
addObject(returntostart6,860,223); returntostart6.turn(90);
addObject(returntostart7,935,223); returntostart7.turn(90);
addObject(returntostart8,1180,267); returntostart8.turn(90);
addObject(MiniPChips,1700,426);
}
private void terrain2()
{
HamsterUmaru.setImage("UmaruHamsterLeft.png"); HamsterUmaru.getImage().scale(60,60);
addObject(HamsterUmaru,1084,493);
addObject(ground,85,675);
addObject(ground2,245,675);
addObject(ground3,405,675);
addObject(ground4,565,675);
addObject(ground5,725,675);
addObject(ground6,885,675);
addObject(ground7,1045,675);
addObject(ground8,1205,675);
addObject(ground9,1083,551);
addObject(ground10,447,515);
addObject(ground11,431,157);
addObject(ground12,865,109);
addObject(shortground,883,527);
addObject(shortground2,737,445);
addObject(shortground3,591,356);
addObject(shortground4,236,501);
addObject(shortground5,115,398);
addObject(shortground6,239,295);
addObject(shortground7,74,212);
addObject(shortground8,230,136);
addObject(shortground9,647,134);
addObject(shortground10,1088,137);
addObject(shortground11,1162,296);
addObject(shortground12,975,351);
addObject(shortground13,860,260);
addObject(shortground14,80,38);
addObject(returntostart,381,541); returntostart.turn(90);
addObject(returntostart2,456,541); returntostart2.turn(90);
addObject(returntostart3,531,541); returntostart3.turn(90);
addObject(returntostart4,980,151); returntostart4.turn(90);
addObject(returntostart5,774,140);
addObject(UpArrow,200,430);
addObject(RightArrow,290,56);
addObject(RightArrow2,735,75);
addObject(DownArrow,1155,75);
addObject(DownArrow2,520,280);
addObject(UpLeftArrow,975,460);
addObject(UpLeftArrow2,980,230);
addObject(EndPoint,815,215);
addObject(MiniBRAnime, 42,0);
}
private void terrain3()
{
HamsterUmaru.setImage("UmaruHamsterRight.png"); HamsterUmaru.getImage().scale(60,60);
addObject(HamsterUmaru,104,527);
addObject(ground,85,675);
addObject(ground2,245,675);
addObject(ground3,405,675);
addObject(ground4,565,675);
addObject(ground5,725,675);
addObject(ground6,885,675);
addObject(ground7,1045,675);
addObject(ground8,1205,675);
addObject(shortground,108,579);
addObject(shortground2,60,303);
addObject(shortground3,264,490);
addObject(shortground4,155,400);
addObject(shortground5,223,230);
addObject(shortground6,120,115);
addObject(shortground7,285,60);
addObject(shortground8,429,506);
addObject(shortground9,534,380);
addObject(shortground10,809,353);
addObject(shortground11,925,476);
addObject(shortground12,1034,271);
addObject(shortground13,924,147);
addObject(shortground14,1086,85);
addObject(shortground15,659,406);
addObject(shortground16,1090,403);
addObject(shortground17,775,80);
addObject(shortground18,615,80);
addObject(returntostart,347,419); returntostart.getImage().scale(8,450);
addObject(returntostart2,765,518); returntostart2.getImage().scale(8,250);
addObject(returntostart3,527,36);
addObject(returntostart4,527,111);
addObject(returntostart5,785,153); returntostart5.turn(90);
addObject(returntostart6,710,153); returntostart6.turn(90);
addObject(returntostart7,635,153); returntostart7.turn(90);
addObject(returntostart8,560,153); returntostart8.turn(90);
addObject(EndPoint,1124,46); EndPoint.setImage("GoalFlagRight.png");
addObject(UpArrow,197,320);
addObject(UpArrow2,1018,412);
addObject(RightArrow,710,298);
addObject(RightArrow2,995,37);
addObject(DownArrow,437,68);
addObject(MiniCCola,582,36);
}
public void terrain4()
{
HamsterUmaru.setImage("UmaruHamsterRight.png"); HamsterUmaru.getImage().scale(60,60);
Ground ground9 = new Ground();
addObject(HamsterUmaru,97,502);
addObject(ground,85,675);
addObject(ground2,245,675);
addObject(ground3,405,675);
addObject(ground4,565,675);
addObject(ground5,725,675);
addObject(ground6,885,675);
addObject(ground7,1045,675);
addObject(ground8,1205,675);
addObject(ground9,93,569);
addObject(shortground,284,463);
addObject(shortground2,180,388);
addObject(shortground3,71,325);
addObject(shortground4,179,235);
addObject(shortground5,302,217);
addObject(shortground6,433,164);
addObject(shortground7,570,164);
addObject(shortground8,711,164);
addObject(shortground9,841,164);
addObject(shortground10,1023,455);
addObject(shortground11,903,507);
addObject(shortground12,761,445);
addObject(shortground13,595,493);
addObject(shortground14,990,142);
addObject(shortground15,1160,100);
addObject(returntostart,500,200); returntostart.turn(90);
addObject(returntostart2,903,299); returntostart2.turn(90);
addObject(returntostart3,640,200); returntostart3.turn(90);
addObject(returntostart4,780,200); returntostart4.turn(90);
addObject(UpLeftArrow,348,379);
addObject(RightArrow,646,56);
addObject(DownArrow,1108,155);
addObject(LeftArrow,1101,387);
addObject(EndPoint,557,454);
addObject(MiniPChips, 1198,56);
}
public void prepare()
{
}
}

