Search in sources :

Example 46 with Formula

use of main.system.math.Formula in project Eidolons by IDemiurge.

the class PriorityManagerImpl method evaluatePriorityFormula.

@Override
public int evaluatePriorityFormula(Action action, String property) {
    Boolean less_or_more_for_health = null;
    for (PRIORITY_FUNCS p : PRIORITY_FUNCS.values()) {
        String text = StringMaster.wrapInBraces(p.name().toLowerCase());
        if (!property.contains(text)) {
            continue;
        }
        float i = 1;
        switch(p) {
            case DURATION:
                i = new Float(getDurationMultiplier(action)) / 100;
                break;
            case CAPACITY:
                i = calculateCapacity(action.getSource());
                break;
            case DANGER:
                i = getSituationAnalyzer().getMeleeDangerFactor(getUnit(), false, true) / 100;
                break;
        }
        property = property.replace(text, "" + i);
    }
    if (property.contains("[less]")) {
        less_or_more_for_health = true;
        property = property.replace("[less]", "");
    }
    if (property.contains("[more]")) {
        less_or_more_for_health = false;
        property = property.replace("[more]", "");
    }
    if (less_or_more_for_health != null) {
        int unitPriority = getUnitPriority(action.getTarget(), less_or_more_for_health);
        property = property.replace("{target_power}", "" + unitPriority);
    }
    Integer p = new Formula(property).getInt(action.getRef());
    return p;
}
Also used : Formula(main.system.math.Formula)

Example 47 with Formula

use of main.system.math.Formula in project Eidolons by IDemiurge.

the class DC_FeatObj method parseParamBonusString.

private void parseParamBonusString() {
    String prop = getProperty(PROPS.PARAMETER_BONUSES);
    if (!prop.endsWith(";")) {
        prop = prop + ";";
    }
    prop = prop + getProperty(PROPS.ATTRIBUTE_BONUSES);
    for (String substring : StringMaster.open(prop)) {
        // String[] array = substring.split(" ");
        // array[array.length - 1];
        String bonus = VariableManager.getVar(substring);
        boolean mod = false;
        if (bonus.contains("%")) {
            mod = true;
            bonus = bonus.replace("%", "");
        } else if (bonus.contains("mod")) {
            mod = true;
            bonus = bonus.replace("mod", "");
        }
        String paramName = VariableManager.removeVarPart(substring);
        // substring.replace(bonus, "");
        PARAMETER param = ContentManager.getPARAM(paramName);
        if (param == null) {
            param = ContentManager.getMastery(paramName);
        }
        if (param == null) {
            param = ContentManager.findPARAM(paramName);
        }
        if (param == null) {
            param = ContentManager.findMastery(paramName);
        }
        if (param == null) {
            continue;
        }
        getRef().setInfoEntity(this);
        bonus = TextParser.parse(bonus, getRef(), TextParser.ABILITY_PARSING_CODE);
        // StringMaster.getInteger(bonus);
        Integer amount = new Formula(bonus).getInt(getRef());
        if (amount == 0) {
            continue;
        }
        if (mod) {
            getModMap().put(param, bonus);
        } else {
            getBonusMap().put(param, bonus);
        }
        paramStringParsed = true;
    }
    paramStringParsed = true;
}
Also used : Formula(main.system.math.Formula) PARAMETER(main.content.values.parameters.PARAMETER)

Example 48 with Formula

use of main.system.math.Formula 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();
}
Also used : SelectiveTargeting(main.elements.targeting.SelectiveTargeting) SummonEffect(eidolons.ability.effects.oneshot.unit.SummonEffect) CreateObjectEffect(eidolons.ability.effects.oneshot.unit.CreateObjectEffect) Formula(main.system.math.Formula) DC_Player(eidolons.game.battlecraft.logic.battle.universal.DC_Player) Player(main.game.logic.battle.player.Player) ObjType(main.entity.type.ObjType) DC_QuickItemObj(eidolons.entity.item.DC_QuickItemObj) DC_SpellObj(eidolons.entity.active.DC_SpellObj) DC_Obj(eidolons.entity.obj.DC_Obj) ActiveObj(main.entity.obj.ActiveObj) Obj(main.entity.obj.Obj) DC_HeroItemObj(eidolons.entity.item.DC_HeroItemObj) Unit(eidolons.entity.obj.unit.Unit) DC_Player(eidolons.game.battlecraft.logic.battle.universal.DC_Player) Conditions(main.elements.conditions.Conditions)

Example 49 with Formula

use of main.system.math.Formula 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;
}
Also used : DC_HeroItemObj(eidolons.entity.item.DC_HeroItemObj) ListChooser(main.swing.generic.components.editors.lists.ListChooser) Unit(eidolons.entity.obj.unit.Unit) Conditions(main.elements.conditions.Conditions) AddBuffEffect(eidolons.ability.effects.attachment.AddBuffEffect) Formula(main.system.math.Formula) DC_Cell(eidolons.entity.obj.DC_Cell) DC_SpellObj(eidolons.entity.active.DC_SpellObj) ArenaBattleMaster(eidolons.game.battlecraft.logic.battle.arena.ArenaBattleMaster) ModifyPropertyEffect(eidolons.ability.effects.common.ModifyPropertyEffect) GuiEventType(main.system.GuiEventType) DC_TYPE(main.content.DC_TYPE) PROPERTY(main.content.values.properties.PROPERTY) WAIT_OPERATIONS(main.system.threading.WaitMaster.WAIT_OPERATIONS) Coordinates(main.game.bf.Coordinates) SelectiveTargeting(main.elements.targeting.SelectiveTargeting) Wave(eidolons.game.battlecraft.logic.battle.arena.Wave) Ref(main.entity.Ref) ObjType(main.entity.type.ObjType) EnumMaster(main.system.auxiliary.EnumMaster) LOG_CHANNEL(main.system.auxiliary.log.LogMaster.LOG_CHANNEL) OwnershipChangeEffect(main.ability.effects.common.OwnershipChangeEffect) File(java.io.File)

Example 50 with Formula

use of main.system.math.Formula in project Eidolons by IDemiurge.

the class DealDamageEffectTest method dealDamageObjectTest.

@Test
public void dealDamageObjectTest() {
    assertTrue(source != null);
    assertTrue(target != null);
    int origToughness = target.getIntParam(PARAMS.C_TOUGHNESS);
    int origEndurance = target.getIntParam(PARAMS.C_ENDURANCE);
    DealDamageEffect eff = new DealDamageEffect(new Formula("50"), GenericEnums.DAMAGE_TYPE.BLUDGEONING.getName(), DAMAGE_MODIFIER.UNBLOCKABLE);
    Damage dmg = DamageFactory.getDamageFromEffect(eff, 25);
    dmg.getRef().setTarget(target.getId());
    DamageDealer.dealDamage(dmg);
    Integer newToughness = target.getIntParam(PARAMS.C_TOUGHNESS);
    Integer newEndurance = target.getIntParam(PARAMS.C_ENDURANCE);
    assertTrue(newToughness < origToughness);
    assertTrue(newEndurance < origEndurance);
}
Also used : Formula(main.system.math.Formula) DealDamageEffect(eidolons.ability.effects.oneshot.DealDamageEffect) Damage(eidolons.game.battlecraft.rules.combat.damage.Damage) FastDcTest(tests.FastDcTest) Test(org.junit.Test)

Aggregations

Formula (main.system.math.Formula)53 PARAMETER (main.content.values.parameters.PARAMETER)12 Ref (main.entity.Ref)11 AddBuffEffect (eidolons.ability.effects.attachment.AddBuffEffect)8 ModifyValueEffect (eidolons.ability.effects.common.ModifyValueEffect)8 Effects (main.ability.effects.Effects)7 SkillPointCondition (eidolons.ability.conditions.req.SkillPointCondition)5 DealDamageEffect (eidolons.ability.effects.oneshot.DealDamageEffect)5 ArrayList (java.util.ArrayList)5 Effect (main.ability.effects.Effect)5 ClassTreeCondition (eidolons.ability.conditions.req.ClassTreeCondition)4 MultiClassCondition (eidolons.ability.conditions.req.MultiClassCondition)4 ValueGroupCondition (eidolons.ability.conditions.req.ValueGroupCondition)4 Unit (eidolons.entity.obj.unit.Unit)4 ObjType (main.entity.type.ObjType)4 ModifyPropertyEffect (eidolons.ability.effects.common.ModifyPropertyEffect)3 RemoveBuffEffect (eidolons.ability.effects.oneshot.buff.RemoveBuffEffect)3 RollEffect (eidolons.ability.effects.oneshot.mechanic.RollEffect)3 SummonEffect (eidolons.ability.effects.oneshot.unit.SummonEffect)3 DC_ActiveObj (eidolons.entity.active.DC_ActiveObj)3