Block anim fixes (#578)

* Fix Shield & Staff Block Anims

* IntelliJ Code Format MeleeData.java
This commit is contained in:
Josh Shippam
2023-02-04 06:38:20 +00:00
committed by GitHub
parent c42dc29f73
commit f59e396359
@@ -7,463 +7,473 @@ import com.rs2.game.items.ItemConstants;
import com.rs2.game.items.impl.Greegree.MonkeyData; import com.rs2.game.items.impl.Greegree.MonkeyData;
import com.rs2.game.players.Player; import com.rs2.game.players.Player;
import static com.rs2.game.content.StaticItemList.TOKTZKETXIL;
public class MeleeData { public class MeleeData {
public static boolean fullVoidMelee(Player c) { public static boolean fullVoidMelee(Player c) {
return c.playerEquipment[c.playerHat] == 11665 return c.playerEquipment[c.playerHat] == 11665
&& c.playerEquipment[c.playerLegs] == 8840 && c.playerEquipment[c.playerLegs] == 8840
&& c.playerEquipment[c.playerChest] == 8839 && c.playerEquipment[c.playerChest] == 8839
&& c.playerEquipment[c.playerHands] == 8842; && c.playerEquipment[c.playerHands] == 8842;
} }
public static int calculateMeleeAttack(Player c) { public static int calculateMeleeAttack(Player c) {
int attackLevel = c.playerLevel[GameConstants.ATTACK]; int attackLevel = c.playerLevel[GameConstants.ATTACK];
// 2, 5, 11, 18, 19 // 2, 5, 11, 18, 19
if (c.getPrayer().prayerActive[2]) { if (c.getPrayer().prayerActive[2]) {
attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.05; attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.05;
} else if (c.getPrayer().prayerActive[7]) { } else if (c.getPrayer().prayerActive[7]) {
attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.1; attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.1;
} else if (c.getPrayer().prayerActive[15]) { } else if (c.getPrayer().prayerActive[15]) {
attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.15; attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.15;
} else if (c.getPrayer().prayerActive[24]) { } else if (c.getPrayer().prayerActive[24]) {
attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.15; attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.15;
} else if (c.getPrayer().prayerActive[25]) { } else if (c.getPrayer().prayerActive[25]) {
attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.2; attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.2;
} }
if (fullVoidMelee(c)) { if (fullVoidMelee(c)) {
attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.1; attackLevel += c.getLevelForXP(c.playerXP[GameConstants.ATTACK]) * 0.1;
} }
attackLevel *= c.specAccuracy; attackLevel *= c.specAccuracy;
// c.sendMessage("Attack: " + (attackLevel + // c.sendMessage("Attack: " + (attackLevel +
// (c.playerBonus[bestMeleeAtk()] * 2))); // (c.playerBonus[bestMeleeAtk()] * 2)));
int i = c.playerBonus[bestMeleeAtk(c)]; int i = c.playerBonus[bestMeleeAtk(c)];
i += c.bonusAttack; i += c.bonusAttack;
if (c.playerEquipment[c.playerAmulet] == 11128 if (c.playerEquipment[c.playerAmulet] == 11128
&& c.playerEquipment[c.playerWeapon] == 6528) { && c.playerEquipment[c.playerWeapon] == 6528) {
i *= 1.30; i *= 1.30;
} }
return (int) (attackLevel + attackLevel * 0.15 + (i + i * 0.05)); return (int) (attackLevel + attackLevel * 0.15 + (i + i * 0.05));
} }
public static int bestMeleeAtk(Player c) { public static int bestMeleeAtk(Player c) {
if (c.playerBonus[0] > c.playerBonus[1] if (c.playerBonus[0] > c.playerBonus[1]
&& c.playerBonus[0] > c.playerBonus[2]) { && c.playerBonus[0] > c.playerBonus[2]) {
return 0; return 0;
} }
if (c.playerBonus[1] > c.playerBonus[0] if (c.playerBonus[1] > c.playerBonus[0]
&& c.playerBonus[1] > c.playerBonus[2]) { && c.playerBonus[1] > c.playerBonus[2]) {
return 1; return 1;
} }
return c.playerBonus[2] <= c.playerBonus[1] return c.playerBonus[2] <= c.playerBonus[1]
|| c.playerBonus[2] <= c.playerBonus[0] ? 0 : 2; || c.playerBonus[2] <= c.playerBonus[0] ? 0 : 2;
} }
public static int calculateMeleeDefence(Player c) { public static int calculateMeleeDefence(Player c) {
int defenceLevel = c.playerLevel[GameConstants.DEFENCE]; int defenceLevel = c.playerLevel[GameConstants.DEFENCE];
int i = c.playerBonus[bestMeleeDef(c)]; int i = c.playerBonus[bestMeleeDef(c)];
if (c.getPrayer().prayerActive[0]) { if (c.getPrayer().prayerActive[0]) {
defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.05; defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.05;
} else if (c.getPrayer().prayerActive[5]) { } else if (c.getPrayer().prayerActive[5]) {
defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.1; defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.1;
} else if (c.getPrayer().prayerActive[13]) { } else if (c.getPrayer().prayerActive[13]) {
defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.15; defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.15;
} else if (c.getPrayer().prayerActive[24]) { } else if (c.getPrayer().prayerActive[24]) {
defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.2; defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.2;
} else if (c.getPrayer().prayerActive[25]) { } else if (c.getPrayer().prayerActive[25]) {
defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.25; defenceLevel += c.getLevelForXP(c.playerXP[GameConstants.DEFENCE]) * 0.25;
} }
return (int) (defenceLevel + defenceLevel * 0.15 + (i + i * 0.05)); return (int) (defenceLevel + defenceLevel * 0.15 + (i + i * 0.05));
} }
public static int bestMeleeDef(Player c) { public static int bestMeleeDef(Player c) {
if (c.playerBonus[5] > c.playerBonus[6] if (c.playerBonus[5] > c.playerBonus[6]
&& c.playerBonus[5] > c.playerBonus[7]) { && c.playerBonus[5] > c.playerBonus[7]) {
return 5; return 5;
} }
if (c.playerBonus[6] > c.playerBonus[5] if (c.playerBonus[6] > c.playerBonus[5]
&& c.playerBonus[6] > c.playerBonus[7]) { && c.playerBonus[6] > c.playerBonus[7]) {
return 6; return 6;
} }
return c.playerBonus[7] <= c.playerBonus[5] return c.playerBonus[7] <= c.playerBonus[5]
|| c.playerBonus[7] <= c.playerBonus[6] ? 5 : 7; || c.playerBonus[7] <= c.playerBonus[6] ? 5 : 7;
} }
/** /**
* Weapon and magic attack speed! * Weapon and magic attack speed!
**/ **/
public static int getAttackDelay(Player c) { public static int getAttackDelay(Player c) {
String s = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase(); String s = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase();
if (c.usingMagic) { if (c.usingMagic) {
switch (MagicData.MAGIC_SPELLS[c.spellId][0]) { switch (MagicData.MAGIC_SPELLS[c.spellId][0]) {
case 12871: // ice blitz case 12871: // ice blitz
case 13023: // shadow barrage case 13023: // shadow barrage
case 12891: // ice barrage case 12891: // ice barrage
return 5; return 5;
default: default:
return 5; return 5;
} }
} }
if (c.playerEquipment[c.playerWeapon] == -1) { if (c.playerEquipment[c.playerWeapon] == -1) {
return 4;// unarmed return 4;// unarmed
} }
switch (c.playerEquipment[c.playerWeapon]) { switch (c.playerEquipment[c.playerWeapon]) {
case 11235: case 11235:
return 9; return 9;
case 11730: case 11730:
return 4; return 4;
case 6528: case 6528:
return 7; return 7;
} }
if (s.endsWith("greataxe")) { if (s.endsWith("greataxe")) {
return 7; return 7;
} else if (s.equals("torags hammers")) { } else if (s.equals("torags hammers")) {
return 5; return 5;
} else if (s.equals("guthans warspear")) { } else if (s.equals("guthans warspear")) {
return 5; return 5;
} else if (s.equals("veracs flail")) { } else if (s.equals("veracs flail")) {
return 5; return 5;
} else if (s.equals("ahrims staff")) { } else if (s.equals("ahrims staff")) {
return 6; return 6;
} else if (s.contains("staff")) { } else if (s.contains("staff")) {
if (s.contains("zamarok") || s.contains("guthix") if (s.contains("zamarok") || s.contains("guthix")
|| s.contains("saradomian") || s.contains("slayer") || s.contains("saradomian") || s.contains("slayer")
|| s.contains("ancient")) { || s.contains("ancient")) {
return 4; return 4;
} else { } else {
return 5; return 5;
} }
} else if (s.contains("bow")) { } else if (s.contains("bow")) {
if (s.contains("composite") || s.equals("seercull")) { if (s.contains("composite") || s.equals("seercull")) {
return 5; return 5;
} else if (s.contains("aril")) { } else if (s.contains("aril")) {
return 4; return 4;
} else if (s.contains("Ogre")) { } else if (s.contains("Ogre")) {
return 8; return 8;
} else if (s.contains("short") || s.contains("hunt") } else if (s.contains("short") || s.contains("hunt")
|| s.contains("sword")) { || s.contains("sword")) {
return 4; return 4;
} else if (s.contains("long") || s.contains("crystal")) { } else if (s.contains("long") || s.contains("crystal")) {
return 6; return 6;
} else if (s.contains("'bow")) { } else if (s.contains("'bow")) {
return 7; return 7;
} }
return 5; return 5;
} else if (s.contains("dagger")) { } else if (s.contains("dagger")) {
return 4; return 4;
} else if (s.contains("godsword") || s.contains("2h")) { } else if (s.contains("godsword") || s.contains("2h")) {
return 6; return 6;
} else if (s.contains("longsword")) { } else if (s.contains("longsword")) {
return 5; return 5;
} else if (s.contains("sword")) { } else if (s.contains("sword")) {
return 4; return 4;
} else if (s.contains("scimitar")) { } else if (s.contains("scimitar")) {
return 4; return 4;
} else if (s.contains("mace")) { } else if (s.contains("mace")) {
return 5; return 5;
} else if (s.contains("battleaxe")) { } else if (s.contains("battleaxe")) {
return 6; return 6;
} else if (s.contains("pickaxe")) { } else if (s.contains("pickaxe")) {
return 5; return 5;
} else if (s.contains("thrownaxe")) { } else if (s.contains("thrownaxe")) {
return 5; return 5;
} else if (s.contains("axe")) { } else if (s.contains("axe")) {
return 5; return 5;
} else if (s.contains("warhammer")) { } else if (s.contains("warhammer")) {
return 6; return 6;
} else if (s.contains("2h")) { } else if (s.contains("2h")) {
return 7; return 7;
} else if (s.contains("spear")) { } else if (s.contains("spear")) {
return 5; return 5;
} else if (s.contains("claw")) { } else if (s.contains("claw")) {
return 4; return 4;
} else if (s.contains("halberd")) { } else if (s.contains("halberd")) {
return 7; return 7;
} else if (s.equals("granite maul")) { } else if (s.equals("granite maul")) {
return 7; return 7;
} else if (s.equals("toktz-xil-ak")) { } else if (s.equals("toktz-xil-ak")) {
return 4; return 4;
} else if (s.equals("tzhaar-ket-em")) { } else if (s.equals("tzhaar-ket-em")) {
return 5; return 5;
} else if (s.equals("tzhaar-ket-om")) { } else if (s.equals("tzhaar-ket-om")) {
return 7; return 7;
} else if (s.equals("toktz-xil-ek")) { } else if (s.equals("toktz-xil-ek")) {
return 4; return 4;
} else if (s.equals("toktz-xil-ul")) { } else if (s.equals("toktz-xil-ul")) {
return 4; return 4;
} else if (s.equals("toktz-mej-tal")) { } else if (s.equals("toktz-mej-tal")) {
return 6; return 6;
} else if (s.contains("whip")) { } else if (s.contains("whip")) {
return 4; return 4;
} else if (s.contains("dart")) { } else if (s.contains("dart")) {
return 3; return 3;
} else if (s.contains("knife")) { } else if (s.contains("knife")) {
return 3; return 3;
} else if (s.contains("javelin")) { } else if (s.contains("javelin")) {
return 6; return 6;
} }
return 5; return 5;
} }
/** /**
* Weapon stand, walk, run, etc emotes * Weapon stand, walk, run, etc emotes
**/ **/
public static void getPlayerAnimIndex(Player c) { public static void getPlayerAnimIndex(Player c) {
String weaponName = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase(); String weaponName = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase();
c.playerStandIndex = 0x328; c.playerStandIndex = 0x328;
c.playerTurnIndex = 0x337; c.playerTurnIndex = 0x337;
c.playerWalkIndex = 0x333; c.playerWalkIndex = 0x333;
c.playerTurn180Index = 0x334; c.playerTurn180Index = 0x334;
c.playerTurn90CWIndex = 0x335; c.playerTurn90CWIndex = 0x335;
c.playerTurn90CCWIndex = 0x336; c.playerTurn90CCWIndex = 0x336;
c.playerRunIndex = 0x338; c.playerRunIndex = 0x338;
if (weaponName.contains("halberd") || weaponName.contains("guthan")) { if (weaponName.contains("halberd") || weaponName.contains("guthan")) {
c.playerStandIndex = 809; c.playerStandIndex = 809;
c.playerWalkIndex = 1146; c.playerWalkIndex = 1146;
c.playerRunIndex = 1210; c.playerRunIndex = 1210;
return; return;
} }
if (weaponName.contains("dharok")) { if (weaponName.contains("dharok")) {
c.playerStandIndex = 0x811; c.playerStandIndex = 0x811;
c.playerWalkIndex = 0x67F; c.playerWalkIndex = 0x67F;
c.playerRunIndex = 0x680; c.playerRunIndex = 0x680;
return; return;
} }
if (weaponName.contains("ahrim")) { if (weaponName.contains("ahrim")) {
c.playerStandIndex = 809; c.playerStandIndex = 809;
c.playerWalkIndex = 1146; c.playerWalkIndex = 1146;
c.playerRunIndex = 1210; c.playerRunIndex = 1210;
return; return;
} }
if (weaponName.contains("verac")) { if (weaponName.contains("verac")) {
c.playerStandIndex = 1832; c.playerStandIndex = 1832;
c.playerWalkIndex = 1830; c.playerWalkIndex = 1830;
c.playerRunIndex = 1831; c.playerRunIndex = 1831;
return; return;
} }
if (weaponName.contains("wand") || weaponName.contains("staff")) { if (weaponName.contains("wand") || weaponName.contains("staff")) {
c.playerStandIndex = 809; c.playerStandIndex = 809;
c.playerRunIndex = 1210; c.playerRunIndex = 1210;
c.playerWalkIndex = 1146; c.playerWalkIndex = 1146;
return; return;
} }
if (weaponName.contains("karil")) { if (weaponName.contains("karil")) {
c.playerStandIndex = 2074; c.playerStandIndex = 2074;
c.playerWalkIndex = 2076; c.playerWalkIndex = 2076;
c.playerRunIndex = 2077; c.playerRunIndex = 2077;
return; return;
} }
if (weaponName.contains("2h sword")) { if (weaponName.contains("2h sword")) {
c.playerStandIndex = 2561; c.playerStandIndex = 2561;
c.playerWalkIndex = 2562; c.playerWalkIndex = 2562;
c.playerRunIndex = 2563; c.playerRunIndex = 2563;
return; return;
} }
if (weaponName.contains("bow")) { if (weaponName.contains("bow")) {
c.playerStandIndex = 808; c.playerStandIndex = 808;
c.playerWalkIndex = 819; c.playerWalkIndex = 819;
c.playerRunIndex = 824; c.playerRunIndex = 824;
return; return;
} }
switch (c.playerEquipment[c.playerWeapon]) { switch (c.playerEquipment[c.playerWeapon]) {
case 4151: case 4151:
c.playerStandIndex = 1832; c.playerStandIndex = 1832;
c.playerWalkIndex = 1660; c.playerWalkIndex = 1660;
c.playerRunIndex = 1661; c.playerRunIndex = 1661;
break; break;
case 6528: case 6528:
c.playerStandIndex = 0x811; c.playerStandIndex = 0x811;
c.playerWalkIndex = 2064; c.playerWalkIndex = 2064;
c.playerRunIndex = 1664; c.playerRunIndex = 1664;
break; break;
case 4153: case 4153:
c.playerStandIndex = 1662; c.playerStandIndex = 1662;
c.playerWalkIndex = 1663; c.playerWalkIndex = 1663;
c.playerRunIndex = 1664; c.playerRunIndex = 1664;
break; break;
case 11694: case 11694:
case 11696: case 11696:
case 11730: case 11730:
case 11698: case 11698:
case 11700: case 11700:
c.playerStandIndex = 4300; c.playerStandIndex = 4300;
c.playerWalkIndex = 4306; c.playerWalkIndex = 4306;
c.playerRunIndex = 4305; c.playerRunIndex = 4305;
break; break;
case 1305: case 1305:
c.playerStandIndex = 809; c.playerStandIndex = 809;
break; break;
} }
} }
/** /**
* Weapon emotes * Weapon emotes
**/ **/
public static int getWeaponAnimation(Player c) { public static int getWeaponAnimation(Player c) {
String weaponName = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase(); String weaponName = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase();
MonkeyData data = MonkeyData.forId(c.playerEquipment[ItemConstants.WEAPON]); MonkeyData data = MonkeyData.forId(c.playerEquipment[ItemConstants.WEAPON]);
if (data != null) if (data != null)
return data.getAttackAnim(); return data.getAttackAnim();
if (c.playerEquipment[c.playerWeapon] <= 0) { if (c.playerEquipment[c.playerWeapon] <= 0) {
switch (c.fightMode) { switch (c.fightMode) {
case 0: case 0:
return 422; return 422;
case 2: case 2:
return 423; return 423;
case 1: case 1:
return 422; return 422;
} }
} }
if (weaponName.contains("knife") || weaponName.contains("dart") if (weaponName.contains("knife") || weaponName.contains("dart")
|| weaponName.contains("javelin") || weaponName.contains("javelin")
|| weaponName.contains("thrownaxe")) { || weaponName.contains("thrownaxe")) {
return 806; return 806;
} }
if (weaponName.contains("halberd")) { if (weaponName.contains("halberd")) {
return 440; return 440;
} }
if (weaponName.contains("dragon dagger")) { if (weaponName.contains("dragon dagger")) {
return 402; return 402;
} }
if (weaponName.endsWith("dagger")) { if (weaponName.endsWith("dagger")) {
return 412; return 412;
} }
if (weaponName.contains("2h sword") || weaponName.contains("godsword") if (weaponName.contains("2h sword") || weaponName.contains("godsword")
|| weaponName.contains("aradomin sword")) { || weaponName.contains("aradomin sword")) {
switch (c.fightMode) { switch (c.fightMode) {
case 4: case 4:
return 406; return 406;
case 0: case 0:
case 2: case 2:
case 1: case 1:
return 407; return 407;
} }
} }
if (weaponName.contains("sword")) { if (weaponName.contains("sword")) {
switch (c.fightMode) { switch (c.fightMode) {
case 0: case 0:
case 1: case 1:
return 412; return 412;
case 2: case 2:
return 451; return 451;
} }
} }
if (weaponName.contains("karil")) { if (weaponName.contains("karil")) {
return 2075; return 2075;
} }
if (weaponName.contains("bow") && !weaponName.contains("'bow")) { if (weaponName.contains("bow") && !weaponName.contains("'bow")) {
return 426; return 426;
} }
if (weaponName.contains("'bow")) { if (weaponName.contains("'bow")) {
return 4230; return 4230;
} }
switch (c.playerEquipment[c.playerWeapon]) { // if you don't want to switch (c.playerEquipment[c.playerWeapon]) { // if you don't want to
// use // use
// strings // strings
case 6522: case 6522:
return 2614; return 2614;
case 4153: // granite maul case 4153: // granite maul
return 1665; return 1665;
case 4726: // guthan case 4726: // guthan
return 2080; return 2080;
case 4747: // torag case 4747: // torag
return 0x814; return 0x814;
case 4718: // dharok case 4718: // dharok
return 2067; return 2067;
case 4710: // ahrim case 4710: // ahrim
return 406; return 406;
case 4755: // verac case 4755: // verac
return 2062; return 2062;
case 4734: // karil case 4734: // karil
return 2075; return 2075;
case 4151: case 4151:
return 1658; return 1658;
case 6528: case 6528:
return 2661; return 2661;
default: default:
return 451; return 451;
} }
} }
/** /**
* Block emotes * Block emotes
*/ */
public static int getBlockEmote(Player c) { public static int getBlockEmote(Player c) {
if (c.playerEquipment[c.playerShield] >= 8844 String weaponName = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase();
&& c.playerEquipment[c.playerShield] <= 8850) { String shieldName = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.SHIELD]).toLowerCase();
return 4177; if (c.playerEquipment[c.playerShield] >= 8844
} && c.playerEquipment[c.playerShield] <= 8850) {
MonkeyData data = MonkeyData.forId(c.playerEquipment[ItemConstants.WEAPON]); return 4177;
if (data != null) }
return data.getBlockAnim(); if (shieldName.contains("shield"))
switch (c.playerEquipment[c.playerWeapon]) { return 1156;
case -1: if (weaponName.contains("staff"))
case 0: return 420;
return 424; MonkeyData data = MonkeyData.forId(c.playerEquipment[ItemConstants.WEAPON]);
case 4755: if (data != null)
return 2063; return data.getBlockAnim();
switch (c.playerEquipment[c.playerWeapon]) {
case -1:
case 0:
return 424;
case 4755:
return 2063;
case 4153: case 4153:
return 1666; return 1666;
case 4151: case 4151:
return 1659; return 1659;
case 11694: case 11694:
case 11698: case 11698:
case 11700: case 11700:
case 11696: case 11696:
case 11730: case 11730:
return -1; return -1;
default: case TOKTZKETXIL:
return 404; return 1156;
} default:
} return 404;
}
}
/** /**
* How long it takes to hit your enemy * How long it takes to hit your enemy
**/ **/
public static int getHitDelay(Player c) { public static int getHitDelay(Player c) {
String weaponName = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase(); String weaponName = ItemAssistant.getItemName(c.playerEquipment[ItemConstants.WEAPON]).toLowerCase();
if (c.usingMagic) { if (c.usingMagic) {
switch (MagicData.MAGIC_SPELLS[c.spellId][0]) { switch (MagicData.MAGIC_SPELLS[c.spellId][0]) {
case 12891: case 12891:
return 4; return 4;
case 12871: case 12871:
return 6; return 6;
default: default:
return 4; return 4;
} }
} else { } else {
if (weaponName.contains("knife") || weaponName.contains("dart") if (weaponName.contains("knife") || weaponName.contains("dart")
|| weaponName.contains("javelin") || weaponName.contains("javelin")
|| weaponName.contains("thrownaxe")) { || weaponName.contains("thrownaxe")) {
return 3; return 3;
} }
if (weaponName.contains("cross") || weaponName.contains("c'bow")) { if (weaponName.contains("cross") || weaponName.contains("c'bow")) {
return 4; return 4;
} }
if (weaponName.contains("bow")) { if (weaponName.contains("bow")) {
return 4; return 4;
} }
switch (c.playerEquipment[c.playerWeapon]) { switch (c.playerEquipment[c.playerWeapon]) {
case 6522: // Toktz-xil-ul case 6522: // Toktz-xil-ul
return 3; return 3;
default: default:
return 2; return 2;
} }
} }
} }
} }