2
0
Эх сурвалжийг харах

Merge branch 'master' of github.com:mcMMO-Dev/mcMMO

nossr50 13 жил өмнө
parent
commit
d7d1d0b58d

+ 49 - 33
src/main/java/com/gmail/nossr50/Combat.java

@@ -381,38 +381,54 @@ public class Combat
 			else
 				xpinc = damage;
 			
-			if(entity instanceof Animals)
-				xp = (int) (xpinc * LoadProperties.animalXP);
-			else
-			{
-				if(entity instanceof Enderman)
-					xp = (int) (xpinc * LoadProperties.endermanXP);
-				else if(entity instanceof Creeper)
-					xp = (int) (xpinc * LoadProperties.creeperXP);
-				else if(entity instanceof Silverfish)
-					xp = (int) (xpinc * LoadProperties.silverfishXP);
-				else if(entity instanceof CaveSpider)
-					xp = (int) (xpinc * LoadProperties.cavespiderXP);
-				else if(entity instanceof Spider)
-					xp = (int) (xpinc * LoadProperties.spiderXP);
-				else if(entity instanceof Skeleton)
-					xp = (int) (xpinc * LoadProperties.skeletonXP);
-				else if(entity instanceof Zombie)
-					xp = (int) (xpinc * LoadProperties.zombieXP);
-				else if(entity instanceof PigZombie)
-					xp = (int) (xpinc * LoadProperties.pigzombieXP);
-				else if(entity instanceof Slime)
-					xp = (int) (xpinc * LoadProperties.slimeXP);
-				else if(entity instanceof Ghast)
-					xp = (int) (xpinc * LoadProperties.ghastXP);
-				else if(entity instanceof Blaze)
-					xp = (int) (xpinc * LoadProperties.blazeXP);
-				else if(entity instanceof EnderDragon)
-					xp = (int) (xpinc * LoadProperties.enderdragonXP);
-				else if(entity instanceof MagmaCube)
-					xp = (int) (xpinc * LoadProperties.magmacubeXP);
-			}
-		}
-		return xp;
+	    	if(entity instanceof Animals)
+		    	xp = (int) (xpinc * LoadProperties.animalXP);
+	    	else
+	    	{
+	    		EntityType type = entity.getType();
+	    		switch(type){
+	    		case BLAZE:
+	    			xp = (int) (xpinc * LoadProperties.blazeXP);
+	    			break;
+	    		case CAVE_SPIDER:
+	    			xp = (int) (xpinc * LoadProperties.cavespiderXP);
+	    			break;
+	    		case CREEPER:
+	    			xp = (int) (xpinc * LoadProperties.creeperXP);
+	    			break;
+	    		case ENDER_DRAGON:
+	    			xp = (int) (xpinc * LoadProperties.enderdragonXP);
+	    			break;
+	    		case ENDERMAN:
+	    			xp = (int) (xpinc * LoadProperties.endermanXP);
+	    			break;
+	    		case GHAST:
+	    			xp = (int) (xpinc * LoadProperties.ghastXP);
+	    			break;
+	    		case MAGMA_CUBE:
+	    			xp = (int) (xpinc * LoadProperties.magmacubeXP);
+	    			break;
+	    		case PIG_ZOMBIE:
+	    			xp = (int) (xpinc * LoadProperties.pigzombieXP);
+	    			break;
+	    		case SILVERFISH:
+	    			xp = (int) (xpinc * LoadProperties.silverfishXP);
+	    			break;
+	    		case SKELETON:
+	    			xp = (int) (xpinc * LoadProperties.skeletonXP);
+	    			break;
+	    		case SLIME:
+	    			xp = (int) (xpinc * LoadProperties.slimeXP);
+	    			break;
+	    		case SPIDER:
+	    			xp = (int) (xpinc * LoadProperties.spiderXP);
+	    			break;
+	    		case ZOMBIE:
+	    			xp = (int) (xpinc * LoadProperties.zombieXP);
+	    			break;
+	    		}
+	    	}
+    	}
+    	return xp;
 	}
 }

+ 28 - 38
src/main/java/com/gmail/nossr50/skills/Unarmed.java

@@ -16,7 +16,6 @@
 */
 package com.gmail.nossr50.skills;
 
-import org.bukkit.Location;
 import org.bukkit.entity.Player;
 import org.bukkit.event.entity.EntityDamageByEntityEvent;
 import org.bukkit.inventory.ItemStack;
@@ -32,12 +31,11 @@ public class Unarmed {
 	public static void berserkActivationCheck(Player player)
 	{
     	PlayerProfile PP = Users.getProfile(player);
-		if(player.getItemInHand().getTypeId() == 0)
+    	AbilityType ability = AbilityType.BERSERK;
+		if(player.getItemInHand() == null)
 		{
 			if(PP.getFistsPreparationMode())
-			{
     			PP.setFistsPreparationMode(false);
-    		}
 			
 	    	int ticks = 2;
 	    	int x = PP.getSkillLevel(SkillType.UNARMED);
@@ -48,16 +46,16 @@ public class Unarmed {
     			ticks++;
     		}
     		
-	    	if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getSkillDATS(AbilityType.BERSERK), LoadProperties.berserkCooldown))
+	    	if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getSkillDATS(ability), LoadProperties.berserkCooldown))
 	    	{
+	    		
 	    		player.sendMessage(mcLocale.getString("Skills.BerserkOn"));
 	    		for(Player y : player.getWorld().getPlayers())
 	    		{
 	    			if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
 	    				y.sendMessage(mcLocale.getString("Skills.BerserkPlayer", new Object[] {player.getName()}));
 	    		}
-	    		PP.setSkillDATS(AbilityType.BERSERK, System.currentTimeMillis()+(ticks*1000));
-	    		System.out.println("getSkillDATS(): "+PP.getSkillDATS(AbilityType.BERSERK));
+	    		PP.setSkillDATS(ability, System.currentTimeMillis()+(ticks*1000));
 	    		PP.setBerserkMode(true);
 	    	}
 	    }
@@ -65,56 +63,48 @@ public class Unarmed {
 	
 	public static void unarmedBonus(Player attacker, EntityDamageByEntityEvent event)
 	{
-		PlayerProfile PPa = Users.getProfile(attacker);
 		int bonus = 3;
 		
 		//Add 1 DMG for every 50 skill levels
-		bonus += PPa.getSkillLevel(SkillType.UNARMED)/50;
+		bonus += Users.getProfile(attacker).getSkillLevel(SkillType.UNARMED)/50;
 		
 		if(bonus > 8)
 		    bonus = 8;
         
-		event.setDamage(event.getDamage()+bonus);
+		event.setDamage(event.getDamage() + bonus);
 	}
 	
 	public static void disarmProcCheck(Player attacker, Player defender)
 	{
-		PlayerProfile PP = Users.getProfile(attacker);
-		if(attacker.getItemInHand().getTypeId() == 0)
+		int skillLevel = Users.getProfile(attacker).getSkillLevel(SkillType.UNARMED);
+		if(attacker.getItemInHand() == null)
 		{
-			if(PP.getSkillLevel(SkillType.UNARMED) >= 1000)
+			if(skillLevel >= 1000)
 			{
-	    		if(Math.random() * 4000 <= 1000)
-	    		{
-	    			Location loc = defender.getLocation();
-	    			if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
+				if(Math.random() * 4000 <= 1000)
+				{
+	    			ItemStack item = defender.getItemInHand();
+	    			if(item != null)
 	    			{
 	    				defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
-	    				ItemStack item = defender.getItemInHand();
-		    			if(item != null)
-		    			{
-		    				m.mcDropItem(loc, item);
-		    				ItemStack itemx = null;
-		    				defender.setItemInHand(itemx);
-		    			}
+		    			m.mcDropItem(defender.getLocation(), item);
+		    			defender.setItemInHand(null);
 	    			}
-	    		}
-	    	} else {
-	    		if(Math.random() * 4000 <= PP.getSkillLevel(SkillType.UNARMED)){
-	    			Location loc = defender.getLocation();
-	    			if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
+				}
+	    	} 
+			else
+    		{
+				if(Math.random() * 4000 <= skillLevel)
+				{
+	    			ItemStack item = defender.getItemInHand();
+	    			if(item != null)
 	    			{
 	    				defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
-	    				ItemStack item = defender.getItemInHand();
-		    			if(item != null)
-		    			{
-		    				m.mcDropItem(loc, item);
-		    				ItemStack itemx = null;
-		    				defender.setItemInHand(itemx);
-	    				}
+		    			m.mcDropItem(defender.getLocation(), item);
+		    			defender.setItemInHand(null);
 	    			}
-	    		}
-	    	}
+				}
+    		}
 		}
 	}
 }