Add game tips and remove medals from initial release

This commit is contained in:
AlexTheCoder 2017-05-06 17:01:31 -04:00
parent a47c4291c5
commit 0b7789328a
2 changed files with 11 additions and 178 deletions

View File

@ -6,7 +6,6 @@ import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry;
import java.util.WeakHashMap; import java.util.WeakHashMap;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -89,9 +88,6 @@ import nautilus.game.arcade.game.games.castlesiege.data.KillStreakData;
import nautilus.game.arcade.game.games.castlesiege.data.ObjectiveTNTSpawner; import nautilus.game.arcade.game.games.castlesiege.data.ObjectiveTNTSpawner;
import nautilus.game.arcade.game.games.castlesiege.data.TeamBeacon; import nautilus.game.arcade.game.games.castlesiege.data.TeamBeacon;
import nautilus.game.arcade.game.games.castlesiege.data.TeamKing; import nautilus.game.arcade.game.games.castlesiege.data.TeamKing;
import nautilus.game.arcade.game.games.castlesiege.data.medals.MedalData;
import nautilus.game.arcade.game.games.castlesiege.data.medals.MedalData.MedalLevel;
import nautilus.game.arcade.game.games.castlesiege.data.medals.MedalType;
import nautilus.game.arcade.game.games.castlesiege.shockkits.KitArcher; import nautilus.game.arcade.game.games.castlesiege.shockkits.KitArcher;
import nautilus.game.arcade.game.games.castlesiege.shockkits.KitDemolitionist; import nautilus.game.arcade.game.games.castlesiege.shockkits.KitDemolitionist;
import nautilus.game.arcade.game.games.castlesiege.shockkits.KitFighter; import nautilus.game.arcade.game.games.castlesiege.shockkits.KitFighter;
@ -112,7 +108,6 @@ public class ShockCastleSiege extends TeamGame
private ItemBuilder _wearableTnt; private ItemBuilder _wearableTnt;
private Map<Player, KillStreakData> _streakData = new WeakHashMap<>(); private Map<Player, KillStreakData> _streakData = new WeakHashMap<>();
private Map<Player, MedalData> _medalData = new WeakHashMap<>();
private Map<GameTeam, List<TeamBeacon>> _beacons = new HashMap<>(); private Map<GameTeam, List<TeamBeacon>> _beacons = new HashMap<>();
private Map<GameTeam, TeamKing> _kings = new HashMap<>(); private Map<GameTeam, TeamKing> _kings = new HashMap<>();
private List<Player> _tntCarry = new ArrayList<>(); private List<Player> _tntCarry = new ArrayList<>();
@ -127,7 +122,6 @@ public class ShockCastleSiege extends TeamGame
private ChestLoot _rodsAndGaps = new ChestLoot(true); private ChestLoot _rodsAndGaps = new ChestLoot(true);
private ChestLoot _potionGearCommon = new ChestLoot(true); private ChestLoot _potionGearCommon = new ChestLoot(true);
private ChestLoot _potionGearRare = new ChestLoot(true); private ChestLoot _potionGearRare = new ChestLoot(true);
//private ChestLoot _blockGear = new ChestLoot();
private ChestLoot _enchantGearCommon = new ChestLoot(true); private ChestLoot _enchantGearCommon = new ChestLoot(true);
private ChestLoot _enchantGearRare = new ChestLoot(true); private ChestLoot _enchantGearRare = new ChestLoot(true);
private ChestLoot _miscGear = new ChestLoot(); private ChestLoot _miscGear = new ChestLoot();
@ -153,6 +147,14 @@ public class ShockCastleSiege extends TeamGame
}, },
new String[] {"AlexTheCoder is awesome!"}); new String[] {"AlexTheCoder is awesome!"});
_help = new String[]
{
"Use the TNT spawning platforms to run TNT to the enemy beacons to destroy them!",
"The enemy king is invulnerable until you destroy the two sentry beacons on each sentry tower",
"Go on Kill Streaks to earn Kill Streak Rewards to obtain better armor & weapons!",
"Chests refill every 2 minutes with potions, golden applegates, fishing rods, and other useful PvP items!"
};
this.StrictAntiHack = true; this.StrictAntiHack = true;
this.HungerSet = 20; this.HungerSet = 20;
this.DeathOut = false; this.DeathOut = false;
@ -183,60 +185,6 @@ public class ShockCastleSiege extends TeamGame
generateLoot(); generateLoot();
} }
private Player[] getMedalOwners(MedalType type)
{
Player gold = null;
Double goldScore = 0D;
Player silver = null;
Double silverScore = 0D;
Player bronze = null;
Double bronzeScore = 0D;
//GOLD
for (Entry<Player, MedalData> scores : _medalData.entrySet())
{
if (scores.getValue().getScore(type) > goldScore)
{
gold = scores.getKey();
goldScore = scores.getValue().getScore(type);
}
}
//SILVER
for (Entry<Player, MedalData> scores : _medalData.entrySet())
{
if (gold != null && gold.getName().equals(scores.getKey().getName()))
{
continue;
}
if (scores.getValue().getScore(type) > silverScore)
{
silver = scores.getKey();
silverScore = scores.getValue().getScore(type);
}
}
//BRONZE
for (Entry<Player, MedalData> scores : _medalData.entrySet())
{
if (gold != null && gold.getName().equals(scores.getKey().getName()))
{
continue;
}
if (silver != null && silver.getName().equals(scores.getKey().getName()))
{
continue;
}
if (scores.getValue().getScore(type) > bronzeScore)
{
bronze = scores.getKey();
bronzeScore = scores.getValue().getScore(type);
}
}
return new Player[] {gold, silver, bronze};
}
private void generateLoot() private void generateLoot()
{ {
{ {
@ -286,10 +234,6 @@ public class ShockCastleSiege extends TeamGame
_potionGearRare.addLoot(new ItemBuilder(Material.POTION).setData((short)8193).build(), 2); _potionGearRare.addLoot(new ItemBuilder(Material.POTION).setData((short)8193).build(), 2);
_potionGearRare.addLoot(new ItemBuilder(Material.POTION).setData((short)8195).build(), 2); _potionGearRare.addLoot(new ItemBuilder(Material.POTION).setData((short)8195).build(), 2);
} }
/*{
_blockGear.addLoot(new ItemStack(Material.STONE, 64), 2);
_blockGear.addLoot(new ItemStack(Material.WOOD, 64), 2);
}*/
{ {
_enchantGearCommon.addLoot(new EnchantedBookBuilder(1).setLevel(Enchantment.PROTECTION_ENVIRONMENTAL, 1).build(), 2); _enchantGearCommon.addLoot(new EnchantedBookBuilder(1).setLevel(Enchantment.PROTECTION_ENVIRONMENTAL, 1).build(), 2);
_enchantGearCommon.addLoot(new EnchantedBookBuilder(1).setLevel(Enchantment.DAMAGE_ALL, 1).build(), 2); _enchantGearCommon.addLoot(new EnchantedBookBuilder(1).setLevel(Enchantment.DAMAGE_ALL, 1).build(), 2);
@ -301,7 +245,6 @@ public class ShockCastleSiege extends TeamGame
} }
{ {
_miscGear.addLoot(new ItemStack(Material.ENDER_PEARL), 2); _miscGear.addLoot(new ItemStack(Material.ENDER_PEARL), 2);
_miscGear.addLoot(new ItemBuilder(Material.TNT, 4).setTitle(F.item("Throwing TNT")).build(), 2);
_miscGear.addLoot(new ItemStack(Material.WATER_BUCKET), 2); _miscGear.addLoot(new ItemStack(Material.WATER_BUCKET), 2);
_miscGear.addLoot(_flintAndSteel.build(), 2); _miscGear.addLoot(_flintAndSteel.build(), 2);
_miscGear.addLoot(new ItemStack(Material.SNOW_BALL, 16), 3); _miscGear.addLoot(new ItemStack(Material.SNOW_BALL, 16), 3);
@ -340,23 +283,7 @@ public class ShockCastleSiege extends TeamGame
if (chance <= 0.3) if (chance <= 0.3)
{ {
loot = _rangedGear; loot = _rangedGear;
}/*
if (chance <= 0.4)
{
loot = _weaponGearCommon;
if (subChance <= 0.4)
{
loot = _weaponGearRare;
}
} }
if (chance <= 0.3)
{
loot = _diamondGearCommon;
if (subChance <= 0.3)
{
loot = _diamondGearRare;
}
}*/
chest.getBlockInventory().setItem(slot, loot.getLoot()); chest.getBlockInventory().setItem(slot, loot.getLoot());
} }
} }
@ -500,34 +427,6 @@ public class ShockCastleSiege extends TeamGame
TeamKing dead = _kings.values().stream().filter(k -> k.getOwner().GetColor() != king.getOwner().GetColor()).findFirst().get(); TeamKing dead = _kings.values().stream().filter(k -> k.getOwner().GetColor() != king.getOwner().GetColor()).findFirst().get();
AnnounceEnd(winner); AnnounceEnd(winner);
writeFinalScoreboard(dead.getName(false), king.getName(false), dead.getOwner().GetColor() + "Quitters"); writeFinalScoreboard(dead.getName(false), king.getName(false), dead.getOwner().GetColor() + "Quitters");
boolean announcedMedalStart = false;
for (MedalType type : MedalType.values())
{
Player[] rewarding = getMedalOwners(type);
if (rewarding[0] != null)
{
if (!announcedMedalStart)
{
announcedMedalStart = true;
Bukkit.broadcastMessage(C.cGoldB + "-==Match Medal Recipients==-");
}
AddGems(rewarding[0], 50, MedalLevel.GOLD.getName() + " " + type.getName(), false, false);
AddStat(rewarding[0], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.GOLD.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.GOLD.getColor() + rewarding[0].getName());
}
if (rewarding[1] != null)
{
AddGems(rewarding[1], 30, MedalLevel.SILVER.getName() + " " + type.getName(), false, false);
AddStat(rewarding[1], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.SILVER.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.SILVER.getColor() + rewarding[1].getName());
}
if (rewarding[2] != null)
{
AddGems(rewarding[2], 20, MedalLevel.BRONZE.getName() + " " + type.getName(), false, false);
AddStat(rewarding[2], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.BRONZE.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.BRONZE.getColor() + rewarding[2].getName());
}
}
for (GameTeam team : GetTeamList()) for (GameTeam team : GetTeamList())
{ {
for (Player player : team.GetPlayers(true)) for (Player player : team.GetPlayers(true))
@ -603,34 +502,6 @@ public class ShockCastleSiege extends TeamGame
{ {
AnnounceEnd(blue); AnnounceEnd(blue);
writeFinalScoreboard(redKing.getName(false), blueKing.getName(false), blue.GetColor() + redKing.getLastDamager()); writeFinalScoreboard(redKing.getName(false), blueKing.getName(false), blue.GetColor() + redKing.getLastDamager());
boolean announcedMedalStart = false;
for (MedalType type : MedalType.values())
{
Player[] rewarding = getMedalOwners(type);
if (rewarding[0] != null)
{
if (!announcedMedalStart)
{
announcedMedalStart = true;
Bukkit.broadcastMessage(C.cGoldB + "-==Match Medal Recipients==-");
}
AddGems(rewarding[0], 50, MedalLevel.GOLD.getName() + " " + type.getName(), false, false);
AddStat(rewarding[0], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.GOLD.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.GOLD.getColor() + rewarding[0].getName());
}
if (rewarding[1] != null)
{
AddGems(rewarding[1], 30, MedalLevel.SILVER.getName() + " " + type.getName(), false, false);
AddStat(rewarding[1], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.SILVER.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.SILVER.getColor() + rewarding[1].getName());
}
if (rewarding[2] != null)
{
AddGems(rewarding[2], 20, MedalLevel.BRONZE.getName() + " " + type.getName(), false, false);
AddStat(rewarding[2], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.BRONZE.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.BRONZE.getColor() + rewarding[2].getName());
}
}
for (GameTeam team : GetTeamList()) for (GameTeam team : GetTeamList())
{ {
for (Player player : team.GetPlayers(true)) for (Player player : team.GetPlayers(true))
@ -680,34 +551,6 @@ public class ShockCastleSiege extends TeamGame
{ {
AnnounceEnd(red); AnnounceEnd(red);
writeFinalScoreboard(blueKing.getName(false), redKing.getName(false), red.GetColor() + blueKing.getLastDamager()); writeFinalScoreboard(blueKing.getName(false), redKing.getName(false), red.GetColor() + blueKing.getLastDamager());
boolean announcedMedalStart = false;
for (MedalType type : MedalType.values())
{
Player[] rewarding = getMedalOwners(type);
if (rewarding[0] != null)
{
if (!announcedMedalStart)
{
announcedMedalStart = true;
Bukkit.broadcastMessage(C.cGoldB + "-==Match Medal Recipients==-");
}
AddGems(rewarding[0], 50, MedalLevel.GOLD.getName() + " " + type.getName(), false, false);
AddStat(rewarding[0], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.GOLD.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.GOLD.getColor() + rewarding[0].getName());
}
if (rewarding[1] != null)
{
AddGems(rewarding[1], 30, MedalLevel.SILVER.getName() + " " + type.getName(), false, false);
AddStat(rewarding[1], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.SILVER.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.SILVER.getColor() + rewarding[1].getName());
}
if (rewarding[2] != null)
{
AddGems(rewarding[2], 20, MedalLevel.BRONZE.getName() + " " + type.getName(), false, false);
AddStat(rewarding[2], "Medalist", 1, false, false);
Bukkit.broadcastMessage(MedalLevel.BRONZE.getName() + " " + type.getName() + C.cGray + ": " + MedalLevel.BRONZE.getColor() + rewarding[2].getName());
}
}
for (GameTeam team : GetTeamList()) for (GameTeam team : GetTeamList())
{ {
for (Player player : team.GetPlayers(true)) for (Player player : team.GetPlayers(true))
@ -957,16 +800,6 @@ public class ShockCastleSiege extends TeamGame
} }
AddStat(player, GetKit(player).GetName() + "KitKills", 1, false, false); AddStat(player, GetKit(player).GetName() + "KitKills", 1, false, false);
_medalData.computeIfAbsent(player, key -> new MedalData()).addScore(MedalType.ELIM, 1D);
for (TeamKing king : _kings.values())
{
if (UtilMath.offsetSquared(player.getLocation(), king.getLocation()) <= 25)
{
_medalData.computeIfAbsent(player, key -> new MedalData()).addScore(MedalType.OBJECTIVE_KILL, 1D);
break;
}
}
if (UtilPlayer.isSpectator(player)) if (UtilPlayer.isSpectator(player))
{ {
@ -1215,7 +1048,6 @@ public class ShockCastleSiege extends TeamGame
TeamKing king = _kings.get(owner); TeamKing king = _kings.get(owner);
if (king.handleDamage(p.getName(), e.getDamage())) if (king.handleDamage(p.getName(), e.getDamage()))
{ {
_medalData.computeIfAbsent(p, key -> new MedalData()).addScore(MedalType.KING_DMG, e.getDamage());
for (Player alert : owner.GetPlayers(true)) for (Player alert : owner.GetPlayers(true))
{ {
if (Recharge.Instance.use(alert, "KingDamageAlert", 5000, false, false)) if (Recharge.Instance.use(alert, "KingDamageAlert", 5000, false, false))

View File

@ -16,6 +16,7 @@ import mineplex.core.common.util.UtilTime;
public class ObjectiveTNTSpawner public class ObjectiveTNTSpawner
{ {
private static final long TNT_SPAWN_DELAY = 60000;
private List<Location> _locs; private List<Location> _locs;
private Location _lastSpawnLoc; private Location _lastSpawnLoc;
private Item _entity; private Item _entity;
@ -41,7 +42,7 @@ public class ObjectiveTNTSpawner
public long getNextTNT() public long getNextTNT()
{ {
return (_lastPickedUp + 60000) - System.currentTimeMillis(); return (_lastPickedUp + TNT_SPAWN_DELAY) - System.currentTimeMillis();
} }
public void spawn() public void spawn()
@ -64,7 +65,7 @@ public class ObjectiveTNTSpawner
public void update() public void update()
{ {
if (!isSpawned() && UtilTime.elapsed(_lastPickedUp, 60000)) if (!isSpawned() && UtilTime.elapsed(_lastPickedUp, TNT_SPAWN_DELAY))
{ {
spawn(); spawn();
} }