mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	Remove the luck component of salvage material quantity
This commit is contained in:
		@@ -42,7 +42,7 @@ public class SalvageCommand extends SkillCommand {
 | 
			
		||||
        if (canScrapCollector) {
 | 
			
		||||
            messages.add(getStatMessage(false, true,
 | 
			
		||||
                    SubSkillType.SALVAGE_SCRAP_COLLECTOR,
 | 
			
		||||
                    String.valueOf(RankUtils.getRank(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR)),
 | 
			
		||||
                    String.valueOf(SalvageManager.getSalvageLimit(player)),
 | 
			
		||||
                    RankUtils.getHighestRankStr(SubSkillType.SALVAGE_SCRAP_COLLECTOR)));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -78,17 +78,6 @@ public class SalvageManager extends SkillManager {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Permissions checks on material and item types
 | 
			
		||||
        if (!Permissions.salvageItemType(player, salvageable.getSalvageItemType())) {
 | 
			
		||||
            NotificationManager.sendPlayerInformation(player, NotificationType.NO_PERMISSION, "mcMMO.NoPermission");
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!Permissions.salvageMaterialType(player, salvageable.getSalvageMaterialType())) {
 | 
			
		||||
            NotificationManager.sendPlayerInformation(player, NotificationType.NO_PERMISSION, "mcMMO.NoPermission");
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /*int skillLevel = getSkillLevel();*/
 | 
			
		||||
        int minimumSalvageableLevel = salvageable.getMinimumLevel();
 | 
			
		||||
 | 
			
		||||
@@ -108,7 +97,7 @@ public class SalvageManager extends SkillManager {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        potentialSalvageYield = Math.min(potentialSalvageYield, getSalvageLimit()); // Always get at least something back, if you're capable of salvaging it.
 | 
			
		||||
        potentialSalvageYield = Math.min(potentialSalvageYield, getSalvageLimit(getPlayer())); // Always get at least something back, if you're capable of salvaging it.
 | 
			
		||||
 | 
			
		||||
        location.add(0.5, 1, 0.5);
 | 
			
		||||
 | 
			
		||||
@@ -119,36 +108,15 @@ public class SalvageManager extends SkillManager {
 | 
			
		||||
            enchantBook = arcaneSalvageCheck(enchants);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Lottery on Salvageable Amount
 | 
			
		||||
 | 
			
		||||
        int lotteryResults = 1;
 | 
			
		||||
        int chanceOfSuccess = 99;
 | 
			
		||||
 | 
			
		||||
        for(int x = 0; x < potentialSalvageYield-1; x++) {
 | 
			
		||||
 | 
			
		||||
            if (ProbabilityUtil.isStaticSkillRNGSuccessful(PrimarySkillType.SALVAGE, mmoPlayer, chanceOfSuccess)) {
 | 
			
		||||
                chanceOfSuccess-=3;
 | 
			
		||||
                chanceOfSuccess = Math.max(chanceOfSuccess, 90);
 | 
			
		||||
 | 
			
		||||
                lotteryResults+=1;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ItemStack salvageResults = new ItemStack(salvageable.getSalvageMaterial(), lotteryResults);
 | 
			
		||||
        ItemStack salvageResults = new ItemStack(salvageable.getSalvageMaterial(), potentialSalvageYield);
 | 
			
		||||
 | 
			
		||||
        //Call event
 | 
			
		||||
        if (EventUtils.callSalvageCheckEvent(player, item, salvageResults, enchantBook).isCancelled()) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // We only send a confirmation message after processing the event (fixes #4694)
 | 
			
		||||
        if (lotteryResults == potentialSalvageYield && potentialSalvageYield != 1 && RankUtils.isPlayerMaxRankInSubSkill(player, SubSkillType.SALVAGE_ARCANE_SALVAGE)) {
 | 
			
		||||
            NotificationManager.sendPlayerInformationChatOnly(player, "Salvage.Skills.Lottery.Perfect", String.valueOf(lotteryResults), StringUtils.getPrettyMaterialString(item.getType()));
 | 
			
		||||
        } else if (salvageable.getMaximumQuantity() == 1 || getSalvageLimit() >= salvageable.getMaximumQuantity()) {
 | 
			
		||||
            NotificationManager.sendPlayerInformationChatOnly(player,  "Salvage.Skills.Lottery.Normal", String.valueOf(lotteryResults), StringUtils.getPrettyMaterialString(item.getType()));
 | 
			
		||||
        } else {
 | 
			
		||||
            NotificationManager.sendPlayerInformationChatOnly(player,  "Salvage.Skills.Lottery.Untrained", String.valueOf(lotteryResults), StringUtils.getPrettyMaterialString(item.getType()));
 | 
			
		||||
        }
 | 
			
		||||
        NotificationManager.sendPlayerInformationChatOnly(player,  "Salvage.Skills.Lottery.Normal",
 | 
			
		||||
                String.valueOf(potentialSalvageYield), StringUtils.getPrettyMaterialString(item.getType()));
 | 
			
		||||
 | 
			
		||||
        player.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
 | 
			
		||||
 | 
			
		||||
@@ -183,8 +151,13 @@ public class SalvageManager extends SkillManager {
 | 
			
		||||
        return Math.min((((Salvage.salvageMaxPercentage / Salvage.salvageMaxPercentageLevel) * getSkillLevel()) / 100.0D), Salvage.salvageMaxPercentage / 100.0D);
 | 
			
		||||
    }*/
 | 
			
		||||
 | 
			
		||||
    public int getSalvageLimit() {
 | 
			
		||||
        return (RankUtils.getRank(getPlayer(), SubSkillType.SALVAGE_SCRAP_COLLECTOR));
 | 
			
		||||
    public static int getSalvageLimit(Player player) {
 | 
			
		||||
        if (RankUtils.getRank(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR) == 1) {
 | 
			
		||||
            return 1;
 | 
			
		||||
        } else {
 | 
			
		||||
            var curRank = RankUtils.getRank(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR);
 | 
			
		||||
            return curRank * 2;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user