package server.maps;
import client.MapleCharacter;
import client.MapleClient;
import java.awt.Point;
import java.util.List;
import server.movement.AbsoluteLifeMovement;
import server.movement.LifeMovement;
import server.movement.LifeMovementFragment;
import tools.packet.CField;
public class MapleHaku extends AnimatedMapleMapObject {
private int owner;
private int jobid;
private int fh;
private boolean stats;
private Point pos = new Point(0, 0);
public MapleHaku(MapleCharacter owner) {
this.owner = owner.getId();
this.jobid = owner.getJob();
this.fh = owner.getFH();
this.stats = false;
if ((this.jobid < 4200) || (this.jobid > 4212)) {
throw new RuntimeException("Trying to create a dragon for a non-Evan");
}
setPosition(owner.getTruePosition());
setStance(this.fh);
}
public void sendSpawnData(MapleClient client) {
client.getSession().write(CField.spawnHaku(this));
}
public void sendDestroyData(MapleClient client) {
client.getSession().write(CField.removeDragon(this.owner));
}
public int getOwner() {
return this.owner;
}
public int getJobId() {
return this.jobid;
}
public void sendstats() {
this.stats = (!this.stats);
}
public boolean getstats() {
return this.stats;
}
public MapleMapObjectType getType() {
return MapleMapObjectType.SUMMON;
}
public final Point getPos() {
return this.pos;
}
public final void setPos(Point pos) {
this.pos = pos;
}
public final void updatePosition(List<LifeMovementFragment> movement) {
for (LifeMovementFragment move : movement) {
if ((move instanceof LifeMovement)) {
if ((move instanceof AbsoluteLifeMovement)) {
setPos(((LifeMovement) move).getPosition());
}
setStance(((LifeMovement) move).getNewstate());
}
}
}
}