Hello,
I am wondering if it is possible to make a switch statement check if something is a instanceof something. For example i have this code wich i should be able to shrink if i would be able to do this.
Would it be possible to do something like this:
private void checkAndCalc()
{
Map map = (Map) getWorld();
Counter money = map.getMoney();
int currentMoneyBalance = money.getValue();
if(this instanceof Turret)
{
if(towerHelper.getPlace(validateTeller).equals("dot1.png"))
{
if(currentMoneyBalance >= COST_TURRET)
{
money.sub(COST_TURRET);
getWorld().addObject(new Base(Greenfoot.getRandomNumber(3)), getX(), getY());
}
else
{
removeMe = true;
}
}
else
{
removeMe = true;
}
}
if(this instanceof Cannon)
{
if(towerHelper.getPlace(validateTeller).equals("blanck1.png"))
{
if(currentMoneyBalance >= COST_CANNON)
{
money.sub(COST_CANNON);
getWorld().addObject(new Base(Greenfoot.getRandomNumber(3)), getX(), getY());
}
else
{
removeMe = true;
}
}
else
{
removeMe = true;
}
}
if(this instanceof Launcher)
{
if(towerHelper.getPlace(validateTeller).equals("blanck1.png"))
{
if(currentMoneyBalance >= COST_LAUNCHER)
{
money.sub(COST_LAUNCHER);
getWorld().addObject(new Base(Greenfoot.getRandomNumber(3)), getX(), getY());
}
else
{
removeMe = true;
}
}
else
{
removeMe = true;
}
} int cost;
String image;
switch(this)
{
case Turret:
cost = COST_TURRET;
image = "dot1.png";
break;
case Cannon:
cost = COST_CANNON;
image = "blanck1.png";
break;
case Launcher:
cost = COST_LAUNCHER;
image = "blanck1.png";
break;
case Boost:
cost = COST_BOOST;
image = "x1.png";
break;
default:
cost = 0;
image = "";
break;
}


