mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2024-11-28 05:26:29 +01:00
Actually use game goals
This commit is contained in:
parent
1482bb5902
commit
000250e95b
@ -337,7 +337,8 @@ public class DGamePlayer extends DInstancePlayer implements GamePlayer {
|
|||||||
GameRuleContainer rules = game.getRules();
|
GameRuleContainer rules = game.getRules();
|
||||||
|
|
||||||
getGroup().setScore(getGroup().getScore() + 1);
|
getGroup().setScore(getGroup().getScore() + 1);
|
||||||
if (rules.getState(GameRule.SCORE_GOAL) == getGroup().getScore()) {
|
GameGoal goal = rules.getState(GameRule.GAME_GOAL);
|
||||||
|
if ((goal == GameGoal.REACH_SCORE || goal == GameGoal.TIME_SCORE) && rules.getState(GameRule.SCORE_GOAL) == getGroup().getScore()) {
|
||||||
getGroup().winGame();
|
getGroup().winGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ package de.erethon.dungeonsxl.player;
|
|||||||
|
|
||||||
import de.erethon.commons.chat.MessageUtil;
|
import de.erethon.commons.chat.MessageUtil;
|
||||||
import de.erethon.dungeonsxl.DungeonsXL;
|
import de.erethon.dungeonsxl.DungeonsXL;
|
||||||
|
import de.erethon.dungeonsxl.api.dungeon.GameGoal;
|
||||||
|
import de.erethon.dungeonsxl.api.dungeon.GameRule;
|
||||||
import de.erethon.dungeonsxl.api.event.group.GroupPlayerKickEvent;
|
import de.erethon.dungeonsxl.api.event.group.GroupPlayerKickEvent;
|
||||||
import de.erethon.dungeonsxl.api.player.GamePlayer;
|
import de.erethon.dungeonsxl.api.player.GamePlayer;
|
||||||
import de.erethon.dungeonsxl.api.player.PlayerGroup;
|
import de.erethon.dungeonsxl.api.player.PlayerGroup;
|
||||||
@ -37,12 +39,14 @@ public class TimeIsRunningTask extends BukkitRunnable {
|
|||||||
private PlayerGroup group;
|
private PlayerGroup group;
|
||||||
private int time;
|
private int time;
|
||||||
private int timeLeft;
|
private int timeLeft;
|
||||||
|
private GameGoal goal;
|
||||||
|
|
||||||
public TimeIsRunningTask(DungeonsXL plugin, PlayerGroup group, int time) {
|
public TimeIsRunningTask(DungeonsXL plugin, PlayerGroup group, int time) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.group = group;
|
this.group = group;
|
||||||
this.time = time;
|
this.time = time;
|
||||||
this.timeLeft = time;
|
this.timeLeft = time;
|
||||||
|
goal = group.getDungeon().getRules().getState(GameRule.GAME_GOAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -66,6 +70,10 @@ public class TimeIsRunningTask extends BukkitRunnable {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fire trigger
|
||||||
|
if (goal != GameGoal.TIME_SCORE && goal != GameGoal.TIME_SURVIVAL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
GroupPlayerKickEvent groupPlayerKickEvent = new GroupPlayerKickEvent(group, dPlayer, GroupPlayerKickEvent.Cause.TIME_EXPIRED);
|
GroupPlayerKickEvent groupPlayerKickEvent = new GroupPlayerKickEvent(group, dPlayer, GroupPlayerKickEvent.Cause.TIME_EXPIRED);
|
||||||
Bukkit.getServer().getPluginManager().callEvent(groupPlayerKickEvent);
|
Bukkit.getServer().getPluginManager().callEvent(groupPlayerKickEvent);
|
||||||
|
|
||||||
|
@ -16,8 +16,11 @@
|
|||||||
*/
|
*/
|
||||||
package de.erethon.dungeonsxl.sign.button;
|
package de.erethon.dungeonsxl.sign.button;
|
||||||
|
|
||||||
|
import de.erethon.commons.chat.MessageUtil;
|
||||||
import de.erethon.dungeonsxl.api.DungeonsAPI;
|
import de.erethon.dungeonsxl.api.DungeonsAPI;
|
||||||
import de.erethon.dungeonsxl.api.dungeon.Dungeon;
|
import de.erethon.dungeonsxl.api.dungeon.Dungeon;
|
||||||
|
import de.erethon.dungeonsxl.api.dungeon.GameGoal;
|
||||||
|
import de.erethon.dungeonsxl.api.dungeon.GameRule;
|
||||||
import de.erethon.dungeonsxl.api.sign.Button;
|
import de.erethon.dungeonsxl.api.sign.Button;
|
||||||
import de.erethon.dungeonsxl.api.world.InstanceWorld;
|
import de.erethon.dungeonsxl.api.world.InstanceWorld;
|
||||||
import de.erethon.dungeonsxl.api.world.ResourceWorld;
|
import de.erethon.dungeonsxl.api.world.ResourceWorld;
|
||||||
@ -82,6 +85,13 @@ public class EndSign extends Button {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
|
GameGoal goal = getGame().getRules().getState(GameRule.GAME_GOAL);
|
||||||
|
if (goal != GameGoal.END) {
|
||||||
|
setToAir();
|
||||||
|
MessageUtil.log(api, "&4An end sign in the dungeon " + getGame().getDungeon().getName() + " is ignored because the game goal is " + goal.toString());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!getLine(1).isEmpty()) {
|
if (!getLine(1).isEmpty()) {
|
||||||
floor = api.getMapRegistry().get(getLine(1));
|
floor = api.getMapRegistry().get(getLine(1));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user