package rescuecore2.standard.kernel.comms; import java.util.Random; import rescuecore2.standard.messages.AKSpeak; /** Failure noise drops an entire message with some probability. */ public class FailureNoise implements Noise { private double p; private Random random; /** Construct a FailureNoise object. @param p The probability of dropping a message. @param random The RNG to use. */ public FailureNoise(double p, Random random) { this.p = p; this.random = random; } @Override public AKSpeak applyNoise(AKSpeak message) { if (random.nextDouble() < p) { return null; } return message; } }