فهرست منبع

Merge pull request #52 from gmcferrin/master

Arcane Forging Configuration
The Yeti 13 سال پیش
والد
کامیت
f93efe54a5
2فایلهای تغییر یافته به همراه63 افزوده شده و 32 حذف شده
  1. 25 3
      src/main/java/com/gmail/nossr50/config/LoadProperties.java
  2. 38 29
      src/main/java/com/gmail/nossr50/skills/Repair.java

+ 25 - 3
src/main/java/com/gmail/nossr50/config/LoadProperties.java

@@ -28,7 +28,7 @@ public class LoadProperties
 	whoisEnable, statsEnable, addxpEnable, ptpEnable, mmoeditEnable, clearmyspawnEnable, mcgodEnable, mcabilityEnable, mctopEnable, 
 	mcrefreshEnable, enableMotd, enableMySpawn, enableRegen, enableCobbleToMossy, useMySQL, cocoabeans, mushrooms, 
 	toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, excavationRequiresShovel, woodcuttingrequiresaxe, eggs, apples, cake, music, diamond, glowstone, 
-	slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
+	slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages, mayDowngradeEnchants, mayLoseEnchants;
 	
 	public static String xplock, MySQLtablePrefix, MySQLuserName, MySQLserverName, MySQLdbName, MySQLdbPass, mctop, addxp,
 	xprate, mcability, mcmmo, mcc, mcrefresh, mcgod, stats, mmoedit, ptp, party, myspawn, whois, invite, accept, clearmyspawn, nWood,
@@ -40,7 +40,8 @@ public class LoadProperties
 	msugar, mpumpkin, mwheat, mgold, mdiamond, miron, mredstone, mlapis, mobsidian, mnetherrack, mglowstone, mcoal, mstone, MySQLport,
 	xpGainMultiplier, superBreakerCooldown, greenTerraCooldown, gigaDrillBreakerCooldown, treeFellerCooldown,
 	berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss,
-	feathersConsumedByChimaeraWing, bonesConsumedByCOTW, repairdiamondlevel, rWood, rStone, rIron, rGold, rDiamond, rString, rLeather;
+	feathersConsumedByChimaeraWing, bonesConsumedByCOTW, repairdiamondlevel, rWood, rStone, rIron, rGold, rDiamond, rString, rLeather,
+	downgradeRank1, downgradeRank2, downgradeRank3, downgradeRank4, keepEnchantsRank1, keepEnchantsRank2, keepEnchantsRank3, keepEnchantsRank4;
 	
 	public static double xpbackground_r, xpbackground_g, xpbackground_b, xpborder_r, xpborder_g, xpborder_b, fishing_r, fishing_g, fishing_b, acrobatics_r, acrobatics_g, acrobatics_b, archery_r, archery_g, archery_b, axes_r, axes_g, axes_b,
 	excavation_r, excavation_g, excavation_b, herbalism_r, herbalism_g, herbalism_b, mining_r, mining_g, mining_b,
@@ -221,7 +222,7 @@ public class LoadProperties
 	    	write("Experience.Mining.Diamond", 750);
 	    	write("Experience.Mining.Iron", 250);
 	    	write("Experience.Mining.Redstone", 150);
-	    	write("Experience.Mining.lapis", 400);
+	    	write("Experience.Mining.Lapis", 400);
 	    	write("Experience.Mining.Obsidian", 150);
 	    	write("Experience.Mining.Netherrack", 30);
 	    	write("Experience.Mining.Glowstone", 30);
@@ -352,6 +353,16 @@ public class LoadProperties
 	    	write("Skills.Woodcutting.Requires_Axe", true);
 	    	write("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10);
 	    	
+		write("Arcane_Forging.Downgrades.Enabled", true);
+	        write("Arcane_Forging.Downgrades.Chance.Rank_1", 75);
+	        write("Arcane_Forging.Downgrades.Chance.Rank_2", 50);
+	        write("Arcane_Forging.Downgrades.Chance.Rank_3", 25);
+	        write("Arcane_Forging.Downgrades.Chance.Rank_4", 15);
+	        write("Arcane_Forging.May_Lose_Enchants.Enabled", true);
+	    	write("Arcane_Forging.Keep_Enchants.Chance.Rank_1", 10);
+	        write("Arcane_Forging.Keep_Enchants.Chance.Rank_2", 20);
+	        write("Arcane_Forging.Keep_Enchants.Chance.Rank_3", 30);
+	        write("Arcane_Forging.Keep_Enchants.Chance.Rank_4", 40);
 	    	loadkeys();
 	    }
 	    private void loadkeys()
@@ -550,6 +561,17 @@ public class LoadProperties
 	        rLeather = readInteger("Skills.Repair.Leather.ID", 334);
 	        nLeather = readString("Skills.Repair.String.Name", "Leather");
 
+		mayDowngradeEnchants = readBoolean("Arcane_Forging.Downgrades.Enabled", true);
+	        downgradeRank1 = readInteger("Arcane_Forging.Downgrades.Chance.Rank_1", 75);
+	        downgradeRank2 = readInteger("Arcane_Forging.Downgrades.Chance.Rank_2", 50);
+	        downgradeRank3 = readInteger("Arcane_Forging.Downgrades.Chance.Rank_3", 25);
+	        downgradeRank4 = readInteger("Arcane_Forging.Downgrades.Chance.Rank_4", 15);
+	        mayLoseEnchants = readBoolean("Arcane_Forging.May_Lose_Enchants.Enabled", true);
+	    	keepEnchantsRank1 = readInteger("Arcane_Forging.Keep_Enchants.Chance.Rank_1", 10);
+	        keepEnchantsRank2 = readInteger("Arcane_Forging.Keep_Enchants.Chance.Rank_2", 20);
+	        keepEnchantsRank3 = readInteger("Arcane_Forging.Keep_Enchants.Chance.Rank_3", 30);
+	        keepEnchantsRank4 = readInteger("Arcane_Forging.Keep_Enchants.Chance.Rank_4", 40);
+	        
 	    	cocoabeans = readBoolean("Excavation.Drops.Cocoa_Beans", true);
 	    	mushrooms = readBoolean("Excavation.Drops.Mushrooms", true);
 	    	glowstone = readBoolean("Excavation.Drops.Glowstone", true);

+ 38 - 29
src/main/java/com/gmail/nossr50/skills/Repair.java

@@ -315,44 +315,53 @@ public class Repair {
 
 		if(rank == 0)
 		{
-			player.sendMessage(mcLocale.getString("Repair.LostEnchants"));
-			for(Enchantment x : enchants)
+			if(LoadProperties.mayLoseEnchants())
 			{
-				is.removeEnchantment(x);
+				player.sendMessage(mcLocale.getString("Repair.LostEnchants"));
+				for(Enchantment x : enchants)
+				{
+					is.removeEnchantment(x);
+				}
 			}
 			return;
 		}
 
 		boolean failure = false, downgrade = false;
 
-		for(Enchantment x : enchants)
+		if(LoadProperties.mayLoseEnchants())
 		{
-			//Remove enchant
-			is.removeEnchantment(x);
-
-			if(x.canEnchantItem(is))
+			for(Enchantment x : enchants)
 			{
-				if(Math.random() * 100 <= getEnchantChance(rank))
+				//Remove enchant
+				is.removeEnchantment(x);
+	
+				if(x.canEnchantItem(is))
 				{
-					if(enchantsLvl[pos] > 1)
+					if(Math.random() * 100 <= getEnchantChance(rank))
 					{
-						if(Math.random() * 100 <= getDowngradeChance(rank))
-						{
-							is.addEnchantment(x, enchantsLvl[pos]-1);
-							downgrade = true;
-						} else
+						if(enchantsLvl[pos] > 1)
 						{
+							if(LoadProperties.mayDowngradeEnchants())
+							{
+								if(Math.random() * 100 <= getDowngradeChance(rank))
+								{
+									is.addEnchantment(x, enchantsLvl[pos]-1);
+									downgrade = true;
+								} else
+								{
+									is.addEnchantment(x, enchantsLvl[pos]);
+								}
+							}
+						}
+						else {
 							is.addEnchantment(x, enchantsLvl[pos]);
 						}
+					} else {
+						failure = true;	
 					}
-					else {
-						is.addEnchantment(x, enchantsLvl[pos]);
-					}
-				} else {
-					failure = true;	
 				}
+				pos++;
 			}
-			pos++;
 		}
 
 		if(failure == false && downgrade == false)
@@ -369,13 +378,13 @@ public class Repair {
 		switch(rank)
 		{
 		case 4:
-			return 40;
+			return LoadProperties.keepEnchantsRank4;
 		case 3:
-			return 30;
+			return LoadProperties.keepEnchantsRank3;
 		case 2:
-			return 20;
+			return LoadProperties.keepEnchantsRank2;
 		case 1:
-			return 10;
+			return LoadProperties.keepEnchantsRank1;
 		default:
 			return 0;
 		}
@@ -385,13 +394,13 @@ public class Repair {
 		switch(rank)
 		{
 		case 4:
-			return 15;
+			return LoadProperties.downgradeRank4;
 		case 3:
-			return 25;
+			return LoadProperties.downgradeRank3;
 		case 2:
-			return 50;
+			return LoadProperties.downgradeRank2;
 		case 1:
-			return 75;
+			return LoadProperties.downgradeRank1;
 		default:
 			return 100;
 		}