Search in sources :

Example 21 with Effect

use of main.ability.effects.Effect in project Eidolons by IDemiurge.

the class EffectFinder method getRollEffects.

public static List<RollEffect> getRollEffects(DC_ActiveObj active) {
    List<RollEffect> list = new ArrayList<>();
    for (Effect e : getEffectsOfClass(active, RollEffect.class)) {
        // construct!
        ((RollEffect) e).getEffect();
        list.add(((RollEffect) e));
    }
    return list;
}
Also used : RollEffect(eidolons.ability.effects.oneshot.mechanic.RollEffect) ArrayList(java.util.ArrayList) AddBuffEffect(eidolons.ability.effects.attachment.AddBuffEffect) ContainerEffect(main.ability.effects.ContainerEffect) AttackEffect(eidolons.ability.effects.oneshot.attack.AttackEffect) ModifyValueEffect(eidolons.ability.effects.common.ModifyValueEffect) ModifyPropertyEffect(eidolons.ability.effects.common.ModifyPropertyEffect) RollEffect(eidolons.ability.effects.oneshot.mechanic.RollEffect) Effect(main.ability.effects.Effect)

Example 22 with Effect

use of main.ability.effects.Effect in project Eidolons by IDemiurge.

the class FutureBuilder method precalculateDamage.

public static int precalculateDamage(DC_ActiveObj active, Obj targetObj, boolean attack, Boolean min_max_normal) {
    // TODO basically, I have to use a copy of the gamestate...! To make it
    // precise...
    Map<String, Integer> cache = getCache(min_max_normal);
    Integer damage = cache.get(getCacheKey(active, targetObj));
    if (damage != null)
        return damage;
    damage = 0;
    if (!active.isConstructed()) {
        active.construct();
    }
    List<Effect> effects;
    effects = EffectFinder.getEffectsOfClass(EffectFinder.getEffectsFromSpell(active), attack ? AttackEffect.class : DealDamageEffect.class);
    // TODO special effects?!
    for (Effect e : effects) {
        damage += getDamage(active, targetObj, e, min_max_normal);
    }
    cache.put(active.getNameAndId() + targetObj.getNameAndId(), damage);
    return damage;
}
Also used : Effect(main.ability.effects.Effect) DealDamageEffect(eidolons.ability.effects.oneshot.DealDamageEffect) AttackEffect(eidolons.ability.effects.oneshot.attack.AttackEffect)

Example 23 with Effect

use of main.ability.effects.Effect in project Eidolons by IDemiurge.

the class DealDamageEffectTest method dealDamageEffectTest.

@Test
public void dealDamageEffectTest() {
    assertTrue(source != null);
    assertTrue(target != null);
    int origToughness = target.getIntParam(PARAMS.C_TOUGHNESS);
    int origEndurance = target.getIntParam(PARAMS.C_ENDURANCE);
    Effect eff = new DealDamageEffect(new Formula("50"), GenericEnums.DAMAGE_TYPE.BLUDGEONING.getName(), DAMAGE_MODIFIER.UNBLOCKABLE);
    Ref ref = new Ref(source);
    ref.setTarget(target.getId());
    ref.setID(KEYS.ACTIVE, source.getAction("Attack").getId());
    eff.apply(ref);
    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) Ref(main.entity.Ref) DealDamageEffect(eidolons.ability.effects.oneshot.DealDamageEffect) Effect(main.ability.effects.Effect) DealDamageEffect(eidolons.ability.effects.oneshot.DealDamageEffect) FastDcTest(tests.FastDcTest) Test(org.junit.Test)

Example 24 with Effect

use of main.ability.effects.Effect in project Eidolons by IDemiurge.

the class AbilityConstructor method constructAbility.

private static Ability constructAbility(Node node) {
    Effect effects = null;
    Targeting targeting = null;
    for (Node NODE : XML_Converter.getNodeList(node)) {
        if (NODE.getNodeName().equals(EFFECTS) || NODE.getNodeName().contains(EFFECTS)) {
            effects = constructEffects(NODE);
        }
        if (NODE.getNodeName().equals(TARGETING) || NODE.getNodeName().contains(TARGETING)) {
            targeting = constructTargeting(NODE);
        }
    }
    if (effects == null) {
        LogMaster.log(1, "null abil effects!");
        effects = new Effects();
    }
    if (targeting == null) {
        LogMaster.log(1, "null abil targeting!");
        targeting = new FixedTargeting();
    }
    Ability abil = null;
    if (node.getNodeName().equals(ACTIVE_ABILITY)) {
        abil = new ActiveAbility(targeting, effects);
    } else if (node.getNodeName().equals(ONESHOT_ABILITY)) {
        abil = new OneshotAbility(targeting, effects);
    } else if (node.getNodeName().equals(PASSIVE_ABILITY)) {
        abil = new PassiveAbility(targeting, effects);
    }
    abil.setXml(XML_Converter.getStringFromXML(node));
    return abil;
}
Also used : FixedTargeting(main.elements.targeting.FixedTargeting) Targeting(main.elements.targeting.Targeting) FixedTargeting(main.elements.targeting.FixedTargeting) Node(org.w3c.dom.Node) Effect(main.ability.effects.Effect) Effects(main.ability.effects.Effects)

Example 25 with Effect

use of main.ability.effects.Effect in project Eidolons by IDemiurge.

the class GameManager method attachmentRemoved.

public void attachmentRemoved(Attachment attachment, Obj basis) {
    for (Effect e : attachment.getEffects()) {
        e.remove();
        getState().removeEffect(e);
    // TODO when addTrigger effect is removed, so is the trigger
    }
}
Also used : Effect(main.ability.effects.Effect)

Aggregations

Effect (main.ability.effects.Effect)55 AddBuffEffect (eidolons.ability.effects.attachment.AddBuffEffect)31 ModifyValueEffect (eidolons.ability.effects.common.ModifyValueEffect)18 Effects (main.ability.effects.Effects)17 DealDamageEffect (eidolons.ability.effects.oneshot.DealDamageEffect)16 RollEffect (eidolons.ability.effects.oneshot.mechanic.RollEffect)16 ModifyCounterEffect (eidolons.ability.effects.oneshot.mechanic.ModifyCounterEffect)15 OwnershipChangeEffect (main.ability.effects.common.OwnershipChangeEffect)14 BehaviorModeEffect (eidolons.ability.effects.continuous.BehaviorModeEffect)13 AttackEffect (eidolons.ability.effects.oneshot.attack.AttackEffect)13 InstantDeathEffect (main.ability.effects.oneshot.InstantDeathEffect)13 DrainEffect (eidolons.ability.effects.oneshot.mechanic.DrainEffect)12 RaiseEffect (eidolons.ability.effects.oneshot.unit.RaiseEffect)12 SummonEffect (eidolons.ability.effects.oneshot.unit.SummonEffect)12 ArrayList (java.util.ArrayList)10 WaveEffect (eidolons.ability.effects.containers.customtarget.WaveEffect)8 DC_Effect (eidolons.ability.effects.DC_Effect)7 Ref (main.entity.Ref)7 DC_ActiveObj (eidolons.entity.active.DC_ActiveObj)6 SpecialTargetingEffect (main.ability.effects.container.SpecialTargetingEffect)6