Adding Fishermans Diet ability to fishing.

This commit is contained in:
Glitchfinder
2012-11-12 16:18:27 -08:00
parent 4500c4d407
commit 3a467b3da4
23 changed files with 126 additions and 7 deletions

View File

@ -10,10 +10,12 @@ public class FishingCommand extends SkillCommand {
private int lootTier;
private String magicChance;
private String shakeChance;
private String fishermansDietRank;
private boolean canTreasureHunt;
private boolean canMagicHunt;
private boolean canShake;
private boolean canFishermansDiet;
public FishingCommand() {
super(SkillType.FISHING);
@ -24,6 +26,22 @@ public class FishingCommand extends SkillCommand {
lootTier = Fishing.getFishingLootTier(profile);
magicChance = percent.format((float) lootTier / 15);
shakeChance = String.valueOf(Fishing.getShakeChance(lootTier));
if (skillValue >= 1000) {
fishermansDietRank = "5";
}
else if (skillValue >= 800) {
fishermansDietRank = "4";
}
else if (skillValue >= 600) {
fishermansDietRank = "3";
}
else if (skillValue >= 400) {
fishermansDietRank = "2";
}
else {
fishermansDietRank = "1";
}
}
@Override
@ -31,6 +49,7 @@ public class FishingCommand extends SkillCommand {
canTreasureHunt = permInstance.fishingTreasures(player);
canMagicHunt = permInstance.fishingMagic(player);
canShake = permInstance.shakeMob(player);
canFishermansDiet = permInstance.fishermansDiet(player);
}
@Override
@ -51,6 +70,10 @@ public class FishingCommand extends SkillCommand {
if (canShake) {
player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Fishing.Effect.4"), LocaleLoader.getString("Fishing.Effect.5") }));
}
if (canFishermansDiet) {
player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Fishing.Effect.6"), LocaleLoader.getString("Fishing.Effect.7") }));
}
}
@Override
@ -76,5 +99,9 @@ public class FishingCommand extends SkillCommand {
player.sendMessage(LocaleLoader.getString("Fishing.Ability.Shake", new Object[] { shakeChance }));
}
}
if (canFishermansDiet) {
player.sendMessage(LocaleLoader.getString("Fishing.Ability.FD", new Object[] { fishermansDietRank }));
}
}
}

View File

@ -261,10 +261,6 @@ public class EntityListener implements Listener {
int currentFoodLevel = player.getFoodLevel();
int newFoodLevel = event.getFoodLevel();
if (!Permissions.getInstance().farmersDiet(player)) {
return;
}
/*
* Some foods have 3 ranks
* Some foods have 5 ranks
@ -275,65 +271,97 @@ public class EntityListener implements Listener {
if (newFoodLevel > currentFoodLevel) {
Material food = player.getItemInHand().getType();
int herbLevel = profile.getSkillLevel(SkillType.HERBALISM);
int fishLevel = profile.getSkillLevel(SkillType.FISHING);
int foodChange = newFoodLevel - currentFoodLevel;
int rankChange = 0;
boolean fish = false;
boolean herb = false;
switch (food) {
case BREAD:
/* BREAD RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
rankChange = 200;
herb = true;
break;
case COOKIE:
/* COOKIE RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
rankChange = 400;
herb = true;
break;
case MELON:
/* MELON RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
rankChange = 400;
herb = true;
break;
case MUSHROOM_SOUP:
/* MUSHROOM SOUP RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */
rankChange = 200;
herb = true;
break;
case CARROT_ITEM:
/* CARROT RESTORES 2 HUNGER - RESTORES 4 1/2 HUNGER @ 1000 */
rankChange = 200;
herb = true;
break;
case POTATO_ITEM:
/* POTATO RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
rankChange = 400;
herb = true;
break;
case BAKED_POTATO:
/* BAKED POTATO RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */
rankChange = 200;
herb = true;
break;
case POISONOUS_POTATO:
/* POISONOUS POTATO RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
rankChange = 400;
herb = true;
break;
case GOLDEN_CARROT:
/* GOLDEN CARROT RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */
rankChange = 200;
herb = true;
break;
case PUMPKIN_PIE:
/* PUMPKIN PIE RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */
rankChange = 200;
herb = true;
break;
case RAW_FISH:
/* RAW FISH RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
rankChange = 400;
fish = true;
break;
case COOKED_FISH:
/* COOKED FISH RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
rankChange = 200;
fish = true;
break;
default:
return;
}
if (herb && !Permissions.getInstance().farmersDiet(player)) {
return;
}
else if (fish && !Permissions.getInstance().fishermansDiet(player)) {
return;
}
for (int i = 200; i <= 1000; i += rankChange) {
if (herbLevel >= i) {
if ((herb && herbLevel >= i) || (fish && fishLevel >= i)) {
foodChange++;
}
}

View File

@ -120,6 +120,10 @@ public class Permissions {
return player.hasPermission("mcmmo.ability.fishing.magic");
}
public boolean fishermansDiet(Player player) {
return player.hasPermission("mcmmo.ability.fishing.fishermansdiet");
}
/*
* MCMMO.ABILITY.MINING.*
*/