package com.weem.epicinventor.weapon;
import com.weem.epicinventor.*;
import java.util.*;
import java.io.*;
public class Weapon {
private static HashMap weaponTypes;
private final static String CONFIG_FILE = "Weapons.dat";
private Weapon() {
}
public static void init() {
weaponTypes = new HashMap();
loadItemTypes("Weapons.dat");
}
private static void loadItemTypes(String fn) {
String line;
String parts[];
String damages[];
try {
InputStream in = Weapon.class.getResourceAsStream(GameController.CONFIG_DIR + fn);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String itemName = "";
String type = "";
int[] damage = new int[21];
int speed = 0;
int knockBackX = 0;
int knockBackY = 0;
int maxHits = 0;
int range = 0;
int animationFrames = 0;
boolean comesBack = false;
WeaponType wt;
while ((line = br.readLine()) != null) {
if (line.length() == 0) {
continue;
}
if (line.startsWith("//")) {
continue;
}
parts = line.split(" ");
if (parts.length != 10) {
System.out.println("Error in " + fn);
}
itemName = parts[0];
type = parts[1];
damages = parts[2].split(":");
damage = new int[21];
damage[0] = 0;
for(int i = 0; i < damages.length; i++) {
damage[i + 1] = Integer.parseInt(damages[i]);
}
speed = Integer.parseInt(parts[3]);
knockBackX = Integer.parseInt(parts[4]);
knockBackY = Integer.parseInt(parts[5]);
maxHits = Integer.parseInt(parts[6]);
range = Integer.parseInt(parts[7]);
animationFrames = Integer.parseInt(parts[8]);
if(Integer.parseInt(parts[9]) == 1) {
comesBack = true;
} else {
comesBack = false;
}
wt = new WeaponType(itemName, type, damage, speed, knockBackX, knockBackY, maxHits, range, animationFrames, comesBack);
weaponTypes.put(itemName, wt);
}
in.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
public static WeaponType getWeaponType(String name) {
if (weaponTypes.containsKey(name)) {
return (WeaponType) weaponTypes.get(name);
}
return null;
}
}