Repository reorganisation
Unified kotlin and java into just src/main Unified the rs09 and core packages Took all content out of the core package, and placed it into the new content package Reorganised all source code relating to content to be easier to find and explore
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
package content.global.skill.crafting.armour;
|
||||
|
||||
import core.game.node.entity.skill.SkillPulse;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.diary.DiaryType;
|
||||
import core.game.node.item.Item;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.tools.StringUtils;
|
||||
|
||||
/**
|
||||
* Represents a pulse used to craft soft leather.
|
||||
* @author 'Vexia
|
||||
*/
|
||||
public final class SoftCraftPulse extends SkillPulse<Item> {
|
||||
|
||||
/**
|
||||
* Represents the animation to use.
|
||||
*/
|
||||
private static final Animation ANIMATION = Animation.create(1249);
|
||||
|
||||
/**
|
||||
* Represents the leather to use.
|
||||
*/
|
||||
private LeatherCrafting.SoftLeather soft;
|
||||
|
||||
/**
|
||||
* Represents the amount to make.
|
||||
*/
|
||||
private int amount;
|
||||
|
||||
/**
|
||||
* Represents the ticks passed.
|
||||
*/
|
||||
private int ticks;
|
||||
|
||||
/**
|
||||
* Constructs a new {@code SoftCraftPulse} {@code Object}.
|
||||
* @param player the player.
|
||||
* @param node the node.
|
||||
* @param leather the soft.
|
||||
* @param amount the amount.
|
||||
*/
|
||||
public SoftCraftPulse(Player player, Item node, LeatherCrafting.SoftLeather leather, int amount) {
|
||||
super(player, node);
|
||||
this.soft = leather;
|
||||
this.amount = amount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkRequirements() {
|
||||
if (player.getSkills().getLevel(Skills.CRAFTING) < soft.getLevel()) {
|
||||
player.getDialogueInterpreter().sendDialogue("You need a crafting level of " + soft.getLevel() + " to make " + (StringUtils.isPlusN(soft.getProduct().getName()) ? "an" : "a" + " " + soft.getProduct().getName()).toLowerCase() + ".");
|
||||
return false;
|
||||
}
|
||||
if (!player.getInventory().contains(LeatherCrafting.NEEDLE, 1)) {
|
||||
return false;
|
||||
}
|
||||
if (!player.getInventory().contains(LeatherCrafting.LEATHER, 1)) {
|
||||
return false;
|
||||
}
|
||||
if (!player.getInventory().containsItem(LeatherCrafting.THREAD)) {
|
||||
player.getDialogueInterpreter().sendDialogue("You need thread to make this.");
|
||||
amount = 0;
|
||||
return false;
|
||||
}
|
||||
player.getInterfaceManager().close();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void animate() {
|
||||
if (ticks % 5 == 0) {
|
||||
player.animate(ANIMATION);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean reward() {
|
||||
if (++ticks % 5 != 0) {
|
||||
return false;
|
||||
}
|
||||
if (player.getInventory().remove(new Item(LeatherCrafting.LEATHER))) {
|
||||
if (soft == LeatherCrafting.SoftLeather.GLOVES || soft == LeatherCrafting.SoftLeather.BOOTS || soft == LeatherCrafting.SoftLeather.VAMBRACES) {
|
||||
player.getPacketDispatch().sendMessage("You make a pair of " + soft.getProduct().getName().toLowerCase() + ".");
|
||||
} else {
|
||||
player.getPacketDispatch().sendMessage("You make " + (StringUtils.isPlusN(soft.getProduct().getName()) ? "an " : "a ") + soft.getProduct().getName().toLowerCase() + ".");
|
||||
}
|
||||
Item item = soft.getProduct();
|
||||
player.getInventory().add(item);
|
||||
player.getSkills().addExperience(Skills.CRAFTING, soft.getExperience(), true);
|
||||
LeatherCrafting.decayThread(player);
|
||||
if (LeatherCrafting.isLastThread(player)) {
|
||||
LeatherCrafting.removeThread(player);
|
||||
}
|
||||
|
||||
if (soft == LeatherCrafting.SoftLeather.GLOVES) {
|
||||
player.getAchievementDiaryManager().finishTask(player, DiaryType.LUMBRIDGE, 1, 3);
|
||||
}
|
||||
}
|
||||
amount--;
|
||||
return amount < 1;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user