Browse Source

*CLEANUP* - Swords.java

GJ 13 years ago
parent
commit
5a54d6e0c5
1 changed files with 126 additions and 118 deletions
  1. 126 118
      src/main/java/com/gmail/nossr50/skills/Swords.java

+ 126 - 118
src/main/java/com/gmail/nossr50/skills/Swords.java

@@ -1,13 +1,16 @@
 package com.gmail.nossr50.skills;
 
+import org.bukkit.entity.AnimalTamer;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Wolf;
 import org.bukkit.event.entity.EntityDamageByEntityEvent;
+
 import com.gmail.nossr50.Combat;
 import com.gmail.nossr50.ItemChecks;
 import com.gmail.nossr50.Users;
+import com.gmail.nossr50.m;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcPermissions;
 import com.gmail.nossr50.datatypes.PlayerProfile;
@@ -15,126 +18,131 @@ import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.mcLocale;
 import com.gmail.nossr50.party.Party;
 
-public class Swords 
-{
-	public static void bleedCheck(Player attacker, LivingEntity x, mcMMO pluginx)
-	{
-    	PlayerProfile PPa = Users.getProfile(attacker);
-    	
-    	if(x instanceof Wolf)
-    	{
-    		Wolf wolf = (Wolf)x;
-    		if(wolf.getOwner() instanceof Player)
-    		{
-    			Player owner = (Player) wolf.getOwner();
-	    		if(owner == attacker)
-	    			return;
-	    		if(Party.getInstance().inSameParty(attacker, owner))
-	    			return;
-    		}
-    	}
-    	if(mcPermissions.getInstance().swords(attacker) && ItemChecks.isSword(attacker.getItemInHand())){
-			if(PPa.getSkillLevel(SkillType.SWORDS) >= 750)
-			{
-				if(Math.random() * 1000 <= 750)
-				{
-					if(!(x instanceof Player))
-						pluginx.misc.addToBleedQue(x);
-					if(x instanceof Player)
-					{
-						Player target = (Player)x;
-						Users.getProfile(target).addBleedTicks(3);
-					}
-					attacker.sendMessage(mcLocale.getString("Swords.EnemyBleeding"));
-				}
-			} 
-			else if (Math.random() * 1000 <= PPa.getSkillLevel(SkillType.SWORDS))
-			{
-				if(!(x instanceof Player))
-					pluginx.misc.addToBleedQue(x);
-				if(x instanceof Player)
-				{
-					Player target = (Player)x;
-					Users.getProfile(target).addBleedTicks(2);
-				}
-				attacker.sendMessage(mcLocale.getString("Swords.EnemyBleeding"));
-			}
-		}
+public class Swords {
+
+    /**
+     * Check for Bleed effect.
+     *
+     * @param attacker The attacking player
+     * @param entity The defending entity
+     * @param plugin mcMMO plugin instance
+     */
+    public static void bleedCheck(Player attacker, LivingEntity entity, mcMMO plugin) {
+
+        if (entity instanceof Wolf) {
+            Wolf wolf = (Wolf) entity;
+
+            if (wolf.isTamed()) {
+                AnimalTamer tamer = wolf.getOwner();
+
+                if (tamer instanceof Player) {
+                    Player owner = (Player) tamer;
+
+                    if (owner == attacker || Party.getInstance().inSameParty(attacker, owner)) {
+                        return;
+                    }
+                }
+            }
+        }
+
+        final int MAX_BONUS_LEVEL = 750;
+
+        PlayerProfile PPa = Users.getProfile(attacker);
+        int skillLevel = PPa.getSkillLevel(SkillType.SWORDS);
+        int skillCheck = m.skillCheck(skillLevel, MAX_BONUS_LEVEL);
+
+        if (Math.random() * 1000 <= skillCheck && !entity.isDead()) {
+            if (entity instanceof Player) {
+                Player target = (Player) entity;
+                int bleedTicks;
+
+                if (skillLevel >= 750) {
+                    bleedTicks = 3;
+                }
+                else {
+                    bleedTicks = 2;
+                }
+
+                Users.getProfile(target).addBleedTicks(bleedTicks);
+            }
+            else {
+                plugin.misc.addToBleedQue(entity);
+            }
+            attacker.sendMessage(mcLocale.getString("Swords.EnemyBleeding"));
+        }
     }
-    
-    public static void counterAttackChecks(EntityDamageByEntityEvent event)
-    {
-    	//Don't want to counter attack stuff not alive
-    	
-    	if(!(event.getDamager() instanceof LivingEntity))
-    		return;
-
-	    if(event instanceof EntityDamageByEntityEvent)
-	    {
-	    	Entity f = ((EntityDamageByEntityEvent) event).getDamager();
-		   	if(event.getEntity() instanceof Player)
-		   	{
-		   		Player defender = (Player)event.getEntity();
-		   		PlayerProfile PPd = Users.getProfile(defender);
-		   		if(ItemChecks.isSword(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender))
-		   		{
-		    		if(PPd.getSkillLevel(SkillType.SWORDS) >= 600)
-		    		{
-		    			if(Math.random() * 2000 <= 600)
-		    			{
-			    			Combat.dealDamage((LivingEntity) f, event.getDamage() / 2);
-			    			defender.sendMessage(mcLocale.getString("Swords.CounterAttacked"));
-			    			if(f instanceof Player)
-		    				((Player) f).sendMessage(mcLocale.getString("Swords.HitByCounterAttack"));
-		    			}
-		    		}
-		    		else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS))
-		    		{
-			    		Combat.dealDamage((LivingEntity) f, event.getDamage() / 2);
-			    		defender.sendMessage(mcLocale.getString("Swords.CounterAttacked"));
-		    			if(f instanceof Player)
-		    				((Player) f).sendMessage(mcLocale.getString("Swords.HitByCounterAttack"));
-		    		}
-		   		}
-		    }
-    	}
+
+    /**
+     * Counter-attack entities.
+     *
+     * @param event The event to modify
+     */
+    public static void counterAttackChecks(EntityDamageByEntityEvent event) {
+        Entity attacker = event.getDamager();
+
+        if (!(attacker instanceof LivingEntity)) {
+            return;
+        }
+
+        Entity target = event.getEntity();
+
+        if (target instanceof Player) {
+            Player defender = (Player) target;
+            PlayerProfile PPd = Users.getProfile(defender);
+
+            if (ItemChecks.isSword(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender)) {
+                final int MAX_BONUS_LEVEL = 600;
+                final int COUNTER_ATTACK_MODIFIER = 2;
+
+                int skillLevel = PPd.getSkillLevel(SkillType.SWORDS);
+                int skillCheck = m.skillCheck(skillLevel, MAX_BONUS_LEVEL);
+
+                if (Math.random() * 2000 <= skillCheck) {
+                    Combat.dealDamage((LivingEntity) attacker, event.getDamage() / COUNTER_ATTACK_MODIFIER);
+                    defender.sendMessage(mcLocale.getString("Swords.CounterAttacked"));
+
+                    if (attacker instanceof Player) {
+                        ((Player) attacker).sendMessage(mcLocale.getString("Swords.HitByCounterAttack"));
+                    }
+                }
+            }
+        }
     }
-    
-    public static void bleedSimulate(mcMMO plugin)
-    {
-    	//Add items from Que list to BleedTrack list
-    	
-    	for(LivingEntity x : plugin.misc.bleedQue)
-    	{
-    		plugin.misc.bleedTracker.add(x);
-    	}
-    	
-    	//Clear list
-    	plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length];
-    	plugin.misc.bleedQuePos = 0;
-    	
-    	//Cleanup any dead entities from the list
-    	for(LivingEntity x : plugin.misc.bleedRemovalQue)
-    	{
-    		plugin.misc.bleedTracker.remove(x);
-    	}
-    	
-    	//Clear bleed removal list
-    	plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length];
-    	plugin.misc.bleedRemovalQuePos = 0;
-    	
-    	//Bleed monsters/animals
-        for(LivingEntity x : plugin.misc.bleedTracker)
-        {
-        	if(x == null || x.isDead())
-        	{
-        		plugin.misc.addToBleedRemovalQue(x);
-        		continue;
-        	}
-        	else
-        	{
-				Combat.dealDamage(x, 2);
-        	}
+
+    /**
+     * Simulate a bleed.
+     *
+     * @param plugin mcMMO plugin instance
+     */
+    public static void bleedSimulate(mcMMO plugin) {
+
+        /* Add items from Que list to BleedTrack list */
+        for (LivingEntity entity : plugin.misc.bleedQue) {
+            plugin.misc.bleedTracker.add(entity);
+        }
+
+        /* Clear the BleedQue list */
+        plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length];
+        plugin.misc.bleedQuePos = 0;
+
+        /* Cleanup any dead entities from the list */
+        for(LivingEntity entity : plugin.misc.bleedRemovalQue) {
+            plugin.misc.bleedTracker.remove(entity);
+        }
+
+        /* Clear bleed removal list */
+        plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length];
+        plugin.misc.bleedRemovalQuePos = 0;
+
+        /* Bleed monsters/animals */
+        for (LivingEntity entity : plugin.misc.bleedTracker) {
+            if (entity == null || entity.isDead()) {
+                plugin.misc.addToBleedRemovalQue(entity);
+                continue;
+            }
+            else {
+                Combat.dealDamage(entity, 2);
+            }
         }
     }
 }