2D-Game / ChickGame / src / monster / m_redBean.java
m_redBean.java
Raw
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; 
	 }
	}