package monster; import java.util.Random; import Character.Character; import main.GamePanel; import object.obj_redBean; public class m_redBean extends Character{ GamePanel gp; //update public m_redBean(GamePanel gp) { super(gp); this.gp = gp; Direction = "left"; name = "RedBean"; defaultSpeed = 1; speed = defaultSpeed; MAXLIFE = 3; LIFE = MAXLIFE; type = 2; project = new obj_redBean(gp); protectedArea.x = 8; protectedArea.y = 18; protectedArea.width = 30; protectedArea.height = 32; protectedAreaDeafultX = protectedArea.x; protectedAreaDeafultY = protectedArea.y; getImage(); } public void getImage() { up1 = setup("/monster/Monster1", gp.tileSize, gp.tileSize); up2 = setup("/monster/Monster2", gp.tileSize, gp.tileSize); up3 = setup("/monster/Monster3", gp.tileSize, gp.tileSize); down1 = setup("/monster/Monster1", gp.tileSize, gp.tileSize); down2= setup("/monster/Monster2", gp.tileSize, gp.tileSize); down3 = setup("/monster/Monster3", gp.tileSize, gp.tileSize); left1 = setup("/monster/Monster1", gp.tileSize, gp.tileSize); left2 = setup("/monster/Monster2", gp.tileSize, gp.tileSize); left3 = setup("/monster/Monster3", gp.tileSize, gp.tileSize); right1 = setup("/monster/MonsterR1", gp.tileSize, gp.tileSize); right2 = setup("/monster/MonsterR2", gp.tileSize, gp.tileSize); right3 = setup("/monster/MonsterR3", gp.tileSize, gp.tileSize); } //update methods here, sprite no are different from default one public void update() { super.update(); VerifyStartCasing(gp.player, 3, 100); //IF MONSTER ABANDONT THE PLAYER if(onPath == true) { VerifystopChaseStatus(gp.player, 10, 100); } } public void setAction() { if(onPath == true) { //search a direction to go searchPath(getGoalCol(gp.player), getGoalRow(gp.player)); //check if its shoots int i = new Random(). nextInt(200)+1; if(i > 99 && project.alive == false) { project.set(x, y, Direction, true, this); gp.projectileList.add(project); } }else { //get Random Direction getRandomDirection(); } } //DAMAGE public void damageReaction() { Timer = 0; onPath = true; } }