package net.scapeemulator.game.update;
import net.scapeemulator.game.model.npc.NPC;
import net.scapeemulator.game.msg.impl.NpcUpdateMessage;
import net.scapeemulator.game.net.game.DataTransformation;
import net.scapeemulator.game.net.game.DataType;
import net.scapeemulator.game.net.game.GameFrameBuilder;
public final class HitOneNpcBlock extends NpcBlock {
private final int type;
private final int damage;
private final int hpRatio;
public HitOneNpcBlock(NPC npc) {
super(0x40);
hpRatio = npc.getCurrentHitpoints() * 255 / npc.getMaximumHitpoints();
damage = npc.getHits().getDamage(1);
type = npc.getHits().getType(1);
}
@Override
public void encode(NpcUpdateMessage message, GameFrameBuilder builder) {
builder.put(DataType.BYTE, damage);
builder.put(DataType.BYTE, DataTransformation.NEGATE, type);
builder.put(DataType.BYTE, DataTransformation.SUBTRACT, hpRatio);
}
}