mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-10 10:20:41 -07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
1499814bca
4 changed files with 55 additions and 97 deletions
|
|
@ -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))),
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue