Android Open Source - TileArena Enemy






From Project

Back to project page TileArena.

License

The source code is released under:

MIT License

If you think the Android project TileArena listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package game.tile.arena.entity.enemy;
//from w  ww  . j  a va 2s.  co  m
import java.util.LinkedList;
import java.util.List;

import game.tile.arena.Game;
import game.tile.arena.entity.Entity;
import game.tile.arena.entity.attack.Attack;
import game.tile.arena.entity.attack.AttackList;
import game.tile.arena.entity.enemy.ai.EnemyAI;
import game.tile.arena.util.Position;

public class Enemy extends Entity {

    public static class Builder {

        private String filePrefix;
        private Position pos;
        private int animSpeed = 166;
        private int health = 10;
        private int speed = 8;
        private EnemyAI ai;

        public Builder(String filePrefix, Position pos, EnemyAI ai) {
            this.filePrefix = filePrefix;
            this.pos = pos;
            this.ai = ai;
        }

        public Builder setFilePrefix(String filePrefix) {
            this.filePrefix = filePrefix;
            return this;
        }

        public Builder setPos(Position pos) {
            this.pos = pos;
            return this;
        }

        public Builder setAnimSpeed(int animSpeed) {
            this.animSpeed = animSpeed;
            return this;
        }

        public Builder setHealth(int health) {
            this.health = health;
            return this;
        }

        public Builder setSpeed(int speed) {
            this.speed = speed;
            return this;
        }

        public Enemy createEnemy() {
            return new Enemy(filePrefix, pos, animSpeed, health, speed, ai);
        }
    }

    private EnemyAI ai;

    public Enemy(String filePrefix, Position pos, int animSpeed, int health, int speed, EnemyAI ai) {
        super(filePrefix, pos, animSpeed, Game.ENEMY, health, speed);
        this.ai = ai;
        this.ai.setEnemy(this);
    }

    @Override
    public boolean update(double delta) {
        updatePosition(ai.getRelativePosition(), delta);
        ai.attack();
        return health > 0;
    }
}




Java Source Code List

game.tile.arena.Game.java
game.tile.arena.TileArena.java
game.tile.arena.android.AndroidLauncher.java
game.tile.arena.client.HtmlLauncher.java
game.tile.arena.desktop.DesktopLauncher.java
game.tile.arena.entity.Entity.java
game.tile.arena.entity.Player.java
game.tile.arena.entity.attack.AttackBow.java
game.tile.arena.entity.attack.AttackList.java
game.tile.arena.entity.attack.Attack.java
game.tile.arena.entity.enemy.Enemy.java
game.tile.arena.entity.enemy.ai.EnemyAI.java
game.tile.arena.entity.enemy.ai.EnemyDodgeAI.java
game.tile.arena.entity.enemy.ai.EnemyRandomAI.java
game.tile.arena.entity.projectile.LinearProjectile.java
game.tile.arena.entity.projectile.Projectile.java
game.tile.arena.sprite.EntitySprite.java
game.tile.arena.sprite.Image.java
game.tile.arena.util.MathHelper.java
game.tile.arena.util.Position.java
game.tile.arena.util.Preferences.java
game.tile.arena.util.controller.Joystick.java
game.tile.arena.util.controller.KeyboardController.java
game.tile.arena.util.controller.MouseAttackInput.java
game.tile.arena.util.controller.PlayerController.java
game.tile.arena.util.controller.TouchController.java
game.tile.arena.util.input.InputManager.java
game.tile.arena.util.input.JoystickInput.java
game.tile.arena.util.input.KeyboardMoveInput.java
game.tile.arena.util.input.WeaponSwitchInput.java
game.tile.arena.world.Tile.java
game.tile.arena.world.World.java