From 3ff0592d2d78d2c1301656914d007f7ab2bacbbd Mon Sep 17 00:00:00 2001 From: libraryaddict Date: Sat, 24 Jan 2015 13:51:18 +1300 Subject: [PATCH] Mild fix on fireball, fix heal given less cooldown and lower heal spell heals --- .../arcade/game/games/wizards/SpellType.java | 4 +-- .../games/wizards/spells/SpellFireball.java | 26 +++++++++++++------ .../game/games/wizards/spells/SpellHeal.java | 2 +- .../games/wizards/spells/SpellTunnel.java | 18 ------------- 4 files changed, 21 insertions(+), 29 deletions(-) delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellTunnel.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/SpellType.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/SpellType.java index b2fc92926..4fcdafa7b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/SpellType.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/SpellType.java @@ -153,7 +153,7 @@ public enum SpellType // ❤ 10, // Cooldown change per level 5, // Item amount in loot - C.cGold + C.Bold + "Heals: " + C.Bold + C.cWhite + "Spell Level + 2", + C.cGold + C.Bold + "Heals: " + C.Bold + C.cWhite + "(Spell Level / 2) + 1.5", "", @@ -689,7 +689,7 @@ public enum SpellType // ❤ + _spellCooldown - _cooldownChangePerLevel) - * wizard.getCooldownModifier())); + * (this == SpellType.Heal ? 1 : wizard.getCooldownModifier()))); } public ItemStack getSpellItem() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellFireball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellFireball.java index 13e0046cb..db2f5c4bd 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellFireball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellFireball.java @@ -3,14 +3,17 @@ package nautilus.game.arcade.game.games.wizards.spells; import mineplex.minecraft.game.core.explosion.CustomExplosion; import nautilus.game.arcade.game.games.wizards.Spell; import nautilus.game.arcade.game.games.wizards.spellinterfaces.SpellClick; +import net.minecraft.server.v1_7_R4.EntityFireball; import org.bukkit.Sound; +import org.bukkit.craftbukkit.v1_7_R4.entity.CraftFireball; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.metadata.FixedMetadataValue; +import org.bukkit.util.Vector; public class SpellFireball extends Spell implements SpellClick { @@ -24,15 +27,14 @@ public class SpellFireball extends Spell implements SpellClick projectile.remove(); CustomExplosion explosion = new CustomExplosion(Wizards.getArcadeManager().GetDamage(), projectile.getLocation(), - ((org.bukkit.entity.Fireball) projectile).getYield(), "Fireball"); + projectile.getMetadata("FireballYield").get(0).asFloat(), "Fireball"); explosion.setPlayer((Player) projectile.getMetadata("FireballSpell").get(0).value(), true); explosion.setDropItems(false); explosion.explode(); - - ((org.bukkit.entity.Fireball) projectile).setYield(0); + } } @@ -41,14 +43,22 @@ public class SpellFireball extends Spell implements SpellClick { org.bukkit.entity.Fireball fireball = (org.bukkit.entity.Fireball) p.getWorld().spawnEntity(p.getEyeLocation(), EntityType.FIREBALL); - - fireball.setVelocity(p.getEyeLocation().getDirection()); + + Vector vector = p.getEyeLocation().getDirection(); + + // We can't call the bukkit methods because for some weird reason, it enforces a certain speed. + EntityFireball eFireball = ((CraftFireball) fireball).getHandle(); + eFireball.dirX = vector.getX(); + eFireball.dirY = vector.getY(); + eFireball.dirZ = vector.getZ(); + fireball.setBounce(false); - fireball.setDirection(fireball.getVelocity()); fireball.setShooter(p); - fireball.setYield((getSpellLevel(p) * 0.2F) + 0.8F); + fireball.setYield(0); fireball.setMetadata("FireballSpell", new FixedMetadataValue(Wizards.getArcadeManager().GetPlugin(), p)); - + fireball.setMetadata("FireballYield", new FixedMetadataValue(Wizards.getArcadeManager().GetPlugin(), + (getSpellLevel(p) * 0.2F) + 0.8F)); + p.getWorld().playSound(p.getLocation(), Sound.BLAZE_BREATH, 0.5F, 5F); charge(p); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellHeal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellHeal.java index ad08d5c10..5cc960576 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellHeal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellHeal.java @@ -28,7 +28,7 @@ public class SpellHeal extends Spell implements SpellClick, SpellClickEntity if (entity.getHealth() < entity.getMaxHealth()) { - double health = entity.getHealth() + (4 + (getSpellLevel(p) * 2)); + double health = entity.getHealth() + (3 + getSpellLevel(p)); if (health > entity.getMaxHealth()) health = entity.getMaxHealth(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellTunnel.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellTunnel.java deleted file mode 100644 index 369939773..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellTunnel.java +++ /dev/null @@ -1,18 +0,0 @@ -package nautilus.game.arcade.game.games.wizards.spells; - -import nautilus.game.arcade.game.games.wizards.Spell; -import nautilus.game.arcade.game.games.wizards.spellinterfaces.SpellClick; - -import org.bukkit.entity.Player; - -public class SpellTunnel extends Spell implements SpellClick -{ - - @Override - public void castSpell(Player player) - { - // TODO Auto-generated method stub - - } - -}