ProjectAres/PGM/src/main/java/tc/oc/pgm/mutation/types/targetable/LightningMutation.java

41 lines
1.2 KiB
Java

package tc.oc.pgm.mutation.types.targetable;
import com.google.common.collect.Range;
import org.bukkit.Location;
import org.bukkit.util.Vector;
import tc.oc.pgm.match.Match;
import tc.oc.pgm.match.MatchPlayer;
import tc.oc.pgm.mutation.types.TargetMutation;
import java.time.Duration;
import java.util.List;
public class LightningMutation extends TargetMutation.Impl {
final static Duration FREQUENCY = Duration.ofSeconds(30);
final static Range<Integer> TARGETS = Range.closed(2, 5);
final static Range<Integer> STRIKES = Range.closed(1, 3);
public LightningMutation(Match match) {
super(match, FREQUENCY);
}
@Override
public void target(List<MatchPlayer> players) {
players.forEach(player -> {
Location location = player.getLocation();
world().strikeLightning(location.clone().add(Vector.getRandom()));
int strikes = entropy().randomInt(STRIKES);
for(int i = 0; i < strikes; i++) {
world().strikeLightningEffect(location.clone().add(Vector.getRandom().multiply(Math.pow(i + 1, 2))));
}
});
}
@Override
public int targets() {
return match().entropyForTick().randomInt(TARGETS);
}
}