Started work on new Staves skill.

This commit is contained in:
GJ 2012-03-19 01:39:37 -04:00
parent b86d76fcd4
commit 00fc5b93d2
4 changed files with 69 additions and 3 deletions

View File

@ -0,0 +1,7 @@
package com.gmail.nossr50.datatypes;
public enum StaffType {
BLAZE_ROD,
STICK,
BONE;
}

View File

@ -48,6 +48,7 @@ import com.gmail.nossr50.skills.Fishing;
import com.gmail.nossr50.skills.Herbalism;
import com.gmail.nossr50.skills.Repair;
import com.gmail.nossr50.skills.Skills;
import com.gmail.nossr50.skills.Staves;
import com.gmail.nossr50.skills.Taming;
public class mcPlayerListener implements Listener {
@ -240,6 +241,9 @@ public class mcPlayerListener implements Listener {
BlastMining.remoteDetonation(player, plugin);
}
/* STAFF CHECKS */
Staves.altFire(is.getType(), player);
break;
case RIGHT_CLICK_AIR:
@ -263,6 +267,9 @@ public class mcPlayerListener implements Listener {
BlastMining.remoteDetonation(player, plugin);
}
/* STAFF CHECKS */
Staves.altFire(is.getType(), player);
break;
case LEFT_CLICK_AIR:

View File

@ -261,14 +261,14 @@ public class BlastMining {
AbilityType ability = AbilityType.BLAST_MINING;
/* Check Cooldown */
if(!Skills.cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown())) {
if (!Skills.cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown())) {
player.sendMessage(mcLocale.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + Skills.calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
return;
}
/* Send message to nearby players */
for(Player y : player.getWorld().getPlayers()) {
if(y != player && m.isNear(player.getLocation(), y.getLocation(), MAX_DISTANCE_AWAY)) {
for (Player y : player.getWorld().getPlayers()) {
if (y != player && m.isNear(player.getLocation(), y.getLocation(), MAX_DISTANCE_AWAY)) {
y.sendMessage(ability.getAbilityPlayer(player));
}
}

View File

@ -0,0 +1,52 @@
package com.gmail.nossr50.skills;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.ExperienceOrb;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.Player;
import com.gmail.nossr50.m;
public class Staves {
public static void altFire(Material type, Player attacker) {
switch (type) {
case BLAZE_ROD:
attacker.launchProjectile(Fireball.class);
break;
case BONE:
for (Player y : attacker.getWorld().getPlayers()) {
if (y != attacker && m.isNear(attacker.getLocation(), y.getLocation(), 10) && y.getLevel() > 0) {
y.setLevel((int) (y.getLevel() * .75));
attacker.sendMessage("You drained your opponent of XP!");
y.sendMessage("You feel some of your power leave you...");
for (int i = 0; i <= 100; i++) {
Location dropLocation = y.getLocation();
dropLocation.setX(dropLocation.getX() + (Math.random() * 2));
dropLocation.setZ(dropLocation.getZ() + (Math.random() * 2));
ExperienceOrb orb = y.getWorld().spawn(dropLocation, ExperienceOrb.class);
orb.setExperience((int) (Math.random() * 5));
}
}
}
break;
case STICK:
for (Player y : attacker.getWorld().getPlayers()) {
if (y != attacker && m.isNear(attacker.getLocation(), y.getLocation(), 10)) {
attacker.sendMessage("You slowed your opponent!");
y.sendMessage("You were suddenly slowed...");
y.setVelocity(y.getVelocity().multiply(0.5));
}
}
break;
default:
break;
}
}
}