* Fix Several Items that were glitched when worn.

* Fix items that were not able to be worn due to the name.
* Added prayer check in due to one of the items using it during 377
This commit is contained in:
Jesse Woolsey
2016-02-15 20:23:45 -05:00
parent 27448bcdde
commit ddaa505c6a
4 changed files with 65 additions and 33 deletions
+32 -31
View File
@@ -147,26 +147,6 @@ public final class EquipmentDefinition {
return levels[HITPOINTS]; return levels[HITPOINTS];
} }
/**
* Gets the id.
*
* @return The id.
*/
public int getId() {
return id;
}
/**
* Gets the minimum level required to equip this item for a specific skill.
*
* @param skill The skill id.
* @return The level.
*/
public int getLevel(int skill) {
Preconditions.checkArgument(skill >= ATTACK && skill <= MAGIC, "Skill id out of bounds.");
return levels[skill];
}
/** /**
* Gets the minimum magic level required to equip this item. * Gets the minimum magic level required to equip this item.
* *
@@ -194,15 +174,6 @@ public final class EquipmentDefinition {
return levels[RANGED]; return levels[RANGED];
} }
/**
* Gets the target slot.
*
* @return The target slot.
*/
public int getSlot() {
return slot;
}
/** /**
* Gets the minimum strength level required to equip this item. * Gets the minimum strength level required to equip this item.
* *
@@ -212,6 +183,35 @@ public final class EquipmentDefinition {
return levels[STRENGTH]; return levels[STRENGTH];
} }
/**
* Gets the id.
*
* @return The id.
*/
public int getId() {
return id;
}
/**
* Gets the minimum level required to equip this item for a specific skill.
*
* @param skill The skill id.
* @return The level.
*/
public int getLevel(int skill) {
Preconditions.checkArgument(skill >= ATTACK && skill <= MAGIC, "Skill id out of bounds.");
return levels[skill];
}
/**
* Gets the target slot.
*
* @return The target slot.
*/
public int getSlot() {
return slot;
}
/** /**
* Checks if this equipment is a full body. * Checks if this equipment is a full body.
* *
@@ -270,10 +270,11 @@ public final class EquipmentDefinition {
* @param strength The required strength level. * @param strength The required strength level.
* @param defence The required defence level. * @param defence The required defence level.
* @param ranged The required ranged level. * @param ranged The required ranged level.
* @param prayer The required prayer level.
* @param magic The required magic level. * @param magic The required magic level.
*/ */
public void setLevels(int attack, int strength, int defence, int ranged, int magic) { public void setLevels(int attack, int strength, int defence, int ranged, int prayer, int magic) {
setLevels(attack, strength, defence, 1, ranged, 1, magic); setLevels(attack, strength, defence, 1, ranged, prayer, magic);
} }
/** /**
+31 -1
View File
@@ -31,7 +31,7 @@ public final class EquipmentUpdater {
String release = args[0]; String release = args[0];
try (DataOutputStream os = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("data/equipment-" + release + ".dat"))); try (DataOutputStream os = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("data/equipment-" + release + ".dat")));
IndexedFileSystem fs = new IndexedFileSystem(Paths.get("data/fs/", release), true)) { IndexedFileSystem fs = new IndexedFileSystem(Paths.get("data/fs/", release), true)) {
ItemDefinitionDecoder decoder = new ItemDefinitionDecoder(fs); ItemDefinitionDecoder decoder = new ItemDefinitionDecoder(fs);
decoder.run(); decoder.run();
@@ -52,6 +52,7 @@ public final class EquipmentUpdater {
os.writeByte(getStrengthRequirement(definition)); os.writeByte(getStrengthRequirement(definition));
os.writeByte(getDefenceRequirement(definition)); os.writeByte(getDefenceRequirement(definition));
os.writeByte(getRangedRequirement(definition)); os.writeByte(getRangedRequirement(definition));
os.writeByte(getPrayerRequirement(definition));
os.writeByte(getMagicRequirement(definition)); os.writeByte(getMagicRequirement(definition));
} }
} }
@@ -254,6 +255,12 @@ public final class EquipmentUpdater {
return 1; return 1;
} else if (id == 7456) { } else if (id == 7456) {
return 1; return 1;
} else if (id == 2661) {
return 40;
} else if (id == 2667) {
return 40;
} else if (id == 3479) {
return 40;
} else if (name.equals("White med helm")) { } else if (name.equals("White med helm")) {
return 10; return 10;
} else if (name.equals("White chainbody")) { } else if (name.equals("White chainbody")) {
@@ -587,8 +594,29 @@ public final class EquipmentUpdater {
return 30; return 30;
} else if (name.equals("Fire battlestaff")) { } else if (name.equals("Fire battlestaff")) {
return 30; return 30;
} else if (name.equals("Toktz-mej-tal")) {
return 60;
} }
return 1;
}
/**
* Gets the prayer requirement.
*
* @param definition the item.
* @return The required level.
*/
private static int getPrayerRequirement(ItemDefinition definition) {
String name = definition.getName();
if (name == null) {
name = "null";
}
if (name.contains("Initiate")) {
return 10;
}
if (name.contains("Proselyte")) {
return 20;
}
return 1; return 1;
} }
@@ -886,6 +914,8 @@ public final class EquipmentUpdater {
return true; return true;
} else if (id == 4214) { } else if (id == 4214) {
return true; return true;
} else if (id == 6526) {
return true;
} else if (name.endsWith("2h sword")) { } else if (name.endsWith("2h sword")) {
return true; return true;
} else if (name.endsWith("longbow")) { } else if (name.endsWith("longbow")) {
Binary file not shown.
@@ -63,10 +63,11 @@ public final class EquipmentDefinitionParser implements Runnable {
int strength = in.readByte() & 0xFF; int strength = in.readByte() & 0xFF;
int defence = in.readByte() & 0xFF; int defence = in.readByte() & 0xFF;
int ranged = in.readByte() & 0xFF; int ranged = in.readByte() & 0xFF;
int prayer = in.readByte() & 0xFF;
int magic = in.readByte() & 0xFF; int magic = in.readByte() & 0xFF;
EquipmentDefinition definition = new EquipmentDefinition(id); EquipmentDefinition definition = new EquipmentDefinition(id);
definition.setLevels(attack, strength, defence, ranged, magic); definition.setLevels(attack, strength, defence, ranged, prayer, magic);
definition.setSlot(slot); definition.setSlot(slot);
definition.setFlags(twoHanded, fullBody, fullHat, fullMask); definition.setFlags(twoHanded, fullBody, fullHat, fullMask);