|
@@ -4,51 +4,54 @@ import org.bukkit.Material;
|
|
|
import org.bukkit.entity.Player;
|
|
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
-import com.gmail.nossr50.Users;
|
|
|
+
|
|
|
import com.gmail.nossr50.m;
|
|
|
+import com.gmail.nossr50.datatypes.PlayerProfile;
|
|
|
import com.gmail.nossr50.datatypes.SkillType;
|
|
|
import com.gmail.nossr50.locale.mcLocale;
|
|
|
|
|
|
public class Unarmed {
|
|
|
-
|
|
|
- public static void unarmedBonus(Player attacker, EntityDamageByEntityEvent event)
|
|
|
- {
|
|
|
- int bonus = 3;
|
|
|
-
|
|
|
- //Add 1 DMG for every 50 skill levels
|
|
|
- bonus += Users.getProfile(attacker).getSkillLevel(SkillType.UNARMED)/50;
|
|
|
-
|
|
|
- if(bonus > 8)
|
|
|
- bonus = 8;
|
|
|
-
|
|
|
- event.setDamage(event.getDamage() + bonus);
|
|
|
- }
|
|
|
-
|
|
|
- public static void disarmProcCheck(Player attacker, Player defender)
|
|
|
- {
|
|
|
- int skillLevel = Users.getProfile(attacker).getSkillLevel(SkillType.UNARMED);
|
|
|
- if(defender.getItemInHand() != null && defender.getItemInHand().getType() != Material.AIR)
|
|
|
- {
|
|
|
- if(skillLevel >= 1000)
|
|
|
- {
|
|
|
- if(Math.random() * 3000 <= 1000)
|
|
|
- {
|
|
|
- ItemStack item = defender.getItemInHand();
|
|
|
- defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
|
|
|
- m.mcDropItem(defender.getLocation(), item);
|
|
|
- defender.setItemInHand(null);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if(Math.random() * 3000 <= skillLevel)
|
|
|
- {
|
|
|
- ItemStack item = defender.getItemInHand();
|
|
|
- defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
|
|
|
- m.mcDropItem(defender.getLocation(), item);
|
|
|
- defender.setItemInHand(null);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Apply bonus to Unarmed damage.
|
|
|
+ *
|
|
|
+ * @param PPa Profile of the attacking player
|
|
|
+ * @param event The event to modify
|
|
|
+ */
|
|
|
+ public static void unarmedBonus(PlayerProfile PPa, EntityDamageByEntityEvent event) {
|
|
|
+ final int MAX_BONUS = 8;
|
|
|
+ int bonus = 3;
|
|
|
+
|
|
|
+ bonus += PPa.getSkillLevel(SkillType.UNARMED) / 50; //Add 1 DMG for every 50 skill levels
|
|
|
+
|
|
|
+ if (bonus > MAX_BONUS) {
|
|
|
+ bonus = MAX_BONUS;
|
|
|
+ }
|
|
|
+
|
|
|
+ event.setDamage(event.getDamage() + bonus);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Check for disarm.
|
|
|
+ *
|
|
|
+ * @param PPa Profile of the attacking player
|
|
|
+ * @param defender The defending player
|
|
|
+ */
|
|
|
+ public static void disarmProcCheck(PlayerProfile PPa, Player defender) {
|
|
|
+ final int MAX_BONUS_LEVEL = 1000;
|
|
|
+
|
|
|
+ int skillLevel = PPa.getSkillLevel(SkillType.UNARMED);
|
|
|
+ int skillCheck = m.skillCheck(skillLevel, MAX_BONUS_LEVEL);
|
|
|
+
|
|
|
+ if (defender.getItemInHand().getType().equals(Material.AIR)) {
|
|
|
+ if (Math.random() * 3000 <= skillCheck) {
|
|
|
+ ItemStack item = defender.getItemInHand();
|
|
|
+
|
|
|
+ defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
|
|
|
+
|
|
|
+ m.mcDropItem(defender.getLocation(), item);
|
|
|
+ defender.setItemInHand(new ItemStack(Material.AIR));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|