Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main.Entity.projectile;
- import main.Screen;
- import main.Sprite;
- import main.Entity.particle.Particle;
- import main.Entity.spawner.ParticleSpawner;
- import main.Entity.spawner.Spawner;
- public class FireBall extends Projectile {
- public static final int FIRERATE = 5; //Number high = slower firerate, Number low = faster firerate.
- public FireBall(int x, int y, double dir) {
- super(x, y, dir);
- range = 225;
- speed = 4;
- damage = 20;
- sprite = Sprite.fireBall;
- nx = speed * Math.cos(angle);
- ny = speed * Math.sin(angle);
- }
- public void update() {
- if (level.solidCollision(x, y, nx, ny, 7)) {
- level.add(new ParticleSpawner((int) x, (int) y, 100, 1000, level));
- remove();
- }
- move();
- }
- protected void move() {
- x += nx;
- y += ny;
- if (distance() > range) remove();
- }
- private double distance() {
- double dist = 0;
- dist = Math.sqrt(Math.abs((xOrigin - x) * (xOrigin - x) + (yOrigin - y) * (yOrigin - y)));
- return dist;
- }
- public void render(Screen screen) {
- screen.renderProjectile((int) x, (int) y, this);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement