12
1

Meteor #324

Zusammengeführt
Lixfel hat 24 Commits von Meteor nach master 2022-02-11 22:48:17 +01:00 zusammengeführt
2 geänderte Dateien mit 24 neuen und 8 gelöschten Zeilen
Nur Änderungen aus Commit f2b86c9b1d werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -69,6 +69,7 @@ public class HellsBells {
GlobalRecorder.getInstance().system(stateSwapMessage);
FightSystem.getMessage().broadcast(stateSwapMessage);
currentDrops = 0;
current = current.getNext();
}
currentDrops++;

Datei anzeigen

@ -15,7 +15,9 @@ import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.ProjectileHitEvent;
@ -38,9 +40,16 @@ public class Meteor implements Listener {
public void startCountdown() {
if (current == Meteor.State.PRE) {
Bukkit.getOnlinePlayers().forEach(player -> {
player.sendMessage("Starting");
});
current = current.getNext();
} else if (current != Meteor.State.LAST && currentDrops >= current.SWITCH_AFTER) {
Bukkit.getOnlinePlayers().forEach(player -> {
player.sendMessage("Faster");
});
currentDrops = 0;
current = current.getNext();
}
currentDrops++;
@ -51,8 +60,10 @@ public class Meteor implements Listener {
@EventHandler
public void explode(ProjectileHitEvent event) {
if (event.getEntity() instanceof Fireball) {
event.getEntity().getWorld().createExplosion(event.getEntity().getLocation(), current.explosionSize);
Bukkit.getScheduler().runTaskLater(FightSystem.getPlugin(), () -> event.getEntity().getWorld().createExplosion(event.getEntity().getLocation(), current.explosionSize), 1L);
TNTPrimed tnt = world.spawn(event.getEntity().getLocation(), TNTPrimed.class);
tnt.setVelocity(new Vector(0, 0, 0));
tnt.setFuseTicks(0);
tnt.setYield(current.explosionSize);
}
}
@ -67,6 +78,9 @@ public class Meteor implements Listener {
Meteor.Point redStart = new Meteor.Point(Config.RedExtendRegion.getMinX() + xOffset, Config.RedExtendRegion.getMaxY() + yOffset, Config.RedExtendRegion.getMaxZ() - zOffset);
Meteor.Point blueStart = new Meteor.Point(Config.BlueExtendRegion.getMinX() + xOffset, Config.BlueExtendRegion.getMaxY() + yOffset, Config.BlueExtendRegion.getMinZ() + zOffset);
vector.setX(random.nextDouble() - 0.5);
vector.setZ(random.nextDouble() - 0.5);
Fireball fireballRed = world.spawn(redStart.toLocation(world), Fireball.class);
fireballRed.setDirection(vector);
fireballRed.setBounce(false);
@ -74,6 +88,7 @@ public class Meteor implements Listener {
fireballRed.setYield(0);
Fireball fireballBlue = world.spawn(blueStart.toLocation(world), Fireball.class);
vector.setZ(vector.getZ() * -1);
fireballBlue.setDirection(vector);
fireballBlue.setBounce(false);
fireballBlue.setIsIncendiary(false);
@ -143,12 +158,12 @@ public class Meteor implements Listener {
private enum State {
PRE(60, 80, 1, 0, 0, 0),
FIRST(40, 60, 3, 2, 1, 3),
SECOND(30, 40, 4, 4, 2, 5),
THIRD(20, 30, 4, 6, 3, 7),
FOURTH(10, 20, 5, 8, 5, 10),
LAST(5, 10, 0, 10, 7, 15);
PRE(30, 40, 1, 0, 0, 0),
FIRST(25, 35, 3, 2, 2, 4),
SECOND(20, 30, 4, 4, 3, 6),
THIRD(15, 25, 4, 6, 4, 8),
FOURTH(10, 20, 5, 8, 6, 11),
LAST(5, 10, 0, 10, 8, 16);
Lixfel markierte diese Unterhaltung als gelöst
Review

Auch nicht genau so in HellsBells?

Auch nicht genau so in HellsBells?
Review

Die Klasse schon, sie hat nur andere Werte! Vllt könnte man sich da eine kleine lineare State Machine ausdenken, welche das gleiche Macht.

Die Klasse schon, sie hat nur andere Werte! Vllt könnte man sich da eine kleine lineare State Machine ausdenken, welche das gleiche Macht.
State(int minTime, int maxTime, int switchAfter, int explosionSize, int minAmount, int maxAmount) {