double degree = ai.attackPos.degree(ai.targetPos); if (degree % 60 == 30) { return LosEffects.losDivided(game, ai);
ai.attackAbsHeight = attEl; ai.targetAbsHeight = targEl; boolean attOffBoard = ae.isOffBoard(); boolean attUnderWater; boolean attInWater; boolean attOnLand; if (attOffBoard) { attUnderWater = true; attInWater = false; attOnLand = true;
    public static LosEffects calculateLos(IGame game, AttackInfo ai) {                if (ai.attOffBoard) {            LosEffects los = new LosEffects();            los.blocked = true;            return los;        }        if (ai.attOnLand && ai.targetUnderWater ||            ai.attUnderWater && ai.targetOnLand) {            LosEffects los = new LosEffects();            los.blocked = true;            return los;                     }                double degree = ai.attackPos.degree(ai.targetPos);        if (degree % 60 == 30) {            return LosEffects.losDivided(game, ai);        } else {            return LosEffects.losStraight(game, ai);        }    }