|
|
|
#pragma once
|
|
|
|
#include "Bullet.h"
|
|
|
|
#include "olcPixelGameEngine.h"
|
|
|
|
|
|
|
|
struct EnergyBolt:public Bullet{
|
|
|
|
float lastParticleSpawn=0;
|
|
|
|
EnergyBolt(vf2d pos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
|
|
|
|
void Update(float fElapsedTime)override;
|
|
|
|
bool PlayerHit(Player*player)override;
|
|
|
|
bool MonsterHit(Monster&monster)override;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct FireBolt:public Bullet{
|
|
|
|
float lastParticleSpawn=0;
|
|
|
|
FireBolt(vf2d pos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
|
|
|
|
void Update(float fElapsedTime)override;
|
|
|
|
bool PlayerHit(Player*player)override;
|
|
|
|
bool MonsterHit(Monster&monster)override;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct LightningBolt:public Bullet{
|
|
|
|
float lastParticleSpawn=0;
|
|
|
|
LightningBolt(vf2d pos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
|
|
|
|
void Update(float fElapsedTime)override;
|
|
|
|
bool PlayerHit(Player*player)override;
|
|
|
|
bool MonsterHit(Monster&monster)override;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Arrow:public Bullet{
|
|
|
|
float travelDistance=0;
|
|
|
|
float finalDistance=0;
|
|
|
|
float acc=PI/2*250;
|
|
|
|
Arrow(vf2d pos,vf2d targetPos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
|
|
|
|
void Update(float fElapsedTime)override;
|
|
|
|
bool PlayerHit(Player*player)override;
|
|
|
|
bool MonsterHit(Monster&monster)override;
|
|
|
|
};
|