|
@@ -14,6 +14,8 @@ public class Hardcore {
|
|
|
|
|
|
PlayerProfile PP = Users.getProfile(player);
|
|
|
|
|
|
+ int totalCount = 0;
|
|
|
+
|
|
|
for(SkillType st : SkillType.values()) {
|
|
|
|
|
|
if(st.equals(SkillType.ALL))
|
|
@@ -24,10 +26,12 @@ public class Hardcore {
|
|
|
if(newValue < 0)
|
|
|
newValue = 0;
|
|
|
|
|
|
+ totalCount+=PP.getSkillLevel(st)-newValue;
|
|
|
+
|
|
|
PP.modifySkill(st, newValue);
|
|
|
}
|
|
|
|
|
|
- player.sendMessage(ChatColor.GOLD+"[mcMMO] "+ChatColor.DARK_RED+"You've suffered a penalty to skills from death.");
|
|
|
+ player.sendMessage(ChatColor.GOLD+"[mcMMO] "+ChatColor.DARK_RED+"You've lost "+ChatColor.BLUE+totalCount+ChatColor.DARK_RED+" from death.");
|
|
|
}
|
|
|
|
|
|
public static void invokeVampirism(Player killer, Player defender) {
|
|
@@ -37,11 +41,13 @@ public class Hardcore {
|
|
|
PlayerProfile PPk = Users.getProfile(killer);
|
|
|
PlayerProfile PPd = Users.getProfile(defender);
|
|
|
|
|
|
+ int totalCount = 0;
|
|
|
+
|
|
|
for(SkillType st : SkillType.values()) {
|
|
|
if(st.equals(SkillType.ALL))
|
|
|
continue;
|
|
|
|
|
|
- if(PPd.getSkillLevel(st) <= 0)
|
|
|
+ if(PPd.getSkillLevel(st) <= 0 || PPd.getSkillLevel(st) < (PPk.getSkillLevel(st)/2))
|
|
|
continue;
|
|
|
|
|
|
int newValue = (int) (PPd.getSkillLevel(st) * (Config.getInstance().getHardcoreVampirismStatLeechPercentage() * 0.01D));
|
|
@@ -49,11 +55,18 @@ public class Hardcore {
|
|
|
if(newValue <= 0)
|
|
|
newValue = 1;
|
|
|
|
|
|
+ totalCount+=1;
|
|
|
+
|
|
|
PPk.modifySkill(st, newValue+PPk.getSkillLevel(st));
|
|
|
PPd.modifySkill(st, PPd.getSkillLevel(st)-newValue);
|
|
|
}
|
|
|
|
|
|
- killer.sendMessage(ChatColor.GOLD+"[mcMMO] "+ChatColor.DARK_AQUA+"You've stolen knowledge from that player.");
|
|
|
- defender.sendMessage(ChatColor.GOLD+"[mcMMO] "+ChatColor.YELLOW+killer.getName()+ChatColor.DARK_AQUA+" has stolen knowledge from you!");
|
|
|
+ if(totalCount >= 1) {
|
|
|
+ killer.sendMessage(ChatColor.GOLD+"[mcMMO] "+ChatColor.DARK_AQUA+"You've stolen "+ChatColor.BLUE+totalCount+ChatColor.DARK_AQUA+" levels from that player.");
|
|
|
+ defender.sendMessage(ChatColor.GOLD+"[mcMMO] "+ChatColor.YELLOW+killer.getName()+ChatColor.DARK_RED+" has stolen "+ChatColor.BLUE+totalCount+ChatColor.DARK_RED+" levels from you!");
|
|
|
+ } else {
|
|
|
+ killer.sendMessage(ChatColor.GOLD+"[mcMMO] "+ChatColor.GRAY+"That player was too unskilled to grant you any knowledge.");
|
|
|
+ defender.sendMessage(ChatColor.GOLD+"[mcMMO] "+ChatColor.YELLOW+killer.getName()+ChatColor.GRAY+" was unable to steal knowledge from you!");
|
|
|
+ }
|
|
|
}
|
|
|
}
|