/*
* IDK Game Server by Steve Winfield
* https://github.com/WinfieldSteve
*/
package org.stevewinfield.suja.idk.communication.achievement.writers;
import org.stevewinfield.suja.idk.communication.MessageWriter;
import org.stevewinfield.suja.idk.communication.OperationCodes;
import org.stevewinfield.suja.idk.game.achievements.Achievement;
import org.stevewinfield.suja.idk.game.achievements.AchievementLevel;
import org.stevewinfield.suja.idk.game.players.PlayerAchievement;
public class AchievementProgressWriter extends MessageWriter {
public AchievementProgressWriter(final Achievement achievement, final int targetLevel, final AchievementLevel targetLevelData, final int totalLevels, final PlayerAchievement playerData) {
super(OperationCodes.getOutgoingOpCode("AchievementProgress"));
super.push(achievement.getId());
super.push(targetLevel);
super.push(achievement.getGroupName() + targetLevel);
super.push(targetLevelData == null ? 0 : targetLevelData.getRequirement());
super.push(targetLevelData == null ? 0 : targetLevelData.getPixelsReward());
super.push(targetLevelData == null ? 0 : targetLevelData.getPointsReward());
super.push(playerData != null ? playerData.getProgress() : 0);
super.push(playerData != null && playerData.getLevel() >= totalLevels);
super.push(achievement.getCategory());
super.push(totalLevels);
}
}