Merge remote-tracking branch 'origin/master'

This commit is contained in:
Ceikry 2021-03-26 16:38:02 -05:00
commit 1499814bca
4 changed files with 55 additions and 97 deletions

View file

@ -293,6 +293,7 @@ public enum Consumables {
ROE(new Food(new int[]{11324}, new HealingEffect(3))),
EQUA_LEAVES(new Food(new int[]{2128}, new HealingEffect(1))),
CHOC_ICE(new Food(new int[]{6794}, new HealingEffect(6))),
EDIBLE_SEAWEED(new Food(new int[] {403}, new HealingEffect(4))),
/** Special Events */
PUMPKIN(new Food(new int[] {1959}, new HealingEffect(14))),

View file

@ -83,6 +83,10 @@ public enum CookableItems {
BOWL_4(7084, 1871, 7092,43, 60, 70,68,392),
BOWL_5(7082, 7080, 7094,57, 120, 80,68,392),
/* Vegetables */
BAKED_POTATO(6701, 1942, 6699, 7, 15, 41, 108, 472),
SWEETCORN(5988, 5986, 5990, 28, 104, 54, 90, 424),
//Miscellaneous
RAW_OOMLIE(Items.RAW_OOMLIE_2337, 0, Items.BURNT_OOMLIE_2426, 50, 0, 999,0,0), // always burns
OOMLIE_WRAP(Items.COOKED_OOMLIE_WRAP_2343, Items.WRAPPED_OOMLIE_2341, Items.BURNT_OOMLIE_WRAP_2345, 50, 110, 999,0,0);

View file

@ -80,11 +80,6 @@ public enum SkillingTool {
*/
RUNE_PICKAXE(1275, 41, 0.65D, new Animation(624)),
/**
* Represents a dragon pickaxe (mining).
*/
DRAGON_PICKAXE(14669, 61, 1.0D, new Animation(11171)),
/**
* Represents the Inferno Adze (woodcutting)
*/
@ -182,11 +177,9 @@ public enum SkillingTool {
public static SkillingTool getPickaxe(Player player) {
SkillingTool tool = null;
if (checkTool(player, Skills.MINING, SkillingTool.INFERNO_ADZE2)) {
if(player.getSkills().getLevel(Skills.FIREMAKING) >= 92) {
if (player.getSkills().getLevel(Skills.FIREMAKING) >= 92) {
tool = SkillingTool.INFERNO_ADZE2;
}
} else if (checkTool(player, Skills.MINING, SkillingTool.DRAGON_PICKAXE)) {
tool = SkillingTool.DRAGON_PICKAXE;
} else if (checkTool(player, Skills.MINING, SkillingTool.RUNE_PICKAXE)) {
tool = SkillingTool.RUNE_PICKAXE;
} else if (checkTool(player, Skills.MINING, SkillingTool.ADAMANT_PICKAXE)) {

View file

@ -137,66 +137,59 @@ class MiningSkillPulse(private val player: Player, private val node: Node) : Pul
if (reward > 0) {
reward = calculateReward(reward) // calculate rewards
rewardAmount = calculateRewardAmount(reward) // calculate amount
/**
* Code for randomly detaching the pickaxe handle from the pickaxe head and sending the head flying
*/
if (RandomFunction.random(1,750) == 390) {
destroyPickaxe(player, SkillingTool.getPickaxe(player))
return true
applyAchievementTask(reward) // apply achievements
SkillingPets.checkPetDrop(player, SkillingPets.GOLEM) // roll for pet
//add experience
val experience = resource!!.getExperience() * rewardAmount
player.skills.addExperience(Skills.MINING, experience, true)
//Handle bracelet of clay
if(reward == Items.CLAY_434){
val bracelet = player.equipment.get(EquipmentContainer.SLOT_HANDS)
if(bracelet != null && bracelet.id == Items.BRACELET_OF_CLAY_11074){
if(bracelet.charge > 28) bracelet.charge = 28
bracelet.charge--
reward = Items.SOFT_CLAY_1761
player.sendMessage("Your bracelet of clay softens the clay for you.")
if(bracelet.charge <= 0){
player.sendMessage("Your bracelet of clay crumbles to dust.")
player.equipment.remove(bracelet)
}
}
}
//send the message for the resource reward
if (isMiningGems) {
val gemName = ItemDefinition.forId(reward).name.toLowerCase()
player.sendMessage("You get " + (if (StringUtils.isPlusN(gemName)) "an" else "a") + " " + gemName + ".")
} else {
applyAchievementTask(reward) // apply achievements
SkillingPets.checkPetDrop(player, SkillingPets.GOLEM) // roll for pet
player.packetDispatch.sendMessage("You get some " + ItemDefinition.forId(reward).name.toLowerCase() + ".")
}
//give the reward
player.inventory.add(Item(reward, rewardAmount))
var rocksMined = player.getAttribute("$STATS_BASE:$STATS_ROCKS",0)
player.setAttribute("/save:$STATS_BASE:$STATS_ROCKS",++rocksMined)
//add experience
val experience = resource!!.getExperience() * rewardAmount
player.skills.addExperience(Skills.MINING, experience, true)
//Handle bracelet of clay
if(reward == Items.CLAY_434){
val bracelet = player.equipment.get(EquipmentContainer.SLOT_HANDS)
if(bracelet != null && bracelet.id == Items.BRACELET_OF_CLAY_11074){
if(bracelet.charge > 28) bracelet.charge = 28
bracelet.charge--
reward = Items.SOFT_CLAY_1761
player.sendMessage("Your bracelet of clay softens the clay for you.")
if(bracelet.charge <= 0){
player.sendMessage("Your bracelet of clay crumbles to dust.")
player.equipment.remove(bracelet)
}
}
//calculate bonus gem for mining
if (!isMiningEssence) {
var chance = 282
var altered = false
if (Item(player.equipment.getId(12)).name.toLowerCase().contains("ring of wealth")) {
chance = (chance / 1.5).toInt()
altered = true
}
//send the message for the resource reward
if (isMiningGems) {
val gemName = ItemDefinition.forId(reward).name.toLowerCase()
player.sendMessage("You get " + (if (StringUtils.isPlusN(gemName)) "an" else "a") + " " + gemName + ".")
} else {
player.packetDispatch.sendMessage("You get some " + ItemDefinition.forId(reward).name.toLowerCase() + ".")
val necklace = player.equipment[EquipmentContainer.SLOT_AMULET]
if (necklace != null && necklace.id > 1705 && necklace.id < 1713) {
chance = (chance / 1.5).toInt()
altered = true
}
//give the reward
player.inventory.add(Item(reward, rewardAmount))
var rocksMined = player.getAttribute("$STATS_BASE:$STATS_ROCKS",0)
player.setAttribute("/save:$STATS_BASE:$STATS_ROCKS",++rocksMined)
//calculate bonus gem for mining
if (!isMiningEssence) {
var chance = 282
var altered = false
if (Item(player.equipment.getId(12)).name.toLowerCase().contains("ring of wealth")) {
chance = (chance / 1.5).toInt()
altered = true
}
val necklace = player.equipment[EquipmentContainer.SLOT_AMULET]
if (necklace != null && necklace.id > 1705 && necklace.id < 1713) {
chance = (chance / 1.5).toInt()
altered = true
}
if (RandomFunction.random(chance) == chance / 2) {
val gem = RandomFunction.rollChanceTable(true, *GEM_REWARDS)[0]
player.packetDispatch.sendMessage("You find a " + gem.name + "!")
if (!player.inventory.add(gem, player)) {
player.packetDispatch.sendMessage("You do not have enough space in your inventory, so you drop the gem on the floor.")
}
if (RandomFunction.random(chance) == chance / 2) {
val gem = RandomFunction.rollChanceTable(true, *GEM_REWARDS)[0]
player.packetDispatch.sendMessage("You find a " + gem.name + "!")
if (!player.inventory.add(gem, player)) {
player.packetDispatch.sendMessage("You do not have enough space in your inventory, so you drop the gem on the floor.")
}
}
}
@ -211,39 +204,6 @@ class MiningSkillPulse(private val player: Player, private val node: Node) : Pul
return false
}
private fun destroyPickaxe(player: Player, pickaxe: SkillingTool) {
if(pickaxe.name.contains("adze")){
return
}
val radius = 2
val l = player.location.transform(RandomFunction.random(-radius, radius), RandomFunction.random(-radius, radius), 0)
val p = Pathfinder.find(player.location, l).points.last
val headSpawn = Location(p.x, p.y, player.location.z)
val headID =
when (pickaxe.id) {
1265 -> 480
1267 -> 482
1269 -> 484
1271 -> 488
1273 -> 486
1275 -> 490
else -> 0
}
val pickItem = Item(pickaxe.id)
if(player.equipment.containsItem(pickItem)){
val realItem = player.equipment.getItem(pickItem)
player.equipment.remove(pickItem)
player.equipment.add(Item(466),realItem.slot,false,false)
player.equipment.refresh()
} else if(player.inventory.containsItem(pickItem)) {
player.inventory.remove(pickItem)
player.inventory.add(Item(466))
}
player.audioManager.send(17)
player.sendMessage(colorize("%RThe head of your pickaxe snaps off and goes flying!"))
GroundItemManager.create(Item(headID),headSpawn,player)
}
private fun calculateRewardAmount(reward: Int): Int {
var amount = 1