Few changes

This commit is contained in:
Mysticate 2015-08-09 14:34:55 -04:00
parent b9edb92c1e
commit d9a8830e75
4 changed files with 224 additions and 114 deletions

View File

@ -308,9 +308,10 @@ public class ItemBuilder
return this;
}
public void setData(short newData)
public ItemBuilder setData(short newData)
{
this._data = newData;
return this;
}
public ItemBuilder setPotion(Potion potion)

View File

@ -10,7 +10,7 @@ public class EvoToken implements Comparable<EvoToken>
public final Player Player;
public int Kills = 0;
public int Level = 0;
public EvoToken(Player player)
{
@ -20,11 +20,11 @@ public class EvoToken implements Comparable<EvoToken>
@Override
public int compareTo(EvoToken o)
{
if (Kills == o.Kills)
if (Level == o.Level)
{
return 0;
}
if (Kills > o.Kills)
if (Level > o.Level)
{
return -1;
}

View File

@ -7,21 +7,24 @@ import java.util.Iterator;
import mineplex.core.common.util.C;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilEvent;
import mineplex.core.common.util.UtilEvent.ActionType;
import mineplex.core.common.util.UtilGear;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilTextMiddle;
import mineplex.core.itemstack.ItemBuilder;
import mineplex.core.recharge.Recharge;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
import mineplex.minecraft.game.core.condition.ConditionActive;
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.GameType;
import nautilus.game.arcade.addons.compass.CompassAttemptTargetEvent;
import nautilus.game.arcade.events.GameStateChangeEvent;
import nautilus.game.arcade.game.SoloGame;
import nautilus.game.arcade.game.games.evolution.events.EvolutionAbilityUseEvent;
import nautilus.game.arcade.game.games.evolution.events.EvolutionBeginEvent;
import nautilus.game.arcade.game.games.evolution.events.EvolutionEndEvent;
import nautilus.game.arcade.game.games.evolution.events.EvolutionPostEvolveEvent;
@ -38,7 +41,6 @@ import nautilus.game.arcade.game.games.evolution.mobs.KitSnowman;
import nautilus.game.arcade.game.games.evolution.mobs.KitSpider;
import nautilus.game.arcade.game.games.evolution.mobs.KitWolf;
import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.perks.event.PerkConstructorEvent;
import org.bukkit.Location;
import org.bukkit.Material;
@ -47,7 +49,8 @@ import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.Vector;
public class Evolution extends SoloGame
@ -66,6 +69,9 @@ public class Evolution extends SoloGame
//Platform location, viewing location.
private NautHashMap<Location, Location> _evoPlatforms = new NautHashMap<Location, Location>();
private ArrayList<Player> _evolutionsAvailable = new ArrayList<Player>();
private ArrayList<Player> _attemptingEvolve = new ArrayList<Player>();
public Evolution(ArcadeManager manager)
{
super(manager, GameType.Evolution,
@ -179,6 +185,8 @@ public class Evolution extends SoloGame
}
}
@EventHandler
public void showKit(GameStateChangeEvent event)
{
@ -212,18 +220,6 @@ public class Evolution extends SoloGame
_evolve = new EvolveManager(this, _evoPlatforms);
}
@EventHandler
public void tickEvolve(UpdateEvent event)
{
if (!IsLive())
return;
if (event.getType() != UpdateType.TICK)
return;
_evolve.tick();
}
@Override
public boolean HasKit(Player player, Kit kit)
{
@ -236,70 +232,20 @@ public class Evolution extends SoloGame
return false;
}
@EventHandler(priority = EventPriority.MONITOR)
public void onEvolveDamageRecieve(CustomDamageEvent event)
//Boolean ending
public void upgradeKit(Player player, boolean give)
{
if (!IsLive())
if (!IsAlive(player))
return;
if (!(event.GetDamageeEntity() instanceof Player))
return;
EvoKit newKit = _mobKits.get(getScore(player));
if (_evolve.isEvolving(event.GetDamageePlayer()))
event.SetCancelled("Player is evolving!");
SetKit(player, newKit, false);
if (give)
{
newKit.upgradeGive(player);
}
@EventHandler(priority = EventPriority.MONITOR)
public void onEvolveDamageDeal(CustomDamageEvent event)
{
if (!IsLive())
return;
if (!(event.GetDamagerEntity(true) instanceof Player))
return;
if (_evolve.isEvolving(event.GetDamagerPlayer(true)))
event.SetCancelled("Player is evolving!");
}
@EventHandler
public void onEvolveAbility(EvolutionAbilityUseEvent event)
{
if (!IsLive())
return;
if (_evolve.isEvolving(event.getPlayer()))
event.setCancelled(true);
}
@EventHandler
public void onEvolveCompass(CompassAttemptTargetEvent event)
{
if (!IsLive())
return;
if (_evolve.isEvolving(event.getTarget()))
event.setCancelled(true);
}
@EventHandler
public void onEvolveConstruct(PerkConstructorEvent event)
{
if (!IsLive())
return;
if (_evolve.isEvolving(event.getPlayer()))
event.setCancelled(true);
}
@EventHandler
public void onEvolveMove(PlayerMoveEvent event)
{
if (!IsLive())
return;
if (_evolve.isEvolving(event.getPlayer()))
event.getPlayer().teleport(event.getFrom());
}
@EventHandler
@ -387,37 +333,111 @@ public class Evolution extends SoloGame
return;
}
EvoToken token = _tokens.get(killer.getName());
try
{
EvoKit from = _mobKits.get(token.Kills - 1); //Account for the score increase
EvoKit to = _mobKits.get(token.Kills);
_evolve.addEvolve(killer, from, to);
_evolutionsAvailable.add(killer);
// EvoToken token = _tokens.get(killer.getName());
//
// try
// {
// EvoKit from = _mobKits.get(token.Kills - 1); //Account for the score increase
// EvoKit to = _mobKits.get(token.Kills);
//
// _evolve.addEvolve(killer, from, to);
// }
// catch (IndexOutOfBoundsException ex)
// {
// End();
// return;
// }
}
catch (IndexOutOfBoundsException ex)
@EventHandler
public void updateAvailableEvolutions(UpdateEvent event)
{
End();
if (event.getType() != UpdateType.TICK)
return;
if (!IsLive())
return;
Iterator<Player> iterator = _evolutionsAvailable.iterator();
while (iterator.hasNext())
{
Player player = iterator.next();
if (player == null || !player.isOnline())
{
iterator.remove();
return;
}
}
//Boolean ending
public void upgradeKit(Player player, boolean give)
{
if (!IsAlive(player))
{
iterator.remove();
return;
}
if (!_attemptingEvolve.contains(player))
{
UtilTextMiddle.display("", C.cGreen + C.Bold + "Evolution Available!");
}
if (!UtilGear.isMat(player.getInventory().getItem(7), Material.STAINED_CLAY))
{
player.getInventory().setItem(7, new ItemBuilder(Material.STAINED_CLAY).build());
}
else
{
//Rainbow effect on the clay
ItemStack item = player.getInventory().getItem(7);
byte data = UtilInv.GetData(item);
data++;
if (data > 15)
data = 0;
item.setDurability(data);
}
}
}
@EventHandler
public void onInteractWithEvolve(PlayerInteractEvent event)
{
if (!UtilEvent.isAction(event, ActionType.R))
return;
EvoKit newKit = _mobKits.get(getScore(player));
if (!IsLive())
return;
SetKit(player, newKit, false);
if (event.getItem().getType() != Material.STAINED_CLAY)
return;
if (give)
//Make sure it's the 7 slot
if (event.getPlayer().getInventory().getItem(7) != event.getItem())
return;
if (_attemptingEvolve.contains(event.getPlayer()))
return;
_attemptingEvolve.add(event.getPlayer());
}
@EventHandler
public void updateAttemptingEvolve(UpdateEvent event)
{
newKit.upgradeGive(player);
}
if (event.getType() != UpdateType.TICK)
return;
if (!IsLive())
return;
Iterator<Player> iterator = _attemptingEvolve.iterator();
while (iterator.hasNext())
{
Player player = iterator.next();
}
`}
public void increaseScore(Player player)
{
@ -427,7 +447,7 @@ public class Evolution extends SoloGame
if (!_tokens.containsKey(player.getName()))
return;
_tokens.get(player.getName()).Kills++;
_tokens.get(player.getName()).Level++;
}
public int getScore(Player player)
@ -435,7 +455,7 @@ public class Evolution extends SoloGame
if (!IsPlaying(player))
return 0;
return _tokens.get(player.getName()).Kills;
return _tokens.get(player.getName()).Level;
}
private void End()

View File

@ -7,13 +7,25 @@ import java.util.Map.Entry;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
import nautilus.game.arcade.addons.compass.CompassAttemptTargetEvent;
import nautilus.game.arcade.game.games.evolution.EvoKit;
import nautilus.game.arcade.game.games.evolution.Evolution;
import nautilus.game.arcade.game.games.evolution.events.EvolutionAbilityUseEvent;
import nautilus.game.arcade.kit.perks.event.PerkConstructorEvent;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
public class EvolveManager
public class EvolveManager implements Listener
{
/**
* @author Mysticate
@ -29,6 +41,8 @@ public class EvolveManager
{
Host = evolution;
_evolveLocs = evolveLocs;
Bukkit.getPluginManager().registerEvents(this, Host.Manager.getPlugin());
}
private PlatformToken getLocation()
@ -57,8 +71,15 @@ public class EvolveManager
return _data.get(player.getName());
}
public void tick()
@EventHandler
public void tick(UpdateEvent event)
{
if (event.getType() != UpdateType.TICK)
return;
if (!Host.IsLive())
return;
Iterator<Entry<String, EvolveData>> iterator = _data.entrySet().iterator();
while (iterator.hasNext())
{
@ -92,5 +113,73 @@ public class EvolveManager
{
data.end();
}
HandlerList.unregisterAll(this);
}
@EventHandler(priority = EventPriority.MONITOR)
public void onEvolveDamageRecieve(CustomDamageEvent event)
{
if (!Host.IsLive())
return;
if (!(event.GetDamageeEntity() instanceof Player))
return;
if (isEvolving(event.GetDamageePlayer()))
event.SetCancelled("Player is evolving!");
}
@EventHandler(priority = EventPriority.MONITOR)
public void onEvolveDamageDeal(CustomDamageEvent event)
{
if (!Host.IsLive())
return;
if (!(event.GetDamagerEntity(true) instanceof Player))
return;
if (isEvolving(event.GetDamagerPlayer(true)))
event.SetCancelled("Player is evolving!");
}
@EventHandler
public void onEvolveAbility(EvolutionAbilityUseEvent event)
{
if (!Host.IsLive())
return;
if (isEvolving(event.getPlayer()))
event.setCancelled(true);
}
@EventHandler
public void onEvolveCompass(CompassAttemptTargetEvent event)
{
if (!Host.IsLive())
return;
if (isEvolving(event.getTarget()))
event.setCancelled(true);
}
@EventHandler
public void onEvolveConstruct(PerkConstructorEvent event)
{
if (!Host.IsLive())
return;
if (isEvolving(event.getPlayer()))
event.setCancelled(true);
}
@EventHandler
public void onEvolveMove(PlayerMoveEvent event)
{
if (!Host.IsLive())
return;
if (isEvolving(event.getPlayer()))
event.getPlayer().teleport(event.getFrom());
}
}