package org.drooms.impl.logic.commands; import org.drooms.api.Collectible; import org.drooms.api.GameProgressListener; import org.drooms.impl.logic.CollectibleRelated; import org.drooms.impl.logic.PlayerLogic; import org.drooms.impl.logic.events.CollectibleRemovalEvent; public class RemoveCollectibleCommand implements Command, CollectibleRelated { private final Collectible toRemove; private final CollectibleRemovalEvent event; public RemoveCollectibleCommand(final Collectible c) { this.toRemove = c; this.event = new CollectibleRemovalEvent(c); } @Override public Collectible getCollectible() { return this.toRemove; } @Override public void perform(final PlayerLogic logic) { logic.notifyOfCollectibleRemoval(this.event); } @Override public void report(final GameProgressListener report) { report.collectibleRemoved(this.toRemove); } @Override public String toString() { final StringBuilder builder = new StringBuilder(); builder.append("RemoveCollectibleCommand [toRemove=") .append(this.toRemove).append("]"); return builder.toString(); } }