if ( ((attack.getTargetType() == Targetable.TYPE_HEX_ARTILLERY || attack.getTargetType() == Targetable.TYPE_HEX_FASCAM || attack.getTargetType() == Targetable.TYPE_HEX_INFERNO_IV || attack.getTargetType() == Targetable.TYPE_HEX_VIBRABOMB_IV) && waa.getEntity(m_game).getOwner().getId() != m_client.getLocalPlayer().getId()) || attack.getTargetType() == Targetable.TYPE_INARC_POD) {
if ((attack.getTargetType() == Targetable.TYPE_HEX_ARTILLERY || attack.getTargetType() == Targetable.TYPE_HEX_FASCAM || attack.getTargetType() == Targetable.TYPE_HEX_INFERNO_IV || attack.getTargetType() == Targetable.TYPE_HEX_VIBRABOMB_IV) && waa.getEntity(m_game).getOwner().getId() != m_client.getLocalPlayer().getId()) {
    private void paintAttack(Graphics g, AttackAction attack) {        Entity source = m_game.getEntity(attack.getEntityId());        Targetable target = m_game.getTarget(attack.getTargetType(), attack.getTargetId());        // sanity check...        if (null==source || null==target) {            return;        }        if (attack instanceof WeaponAttackAction) {            WeaponAttackAction waa = (WeaponAttackAction)attack;            if ( ((attack.getTargetType() == Targetable.TYPE_HEX_ARTILLERY                 || attack.getTargetType() == Targetable.TYPE_HEX_FASCAM                || attack.getTargetType() == Targetable.TYPE_HEX_INFERNO_IV                || attack.getTargetType() == Targetable.TYPE_HEX_VIBRABOMB_IV)                && waa.getEntity(m_game).getOwner().getId() != m_client.getLocalPlayer().getId())                || attack.getTargetType() == Targetable.TYPE_INARC_POD) {                return;            }        }        Color oldColor = g.getColor();        int[] xPoints = new int[4];        int[] yPoints = new int[4];        xPoints[0] = source.getPosition().x *(hexSide[zoom] + hexSideBySin30[zoom]) + leftMargin + (int)1.5*hexSide[zoom] -2;        yPoints[0] = (2*source.getPosition().y + 1 + source.getPosition().x%2)* hexSideByCos30[zoom] + topMargin;        xPoints[1] = target.getPosition().x *(hexSide[zoom] + hexSideBySin30[zoom]) + leftMargin + (int)1.5*hexSide[zoom] -2;        yPoints[1] = (2*target.getPosition().y + 1 + target.getPosition().x%2)* hexSideByCos30[zoom] + topMargin;        xPoints[2] = xPoints[1]+2;        xPoints[3] = xPoints[0]+2;        if ((source.getPosition().x > target.getPosition().x             && source.getPosition().y < target.getPosition().y)            || (source.getPosition().x < target.getPosition().x                && source.getPosition().y > target.getPosition().y)) {            yPoints[3] = yPoints[0]+2;            yPoints[2] = yPoints[1]+2;        } else {            yPoints[3] = yPoints[0]-2;            yPoints[2] = yPoints[1]-2;        }        g.setColor(PlayerColors.getColor(source.getOwner().getColorIndex()));        g.fillPolygon(xPoints,yPoints,4);        g.setColor(Color.black);        g.drawPolygon(xPoints,yPoints,4);        // if this is mutual fire, draw a half-and-half line        for (Enumeration iter = m_game.getActions(); iter.hasMoreElements(); ) {            Object action = iter.nextElement();            if (action instanceof AttackAction) {                AttackAction otherAttack = (AttackAction) action;                if (attack.getEntityId() == otherAttack.getTargetId()                    && otherAttack.getEntityId() == attack.getTargetId() ) {                    // attackTarget _must_ be an entity since it's shooting back (?)                    Entity attackTarget = m_game.getEntity(otherAttack.getEntityId());                    g.setColor(PlayerColors.getColor(attackTarget.getOwner().getColorIndex()));                    xPoints[0] = xPoints[3];                    yPoints[0] = yPoints[3];                    xPoints[1] = xPoints[2];                    yPoints[1] = yPoints[2];                    xPoints[2] = xPoints[1]+2;                    xPoints[3] = xPoints[0]+2;                    if ((source.getPosition().x > target.getPosition().x                         && source.getPosition().y < target.getPosition().y)                        || (source.getPosition().x < target.getPosition().x                            && source.getPosition().y > target.getPosition().y)) {                        yPoints[3] = yPoints[0]+2;                        yPoints[2] = yPoints[1]+2;                    } else {                        yPoints[3] = yPoints[0]-2;                        yPoints[2] = yPoints[1]-2;                    }                    g.fillPolygon(xPoints,yPoints,4);                    g.setColor(Color.black);                    g.drawPolygon(xPoints,yPoints,4);                    break;                }            }        }        g.setColor(oldColor);    }