public void calcD(double d, double h, String n, String t, double r, int a, List i, List ae, List m) {
    double d2 = 0;

    switch (t) {
        case "m":
            d2 = d * r;
        case "ps":
            d2 = d * (a * .05);
            if (i.contains("sh"))
                if (rand.nextInt(10) <= 4) d2 += 20;
        case "pu":
            d2 = 0;
    }

    d -= d2;

    if (ae.contains("ss"))
        if (rand.nextInt(9) <= 1) d -= 20;

    if (ae.contains("cg")) d -= 55;

    if (m.contains("cr")) d *= 1.25;

    if (m.contains("mael")) {
        if (rand.nextInt(3) == 0) d += 120;
    }

    if (h - d <= 0) GmMgr.k(n);
}
public void assessDamage(Damage damage) {
    double damageAmount = damage.getAmount();
    double resistedDamageAmount = 0;
    Hero target = damage.getTarget();

    //Strategy pattern
    DamageResistedStrategy dmgStrat = null;

    switch (damage.getType()) {
        case MAGIC:
            dmgStrat = new MagicDamageResistedStrategy(damageAmount, target);
        case PHYSICAL:
            dmgStrat = new PhysicalDamageResistedStrategy(damageAmount, target);
        case PURE:
            dmgStrat = new PureDamageResistedStrategy(damageAmount, target);
    }

    resistedDamageAmount = dmgStrat.calculateResistance();
    damageAmount -= resistedDamageAmount;

    double modifiedDamageAmount = DamageModifierUtils.calculateModifiedDamage(damage);
    damageAmount -= modifiedDamageAmount;

    double activeEffectDamageModificationAmount = ActiveEffectUtils.calculateModifiedDamage(damage, target);
    damageAmount -= activeEffectDamageModificationAmount;

    double targetHp = target.getHealthPoints();
    double damagedHp = targetHp - damageAmount;

    if (damagedHp <= 0) {
        GameManager.killHero(target);
    }

    GameManager.updateHeroHealthPoints(target, damagedHp);
}

deck

By Reid Harrison

deck

  • 597