protected TowerPulseCannon(String spr, Vector2f pos) { super(spr, pos); turret = Utils.getImageFromPath("canun2.png"); baseDamage = 11; baseFireRate = 1500; baseRange = 500; }
@Override public void update(int dt) { // TODO: Debug /* if (statEffects.contains(StatEffect.EMP)) { return; } */ // debug if (parent == null) { System.out.println("Somehow parent is null! WTF"); } if (owner == null) { System.out.println("Somehow owner is null! WTF"); } setPos(getPos().add(step)); life += dt; if (life >= lifeTime) { parent.removeChild(this); } EntityLiving e = (EntityLiving) Utils.getNearestEntity( Utils.sortByType(MainGame.instance.lc.getCopyOfChildren(), "Enemy"), this.getCenterPos(), 50); if (e != null) { e.damage(owner.getDamage()); parent.removeChild(this); } }
@Override public void render(Graphics g) { super.render(g); if (target != null) { turret.setRotation(Utils.getAngle(this.getPos(), target.getPos())); g.setColor(Color.green); // g.fillOval(target.getX()-10, target.getY()-10, target.getWidth()+20, // target.getHeight()+20); } g.drawImage(turret, getX(), getY()); }
@Override public void update(int delta) { super.update(delta); t += delta; if ((firing && t > burstFireRate || t > getFireRate()) && target != null) { if (!firing) { firing = true; } t = 0; currentVolley++; if (currentVolley >= volleys) { currentVolley = 0; firing = false; } MainGame.instance.root.addChild( new BulletPulse( getCenterPos(), this, Utils.getAngle(this.getCenterPos(), target.getCenterPos()), getWidth() / 2)); } if (target != null) { target.isTarget--; } target = getTarget(); if (target != null) { target.isTarget++; } }