I'm trying to make a dagger throw, and I wanted to make it not kill an enemy if it had a shield, checking with a boolean variable
this is my code
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class ThrowDagger here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class ThrowDagger extends Actor
{
/**
* Act - do whatever the ThrowDagger wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
killEnemy();
dissapearDagger();
}
public void dissapearDagger()
{
Actor platforms = getOneIntersectingObject(Platform.class);
if(platforms != null)
{
getWorld().removeObject(this);
}
}
public boolean daggerHitting()
{
Actor actor = getOneObjectAtOffset(0,0, Enemies.class);
return actor !=null;
}
public boolean daggerForEnemy14()
{
Actor actor = getOneObjectAtOffset(0,0, Enemy14.class);
return actor !=null;
}
public void kill(Class clss)
{
Actor actor = getOneObjectAtOffset(0,0, Enemies.class);
if(actor != null)
{
getWorld().removeObject(actor);
}
}
public void killOrNot(Class clss)
{
Levels levels = (Levels) getWorld();
Enemy14 enemy = (Enemy14) levels.getEnemy14();
Actor actor = getOneObjectAtOffset(0,0, Enemy14.class);
if(actor != null)
{
getWorld().removeObject(actor);
}
}
public void killEnemy()
{
Levels levels = (Levels) getWorld();
Enemy14 enemy = (Enemy14) levels.getEnemy14();
if(daggerHitting())
{
kill(Enemies.class);
getWorld().removeObject(this);
}
else if (daggerForEnemy14())
{
//Here I verify the boolean variable, but do't work correctly
if (enemy.withShield == false)
{
killOrNot(Enemy14.class);
getWorld().removeObject(this);
}
else
{
getWorld().removeObject(this);
}
}
else
{
dissapearDagger();
}
}
}
