From d9142ac33f5ca9c13cb5ae80d6b1851acad8963d Mon Sep 17 00:00:00 2001 From: Cheese Date: Mon, 14 Sep 2015 12:34:55 +1000 Subject: [PATCH 01/12] smash balance --- .../mineplex/core/common/util/UtilEnt.java | 13 ++ .../classcombat/Skill/Mage/StaticLazer.java | 15 +-- .../minecraft/game/core/fire/Fire.java | 4 +- .../game/games/smash/kits/KitChicken.java | 4 +- .../game/games/smash/kits/KitEnderman.java | 2 + .../game/games/smash/kits/KitGolem.java | 2 +- .../game/games/smash/kits/KitMagmaCube.java | 2 +- .../arcade/game/games/smash/kits/KitPig.java | 2 +- .../games/smash/kits/KitSkeletalHorse.java | 4 +- .../game/games/smash/kits/KitSkeleton.java | 6 +- .../game/games/smash/kits/KitSlime.java | 4 +- .../game/games/smash/kits/KitSnowman.java | 4 +- .../game/games/smash/kits/KitSpider.java | 2 +- .../arcade/game/games/smash/kits/KitWolf.java | 2 +- .../game/games/smash/kits/KitZombie.java | 5 +- .../smash/perks/PerkEndermanTeleport.java | 118 ++++++++++++++++++ .../game/arcade/kit/perks/PerkArcticAura.java | 11 -- .../game/arcade/kit/perks/PerkBatForm.java | 5 +- .../game/arcade/kit/perks/PerkBlink.java | 3 + .../game/arcade/kit/perks/PerkBlockToss.java | 7 ++ .../arcade/kit/perks/PerkBoneExplosion.java | 2 +- .../kit/perks/PerkCreeperElectricity.java | 2 + .../arcade/kit/perks/PerkDeadlyBones.java | 2 +- .../arcade/kit/perks/PerkDeathsGrasp.java | 5 +- .../game/arcade/kit/perks/PerkFirefly.java | 45 ++++--- .../game/arcade/kit/perks/PerkFlap.java | 2 +- .../game/arcade/kit/perks/PerkIcePath.java | 4 +- .../game/arcade/kit/perks/PerkInferno.java | 5 +- .../game/arcade/kit/perks/PerkInkBlast.java | 10 +- .../game/arcade/kit/perks/PerkLazer.java | 4 +- .../game/arcade/kit/perks/PerkNeedler.java | 2 +- .../arcade/kit/perks/PerkPigBaconBomb.java | 2 +- .../arcade/kit/perks/PerkPigBaconBounce.java | 2 +- .../arcade/kit/perks/PerkSeismicSlam.java | 4 +- .../game/arcade/kit/perks/PerkStormSquid.java | 2 +- .../arcade/kit/perks/PerkWitherImage.java | 5 +- .../arcade/kit/perks/PerkWitherSkull.java | 4 +- .../game/arcade/kit/perks/PerkWolf.java | 4 +- .../arcade/kit/perks/data/FireflyData.java | 1 - 39 files changed, 240 insertions(+), 82 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkEndermanTeleport.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEnt.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEnt.java index 8b489c952..80f96ae56 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEnt.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilEnt.java @@ -434,10 +434,23 @@ public class UtilEnt LivingEntity ent = (LivingEntity)cur; + //Feet double offset = UtilMath.offset(loc, ent.getLocation()); if (offset < dR) + { ents.put(ent, 1 - (offset/dR)); + continue; + } + + //Eyes + offset = UtilMath.offset(loc, ent.getEyeLocation()); + + if (offset < dR) + { + ents.put(ent, 1 - (offset/dR)); + continue; + } } return ents; diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/StaticLazer.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/StaticLazer.java index 7765eb633..f3b1b406a 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/StaticLazer.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/StaticLazer.java @@ -36,7 +36,7 @@ public class StaticLazer extends SkillChargeSword { super(skills, name, classType, skillType, cost, maxLevel, 0.012f, 0.004f, - 12000, -1000, true, true, + 16000, -1000, true, true, false, true); SetDesc(new String[] @@ -48,24 +48,25 @@ public class StaticLazer extends SkillChargeSword "Taking damage cancels charge.", "", "Deals #6#1 damage and travels up to", - "#20#10 blocks.", + "#20#10 blocks, but loses 1 damage", + "per 20 blocks travelled.", }); _fireOnFull = false; - _energyPerCharge = 1.2f; + _energyPerCharge = 2.4f; setAchievementSkill(true); } @Override public String GetRechargeString() { - return "Recharge: " + "#12#-1 Seconds"; + return "Recharge: " + "#16#-1 Seconds"; } @Override public String GetEnergyString() { - return "Energy: " + "24 per Second"; + return "Energy: " + "48 per Second"; } @Override @@ -82,7 +83,7 @@ public class StaticLazer extends SkillChargeSword Location newTarget = player.getEyeLocation().add(player.getLocation().getDirection().multiply(curRange)); //Hit Player - HashMap hits = UtilEnt.getInRadius(newTarget, 2); + HashMap hits = UtilEnt.getInRadius(newTarget, 1.25); hits.remove(player); if (!hits.isEmpty()) break; @@ -116,7 +117,7 @@ public class StaticLazer extends SkillChargeSword //Damage Event Factory.Damage().NewDamageEvent(other, player, null, - DamageCause.CUSTOM, 6 + level * charge, true, true, false, + DamageCause.CUSTOM, 2 + ((4 + level) * charge) - (curRange * 0.05), true, true, false, player.getName(), GetName()); } diff --git a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/fire/Fire.java b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/fire/Fire.java index 1cc41f938..da25cb3c3 100644 --- a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/fire/Fire.java +++ b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/fire/Fire.java @@ -42,9 +42,9 @@ public class Fire extends MiniPlugin _damageManager = damageManager; } - public void Add(Item item, LivingEntity owner, double expireTime, double delayTime, double burnTime, double d, String skillName) + public void Add(Item item, LivingEntity owner, double expireTime, double delayTime, double burnTime, double damage, String skillName) { - _fire.put(item, new FireData(owner, expireTime, delayTime, burnTime, d, skillName)); + _fire.put(item, new FireData(owner, expireTime, delayTime, burnTime, damage, skillName)); item.setPickupDelay(0); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitChicken.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitChicken.java index 91f27649c..bb4b110f9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitChicken.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitChicken.java @@ -33,7 +33,7 @@ public class KitChicken extends SmashKit new Perk[] { - new PerkSmashStats(4, 2.0, 0.1, 1.5), + new PerkSmashStats(4, 2.0, 0.15, 2), new PerkFlap(0.8, 0.8, false), new PerkEggGun(), new PerkChickenRocket() @@ -89,7 +89,7 @@ public class KitChicken extends SmashKit ChatColor.RESET + "while also gaining permanant flight.", })); - player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.LEATHER_CHESTPLATE)); + player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_CHESTPLATE)); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitEnderman.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitEnderman.java index 21222ca52..dacd9344c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitEnderman.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitEnderman.java @@ -21,6 +21,7 @@ import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.Game.GameState; +import nautilus.game.arcade.game.games.smash.perks.PerkEndermanTeleport; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.SmashKit; @@ -50,6 +51,7 @@ public class KitEnderman extends SmashKit new PerkDoubleJump("Double Jump", 0.9, 0.9, false), new PerkBlink("Blink", 16, 6000), new PerkBlockToss(), + new PerkEndermanTeleport(), new PerkEndermanDragon() }, EntityType.ENDERMAN, diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitGolem.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitGolem.java index cbab11fa3..88549d5da 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitGolem.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitGolem.java @@ -30,7 +30,7 @@ public class KitGolem extends SmashKit new Perk[] { - new PerkSmashStats(7, 1.0, 0.25, 8), + new PerkSmashStats(7, 1.0, 0.2, 8), new PerkDoubleJump("Double Jump", 0.9, 0.9, false), new PerkSlow(0), new PerkFissure(), diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitMagmaCube.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitMagmaCube.java index 98af5d8fa..4fca31e49 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitMagmaCube.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitMagmaCube.java @@ -30,7 +30,7 @@ public class KitMagmaCube extends SmashKit new Perk[] { - new PerkSmashStats(5, 1.75, 0.4, 5), + new PerkSmashStats(5, 1.75, 0.35, 5), new PerkDoubleJump("Double Jump", 1.2, 1, false), new PerkMagmaBoost(), new PerkMagmaBlast(), diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitPig.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitPig.java index 9dac8b5b3..755cfa69d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitPig.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitPig.java @@ -37,7 +37,7 @@ public class KitPig extends SmashKit new Perk[] { - new PerkSmashStats(5, 1.7, 0.25, 5), + new PerkSmashStats(5, 1.5, 0.25, 5), new PerkDoubleJump("Double Jump", 0.9, 0.9, false), new PerkPigBaconBounce(), new PerkPigBaconBomb(), diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkeletalHorse.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkeletalHorse.java index 9fb2f108b..db9710e9c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkeletalHorse.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkeletalHorse.java @@ -36,7 +36,7 @@ public class KitSkeletalHorse extends SmashKit new Perk[] { - new PerkSmashStats(6, 1.4, 0.35, 6), + new PerkSmashStats(6, 1.4, 0.3, 6), new PerkDoubleJump("Double Jump", 1, 1, false), new PerkHorseKick(), new PerkBoneRush(), @@ -45,7 +45,7 @@ public class KitSkeletalHorse extends SmashKit }, EntityType.HORSE, new ItemStack(Material.BONE), - "Bone Storm", 24000, Sound.HORSE_SKELETON_DEATH); + "Bone Storm", 20000, Sound.HORSE_SKELETON_DEATH); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkeleton.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkeleton.java index 8acafe07d..51ae9b75e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkeleton.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkeleton.java @@ -37,10 +37,10 @@ public class KitSkeleton extends SmashKit new Perk[] { - new PerkSmashStats(5, 1.25, 0.20, 6), + new PerkSmashStats(5, 1.25, 0.15, 6), new PerkDoubleJump("Double Jump", 0.9, 0.9, false), - new PerkFletcher(2, 4, false), - new PerkKnockbackArrow(1.75), + new PerkFletcher(3, 3, false), + new PerkKnockbackArrow(1.5), new PerkBoneExplosion(), new PerkRopedArrow("Roped Arrow", 1, 5000), new PerkBarrage(5, 300, true, false, true), diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSlime.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSlime.java index 2d319f847..3e40fcc29 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSlime.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSlime.java @@ -46,7 +46,7 @@ public class KitSlime extends SmashKit new Perk[] { - new PerkSmashStats(6, 1.75, 0.35, 3), + new PerkSmashStats(6, 1.75, 0.5, 3), new PerkDoubleJump("Double Jump", 1.2, 1, false), new PerkSlimeSlam(), new PerkSlimeRocket(), @@ -142,7 +142,7 @@ public class KitSlime extends SmashKit player.setExp(0.99f); - Manager.GetCondition().Factory().Speed("Giga Slime", player, player, 20, 1, false, false, false); + Manager.GetCondition().Factory().Speed("Giga Slime", player, player, 20, 2, false, false, false); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSnowman.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSnowman.java index 68eb1004d..4771d3865 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSnowman.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSnowman.java @@ -92,8 +92,8 @@ public class KitSnowman extends SmashKit new String[] { ChatColor.RESET + "Creates a field of snow around you", - ChatColor.RESET + "granting 150% damage to opponents", - ChatColor.RESET + "who are standing on it.", + ChatColor.RESET + "granting +1 damage and 60% knockback", + ChatColor.RESET + "to opponents standing on it.", ChatColor.RESET + "", ChatColor.RESET + "Your aura shrinks on low energy.", })); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSpider.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSpider.java index 2dd3c0108..89cfb0379 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSpider.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSpider.java @@ -34,7 +34,7 @@ public class KitSpider extends SmashKit new Perk[] { - new PerkSmashStats(7, 1.5, 0.3, 6), + new PerkSmashStats(6, 1.5, 0.25, 6), new PerkSpiderLeap(), new PerkNeedler(), new PerkWebShot(), diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitWolf.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitWolf.java index 6ec3cf4b0..71e08c798 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitWolf.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitWolf.java @@ -34,7 +34,7 @@ public class KitWolf extends SmashKit new Perk[] { - new PerkSmashStats(5, 1.6, 0.3, 4.5), + new PerkSmashStats(5, 1.6, 0.25, 4.5), new PerkDoubleJump("Wolf Jump", 1.0, 1.0, true), new PerkWolf(), }, diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitZombie.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitZombie.java index 00e5e30fb..820924b25 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitZombie.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitZombie.java @@ -37,7 +37,7 @@ public class KitZombie extends SmashKit new Perk[] { - new PerkSmashStats(6, 1.25, 0.3, 4.5), + new PerkSmashStats(6, 1.25, 0.25, 5), new PerkDoubleJump("Double Jump", 0.9, 0.9, false), new PerkFletcher(2, 2, false), new PerkKnockbackArrow(1.5), @@ -66,7 +66,7 @@ public class KitZombie extends SmashKit })); player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW, (byte)0, 1, - C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Deaths Grasp", + C.cYellow + C.Bold + "Left-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Deaths Grasp", new String[] { ChatColor.RESET + "Leap forwards. If you collide with an ", @@ -99,6 +99,7 @@ public class KitZombie extends SmashKit player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_CHESTPLATE)); player.getInventory().setLeggings(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_LEGGINGS)); + player.getInventory().setBoots(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_BOOTS)); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkEndermanTeleport.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkEndermanTeleport.java new file mode 100644 index 000000000..4cf3bb8ac --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkEndermanTeleport.java @@ -0,0 +1,118 @@ +package nautilus.game.arcade.game.games.smash.perks; + +import java.util.HashMap; + +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerQuitEvent; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilTextMiddle; +import mineplex.core.common.util.UtilParticle.ParticleType; +import mineplex.core.common.util.UtilParticle.ViewDist; +import mineplex.core.recharge.Recharge; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import nautilus.game.arcade.kit.SmashPerk; + +public class PerkEndermanTeleport extends SmashPerk +{ + private HashMap _target = new HashMap(); + private HashMap _charge = new HashMap(); + + public PerkEndermanTeleport() + { + super("Teleport", new String[] + { + C.cYellow + "Hold Sneak" + C.cGray + " to " + C.cGreen + "Teleport" + }); + } + + @EventHandler + public void update(UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + return; + + for (Player player : UtilServer.getPlayers()) + { + if (!Kit.HasKit(player)) + continue; + + if (!player.isSneaking() || !Recharge.Instance.usable(player, GetName())) + { + _target.remove(player); + _charge.remove(player); + continue; + } + + Block block = player.getTargetBlock(null, 200); + + if (!_target.containsKey(player) || !_charge.containsKey(player)) + { + if (block == null || block.getType() == Material.AIR) + continue; + + _target.put(player, block); + _charge.put(player, 0f); + } + + //Invalid Block - End + if (block == null || block.getType() == Material.AIR) + { + _target.remove(player); + _charge.remove(player); + } + //Same Block - Increase Charge + else if (block.equals(_target.get(player))) + { + _charge.put(player, _charge.get(player) + 0.015f); + + UtilTextMiddle.display(null, UtilTextMiddle.progress(_charge.get(player)), 0, 10, 10, player); + + if (_charge.get(player) >= 1f) + { + UtilTextMiddle.display(null, C.cGreen + "Teleported", 0, 10, 10, player); + Recharge.Instance.useForce(player, GetName(), 5000); + + while (block.getRelative(BlockFace.UP).getType() != Material.AIR) + { + block = block.getRelative(BlockFace.UP); + } + + player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 0.5f); + player.teleport(block.getLocation().add(0.5, 1, 0.5)); + player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 0.5f); + + UtilParticle.PlayParticle(ParticleType.WITCH_MAGIC, player.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0.1f, 100, ViewDist.LONG, UtilServer.getPlayers()); + } + else + { + player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 1f + _charge.get(player)); + UtilParticle.PlayParticle(ParticleType.WITCH_MAGIC, player.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0.05f, 10, ViewDist.LONG, UtilServer.getPlayers()); + } + } + //New Block - Reset + else + { + _target.put(player, block); + _charge.put(player, 0f); + } + } + } + + @EventHandler + public void clean(PlayerQuitEvent event) + { + _target.remove(event.getPlayer()); + _charge.remove(event.getPlayer()); + } +} + + diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkArcticAura.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkArcticAura.java index cd84bcc8f..a6019a40b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkArcticAura.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkArcticAura.java @@ -47,17 +47,6 @@ public class PerkArcticAura extends Perk //Snow Manager.GetBlockRestore().Snow(block, (byte)1, (byte)1, (long)(duration * (1 + blocks.get(block))), 250, 0); } - - for (Player other : Manager.GetGame().GetPlayers(true)) - { - if (other.equals(player)) - continue; - - if (UtilMath.offset(player, other) > range) - continue; - - Manager.GetCondition().Factory().Slow("Aura Slow", other, player, 0.9, 0, false, false, false, false); - } } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBatForm.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBatForm.java index e5a3216e0..cdbe1d699 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBatForm.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBatForm.java @@ -166,7 +166,7 @@ public class PerkBatForm extends SmashPerk } //Move - data.Location.add(data.Direction.clone().multiply(0.75)); + data.Location.add(data.Direction.clone().multiply(1)); //Effect UtilParticle.PlayParticle(ParticleType.LARGE_EXPLODE, data.Location, 0, 0, 0, 0, 1, @@ -186,6 +186,9 @@ public class PerkBatForm extends SmashPerk HashMap targets = UtilEnt.getInRadius(data.Location, 10); for (LivingEntity cur : targets.keySet()) { + if (cur.equals(data.Shooter)) + continue; + Manager.GetDamage().NewDamageEvent(cur, data.Shooter, null, DamageCause.CUSTOM, 12 * targets.get(cur) + 0.5, true, false, false, data.Shooter.getName(), GetName()); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlink.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlink.java index 554fe76a3..8d6e783c8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlink.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlink.java @@ -3,6 +3,7 @@ package nautilus.game.arcade.kit.perks; import org.bukkit.Color; import org.bukkit.Effect; import org.bukkit.Location; +import org.bukkit.Sound; import org.bukkit.FireworkEffect.Type; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -104,7 +105,9 @@ public class PerkBlink extends SmashPerk //Firework UtilFirework.playFirework(player.getEyeLocation(), Type.BALL, Color.BLACK, false, false); + player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 1f); player.teleport(loc); + player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 1f); //Firework UtilFirework.playFirework(player.getEyeLocation(), Type.BALL, Color.BLACK, false, false); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlockToss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlockToss.java index c65127338..c3c74bb22 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlockToss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlockToss.java @@ -15,6 +15,7 @@ import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.projectile.IThrown; import mineplex.core.projectile.ProjectileUser; +import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent; @@ -74,6 +75,9 @@ public class PerkBlockToss extends SmashPerk implements IThrown if (UtilBlock.usable(grab)) return; + + if (!Recharge.Instance.usable(player, GetName())) + return; if (!UtilBlock.airFoliage(grab.getRelative(BlockFace.UP)) || Manager.GetBlockRestore().Contains(grab.getRelative(BlockFace.UP))) { @@ -126,6 +130,9 @@ public class PerkBlockToss extends SmashPerk implements IThrown for (Player cur : throwSet) { + Recharge.Instance.recharge(cur, GetName()); + Recharge.Instance.use(cur, GetName(), 2000, false, true); + BlockTossData data = _hold.remove(cur); FallingBlock block = cur.getWorld().spawnFallingBlock(cur.getEyeLocation().add(cur.getLocation().getDirection()), data.Type, data.Data); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBoneExplosion.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBoneExplosion.java index 12c099961..5a388d7ae 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBoneExplosion.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBoneExplosion.java @@ -57,7 +57,7 @@ public class PerkBoneExplosion extends SmashPerk if (!Recharge.Instance.use(player, GetName(), 10000, true, true)) return; - HashMap nearby = UtilPlayer.getInRadius(player.getLocation(), 10); + HashMap nearby = UtilPlayer.getInRadius(player.getLocation(), 7); for (Player other : nearby.keySet()) { if (player.equals(other)) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperElectricity.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperElectricity.java index d2f7f5a6a..1c289e378 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperElectricity.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperElectricity.java @@ -55,6 +55,8 @@ public class PerkCreeperElectricity extends Perk SetPowered(damagee, true); + Manager.GetCondition().Factory().Speed(GetName(), damagee, damagee, 4, 1, false, false, false); + //Sound damagee.getWorld().playSound(damagee.getLocation(), Sound.CREEPER_HISS, 3f, 1.25f); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDeadlyBones.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDeadlyBones.java index d8ea85b93..5ff154476 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDeadlyBones.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDeadlyBones.java @@ -106,6 +106,6 @@ public class PerkDeadlyBones extends SmashPerk if (event.GetReason() == null || !event.GetReason().contains(GetName())) return; - event.AddKnockback(GetName(), 3); + event.AddKnockback(GetName(), 2.5); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDeathsGrasp.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDeathsGrasp.java index 51883a447..2730c825b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDeathsGrasp.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDeathsGrasp.java @@ -44,7 +44,7 @@ public class PerkDeathsGrasp extends Perk { super("Deaths Grasp", new String[] { - C.cYellow + "Right-Click" + C.cGray + " with Axe to use " + C.cGreen + "Deaths Grasp", + C.cYellow + "Left-Click" + C.cGray + " with Bow to use " + C.cGreen + "Deaths Grasp", C.cGray + "+100% Arrow Damage to enemies thrown by Deaths Grasp" }); } @@ -143,7 +143,7 @@ public class PerkDeathsGrasp extends Perk DamageCause.CUSTOM, 6, false, true, false, damager.getName(), GetName()); - UtilAction.velocity(damagee, UtilAlg.getTrajectory(damagee, damager), 1.8, false, 0, 1, 1.8, true); + UtilAction.velocity(damagee, UtilAlg.getTrajectory2d(damagee, damager), 1.6, false, 0, 1.2, 1.8, true); UtilAction.zeroVelocity(damager); @@ -156,6 +156,7 @@ public class PerkDeathsGrasp extends Perk UtilPlayer.message(damagee, F.main("Game", F.name(damager.getName()) + " hit you with " + F.skill(GetName()) + ".")); Recharge.Instance.recharge(damager, GetName()); + Recharge.Instance.use(damager, GetName(), 2000, true, true); } @EventHandler(priority = EventPriority.HIGH) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkFirefly.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkFirefly.java index 2907433d2..5b8a4d23a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkFirefly.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkFirefly.java @@ -20,6 +20,10 @@ import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilFirework; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilParticle.ViewDist; +import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilTime; import mineplex.core.recharge.Recharge; @@ -89,7 +93,7 @@ public class PerkFirefly extends SmashPerk if (event.getType() != UpdateType.TICK) return; - _tick = (_tick + 1)%3; + _tick = (_tick + 1)%1000; Iterator dataIterator = _data.iterator(); @@ -106,26 +110,35 @@ public class PerkFirefly extends SmashPerk data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.2f, 0.6f); data.Location = data.Player.getLocation(); - if (_tick == 0) - { - //Firework - UtilFirework.playFirework(data.Player.getLocation().add(0, 0.6, 0), Type.BURST, Color.ORANGE, false, false); - } + //Sound and Effect + UtilParticle.PlayParticle(ParticleType.FIREWORKS_SPARK, data.Player.getLocation().add(0, 1, 0), 0.6f, 0.6f, 0.6f, 0, 10, ViewDist.LONG, UtilServer.getPlayers()); + float progress = (float)(System.currentTimeMillis()-data.Time)/1500f; + + data.Player.getWorld().playSound(data.Player.getLocation(), Sound.BLAZE_BREATH, 0.5f, 1f + progress); } //Velocity - else if (!UtilTime.elapsed(data.Time, 2500) || superActive) + else if (!UtilTime.elapsed(data.Time, 2750) || superActive) { UtilAction.velocity(data.Player, data.Player.getLocation().getDirection().multiply(superActive ? 0.9 : 0.7).add(new Vector(0,0.15,0))); data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.6f, 1.2f); - if (_tick == 0) + //Sound and Effect + if (!isSuperActive(data.Player)) { - //Firework - UtilFirework.playFirework(data.Player.getLocation().add(0, 0.6, 0), isSuperActive(data.Player) ? Type.BALL : Type.BURST, Color.RED, false, superActive); - } - - for (Player other : UtilPlayer.getNearby(data.Player.getLocation(), isSuperActive(data.Player) ? 6 : 4)) + UtilParticle.PlayParticle(ParticleType.FLAME, data.Player.getLocation().add(0, 1, 0), 0.6f, 0.6f, 0.6f, 0, 40, ViewDist.LONG, UtilServer.getPlayers()); + + data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.5f, 1.25f); + } + else + { + UtilParticle.PlayParticle(ParticleType.FLAME, data.Player.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 60, ViewDist.LONG, UtilServer.getPlayers()); + UtilParticle.PlayParticle(ParticleType.LAVA, data.Player.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 40, ViewDist.LONG, UtilServer.getPlayers()); + + data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.75f, 0.75f); + } + + for (Player other : UtilPlayer.getNearby(data.Player.getLocation(), isSuperActive(data.Player) ? 7 : 4)) { if (other.equals(data.Player)) continue; @@ -136,10 +149,9 @@ public class PerkFirefly extends SmashPerk other.playEffect(EntityEffect.HURT); if (_tick == 0) - if (!data.Targets.contains(other)) + { + if (Recharge.Instance.use(other, GetName() + " hit by " + data.Player.getName(), 2000, false, false)) { - data.Targets.add(other); - //Damage Event Manager.GetDamage().NewDamageEvent(other, data.Player, null, DamageCause.CUSTOM, 10, true, true, false, @@ -147,6 +159,7 @@ public class PerkFirefly extends SmashPerk UtilPlayer.message(other, F.main("Game", F.elem(Manager.GetColor(data.Player) + data.Player.getName()) + " hit you with " + F.elem(GetName()) + ".")); } + } } } else diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkFlap.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkFlap.java index 23056492c..490e1e79a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkFlap.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkFlap.java @@ -93,7 +93,7 @@ public class PerkFlap extends SmashPerk if (UtilEnt.isGrounded(player) || UtilBlock.solid(player.getLocation().getBlock().getRelative(BlockFace.DOWN))) { - player.setExp(0.999f); + player.setExp(Math.min(0.9999f, player.getExp() + 0.03f)); player.setAllowFlight(true); } else if (Recharge.Instance.usable(player, GetName()) && player.getExp() > 0) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkIcePath.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkIcePath.java index bc1bbd109..bfea95ac1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkIcePath.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkIcePath.java @@ -60,8 +60,8 @@ public class PerkIcePath extends Perk if (!Recharge.Instance.use(player, GetName(), 12000, true, true)) return; - UtilAction.zeroVelocity(player); - player.teleport(player.getLocation().add(0, 0.75, 0)); + player.teleport(player.getLocation().add(0, 1, 0)); + UtilAction.velocity(player, new Vector(0,0.5,0)); _data.add(new IcePathData(player)); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInferno.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInferno.java index 739a9afc8..3d04b54bd 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInferno.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInferno.java @@ -46,7 +46,8 @@ public class PerkInferno extends SmashPerk if (!Kit.HasKit(player)) continue; - player.setExp((float) Math.min(0.999, player.getExp()+0.015)); + if (!player.isBlocking()) + player.setExp((float) Math.min(0.999, player.getExp()+0.025)); } } @@ -105,7 +106,7 @@ public class PerkInferno extends SmashPerk //Fire Item fire = cur.getWorld().dropItem(cur.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.BLAZE_POWDER)); - Manager.GetFire().Add(fire, cur, 0.7, 0, 0.5, 1, "Inferno"); + Manager.GetFire().Add(fire, cur, 0.7, 0, 0.5, 1.25, "Inferno"); fire.teleport(cur.getEyeLocation()); double x = 0.07 - (UtilMath.r(14)/100d); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java index 725b1ab07..f86ea7607 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java @@ -18,7 +18,11 @@ import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilInv; +import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilParticle.ParticleType; +import mineplex.core.common.util.UtilParticle.ViewDist; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.projectile.IThrown; import mineplex.core.projectile.ProjectileUser; @@ -71,7 +75,7 @@ public class PerkInkBlast extends SmashPerk implements IThrown UtilInv.Update(player); - for (int i=0 ; i<7 ; i++) + for (int i=0 ; i<9 ; i++) { org.bukkit.entity.Item ent = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(Material.INK_SACK)); @@ -110,8 +114,8 @@ public class PerkInkBlast extends SmashPerk implements IThrown Manager.GetDamage().NewDamageEvent(target, data.GetThrower(), null, DamageCause.PROJECTILE, 3, true, true, false, UtilEnt.getName(data.GetThrower()), GetName()); - - Manager.GetCondition().Factory().Blind(GetName(), target, data.GetThrower(), 1.5, 0, false, false, false); + + UtilParticle.PlayParticle(ParticleType.EXPLODE, target.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 12, ViewDist.LONG, UtilServer.getPlayers()); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkLazer.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkLazer.java index e1cf6acf9..34fdec4b0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkLazer.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkLazer.java @@ -151,7 +151,7 @@ public class PerkLazer extends Perk if (other.equals(player)) continue; - if (UtilMath.offset(newTarget, other.getLocation().add(0, 1, 0)) < 3) + if (UtilMath.offset(newTarget, other.getLocation().add(0, 1, 0)) < 2.5) { hitPlayer = true; break; @@ -189,7 +189,7 @@ public class PerkLazer extends Perk continue; //Do from center - if (UtilMath.offset(target, other.getLocation().add(0, 1, 0)) < 3.5) + if (UtilMath.offset(target, other.getLocation().add(0, 1, 0)) < 3) { //Damage Event Manager.GetDamage().NewDamageEvent(other, player, null, diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkNeedler.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkNeedler.java index 3844440ba..4c39ea23d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkNeedler.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkNeedler.java @@ -57,7 +57,7 @@ public class PerkNeedler extends SmashPerk if (!Kit.HasKit(player)) return; - if (!Recharge.Instance.use(player, GetName(), isSuperActive(player) ? 600 : 1800, !isSuperActive(player), !isSuperActive(player))) + if (!Recharge.Instance.use(player, GetName(), isSuperActive(player) ? 600 : 2000, !isSuperActive(player), !isSuperActive(player))) return; _active.put(player, 8); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigBaconBomb.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigBaconBomb.java index c4d4511c2..ba3a225c8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigBaconBomb.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigBaconBomb.java @@ -69,7 +69,7 @@ public class PerkPigBaconBomb extends SmashPerk if (!Kit.HasKit(player)) return; - float energy = 0.40f; + float energy = 0.30f; DisguiseBase disguise = Manager.GetDisguise().getDisguise(player); if (disguise != null && disguise instanceof DisguisePigZombie) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigBaconBounce.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigBaconBounce.java index 934899998..cff63ed81 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigBaconBounce.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPigBaconBounce.java @@ -89,7 +89,7 @@ public class PerkPigBaconBounce extends SmashPerk implements IThrown player.setExp(Math.max(0f, player.getExp() - energy)); //Launch - Item ent = player.getWorld().dropItem(player.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.PORK)); + Item ent = player.getWorld().dropItem(player.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.PORK, (byte) 0, 1, "Bacon"+System.currentTimeMillis())); UtilAction.velocity(ent, player.getLocation().getDirection(), 1.2, false, 0, 0.2, 10, false); Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, false, 0.4f); ent.setPickupDelay(9999); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSeismicSlam.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSeismicSlam.java index f3ee858f5..4b41a42e4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSeismicSlam.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSeismicSlam.java @@ -78,7 +78,7 @@ public class PerkSeismicSlam extends Perk if (!Kit.HasKit(player)) return; - if (!Recharge.Instance.use(player, GetName(), 6000, true, true)) + if (!Recharge.Instance.use(player, GetName(), 7000, true, true)) return; //Action @@ -115,7 +115,7 @@ public class PerkSeismicSlam extends Perk _live.remove(player); //Action - int damage = 11; + int damage = 10; double range = 8; HashMap targets = UtilEnt.getInRadius(player.getLocation(), range); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkStormSquid.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkStormSquid.java index fd5f576e7..91086313b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkStormSquid.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkStormSquid.java @@ -93,7 +93,7 @@ public class PerkStormSquid extends SmashPerk //Damage Event Manager.GetDamage().NewDamageEvent(cur, player, null, - DamageCause.CUSTOM, 20 * targets.get(cur), false, true, false, + DamageCause.CUSTOM, 16 * targets.get(cur), false, true, false, player.getName(), GetName()); //Velocity diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWitherImage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWitherImage.java index b37320e06..5a7fccc01 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWitherImage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWitherImage.java @@ -36,7 +36,8 @@ public class PerkWitherImage extends SmashPerk { super("Wither Image", new String[] { - C.cYellow + "Right-Click" + C.cGray + " with Axe to " + C.cGreen + "Wither Image" + C.cYellow + "Right-Click" + C.cGray + " with Axe to " + C.cGreen + "Wither Image", + C.cYellow + "Double Right-Click" + C.cGray + " with Axe to " + C.cGreen + "Wither Swap" }); } @@ -105,7 +106,7 @@ public class PerkWitherImage extends SmashPerk } else { - if (!Recharge.Instance.use(player, "Wither Swap", 1000, true, false)) + if (!Recharge.Instance.use(player, "Wither Swap", 2000, true, false)) return; Skeleton skel = _images.get(player); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWitherSkull.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWitherSkull.java index f03f12567..de3505cc3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWitherSkull.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWitherSkull.java @@ -191,7 +191,7 @@ public class PerkWitherSkull extends SmashPerk double scale = 0.4 + 0.6 * Math.min(1, skull.getTicksLived()/20d); //Players - HashMap players = UtilPlayer.getInRadius(skull.getLocation(), 7); + HashMap players = UtilPlayer.getInRadius(skull.getLocation(), 6); for (Player player : players.keySet()) { if (!Manager.GetGame().IsAlive(player)) @@ -199,7 +199,7 @@ public class PerkWitherSkull extends SmashPerk //Damage Event Manager.GetDamage().NewDamageEvent(player, (LivingEntity)skull.getShooter(), null, - DamageCause.CUSTOM, 2 + 10 * players.get(player) * scale, true, true, false, + DamageCause.CUSTOM, 12 * players.get(player) * scale, true, true, false, UtilEnt.getName((LivingEntity)skull.getShooter()), GetName()); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWolf.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWolf.java index 57a79f2f9..594742f60 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWolf.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWolf.java @@ -82,7 +82,7 @@ public class PerkWolf extends SmashPerk if (!Kit.HasKit(player)) return; - if (!Recharge.Instance.use(player, "Cub Tackle", isSuperActive(player) ? 800 : 8000, !isSuperActive(player), !isSuperActive(player))) + if (!Recharge.Instance.use(player, "Cub Tackle", isSuperActive(player) ? 1600 : 8000, !isSuperActive(player), !isSuperActive(player))) return; //Get Nearest Wolf @@ -255,7 +255,7 @@ public class PerkWolf extends SmashPerk if (!Kit.HasKit(player)) return; - if (!Recharge.Instance.use(player, "Wolf Strike", isSuperActive(player) ? 800 : 8000, !isSuperActive(player), !isSuperActive(player))) + if (!Recharge.Instance.use(player, "Wolf Strike", isSuperActive(player) ? 1600 : 8000, !isSuperActive(player), !isSuperActive(player))) return; //Velocity diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/data/FireflyData.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/data/FireflyData.java index 10b4187a7..c04f9b167 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/data/FireflyData.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/data/FireflyData.java @@ -9,7 +9,6 @@ public class FireflyData public org.bukkit.entity.Player Player; public org.bukkit.Location Location; public long Time; - public HashSet Targets = new HashSet(); public FireflyData(org.bukkit.entity.Player player) { From ac269839c5dcb34420e6237a03095a45062dcefb Mon Sep 17 00:00:00 2001 From: Cheese Date: Mon, 14 Sep 2015 14:14:06 +1000 Subject: [PATCH 02/12] squid skill --- .../core/projectile/ProjectileUser.java | 4 +- .../game/games/smash/kits/KitSkySquid.java | 12 + .../games/smash/perks/DataSquidGeyser.java | 20 ++ .../games/smash/perks/PerkFishFlurry.java | 206 ++++++++++++++++++ .../kit/perks/PerkCreeperElectricity.java | 4 +- .../kit/perks/PerkCreeperSulphurBomb.java | 6 +- .../game/arcade/kit/perks/PerkInkBlast.java | 7 +- .../game/arcade/kit/perks/PerkSuperSquid.java | 7 +- 8 files changed, 255 insertions(+), 11 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/DataSquidGeyser.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java index 3d71c0831..67f7837d5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java @@ -264,8 +264,8 @@ public class ProjectileUser //Idle if (_idle) { - if (_thrown.getVelocity().length() < 0.2 && - !UtilBlock.airFoliage(_thrown.getLocation().getBlock().getRelative(BlockFace.DOWN))) + if (_thrown.getVelocity().length() < 0.2 && (_thrown.isOnGround() || + !UtilBlock.airFoliage(_thrown.getLocation().getBlock().getRelative(BlockFace.DOWN)))) { _callback.Idle(this); return true; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkySquid.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkySquid.java index ec5ba59fb..06b78a82e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkySquid.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitSkySquid.java @@ -13,6 +13,7 @@ import mineplex.core.disguise.disguises.DisguiseSquid; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.Game.GameState; +import nautilus.game.arcade.game.games.smash.perks.PerkFishFlurry; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.SmashKit; @@ -38,6 +39,7 @@ public class KitSkySquid extends SmashKit new PerkDoubleJump("Double Jump", 0.9, 0.9, false), new PerkSuperSquid(), new PerkInkBlast(), + new PerkFishFlurry(), new PerkStormSquid() }, EntityType.SQUID, @@ -67,6 +69,16 @@ public class KitSkySquid extends SmashKit ChatColor.RESET + "the sky in the direction you are looking.", })); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_SPADE, (byte)0, 1, + C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Fish Flurry", + new String[] + { + ChatColor.RESET + "Target a location to create a geyser.", + ChatColor.RESET + "After a few seconds, the geyser will explode", + ChatColor.RESET + "with all sorts of marine life which will", + ChatColor.RESET + "damage nearby opponents.", + })); + if (Manager.GetGame().GetState() == GameState.Recruit) player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.NETHER_STAR, (byte)0, 1, C.cYellow + C.Bold + "Smash Crystal" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Storm Squid", diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/DataSquidGeyser.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/DataSquidGeyser.java new file mode 100644 index 000000000..298a40fe3 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/DataSquidGeyser.java @@ -0,0 +1,20 @@ +package nautilus.game.arcade.game.games.smash.perks; + +import java.util.HashSet; + +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class DataSquidGeyser +{ + public Player Player; + public HashSet Blocks; + public long StartTime; + + public DataSquidGeyser(Player player, HashSet blocks) + { + StartTime = System.currentTimeMillis(); + Player = player; + Blocks = blocks; + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java new file mode 100644 index 000000000..687bb14bf --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java @@ -0,0 +1,206 @@ +package nautilus.game.arcade.game.games.smash.perks; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; + +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Item; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.Action; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.util.Vector; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilTime; +import mineplex.core.common.util.UtilParticle.ParticleType; +import mineplex.core.common.util.UtilParticle.ViewDist; +import mineplex.core.itemstack.ItemStackFactory; +import mineplex.core.projectile.IThrown; +import mineplex.core.projectile.ProjectileUser; +import mineplex.core.recharge.Recharge; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import mineplex.minecraft.game.core.damage.CustomDamageEvent; +import nautilus.game.arcade.kit.SmashPerk; + +public class PerkFishFlurry extends SmashPerk implements IThrown +{ + private ArrayList _active = new ArrayList(); + + public PerkFishFlurry() + { + super("Fish Flurry", new String[] + { + C.cYellow + "Right-Click" + C.cGray + " with Spade to use " + C.cGreen + "Fish Flurry" + }); + } + + + @EventHandler + public void shoot(PlayerInteractEvent event) + { + if (event.isCancelled()) + return; + + if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) + return; + + if (UtilBlock.usable(event.getClickedBlock())) + return; + + if (event.getPlayer().getItemInHand() == null) + return; + + if (!event.getPlayer().getItemInHand().getType().toString().contains("_SPADE")) + return; + + Player player = event.getPlayer(); + + if (isSuperActive(player)) + return; + + if (!Kit.HasKit(player)) + return; + + Block block = player.getTargetBlock(null, 64); + + if (block == null || block.getType() == Material.AIR) + { + UtilPlayer.message(player, F.main("Game", "You must target a block.")); + return; + } + + if (!Recharge.Instance.use(player, GetName(), 24000, true, true)) + return; + + event.setCancelled(true); + + HashSet blocks = new HashSet(); + + for (Block cur : UtilBlock.getInRadius(block, 3.5d).keySet()) + { + if (UtilBlock.airFoliage(cur)) + continue; + + if (!UtilBlock.airFoliage(cur.getRelative(BlockFace.UP))) + continue; + + blocks.add(cur); + } + + _active.add(new DataSquidGeyser(player, blocks)); + + //Inform + UtilPlayer.message(player, F.main("Game", "You used " + F.skill(GetName()) + ".")); + } + + @EventHandler + public void update(UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + return; + + Iterator activeIter = _active.iterator(); + + while (activeIter.hasNext()) + { + DataSquidGeyser data = activeIter.next(); + + //paticles + for (Block block : data.Blocks) + UtilParticle.PlayParticle(ParticleType.SPLASH, block.getLocation().add(0.5, 1, 0.5), 0.25f, 0, 0.25f, 0, 10, ViewDist.LONG, UtilServer.getPlayers()); + + //sound + Block block = UtilAlg.Random(data.Blocks); + if (Math.random() > 0.5) + block.getWorld().playSound(block.getLocation(), Math.random() > 0.5 ? Sound.SPLASH : Sound.SPLASH2, 0.5f, 1f); + + //Fish + if (!UtilTime.elapsed(data.StartTime, 2000)) + { + + } + else if (!UtilTime.elapsed(data.StartTime, 6000)) + { + for (int i=0 ; i<1 ; i++) + { + Item fish = block.getWorld().dropItem(block.getLocation().add(0.5, 1.5, 0.5), + ItemStackFactory.Instance.CreateStack(Material.RAW_FISH, (byte)UtilMath.r(4), 1, "Fish" + System.currentTimeMillis())); + + Vector random = new Vector( + Math.random() - 0.5, + 1 + Math.random() * 1, + Math.random() - 0.5); + + + UtilAction.velocity(fish, random, 0.25 + 0.4 * Math.random(), false, 0, 0.2, 10, false); + + Manager.GetProjectile().AddThrow(fish, data.Player, this, + -1, true, true, true, + null, 1f, 1f, + null, UpdateType.TICK, 1f); + } + } + else + { + activeIter.remove(); + } + } + } + + @Override + public void Collide(LivingEntity target, Block block, ProjectileUser data) + { + if (target != null) + { + //Damage Event + Manager.GetDamage().NewDamageEvent(target, data.GetThrower(), null, + DamageCause.PROJECTILE, 3, true, true, false, + UtilEnt.getName(data.GetThrower()), GetName()); + + UtilParticle.PlayParticle(ParticleType.EXPLODE, target.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 12, ViewDist.LONG, UtilServer.getPlayers()); + } + + data.GetThrown().remove(); + } + + @Override + public void Idle(ProjectileUser data) + { + data.GetThrown().remove(); + } + + @Override + public void Expire(ProjectileUser data) + { + data.GetThrown().remove(); + } + + + @EventHandler + public void Knockback(CustomDamageEvent event) + { + if (event.GetReason() == null || !event.GetReason().contains(GetName())) + return; + + event.AddKnockback(GetName(), 1.5); + + event.setKnockbackOrigin(event.GetDamageeEntity().getLocation().add(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5)); + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperElectricity.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperElectricity.java index 1c289e378..c9054de14 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperElectricity.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperElectricity.java @@ -119,8 +119,10 @@ public class PerkCreeperElectricity extends Perk //Inform UtilPlayer.message(damagee, F.main("Skill", "You hit " + F.elem(UtilEnt.getName(event.GetDamagerPlayer(false))) + " with " + F.skill(GetName()) + ".")); - //Lightning + //Elec damagee.getWorld().strikeLightningEffect(damagee.getLocation()); + Manager.GetCondition().Factory().Shock(GetName(), event.GetDamagerEntity(false), event.GetDamageeEntity(), 1, false, false); + SetPowered(damagee, false); //Damage Event diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperSulphurBomb.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperSulphurBomb.java index e5dc574de..c086e8e2c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperSulphurBomb.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperSulphurBomb.java @@ -76,12 +76,12 @@ public class PerkCreeperSulphurBomb extends SmashPerk implements IThrown org.bukkit.entity.Item ent = player.getWorld().dropItem(player.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.COAL, (byte)0)); - UtilAction.velocity(ent, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); + UtilAction.velocity(ent, player.getLocation().getDirection(), 1.2, false, 0, 0.2, 10, false); Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, null, 1f, 1f, null, 1, UpdateType.SLOW, - 0.5f); + 0.65f); //Inform UtilPlayer.message(player, F.main("Game", "You used " + F.skill(GetName()) + ".")); @@ -130,6 +130,6 @@ public class PerkCreeperSulphurBomb extends SmashPerk implements IThrown if (event.GetReason() == null || !event.GetReason().contains(GetName())) return; - event.AddKnockback(GetName(), 1.5); + event.AddKnockback(GetName(), 2); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java index f86ea7607..9966521f6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java @@ -75,9 +75,10 @@ public class PerkInkBlast extends SmashPerk implements IThrown UtilInv.Update(player); - for (int i=0 ; i<9 ; i++) + for (int i=0 ; i<8 ; i++) { - org.bukkit.entity.Item ent = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(Material.INK_SACK)); + org.bukkit.entity.Item ent = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), + ItemStackFactory.Instance.CreateStack(Material.INK_SACK, (byte)0, 1, "Ink" + Math.random())); Vector random = new Vector(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5); random.normalize(); @@ -90,7 +91,7 @@ public class PerkInkBlast extends SmashPerk implements IThrown Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, null, 1f, 1f, - Effect.SMOKE, 4, UpdateType.TICK, + ParticleType.EXPLODE, UpdateType.TICK, 0.5f); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSuperSquid.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSuperSquid.java index beb829f45..385cb0d51 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSuperSquid.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSuperSquid.java @@ -13,9 +13,12 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; +import mineplex.core.common.util.UtilParticle.ParticleType; +import mineplex.core.common.util.UtilParticle.ViewDist; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; @@ -93,8 +96,8 @@ public class PerkSuperSquid extends SmashPerk UtilAction.velocity(cur, 0.6, 0.1, 1, true); - cur.getWorld().playSound(cur.getLocation(), Sound.SPLASH2, 0.2f, 1f); - cur.getWorld().playEffect(cur.getLocation(), Effect.STEP_SOUND, 8); + cur.getWorld().playSound(cur.getLocation(), Sound.SPLASH2, 0.5f, 1f); + UtilParticle.PlayParticle(ParticleType.SPLASH, cur.getLocation().add(0, 0.5, 0), 0.3f, 0.3f, 0.3f, 0, 60, ViewDist.LONG, UtilServer.getPlayers()); } } From aa30c866fde7749c34b6d3c5467571d04d5e219c Mon Sep 17 00:00:00 2001 From: Cheese Date: Fri, 18 Sep 2015 10:22:16 +1000 Subject: [PATCH 03/12] flurrry --- .../game/arcade/game/games/smash/perks/PerkFishFlurry.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java index 687bb14bf..346cec28c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java @@ -201,6 +201,6 @@ public class PerkFishFlurry extends SmashPerk implements IThrown event.AddKnockback(GetName(), 1.5); - event.setKnockbackOrigin(event.GetDamageeEntity().getLocation().add(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5)); + event.setKnockbackOrigin(event.GetDamageeEntity().getLocation().add(Math.random()-0.5, -0.1, Math.random()-0.5)); } } From 6a173073a4a8814afac11d5bc683165175152f63 Mon Sep 17 00:00:00 2001 From: Cheese Date: Mon, 12 Oct 2015 14:39:14 +1100 Subject: [PATCH 04/12] added flag to projectiles work on cow kit --- .../core/gadget/gadgets/ItemFleshHook.java | 2 +- .../gadget/gadgets/ItemMelonLauncher.java | 2 +- .../core/gadget/gadgets/MorphBat.java | 2 +- .../core/gadget/gadgets/MorphVillager.java | 2 +- .../core/projectile/ProjectileManager.java | 48 ++-- .../core/projectile/ProjectileUser.java | 12 +- .../classcombat/Skill/Brute/BlockToss.java | 2 +- .../classcombat/Skill/Brute/FleshHook.java | 2 +- .../classcombat/Skill/Mage/FreezingBlast.java | 2 +- .../classcombat/Skill/Mage/GlacialBlade.java | 2 +- .../classcombat/Skill/Mage/IcePrison.java | 2 +- .../classcombat/Skill/Mage/LightningOrb.java | 2 +- Plugins/Mineplex.StaffServer/.classpath | 2 +- .../mobs/perks/PerkBlockTossEVO.java | 2 +- .../mobs/perks/PerkSulphurBombEVO.java | 2 +- .../game/games/lobbers/BombLobbers.java | 4 +- .../games/lobbers/kits/perks/PerkMortar.java | 4 +- .../arcade/game/games/smash/SuperSmash.java | 2 + .../arcade/game/games/smash/kits/KitCow.java | 10 +- .../game/games/smash/perks/DataCowCharge.java | 36 +++ .../games/smash/perks/PerkCowStampede.java | 225 ++++++++++++++++++ .../games/smash/perks/PerkFishFlurry.java | 2 +- .../game/arcade/kit/perks/PerkBaconBlast.java | 2 +- .../game/arcade/kit/perks/PerkBlockToss.java | 2 +- .../game/arcade/kit/perks/PerkCowBomb.java | 2 +- .../kit/perks/PerkCreeperSulphurBomb.java | 2 +- .../game/arcade/kit/perks/PerkInkBlast.java | 2 +- .../game/arcade/kit/perks/PerkIronHook.java | 2 +- .../arcade/kit/perks/PerkSlimeRocket.java | 2 +- .../game/arcade/kit/perks/PerkWoolBomb.java | 2 +- .../arcade/managers/GameLobbyManager.java | 23 +- 31 files changed, 336 insertions(+), 72 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/DataCowCharge.java create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkCowStampede.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemFleshHook.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemFleshHook.java index 44eb1ca17..a439aca63 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemFleshHook.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemFleshHook.java @@ -45,7 +45,7 @@ public class ItemFleshHook extends ItemGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1.6, false, 0, 0.2, 10, false); - Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, + Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, Sound.FIRE_IGNITE, 1.4f, 0.8f, ParticleType.CRIT, null, 0, UpdateType.TICK, 0.5f); //Inform diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemMelonLauncher.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemMelonLauncher.java index 90c80cc1c..ea3a786ba 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemMelonLauncher.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ItemMelonLauncher.java @@ -57,7 +57,7 @@ public class ItemMelonLauncher extends ItemGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); - Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, + Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); //Inform diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphBat.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphBat.java index 0d6d18762..3b0bfe79d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphBat.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphBat.java @@ -114,7 +114,7 @@ public class MorphBat extends MorphGadget implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 0.01, true, -0.3, 0, 10, false); - Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, + Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true, null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f); //Inform diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphVillager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphVillager.java index c2f0d04b1..e0a864177 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphVillager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphVillager.java @@ -97,7 +97,7 @@ public class MorphVillager extends MorphGadget implements IThrown UtilAction.velocity(gem, player.getLocation().getDirection(), 1, false, 0, 0.2, 1, false); //Throw - Manager.getProjectileManager().AddThrow(gem, player, this, -1, true, true, true, + Manager.getProjectileManager().AddThrow(gem, player, this, -1, true, true, true, true, null, 1.4f, 0.8f, null, null, 0, UpdateType.TICK, 0.5f); Manager.getDonationManager().RewardGems(null, this.GetName() + " Throw", player.getName(), player.getUniqueId(), -20); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileManager.java b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileManager.java index 03f44665d..9708c5a77 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileManager.java @@ -31,107 +31,107 @@ public class ProjectileManager extends MiniPlugin } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, float hitboxGrow) + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, float hitboxGrow) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, null, 1f, 1f, null, 0, null, null, 0F, 0F, 0F, 0F, 1, hitboxGrow)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, boolean pickup, float hitboxGrow) + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, boolean pickup, float hitboxGrow) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, pickup, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, pickup, null, 1f, 1f, null, 0, null, null, 0F, 0F, 0F, 0F, 1, hitboxGrow)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, Sound sound, float soundVolume, float soundPitch, Effect effect, int effectData, UpdateType effectRate , float hitboxGrow) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, sound, soundVolume, soundPitch, effect, effectData, effectRate, null, 0F, 0F, 0F, 0F, 1, hitboxGrow)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, Sound sound, float soundVolume, float soundPitch, ParticleType particle, Effect effect, int effectData, UpdateType effectRate, float hitboxGrow) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, sound, soundVolume, soundPitch, effect, effectData, effectRate, particle, 0F, 0F, 0F, 0F, 1, hitboxGrow)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, Sound sound, float soundVolume, float soundPitch, ParticleType particle, UpdateType effectRate, float hitboxMult) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, sound, soundVolume, soundPitch, null, 0, effectRate, particle, 0F, 0F, 0F, 0F, 1, hitboxMult)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, Sound sound, float soundVolume, float soundPitch, ParticleType particle, float pX, float pY, float pZ, float pS, int pC, UpdateType effectRate, float hitboxMult) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, sound, soundVolume, soundPitch, null, 0, effectRate, particle, pX, pY, pZ, pS, pC, hitboxMult)); } // WITH CAN HIT PLAYERS LIST: public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, float hitboxGrow, List canHit) + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, float hitboxGrow, List canHit) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, null, 1f, 1f, null, 0, null, null, 0F, 0F, 0F, 0F, 1, hitboxGrow, canHit)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, boolean pickup, float hitboxGrow, List canHit) + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, boolean pickup, float hitboxGrow, List canHit) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, pickup, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, pickup, null, 1f, 1f, null, 0, null, null, 0F, 0F, 0F, 0F, 1, hitboxGrow, canHit)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, Sound sound, float soundVolume, float soundPitch, Effect effect, int effectData, UpdateType effectRate , float hitboxGrow, List canHit) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, sound, soundVolume, soundPitch, effect, effectData, effectRate, null, 0F, 0F, 0F, 0F, 1, hitboxGrow, canHit)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, Sound sound, float soundVolume, float soundPitch, ParticleType particle, Effect effect, int effectData, UpdateType effectRate, float hitboxGrow, List canHit) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, sound, soundVolume, soundPitch, effect, effectData, effectRate, particle, 0F, 0F, 0F, 0F, 1, hitboxGrow, canHit)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, Sound sound, float soundVolume, float soundPitch, ParticleType particle, UpdateType effectRate, float hitboxMult, List canHit) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, sound, soundVolume, soundPitch, null, 0, effectRate, particle, 0F, 0F, 0F, 0F, 1, hitboxMult, canHit)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, Sound sound, float soundVolume, float soundPitch, ParticleType particle, float pX, float pY, float pZ, float pS, int pC, UpdateType effectRate, float hitboxMult, List canHit) { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, + expireTime, hitPlayer, hitNonPlayerEntity, hitBlock, idle, false, sound, soundVolume, soundPitch, null, 0, effectRate, particle, pX, pY, pZ, pS, pC, hitboxMult, canHit)); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java index 67f7837d5..a8cc962c7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java @@ -37,6 +37,7 @@ public class ProjectileUser private long _expireTime; private boolean _hitPlayer = false; + private boolean _hitNonPlayerEntity = false; private boolean _hitBlock = false; private boolean _idle = false; private boolean _pickup = false; @@ -61,7 +62,7 @@ public class ProjectileUser private List _canHit; public ProjectileUser(ProjectileManager throwInput, Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, boolean pickup, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, boolean pickup, Sound sound, float soundVolume, float soundPitch, Effect effect, int effectData, UpdateType effectRate, ParticleType particle, float particleX, float particleY, @@ -75,6 +76,7 @@ public class ProjectileUser _expireTime = expireTime; _hitPlayer = hitPlayer; + _hitNonPlayerEntity = hitNonPlayerEntity; _hitBlock = hitBlock; _idle = idle; _pickup = pickup; @@ -97,7 +99,7 @@ public class ProjectileUser } public ProjectileUser(ProjectileManager throwInput, Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, boolean pickup, + long expireTime, boolean hitPlayer, boolean hitNonPlayerEntity, boolean hitBlock, boolean idle, boolean pickup, Sound sound, float soundVolume, float soundPitch, Effect effect, int effectData, UpdateType effectRate, ParticleType particle, float particleX, float particleY, @@ -111,6 +113,7 @@ public class ProjectileUser _expireTime = expireTime; _hitPlayer = hitPlayer; + _hitNonPlayerEntity = hitNonPlayerEntity; _hitBlock = hitBlock; _idle = idle; _pickup = pickup; @@ -157,7 +160,7 @@ public class ProjectileUser return true; } - if (_hitPlayer) + if (_hitPlayer || _hitNonPlayerEntity) { double distanceToEntity = 0.0D; LivingEntity victim = null; @@ -181,6 +184,9 @@ public class ProjectileUser ((CraftEntity)_thrown).getHandle().motY, ((CraftEntity)_thrown).getHandle().motZ).grow(_hitboxGrow, _hitboxGrow, _hitboxGrow))) { + if (!_hitNonPlayerEntity && !(entity instanceof Player)) + continue; + if (entity instanceof net.minecraft.server.v1_7_R4.Entity) { Entity bukkitEntity = ((net.minecraft.server.v1_7_R4.Entity) entity).getBukkitEntity(); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/BlockToss.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/BlockToss.java index dd2c17dcc..23ff9525c 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/BlockToss.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/BlockToss.java @@ -204,7 +204,7 @@ public class BlockToss extends SkillCharge implements IThrown //Action UtilAction.velocity(block, cur.getLocation().getDirection(), mult, false, 0, 0, 1, true); - Factory.Projectile().AddThrow(block, cur, this, -1, true, true, true, + Factory.Projectile().AddThrow(block, cur, this, -1, true, true, true, true, null, 0, 0, null, 0, UpdateType.FASTEST, 1.2f); //Event diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/FleshHook.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/FleshHook.java index 2d10d7972..edcb302ae 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/FleshHook.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/FleshHook.java @@ -107,7 +107,7 @@ public class FleshHook extends SkillActiveCharge implements IThrown UtilAction.velocity(item, cur.getLocation().getDirection(), 1 + charge , false, 0, 0.2, 20, false); - Factory.Projectile().AddThrow(item, cur, this, -1, true, true, true, + Factory.Projectile().AddThrow(item, cur, this, -1, true, true, true, true, Sound.FIRE_IGNITE, 1.4f, 0.8f, ParticleType.CRIT, UpdateType.TICK, 0.6f); //Inform diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/FreezingBlast.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/FreezingBlast.java index 5a60452db..b911be595 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/FreezingBlast.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/FreezingBlast.java @@ -69,7 +69,7 @@ public class FreezingBlast extends SkillActive implements IThrown //Action Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(79)); item.setVelocity(player.getLocation().getDirection()); - Factory.Projectile().AddThrow(item, player, this, -1, true, true, true, + Factory.Projectile().AddThrow(item, player, this, -1, true, true, true, true, Sound.FIZZ, 0.6f, 1.6f, null, 0, UpdateType.FASTEST, 1f); //Inform diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/GlacialBlade.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/GlacialBlade.java index aa7e359f0..9a8450374 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/GlacialBlade.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/GlacialBlade.java @@ -72,7 +72,7 @@ public class GlacialBlade extends SkillActive implements IThrown //Action Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()).subtract(0, 0.2, 0), ItemStackFactory.Instance.CreateStack(370)); UtilAction.velocity(item, player.getLocation().getDirection(), 1.6, false, 0, 0.2, 10, false); - Factory.Projectile().AddThrow(item, player, this, -1, true, true, true, + Factory.Projectile().AddThrow(item, player, this, -1, true, true, true, true, null, 0, 0, ParticleType.SNOW_SHOVEL, UpdateType.TICK, 0.3f); //Effect diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/IcePrison.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/IcePrison.java index 339669ce4..153c00eff 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/IcePrison.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/IcePrison.java @@ -70,7 +70,7 @@ public class IcePrison extends SkillActive implements IThrown //Action Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(79)); item.setVelocity(player.getLocation().getDirection()); - Factory.Projectile().AddThrow(item, player, this, -1, true, true, true, + Factory.Projectile().AddThrow(item, player, this, -1, true, true, true, true, Sound.FIZZ, 0.6f, 1.6f, ParticleType.SNOW_SHOVEL, UpdateType.TICK, 1.5f); //Inform diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LightningOrb.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LightningOrb.java index 125bb24f6..693f06299 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LightningOrb.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LightningOrb.java @@ -101,7 +101,7 @@ public class LightningOrb extends SkillActive implements IThrown //Action Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(57)); item.setVelocity(player.getLocation().getDirection()); - Factory.Projectile().AddThrow(item, player, this, System.currentTimeMillis() + 5000 - (400 * level), true, false, false, + Factory.Projectile().AddThrow(item, player, this, System.currentTimeMillis() + 5000 - (400 * level), true, true, false, false, Sound.FIZZ, 0.6f, 1.6f, ParticleType.FIREWORKS_SPARK, UpdateType.TICK, 0.4f); //Inform diff --git a/Plugins/Mineplex.StaffServer/.classpath b/Plugins/Mineplex.StaffServer/.classpath index e03947a20..4a5882bf2 100644 --- a/Plugins/Mineplex.StaffServer/.classpath +++ b/Plugins/Mineplex.StaffServer/.classpath @@ -11,6 +11,6 @@ - + diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/perks/PerkBlockTossEVO.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/perks/PerkBlockTossEVO.java index d72652411..ff3419b10 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/perks/PerkBlockTossEVO.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/perks/PerkBlockTossEVO.java @@ -158,7 +158,7 @@ public class PerkBlockTossEVO extends Perk implements IThrown //Action UtilAction.velocity(block, cur.getLocation().getDirection(), mult, false, 0.2, 0, 1, true); - Manager.GetProjectile().AddThrow(block, cur, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(block, cur, this, -1, true, true, true, true, null, 0, 0, null, 0, UpdateType.FASTEST, 1f); //Event diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/perks/PerkSulphurBombEVO.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/perks/PerkSulphurBombEVO.java index a11c63035..70139df2a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/perks/PerkSulphurBombEVO.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/mobs/perks/PerkSulphurBombEVO.java @@ -78,7 +78,7 @@ public class PerkSulphurBombEVO extends Perk implements IThrown UtilAction.velocity(ent, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); - Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, true, null, 1f, 1f, Effect.SMOKE, 1, UpdateType.SLOW, 1f); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/BombLobbers.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/BombLobbers.java index 5a7f6a0de..2e519edc8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/BombLobbers.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/BombLobbers.java @@ -229,7 +229,7 @@ public class BombLobbers extends TeamGame implements IThrown canHit.add(pos); } - Manager.GetProjectile().AddThrow(tnt, player, this, -1L, true, false, true, .2F, canHit); + Manager.GetProjectile().AddThrow(tnt, player, this, -1L, true, true, false, true, .2F, canHit); Manager.getPlugin().getServer().getPluginManager().callEvent(new TNTThrowEvent(player, tnt)); @@ -343,7 +343,7 @@ public class BombLobbers extends TeamGame implements IThrown newTNT.setVelocity(tnt.getKey().getVelocity()); newTNT.setFuseTicks(60); - Manager.GetProjectile().AddThrow(newTNT, thrower, this, -1L, true, false, true, .2F); + Manager.GetProjectile().AddThrow(newTNT, thrower, this, -1L, true, true, false, true, .2F); tnt.getKey().remove(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/kits/perks/PerkMortar.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/kits/perks/PerkMortar.java index db295ff13..de34929a5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/kits/perks/PerkMortar.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/kits/perks/PerkMortar.java @@ -68,7 +68,7 @@ public class PerkMortar extends Perk tnt.setFuseTicks(40); UtilAction.velocity(tnt, player.getLocation().getDirection(), 2.0D, false, 0.0D, 0.1D, 10.0D, false); - Manager.GetProjectile().AddThrow(tnt, player, l, -1L, true, false, false, .2F); + Manager.GetProjectile().AddThrow(tnt, player, l, -1L, true, true, false, false, .2F); player.playSound(player.getLocation(), Sound.CREEPER_HISS, 3.0F, 1.0F); @@ -107,7 +107,7 @@ public class PerkMortar extends Perk tnt.setFuseTicks(60); UtilAction.velocity(tnt, event.getTNT().getVelocity().add(new Vector(i / 5, 0, i / 5)).normalize(), 2.0D, false, 0.0D, 0.1D, 10.0D, false); - Manager.GetProjectile().AddThrow(tnt, event.getPlayer(), l, -1L, true, false, false, .2F); + Manager.GetProjectile().AddThrow(tnt, event.getPlayer(), l, -1L, true, true, false, false, .2F); // l.addThrower(event.getPlayer(), tnt); _scatter.add(tnt); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SuperSmash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SuperSmash.java index 6e255aea9..2fcd7a276 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SuperSmash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SuperSmash.java @@ -26,6 +26,7 @@ import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.GameTeam.PlayerState; import nautilus.game.arcade.game.games.smash.kits.KitBlaze; import nautilus.game.arcade.game.games.smash.kits.KitChicken; +import nautilus.game.arcade.game.games.smash.kits.KitCow; import nautilus.game.arcade.game.games.smash.kits.KitCreeper; import nautilus.game.arcade.game.games.smash.kits.KitEnderman; import nautilus.game.arcade.game.games.smash.kits.KitGolem; @@ -109,6 +110,7 @@ public abstract class SuperSmash extends Game new KitWitherSkeleton(manager), new KitMagmaCube(manager), new KitZombie(manager), + new KitCow(manager), new KitSheep(manager) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitCow.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitCow.java index 207ff9c34..9f6576da5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitCow.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitCow.java @@ -11,6 +11,7 @@ import mineplex.core.common.util.UtilInv; import mineplex.core.disguise.disguises.DisguiseCow; import mineplex.core.itemstack.ItemStackFactory; import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.games.smash.perks.PerkCowStampede; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.SmashKit; @@ -20,7 +21,7 @@ public class KitCow extends SmashKit { public KitCow(ArcadeManager manager) { - super(manager, "Mad Cow", KitAvailability.Gem, 5000, + super(manager, "Cow", KitAvailability.Gem, 6000, new String[] { @@ -28,14 +29,15 @@ public class KitCow extends SmashKit new Perk[] { - new PerkSmashStats(7, 1.0, 0.25, 8), + new PerkSmashStats(7, 1.0, 0.25, 7.5), new PerkDoubleJump("Double Jump", 0.9, 0.9, false), + new PerkCowStampede(), }, EntityType.COW, new ItemStack(Material.MILK_BUCKET), - "", 0, null); + "Cowpocalypse", 0, null); } @Override @@ -61,7 +63,7 @@ public class KitCow extends SmashKit player.getInventory().setHelmet(ItemStackFactory.Instance.CreateStack(Material.IRON_HELMET)); player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.IRON_CHESTPLATE)); player.getInventory().setLeggings(ItemStackFactory.Instance.CreateStack(Material.IRON_LEGGINGS)); - player.getInventory().setBoots(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BOOTS)); + player.getInventory().setBoots(ItemStackFactory.Instance.CreateStack(Material.IRON_BOOTS)); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/DataCowCharge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/DataCowCharge.java new file mode 100644 index 000000000..a03be6065 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/DataCowCharge.java @@ -0,0 +1,36 @@ +package nautilus.game.arcade.game.games.smash.perks; + +import org.bukkit.Location; +import org.bukkit.entity.Cow; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +public class DataCowCharge +{ + public long Time; + public Player Player; + public Vector Direction; + + public Cow Cow; + + public Location LastLoc; + public long LastMoveTime; + + public DataCowCharge(Player player, Cow cow) + { + Time = System.currentTimeMillis(); + + Player = player; + + Direction = player.getLocation().getDirection(); + Direction.setY(0); + Direction.normalize(); + Direction.multiply(0.75); + Direction.setY(-0.2); + + Cow = cow; + + LastLoc = Cow.getLocation(); + LastMoveTime = System.currentTimeMillis(); + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkCowStampede.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkCowStampede.java new file mode 100644 index 000000000..debd7a9e5 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkCowStampede.java @@ -0,0 +1,225 @@ +package nautilus.game.arcade.game.games.smash.perks; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Cow; +import org.bukkit.entity.Item; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.Action; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.util.Vector; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilTime; +import mineplex.core.common.util.UtilParticle.ParticleType; +import mineplex.core.common.util.UtilParticle.ViewDist; +import mineplex.core.itemstack.ItemStackFactory; +import mineplex.core.projectile.IThrown; +import mineplex.core.projectile.ProjectileUser; +import mineplex.core.recharge.Recharge; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import mineplex.minecraft.game.core.damage.CustomDamageEvent; +import nautilus.game.arcade.kit.SmashPerk; + +public class PerkCowStampede extends SmashPerk implements IThrown +{ + private ArrayList _active = new ArrayList(); + + public PerkCowStampede() + { + super("Fish Flurry", new String[] + { + C.cYellow + "Right-Click" + C.cGray + " with Spade to use " + C.cGreen + "Fish Flurry" + }); + } + + + @EventHandler + public void shoot(PlayerInteractEvent event) + { + if (event.isCancelled()) + return; + + if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) + return; + + if (UtilBlock.usable(event.getClickedBlock())) + return; + + if (event.getPlayer().getItemInHand() == null) + return; + + if (!event.getPlayer().getItemInHand().getType().toString().contains("_AXE")) + return; + + Player player = event.getPlayer(); + + if (isSuperActive(player)) + return; + + if (!Kit.HasKit(player)) + return; + + if (!Recharge.Instance.use(player, GetName(), 8000, true, true)) + return; + + event.setCancelled(true); + + for (double i=-3 ; i<4 ; i++) + { + Vector dir = player.getLocation().getDirection(); + dir.setY(0); + dir.normalize(); + + Location loc = player.getLocation(); + + loc.add(dir); + loc.add(UtilAlg.getLeft(dir).multiply(i*1.5)); + + Manager.GetGame().CreatureAllowOverride = true; + Cow cow = player.getWorld().spawn(loc, Cow.class); + Manager.GetGame().CreatureAllowOverride = false; + + Manager.GetProjectile().AddThrow(cow, player, this, + -1, true, false, false, false, + null, 1f, 1f, + null, UpdateType.TICK, 2.5f); + + _active.add(new DataCowCharge(player, cow)); + } + + //Sound + player.getWorld().playSound(player.getLocation(), Sound.COW_IDLE, 2f, 0.6f); + + //Inform + UtilPlayer.message(player, F.main("Game", "You used " + F.skill(GetName()) + ".")); + } + + @EventHandler + public void update(UpdateEvent event) + { + if (event.getType() != UpdateType.TICK) + return; + + Iterator activeIter = _active.iterator(); + + while (activeIter.hasNext()) + { + DataCowCharge data = activeIter.next(); + + //Expire + if (UtilTime.elapsed(data.Time, 3000)) + { + if (data.Cow.isValid()) + { + data.Cow.remove(); + UtilParticle.PlayParticle(ParticleType.EXPLODE, data.Cow.getLocation().add(0, 1, 0), 0, 0, 0, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers()); + } + + activeIter.remove(); + continue; + } + + //Set Moved + if (UtilMath.offset(data.Cow.getLocation(), data.LastLoc) > 1) + { + + data.LastLoc = data.Cow.getLocation(); + data.LastMoveTime = System.currentTimeMillis(); + } + + //Stuck Remove + if (UtilTime.elapsed(data.LastMoveTime, 2000)) + { + if (data.Cow.isValid()) + { + data.Cow.remove(); + UtilParticle.PlayParticle(ParticleType.LARGE_EXPLODE, data.Cow.getLocation().add(0, 1, 0), 0, 0, 0, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers()); + } + + activeIter.remove(); + continue; + } + + //Gravity + if (UtilEnt.isGrounded(data.Cow)) + { + data.Direction.setY(-0.1); + } + else + { + data.Direction.setY(Math.max(-1, data.Direction.getY() - 0.03)); + } + + //Move + data.Cow.setVelocity(data.Direction); + + if (Math.random() > 0.99) + data.Cow.getWorld().playSound(data.Cow.getLocation(), Sound.COW_IDLE, 1f, 1f); + + if (Math.random() > 0.97) + data.Cow.getWorld().playSound(data.Cow.getLocation(), Sound.COW_WALK, 1f, 1.2f); + } + } + + @Override + public void Collide(LivingEntity target, Block block, ProjectileUser data) + { + if (target != null && target instanceof Player) + { + //Damage Event + Manager.GetDamage().NewDamageEvent(target, data.GetThrower(), null, + DamageCause.PROJECTILE, 6, true, true, false, + UtilEnt.getName(data.GetThrower()), GetName()); + + UtilParticle.PlayParticle(ParticleType.EXPLODE, target.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 12, ViewDist.LONG, UtilServer.getPlayers()); + } + + Manager.GetProjectile().AddThrow(data.GetThrown(), data.GetThrower(), this, + -1, true, false, false, false, + null, 1f, 1f, + null, UpdateType.TICK, 2.5f); + } + + @Override + public void Idle(ProjectileUser data) + { + + } + + @Override + public void Expire(ProjectileUser data) + { + + } + + + @EventHandler + public void Knockback(CustomDamageEvent event) + { + if (event.GetReason() == null || !event.GetReason().contains(GetName())) + return; + + event.AddKnockback(GetName(), 2); + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java index 346cec28c..65fb06b9b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkFishFlurry.java @@ -152,7 +152,7 @@ public class PerkFishFlurry extends SmashPerk implements IThrown UtilAction.velocity(fish, random, 0.25 + 0.4 * Math.random(), false, 0, 0.2, 10, false); Manager.GetProjectile().AddThrow(fish, data.Player, this, - -1, true, true, true, + -1, true, false, true, true, null, 1f, 1f, null, UpdateType.TICK, 1f); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBaconBlast.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBaconBlast.java index a815995cc..d69147917 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBaconBlast.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBaconBlast.java @@ -69,7 +69,7 @@ public class PerkBaconBlast extends Perk implements IThrown UtilAction.velocity(ent, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); - Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, true, null, 1f, 1f, null, 1, UpdateType.SLOW, 0.5f); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlockToss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlockToss.java index c3c74bb22..4e759312c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlockToss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkBlockToss.java @@ -150,7 +150,7 @@ public class PerkBlockToss extends SmashPerk implements IThrown //Action UtilAction.velocity(block, cur.getLocation().getDirection(), mult, false, 0.2, 0, 1, true); - Manager.GetProjectile().AddThrow(block, cur, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(block, cur, this, -1, true, true, true, true, null, 0, 0, null, 0, UpdateType.FASTEST, 1f); //Event diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCowBomb.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCowBomb.java index 5050e26e3..e3461cd2f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCowBomb.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCowBomb.java @@ -75,7 +75,7 @@ public class PerkCowBomb extends Perk implements IThrown UtilAction.velocity(ent, player.getLocation().getDirection(), 1.4, false, 0, 0.3, 10, false); - Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, true, null, 1f, 1f, null, 1, UpdateType.SLOW, 0.5f); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperSulphurBomb.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperSulphurBomb.java index c086e8e2c..e9759b073 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperSulphurBomb.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkCreeperSulphurBomb.java @@ -78,7 +78,7 @@ public class PerkCreeperSulphurBomb extends SmashPerk implements IThrown UtilAction.velocity(ent, player.getLocation().getDirection(), 1.2, false, 0, 0.2, 10, false); - Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, true, null, 1f, 1f, null, 1, UpdateType.SLOW, 0.65f); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java index 9966521f6..7e977ed2b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkInkBlast.java @@ -89,7 +89,7 @@ public class PerkInkBlast extends SmashPerk implements IThrown UtilAction.velocity(ent, player.getLocation().getDirection().add(random), 1 + 0.4 * Math.random(), false, 0, 0.2, 10, false); - Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, true, null, 1f, 1f, ParticleType.EXPLODE, UpdateType.TICK, 0.5f); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkIronHook.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkIronHook.java index b707bf669..e629b7d8d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkIronHook.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkIronHook.java @@ -63,7 +63,7 @@ public class PerkIronHook extends Perk implements IThrown UtilAction.velocity(item, player.getLocation().getDirection(), 1.8, false, 0, 0.2, 10, false); - Manager.GetProjectile().AddThrow(item, player, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(item, player, this, -1, true, true, true, true, Sound.FIRE_IGNITE, 1.4f, 0.8f, ParticleType.CRIT, null, 0, UpdateType.TICK, 0.6f); //Inform diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSlimeRocket.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSlimeRocket.java index a0f5a5529..1b16508b9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSlimeRocket.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSlimeRocket.java @@ -195,7 +195,7 @@ public class PerkSlimeRocket extends SmashPerk implements IThrown UtilAction.velocity(slime, player.getLocation().getDirection(), 1 + charge/2d, false, 0, 0.2, 10, true); - Manager.GetProjectile().AddThrow(slime, player, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(slime, player, this, -1, true, true, true, true, null, 0, 0, null, 0, UpdateType.FASTEST, 1f); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWoolBomb.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWoolBomb.java index 8615521fb..4dc6c0825 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWoolBomb.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkWoolBomb.java @@ -107,7 +107,7 @@ public class PerkWoolBomb extends Perk implements IThrown UtilAction.velocity(ent, player.getLocation().getDirection(), 1, false, 0, 0.2, 10, false); - Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, + Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, true, null, 1f, 1f, null, 1, UpdateType.SLOW, 0.5f); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java index d144e7ba9..818a98a4a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java @@ -518,24 +518,17 @@ public class GameLobbyManager implements Listener, IPacketHandler { // WriteKitLine("Free", 0, 159, (byte)15); // WriteKitLine("Kits", 1, 159, (byte)4); - - ArrayList kitsA = new ArrayList(); - ArrayList kitsB = new ArrayList(); - - for (int i=0 ; i Date: Mon, 12 Oct 2015 16:32:23 +1100 Subject: [PATCH 05/12] more ssm update --- .../core/projectile/ProjectileUser.java | 8 +- .../game/core/damage/CustomDamageEvent.java | 9 +- .../game/core/damage/DamageManager.java | 25 +++++- .../arcade/game/games/smash/kits/KitCow.java | 2 +- .../game/games/smash/kits/KitKnight.java | 26 +++--- .../games/smash/perks/PerkCowStampede.java | 88 +++++++------------ .../game/games/snowfight/SnowFight.java | 4 +- .../arcade/managers/GameLobbyManager.java | 8 +- 8 files changed, 90 insertions(+), 80 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java index a8cc962c7..09d038abd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java @@ -11,6 +11,7 @@ import mineplex.core.common.util.UtilServer; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import net.minecraft.server.v1_7_R4.AxisAlignedBB; +import net.minecraft.server.v1_7_R4.EntityPlayer; import net.minecraft.server.v1_7_R4.MathHelper; import net.minecraft.server.v1_7_R4.MovingObjectPosition; import net.minecraft.server.v1_7_R4.Vec3D; @@ -184,9 +185,12 @@ public class ProjectileUser ((CraftEntity)_thrown).getHandle().motY, ((CraftEntity)_thrown).getHandle().motZ).grow(_hitboxGrow, _hitboxGrow, _hitboxGrow))) { - if (!_hitNonPlayerEntity && !(entity instanceof Player)) + if (!_hitNonPlayerEntity && !(entity instanceof EntityPlayer)) continue; - + + if (!_hitPlayer && entity instanceof EntityPlayer) + continue; + if (entity instanceof net.minecraft.server.v1_7_R4.Entity) { Entity bukkitEntity = ((net.minecraft.server.v1_7_R4.Entity) entity).getBukkitEntity(); diff --git a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/CustomDamageEvent.java b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/CustomDamageEvent.java index e7b460fe3..0374f2a6a 100644 --- a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/CustomDamageEvent.java +++ b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/CustomDamageEvent.java @@ -7,6 +7,7 @@ import mineplex.core.common.util.C; import org.bukkit.ChatColor; import org.bukkit.Location; +import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; @@ -36,6 +37,7 @@ public class CustomDamageEvent extends Event implements Cancellable private Player _damagerPlayer; private Projectile _projectile; private Location _knockbackOrigin = null; + private Entity _knockbackSource = null; //Flags private boolean _ignoreArmor = false; @@ -46,7 +48,7 @@ public class CustomDamageEvent extends Event implements Cancellable public CustomDamageEvent(LivingEntity damagee, LivingEntity damager, Projectile projectile, DamageCause cause, double damage, boolean knockback, boolean ignoreRate, boolean ignoreArmor, - String initialSource, String initialReason, boolean cancelled) + String initialSource, String initialReason, boolean cancelled, Entity knockbackSource) { _eventCause = cause; @@ -64,6 +66,8 @@ public class CustomDamageEvent extends Event implements Cancellable _knockback = knockback; _ignoreRate = ignoreRate; _ignoreArmor = ignoreArmor; + + _knockbackSource = knockbackSource; if (initialSource != null && initialReason != null) AddMod(initialSource, initialReason, 0, true); @@ -266,6 +270,9 @@ public class CustomDamageEvent extends Event implements Cancellable public Location getKnockbackOrigin() { + if (_knockbackSource != null) + return _knockbackSource.getLocation(); + return _knockbackOrigin; } diff --git a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java index e58efe9b1..e583cdcd6 100644 --- a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java +++ b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java @@ -32,6 +32,7 @@ import org.bukkit.Sound; import org.bukkit.craftbukkit.v1_7_R4.entity.CraftLivingEntity; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Arrow; +import org.bukkit.entity.Entity; import org.bukkit.entity.Fish; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -167,17 +168,35 @@ public class DamageManager extends MiniPlugin { NewDamageEvent(damagee, damager, proj, cause, damage, knockback, ignoreRate, ignoreArmor, - source, reason, false); + source, reason, false, null); } - + + public void NewDamageEvent(LivingEntity damagee, LivingEntity damager, Projectile proj, + DamageCause cause, double damage, boolean knockback, boolean ignoreRate, boolean ignoreArmor, + String source, String reason, Entity knockbackSource) + { + NewDamageEvent(damagee, damager, proj, + cause, damage, knockback, ignoreRate, ignoreArmor, + source, reason, false, knockbackSource); + } + public void NewDamageEvent(LivingEntity damagee, LivingEntity damager, Projectile proj, DamageCause cause, double damage, boolean knockback, boolean ignoreRate, boolean ignoreArmor, String source, String reason, boolean cancelled) + { + NewDamageEvent(damagee, damager, proj, + cause, damage, knockback, ignoreRate, ignoreArmor, + source, reason, cancelled, null); + } + + public void NewDamageEvent(LivingEntity damagee, LivingEntity damager, Projectile proj, + DamageCause cause, double damage, boolean knockback, boolean ignoreRate, boolean ignoreArmor, + String source, String reason, boolean cancelled, Entity knockbackSource) { _plugin.getServer().getPluginManager().callEvent( new CustomDamageEvent(damagee, damager, proj, cause, damage, knockback, ignoreRate, ignoreArmor, - source, reason, cancelled)); + source, reason, cancelled, knockbackSource)); } @EventHandler(priority = EventPriority.LOW) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitCow.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitCow.java index 9f6576da5..440a5df97 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitCow.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitCow.java @@ -46,7 +46,7 @@ public class KitCow extends SmashKit UtilInv.Clear(player); player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE, (byte)0, 1, - C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Stampede", + C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Angry Herd", new String[] { ChatColor.RESET + "", diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitKnight.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitKnight.java index 98cdb65fc..73feb7ce8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitKnight.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/kits/KitKnight.java @@ -214,13 +214,13 @@ public class KitKnight extends SmashKit Horse horse = (Horse)damagee.getVehicle(); //Damage Event - CustomDamageEvent newEvent = new CustomDamageEvent(horse, event.GetDamagerEntity(true), event.GetProjectile(), - event.GetCause(), event.GetDamageInitial(), true, false, false, - UtilEnt.getName(event.GetDamagerPlayer(true)), event.GetReason(), false); +// CustomDamageEvent newEvent = new CustomDamageEvent(horse, event.GetDamagerEntity(true), event.GetProjectile(), +// event.GetCause(), event.GetDamageInitial(), true, false, false, +// UtilEnt.getName(event.GetDamagerPlayer(true)), event.GetReason(), false); - _calledEvents.add(newEvent); - Manager.getPlugin().getServer().getPluginManager().callEvent(newEvent); - _calledEvents.remove(newEvent); +// _calledEvents.add(newEvent); +// Manager.getPlugin().getServer().getPluginManager().callEvent(newEvent); +// _calledEvents.remove(newEvent); } @EventHandler(priority = EventPriority.LOWEST) @@ -246,13 +246,13 @@ public class KitKnight extends SmashKit Player player = (Player)horse.getPassenger(); //Damage Event - final CustomDamageEvent newEvent = new CustomDamageEvent(player, event.GetDamagerEntity(true), event.GetProjectile(), - event.GetCause(), event.GetDamageInitial(), true, false, false, - UtilEnt.getName(event.GetDamagerPlayer(true)), event.GetReason(), false); - - _calledEvents.add(newEvent); - Manager.getPlugin().getServer().getPluginManager().callEvent(newEvent); - _calledEvents.remove(newEvent); +// final CustomDamageEvent newEvent = new CustomDamageEvent(player, event.GetDamagerEntity(true), event.GetProjectile(), +// event.GetCause(), event.GetDamageInitial(), true, false, false, +// UtilEnt.getName(event.GetDamagerPlayer(true)), event.GetReason(), false); +// +// _calledEvents.add(newEvent); +// Manager.getPlugin().getServer().getPluginManager().callEvent(newEvent); +// _calledEvents.remove(newEvent); //Add Knockback event.AddKnockback("Knockback Multiplier", 1.2); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkCowStampede.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkCowStampede.java index debd7a9e5..885312190 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkCowStampede.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/perks/PerkCowStampede.java @@ -1,17 +1,11 @@ package nautilus.game.arcade.game.games.smash.perks; import java.util.ArrayList; -import java.util.HashSet; import java.util.Iterator; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; import org.bukkit.entity.Cow; -import org.bukkit.entity.Item; -import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; @@ -21,7 +15,6 @@ import org.bukkit.util.Vector; import mineplex.core.common.util.C; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilEnt; @@ -32,24 +25,21 @@ import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilParticle.ViewDist; -import mineplex.core.itemstack.ItemStackFactory; -import mineplex.core.projectile.IThrown; -import mineplex.core.projectile.ProjectileUser; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.kit.SmashPerk; -public class PerkCowStampede extends SmashPerk implements IThrown +public class PerkCowStampede extends SmashPerk { private ArrayList _active = new ArrayList(); public PerkCowStampede() { - super("Fish Flurry", new String[] + super("Angry Herd", new String[] { - C.cYellow + "Right-Click" + C.cGray + " with Spade to use " + C.cGreen + "Fish Flurry" + C.cYellow + "Right-Click" + C.cGray + " with Axe to use " + C.cGreen + "Angry Herd" }); } @@ -94,17 +84,12 @@ public class PerkCowStampede extends SmashPerk implements IThrown Location loc = player.getLocation(); loc.add(dir); - loc.add(UtilAlg.getLeft(dir).multiply(i*1.5)); + loc.add(UtilAlg.getLeft(dir).multiply(i*1.25)); Manager.GetGame().CreatureAllowOverride = true; Cow cow = player.getWorld().spawn(loc, Cow.class); Manager.GetGame().CreatureAllowOverride = false; - Manager.GetProjectile().AddThrow(cow, player, this, - -1, true, false, false, false, - null, 1f, 1f, - null, UpdateType.TICK, 2.5f); - _active.add(new DataCowCharge(player, cow)); } @@ -149,12 +134,12 @@ public class PerkCowStampede extends SmashPerk implements IThrown } //Stuck Remove - if (UtilTime.elapsed(data.LastMoveTime, 2000)) + if (UtilTime.elapsed(data.LastMoveTime, 1000)) { if (data.Cow.isValid()) { data.Cow.remove(); - UtilParticle.PlayParticle(ParticleType.LARGE_EXPLODE, data.Cow.getLocation().add(0, 1, 0), 0, 0, 0, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers()); + UtilParticle.PlayParticle(ParticleType.EXPLODE, data.Cow.getLocation().add(0, 1, 0), 0, 0, 0, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers()); } activeIter.remove(); @@ -172,47 +157,42 @@ public class PerkCowStampede extends SmashPerk implements IThrown } //Move - data.Cow.setVelocity(data.Direction); + if (UtilTime.elapsed(data.LastMoveTime, 350)) + data.Cow.setVelocity(data.Direction.clone().add(new Vector(0,0.75,0))); + else + data.Cow.setVelocity(data.Direction); if (Math.random() > 0.99) data.Cow.getWorld().playSound(data.Cow.getLocation(), Sound.COW_IDLE, 1f, 1f); if (Math.random() > 0.97) data.Cow.getWorld().playSound(data.Cow.getLocation(), Sound.COW_WALK, 1f, 1.2f); - } - } - - @Override - public void Collide(LivingEntity target, Block block, ProjectileUser data) - { - if (target != null && target instanceof Player) - { - //Damage Event - Manager.GetDamage().NewDamageEvent(target, data.GetThrower(), null, - DamageCause.PROJECTILE, 6, true, true, false, - UtilEnt.getName(data.GetThrower()), GetName()); - UtilParticle.PlayParticle(ParticleType.EXPLODE, target.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 12, ViewDist.LONG, UtilServer.getPlayers()); + //Hit + for (Player player : Manager.GetGame().GetPlayers(true)) + { + if (player.equals(data.Player)) + continue; + + if (UtilMath.offset(player, data.Cow) < 2.2) + { + if (Recharge.Instance.use(player, "Hit by " + data.Player.getName(), 600, false, false)) + { + //Damage Event + Manager.GetDamage().NewDamageEvent(player, data.Player, null, + DamageCause.CUSTOM, 7, true, true, false, + UtilEnt.getName(data.Player), GetName(), + data.Cow); + + UtilParticle.PlayParticle(ParticleType.LARGE_EXPLODE, data.Cow.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 12, ViewDist.LONG, UtilServer.getPlayers()); + + data.Cow.getWorld().playSound(data.Cow.getLocation(), Sound.ZOMBIE_WOOD, 0.75f, 0.8f); + data.Cow.getWorld().playSound(data.Cow.getLocation(), Sound.COW_HURT, 1.5f, 0.75f); + } + } + } } - - Manager.GetProjectile().AddThrow(data.GetThrown(), data.GetThrower(), this, - -1, true, false, false, false, - null, 1f, 1f, - null, UpdateType.TICK, 2.5f); } - - @Override - public void Idle(ProjectileUser data) - { - - } - - @Override - public void Expire(ProjectileUser data) - { - - } - @EventHandler public void Knockback(CustomDamageEvent event) @@ -220,6 +200,6 @@ public class PerkCowStampede extends SmashPerk implements IThrown if (event.GetReason() == null || !event.GetReason().contains(GetName())) return; - event.AddKnockback(GetName(), 2); + event.AddKnockback(GetName(), 1.5); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snowfight/SnowFight.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snowfight/SnowFight.java index a2e27f88e..8c10034b1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snowfight/SnowFight.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snowfight/SnowFight.java @@ -153,7 +153,7 @@ public class SnowFight extends TeamGame { if(IsOnIce(player)) { - Bukkit.getPluginManager().callEvent(new CustomDamageEvent(player, null, null, DamageCause.CUSTOM, 2.0D, false, true, true, "Ice", "Ice", false)); + Bukkit.getPluginManager().callEvent(new CustomDamageEvent(player, null, null, DamageCause.CUSTOM, 2.0D, false, true, true, "Ice", "Ice", false, null)); } } @@ -510,7 +510,7 @@ public class SnowFight extends TeamGame if(player instanceof Player) { Player damagee = (Player) player; - Bukkit.getPluginManager().callEvent(new CustomDamageEvent(damagee, null, null, DamageCause.CUSTOM, damage, false, true, true, "Ice Meteoroid", "Ice Meteoroid", false)); + Bukkit.getPluginManager().callEvent(new CustomDamageEvent(damagee, null, null, DamageCause.CUSTOM, damage, false, true, true, "Ice Meteoroid", "Ice Meteoroid", false, null)); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java index 818a98a4a..bff3a481e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java @@ -524,9 +524,9 @@ public class GameLobbyManager implements Listener, IPacketHandler { //Positions double space = 4; - double offset = (divide-1)*space/2d; + double offset = (divide)*space/2d; - for (int i=0 ; i Date: Thu, 29 Oct 2015 01:12:12 -0400 Subject: [PATCH 06/12] Re-added my TurfForts patch, as well as fixed the "Game Changes to build time while spectating so you don't get your blocks" glitch. --- .../game/games/turfforts/TurfForts.java | 86 ++++++++++++++----- 1 file changed, 63 insertions(+), 23 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java index 16df44336..3da737a34 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java @@ -3,6 +3,10 @@ package nautilus.game.arcade.game.games.turfforts; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -16,15 +20,19 @@ import org.bukkit.craftbukkit.v1_7_R4.entity.CraftArrow; import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; import org.bukkit.entity.Arrow; import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; +import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.player.PlayerQuitEvent; import net.minecraft.server.v1_7_R4.EntityArrow; import net.minecraft.server.v1_7_R4.Item; @@ -45,6 +53,8 @@ import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; +import nautilus.game.arcade.events.PlayerGameRespawnEvent; +import nautilus.game.arcade.events.PlayerKitGiveEvent; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.games.turfforts.kits.KitInfiltrator; @@ -103,9 +113,11 @@ public class TurfForts extends TeamGame private long _fightTime = 90000; private boolean _fight = false; private int _lines = 0; - + private HashMap _enemyTurf = new HashMap(); - + + private Set playersThatNeedBlocks = new HashSet(); + public TurfForts(ArcadeManager manager) { super(manager, GameType.TurfWars, @@ -266,7 +278,7 @@ public class TurfForts extends TeamGame EndCheck(); } } - + @EventHandler public void BowCancel(EntityShootBowEvent event) { @@ -284,7 +296,9 @@ public class TurfForts extends TeamGame { if (event.isCancelled()) // this statement might save just a small amount of time return; - + + + if (!IsAlive(event.getPlayer())) { event.setCancelled(true); @@ -296,6 +310,18 @@ public class TurfForts extends TeamGame event.setCancelled(true); return; } + + Block block = event.getBlock(); + + GameTeam team = GetTeam(event.getPlayer()); + GameTeam otherTeam = GetOtherTeam(team); + + if (block.getType().equals(Material.WOOL) && (block.getData() == 14 && team.GetColor() != ChatColor.RED) || (block.getData() == 3 && team.GetColor() != ChatColor.AQUA)) + { + UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot break the " + F.elem(otherTeam.GetColor() + otherTeam.GetName()) + " team's blocks!")); + event.setCancelled(true); + return; + } } @EventHandler(ignoreCancelled = true) @@ -525,13 +551,44 @@ public class TurfForts extends TeamGame { for (Player player : team.GetPlayers(true)) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.WOOL, team.GetColorData(), 24)); + if (UtilPlayer.isSpectator(player)) + { + this.playersThatNeedBlocks.add(player.getUniqueId()); + } + else + { + addBlocks(team, player); + } } } } } } - + + public void addBlocks(GameTeam team, Player player) + { + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.WOOL, team.GetColorData(), 24)); + } + + @EventHandler(ignoreCancelled = true) + public void onQuit(PlayerQuitEvent event) + { + this.playersThatNeedBlocks.remove(event.getPlayer().getUniqueId()); + } + + @EventHandler(ignoreCancelled = true) + public void onSpawn(PlayerKitGiveEvent event) + { + Player player = event.GetPlayer(); + if (this.playersThatNeedBlocks.contains(player.getUniqueId())) + { + this.playersThatNeedBlocks.remove(player.getUniqueId()); + this.addBlocks(GetTeam(player), player); + } + } + + + @Override @EventHandler public void ScoreboardUpdate(UpdateEvent event) @@ -707,23 +764,6 @@ public class TurfForts extends TeamGame } */ - //Added by TheMineBench. - @EventHandler - public void blockBreak(BlockBreakEvent event) { - - Block block = event.getBlock(); - - GameTeam team = GetTeam(event.getPlayer()); - GameTeam otherTeam = GetOtherTeam(team); - - if (block.getType().equals(Material.WOOL) && (block.getData() == 14 && team.GetColor() != ChatColor.RED) || (block.getData() == 3 && team.GetColor() != ChatColor.AQUA)) - { - UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot break the " + F.elem(otherTeam.GetColor() + otherTeam.GetName()) + " team's blocks!")); - event.setCancelled(true); - return; - } - - } public GameTeam GetOtherTeam(GameTeam team) { return team.GetColor() == ChatColor.RED ? GetTeam(ChatColor.AQUA) : GetTeam(ChatColor.RED); From dc535ff861e16531e755f185295956aa0b9c1660 Mon Sep 17 00:00:00 2001 From: Cheese Date: Fri, 30 Oct 2015 12:59:58 +1100 Subject: [PATCH 07/12] art --- Art/Treasure/4Qq2m6x.png | Bin 0 -> 173113 bytes Art/Treasure/canc.jpg | Bin 0 -> 122271 bytes Art/Treasure/xxiJkbb.png | Bin 0 -> 186385 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Art/Treasure/4Qq2m6x.png create mode 100644 Art/Treasure/canc.jpg create mode 100644 Art/Treasure/xxiJkbb.png diff --git a/Art/Treasure/4Qq2m6x.png b/Art/Treasure/4Qq2m6x.png new file mode 100644 index 0000000000000000000000000000000000000000..dffbceeb6e6c0d2b5dd76f7df5d225cec6c01c67 GIT binary patch literal 173113 zcmeFYRZv`A8#Rb)a19zXjRbcM1PSie5D4z>?jd+^hv3?{yF+kycX#PVr{8btuc?~r zxtxnrXVKJg*`CkefwI(*l0 zhJn$O`tO3pPy8kZ1M>++MnX*8W96*Fy;*NrW9xaMZjS$6$tsXw)H6$`vQt7|8yNw{si#4kTpw8n7(y=VBrhwrk z#5hMlqtLERdi?S<$cv)a5_KMi9dep;S-&t^D5#2QBCmO3?qk zmI(Q8{fQbM`Wyi#_rLXT6h!D+OacI1qfm?gxBmZM`F~sNxAOn&^Z(oG{{vU~e>|=8 zw8hfbmF^1eC%Oac6if_!g7lzO92wPr4%qvc0miRJ_dvaJ+Cuu&eqx8I4WkGjYhomn z{Q90oW89z}Q}CbfZhOo4A#O=+nRYYP9$^LSGfDCL?85f4?SYLy^ZTBVjhmescr_C` za3t&)cjtGjY@Nl`02N{y|Mza2q+f7%9S5WXMSHr_*23dYv5+Zclh8f3ZljF^X)s)( z-1nW|X~&im**QC75X*@yQga`hh~;I^8Lroq>{{5&Nd(UdrXV4VxtOT=z5f5j5|}q- zlVmG2?Ij!WuEGBFwA=}huo*+H%N97OgFX=mhp6s?m(MI`i3n3%%gP<0X`9VytVK-P z)(wU@PGo18`1r(obzE0A19a*1Hu1EcU+RD~7{;o@|*3Rof0qT%6{$9+3PkgTm`l@3@lvhox zihG!IaI>#7kpunBP=<+YzCOq;-q_feDXZ6VS02J9>N&~K`E`Gxpjnoy$e z!fvKZ*pv%653t+RXGvM=dKa*p*wbPr{K}x-6lf#s>z7O$&Jd=I!ZmM|_KRsJv)2?? zUG`AmLn56Ml_Wu&faH$+Ln`JW8Q;)O%Pk-uHRa3UOd(Syzh^Q!9#IRMYxu1(-q<+H zpO?{NjR5>+`Oh6s7KCCVnDUe#%js?yu%W5zD)@63ZdT$UdSKFe6A>Df_v6LRfv(-p z$?PAAqjY4L^AnzpNv3M)_jGw?@Q2L7bkdoOnKL2#e!y`78M0>=1~l6b^eF5r$_$Jo zx7h4!11!xvcqW46J+^-|Ws&Y0$3kjMb9Q?Bxr}$! zGAT1m982G_$dEEnZ?5HI&hbwjf9g?x|1WuN`rn)m5w)~aCv5(FJU1k+^?u~B>x3XZ zoNr2&s*78n-=+pwy<_kl{?=6>kwe!$rK#-(h-0Xrt$?}ANu>ACe|=rCQK8KFl&<^J z;+z8w9-jG!elLFH2b+xmRm{W`^6r;^vv(kaNKKN$I??6R;r%j#TonMwfiNBP`~C27 zV-!8xo2IVLIg>QU@THeaZI+XZ1f#QW_MZ{`;4YZ!bo%UllKf*i_uee+|H4MvuMgbN zsRc6$`_yKS6%;@&$m2Y#fV|Y^PW1XZujeIutoL&rC#x=5$~LfMc{u1>s57Q1p7^fC zz+2~la-6``J!ee)a)H~EP?ExFhkTOM$7nfKl7w0H1yGTztG!R<#|(xJ#RJ)@!c7fe`5t1oqRxAOAxoNk5@;r}A# z<@Lr8miGktCi(tiX6Et^czxJJ*GW;zgjTPROH4>KTvab`lPF$^-j}ZRwkF3uj78^l zS3zR3vwYk3#wD*jQ8HQ5`h@~V31iDRE(Nc^(;S%?AL+S$s=V+%-Q@yR}Z#;a|5~ff{@TD=`dNtC~7v6 zP=nxhAJc4ucaZzdlUCR7Z^%_cu!Wxr(?~K^-`4q3l1{*f>5EyMwtKk} z5{S}L+lNELk1q>?8Wi9+7p@)XhmdQ#Cgn21{`;nP;TzqAf0qQ^v&~kua;55ft*4F7 zyW1Ul{;!y_g}5^D1Znl?0(IY&Ph(I(t~%+narGqqpaqQqhL|APQvAOZaYO^)=OKwm z?j2z8&M+H8ayNpoB+t2hqqt#Ez+ZJZ+O`l1&S6WtiR1R@=6?cSA33sgr;4>r8LZ{5D#yU>gtc~eU8U-XKyc42g5 zncuWsTR}7!O&>0nd$#+$mm8d!_MI3~l;R5t7DnL?r=;+RDep^}=Pf}rc3e||*U{Id z`6jsHS=hx9bK(X#X4VWcC(4WliU@y2M8X-9rjsI+qJg8K|2~!_;pX?jXH_s^hak#h z=S3SJ+f=a&oYHi}ZHu9W!U5h_B6Uo_4T2Yjw?z#$+Fc~Z9~OYJ^ts6h;9fOpYrnX{ zYxJY;sU|b-f$iLv*9Mx!Zi}zmWJ_+8dm6>$hqYFk_zhlJ|NhD8rCtS*k>(iL_{4{X zuDDYVn-L0cr2M-MluzbV{Y&#-cp0Q@N^MDVK*-^OE>@qP7%TJ}GKo5_EYDi}kVD0n zOg~Ge7xl~RD1j|UjE9uqtNk|>d)e+R6}$Q6to;IyX1D~{)S1$MTKrKKG&}vnCu#Au zB@yr-t}!wyZYg;?L$EVI$9TH#k1STE)H|rMJ6S z82%eJ0)Ah>+nb1JsT4ym+gI!036s~fN&h6R&O04#WJ@cCqf|4i@3y-7Z=qkJW7UpM z^ZA5AW;#RrfMF_~!_t;nk&D2T;xNIRTUG;xo5;{c@M@{-6o z=ScoS+QT1Nm%NNu{85`dpbtM)H&VCA>G~_GJ{l|m=YT= zg;P4KZLJcRLUw*HfQTN6k*?BPJ55zK@1*}XVH9bK{wsq*E;g7Dt*|<6SoG<7@^;tW zgI^|o2PPjESbFiDZFG(?|27iVLHiITifSt2U=41fC{g;?EdUoZCA;rrlal_FvWe=O z;e1PbkMw%F2!1x{?Rtu8sIKmBaZbqO^GlDsm5a*C`DtX74g|fiqRzk-2hc3%RPD}| z%{&62p-+hdv7Mmq(t<@kO22?(6Agk!uMz1Sk z4mgpMv$J%~sm^5DXuCT6aGrr0bvZRj;xKknf*pDz62|Ms|t!80dQlT5o5YqW+KrFtfo->rEfp(m*NPR5g2b?^% z%L;Y9_%;o@Etl+Z1&6vCGojZ^6QIx%LP2v^AlDv+>kq#vpXR&|0=dwMnG;U5{?3^ihiHQ z&seVYO`Cci(Ts>BQ`GsFbFm_)--VE|`A}+hdeOYq4K3DAKxB7YY}CA;S|=TJNCEpL zZhCFGroGrT1O58?;Dz?5?$?}VVH<6h1K3H(w9RW4jAj!x%O&Tm;%HHG-d3wrnF&f0 zYAW}Wh=*>x3KU;dY!Twn^{JrC$x|OzZ^4H z2Fnhy(;I?BRj4nSy>TUltot}7iX5M5Envp&)v+J+TaJj;$?y!$_;7-glm8!h3BlNy$bu^! z#+~eAxv)Yf`~S=sx4BX|d|6aJn@vL#e70Jb^)0N@_^?42Ko}|Fn<~j@nT{)s<2d&z zhMFuwwMD#CeS*Uk(^z2iHu4%q7Gl{Ljoss({OR6Ja@FusX*i_F>Cc}XhrFK}Ek zCDvMPgy_s9&gv&zL?JV-gkhZpGutoPhL>wW(GjILFw-#;(f76=7KImo9+o3(MO)5>2M4w8*1 z)Ak#9JCT*lj}`J?msfz&r8CmG$|GvYeBWn7G|NL3zAUuZ2rHY0GIVxL%jx3~!bJ>F z1HEPV(SeZfY%*VX8rI&g9PQpuezfl^uo_#G! zdjjD96>^djVpB34ul%G4NAh)F2=`G-D>LUcB6 zFIGDpO)A{VeG>lb1Ul%udRQRBcmTIe5w4}lPG3PjkDo-Oyp>Yc(d@sRN+qxnApe@? zZKiA%>hP)X;l9z30JaW|vD4;@hELLHr$(6TEXls$c_Jm1&Rg&8iCuXpa{rHS_ zqG;|EL*!|?tEf?Zm&pIPSf{}XTEx(O4mb^V`Y2!ed7)V`n{ks7I;Q!s4p(7`&OL=) z*9pt5H(_Dk)wpkBVv?^794J_OQ@5~vU`Uqr+&97<;>y72iUTXdq6*EP=GH0&XR6tU%l9FcT0%%M~EW5*>cq%_BmCJgiZ5$9lf}co^O6^)gg)O@Z~Mr#M2X!)8UVpCQfS?{yuR%h{-9a_6gZN zq+e<=OWe8oBvv@K9~L{?<*K&GW|g9(g_@Y(MKUwu1>5j2eK0V3TcIZ+QL28Ean1Ox zM(-Rgci6rBdwj?outFi6WZVY>yRg<`5$l*GNwyOPAcze-WhN;9Ubhg^Sn`5E+*M?j zMQPEhUhcd))Yygqz;=@Z@Psd`=UH+g-U*G5K{>l{GP-5oV}L8E-?F79-Nrh!PG)&J7K zI<08%X2=k^ z>}#Q_7}I)#{t~rdq95uXPIEg9aZj&v^}t?>Xm$am`Bs(|@da=;sHy>7O|OygNy&X}bZ=m^9U^TY zOBJA=Qdjsrhgx4-Zzm(CE30AA&TzJIT)mv2)tf-T+Wqcj?2WUSs`$fw3t}P<{?oJL z%AXTlN2Wr)R%RvGXS zU1k=`>l!ToR94?@YiTGi{S_)eN2im^+Rmg}y~7 zxtM9hp0ocv*U4yHe@|`@N07on`o*SvmxOVjOxN(IC_>7PBh zB9M9SjcXQbpMVfdU7>kXqJ)ezwZunnD~Uf!m+6X-bfd9K-{SKjz3cn%3TZ{`PA^O% zNBcWX&c6BP4cZiy;z!DiGMlL;=dqlwuOvfUOd8A)b43uZECscvGJ+@MGM&-yf*8-V zxN}J5a0aI7MFrt~p#-YM3}19HWuJ$ubOT^4qvVY8TIAN=S|*(jvmUP>n%-%>A1-?N zn^l{b>${I(in$IIv$yguy@)j4L$_}GYFqeh zqajqaWhw1@d`|rjitW8;*80yLrns_J+||h*hT%75`w(zdHmhWcLtYEw2_6wc6eb=f z=3cCIBK1^d7XP@?ou{?OyN#jiMEw z-3?lqI!99mnfSf={0V^^Oa)x|+yGR#oQP=LAaPjJFNTFdGwBDt)J51v5ruXb2OSAI z#Yho};y)3 zFw!U9+q^)7=5IUsFT3WV-{SX<9ZN|FpmuwAgSDHO$*w|tn3+E?))vs*x zBlVqk>TDBx?k}#x@Lz$?@ZLXcEiiGEkvH}kkv5&@kO9eT4mJoQvbPFvkBV8_1$sD! z&y?+Nsk3Y-3(6DDGl0IwC(_pVO}S{bR{eNU{Su}=LKXToKWTr&2VKsb(+ecd`1&nM zNzbUSHAz^dVwB`*bwI@OWVXOEJ-+A%t_vmzBar=1(b1H9^b#OX8}xK-Iq1TGN|IvE z5dGn>)OfMMTX+Je1i_fAl;r@=U}x^;4a+w@=M_tIrY^4Pv~ve$@Uk<98~HIW((p6c z<7cuNuE7H!!r`1Kt5{);K*-+^PD$48zgvh)YQuYr@F`|R&FAZv(o6$N?_(L-b!G%G z4cd;SAO9S|0mg&fDYhF$U-8U}iraFYNV~0}Rhwm)R}G3BzAxP9hUc6^1hz`oZ`6Q} z;|KRp3yMI2!+$^h8#p}+P9@MW&sA6UiPlS%507Ld8z2AG$;kTp#GkZkbbcxzh?~p6 zm-`6EvJ<#>X+V$Va))ts`>^|;gaGH>c&P$|7vYRpUbBho?n0$XQfc8ZdM|S zVEbE*m8y_z+$)+k{H0>@@Anpt?z0!_1%c$~4+oVuh_t1#0awOz?Fe`V+bhXJZ(#gh z>_RTfav5#Lr{~WM`#pi}Vb!`J;}AsIV0bOMKfVnmDhz?s+8SrsOffU*SiX04Fa4wj z%ME=48VnX&Gc`jx4c^Gf8yjLNgAfM{lo%SEtVg9Rc~iXEr+KD-nFr2@L=LA z%q_9y)Bkvy_ws#Sly(#kVL#qSq0hyMM(eE_P>cFKP%aJBPWNQzMPzf}AgAN+&-iS% zz0jg(Z3rBGZgWXFYN{NY&dfG+crJSBjE+o^IrwkV!ciYB82?=`UBJf?!jM$U=yUF_ z;=sb{V0p=80itBm%=yuc1S?A#QHU0*`mqq-H#F4?*X=I8u^a{>bo69*CiTp zWk_q58dC8$WhAW%aqS6&5&>k~uxOyqbBrMPY)GW%&9}|7kJRt?v?W}*@8Q5(zQ}wj4|5#zMep;8GGD#i4MC}!EU4|Q>r3~BQR*4a zZb)IB@tv(+O7Z-Pqw4MqfepS2kpG0~Q$wH)DHX_P*Qc%K$F?qcYY;&7^lK#7^E>9m3+G(n|el-SZP>p70yEkJb@c=pQL}pVxU^QmaH;t3QOI z0cPv=30O=odUZDLr7ukejR=neN>$wc~5hMWs^q;QG0M+$YE$vH7OR-8wB1&9tbAV6%S z?2F?`KVma^yZ#>}Kcyx0XaW=jVfe9_FG>()C^NeamfwqXif3S(q6vS#=Rq_^{m^gO zsANErFAtlg!N1`-NprT`k@RMT6FH&UV%bQpY96ASUf@Z)&w*+Msujk`xoVi$kn*9XP;HTl|muqjp0;fNI$dgXHC~u?bG6s0dJ)il=c|uaSr*W?wu@V6r)(i$owuBr$d9Iq zrvCM)w@L$-na}PTcQlgePiu`@PJqPYIQ#7Nf3yIg<8-m*RiI%#{fFpSFvqe5sM;|| zPSwQ%1ufJjVGV}dOe5+?sg8f|{Q%Qz=x-_9pIHXpYGrDBj(Znj%Z;YOqf%j=X%xn!m$&mpn_aU9PFA0CpL;WJ z8iR}{D{Wa{Ws$-eN%*wqxaVDC~T?OG*ZcVNFj*!MhD4!nkRQjPolW<^KEY-)64EUmgCu& zhlm@iT!tS!_}dnGt$!|bGhi#bn*`cX`MzsS%hhOabqB7mIUISpov+CfBkh&@YCVEq zIjOl=q}mEjvm*v>iApLa4&2N>Pu4Hf+Db{FN2)JYNfDv-M{=JK6#>lPljQRIQY&qv z1XO+&x7J~ku%_rmlrbTmsQJl45^6Cc0OV7zZa%Sj14sC_5dnEWeHfdP(kDoWuDZX) zs#PX7yR8oTfTkl=&4Xc9;(o@DAD^AgRW{sI-OA*Bg~^BRk~5>AeQ>XIm`aDDcBwK7 z8Da20i9_|J+ou)Fi3_T&^WRo}MiFnW)+&5avOPKngY?I`Em3p8994zcO8!dB40^vA zxdroMZ>-lLy77aI14*ToubxZx#RVAJa?TI9P5#Gjot}I8`j4$z*X@U*!a14n)n7wD zB3TYF%c4Dd3%1d#GW!Z}3QHE8 zec63Yv#b1`aV~`2%5;Cjm%QAvcf7Jrg#ridU?jZFF^hAkxx2%moHy#m2k zA{9gTAN3fQY%Rq%N$n{=Y4k!Fy?@f)K=U^HKenNB|oWNW4WL;pWxbFCKIGMTojq;6F z$#VpD16-t~cDxc!-Qy5Wl?-s+$wdZVUB2@WDdvpX8`PM6ne=+i&~7yP2+QDDCpKfH z!c17A$yA~lEUwhA1$f#*kY2i5Fqf>bEx zxlz5s5sRsd3vC=%I&-v=noiq{5<$z!?WwAqwPD=N5gQ*$eU;qUWuba;$sm73V39iW z9?g_bpbQ1uLAuIHz%fh6@frN@$euxwXcBb?V*D5j!@!<6+;HxGo+E}$$aB@&fbr*v z>xUdK1q#cCL)%6gz@e8~q@VGRd)Du4qWyrwsTG`g8rgYVL_9nz=`)|gqM2VI;+n*J z`I1@WOzM}0^T5CbT9vUD!3!gcKE`C*)l}38C^#?Td>T7GH^5W@?F3@u6dZZRd3iPI z&-C;xf?Yd#XNd41u5)~{4uGKQ?!zvyhGG`QuKDJJ85HTC;}q(UN{h5g^WXW5^YtJ+nMiwV5|gyxsqO?6Kr^3=aeg>MjOWYk>gs)a6)ZK=x?ySCxhy@a zM_rKwq|8(ryZktOco>=k%BfpVwY!Awl2d{9V=hTaG#H6ZBi=3096) zD~wZKyH7vT2jfVs{D|tawwlrH8UZteNJV&;D*F0undF=Ib!Y5~Jc=$bU$YRL_2WpHz zcfiy!-MSf$Er3WNN$n zS7z;Dw<1ra?lfLUh>o+*v*%6VqNj2RAVs`ad@7A;MWbUSMnCDMjY+76dLS^`f#o0N zVk#Wt6(TibSuUFCOgViKpwMG$d*~ziN0V2esMtXb-eL2(vB4Iv|2>EpW1;Zw1A%Ln zSKMdv*!0)6BEJv1-YMRR4_>O6t2W9Ni6~KYPLjiDZi%YI##2(R=k;;O6MUa62joRO z66Y6fb2)?p6sY3?^ollaHm;K^d8!U}Ht86rnt$loEi=K3xF)#rc))Q&kOU5)9D?C* z=NL`SJOaAA`$y+XU+I>^PHB(T)s3+cjZxG-wk{6~91f7Qj!luzlknvprO0)P$T}K= z;jpv8E3ndk0-aw(MAAwvSwrqFtr7f!{j0mkqBZ1**|Bb7UoNFIrqX1#p$)|rkC!(* zCgml-MS)&YlvTrgIY5)xhh`hKIWbP|)jCrb zOxMPv*9#^V{Q2rg5-zkT?G|NV)jA&%*7Ni`jxBQ<3q33`Q25?C{@2o%6XZ4+?T_rA zE!CviuJYEnj?yEAJ$)1u?YVrrXoFPwU*!-Jm(1vvr3FRTdFFN;K6#Y(?1Wm9%yL2{ zEWP|gV`D;(nQ1#8o6ZWG>%Xr=9B;N$;30XA1~>4qI$c*z40@Z+$L^~hEwbMBrj;); z5|m)8JGdedNd`HwH!{s|0fS3}W{6EuZGs7tvL9#djKPChSRDMW;go&@b+1thhv2=< zH=5JM%B`y&>$>MtMW7~sRBeH#uqESMpn+UHDiHD|#b;D}LA8p@k}N+d4;VOySb(4( zKS+eU@B6FFxgs;Tem;+f^P8(lz|2p|3Hp9eDy?f4p!##foqrDWL(`LJJQ?fP6Ve88 zqRl?Ee#L%@nBtNtS=1%Q3tI5Gsp{%)JlFLcVAB7pjdB}AeE3sEBW=1*$my~Pa{GSy zZhG?4@&Xl@wni_$_xc-6uMu<3Y-lJkY4a~3IPb*AKoBx==P zipED#)D(Vq%!`*R z671HF7K`a66;$m&2D3Je62;p3a?4G*>VUqfSG9BIh$Y@o^XI!#<{b_Ceg;v%=eh7$ zFJPwtM+F#_6Ua|8o_f1G`_lC26D0byZg5qq`14_e?9$`%GlaG4#+Y{EE-LQS%Teij zm|K}FUj5DZg)M61;_C}n3O>=m9TtHMh~CwYwCK}a8&Cf|z1%D(l-Mo!INjxx7#hwH z@k;QNjPUyM>W$EN<*C_pqM}gnfD+0sSiZX{YtkB!t+#C7-Lc~FwiNAm4eIqrJBnze83Uei)?++S7B${qHyrNOh0zVWIx zKTq$?o<>qcXzo;UV-+`Eb0@34pt_TnpyGo%6~Xy}tYcOYI9FQDxPF`o`cxa%uj=#% z71!(hqXS_vag9Lc)#ivES0+b5msH8?%HhDSd3C9=$1dC{M{y)8%^5D7^L@MZl}?ym;n{_Y#5jZy9uiPiXbV*^DFhG=N7I1^M0Gh%N>H!SkQmx*7zoSJ~ z2H6BXEeOdUEKQlK&2szD)DiP(>g~kSh_T6RrNr1)oS$_3zW)}qbDgj&FF#S;j*pEm z-bJTUI{fg(`Xj~3Xrz2S_3Flu3IIW!X}|^-KVRkfF*q3B&;G}5 ztfdvXTx;w{B*<8fe`?qBm3N&l(JOEZUH_dv`;o?e>uij9x9+x{_ekTbn2z{xv?{sHSWDi9%*ybw)Fxdk`P4@93mK{Wg`_ZKOg-r9z>@?JXsDCJMFg^`>5boLp?Z~=eAPNGgGBvO|z zpj3cj zYHDlmldCl`IU^^R&`6-~qLZIZM3v7g#YN{M!2bPsvDW_*)4{>=fTIiIeR-JWe>G~c z@1V%;XPEv>;gy*p^j^gLy3$FZ@}o@%%wOg>M?Hmkx-xBWC<0{20|wtHQ%?5^H8u|4 zd^v6Qd81B<%`|ZtMUtl~XqfxyFz(drly)=q^^H$X4udcSNLxBelc~yHpvth{_0H9x z*U532FK2sHMJThA+Ap4;#KyIxl&L+_9|!Czb%+OMhB`I$`eF%<>_h0XpV!Q*J#U|w zSGV%jt;yMcjrMR*2=Wgi`ycZ1d!Jdnp=vi6;)y~|-$SQePx(c-`)okdw+!k5>`3{( zRLa`SxXDbZ)!zl&Q5UbCRT|6xxNQC)%b8?Fjx6|aLg-810~oqaAOdHwZVc2UK>1GYR?)S? zK<@ykUiLDc-WS>rin4Sifh}3>ksccQe#;h)1qORJ-&=+)*Eo|79_h#J>k>ikQtBG5 z_lT67HY+tmGUBDUZOB{|rFENeipik-U$8 z#R6Gh=cOTYZEqob88~Ip+sjp67_8o-O6>ei-Tg+vnq-Fr`4DVZV-z{lUe%9yzwmpf zv{(egmo9iEpGoYzvV2o~aYrp)hy!yL)fDd1b{&VU0WNy}e zdRCiGjUT6&_NQo?baYOMNKV>lI{cWa0d<9uk?K&D7+OV0(q>Dv8Q<`%|K1R>_ZiNF z=o5BAvCKc1DOuJ2dPvOjnKsc1XKc|m+qiXiT zW7!>T0H|1a4OM9Kno4k6*We$dU&W%b7=|7T&Q^RzZ)DaHlCIgPZ|ZUwwXp%|@H^%( zfSh#rY!9nEoGIG$O&3DDJ zv8gj6cFlTg)yU|EK&0w_%&4D~{Wu_BZmy0YaJ?K(@~H!sk3fZb+`Xv)48Aw8&Mzq> z?G~T@u7pN}y2cQ!*8!rXdPDBE%Js3WuSr#Jv%*4;ACX_5C)~m>{h%i(9LvSLg%|CY zPHQbW_08Z3sxhOYsXnCfyT`rVTeIcn(B?<~TV;%&8y!bL0yR)p+q!12XjaZH#opG+ zs7asHQ*vaJ>mI)NR*XlutIEaG7KCpqYm&e!c zAZerg`mP@M@AeSfZU2rGyS`dV^YKSRdJcH9tEc;ETu8(XR^#|vS^#ZKT@U>7;i3Og9Q4i5k5;w`(#-Uy39y)I?()Vs_kqpNGrK?LNwPG|}77lt!1F z*@vtJ}U#Px#b8`_=>;7-@y(Y`|y_F`n{ZpP=!;*6si>J|S`2uQP zj=72i&(Hu?r=pLBMZJ1{ty5xY8e*r%b5qM@;I0j@D?X)ti{8y<6=vdkxQ0_N?T5*F zx{8~vff6=CTCl*Ym9316;)XIKNyI?)=weKGDbt$c9u9?wTMVWDy7N-4BLRkK|uv&>m@RyNVD z;T@waqiJb2rM6?QUtv$)3m<1`Cuk%xH0<0i_3Z17nw8Y7#f)>2WT%@sCbte;0k$aU zR4e#36LRV;#K!nP9a^Uv9PJPH>_Gzqu9Vk62VxiOgI&yu20wd=LjyUo&$Kc#I>p?u z?*7j>W$@pGE+LZz+Bf;fo#4>bmW!t>Xp@=*`I(sfFren{b79|d4#oeUW~k4(&oZ*# zsr4ahqC?;_YPFQApR%SAuke0TUh#kWYr2T1(r3D{R}lOrhtG^qr8UV4+T6C4I}ob? zdg(uPUG>W2V$apyDD&ZiEt$X0j36A*h%*X-0yNw)DGr_o6I!Kieh}y((>wE)Zt!DGE;!^lR=N1A9W<1IwJEGdAIIz3*;W zZCxk5MLw!&_w%w4qq!8$HdX{o(>9Zc0lJOt=wZ1wv8y`qjTyC?^IX%8~?qHbBR(&gHLTNh)VVut@6^Fgvp|;GIv2^q7Y3COn7Ms0a=^cC9 zJw0nt2<^|k`Rn}!1)HjF)lB~4A-W;9@mOzNe%#6vU~+wX&U0iOe)>TEQ&~rX_$VH4diC?Emb{_(0P%t4w~-0e431rzqlL3 ztAvg%{VS8YZ#MepA{0itUrqKCWfJfaNh0+pG2jaOhAH}TzIml#7`_anT{F$=k6=)K zEecbEW%i)rPAVWmP|)0Byw@lT&z#Nr#ps;_~w*&PFy66%BeeO#Tmfxncw8 z-$i*VtC!aezKEvXUKtY?CojJoAiQR8({`GIyv~$m{|>dGxPdsD`D7b&f@?R zXJ-4Qo#L7|(a_}^;jFom>r5XTtPc+O!&L)xFqPytjzHKzadj+YKsd`SR>XvnaUW3l1Ci@|IiHcKvnCCD zxZrT6UnxjMWCgAM8dJDQ=nj}|O--ec3ywMGhr0b6>_(fuXeifP5x+2SSW|E?B z4dYNr@ojcKbZCe=b<bQM*d=Tgd&6#RYjw^TAn69DICJ z)26?A&6Y0;&0Mde{hyd8U(zx>uPRp|VDF8dnKhdS6rvyZCVnSG8~s7G+GV^hLnh0g z=o(MA_ij-}t=P>9xfW~gNoK!g{ec^8yr=r>yIvu5OdHXxNoD88_|YUcO2YuAtEf$k z>xB$O*t=0Zq)TqO%tO)T&Wf&PKKopY>4OXwx@zdaYe@U- zHuD*6+kaq33r62WpsN^O-^#&vKgoNk&ipfcurE_Y(nxCD$6Jo`B4$!DR!*q}_xhRJ z97^0@83Y{3z1KQ=nt}GgYSa4A zxx46C5k`6Q!^t|7{YRZdm`2-u_B8WQIxGC+mbwlp#YQ`ScDyBhHXMoAsW=u=a=6EP~`Q=NI@aZS`^xqWfF z=1Z-fSs#T4xiS=byLqp2e>rJnns9QHUlx1{TyCMecu;+5ZP*z}A4U?XR^zRF@U-DS9XRr)Zu4Sv~2sc`z`!rIIEF}6Zty!P0 zOiMRZFv3!TYMrAug2vaM>USJaKBwTAlpT;|Zb2ttSEgb=B<_^^f3yG&H^b}`6rw$Q z*Ld;@^4MIyH-#Ks@An;vUQhKpo)xu=MOdVRdY#Ktr#;D8&R0B%Qj$-?tChj^E`a;J zxFOHI2VKvz%1bAs&2RKW@i0)L%6n_n`?J-k(pj|ash05eva&MCs2pJsZBm^LX%QDYCYFQJ|1?Wn71A!Q&z^@IM*`U580 zfl7An+iz%wr<>~?kA@TS6IU}CcEkF{*dade8$;l?j%R*;_5nG44`HQNAHmJ%9=}f4 zRbN1oL!TP!_EWK*yuVWT5GKXp%sOeEY7y=_x3=oB9it`yF?V{{^s~R*&($J9-1s>W zW=lc*f*1g!LWB~o?ZB`8Is!-P`po&cgTS2!xDH(889ib*EzgsC z-r&yNo7pH!S2IJn1XFT8FKhNb;)C`3nsbE@_W{A%L zEUJa41j_h&$YYX)htWU7u5&mpgpPCtJ7C+-!aX+scvYa(?!Ac;D6Y z{AY%-Zg`B>zWEg`%jJ(-kY!j($Cuge?+n#n*}fLrwNcWdc5as9P(NNz88_$Bol95@^W;iB9f|Ut^RV;f zFlmP$i zmXEi@@wUyztvk5t#V=>gWmnC?NLhxWqV?&~7zCukARBm^piniNi-YbLcRq z4ng~9=z1H2CS31L~DFsIVCKgtxwhs@W*zyrXsy%V+M|MB;? z4mkegCtu1N-thA5UOhc=mf7h!9NVJ5x0`agh?~!2IdZBYiD z^AXx-em|@biXZX9&+8aFVbtcib4bU=E|v`9C^FX$RLuPB9PfVb$N1Cty%oon`sZ;# z5`{pLvFr99Jjt5XgY$Jj9;s2c+9dnc5;e? zhbMFfVUp0_*Ujp&0lK>i+1pQbXRX(nF#GrkhIVhx-kLHYw3h8^BWAR(ewwn-A_kFg?$k*>@;h(m=wth`=NlYb&2w&kB_o$UnXa+b zh(rhXDy2w-ATh-*@O=^$V@ZpAK96PFgmH`?YBPf%3Q1PX&oa0%H5@SS$F^-!2Z{6m zkjg%iL=i_Jq3;vcmdL3lU9LbT5i_Swabo`gCJr5D;_wlwON-~7DICXU>&7v*Zd%3m zEo<4dZkTd0&$~bHkL-K=6mR{je_-pAu0aTiWjjb|ams`Uhkig$Zx7|3UW9<484v}2 zTUv{OYa2}>Lmbj`Qkj{iYotK`Ei+kCE;wUh=XU`6P?blxifM0L$*uDEWcXo>9|(KlZ1bIO-N^&@@8eg0^|iVP>S_Z?tZC|rLJ(sKog*iO_WD#RF98w8F7S`K|C=*ue)TZXh^^_=&YG2h@ zCC0f%lQ#qjIXlLWQ@b-gzl&AOld@pU3lZ28#Dtm_A4K#333JM>%`wAd^Rr5j4+> zSE5)hv2ojGc3rfComq12le!bBOR5oS`?elq=b;71IH0B0gA+OhK zTk`b5AKb;aKmBnYyX(8eQ5XTA0Y0#IqW0($h4B9^=<{Y%{4ND#ad42aE3RbZ;)}6z zxfXVAgtbyi99!$LqFRmRvu9bFoMidTX_n7U(wJXBMIEqs12|%e;(ew-J_^kJ-{>B% z9xo06(>r!<67P7|oAK*SPCasnMz!8ii{dyYX!=J(@G`f;d(}IZnxdob2Q#jq-*!diGE=OZ#hQior zHj`RhT;e_N`cq!^@|(Ei(p{OSWfFxM(^Djg_P-)QD4kXzk_ZcJT1}!%(YN{bUHeQT zdekQH*JjQa@7lodK#yTz(oq1FN;=+dV{Q?@)}VXcYHE{H+O)dEo=xb&hN9@f@^V0P zeu={95TWl=J2%UbV`tcP#V#EaWxf}mO_ZU%IZkF`$xnIEUGJv}YWOw=%<;QogX zbLHhb@f%fg`68~D&$_Oh^a*i^jbZrQ+#;4`QSK_?*tRheNV4MJehAT!o{3^IX(4eO z5l3-mJP-r{fgf=6_!;&cJi$wEzKQkg#PCl+?cvRIm%<74moZ63P&j_has zqpNtq8-In-4VxHTw+ZQb2q_4{P?JZJ*1F70&CynEQ50uZcg-N65%@HHA22XzTld$3 zLS@T&2$-8+px&s{sMoZMOQHyt7g;)fgoTsGm^*ri<#T6HVYuSFDCiv+VB^m1Y`bU| zJ1*YMnhoo5J-5|uD}{{eIQ|^6HpArcW4z_JK1pJ^yz48s(LFF^pi3JPXfzs}Ie9{V zez_bfj_K|1qfjnG0?k?t6-OCkH=W1U78YBiG;{As%gPQ-dR8cP=&~h|(jo{0RFY8Y z>ca6nEX(dVFwLEr;JcswBzOMvXJ}R{G4Ms;clJ)y9)F?`{@*EnW#A@sD*Dp^Pg)lJ zTemTI$sT&wt;ca)99z@TgD@bB0^&F}o1LBAKv5j&fxEexqA-LwCR$!*`OF!r(^E93 zXK2jM5;Zzbd@VM=Q91kp4vq)3@SUUe|?-n!ifuh}JE1dx* zZH&PmjS4sog_arguk#rZg2pAb7!ac(4T#Rwd+^&n%CZ(bxVng zsh>WBRVW}xaC^G+TrtrMJ+U&z356vRT-U+2w9lz7ge_=kX}Qj+Gt-=%TA*Am@RTR* z)ZJF3GJRZPN=D`MIlP`OyxwjAs;AFU7#=_h(Uvi&U#lY%T;(%AwT#Gl#D0LZ9Ku?S zW2dLtylD+ly+OWQ07uI}l1S0Lc0Ak6(t;EQO{8VF1mLEtvK*Hm+_R4-U9lU4$v|u) zr8pv@>H8c$Ifv^wjE|4tnb~sErhU`%O*#)eZE49$8F77*s#w19#lU$AABwEY8kkoAz}#-OLMq@vUGxNY}&3$rCJ` zKE>j(L(CsJ$l{5k)Mux%Ls@&_8yp>B>m`@6>7t9+w&xN?$Jb!nDFZbz!ukk1tl;|7 zxc)3wuuP(qwo!Zc-}BI;$9d7Oy@MNG@mkXjTBt}7_)R@BXf#+{SirI^PzjA{g^fFQ zA}vYSXyVr!#8HT4TUfSD(DZ3mDn>uq$^5l!J41ug20;i(oG5DbIv}teo35T-Y{$|2 zsOxq-Mx(OCU0?VNw|?rcSels%4P^Sednam>PZYxc^P7JTcph3O_dK8oP#zs+?6S)l z*trw8P{cKxNHg$hH0$_5Q{T9z1Cc@^EotTqF|k?Px;u!qrpS^yipQK5ElX;D#%h)N z)HIEmIhr#IG^S^1E-b8^J(ZH+s11JA?GOtWR{QU6nfPC98y_|)~8C2W}S4KhD zavEthWdOK2k5Ydx%C@=Z!TroGEHOCP$N2at!@~m%4)&4Dd0I$qyI^~oP3q)KF>DL` z$#iz@#V^CsOtFkxaBBNnN)+|er^%0uWWN$FFOkGCaS)In)-dBgeEJL2t2JKz+Mmq? z-zp4g&d!qS?O?Z_wM7$%XcBAV0pR5 z*{NBAAVLU%BSY+57wgxrMoO(sY`4i%u_pK=7wG2Gd1#`Hn@p16H=8sYKCx2ld-Mo* z-?NXG|J+O1bMY=L%c9}+QOgZv)^h1{H5+w4_5SyA`&Yi0t(S6dA20jO-{Z1pJQt)y zNr_6xp3AZ<;y9)mv>oouJT=bdc%9OLC{|SJb*l9m^QTV|`aZdG7k;(E^4T+lfltrY zT@-u!u$y&G-T!^gJo+%FAAJaa`Ft;H+qM`V8)W;Q-E4o-li9TAa>~PN5SE*{zKA43 zBoR`DxZwhxKZEB_V@0(VSuIYe*L=Qu>jQk`manmH_a1)zQ(w%wI%&DomKKSEz@(Wd z!Z0v+|ss<=c}Sxs}m^`KrA(E z>bOoetIp-~ut!+yl(~XJFN<$BPnJ z4LljR4tRY}cUive7jLG%R6UQ47Wz%y0bigHws(ld?lR@Ue(GVw>1T zLn8!XOu46*q46~|YE>S->vsGgB&=1=Gmp=C4ja}Evt`37wq1HDo36N);@CzKw`A74 z)(MJqMy&#@sE!j=DAtc-#kIC;s2Q}4s?YLLlVc~Q`Tf869I>$Y&CmWj!|OI?2tpji zRF@WM)apb*NUhl*3PW7iC0{J)_clAr`fc0sJdexaQ^`MFGr$sL|+eORxSP%3&T~rbh4X*SK!xcZ5nsO z9P@q6@DrI{{fGXMmPNi?#48ral?vp_CER?Dg{3MFJ+z6{3P>7Of;K2O%|VhqR4_TZ)9fz<|K^REr z;F&2ljtx=l?!q=3LOWY7s%xgCUCeiOpov1D+ThZ}bc{x3lJW?I*>Vlp;-QBRvt{FI z3I$KYPA0jbF|z=ULt|zhY1{N{TB})BrzR;34S?5am+ve z^+)*Ezx|}v-T_{|z)Rou4xaWiuQWs;L8Z~a4+0`{aBX+eX`kzz=cv;5n$I0Q%)fv5 zkC{BQpNpSzJ=fp#64tI?kIa|OJHYw%I``iCRsQME-%k>U?AW}T9h+CNY2!HSHfo*c8Q{UOslq zmy#n#C&Y_>{T70~`vk&(|ZBqOE00fR>lk@Ve{4yILBu=!apk>*5#vnD>Ac{hE zZoZ76fmLl;vHAvT)~d{&I>}f6>;o)KP2B@r)!r3eJzn&HtAS?%&q7Be$scyzEX(2@ zZ+;a)z20IIn&ljYA#wO0L}P^(iYLat385{g+?+?gyG)_Gi!e!e{KyFo9Xi3;v(t=? z4Ri6u+u6K%97_t4C?rwl6fXrrItbgc z_SX~w;%1ZP)HEs#uuDbmdE_8ZzUB%&FIhptY0k`&9~sI#I@^P4(;1s+C-|7>6Q~P7 z$O)$=rjP=`M^Dnbc^yftnB8}fTyGEM)x#7$Bgj{h+PQfO zLw!isMHz~}hNZM|x8u5(A(;{f#;k2t$29g$Swp#5)Qb>VKL?R?H zZc7fJVv;012_zS|@yRUP8udDjdXq#*7M7~~{b#;{?Rxy;8(+!5U_XxSA$wO5l!gr> zwDmfs&z$C?zxx{;eDMD4vA14+6|eh)KWAj!MiL+hLn`$;4d2h$j|r_#Pnh>1QyD;e zt7X1#)@yv@uRh45-~9%CBV+Upk8;iPf0`|qT|ur;Y8|%pML}4Oeug;Y#AA=}mv4JB zZ~ggavSr(5q+7tv+2lPz;&q{G4dnRwD=l>eU)al2EBu^#R%(z#Z4o@r%eEOF z9pTYCzs+C&kJkbG^4^Ks2cIZ}|M3F2#gJZJ0$ij=c#`flYjM|%V~vhbivyxK(h1VW z$|)^?E#{b&F~T|v85u=AQOS>{_O}lAM>rbu{_Lbsb#CBO#&@E}>LtijtiX zBSr_;GSojtK35>0E40{YLeN#}=9?e?OYZ!~Pba{xy%V+lSC1FF&`vQg1p3=wQo(Z> z?du^3L(a@Cb`)_T1i$^JSCRxlR_xQlucDYJ&?nSp5Rr48AN~PLfo?UoKb4 z4Grl6Y1w*1GUN|!>}(**M1hKEOiq&P?*kG}pPt0ABtt_3Eyo&680~Teudi3nBwH^a zI~)jF+C=T4+WLJ#oP`gk*KzXPEKwA(dUPP`vg$MQ6i0_z8@*CGZb&Jbv-1SYRf`9{-w6#bgb9xGgO)^;pXyLNO z8(Omhy)c`%u)~F`W-uY+1uVh=r{S`TYrHwM-Nlz>f(iO_+_rY z@ukGe(ZW+~EEDwpZ)>*dd0^J0!Ybl+KE!`_Kn^NB+E!;9ZK z;6_vYE=Sw)QyLw^Sv`gr8KRyj(|TK3w2d^Ko-{XmMr4tervJ8Sgdk15j$0c7qK(AR z)+;8h6S!zQWTp=#rA6M$VH=&5B_&ufN`t$nIg zmk6VPjcYeEbLQB0Dzq9Fw)!2_+T%q`g`dq6|_!DN}7Ji zL&qn0_}B!#>Gpo@wJ*i9Waev`ZKSc%vw|dHeyKuVcj*GRhR6!4w5@g=r6XgnodDAg zRY_ZtFPB)TH#jjl&Dq%n78ffxj?M5;KVxHqj12cPJk&?2R0I;jr3zM|pgSTdGZIGof^x z6+;BX^#;Mh0!gfpj!j{7kj14cB#N$5!Nd^>s*}@{*NnAFNS1n`pDSntIAI+}#7rKW zro47FxpE=vveVPF)`>Z7udzk)h+{2I_wxB{9-VeU?NLG6*E8uzpikOP@}@i@gnn$7 z1}cG?%5`pdE10|@Nl4|B9cZuuPh_aEYozw|10?cR=UdB|LesCNyq z<+T}B3#yf6KKTdlVehS9&pwN>ja&Hn_k4iOmt29gv@|7*BBD5^-fR*?5wVIhH=iVP zLef!AwR)ZD$yERDGtmS(0nckD2$H*V&+ul_}LT=kSpTBD+fd%yKH{^9-a zp|-rl({B11Ui_+8Vs{N7awUZAQe9kN^7v6U3&?)I001BWNkll)RI2Q}Xa`Tfb~nR) z`g+&vO9ql}ZL}3Uhc$=N+DH zv1;80jdaB^wS@)ZFucGSU*EUVvQSD($=W;bxXo=UEr{7#GKE(qsaulSdmUR#EYKvg z;n5L}KXfmD@%o!Fqo0pFQ3%hUb-mCOziR-A5EKRnu|`K=WSE9DCdDG1@wH}fDJ0U~ z38kbJOIn#Ba*IKhYM#V-nRICuo>J}Izy;p4fs6FK&~7um1n~#c z_$D03C5l3-^<`$~rwPKqB!*jT+q9cfp_}*J_*|+B^N03M)V5wdUOe1g$ZvYuMO(?c zF0oRS3OPK-CiOkEEJ=TVnJ|b6f{+h=>Dx4ekYD|Uo5_h(?A+-H68Sm}{>=0|V}rd! zvFex|wUXWCijE|?;7l=dZEK5HYNsw(woR!|YXKK3b*5()n4XzuZefvnvx)0Ebd`z> zb{AQ*aSf|R2XW2Gl60F2W$#uwb_&aND6btukWf22O@6R1OHmML18x;7YR4z&-?cd_ex41n z(vRB=^>dZIgnFpcC@h(FXHqA=o7rINWUuRlC3Ke-8Cc8na;^1+%m@tW@5ClFS9EMv zI>c593zfpBfJBpFR06h$u|!N$2a>wJtD82%?Bub(zx#9^>#mcXN8*11z38o^ABockkqeXFr4SCq0Ay^;<7| z&=Z2G6UX@ATVKcY#7XvC_cUJjo zd-oO%i;@;Uy$)0OGgff?_#}7V{Qwh_bL`x6F;BkkD*6Zeu>_QoMPw3^Br(7Ddw zzwtdTfA$M__51!JgSI2z*HWiACh&dyMkBk=(n6S$;e-&_h8ZuVAo826*|-_ousHpC zov_j9NKeTKWod4vu~rLJ%M(|d%qN|})2(xHrm<8iSwZ7U^k~SjDVNI(3=Q&UKmTHm zK6LL%V9VZ#TJU3C2(KP54g)VRGrwyA7a?%FyKqJZaYu&<9h+Jrvm2f^xD(L{dA36% znk=ACCFxD0+9=-b5NXOd!(iH~jp8rbi{ANXC{0f{&n3`drC}IQD7(0hKHU%W4>2;h zn$@FgDdbCpVZg%D3{$hGSzMkYNfNrddT<>NX<3YqZeZ2WI==KLf5<)m`Xvk`{E2ct zcjb$(xvZtt2}4w(lhk{=iWG}3Yt{|WY=l%RK7ag~uTiNt`L#E_ntY-mm6e}U9EA8m z!2D8$LM}(CkUMW4+Af%HKZXCOVyO8OF`ZNeX!Eej{10u{#m(o)cb9Mq9*t(e*%PO! zDMb*36!JOxdb{W<7bz8T#9^GJ0fdW7cmsW=K+0CiL28UFEmD!UkdmlY0~AiFm}v-; zBq6HTv5SQ^hyK=lurW1*Ysfb$3K2vJhOOA96wa1XlFw_?>~{1b?ZTRVfMsb`9$7ahI*MSDW+5i6z~IznMHfJ;V{VqT zyZM-+m=ivAm1~>LCK*X6jw2ei2GViyie>J)>t6o$Z~l?zKKJR|_@d|IPiK;%-k}j*`Hny2qU)ZXb*chEly160Z>|fK3I~oIC1^HS zIC+fOL;IP0>|th)9U{DdV~b;3?7a9Qe*R6b!yVg#J-8-Yd*@CZW8%o;T=C53XV%?))H@^I@{M6Gov32`ql(30o z#l)Ez9zQg};Ug0)SL#UHW$mU-TzUP|7+<#*gqcGFHX-F$M@N0>OW)!B@BbUR1_t?^ zf4-GscaI?vDS~=~pxH!9iQi}tnnJH3Y(=BdBry6(%eIWr9pl@ob+P>egQ!UR^EN6~ zjfS zdnali{;?~BSC1EaP4Rn)VLRpkWU+ufG=M!a0EK+V?`poUTplvl(IBsN*jzkss_wdae#X zjUvNqQZ#4g4b0l=E>+VfTwG#c<0^6vG$TP6>5bg6AdGbmT~{ul9%#Gpv}j8qa6Q+M zxjIQa0=?O}xm=b>DB8R~r3v0uh)$uq)`DoOF(Fn+9$L_6d*>&K$%_Vcm2Z)wOeYxn zKE5B4D|aC*o6r5@SGfJQ@A2lhyoQVSTx4J{K~NYV%J=AO40GQdfBYbS{oZ$T>hPiL zWnBE!8+i5a{R!OzLuO2o7H?tTIK|ZTG!Nc&8~gU&$?V|+ET29}9Gp)$bRCq?R;;y|2S?EfIE6kjo8j)?qb_sV^;&m|1hsXb>7# ztF#aXK}e(7%nZd-aeFGS#lQLN=>sVh@HUtsNqwfz2#&tPWa#BtLVMn4vX@apkm3HTK7+_dn>qi zlKn@{aK|H$GrL^Hwk%c+_cJ~^#M(9E4EK~6==KmO=H}`gJ$;VVL;bjp-BAcvcEd@> zE_wlR^@>86@FRqZKcpz46p8O6^0{mcNXrDLS{5P*5Vnn#^N3>zCDo%H|p7}));c|ugxhdS9Zv5GKoKg|5uh&3BFTm zKQo1jA_}WU5CT*f5zH^rH9kUDUQi1}X1A6Ajs=k^gymd9Ep&`9S%28Bk_!hs*$b45x(z} zNS9o>%;cFV{^~FPj)B2GUj3SvF*GuYGBfEg*F%`^>+t&g=0AUqfBfi&GFe2vROUs$ z^4nbh;+M4@NHw$3uh%%X?;#HU;BF4w_kB+8e`KYdApkvHMYe4oXXA#ojILTmsc)Ek zZ$HIy8L>2p8!pkPR(Rh>zsPf6d=r;F?U~p^Yg+~oLNIya82M6}-ofGQY6OispZoJa z;_>_M;pK1t9k%SbLQ8zwu9|=BAyh-h@!j&F4{^!%QJ#M7MGUW9OVYoY#Bzz<9%A7_ z9CCdBW31n_G1H%dHduF66{|VV>tFwF4jeefGhX=%yzqbgR-5mqAW=}6ok7|*DvGq3 zcNk^lw^%8f%_f1F8K$We0`?p}t(vC|Df-PYC0JL`oD88VkD% z7DA)fjMK*x=HJJ0rfIdLB#a`~u3yW6+rG}{{_q_DFWEa$`}~hfA?yYg64w=RZ#Sy1 z7puFBZCkibC$yPueDVS}@`@iN!a~`avaIKTiQZ{CxDo(pz@|LKlUDOMyM z{s#-8*#H`KL@wX4Web2X)EYq7?ev5+W(JmRYhsTyN!@Wm7=~Kzk;IfnhVjZpRJDq* z1pe|eNfhJsb`#g?1oMly{k;@ckDj;oGA6PR1ak{SwHnfKAdax|IaC-iynX~fHOgrV zL-ic+LkLwucV5znQ}>sYHEaIvaOO#fn>BKtW8hNJ(cQL_yJBIH2>XJmABm71KTkTo z(Vvl>L`Wim9b1XgnTQ5u ziK7@RpC^tZlpmnN;DSXEK*`qnNzKMn&(@Tzq*5u3LD=-I8ZkRJhwHi6QioiJVMJF? zH@kLi=bg`c3XRJ0oqH#0*ZtT)qgRg?_tm#;-6cx}GEpgD+Y;Axu%zfLg@W^bcA-Nq zLXb$Cta7%^MN(lcN)bux{71@)p=d**l1wYtsU2)Vtx1wl$QRhQc?WC9*K7BND4<$f zWVyD0A2f)fkXS{n?#OsMT9%!$s)~g!T*u3n&O7<^JKqj)2-xzh zOLnqmsJAT+MrM|8UEO)|d55{#nkGt^Zf>dC0F}_wRivk@%-L#%M~|N7z_HWJEmk@% ztLHil_w_J3(91}FFJps!6tlTua$dUi5Bu0trB4|FPDAHe9j$)$!yH*3wLwLEi z53@5URSJRad04KKxnVbhfNHf)rB-KtxkeHMjILYF=&B(G26_l)=Wu(wiE9nKfj*?? z{BW97DyKB8n>3Wbu>{>YSkjlgWz{CYlE!#ChOVp-wxt`$v(sh2Q?8f8s?y_bPT=_Y+uM13FhTLx5xlSuR?f;^6IHV{vwd z>FHUvU3@9KuX_eov5R17miokj>>hNghuF1yBYtTEv0X+APRiyi%Te_vO-9b5XLb< zpnZ~KrEoki+s_==)x?=Z&zNn?Y9&p84ji!c%vgm1QMF34qC*rypiEcTj?kqc1%428 zc8Q6e32MSt%*@;zajdXR`iD|6LP(zS)NA?f-+hd4e)1y;uygN3?ZA&qA^eN_@bH`E z_-cZ{*Naq&EdIu}^uo2;m~Sm8a>XXOVt-1cWlW!28%S#Tgz5g2-HMiJqil4{|Iz~8 zQ6$qgz(9Qh=xMU|+jq6B|Yb@mxD2XIN5Z(yUS`M_+%5$ukR`ok5Zi zgt68E#*p`N2sPzmfw93p#)kSC8|r7czX#W{478lA z7_zsF36dXSO7I^lglYGuD}HOf(rh9;&lHSK7H<*;5JiYwPBVsGH=Cce2v_=-8h*gc z!V*(+i!4-XxH*^2Lp^NXv6-&1VVs=TA{6`wUcV4fa6u)4AZqw*fw6%`)drVStm`Jb$n#m{}5@EF{>?Bx5#GNf!X`3!FK`7Oc=#iF7r4%{p z_z~1=4TwWyoUL&4C8lPV`L}<)mFcM&e&LO;V$+r_Sx#M|6e^6cq`@($CIvMaP?Zgck4H~_Sw%dW4#2L6{<56R4dE+US2xD&MPj*FRmw% zmUgAJ@+d>pN=GaQAGn|G+c#*jJqnqG{NeBZA$Q(>53l>9zhwJUu5A%i0?jqB9IZW8 zVMwD|C1^CXE;0xDGg#`)}FL2tW*TwXrTON$C}p> zS%#xQI({PS5d9z^3`3Mk2&0fN)U$N`|3a24%bCQ%@s~qYv$! zsJ-RKr4Zg2u>pAk^eE?j(aV^`&N6F_~;`h|>JDodj+djhK z!_yb;(f|udtsdY95hKGrxOtbY+lM%JuEOk0h5d(4Gci5KshN4^E45CS9RsQM_jEBj z)X$pH0fzef>FX*XRMc_vWCbz(YBwVYLy|bwvlqLqo4-KIpBSpR5T+mo0mKSXD3C3P zIEFBSRO_e|(wP6I^WjW4*p@clj(0Za<~cI6z~sU*(s39a9c06%HLMyRp-{|cq@8w1 zaph|*=b#>(Um!b9U#WS35C~e=MGA>@94y<-HYnZESws*Ib3;xGjh**7&b& zYtwmveUI$tkKg}crl)3pGN(=))ijdDgY0<9PY`+i84RtgTy}WD zi0Z403oM^G#<~sKMo%UohaY~Bx4hvU{LU9{WnlH1?7GHbM4}SnFvNCUZ6;o+=>He% zju13=A)OZnL8wtDbKsX!W~mU7G1SP2g6+90W`yCD%G$>^ML6OJ%W+7;kg#3{r8Gao zvRdmdX|bZ?I5HWVG1Y1fKk&2dKq*D7Q8yYx2!eoIF2_~ZJej}yt+%l6_FET#ReL9D zjUR_XIGhM^*1zO(QK?t;sm9zCj^j`&l_(XpsJp9NqPx4Bz;6-+4VISXb(dw}Cfx~% zju{L>oKLXHup<2dCPKCam(n_Iw-G}`o3Es0Nj%TO^K2Z~rc^3ZDwd6SUS^x4AEa|Y z1FeMG0V9{o<2Wv!<7t<6X&GIkNd}NBq#sgZNxc|zUY;#$cXRK*{0m?C$e#kRV|{zMZzYunK};^EV`2m_I8k^qa98j~{%EL3a6BsiYS;9wuCRt+&aI!Jd{v7-oD0{V(D zU!&cursMD?YzN`wwNp;Ec8$q+9FZucNd=CJbn^(yZN*xN)}&ON$Lj5bL^Wh9!O|hh z9qPG^K`OC=CEU15y%FIz{cNuD&2N2={RfWm)Tdp;Pdxh>S>SAXpir?+t8fiN*AD_d z^XY%)3!nc=i!8AMURyOX%%-iI*|Kvdn=iVUo>l7*`4Yl%^xP^A5sf8iEJN7P9N48Z zSoK+?1l!T9VB0pGjU^FQ3sLGUd}PKB>EDY>b@m-N#lw%C;I{8QM!n&4-3`}s^RK)e zZ*UE@$}**L85u`p6PZNurCUD1jjwu5c5ge%#}4WoJA4@1fpGCCyPoN^NM$WKwtl+ui2nMkYz}w#51KdJ3TO7 zp>Z5%hUh^U>a_VZab8Mt`2s=;8nqf>5K^nvvbkPj%s}+v+}4eVX-1@!6uWw|D7rLz zQYnQZAr3Wzx}7+uuXUW|PA)AkcXa;sMuRw3nOw#9n_RT#VrGvV;N!pYI{0rOu>a4< zCyuBs+cpMW-OSF-nuD!qbwjqq^E^tW5(9k$^z`)N*jlS~_S^*Z+Hy8`BhgwR$8-To z>CVhrk+y8`sqBQN%xon=bfBz>8Bja6g`0EmTnops^vTn*@Vp%PToKE5GMGWB7(Zxa zF8FaA5d=O0$mI*l6y(8j=-21IdWC{5~nI>}Q^vXSjb1S&4Z6%Wni=!|(u4 z-nNlk&dIvKMm^xs*L_KBs47 zmL*s<-plc$vsgm1+-&fJBgZ*BG0l(q+;fEjG=LX^3FTXj`Inw*>c4VY-3|ExWFYq zXbBJ!2uTPfmym>zP!b3M0;V_w9AY4tUJNdPn{3(GvL&ncva9X=>?zalAMczwXICrd zUhZEZ^ZCdhdo3N!nezVL=Xri5T-M^3;%ZLV)hQ^t6>kcpm3mBA9So~-p2*OACH22< zdPpKzpi(MRDpo|xQG)#kPw>lMJ;{q-at)VUdLgQ&FLR{{d{N!2suFL!jvqh8C;#zt z96NTRrr}c*nzCuu_I0y<%U0H(w}o6sCyH($1um2p1evA0AdJ@oM^t{HPw0zhK_W!c zWvrx*Zi}Rw*BGzKS#N<3jPmFWq_&7&Sj59M^z|=I(S>MH$&HZe>XdSPA z`)BCvTf;j)_D|>y?Ua|6FiaCIN*9qLz`y&;U*NTW^iDBj3tTk6g6}#UIdF(00 zeQbWw%Lo-CB9>^P9bLVnRW`8ivj2%kXl-pK@EqFOnn(tV{Q8LR6)c_q>@z1WoDa$yl&*RV_zGm#*b%||R$Ic|%4t{W97VJ)0GIw!}rDHe-(5edh397?4! zdbLV*U7A~(=^yChqqki{VP<;g_Tl3B|5JeQYjQ`|o2|{~aq!TAGg?UXLU=`y(KU^9 zI!!K{Bb7=K1|fx|1(pg6_`VCFXboyrL+Gf&RHWsL405y!t^>fZy7)*Es;*#|8oHrH zz!zlfZ6O)g^^s+X&Q2k~EfpO~6-Ril zu56(#b5p4q6^9|%w#%uBIULWYt1(By)Z>m~Z+|0`D;jnpm7=?U4c+|%7HF3=001BWNkleF*+yayt8wQ-1orabar>~vYT$e zOeE?)Kcdk40g5a|vwcB>|LKqKItN3$-KbVCwVSC)M@&-a;}THx@pF%BLX<=Dvy zW@ZaCWRmoBG%?WA!kV5|ni|s>Mznd9B+R72>;CAoWExxe!0rEvmTwi+m|ekAKw!zo6~B%X$5WK1peA9;a#$u=4(gq0n+x(;%XC*Y&)Z z1|=&BimG9l!k}Yfbd=M>BXI|=DhG=V*{a^mvV5i&bF_xYl0@LzsEQ)opK^I}%`Iq} zE`Tv&i^f@$fnbh$o`+-GF`1@fSMWWtUb&u!A}g%lFvuf!-ND1(_&0#9+lPzK{7(SF zw@QiRzqY>g6+E|lXWZ+K7X!H(b}Pkm2LTKspiBf3^&vT=Uz}f>W zS1s41+AcY)BOQd2gsLg%rjB81qTQlYcT-V>%}S!GEFnuutUr`iD_6o0)3DHV9Ys+^ zOEjV{SJ{Cg_*X&K4ACZyekLl-h|LuNsID6Hbgbk1AOCxvzVD~xk`^~@Jr_+=NTm&0 z+p;Vyl+Yq}+)}|_HV>3mkc+D1jcUuNCNZg%6&2g%_}Daru%@jUMUhFQ4B9#}*cFe3 zxiW4g$|{p2iW8IUpDpn0$x$Zf7S2>#fD7nn1IJ9hfu1#M=^q@Tdtfa+Yt~={KHkzI zYQ6!lw1iuj!&#WcTUx*?74Rx$;apP%MJJlgR`r;2UCdSx#DG^nca)OJRT(c;01%rX z<18+fNTn>+uj^smKo3?fhhipU?ceIG*T_ClH|q?W z!{yfCbutR-sO`&G&}Wsk_ym{*ONiWgsh4Y^!ynH5@fqbNu3pd<^H z=;ZhmpZW9`*|~F1{JDL7eZ1xs*VES4jArO4a)9L7P@Nse!u+t7?m@kWZwOI*kwh5H z02K^NBi)chQDw#_=Q(t2jHAcLIedJaxw$1WDT|)AM*2FN>FVhs-_k-p4Vi?5=lFP9 zl8V)g;yWn5O^AfzmwC${e-hP9@c;=y_P&v?e-ka&TB~LQv7UrT9C++O4m|r5uYc=X znJGG?vRUNN=j5JU^sO0SbmTb2=_8zX?aK*eLzojNT0E^qk{KVJptQ8a!o(>3y{$C2 zHX#Qda^PXuvp~R4fBGQ*_{lr@yL+~wDtet4=<>=}%nhA5d^kif*_~>eQi`;*x`t_4 zEX>Vw^5{`v!4}121-@u+2ElU6G)a~OfEq?E$z)l}x%NB+z6Y*DBAFnWOp?jvNjEf# z4O0~aT@TOm1bg1|qn5dd_3}KAN<_%XH#Crt13vTSTLC`1eYp5%{}X_42-w$t^Q)wj zW2c#%ny3RB0YIvz#9+2OcBY0mhOU!LBuH2$zUNV~%Yr#3)!2cWs>HxjZG}pTjBe`a zmX4~can-l7`a2tmvAz&lZ5FA>vH&<$L^H+Gh^P%31R<)Tl1gT=%tZX%lt^P!@8+#4 zDw=B0+R(|-$G3CWhd+R+YrN{x3s6;=?%oCpixtWx2gmVo1D~dRs%Fq!zhJLmSE@=h z;I1ZatWtTDDh~Tkj*(89tm|qe3_?6t?E0z%9Ys-)3yY|^ERv!yx@5EG#0b0g9>(?J z`9LL^%`N2HJ6jDUWMOK8xtaM@XGyVUtg(si-agixe<6KC8|dsCz)B_wT!+A^;FXtf z=BBXcrf}w`aTn+C7w3_!#PXf=3Ul!PTOh1fgSF~vbs$`>LlqY~lh)C6jZ(!IP9Uzw zk&~x6b$S9bm0;thAqF?DM>A^kKWXLlmn3A>KvvZ{aIUdmS+Q$hv13~myaUf6s4U@^ z3%KPXd!E~m6G&Wi=_NEYwJbk}x_O(fYJ#W}wcxfr{5W6w(w!6vOA(=0<))in%5@hH zp-4f^j_r&bzI#Xpi5==pEeO}8X0wc@giJMFK%g2ZzK!aYk$nd#aC!Ti-;d+@eD()F zjVnS3(E=}$Q^1eE_7%dw=hbg`JyX*&G`6$=aBBCnbau5dF*-td?igFHyE&Q*%7ltq zrKNx*b70SY4AW#ye5(%Bz)@>D z@Z1;(V@^U89-tZ~vZ`PvECN5^(B8ew&CH0IUKFcUU-1Q@sHz>WR+ZOm)QE_TssLA2 zjh$+wx;$4&l7#i3?~>2wNu^UH(;3WECbFFLaBK%Vss{ZSC|x|?Lsb+uZaRmrzUL1( zw)3fRpzFVDg8lys5GufA^A#^_sHD^EKd?7`@f2AW!|*y*(lYtNio^GOJkKYUG%++C zRS`Bz)dELT)jEGt3C+|oQYNadiuQpbBS+PrbQUl;i^b@wASgx7?S^4u8VR(BP@^bn zRN<)@x*7elVp2@iZ_p?gq+bhjQ7W zQubIVmuYXxp=(Orx?l5Ft-qGCBs7S!B;f~PWNy5=B*6AO_8c3p%9``G(AD2VrLf58$QUCd6D&?n zU>6qaQXrNes;bh|(MkW{Mtar{(z|Yu&i(-mO9brtcA2Gv&k;x=_S7i$+$8=AQFiEg zVtyF4a$?r$Dj+B+XJ%HOy&@EUwzWBd=Lt5W?SSJgH@uc)88u;XYHW(*r%q#-Cg*G# zqPxEbMbiaYhc~0qPaMdOz7HpOS1&!0-@(HJTlJY z)Et*xum&aFj+w};3dC_`9JS7ig(7!+`QLfu;m6{QR!c6!t8ToO{+>3HnMADHtz|k! z#^pf}&w;6PX{t(=3MHG9W78ZPndH>iG!@6Cx3ign?iSix^7M2!(bk?PnXxb|UBn+n zo5)g_pb{En!#P6F<>aJ{D;cPANTX3cKj~ybLGMJtkr!;ev3$DLa0AXah z9ZI5YzU$XJ=vcFkrnWXTXA#-Aqrcxn@hWKUVsr}wzWk-Tx$7JE@DIP(fh?=o#p0Q3 zo-ar$o+pwas`I!Y43Sh7J&_PDRT4~$j&bbJAwpkNW3sH^1;R_Y-bONvTB~j(zo?E) zs;$@h98(D?c8F0_6;0F7bv>RPYMLtArG&_VM7G|tQlb6BMLO$$P4t8zfL2$9A7$)Mx{Bk*^8ld~t^$J5Y|_vz zbi))5ClM(|*G*JK#WWMBiXhHdW-@k%AxegDJ$G4kq3b5HtdKNQ^meT06R*FGiDQR& z<29Gk*_p#Ib*3f@c%DyTsY1nZY0RZCR?8KX>a#Q@!BCOcRxoizss=HfRT1H-a-uA$X)@Vb{pj`Ix z0zo{G>O4cM8!biE&{GLC!@v(i4j(zi_~bN+RFd@@*3;hIDdZD!&0(hMfO3YeHL_td z!b+?ewB>Xy3(t4)m*xn{^Wauc@!0X)F`624tnF(hl`wFP*0awN>%j29{zLrBXTHqX z=y?22U9ou`*Il%UR62oXMrj$8q& z)l7G16OH*anxSG?8fMZ!Gt{&6d0{5ZLTi^>n`U$Cy{zzgHP@Ebk+u8<5eDOnnNpnXhuYTJfGJgCB9lgEc z+m#n7&5pA$KTC1?2wShel|V6s&_8;9_U?R+?sY>XvN<3`x95=puLgu}8O5&%jVC^{ z)6?8`>z{Dt@4T7U{nbA(b@Ie=A`rqG*m0d$aPND*NT!!%RLc_2m!VNAEV5_kZYrf> zBwwmMlT|mGm^~WF8^V}4Bf_9-xsPF;SU!y1xvFi|YKEq&s(79!g37G~mStfW2AZa! zDKbRBXeBH`Buu4o90$j7NF6x-vPcCkk2J)Y0Si+YGo6sx`wPsXqJJZ)E1Vw5?t;% zwHy#@n)@0EuIO4Qih`!gGl|ofzEX!DZX_IR6p6XhvDl)n*$Ctoy zd>k)0W3kZ<1-s%R%QEGP%hAzEX66c{4UM6JZc+&Y!_>|&LuhJAW27^v*(R2X^L+2; zPxJWWJFp|qNlB7u8yMi?D=uQgx$Aj$EB@hWGR z8mXE_*T7nO*A3D;xPktSn`rInBb=K?Z|fqk%Q$mW6b|eHL&I5^#+jQYa4Lcr6DK$< zHw|B{C0gGeS2dY@)?l&V5JtP^sy4Kqa1sMrr1O#$;e#3~3a3UVn4Vii(KM`NlAiuv z+B!RgGf2HxZuF7Kuz-RO$SkQ1=r~m5G=u@((kxzK8hj5+@sOMap5A+!&6@_vq!VB? zAnVCh+s5@k=(!%>xa)3y`s4fJR(39x;MS|Qa?ZLQR9%VPTckQ$xUep>(sg}Kj!$!V zcpNA6$v380JJ8PBfi`-(n^7bg*Aeq0RZ~zkB{D(yFOJA3b4F^#l?>9(1eLOfAF3>p z!jTMuWFu-KjqWX>`eo+EMp;}e(7&dKcm4i*nVgvB<6rnJeOq2Ys2V5)EKE<4Y3%^u zU;graw03s!ns>a5k%Rl_S+iEm(maR7@e?e}&r+B?%tbfeDrSU|Dq5mIxl-ZazQb&~ zK0L>vytqiMt1K!s zH*%FxB?;H}aeW_I(@_lr-OvbJm(wF7oIH9A*S2FKpJ5nCid-|T4+DHZSjIk$H^NfA z7C4Lufr`k%^lFj~KO)8ib>O({eN+@o%Oa6XU|FJCRa6B{RZ%6#WHY2QSyI^yrj_9C zkAIM-fA+(9pl$nb(f(}*!mUWs)0^M&4h|eU$oS-FJlk6dgt0zlg{4<*XR<;Y=ZPDX z&m`#XYoW2T2}PCTye!}Iskd-DD=Tls0}<;K>pN0ZK}(9o@>N$DxsC+W)X)}#UbV%b zX`)4{sw!a+V!M?%BTqs?Rkhf0MpJcK8akOcaEQ;n}Sjg%Y?PSWpv^1=I9w*bod^zOFhaYC!qmMB;GasK`Lvtg|=Uz9(n#TCdJQI^MNQ#PP75}$tmyJ_y|8)zgJKTodtNkGm4p#? zLjL25a z$908!j1w`sWl0t-Ti?fzQYvbJ22%VU8HRyrS(v6NTyvs#A)QXMdCPg6+`WS@i+H9t zY#%P(_1g}FIxxHT=2s;Pn!UOs&L^I8^yy` z&BzKvd@rc8aFm{R6nG{nv_5Toxp-HO;(k;`MOO_JMT?9A43bt_m^6EK1a^@*v@Ck; zimXO9Y&9mJX;`R==)3EhNzzQylx^jGFS?MHl*QX$c@-nWbLhHwm_}#jY09Js!Z7v* zJ;Tvt*;kfg`#MFINLVV0TC)Q4{6Mt%d~t0xO~Lc(z%d92OC>_fBn+WYtg!dQ7>&6U zo7Z+>=&Fc{l4TM}oovoR)f7&jUczkeLu=|JaLVj?>Pa4ZVh0C~4%Y_snoj$sEp%OQ z37t-X#hyWY%@8vR&A?11$*0rNoKi&0%%48R^pS&1AKJ&{sS_-Wk3Mg#jFn2$HL!-> zb%XS8IES9~L$q}D#)ia%Azpb2dv+3gb`q~JLs(kGTUr#et~xn~BuO+k8qCbu$Wnc0 z!wUOb2`Cvh^l zRKp|);KYg3tnF#S$}|wl2C}TKLh4-(hCvYUqaXZ?yTAQI>}Z3LvJ7s$YAfdr_F^V< z)Myr8eH;qKGN&i!Pz{w#Q;NQU4tjfA(KH1q^p_v-6D*(Bf<0T$pL%RROVcyBb_GRMajKiWuojyXh9PdW!%d`< zc#h4f<0lwCaSF$-phY%*s;ZL7X0RQXAQ0S&FwQHiX$h;AiD8r^QOz_IU9Or(sUIco z#38&<>Vy}OZhYUTQmHJf9+wetG!5M_;?`+rS10Q?4xuUvfAf+{DK8cNbNg`dwZGLs z7=ht~9hbb|g}HOj=dmXrK7$am%s_b+DMR&eY(WQ(tH@~K>FjQye|={RR#m{P%b{GI z5xBzBv|fr>t)QgUg!mB{nnnUWl1#`^a(y-ESCZt|bX$%qN4e%U6D@?Qs$m(4=+A3{ zd5TPL=Q{r758ue~ojZ8{@4lEL$ETPpmKp47WqfXd=1dAd2r*4Po_DRTJzK6@lO+j5 zS4db&t!j+s1m%j4&W%S@a7H4OkH*&^Grs!Kg7*~zG zgBxgQYZI1L(e(;E7k7RNXLbT-W(;R`g3ztdnA2ETbn%1m%qX$C49(@UzIq_6&(kC} z;I8Vs6kS8L63B+hV~;=0jn{6a=<5WoP2dRwhm0AZYYML3h$P7@Efr~Q%pip!j%3xq zC|m^yqmIku#1yxG{wwT$ZeRR62K(B1>#Z*&m9*k^XBDg^S;9&iByuKAtyy%-z%!Z& zv@C&Y3M(BCai1kr*j_H6cDv(UE+I6Ne6wG#%#r4)!b=T%yl1cH#t|{MT=D z^Pl{0Uh?~Y%);aZs$t;THi7Tgl5c!pFhLb1n#)-%%uKUu$FtZKo51%lbRAh%uq+Er z5iwn^=L+|ks*i15Qhgk)v?69ns!PVH=C4-WYT9L5rx_)3orzPxt1t4Zl=W4F5p|W6BrOl>t)5XB z_rukg5h_Qf)S@#WMUF8_%pO%_HD2VZv&5>&z)nlfoZh-RRi(QaO?BCIF+BoivSCNH}OK@?+TI{~g2 zpr{JA9RZk=>O)DU&^3*OX_Bz4$aq{r zIl7lHm4)VZa_KatEa8uxVkwoQTq?3SdYaPsD8u`AGkjnl^OF;28bH@|B~qCT-D}p- zzhNW2>o?H5eu!LaJBlXUF~T4aMgTKo809gFVVbd_YrB$-W+NDBg5m96S) zIb5raP_=5-aAAP#mC%CJjsmTDckdxgLWvsnOm`W_~EBGXY&wE zZLN4nxWxsg$0k`SIhe^bo&9|TNQixM$S>}>pX+XTp)kDmZSJ`J-?{(ZM|sujUd{h{ z{qJJtTL~nEiHS*aoxLEz-@f%tG_+Fm*c6w!zkz@N9Ievg^Z@D>Q zjLIS!PS)_1WKU!Q)-$CijySi!>81IIbf!~=V8lfRn zP*oj0S|qDMyK>d`NEU|MnyN*_89Dw;MHW#g^CyOxK6H%H{rj1onIQmfc;lN`ciCk$ z<=a>|d74kX1=C9*YtRXxi~$=@PWOY+_#$(d!OU@ zo?R@>&z}83mn3oxjr6QtNAJ)^)|_)Ly@MM_<#HH)0kb^8)Ix~6w1BrXk6&EGFBb{i zN-XrRUihZG&O*V*^;njckV+^RhD^y55ju%<7FktTn4Cb8WhSTR7#W-3#aEs~(NPId zQ8X3ZN|4Owm!$(+V*mgk07*naRI#q>jm~R07%r;{r>AH5;_d&&Gdp(0KRai`dTzM( zY8qOanVLGmO;@i&w>0!K*qai_S`37))sC-a305YuhXJa)DCT66x;z|MlA{VSB$N~p zW*eowc)pLf%xX-0UVuy(N*pXdV=;|W`KKQ2B(%9O@yFd9^ z7AD6a2xw?&5uT%Nk@4gEIeusl*WY?`E!jqrqiQe}P0fue}vY=(M=h>&3sE8TArU`=&0w1qfz%9&!Q^7QJ(y0`Q zM1pKnD=lj_)QW&Qxy8y5^XhZvx&rj16%~u;`PjCNABec9O1Tm-SA8~}cOIKB*uuki zeTDnKdizos1TWn_Tzr)OrpIprgl)j-b6@u+dE72>_~?P>U3`{FD(b4VFs!vltMeL7 zQ)ugIqPe|+RNAVwoTB^Vd4A-YzM@|!E#LJ>(rOMJQ38Qp!x#>g^?qQ&+@Ra-Sh zR!CTBGN~MrB;z<0iiHKncJE_q|6wNfAHvmiXl%gFq)0Y2LSc!aT%N1n`WBK_hK{Bl z-gDI!td+CoqR4qspQ6PJ!&e8(X)|EV*_JHCz&1{=Gha&JbM5AEX>!OYfMe0skNOo zuX`JMQ!7%GjG(G2UG44S+`|xE(=auSq^^=rrK5XNi=RJ&*F~qxi*z*jg-UsRSXEE8&W8 zVJUisWir_WdZragk|{3CW2I6QW~XDusiMf3I#hfO%`h=jDGH?u?Oh%Co{KCiQ5;y^ zT&b=q41f zo$Mh{6M{L5zsyZW3O)47bVP)S!=j>?C^-fYVKN;}u6!RSB8k+#Km>#}7xE|+7DC?@ ztY1lHVseg(t02!shR)%xi3?kpQXGwPit4Vn47yLW=uQ^gfMsF6cZ;-@x-FR1=qcd;=XP4tzF0dJ$vcs?xs?hXa7Vwxbs8rlasjy z{^1wTP+An;qfWUTaU(p6j)NZr&-DdNM_(u?0m{m)RW#K}e-iUf$h{ z9=B>#ljnIOH|c8E9S!6gGc+`3V!?cMX6C!gv-0X&r7M}FX98h# z+oiL#SE1GhjoY6Rx@JazV8s8rlPd95;Qd6C^A+$iKc7#wnyN& zgF$txH3hN;ylQZkid4q_i-H`r&z&}6p`~7&lJQ0`^3Q$Y+cih zDoc@2T)6vGTg=6Z!}0MM#^)Ew=TdB3+sV*Chd4J`!ZbCKX^WAQWz_DCWY4`A&$Zcp z|Ic~w$3N!y;luGg)RQSXw_Zla#g~(4=|D0Jy4u>&^;#tyMpW*ehCG&D-JnE(5?Abz zYyYxVT!`nojGsKt@x8k^wtFXspM9Fq<419xN5-M)I&B>t^!E4B(U7J+m!z>Vk8YT# zno8OVnVYlYr>_cthLwy=ibJxE&6t|c;$m4aCRK$@V{}5bWH95_fZvQIJJhLl)m$sa@iR-U>A*P`dMgVH%8#ucE z3EuMhtK&B!&~pS@RxI*?jqE#kdKOR1;j30W%M+TpS|W=?i0oI;oP{W~S&l(9lnnw| zJp;7Ez{B-L`g!f11Q8I*H5o-1jVZz~;!;XDfy|TJcW`je0k&LpK0}*^q8O?W#kYC* z-e2(f&wqpSFS>yD{`Fsy%Qq29GNZEvvK_quy!SP?lF2vnS6})nh1nVG;vy}bU1G!L zRVa)eW6!hOxuFgSMRZmKgc0$|v}ch5A3p%sb~y0RBOFTf(LS)2R<%qrn`fy|#Ih`= zPM@MYI}sk-^^Ei%U;PGe{lpj9bmet~fgdwLJX<6}Jg)HC>=$N@BT z!6vpWizgm>fF(UeCX*pyS!d*wRtZw`3k#xsS(xLRt6xZ_v88T&B2g(8xbK(0!1p{9 z&momekWHttObaVvk#1_{sAo8N}MZ6+oz{ib!Vm13cFw2tpKDrlC1QCZD3MqcPSv zRkcZhAH)QkW%{mF=%XuvFrElXbuH5sYW$k7Xq1Q%2B?aLGd{=6-os4qKY|;C_>Fmj z#s)}=2qfPRNawOxsYLAb?^JBUr=I0^|LNmsy1_Z?F66#DzQBE7`w}nSGQ>c8GqMu3 z`HB_tk-JA#E5s_7wBFRbTKVc~wDVg5gi@Rg0)EB8D=eWkh(*x%eQevOT=wFYv!W`v zuE#^WkMM$Zy%2(GsL|h5BQsU2^bpY%J3czi#9RTx(n%!@1_#>NIM|6(a&b#GQlbH= zeTdveFC_Fmj_lgOz2E*OJGMP0=;Vk5^roRr^j>)_UFUA4wY~j})CNsaNE(LlL-br! zRmISCQkF#~k-*Z8s0yxYDMpS#;(Uc($}W`{KD3|1yLND5?{l1ZZU>{o!_Ui9O_&B9 zEsgYbwJ@|{9bG+r=$a;UWr2^GOrdJRrNeVY8bm6W!&{u7>`2Ruz;)BYOeDcwWT_m| z(AGgfz^+~Un4FyA=G$H#cSw*VoN_7Jqy+rzo(K5WUEiTt6lMkae2$x5dIOCOIr6!T zAT~sE(`0iqhn{>c?eC1GR5}$l>Hxm;xTyfo17=|vs zQ{LLF5Q(tA{=5zSqM?Xw1-vq$v$r-Y}g8;nyRWB!#Z{$N?`8vn;?V-E3 zSGXAwqWTW@)G*IH@gO(8@)hw+RK#4V_-YETRH8CALdsIm8k+Hg5YKiPd-^HHv@}X8 zPv3@f@B>i=`>w;n)HsV%V@R^hNB{giG)X__(NFbo2`a#4%{f`9;#zSG*=Ot!HlX8k*^gX?;1x%fgJx$|~* z-20;naLe}L;(h!U9KR_L{+VhRpT6QfAK+JyJV0S-@vIVt>JEP8>`sj;Mc)sol*Qai zk|Z*@1o@^6&24#fLyHZyt8b0(`E}HGiL>b_q`JJrWgxh+8a&I_FHg)ef8aQahfZRb zDg^l)UQ+{MIxTcw(QYgVLR3v7*VGuZWW%W6Q{J(YTi)?UH1+q<)4rCm-TU~$pT3PP z{asu<*cWdS=9fxjk`{)c;rqc^&xu$}FIuIRsgkf1p}`EHnqMqMR%}(U^okV%*Fnps zBR7f=$Mz@|Dul=wrbfBs5QYH{?>)xV8~bs6a2;V3py`T`d&qUh(9-hRk0i+~RUF1= z7g%&{5=oOQE*_+>vk7;pgr96f-EcWlg9taBA0OetAN_z|{rJbs&&N0 zY|-P{Cm!e7Z4WVeU@vp0PTF@1gaNPjw2iKC+g=EG^CQwxkGnHa~ za-6gkQg)O$tXEMaOfAI9wNNbCWEz|CeUHZ;f0E%-BfRbnua2v9-7u+?icC&S^2OW# zjh)Z#j%n;yTz)B6Uws9N1gC~a=;`Vt@Vyua6D_SA-u(n`eakH(!c5lj)O3yDf)qQd z)C}#_TBRE}v71UvjR_nSuS6*85dcbcGsCd1@DsLde&7=TVJOAUC!*$*Yh<6g7O70g z=&51$9yrP6*Iq>!R%y^)Y~d#bKF>b>1poNa&$D)L9UuPW$3;aLhD^;DNObfA@F%yt zlvF0mNB-k(p4tns)|m78aM=V<2>}^Z*$vQ-%uk5A(C$VlEd__oh0*F0?h&| zjoH#h7zPw)W;p)rF6PWEQ`2*lZI^=MA{!=c1M9fp;uoN58sGcuKk&1E`vSlJ@z1mQ zsu$yXF2zEDvh5%%GKqvqacPO2Pm5|$mLhTtU{$*h>9k0v@O_r%rkNcdWqx6Sg+hU) zVhIlk$x7lYDnYr(=KfyRpMTLZLLFhqPw)N)PFfgi=d#&2IcKE|&GkIy=jRDshjZ2p zkZo*^tMw4*U%!rRU;hHnK5$P7c;)ut;=TNq9KR_LUJ7i#=xy)d@WcowPaQwo5Jt4I z6lpoDQvy{}#ex)ul$OeIC1fQGT00xbWRs-QLcpeQoBZjj1n>IB^4!`-7Nxa8tX*l^u7H04^! z>RCQ;{R`-5$a3S>bI>#)d$4T}MNvqmOgz_HzQJBaLZL>|gLF#6GOL3B07aFenQL9B zY_%dR+i01ZS#_!GQ7noLh-N6*6+v8jWbZL9T-QxP*YLa$+ja?~$Sl*+;tk9)R!&&; zMU~^TF4-;zMiAX;Dcg)B3vHzB*fl~`6er_44o;~=XImR*}*Gb{!%(S+XMsA_c?Ij5JT(Nigb!95Vp2+=(+8@?Jc(mpivB5HC2;8 z$f6AxB0{f;s-YU1`H{b-AOB1Wg%4#tqas}1kdACh#f;GpychuE%sat#j`hK@yj4WZ z@Z{r9vgOiC1fw}>Plmo*n^^_{`=8y#-~H7m=Yksm|M)mp-1b_UI=U(QKBs4Of2!R}|CWpZ>ZvUt?vO_ru8Sji;mXf7CQ1mo*2#PNlN1*S%a zDbCMwYTquJ``3}r<;XTPk#Ft5NTe7(@EqIsA3@edh=3KvmdUa7N2*220gH zY}sP2*6f&y1;MNe5kK$lZ^g89GWisSq19$Fu#8-@n!o7t#n@CWV5GQ^371!o)!*d@ z9J}ucrc&u;Db6bwKTX%rbwlJA>Z)j~%2GVg_NQm*(+pnl`)?$j%rV%%g%96$J%zCm zUU&7y=z6s(j@ql4M3n#ayai$8BrlOp=@Af$1>Uk0Gz}a#z;$bWgpvgI>>^qwMHo$J zW)^H_3uPS7XQ@!3qcIDFIIho*qr+UjaUgCHd!8Q!&kCb&O;gcyC9-dlaidJbm0q)= z{DR}tv&_#Ic-`+@gJl|G6QNp!js4KF9<&5u7;tp&9)9tI@AK5d55;tIMO7KxavtYj zc{!Z}Yp7(}a8gakvT($ZLs4H;Ma5;iLdrDhY;DCdEp$yo*P=YTPzZ)y*Ap61-$Pp( z<=LGFdG67N*th)=7N@5KkR+4z4Ghqf(n(4Vw(YaHWFx5xQ}YYVFO`{JSUl@}%4E`P zJZA%aoh@wIxSqlOMoO+0ds^yN0^Kw*5=kUQV%wvSbKlQ?$=`nD1BAfX>2YrV+#T%R zCCu#&)8K~duVw26TWSHTo=Xsh95`@@4MXb*0w3S81-YxEgZ(=msVBK}+tb+P5__I_j7zV%F46|t$mMw+yyrXIaN{+&6`REqr;t<)x41-W zUpL9-7ChC$R+5}LJ;D7CJcbguykt`^k3abgm;Cw1P*j!4sR3;;9QkaPhSoNkJ9|lGGI2Z94+4s%Qk)_9@I5~u**7R=<8~Q)eikY42xlhTIkf7yD@x!3f)A4r1p)FXaGXyr>FSk55CW~dwc z4UpFYCJyaqY~!`*)&i8maDXc0T-L-uVYF2gSnIviO=HfrNFY;2|=B5_xUL z?8#`pA4MO<*@Jc7eNrst5EK_bRB$kGWdmPQAq-HwB{X*)*>?$Ky~Z}B7B?0mi8*2f zgu^FC=;-OHYnfJoFxL7odh9sw`QyJNok{aAU;PrzEgj5EO_A>C#Zv{_`Rkwg6hHmO z*ZHTre?<4d0OO}l(B9pH6oweiB7sxkp`U$^n_l@+abA%&PLV=1*Cvou9CREdNy(S_ z_BX#rYfB@SZduRik<)D7cbd}NG|7a;mdmfCZ~Y*0;31V42p1=j3R9dobdbOK#8=pG z+10%9??21p;-c{DG<5bo_Z)MRQ%JImq3f|k=g_YoWkR-=8OVornP6#wY${1pLtcPm zb1R94WC1jbqOI7c42|_?JaZZ`wXw{1(53$Nvuy{+*f4{q+m}K9ks*4Sb<;#q)fMLB z5g8!}aDTOpSAO#E(M^*}&byY!fAAf?_0hlP#pi9HzoRLpFZ+IgVd`{u=P^u`(bMzT z6>rs3)KrBKI6OANs9*g@K_C3{%5*eF8tgb^^$CA$M&;PB#g=E!$?tBM+H{3*~u~}$7>!b;WZlJ0v)6>%&KX!y{HV368o_gROCJydnada5p z^GIg03~jxbb1%P=p)FfUStg~E2U$9G7`MDYrC4HqYDO3oM{PV!H^?+JFgG=YqR6yZ zCPuUga($nPxp_vWW;roF#j(*z9M@a5mD<$Uz~;?EY&vf}n>Mc}pU*IQdXg{ReisK0 z90j1YDaV^{yn&`%mcRMR*ZJTF-w*M*h&G|G8VsK}$=Y>m$ZxoS;m7VHnM#rB=w#bH z-{Q~Tc@tU+-GJ>!;@rdaY@? zPSvS%_IE$e^9^=mFcYk>BdZ!ffp0{S+9Am&DqxE0esON3G0#X}B4p5Y@PtWOi!tk& z{QjQbamL%;gRX0s&NR_N9}!tZnW-unLssMyLZHxaCDr!n$nXfwtu0}N2)+a%-5Pft z$;`onTzc`xF$|MifBaoq+ZHf0J&o1W0Y)I>So_ce+;q(+x%A(^z$?!=7dM|J8jWIj zB{Z*$?|VFa?=N`MTVG#&mH{kWgcry>ToC}FtJz2dx>v^Vi;N5pkt<1>7cIjRp%zn0 zlv6+yv#8uSGCP4N=ehp2J9%-(elGvsuZdw zXvw#XuB;;|@?eeWjvwru>rwi5i`0K(TH#C@k-`Dr$8f04d{ z{ePV~S_2XlDt_&`D;b4KL8d-IQ)^w28lH*<-jubWlr^&&^%ttaN^*8#c%12N`G2If|;W zuv)*7SHAy38hRFT^r};t*uS4IzWY4Z^mcK~lE4MS4?j1v8Io=F)b9JIW*la+LPS%u5N01kq%Ku7wS}u)ZI|(r9c?)4QmZbX}Z@@jSWN5>ClQWZH=> zKMu1#h}7|XpS|0+@z}lh@Z2L0SJ|ezY0`V_NgQ?dxpXXBi4X$Mb;(UnF*7y6*nxc< z+_ss6JGPJ=8$r`Fx|Xfru;WhR@Dop_XXRl5dwFIQeRwN!`XFVg<7ts#BjdUZY}v-- z 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 @iYmUjNW+J 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

!*e8JD?lw2CU*yKs3rt75Z>8!R>k98h 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