package org.drooms.impl.logic.commands;
import org.drooms.api.GameProgressListener;
import org.drooms.api.Player;
import org.drooms.impl.logic.PlayerLogic;
import org.drooms.impl.logic.PlayerRelated;
import org.drooms.impl.logic.RewardRelated;
import org.drooms.impl.logic.events.SurvivalRewardEvent;
public class RewardSurvivalCommand implements Command, PlayerRelated,
RewardRelated {
private final Player toReward;
private final int rewardAmount;
private final SurvivalRewardEvent event;
public RewardSurvivalCommand(final Player p, final int amount) {
this.toReward = p;
this.rewardAmount = amount;
this.event = new SurvivalRewardEvent(p, amount);
}
@Override
public Player getPlayer() {
return this.toReward;
}
@Override
public int getPoints() {
return this.rewardAmount;
}
@Override
public void perform(final PlayerLogic logic) {
logic.notifyOfSurvivalReward(this.event);
}
@Override
public void report(final GameProgressListener report) {
report.playerSurvived(this.toReward, this.rewardAmount);
}
@Override
public String toString() {
final StringBuilder builder = new StringBuilder();
builder.append("RewardSurvivalCommand [toReward=")
.append(this.toReward).append(", rewardAmount=")
.append(this.rewardAmount).append("]");
return builder.toString();
}
}