use of main.entity.Entity in project Eidolons by IDemiurge.
the class TextParser method parseRef.
// perhaps I should refactor into method per parse_type!
private static String parseRef(String ref_substring, Ref ref) {
if (ref == null) {
return parseVarRef(ref_substring);
}
String value = StringMaster.cropRef(ref_substring);
if (!StringMaster.isInteger(value)) {
if (isAbilityParsing()) {
return ref_substring;
}
}
int id = 0;
if (isActiveParsing()) {
id = ref.getId(KEYS.ACTIVE);
} else {
try {
id = ref.getId(KEYS.INFO);
} catch (Exception e) {
}
}
Game game = ref.getGame();
// if (id == 0) {
// if (game.isRunning()) {
// id = game.getManager().getInfoObj().getId();
// }
// }
// else if (CharacterCreator.isRunning())
String replacement = ref_substring;
Entity entity = ref.getInfoEntity();
if (entity == null) {
if (game.isSimulation() && !isBuffParsing() && !isAbilityParsing()) {
entity = game.getTypeById(id);
} else {
entity = game.getObjectById(id);
}
}
if (entity == null) {
return ref_substring;
}
if (entity instanceof AbilityObj) {
entity = entity.getType();
}
if (StringMaster.isInteger(value)) {
int index = StringMaster.getInteger(value) - 1;
String varProp = entity.getProperty(G_PROPS.VARIABLES);
if (StringMaster.isEmpty(varProp)) {
varProp = DEFAULT_VARS;
}
boolean containerFormula = false;
if (!entity.getParam("FORMULA").isEmpty()) {
// StringMaster.compare(varProp.replace(";", ""), "FORMULA",
// true)) {
varProp = entity.getParam("FORMULA");
containerFormula = true;
}
List<String> openContainer = StringMaster.openContainer(varProp);
if (openContainer.size() > index) {
VALUE val = null;
if (!containerFormula && !isBuffParsing()) {
val = ContentManager.getValue(openContainer.get(index));
replacement = entity.getValue(val);
} else {
replacement = openContainer.get(index);
}
if (containerFormula || val instanceof PARAMETER) {
if (StringMaster.isInteger(replacement)) {
return replacement;
}
try {
if (isAbilityParsing()) // if (replacement.contains(",")) {
// // TODO all function names!
// if (replacement.toLowerCase().contains("min")
// || replacement.toLowerCase().contains(
// "max")) {
// // get the insides of the formula?
// // parts = replacement.split(regex);
// // parts[1] = parts[1].
// //
// // replacement = parts[0] + parts[1];
// return replacement.replace(",",
// StringMaster.COMMA_CODE);
// }
// } else
{
return replacement.replace(",", StringMaster.COMMA_CODE);
}
if (game.isSimulation()) {
replacement = new Formula(replacement).getInt(ref) + " (" + formatFormula(replacement) + ")";
} else {
replacement = new Formula(replacement).getInt(ref) + "";
}
} catch (Exception e) {
main.system.ExceptionMaster.printStackTrace(e);
}
} else {
String result = new Property(true, replacement).getStr(ref);
if (StringMaster.isEmpty(result)) {
replacement = new Parameter(replacement).getInt(ref) + "";
} else {
replacement = result;
}
}
}
} else {
if (!isAbilityParsing()) {
if (StringMaster.isInteger(replacement)) {
return replacement;
}
if (game.isSimulation() && !tooltipParsing) {
Integer VAL = new Formula(replacement).getInt(ref);
replacement = VAL + " (" + replacement + ")";
} else {
// TODO
replacement = new Formula(replacement).getInt(ref) + "";
}
// props!
}
}
return replacement;
}
use of main.entity.Entity in project Eidolons by IDemiurge.
the class ZeitMaster method checkCreateTimeTypes.
public static void checkCreateTimeTypes() {
// getOrCreate last day, week, month...
Entity era = getLatest(DataManager.getTypes(AT_OBJ_TYPE.ERA));
boolean create = era == null;
if (!create) {
create = era.checkProperty(AT_PROPS.ERA_STATUS, "Concluded");
}
if (create) {
int n = DataManager.getTypes(AT_OBJ_TYPE.ERA).size() + 1;
String name = DialogMaster.inputText("New Era's Name?", "The " + n + StringMaster.getOrdinalEnding(n) + " Era");
era = new ObjType(name, AT_OBJ_TYPE.ERA);
DataManager.addType((ObjType) era);
}
createPeriod(era, AT_OBJ_TYPE.DAY);
createPeriod(era, AT_OBJ_TYPE.WEEK);
createPeriod(era, AT_OBJ_TYPE.MONTH);
ArcaneTower.saveAll();
// for (t t : DataManager.getTypes(AT_OBJ_TYPE.DAY)){
// }
}
use of main.entity.Entity in project Eidolons by IDemiurge.
the class ZeitMaster method createPeriod.
/*
* markTime()
* paused()
* getTotalTime()
*/
private static void createPeriod(Entity era, AT_OBJ_TYPE T) {
boolean create;
List<? extends Entity> list = DataManager.getTypes(T);
Entity last = getLatest(list);
create = last == null;
if (!create) {
create = checkCreateNeeded(last, T);
}
if (create) {
ObjType type = new ObjType(getNameForPeriod(era, T), T);
initTimeOfCreation(type);
DataManager.addType(type);
}
}
use of main.entity.Entity in project Eidolons by IDemiurge.
the class HeroListPanel method toDataList.
@Override
public List<SelectableItemData> toDataList(List<? extends Entity> objTypes) {
List<SelectableItemData> list = new LinkedList<>();
for (Entity sub : objTypes) {
SelectableItemData item = new SelectableItemData(sub);
list.add(item);
item.setDescription(HelpMaster.getHeroInfoText(item.getName(), null));
}
return list;
}
use of main.entity.Entity in project Eidolons by IDemiurge.
the class FilterMaster method filter.
public static List<? extends Entity> filter(List<? extends Entity> list, Condition condition, boolean out) {
if (list == null) {
return list;
}
Collection<Entity> removeList = new ArrayList<>();
for (Entity e : list) {
if (e == null) {
continue;
}
Ref REF = e.getRef().getCopy();
REF.setID(KEYS.MATCH.name(), e.getId());
boolean check = !condition.preCheck(REF);
if (out) {
check = !check;
}
if (check) {
removeList.add(e);
}
}
list.removeAll(removeList);
return list;
}
Aggregations