package com.corosus.game.component;
import java.util.ArrayList;
import java.util.List;
import com.artemis.Component;
/**
*
* @author Corosus
*
*/
public class WeaponData extends Component {
//list of simutaneously used weapons
public List<WeaponLocation> listWeaponLocations = new ArrayList<WeaponLocation>();
public static class WeaponLocation {
public int activeWeaponIndex = 0;
//list of singularly used weapons that you switch between
public List<Weapon> listWeapons = new ArrayList<Weapon>();
}
public static class Weapon {
//weapon config
public int ticksCooldownRate = 10;
public String projectileType = "";
//runtime
public int ticksCooldownCur;
public boolean canFire() {
return ticksCooldownCur <= 0;
}
//bad design?
public void fire() {
ticksCooldownCur = ticksCooldownRate;
}
}
public WeaponData() {
}
public boolean hasPrimaryWeapon() {
return listWeaponLocations.size() > 0 && listWeaponLocations.get(0).listWeapons.size() > 0;
}
public Weapon getActivePrimary() {
if (listWeaponLocations.size() > 0) {
WeaponLocation loc = listWeaponLocations.get(0);
if (loc.listWeapons.size() > 0) {
return loc.listWeapons.get(loc.activeWeaponIndex);
}
}
return null;
}
public void setActivePrimary(Weapon weapon) {
listWeaponLocations.get(0).listWeapons.set(0, weapon);
}
}