/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package transientlibs.bindedobjects.gamecontent;
import transientlibs.objects.general.Node;
import transientlibs.preui.objects.gui.elements.ButtonGroup;
import transientlibs.tex.ReqList;
import transientlibs.tex.StringAnalyst;
import java.util.ArrayList;
import java.util.Iterator;
import transientlibs.slick2d.util.Log;
import transientlibs.bindedobjects.core.Binding;
/**
*
* @author kibertoad
*/
public class Perk extends Node {
String LName;
String desc;
ReqList reqs = new ReqList();
int effect;
public static ArrayList<Perk> perks = new ArrayList<Perk>();
public static Perk lastPerk;
public Perk() {
}
public static void loadPerks() {
if (StringAnalyst.isFileExist("perks.dat")) {
StringAnalyst reader = new StringAnalyst();
reader.openFile("perks.dat");
while (!reader.eof) {
reader.readRow(); //reader.getNextString(); reader.getNextString();
analyzeStringForPerks(reader);
}
reader.closeFile();
}
}
public static void fillGenerationList(ButtonGroup theList) {
Perk nowPerk;
Iterator<Perk> i = perks.iterator();
while ((i.hasNext())) {
nowPerk = i.next();
if (nowPerk.reqs.isFulfilled()) {
theList.addNodeOption(nowPerk.LName, nowPerk);
Log.info("Added perk alright");
}
else {Log.info("Perk did not qualify");
}
}
}
public static void analyzeStringForPerks(StringAnalyst analyst) {
analyzeStringForPerks("-NO-", analyst);
}
public static void analyzeStringForPerks(String getString, StringAnalyst analyst) {
if (!"-NO-".equals(getString)) {
analyst.fullStr = getString;
}
boolean withResult;
analyst.checkForAliases();
analyst.getNextString();
String nowStr = analyst.lastStr;
if (nowStr.equals("perk")) {
perks.add(new Perk());
lastPerk = perks.get(perks.size() - 1);
lastPerk.ID = analyst.getBinding(Binding.perkBinding);
ReqList.lastReqList = lastPerk.reqs;
withResult = true;
}
if (nowStr.equals("name")) {
lastPerk.LName = analyst.restOfRow();
withResult = true;
}
if (nowStr.equals("desc")) {
lastPerk.desc = analyst.restOfRow();
withResult = true;
}
}
@Override
public String name() {
return LName;
}
}