use of eidolons.entity.item.DC_HeroItemObj in project Eidolons by IDemiurge.
the class DebugMaster method executeDebugFunction.
public Object executeDebugFunction(DEBUG_FUNCTIONS func) {
executedFunctions.push(func.toString());
boolean transmitted = false;
if (game.isOnline()) {
if (func.transmitted) {
transmitted = true;
}
}
if (target != null) {
arg = target;
}
Unit infoObj = target instanceof Unit ? (Unit) target : null;
Ref ref = null;
if (infoObj == null) {
try {
infoObj = (Unit) getObj();
} catch (Exception e) {
}
}
if (infoObj == null) {
infoObj = game.getManager().getActiveObj();
}
if (game.getManager().getActiveObj() != null) {
ref = new Ref(game, game.getManager().getActiveObj().getId());
} else {
ref = new Ref(game);
}
ref.setDebug(true);
Coordinates coordinate = null;
String data = null;
DC_TYPE TYPE;
debugFunctionRunning = true;
try {
switch(func) {
case SET_GLOBAL_ILLUMINATION:
game.getVisionMaster().getIlluminationMaster().setGlobalIllumination(DialogMaster.inputInt("SET_GLOBAL_ILLUMINATION", game.getVisionMaster().getIlluminationMaster().getGlobalIllumination()));
break;
case SET_GLOBAL_CONCEALMENT:
game.getVisionMaster().getIlluminationMaster().setGlobalConcealment(DialogMaster.inputInt("SET_GLOBAL_CONCEALMENT", game.getVisionMaster().getIlluminationMaster().getGlobalConcealment()));
break;
case TEST_CLONE_STATE:
StateCloner.test();
break;
case TEST_LOAD_STATE:
StatesKeeper.testLoad();
return null;
case RUN_AUTO_TESTS:
AutoTestMaster.runTests();
break;
case AUTO_TEST_INPUT:
WaitMaster.receiveInput(WAIT_OPERATIONS.AUTO_TEST_INPUT, true);
break;
case SET_OPTION:
OptionsMaster.promptSetOption();
break;
case ADD_GROUP:
File groupFile = ListChooser.chooseFile(PathFinder.getUnitGroupPath());
if (groupFile == null) {
break;
}
if (arg instanceof DC_Cell) {
coordinate = arg.getCoordinates();
} else {
coordinate = getGame().getBattleFieldManager().pickCoordinate();
}
if (coordinate == null) {
break;
}
data = FileManager.readFile(groupFile);
UnitGroupMaster.setCurrentGroupHeight(MathMaster.getMaxY(data));
UnitGroupMaster.setCurrentGroupWidth(MathMaster.getMaxX(data));
UnitGroupMaster.setMirror(isAltMode());
// UnitGroupMaster.setFlip(null);
try {
DC_ObjInitializer.createUnits(game.getPlayer(isAltMode()), data, coordinate);
} catch (Exception e) {
main.system.ExceptionMaster.printStackTrace(e);
} finally {
UnitGroupMaster.setMirror(false);
}
break;
case TOGGLE_DUMMY:
game.setDummyMode(!game.isDummyMode());
TestMasterContent.setForceFree(game.isDummyMode());
break;
case TOGGLE_DUMMY_PLUS:
game.setDummyPlus(!game.isDummyPlus());
TestMasterContent.setForceFree(game.isDummyMode());
break;
case PRESET:
PresetMaster.handlePreset(isAltMode());
break;
case TOGGLE_DUNGEON_DEBUG:
{
mapDebugOn = !mapDebugOn;
break;
}
case HIDDEN_FUNCTION:
{
int i = DialogMaster.optionChoice(HIDDEN_DEBUG_FUNCTIONS.values(), "...");
if (i != -1) {
executeHiddenDebugFunction(HIDDEN_DEBUG_FUNCTIONS.values()[i]);
}
break;
}
case TOGGLE_AUTO_UNIT:
if (!infoObj.isOwnedBy(game.getPlayer(true))) {
infoObj.setOriginalOwner(game.getPlayer(true));
infoObj.setOwner(game.getPlayer(true));
} else {
infoObj.setAiControlled(!infoObj.isAiControlled());
}
WaitMaster.receiveInput(WAIT_OPERATIONS.ACTION_COMPLETE, true);
break;
case EDIT_AI:
break;
case SAVE:
Saver.save("test");
break;
case LOAD:
Loader.loadGame("test.xml");
break;
case PAUSE:
DC_Game.game.getLoop().setPaused(!DC_Game.game.getLoop().isPaused());
break;
case TOGGLE_OMNIVISION:
omnivision = !omnivision;
break;
case AUTO_COMBAT:
game.getPlayer(true).setAi(!game.getPlayer(true).isAi());
WaitMaster.receiveInput(WAIT_OPERATIONS.ACTION_COMPLETE, true);
break;
case ADD_TEST_SPELLS:
TestMasterContent.addTestActives(false, infoObj.getType(), true);
break;
case ADD_ALL_SPELLS:
TestMasterContent.addTestActives(true, infoObj.getType(), true);
break;
case TOGGLE_GRAPHICS_TEST:
DrawMasterStatic.GRAPHICS_TEST_MODE = !DrawMasterStatic.GRAPHICS_TEST_MODE;
if (DrawMasterStatic.GRAPHICS_TEST_MODE) {
DrawMasterStatic.FULL_GRAPHICS_TEST_MODE = DialogMaster.confirm("Full test on?");
} else {
DrawMasterStatic.FULL_GRAPHICS_TEST_MODE = false;
}
break;
case TOGGLE_LOG:
{
String e = ListChooser.chooseEnum(LOG_CHANNEL.class);
LogMaster.toggle(e);
break;
}
case TOGGLE_QUIET:
quiet = !quiet;
break;
case TOGGLE_FREE_ACTIONS:
TestMasterContent.toggleFree();
break;
case GOD_MODE:
TestMasterContent.toggleImmortal();
// game.getManager().refreshAll();
break;
case RESTART:
// if (!altMode) {
// if (DialogMaster.confirm("Select anew?")) {
// FAST_DC.getLauncher().selectiveInit();
// }
// }
game.getManager().getDeathMaster().killAllUnits(true, false, quiet);
game.getBattleMaster().getSpawner().spawnCustomParty(true);
game.getBattleMaster().getSpawner().spawnCustomParty(false);
game.getManager().refreshAll();
WaitMaster.receiveInput(WAIT_OPERATIONS.ACTION_COMPLETE, true);
return func;
case CLEAR:
boolean respawn = isAltMode();
game.getManager().getDeathMaster().killAllUnits(!isAltMode());
if (respawn) {
// /respawn!
game.getBattleMaster().getSpawner().spawnCustomParty(true);
game.getBattleMaster().getSpawner().spawnCustomParty(false);
}
game.getManager().refreshAll();
break;
case KILL_ALL_UNITS:
game.getManager().getDeathMaster().killAll(isAltMode());
break;
case ACTIVATE_UNIT:
if (isAltMode()) {
getObj().modifyParameter(PARAMS.C_N_OF_ACTIONS, 100);
}
if (getObj().isMine()) {
game.getManager().setActivatingAction(null);
game.getManager().activeSelect(getObj());
} else {
WaitMaster.receiveInput(WAIT_OPERATIONS.ACTION_COMPLETE, true);
WaitMaster.WAIT(1234);
getObj().modifyParameter(PARAMS.C_N_OF_ACTIONS, 100);
}
game.getVisionMaster().refresh();
break;
case ADD_ITEM:
if (isAltMode()) {
TYPE = DC_TYPE.WEAPONS;
} else {
TYPE = (DC_TYPE) DialogMaster.getChosenOption("Choose item type...", DC_TYPE.WEAPONS, DC_TYPE.ARMOR, DC_TYPE.ITEMS, DC_TYPE.JEWELRY);
}
if (isAltMode()) {
if (!selectWeaponType()) {
break;
}
} else if (!selectType(TYPE)) {
break;
}
if (!selectTarget(ref)) {
selectedTarget = infoObj;
}
if (selectedTarget == null) {
break;
}
boolean quick = false;
if (isAltMode()) {
quick = false;
} else if (TYPE == DC_TYPE.ITEMS) {
quick = true;
} else if (TYPE == DC_TYPE.WEAPONS) {
quick = DialogMaster.confirm("quick slot item?");
}
DC_HeroItemObj item = ItemFactory.createItemObj(selectedType, selectedTarget.getOwner(), game, ref, quick);
if (!quick) {
if (TYPE != DC_TYPE.JEWELRY) {
selectedTarget.equip(item, TYPE == DC_TYPE.ARMOR ? ItemEnums.ITEM_SLOT.ARMOR : ItemEnums.ITEM_SLOT.MAIN_HAND);
}
} else {
selectedTarget.addQuickItem((DC_QuickItemObj) item);
}
// selectedTarget.addItemToInventory(item);
game.getManager().refreshGUI();
break;
case ADD_SPELL:
if (!selectType(DC_TYPE.SPELLS)) {
break;
}
if (!selectTarget(ref)) {
selectedTarget = infoObj;
}
if (selectedTarget == null) {
break;
}
TestMasterContent.setTEST_LIST(TestMasterContent.getTEST_LIST() + selectedType.getName() + ";");
selectedTarget.getSpells().add(new DC_SpellObj(selectedType, selectedTarget.getOwner(), game, selectedTarget.getRef()));
game.getManager().refreshGUI();
break;
case ADD_SKILL:
case ADD_ACTIVE:
PROPERTY prop = G_PROPS.ACTIVES;
DC_TYPE T = DC_TYPE.ACTIONS;
if (func == DEBUG_FUNCTIONS.ADD_SKILL) {
prop = PROPS.SKILLS;
T = DC_TYPE.SKILLS;
}
String type = ListChooser.chooseType(T);
if (type == null) {
break;
}
if (!new SelectiveTargeting(new Conditions(ConditionMaster.getTYPECondition(C_OBJ_TYPE.BF_OBJ))).select(ref)) {
break;
}
lastType = type;
new AddBuffEffect(type + " hack", new ModifyPropertyEffect(prop, MOD_PROP_TYPE.ADD, type), new Formula("1")).apply(ref);
if (func == DEBUG_FUNCTIONS.ADD_ACTIVE) {
infoObj.getActives().add(game.getActionManager().getAction(type, infoObj));
game.getActionManager().constructActionMaps(infoObj);
}
// instead of toBase()
break;
case ADD_PASSIVE:
// same method
infoObj.getPassives().add(AbilityConstructor.getPassive(ListChooser.chooseType(DC_TYPE.ABILS), infoObj));
infoObj.activatePassives();
break;
case CHANGE_OWNER:
// if already has, make permanent
new AddBuffEffect("ownership hack", new OwnershipChangeEffect(), new Formula("1")).apply(ref);
break;
case END_TURN:
game.getManager().setActivatingAction(null);
WaitMaster.receiveInput(WAIT_OPERATIONS.ACTION_INPUT, null);
return func;
case KILL_UNIT:
if (arg != null) {
arg.kill(infoObj, !isAltMode(), isAltMode());
} else {
infoObj.kill(infoObj, !isAltMode(), isAltMode());
}
// .getInfoObj());
break;
case ADD_CHAR:
summon(true, DC_TYPE.CHARS, ref);
break;
case ADD_OBJ:
summon(null, DC_TYPE.BF_OBJ, new Ref(game));
break;
case ADD_UNIT:
summon(true, DC_TYPE.UNITS, ref);
break;
case SET_WAVE_POWER:
Integer forcedPower;
forcedPower = DialogMaster.inputInt();
if (forcedPower < 0) {
forcedPower = null;
}
ArenaBattleMaster a = (ArenaBattleMaster) game.getBattleMaster();
a.getWaveAssembler().setForcedPower(forcedPower);
break;
case SPAWN_CUSTOM_WAVE:
coordinate = getGame().getBattleFieldManager().pickCoordinate();
ObjType waveType = ListChooser.chooseType_(DC_TYPE.ENCOUNTERS);
Wave wave = new Wave(coordinate, waveType, game, ref, game.getPlayer(!isAltMode()));
String value = new ListChooser(SELECTION_MODE.MULTIPLE, StringMaster.openContainer(wave.getProperty(PROPS.UNIT_TYPES)), DC_TYPE.UNITS).choose();
wave.setProperty(PROPS.UNIT_TYPES, value);
// PROPS.EXTENDED_PRESET_GROUP
break;
case SPAWN_PARTY:
coordinate = getGame().getBattleFieldManager().pickCoordinate();
ObjType party = ListChooser.chooseType_(DC_TYPE.PARTY);
game.getBattleMaster().getSpawner().spawnCustomParty(coordinate, null, party);
break;
case SPAWN_WAVE:
if (!isAltMode()) {
coordinate = getGame().getBattleFieldManager().pickCoordinate();
} else {
// FACING_DIRECTION side = new EnumChooser<FACING_DIRECTION>()
// .choose(FACING_DIRECTION.class);
// if (side== FACING_DIRECTION.NONE)
// game.getBattleMaster().getSpawner().getPositioner().setForcedSide(side);
}
String typeName = ListChooser.chooseType(DC_TYPE.ENCOUNTERS);
if (typeName == null) {
return func;
}
try {
game.getBattleMaster().getSpawner().spawnWave(typeName, game.getPlayer(ALT_AI_PLAYER), coordinate);
} catch (Exception e) {
main.system.ExceptionMaster.printStackTrace(e);
} finally {
// game.getBattleMaster().getSpawner().getPositioner().setForcedSide(null);
}
game.getManager().refreshAll();
break;
case ADD_ENEMY_UNIT:
summon(false, DC_TYPE.UNITS, new Ref(game));
// game.getManager().refreshAll();
break;
case TOGGLE_ALT_AI:
{
game.getPlayer(true).setAi(!game.getPlayer(true).isAi());
ALT_AI_PLAYER = !ALT_AI_PLAYER;
break;
}
case TOGGLE_DEBUG:
{
game.setDebugMode(!game.isDebugMode());
Launcher.setDEBUG_MODE(!Launcher.isDEBUG_MODE_DEFAULT());
break;
}
case WAITER_INPUT:
{
String input = DialogMaster.inputText("operation");
WAIT_OPERATIONS operation = new EnumMaster<WAIT_OPERATIONS>().retrieveEnumConst(WAIT_OPERATIONS.class, input);
if (operation == null) {
operation = new EnumMaster<WAIT_OPERATIONS>().retrieveEnumConst(WAIT_OPERATIONS.class, input, true);
}
if (operation == null) {
DialogMaster.error("no such operation");
return func;
}
input = DialogMaster.inputText("input");
WaitMaster.receiveInput(operation, input);
}
case REMOVE_HACKS:
break;
// break;
case TOGGLE_LIGHTING:
break;
case TOGGLE_FOG:
break;
case GUI_EVENT:
EmitterController.getInstance();
String string = ListChooser.chooseEnum(GuiEventType.class);
GuiEventManager.trigger(new EnumMaster<GuiEventType>().retrieveEnumConst(GuiEventType.class, string), null);
break;
case SFX_PLAY_LAST:
EmitterController.getInstance();
GuiEventManager.trigger(GuiEventType.SFX_PLAY_LAST, null);
break;
case SFX_ADD:
EmitterController.getInstance();
GuiEventManager.trigger(GuiEventType.CREATE_EMITTER, null);
break;
case SFX_ADD_RANDOM:
EmitterController.getInstance().getInstance();
GuiEventManager.trigger(GuiEventType.CREATE_EMITTER, true);
break;
case SFX_MODIFY:
EmitterController.getInstance().modify();
break;
case SFX_SET:
EmitterController.getInstance().setForActive();
break;
case SFX_SAVE:
EmitterController.getInstance().save();
break;
}
} catch (Exception e) {
main.system.ExceptionMaster.printStackTrace(e);
} finally {
debugFunctionRunning = false;
}
if (isResetRequired(func))
reset();
if (transmitted) {
// String transmittedData = lastType + StringMaster.NET_DATA_SEPARATOR + infoObj
// + StringMaster.NET_DATA_SEPARATOR + data + StringMaster.NET_DATA_SEPARATOR
// + ref;
// game.getCommunicator().transmitDebugFunction(func, transmittedData);
}
return func;
}
use of eidolons.entity.item.DC_HeroItemObj in project Eidolons by IDemiurge.
the class ItemGenerator method createItem.
public DC_HeroItemObj createItem(ObjType type, Ref ref, boolean addMaterialParams) {
// if (addMaterialParams)//if building from blueprint type
// type = generateItem_(quality, material, type, params, mod_params);
MicroGame game = (MicroGame) ref.getGame();
DC_HeroItemObj item = (type.getOBJ_TYPE_ENUM() == DC_TYPE.WEAPONS) ? new DC_WeaponObj(type, ref.getPlayer(), game, ref) : new DC_ArmorObj(type, ref.getPlayer(), game, ref);
return item;
}
use of eidolons.entity.item.DC_HeroItemObj in project Eidolons by IDemiurge.
the class DC_HeroManager method addJewelryItem.
@Override
protected int addJewelryItem(Unit hero, Entity type) {
DC_HeroItemObj item = null;
if (type instanceof DC_JewelryObj) {
item = (DC_HeroItemObj) type;
} else {
item = (DC_HeroItemObj) ObjUtilities.findObjByType(type, hero.getInventory());
}
int result = super.addJewelryItem(hero, type);
if (result == 0) {
return 0;
}
hero.addJewelryItem((DC_JewelryObj) item);
hero.removeFromInventory(item);
update(hero);
return result;
}
use of eidolons.entity.item.DC_HeroItemObj in project Eidolons by IDemiurge.
the class DC_HeroManager method setHeroItem.
@Override
public int setHeroItem(Unit hero, ITEM_SLOT slot, Entity type) {
int result = 0;
if (slot == ItemEnums.ITEM_SLOT.ARMOR) {
if (!hero.checkBool(GenericEnums.STD_BOOLS.ARMOR_CHANGE)) {
return 0;
}
result++;
}
DC_HeroItemObj slotItem = null;
DC_QuickItemObj quick = null;
if (type instanceof DC_QuickItemObj) {
quick = ((DC_QuickItemObj) type);
slotItem = quick.getWrappedWeapon();
}
if (type instanceof DC_HeroItemObj) {
slotItem = (DC_HeroItemObj) type;
} else {
for (DC_HeroItemObj item : hero.getInventory()) {
if (item.getType() == type) {
slotItem = item;
break;
}
}
// item
}
hero.setItem(slotItem, slot);
if (quick != null) {
hero.removeQuickItem(quick);
} else {
hero.removeFromInventory(slotItem);
}
result++;
if (result > 0) {
update(hero);
}
return result;
}
use of eidolons.entity.item.DC_HeroItemObj in project Eidolons by IDemiurge.
the class DC_HeroManager method addItem.
@Override
public boolean addItem(Unit hero, Entity type, OBJ_TYPE TYPE, PROPERTY PROP) {
Obj cell = game.getCellByCoordinate(hero.getCoordinates());
DC_HeroItemObj item = (DC_HeroItemObj) ObjUtilities.findObjByType(type, hero.getGame().getDroppedItemManager().getDroppedItems(cell));
boolean result = hero.getGame().getDroppedItemManager().pickUp(cell, item);
if (!result) {
return false;
}
saveHero(hero);
// hero.addProperty(PROP, "" + item.getId());
// hero.getType().addProperty(PROP, "" + item.getId());
hero.addItemToInventory(item);
refreshInvWindow();
return true;
}
Aggregations