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

41 lines
1.2 KiB
Java
Raw Normal View History

2017-03-31 23:30:41 +02:00
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;
2017-04-03 04:09:35 +02:00
public class LightningMutation extends TargetMutation.Impl {
2017-03-31 23:30:41 +02:00
final static Duration FREQUENCY = Duration.ofSeconds(30);
2017-04-03 04:09:35 +02:00
final static Range<Integer> TARGETS = Range.closed(2, 5);
final static Range<Integer> STRIKES = Range.closed(1, 3);
2017-03-31 23:30:41 +02:00
public LightningMutation(Match match) {
super(match, FREQUENCY);
}
@Override
2017-04-03 04:09:35 +02:00
public void target(List<MatchPlayer> players) {
2017-03-31 23:30:41 +02:00
players.forEach(player -> {
Location location = player.getLocation();
2017-04-03 04:09:35 +02:00
world().strikeLightning(location.clone().add(Vector.getRandom()));
int strikes = entropy().randomInt(STRIKES);
2017-03-31 23:30:41 +02:00
for(int i = 0; i < strikes; i++) {
2017-04-03 04:09:35 +02:00
world().strikeLightningEffect(location.clone().add(Vector.getRandom().multiply(Math.pow(i + 1, 2))));
2017-03-31 23:30:41 +02:00
}
});
}
@Override
public int targets() {
2017-04-03 04:09:35 +02:00
return match().entropyForTick().randomInt(TARGETS);
2017-03-31 23:30:41 +02:00
}
}