package com.duckygo.towerdefense.game.sprites;
import android.util.Log;
import android.view.MotionEvent;
import com.duckygo.towerdefense.game.scenes.TowerDefenseScene;
public class Tower extends Sprite2D {
private int cooldown;
private int range;
public Tower() {
anchor = CENTER;
width = 64;
height = 64;
range = 150 * 150;
texture = TowerDefenseScene.TOWER_TEX;
}
@Override
public void update(long time) {
if (cooldown > 0) {
cooldown --;
return;
}
Unit target = null;
int closest = range;
for (int i = 0; i < parent.children.size(); i++) {
Sprite sprite = parent.children.get(i);
if (!(sprite instanceof Unit)) {
continue;
}
Unit unit = (Unit)sprite;
int dist = (int) ((unit.x - x) * (unit.x - x) + (unit.y - y) * (unit.y - y));
if (dist < closest) {
closest = dist;
target = unit;
}
}
if (target != null) {
Log.w("Tower", "Found viking " + target);
cooldown = 100;
parent.addChild(new Projectile(this, target, 10));
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
}
|