use of eidolons.ability.effects.oneshot.unit.CreateObjectEffect in project Eidolons by IDemiurge.
the class DebugMaster method summon.
private void summon(Boolean me, DC_TYPE units, Ref ref) {
Player player = Player.NEUTRAL;
if (me != null) {
player = game.getPlayer(me);
if (!me) {
if (ALT_AI_PLAYER) {
if (altAiPlayer == null) {
altAiPlayer = new DC_Player("", null, false);
}
player = altAiPlayer;
}
}
}
/*
* alt mode: >> random >> preset >> last
*/
ref.setPlayer(player);
String typeName;
if (arg instanceof Unit) {
Obj obj = arg;
typeName = (obj.getType().getName());
}
if (altMode) {
typeName = lastType;
// RandomWizard.getRandomType(units).getName();
} else {
typeName = ListChooser.chooseType(units);
}
if (!DataManager.isTypeName(typeName)) {
typeName = DialogMaster.inputText("Then enter it yourself...");
}
if (typeName == null) {
return;
}
if (!DataManager.isTypeName(typeName)) {
ObjType foundType = DataManager.findType(typeName, units);
if (foundType == null) {
return;
}
typeName = foundType.getName();
}
if (arg instanceof Obj) {
Obj obj = arg;
ref.setTarget(game.getCellByCoordinate(obj.getCoordinates()).getId());
} else if (!new SelectiveTargeting(new Conditions(ConditionMaster.getTYPECondition(DC_TYPE.TERRAIN))).select(ref)) {
return;
}
lastType = typeName;
SummonEffect effect = (me == null) ? new CreateObjectEffect(typeName, true) : new SummonEffect(typeName);
if (units == DC_TYPE.UNITS) {
if (checkAddXp()) {
Formula xp = new Formula("" + (DC_Formulas.getTotalXpForLevel(DataManager.getType(typeName, DC_TYPE.UNITS).getIntParam(PARAMS.LEVEL) + DialogMaster.inputInt()) - DC_Formulas.getTotalXpForLevel(DataManager.getType(typeName, DC_TYPE.UNITS).getIntParam(PARAMS.LEVEL))));
effect = new SummonEffect(typeName, xp);
}
}
effect.setOwner(player);
effect.apply(ref);
if (player.isAi()) {
game.getAiManager().getCustomUnitGroup((Unit) effect.getUnit()).add(effect.getUnit());
}
game.getManager().refreshAll();
}
Aggregations