浏览代码

More work on Impact. Tweaked Unarmed's disarm chance to be 2x better.

nossr50 13 年之前
父节点
当前提交
0f8a418efd

+ 1 - 0
Changelog.txt

@@ -45,6 +45,7 @@ Version 1.3.00-dev
  ! Changed Unarmed to start with a +3 DMG (1 Heart = 2 DMG) bonus from Iron Arm Style to make leveling it more viable
  ! Changed Unarmed to gain bonus damage every 50 skill levels
  ! Changed Unarmed to gain more bonus damage total than before
+ ! Changed Unarmed to disarm twice as often as before
  ! Changed Tree Feller to take down entire trees
  ! Changed mob spawn tracking to use Unique Entity ID instead of Entity Object
  ! Changed stats command name to mcstats for better plugin compatibility

+ 3 - 2
src/main/java/com/gmail/nossr50/Combat.java

@@ -83,8 +83,8 @@ public class Combat
 				Axes.axeCriticalCheck(attacker, event, pluginx); //Critical hit
 				
 				//Impact
-				//if(event.getEntity() instanceof LivingEntity)
-				   // Axes.impact(attacker, (LivingEntity)event.getEntity());
+				if(event.getEntity() instanceof LivingEntity)
+				    Axes.impact(attacker, (LivingEntity)event.getEntity());
 				
 				if (!(event instanceof FakeEntityDamageByEntityEvent) && PPa.getSkullSplitterMode())
 					Axes.applyAoeDamage(attacker, event, pluginx);
@@ -99,6 +99,7 @@ public class Combat
 				Unarmed.unarmedBonus(attacker, event);
 				if(PPa.getBerserkMode())
 					event.setDamage(event.getDamage() + (event.getDamage() / 2));
+				
 				if(target instanceof Player)
 					Unarmed.disarmProcCheck(attacker, (Player) target);	//Disarm
 				

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java

@@ -26,7 +26,7 @@ public class UnarmedCommand implements CommandExecutor {
 		float skillvalue = (float) PP.getSkillLevel(SkillType.UNARMED);
 
 		if (PP.getSkillLevel(SkillType.UNARMED) < 1000)
-			percentage = String.valueOf((skillvalue / 4000) * 100);
+			percentage = String.valueOf((skillvalue / 2000) * 100);
 		else
 			percentage = "25";
 

+ 8 - 6
src/main/java/com/gmail/nossr50/skills/Axes.java

@@ -17,6 +17,7 @@
 package com.gmail.nossr50.skills;
 
 import org.bukkit.ChatColor;
+import org.bukkit.Location;
 import org.bukkit.Material;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.LivingEntity;
@@ -25,6 +26,7 @@ import org.bukkit.entity.Wolf;
 import org.bukkit.event.entity.EntityDamageByEntityEvent;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.plugin.Plugin;
+import org.bukkit.util.Vector;
 
 import com.gmail.nossr50.Combat;
 import com.gmail.nossr50.Users;
@@ -94,7 +96,6 @@ public class Axes {
 	        
 	        for(ItemStack x : targetPlayer.getInventory().getArmorContents())
 	        {
-	            System.out.println("[mcMMO] DEBUG: "+x.getType().toString());
 	            if(x.getType() == Material.AIR)
 	            {
 	                emptySlots++;
@@ -105,12 +106,13 @@ public class Axes {
 	        
 	        if(emptySlots == 4)
 	        {
-	            targetPlayer.sendMessage("**HIT BY IMPACT**");
-	            didImpact = applyImpact(target);
+	            didImpact = applyImpact(attacker, target);
+	            if(didImpact)
+	                targetPlayer.sendMessage("**HIT BY IMPACT**");
 	        }
 	    } else {
 	        //Since mobs are technically unarmored this will always trigger
-	        didImpact = applyImpact(target);
+	        didImpact = applyImpact(attacker, target);
 	    }
 	    
 	    if(didImpact)
@@ -119,12 +121,12 @@ public class Axes {
 	    }
 	}
 	
-	public static boolean applyImpact(LivingEntity target)
+	public static boolean applyImpact(Player attacker, LivingEntity target)
 	{
 	    if(Math.random() * 100 > 75)
         {
-            target.teleport(target.getLocation());
             target.damage(2);
+            target.setVelocity(attacker.getLocation().getDirection().normalize().multiply(1.5D));
             return true;
         }
 	    return false;

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

@@ -46,7 +46,7 @@ public class Unarmed {
 		{
 			if(skillLevel >= 1000)
 			{
-				if(Math.random() * 4000 <= 1000)
+				if(Math.random() * 2000 <= 1000)
 				{
 	    			ItemStack item = defender.getItemInHand();
 	    			if(item != null)
@@ -59,7 +59,7 @@ public class Unarmed {
 	    	} 
 			else
     		{
-				if(Math.random() * 4000 <= skillLevel)
+				if(Math.random() * 2000 <= skillLevel)
 				{
 	    			ItemStack item = defender.getItemInHand();
 	    			if(item != null)