package net.scapeemulator.game.update; import net.scapeemulator.game.model.player.Player; import net.scapeemulator.game.msg.impl.PlayerUpdateMessage; import net.scapeemulator.game.net.game.DataTransformation; import net.scapeemulator.game.net.game.DataType; import net.scapeemulator.game.net.game.GameFrameBuilder; public final class HitOnePlayerBlock extends PlayerBlock { private final int type; private final int damage; private final int hpRatio; public HitOnePlayerBlock(Player player) { super(0x1); hpRatio = player.getCurrentHitpoints() * 255 / player.getMaximumHitpoints(); damage = player.getHits().getDamage(1); type = player.getHits().getType(1); } @Override public void encode(PlayerUpdateMessage message, GameFrameBuilder builder) { builder.put(DataType.BYTE, damage); builder.put(DataType.BYTE, DataTransformation.ADD, type); builder.put(DataType.BYTE, DataTransformation.SUBTRACT, hpRatio); } }