package client.inventory; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import provider.MapleData; import provider.MapleDataProvider; import provider.MapleDataProviderFactory; import provider.MapleDataTool; import server.Randomizer; public class PetDataFactory { private static MapleDataProvider dataRoot = MapleDataProviderFactory.getDataProvider(new File("wz/Item.wz")); private static Map<Integer, List<PetCommand>> petCommands = new HashMap(); private static Map<Integer, Integer> petHunger = new HashMap(); public static final PetCommand getRandomPetCommand(int petId) { if (getPetCommand(petId, 0) == null) { return null; } List gg = (List) petCommands.get(Integer.valueOf(petId)); return (PetCommand) gg.get(Randomizer.nextInt(gg.size())); } public static final PetCommand getPetCommand(int petId, int skillId) { List gg = (List) petCommands.get(Integer.valueOf(petId)); if (gg != null) { if ((gg.size() > skillId) && (gg.size() > 0)) { return (PetCommand) gg.get(skillId); } return null; } MapleData skillData = dataRoot.getData("Pet/" + petId + ".img"); int theSkill = 0; gg = new ArrayList(); while (skillData != null) { MapleData dd = skillData.getChildByPath("interact/" + theSkill); if (dd == null) { break; } PetCommand retr = new PetCommand(petId, skillId, MapleDataTool.getInt("prob", dd, 0), MapleDataTool.getInt("inc", dd, 0)); gg.add(retr); theSkill++; } petCommands.put(Integer.valueOf(petId), gg); if ((gg.size() <= skillId) && (gg.size() > 0)) { return (PetCommand) gg.get(skillId); } return null; } public static final int getHunger(int petId) { Integer ret = (Integer) petHunger.get(Integer.valueOf(petId)); if (ret != null) { return ret.intValue(); } MapleData hungerData = dataRoot.getData("Pet/" + petId + ".img").getChildByPath("info/hungry"); ret = Integer.valueOf(MapleDataTool.getInt(hungerData, 1)); petHunger.put(Integer.valueOf(petId), ret); return ret.intValue(); } }