mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-07 08:39:07 +00:00
* Added staff support when enchanting (issue #364) * Added staff support when enchanting (issue #364)
This commit is contained in:
+17
-36
@@ -156,23 +156,6 @@ public class Enchanting {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasRunes(int spellID) {
|
|
||||||
EnchantSpell ens = EnchantSpell.forId(spellID);
|
|
||||||
if (ens.getReq3() == 0) {
|
|
||||||
return c.getItemAssistant().playerHasItem(ens.getReq1(),
|
|
||||||
ens.getReqAmt1())
|
|
||||||
&& c.getItemAssistant().playerHasItem(ens.getReq2(),
|
|
||||||
ens.getReqAmt2())
|
|
||||||
&& c.getItemAssistant().playerHasItem(ens.getReq3(),
|
|
||||||
ens.getReqAmt3());
|
|
||||||
} else {
|
|
||||||
return c.getItemAssistant().playerHasItem(ens.getReq1(),
|
|
||||||
ens.getReqAmt1())
|
|
||||||
&& c.getItemAssistant().playerHasItem(ens.getReq2(),
|
|
||||||
ens.getReqAmt2());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getEnchantmentLevel(int spellID) {
|
private int getEnchantmentLevel(int spellID) {
|
||||||
switch (spellID) {
|
switch (spellID) {
|
||||||
case 1155: // Lvl-1 enchant sapphire
|
case 1155: // Lvl-1 enchant sapphire
|
||||||
@@ -191,6 +174,21 @@ public class Enchanting {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int[][] getRequiredRunes(EnchantSpell ens){
|
||||||
|
if (ens.getReq3() > 0) {
|
||||||
|
return new int[][] {
|
||||||
|
{ens.getReq1(),ens.getReqAmt1()},
|
||||||
|
{ens.getReq2(), ens.getReqAmt2()},
|
||||||
|
{ens.getReq3(), ens.getReqAmt3()}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return new int[][]{
|
||||||
|
{ens.getReq1(), ens.getReqAmt1()},
|
||||||
|
{ens.getReq2(), ens.getReqAmt2()}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void enchantItem(int itemID, int spellID) {
|
public void enchantItem(int itemID, int spellID) {
|
||||||
Enchant enc = Enchant.forId(itemID);
|
Enchant enc = Enchant.forId(itemID);
|
||||||
EnchantSpell ens = EnchantSpell.forId(spellID);
|
EnchantSpell ens = EnchantSpell.forId(spellID);
|
||||||
@@ -200,32 +198,15 @@ public class Enchanting {
|
|||||||
}
|
}
|
||||||
if (c.playerLevel[c.playerMagic] >= enc.getLevelReq()) {
|
if (c.playerLevel[c.playerMagic] >= enc.getLevelReq()) {
|
||||||
if (c.getItemAssistant().playerHasItem(enc.getUnenchanted(), 1)) {
|
if (c.getItemAssistant().playerHasItem(enc.getUnenchanted(), 1)) {
|
||||||
if (hasRunes(spellID)) {
|
if(CastRequirements.hasRunes(c, getRequiredRunes(ens))){
|
||||||
if (getEnchantmentLevel(spellID) == enc.getELevel()) {
|
if (getEnchantmentLevel(spellID) == enc.getELevel()) {
|
||||||
c.getItemAssistant().deleteItem(enc.getUnenchanted(), 1);
|
c.getItemAssistant().deleteItem(enc.getUnenchanted(), 1);
|
||||||
c.getItemAssistant().addItem(enc.getEnchanted(), 1);
|
c.getItemAssistant().addItem(enc.getEnchanted(), 1);
|
||||||
c.getPlayerAssistant().addSkillXP(enc.getXp(),
|
c.getPlayerAssistant().addSkillXP(enc.getXp(),
|
||||||
c.playerMagic);
|
c.playerMagic);
|
||||||
c.getItemAssistant()
|
CastRequirements.deleteRunes(c, getRequiredRunes(ens));
|
||||||
.deleteItem(
|
|
||||||
ens.getReq1(),
|
|
||||||
c.getItemAssistant().getItemSlot(
|
|
||||||
ens.getReq1()),
|
|
||||||
ens.getReqAmt1());
|
|
||||||
c.getItemAssistant()
|
|
||||||
.deleteItem(
|
|
||||||
ens.getReq2(),
|
|
||||||
c.getItemAssistant().getItemSlot(
|
|
||||||
ens.getReq2()),
|
|
||||||
ens.getReqAmt2());
|
|
||||||
c.startAnimation(enc.getAnim());
|
c.startAnimation(enc.getAnim());
|
||||||
c.gfx100(enc.getGFX());
|
c.gfx100(enc.getGFX());
|
||||||
if (ens.getReq3() != -1) {
|
|
||||||
c.getItemAssistant().deleteItem(
|
|
||||||
ens.getReq3(),
|
|
||||||
c.getItemAssistant().getItemSlot(
|
|
||||||
ens.getReq3()), ens.getReqAmt3());
|
|
||||||
}
|
|
||||||
c.getPacketSender().sendFrame106(6);
|
c.getPacketSender().sendFrame106(6);
|
||||||
} else {
|
} else {
|
||||||
c.getPacketSender().sendMessage(
|
c.getPacketSender().sendMessage(
|
||||||
|
|||||||
Reference in New Issue
Block a user