niwa99/Tower-Defense

View on GitHub
app/src/main/java/de/dhbw/map/objects/enemy/Plane.java

Summary

Maintainability
A
1 hr
Test Coverage
package de.dhbw.map.objects.enemy;

import android.widget.ImageView;

import java.util.UUID;

import de.dhbw.activities.GameActivity;
import de.dhbw.game.EnemyType;
import de.dhbw.map.structure.Field;
import de.dhbw.map.structure.MapStructure;

import static de.dhbw.util.Constants.PLANE_HEALTHPOINTS;
import static de.dhbw.util.Constants.PLANE_LIFE_POINT_COSTS;
import static de.dhbw.util.Constants.PLANE_SPEED;
import static de.dhbw.util.Constants.PLANE_VALUE;
import static de.dhbw.util.Constants.DRAWABLE_PLANE;
import static de.dhbw.util.Constants.DRAWABLE_PLANE_HITTED;

public class Plane extends AEnemy {

    /**
     * Constructor
     * @param label
     * @param level
     * @param gameActivity
     */
    public Plane(String label, int level, GameActivity gameActivity) {
        super(label, UUID.randomUUID(), getPlaneHealthpointsByLevel(level), getPlaneSpeedByLevel(level), getPlaneValueByLevel(level), getPlaneLifePointsCostsByLevel(level), gameActivity, EnemyType.PLANE, DRAWABLE_PLANE, DRAWABLE_PLANE_HITTED);
    }

    /**
     * Constructor (TEST PURPOSE ONLY!)
     * @param label
     * @param level
     * @param gameActivity
     * @param enemyView
     */
    public Plane(String label, int level, GameActivity gameActivity, EnemyView enemyView) {
        super(label, UUID.randomUUID(), getPlaneHealthpointsByLevel(level), getPlaneSpeedByLevel(level), getPlaneValueByLevel(level), getPlaneLifePointsCostsByLevel(level), gameActivity, EnemyType.PLANE, enemyView);
    }
    @Override
    protected Field getEnemyField(MapStructure map){
        return map.getFieldForPlane(actualField);
    }

    /**
     * Get healthpoints by level.
     * @param level
     * @return healthpoints
     */
    private static int getPlaneHealthpointsByLevel(int level) {
        return PLANE_HEALTHPOINTS * level;
    }

    /**
     * Get speed by level.
     * @param level
     * @return speed
     */
    private static int getPlaneSpeedByLevel(int level) {
        return PLANE_SPEED;

    }

    /**
     * Get value by level.
     * @param level
     * @return value
     */
    private static int getPlaneValueByLevel(int level) {
        return PLANE_VALUE * (level / 5 + 1);
    }

    /**
     * Get lifepointcosts by level.
     * @param level
     * @return lifepointcosts
     */
    private static int getPlaneLifePointsCostsByLevel(int level) {
        return PLANE_LIFE_POINT_COSTS * (level / 5 + 1);
    }

}