Beginnings of the repairable

This commit is contained in:
NuclearW 2012-05-17 04:01:47 -04:00
parent db59f24873
commit d3b7af3c5f
3 changed files with 102 additions and 0 deletions

View File

@ -0,0 +1,49 @@
package com.gmail.nossr50.skills.repair;
public interface Repairable {
/**
* Gets the item id of this repairable item
*
* @return the id of this repairable
*/
public int getItemId();
/**
* Gets the id of the material used to repair this item
*
* @return the id of the repair material
*/
public int getRepairMaterialId();
/**
* Gets the minimum quantity of repair materials ignoring all other repair bonuses
*
* This is typically set to the number of items needed to create that item, for example 5 for helmets or 2 for swords
*
* @return the minimum number of items
*/
public int getMinimumQuantity();
/**
* Gets the maximum durability of this item before it breaks
*
* @return the maximum durability
*/
public short getMaximumDurability();
/**
* Gets the base repair durability on which to calcuate bonuses.
*
* This is actually the maximum durability divided by the minimum quantity
*
* @return the base repair durability
*/
public short getBaseRepairDurability();
/**
* Gets the minimum repair level needed to repair this item
*
* @return the minimum level to repair this item, or 0 for no minimum
*/
public int getMinimumLevel();
}

View File

@ -0,0 +1,8 @@
package com.gmail.nossr50.skills.repair;
public class RepairableFactory {
public static Repairable getRepairable(int itemId, int repairMaterialId, int minimumLevel, int minimumQuantity, short maximumDurability) {
// TODO: Add in loading from config what type of manager we want.
return new SimpleRepairable(itemId, repairMaterialId, minimumLevel, minimumQuantity, maximumDurability);
}
}

View File

@ -0,0 +1,45 @@
package com.gmail.nossr50.skills.repair;
public class SimpleRepairable implements Repairable {
private final int itemId, repairMaterialId, minimumQuantity, minimumLevel;
private final short maximumDurability, baseRepairDurability;
protected SimpleRepairable(int itemId, int repairMaterialId, int minimumLevel, int minimumQuantity, short maximumDurability) {
this.itemId = itemId;
this.repairMaterialId = repairMaterialId;
this.minimumLevel = minimumLevel;
this.minimumQuantity = minimumQuantity;
this.maximumDurability = maximumDurability;
this.baseRepairDurability = (short) (maximumDurability / minimumQuantity);
}
@Override
public int getItemId() {
return itemId;
}
@Override
public int getRepairMaterialId() {
return repairMaterialId;
}
@Override
public int getMinimumQuantity() {
return minimumQuantity;
}
@Override
public short getMaximumDurability() {
return maximumDurability;
}
@Override
public short getBaseRepairDurability() {
return baseRepairDurability;
}
@Override
public int getMinimumLevel() {
return minimumLevel;
}
}