Add Speediest Builderizer achievement

This commit is contained in:
Shaun Bennett 2016-01-22 19:13:23 -05:00
parent d0e5be9c93
commit ddc86f0897
7 changed files with 45 additions and 9 deletions

View File

@ -878,6 +878,12 @@ public enum Achievement
new String[]{"Speed Builders.PerfectWins"},
new String[]{"Win a game of Speed Builder with a perfect build every round"},
new int[]{1},
AchievementCategory.SPEED_BUILDERS),
SPEED_BUILDERS_SPEEDIEST("Speediest Builderizer", 2000,
new String[]{"Speed Builders.SpeediestBuilderizer"},
new String[]{"Perfect a build in less than 10 seconds"},
new int[]{1},
AchievementCategory.SPEED_BUILDERS);
private String _name;

View File

@ -31,9 +31,9 @@ import nautilus.game.arcade.events.GameStateChangeEvent;
import nautilus.game.arcade.game.GameTeam;
import nautilus.game.arcade.game.GameTeam.PlayerState;
import nautilus.game.arcade.game.SoloGame;
import nautilus.game.arcade.game.games.speedbuilder.stattrackers.DependableTracker;
import nautilus.game.arcade.game.games.speedbuilder.stattrackers.FirstBuildTracker;
import nautilus.game.arcade.game.games.speedbuilder.stattrackers.PerfectionistTracker;
import nautilus.game.arcade.game.games.speedbuilders.stattrackers.DependableTracker;
import nautilus.game.arcade.game.games.speedbuilders.stattrackers.FirstBuildTracker;
import nautilus.game.arcade.game.games.speedbuilders.stattrackers.PerfectionistTracker;
import nautilus.game.arcade.game.games.speedbuilders.data.BuildData;
import nautilus.game.arcade.game.games.speedbuilders.data.DemolitionData;
import nautilus.game.arcade.game.games.speedbuilders.data.MobData;
@ -611,7 +611,8 @@ public class SpeedBuilders extends SoloGame
if (_buildRecreations.get(player).calculateScoreFromBuild(_currentBuild) == _currentBuild.getPerfectScore())
{
PerfectBuildEvent perfectBuildEvent = new PerfectBuildEvent(player, SpeedBuilders.this);
long timeElapsed = System.currentTimeMillis() - _stateTime;
PerfectBuildEvent perfectBuildEvent = new PerfectBuildEvent(player, timeElapsed, SpeedBuilders.this);
Bukkit.getServer().getPluginManager().callEvent(perfectBuildEvent);

View File

@ -8,15 +8,16 @@ import org.bukkit.event.HandlerList;
public class PerfectBuildEvent extends Event
{
private static final HandlerList handlers = new HandlerList();
private Player _player;
private SpeedBuilders _game;
private long _timeElapsed; // Build time elapsed in ms
public PerfectBuildEvent(Player player, SpeedBuilders game)
public PerfectBuildEvent(Player player, long timeElapsed, SpeedBuilders game)
{
_player = player;
_timeElapsed = timeElapsed;
_game = game;
}
@ -25,6 +26,11 @@ public class PerfectBuildEvent extends Event
return _player;
}
public long getTimeElapsed()
{
return _timeElapsed;
}
public SpeedBuilders getGame()
{
return _game;

View File

@ -1,4 +1,4 @@
package nautilus.game.arcade.game.games.speedbuilder.stattrackers;
package nautilus.game.arcade.game.games.speedbuilders.stattrackers;
import nautilus.game.arcade.game.games.speedbuilders.SpeedBuilders;
import nautilus.game.arcade.game.games.speedbuilders.events.PerfectBuildEvent;

View File

@ -1,4 +1,4 @@
package nautilus.game.arcade.game.games.speedbuilder.stattrackers;
package nautilus.game.arcade.game.games.speedbuilders.stattrackers;
import org.bukkit.event.EventHandler;

View File

@ -1,4 +1,4 @@
package nautilus.game.arcade.game.games.speedbuilder.stattrackers;
package nautilus.game.arcade.game.games.speedbuilders.stattrackers;
import java.util.Map.Entry;

View File

@ -0,0 +1,23 @@
package nautilus.game.arcade.game.games.speedbuilders.stattrackers;
import org.bukkit.event.EventHandler;
import nautilus.game.arcade.game.games.speedbuilders.SpeedBuilders;
import nautilus.game.arcade.game.games.speedbuilders.events.PerfectBuildEvent;
import nautilus.game.arcade.stats.StatTracker;
public class SpeediestBuilderizerTracker extends StatTracker<SpeedBuilders>
{
public SpeediestBuilderizerTracker(SpeedBuilders game)
{
super(game);
}
@EventHandler
public void onPerfectBuild(PerfectBuildEvent event)
{
if (event.getTimeElapsed() < 10000) // 10 Seconds
addStat(event.getPlayer(), "SpeediestBuilderizer", 1, true, false);
}
}