This commit is contained in:
Mysticate 2015-08-26 20:10:58 -06:00
parent a351a8f1ed
commit f2f6afb6ca
17 changed files with 117 additions and 59 deletions

View File

@ -676,7 +676,7 @@ public enum Achievement
EVOLUTION_NO_DEATHS("Perfect Game", 2000,
new String[]{"Evolution.NoDeaths"},
new String[]{"Win a game withing dying"},
new String[]{"Win a game without dying"},
new int[]{1},
AchievementCategory.EVOLUTION),
@ -706,8 +706,8 @@ public enum Achievement
EVOLUTION_EVOLVEKILL("No Evolve 5 U", 800,
new String[]{"Evolution.EvolveKill"},
new String[]{"Kill 50 people while they", "Are trying to evolve"},
new int[50],
new String[]{"Kill 25 people while they", "Are trying to evolve"},
new int[]{25},
AchievementCategory.EVOLUTION)
;

View File

@ -4,19 +4,19 @@ import java.util.HashMap;
import java.util.HashSet;
import mineplex.core.MiniPlugin;
import mineplex.core.recharge.Recharge;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.core.updater.UpdateType;
import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilMath;
import mineplex.minecraft.game.core.condition.ConditionManager;
import mineplex.core.recharge.Recharge;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
import mineplex.minecraft.game.core.condition.ConditionManager;
import mineplex.minecraft.game.core.damage.DamageManager;
import org.bukkit.ChatColor;
import org.bukkit.Effect;
import org.bukkit.EntityEffect;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
import org.bukkit.entity.Item;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -25,12 +25,8 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.inventory.InventoryPickupItemEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
public class Fire extends MiniPlugin
{
@ -46,9 +42,9 @@ public class Fire extends MiniPlugin
_damageManager = damageManager;
}
public void Add(Item item, LivingEntity owner, double expireTime, double delayTime, double burnTime, int damage, String skillName)
public void Add(Item item, LivingEntity owner, double expireTime, double delayTime, double burnTime, double d, String skillName)
{
_fire.put(item, new FireData(owner, expireTime, delayTime, burnTime, damage, skillName));
_fire.put(item, new FireData(owner, expireTime, delayTime, burnTime, d, skillName));
item.setPickupDelay(0);
}

View File

@ -8,10 +8,10 @@ public class FireData
private long _expireTime;
private long _delayTime;
private double _burnTime;
private int _damage;
private double _damage;
private String _skillName;
public FireData(LivingEntity owner, double expireTime, double delayTime, double burnTime, int damage, String skillName)
public FireData(LivingEntity owner, double expireTime, double delayTime, double burnTime, double damage, String skillName)
{
_owner = owner;
_expireTime = System.currentTimeMillis() + (long)(1000 * expireTime);
@ -31,7 +31,7 @@ public class FireData
return _burnTime;
}
public int GetDamage()
public double GetDamage()
{
return _damage;
}

View File

@ -1,7 +1,6 @@
package nautilus.game.arcade.game.games.evolution;
import java.util.ArrayList;
import java.util.Arrays;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
@ -16,6 +15,7 @@ import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.EntityType;
@ -23,6 +23,8 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
public abstract class EvoKit extends Kit
{
@ -154,7 +156,7 @@ public abstract class EvoKit extends Kit
@SuppressWarnings("deprecation")
@Override
public final void GiveItems(Player player)
public final void GiveItems(final Player player)
{
player.setMaxHealth(_health);
player.setHealth(player.getMaxHealth());
@ -165,11 +167,24 @@ public abstract class EvoKit extends Kit
if (UtilSkull.isPlayerHead(UtilSkull.getSkullData(getEntity())))
{
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM.getId(), (byte) 3, 1, C.cGreen + C.Bold + GetName(), Arrays.asList(""), UtilSkull.getPlayerHeadName(getEntity())));
final ItemStack skull = ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM.getId(), (byte) 3, 1, C.cGreen + C.Bold + GetName());
SkullMeta meta = (SkullMeta) skull.getItemMeta();
meta.setOwner(UtilSkull.getPlayerHeadName(getEntity()));
skull.setItemMeta(meta);
Bukkit.getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable()
{
@Override
public void run()
{
player.getInventory().setItem(8, skull);
}
}, 4);
}
else
{
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM.getId(), (byte) UtilSkull.getSkullData(getEntity()), 1, C.cGreen + C.Bold + GetName()));
player.getInventory().setItem(8, ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM.getId(), (byte) UtilSkull.getSkullData(getEntity()), 1, C.cGreen + C.Bold + GetName()));
}
giveItems(player);

View File

@ -9,7 +9,7 @@ import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilEvent;
import mineplex.core.common.util.UtilEvent.ActionType;
import mineplex.core.common.util.UtilMath;
@ -81,6 +81,7 @@ public class Evolution extends SoloGame
private EvolveManager _evolve;
private ArrayList<EvoKit> _mobKits = new ArrayList<EvoKit>();
private ArrayList<Kit> _kits = new ArrayList<Kit>();
private NautHashMap<String, EvoToken> _tokens = new NautHashMap<String, EvoToken>();
@ -107,12 +108,13 @@ public class Evolution extends SoloGame
_mobKits.add(new KitChicken(manager));
// _mobKits.add(new KitSkeleton(manager));
_kits.add(new KitAbility(Manager));
_kits.add(new KitEvolveSpeed(Manager));
_kits.add(new KitHealth(Manager));
ArrayList<Kit> allKits = new ArrayList<Kit>();
allKits.addAll(_mobKits);
allKits.add(new KitAbility(Manager));
allKits.add(new KitEvolveSpeed(Manager));
allKits.add(new KitHealth(Manager));
allKits.addAll(_kits);
setKits(allKits.toArray(new Kit[0]));
@ -207,7 +209,7 @@ public class Evolution extends SoloGame
}
//Double Kit
@EventHandler(priority = EventPriority.MONITOR)
@EventHandler(priority = EventPriority.HIGH)
public void storeTokens(GameStateChangeEvent event)
{
if (event.GetState() != GameState.Prepare)
@ -215,13 +217,13 @@ public class Evolution extends SoloGame
for (Player player : GetPlayers(true))
{
_tokens.put(player.getName(), new EvoToken(player, GetKit(player)));
_tokens.put(player.getName(), new EvoToken(player, GetKit(player) == null ? _kits.get(0) : GetKit(player)));
upgradeKit(player, false);
}
}
@EventHandler
@EventHandler(priority = EventPriority.MONITOR)
public void showKit(GameStateChangeEvent event)
{
if (event.GetState() != GameState.Live)
@ -261,8 +263,8 @@ public class Evolution extends SoloGame
EvoKit newKit = _mobKits.get(getScore(player));
SetKit(player, newKit, false);
_tokens.get(player.getName()).SupplementKit.ApplyKit(player);
SetKit(player, newKit, false);
if (give)
{
@ -364,7 +366,7 @@ public class Evolution extends SoloGame
if (!_chargingExp.containsKey(event.GetDamageePlayer().getName()))
return;
_chargingExp.put(event.GetDamageePlayer().getName(), (float) Math.max(0, _chargingExp.get(event.GetDamageePlayer().getName()) * .95));
_chargingExp.put(event.GetDamageePlayer().getName(), (float) Math.max(0, _chargingExp.get(event.GetDamageePlayer().getName()) * .92));
}
@EventHandler
@ -404,7 +406,9 @@ public class Evolution extends SoloGame
return;
CombatComponent damager = event.GetLog().GetKiller();
if (damager == null)
return;
if (!damager.IsPlayer())
return;
@ -436,7 +440,7 @@ public class Evolution extends SoloGame
token.LifeKills++;
UtilPlayer.message(player, "");
UtilPlayer.message(player, F.main("Game", F.elem(token.LifeKills + " Kills") + " - " + F.elem(Math.min(1.0, 6.0 - (1.5 * (token.LifeKills - 1))) + " Second ") + "evolve speed" + (token.SupplementKit instanceof KitEvolveSpeed ? C.cGreen + " - 30% (Quick Evolver)" : "")));
UtilPlayer.message(player, F.main("Game", F.elem(token.LifeKills + " Kill" + (token.LifeKills == 1 ? "" : "s")) + " - " + F.elem(Math.max(1.0, 6.0 - (1.5 * (token.LifeKills - 1))) + " Second ") + "evolve speed" + (token.SupplementKit instanceof KitEvolveSpeed ? C.cGreen + " - 30% (Quick Evolver)" : "")));
UtilPlayer.message(player, "");
}
@ -457,11 +461,11 @@ public class Evolution extends SoloGame
Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable()
{
public void run()
{
GetKit(player).ApplyKit(player);
{
if (_tokens.containsKey(player.getName()))
_tokens.get(player.getName()).SupplementKit.ApplyKit(player);
GetKit(player).ApplyKit(player);
}
}, 0);
}
@ -555,6 +559,7 @@ public class Evolution extends SoloGame
if (exp >= .9999F)
{
UtilTextMiddle.display("", "", player);
_chargingExp.remove(player.getName());
@ -570,6 +575,8 @@ public class Evolution extends SoloGame
EvoKit to = (EvoKit) _mobKits.get(token.Level + 1 >= _mobKits.size() ? token.Level : token.Level + 1); //Account for the score increase after evolve
_evolve.addEvolve(Manager.getHologramManager(), player, from, to);
player.playSound(player.getLocation(), Sound.ENDERDRAGON_GROWL, 1, 1);
return true;
}
@ -580,11 +587,11 @@ public class Evolution extends SoloGame
int kills = _tokens.get(player.getName()).LifeKills;
if (UtilBlock.solid(player.getLocation().getBlock().getRelative(BlockFace.DOWN)) && player.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() != Material.DRAGON_EGG)
if (UtilEnt.isGrounded(player) && player.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() != Material.DRAGON_EGG)
{
EvolutionAttemptingTickEvent tickEvent = new EvolutionAttemptingTickEvent(player, (float) Math.min(.022, .012 + (kills <= 0 ? 0 : (.003 * (kills - 1)))));
Bukkit.getPluginManager().callEvent(tickEvent);
_chargingExp.put(player.getName(), (float) Math.min(exp + tickEvent.getProgress(), .9999F));
}
@ -748,7 +755,7 @@ public class Evolution extends SoloGame
@EventHandler
public void ScoreboardUpdate(UpdateEvent event)
{
if (GetState() != GameState.Prepare && !IsLive())
if (!InProgress())
return;
if (event.getType() != UpdateType.FAST)
@ -758,13 +765,20 @@ public class Evolution extends SoloGame
Scoreboard.WriteBlank();
Scoreboard.Write(C.cGold + C.Bold + "First to " + _mobKits.size());
int index = 0;
for (Player player : GetPlayers(true))
{
if (index > 12)
break;
Scoreboard.WriteOrdered("Score", C.cGreen + player.getName(), getScore(player), true);
index++;
}
Scoreboard.WriteBlank();
Scoreboard.Write(C.cGold + C.Bold + "First to " + _mobKits.size());
Scoreboard.Draw();
}
}

View File

@ -25,9 +25,11 @@ public class EvolutionAttemptingTickEvent extends PlayerEvent
private float _progress;
public EvolutionAttemptingTickEvent(Player who, float _progress)
public EvolutionAttemptingTickEvent(Player who, float progress)
{
super(who);
_progress = progress;
}
public float getProgress()

View File

@ -59,8 +59,8 @@ public class EvolveData
private final long _timestamp = System.currentTimeMillis();
private long _endTime = System.currentTimeMillis();
private final long _preEvolve = 1800;
private final long _postEvolve = 5200;
private final long _preEvolve = 2200;
private final long _postEvolve = 4800;
// private EvolveManager _manager;
private HologramManager _holoManager;

View File

@ -19,7 +19,7 @@ public class KitAbility extends Kit
public KitAbility(ArcadeManager manager)
{
super(manager, "Ability Master", KitAvailability.Free, new String[]
super(manager, "Darwinist", KitAvailability.Free, new String[]
{
"Your DNA allows you to chop cooldown times!"
}, new Perk[]

View File

@ -1,5 +1,6 @@
package nautilus.game.arcade.game.games.evolution.kits;
import mineplex.core.common.util.C;
import mineplex.core.itemstack.ItemStackFactory;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.game.games.evolution.kits.perks.PerkEvolveSpeedEVO;
@ -21,7 +22,7 @@ public class KitEvolveSpeed extends Kit
{
super(manager, "Quick Evolver", KitAvailability.Gem, 4000, new String[]
{
"You always had dreams of growing up..."
C.cGray + "You always had dreams of growing up..."
}, new Perk[]
{
new PerkEvolveSpeedEVO()

View File

@ -2,16 +2,20 @@ package nautilus.game.arcade.game.games.evolution.kits;
import mineplex.core.achievement.Achievement;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.perks.PerkKillHealth;
import nautilus.game.arcade.kit.perks.PerkDummy;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
public class KitHealth extends Kit
{
@ -26,10 +30,10 @@ public class KitHealth extends Kit
"Harvest health every day..."
}, new Perk[]
{
new PerkKillHealth("Health Harvester", new String[]
new PerkDummy("Health Haravester", new String[]
{
"You regain " + F.elem("100% Health") + " health on kill."
}, 1000, true)
"Recieve " + F.elem("100%") + " health on kill."
})
}, EntityType.ZOMBIE, ItemStackFactory.Instance.CreateStack(Material.BLAZE_POWDER));
setAchievementRequirements(new Achievement[]
@ -50,4 +54,26 @@ public class KitHealth extends Kit
{
}
@EventHandler(priority = EventPriority.HIGH)
public void onKill(CombatDeathEvent event)
{
if (!Manager.GetGame().IsLive())
return;
Player killer = UtilPlayer.searchExact(event.GetLog().GetPlayer().GetName());
if (killer == null || !killer.isOnline())
return;
if (!Manager.IsAlive(killer))
return;
if (UtilPlayer.isSpectator(killer))
return;
if (!HasKit(killer))
return;
killer.setHealth(killer.getMaxHealth());
}
}

View File

@ -16,7 +16,7 @@ public class PerkCooldownEVO extends Perk
{
super("Cooldown", new String[]
{
"All ability cooldowns are reduced by" + F.elem("1/3") + "."
"All ability cooldowns are reduced by " + F.elem("33%") + "."
});
}

View File

@ -40,7 +40,7 @@ public class KitChicken extends EvoKit
new Perk[]
{
new PerkConstructor("Egg Pouch", 2.0, 3, Material.EGG,
"Egg Launcher Ammo", false), new PerkDoubleJumpEVO("Double Jump", 0.9, 0.9, false)
"Egg Launcher Ammo", false), new PerkDoubleJumpEVO("Double Jump", 0.4, 0.9, false)
}, EntityType.CHICKEN);
}

View File

@ -19,6 +19,7 @@ import nautilus.game.arcade.kit.Perk;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@ -71,13 +72,14 @@ public class PerkBounceEVO extends Perk
if (!Recharge.Instance.use(player, useEvent.getAbility(), useEvent.getCooldown(), true, true))
return;
UtilAction.velocity(player, player.getLocation().getDirection(), 1.6, false, 0, 0.5, 1.6, true);
UtilAction.velocity(player, player.getLocation().getDirection(), 1.6, false, 0, 0.4, .4, true);
//Record
_live.put(player, System.currentTimeMillis());
//Inform
UtilPlayer.message(player, F.main("Game", "You used " + F.skill(GetName()) + "."));
player.playSound(player.getLocation(), Sound.SLIME_WALK, 1, 1);
}
@EventHandler
@ -149,6 +151,8 @@ public class PerkBounceEVO extends Perk
//Inform
UtilPlayer.message(damager, F.main("Game", "You hit " + F.name(UtilEnt.getName(damagee)) + " with " + F.skill(GetName()) + "."));
UtilPlayer.message(damagee, F.main("Game", F.name(damager.getName()) + " hit you with " + F.skill(GetName()) + "."));
damager.playSound(damager.getLocation(), Sound.SLIME_ATTACK, 1, 1);
}
@EventHandler

View File

@ -118,7 +118,7 @@ public class PerkFlamingSwordEVO extends Perk
{
//Fire
Item fire = player.getWorld().dropItem(player.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.BLAZE_POWDER));
Manager.GetFire().Add(fire, player, 0.7, 0, 0.5, 1, "Inferno");
Manager.GetFire().Add(fire, player, 0.7, 0, 0.5, 1.5, "Inferno");
fire.teleport(player.getEyeLocation());
double x = 0.07 - (UtilMath.r(14)/100d);

View File

@ -80,7 +80,7 @@ public class PerkSulphurBombEVO extends Perk implements IThrown
Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true,
null, 1f, 1f,
null, 1, UpdateType.SLOW,
0.5f);
1f);
//Inform
UtilPlayer.message(player, F.main("Game", "You used " + F.skill(GetName()) + "."));

View File

@ -69,7 +69,7 @@ public class PerkWebEVO extends Perk implements IThrown
Item ent = player.getWorld().dropItem(player.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.WEB));
UtilAction.velocity(ent, player.getLocation().getDirection(), 0.8, false, 0, 0.2, 10, false);
Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, false, 0.5f);
Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, false, 1f);
}
@Override
@ -81,7 +81,7 @@ public class PerkWebEVO extends Perk implements IThrown
{
if (Manager.GetGame().IsAlive((Player)target))
{
Manager.GetDamage().NewDamageEvent(target, null, null, DamageCause.CUSTOM, 4, false, false, false, "Web Shot", "Webbed Net");
Manager.GetDamage().NewDamageEvent(target, data.GetThrower(), null, DamageCause.CUSTOM, 8, false, false, false, "Web Shot", "Webbed Net");
target.playEffect(EntityEffect.HURT);
}
else

View File

@ -39,7 +39,7 @@ public class NoMeleeTracker extends StatTracker<Evolution>
if (!getGame().IsAlive(player))
return;
if (event.GetReason().equalsIgnoreCase("Attack"))
if (event.GetReason() == null || event.GetReason().equalsIgnoreCase("Attack"))
{
if (!_out.contains(player.getName()))
_out.add(player.getName());